@@ -25,10 +25,10 @@ import 'package:cw_bitcoin/psbt/signer.dart';
2525import 'package:cw_bitcoin/psbt/transaction_builder.dart' ;
2626import 'package:cw_bitcoin/psbt/v0_deserialize.dart' ;
2727import 'package:cw_bitcoin/psbt/v0_finalizer.dart' ;
28+ import 'package:cw_core/amount/money.dart' ;
2829import 'package:cw_core/crypto_currency.dart' ;
2930import 'package:cw_core/encryption_file_utils.dart' ;
3031import 'package:cw_core/output_info.dart' ;
31- import 'package:cw_core/parse_fixed.dart' ;
3232import 'package:cw_core/payjoin_session.dart' ;
3333import 'package:cw_core/pending_transaction.dart' ;
3434import 'package:cw_core/sync_status.dart' ;
@@ -349,13 +349,15 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
349349
350350 final lBalance = await lightningWallet! .getBalance ();
351351
352- this .balance[CryptoCurrency .btcln] =
353- ElectrumBalance (confirmed: lBalance.toInt (), unconfirmed: 0 , frozen: 0 );
352+ this .balance[CryptoCurrency .btcln] = ElectrumBalance (
353+ confirmed: lBalance,
354+ unconfirmed: Money .zero (CryptoCurrency .btcln),
355+ frozen: Money .zero (CryptoCurrency .btcln));
354356
355357 return ElectrumBalance (
356358 confirmed: balance.confirmed,
357359 unconfirmed: balance.unconfirmed,
358- frozen: balance.frozen. toInt ( ),
360+ frozen: balance.frozen ?? Money . zero (currency ),
359361 );
360362 }
361363
@@ -504,19 +506,19 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
504506 final isLNCompatible = await lightningWallet? .isCompatible (lnAddr);
505507 if ((credentials.coinTypeToSpendFrom == UnspentCoinType .lightning && lightningWallet != null ) ||
506508 isLNCompatible == true ) {
507- BigInt amount;
509+ Money amount;
508510 if (credentials.outputs.first.sendAll) {
509511 amount = await lightningWallet! .getBalance ();
510512 } else {
511- amount = parseFixed (
512- credentials.outputs.first.cryptoAmount? .isNotEmpty == true
513- ? credentials.outputs.first.cryptoAmount!
514- : "0" ,
515- 8 );
513+ amount = credentials.outputs.first.cryptoAmount;
516514 }
517515
518- return lightningWallet! .createTransaction (lnAddr, amount > BigInt .zero ? amount : null ,
519- credentials.priority, credentials.outputs.first.sendAll);
516+
517+ return lightningWallet! .createTransaction (
518+ lnAddr,
519+ amount.amount > BigInt .zero ? amount.amount : null ,
520+ credentials.priority,
521+ credentials.outputs.first.sendAll,);
520522 }
521523
522524 final tx = (await super .createTransaction (credentials)) as PendingBitcoinTransaction ;
@@ -535,7 +537,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
535537 ))
536538 .toList (),
537539 cwOutputs: credentials.outputs,
538- fee: BigInt . from ( tx.fee) ,
540+ fee: tx.fee.amount ,
539541 network: network,
540542 memo: credentials.outputs.first.memo,
541543 outputOrdering: BitcoinOrdering .none,
@@ -554,8 +556,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
554556 tx.commitOverride = () async {
555557 final sender =
556558 await payjoinManager.initSender (payjoinUri! , originalPsbt, int .parse (tx.feeRate));
557- payjoinManager.spawnNewSender (
558- sender: sender, pjUrl: payjoinUri, amount: BigInt .from (tx.amount));
559+ payjoinManager.spawnNewSender (sender: sender, pjUrl: payjoinUri, amount: tx.amount.amount);
559560 };
560561
561562 return tx;
@@ -575,8 +576,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
575576 btcTx,
576577 type,
577578 electrumClient: electrumClient,
578- amount: 0 ,
579- fee: 0 ,
579+ amount: Money . zero (currency) ,
580+ fee: Money . zero (currency) ,
580581 feeRate: "" ,
581582 network: network,
582583 hasChange: true ,
@@ -633,8 +634,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
633634 btcTx,
634635 type,
635636 electrumClient: electrumClient,
636- amount: 0 ,
637- fee: 0 ,
637+ amount: Money . zero (currency) ,
638+ fee: Money . zero (currency) ,
638639 feeRate: "" ,
639640 network: network,
640641 hasChange: true ,
0 commit comments