diff --git a/fusiondart b/fusiondart index 79e435cfe..20bf6d3c6 160000 --- a/fusiondart +++ b/fusiondart @@ -1 +1 @@ -Subproject commit 79e435cfe1e099efd5b2ac39c8b8ed3d83fd8c50 +Subproject commit 20bf6d3c671f50b43831bbf29c62763ae65af3fe diff --git a/lib/services/mixins/fusion_interface.dart b/lib/services/mixins/fusion_interface.dart index b355f5028..bbf425ea6 100644 --- a/lib/services/mixins/fusion_interface.dart +++ b/lib/services/mixins/fusion_interface.dart @@ -1,13 +1,12 @@ import 'dart:io'; import 'package:fusiondart/fusiondart.dart'; -import 'package:fusiondart/src/models/address.dart' as fusion_address; +import 'package:fusiondart/src/models/address.dart' as cash_fusion; import 'package:isar/isar.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; const String kReservedFusionAddress = "reserved_fusion_address"; @@ -40,7 +39,7 @@ mixin FusionInterface { _generateAddressForChain = generateAddressForChain; } - Future<Address> createNewReservedChangeAddress() async { + Future<cash_fusion.Address> createNewReservedChangeAddress() async { int? highestChangeIndex = await _db .getAddresses(_walletId) .filter() @@ -62,7 +61,7 @@ mixin FusionInterface { await _db.putAddress(address); - return address; + return address.toFusionAddress(); } Future<List<Address>> getUnusedReservedChangeAddresses( @@ -104,8 +103,8 @@ mixin FusionInterface { void fuse() async { // Initial attempt for CashFusion integration goes here. - Fusion mainFusionObject = - Fusion(generateChangeAddress: () => _getNextChangeAddress()); + Fusion mainFusionObject = Fusion( + createNewReservedChangeAddress: () => createNewReservedChangeAddress()); // add stack utxos List<UTXO> utxos = await _db.getUTXOs(_walletId).findAll(); @@ -113,19 +112,20 @@ mixin FusionInterface { .map((e) => (txid: e.txid, vout: e.vout, value: e.value)) .toList()); - // add stack change address - final String currentChangeAddress = await _getCurrentChangeAddress(); - // cast from String to Address - final Address? changeAddress = - await _db.getAddress(_walletId, currentChangeAddress); - // cast from Stack's Address to Fusiondart's Address - final fusion_address.Address fusionChangeAddress = - changeAddress!.toFusionAddress(); - await mainFusionObject.addChangeAddress(fusionChangeAddress); - Logging.instance.log( - "FusionInterface fuse() changeAddress: $changeAddress", - level: LogLevel.Info, - ); + // TODO rework + // // add stack change address + // final String currentChangeAddress = await _getCurrentChangeAddress(); + // // cast from String to Address + // final Address? changeAddress = + // await _db.getAddress(_walletId, currentChangeAddress); + // // cast from Stack's Address to Fusiondart's Address + // final fusion_address.Address fusionChangeAddress = + // changeAddress!.toFusionAddress(); + // await mainFusionObject.addChangeAddress(fusionChangeAddress); + // Logging.instance.log( + // "FusionInterface fuse() changeAddress: $changeAddress", + // level: LogLevel.Info, + // ); // fuse utxos await mainFusionObject.fusion_run();