Skip to content

Commit 24482a2

Browse files
committed
Get app to build on main
1 parent b38a61b commit 24482a2

File tree

4 files changed

+142
-117
lines changed

4 files changed

+142
-117
lines changed

cw_bitcoin/lib/bitcoin_payjoin.dart

-4
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ export 'package:payjoin_flutter/send.dart' show Sender;
2727

2828
export 'package:payjoin_flutter/src/exceptions.dart' show PayjoinException;
2929

30-
import 'package:ledger_bitcoin/src/psbt/psbt_extractor.dart';
31-
32-
import 'psbt_converter.dart';
33-
3430
class BitcoinPayjoin {
3531
// Private constructor
3632
BitcoinPayjoin._internal();

cw_bitcoin/lib/psbt_signer.dart

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import 'package:bitcoin_base/bitcoin_base.dart';
44
import 'package:blockchain_utils/blockchain_utils.dart';
55
import 'package:ledger_bitcoin/psbt.dart';
66
import 'package:ledger_bitcoin/src/psbt/constants.dart';
7-
import 'psbt_converter.dart';
87

98
extension PsbtSigner on PsbtV2 {
109
void sign(List<UtxoWithAddress> utxos, BitcoinSignerCallBack signer) {

lib/bitcoin/bitcoin.dart

+44-13
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
1+
import 'dart:io' show Platform;
12
import 'dart:typed_data';
23
import 'package:bitcoin_base/bitcoin_base.dart';
34
import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart';
45
import 'package:cake_wallet/view_model/send/output.dart';
5-
import 'package:cw_bitcoin/bitcoin_payjoin.dart';
66
import 'package:cw_core/hardware/hardware_account_data.dart';
77
import 'package:cw_core/node.dart';
88
import 'package:cw_core/output_info.dart';
99
import 'package:cw_core/pending_transaction.dart';
1010
import 'package:cw_core/receive_page_option.dart';
11+
import 'package:cw_core/transaction_info.dart';
1112
import 'package:cw_core/transaction_priority.dart';
13+
import 'package:cw_core/unspent_coin_type.dart';
1214
import 'package:cw_core/unspent_coins_info.dart';
1315
import 'package:cw_core/unspent_transaction_output.dart';
1416
import 'package:cw_core/wallet_base.dart';
1517
import 'package:cw_core/wallet_credentials.dart';
1618
import 'package:cw_core/wallet_info.dart';
1719
import 'package:cw_core/wallet_service.dart';
1820
import 'package:cw_core/wallet_type.dart';
21+
import 'package:cw_core/utils/print_verbose.dart';
22+
import 'package:cw_core/get_height_by_date.dart';
1923
import 'package:hive/hive.dart';
20-
import 'package:ledger_flutter/ledger_flutter.dart';
24+
import 'package:ledger_flutter_plus/ledger_flutter_plus.dart' as ledger;
2125
import 'package:blockchain_utils/blockchain_utils.dart';
2226
import 'package:bip39/bip39.dart' as bip39;
2327

@@ -26,7 +30,9 @@ import 'package:cw_bitcoin/electrum_derivations.dart';
2630
import 'package:cw_bitcoin/electrum.dart';
2731
import 'package:cw_bitcoin/pending_bitcoin_transaction.dart';
2832
import 'package:cw_bitcoin/bitcoin_receive_page_option.dart';
33+
import 'package:cw_bitcoin/bitcoin_payjoin.dart';
2934
import 'package:cw_bitcoin/bitcoin_wallet.dart';
35+
import 'package:cw_bitcoin/electrum_transaction_info.dart';
3036
import 'package:cw_bitcoin/electrum_wallet.dart';
3137
import 'package:cw_bitcoin/bitcoin_unspent.dart';
3238
import 'package:cw_bitcoin/bitcoin_mnemonic.dart';
@@ -36,9 +42,11 @@ import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart';
3642
import 'package:cw_bitcoin/bitcoin_amount_format.dart';
3743
import 'package:cw_bitcoin/bitcoin_address_record.dart';
3844
import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart';
45+
import 'package:cw_bitcoin/litecoin_wallet.dart';
3946
import 'package:cw_bitcoin/litecoin_wallet_service.dart';
4047
import 'package:cw_core/get_height_by_date.dart';
4148
import 'package:cw_bitcoin/bitcoin_hardware_wallet_service.dart';
49+
import 'package:cw_bitcoin/litecoin_hardware_wallet_service.dart';
4250
import 'package:mobx/mobx.dart';
4351

4452
part 'cw_bitcoin.dart';
@@ -78,7 +86,12 @@ abstract class Bitcoin {
7886
required String wif,
7987
WalletInfo? walletInfo});
8088
WalletCredentials createBitcoinNewWalletCredentials(
81-
{required String name, WalletInfo? walletInfo, String? password});
89+
{required String name,
90+
WalletInfo? walletInfo,
91+
String? password,
92+
String? passphrase,
93+
String? mnemonic,
94+
String? parentAddress});
8295
WalletCredentials createBitcoinHardwareWalletCredentials(
8396
{required String name,
8497
required HardwareAccountData accountData,
@@ -93,9 +106,9 @@ abstract class Bitcoin {
93106
Future<void> generateNewAddress(Object wallet, String label);
94107
Future<void> updateAddress(Object wallet, String address, String label);
95108
Object createBitcoinTransactionCredentials(List<Output> outputs,
96-
{required TransactionPriority priority, int? feeRate});
97-
Object createBitcoinTransactionCredentialsRaw(List<OutputInfo> outputs,
98-
{TransactionPriority? priority, required int feeRate});
109+
{required TransactionPriority priority,
110+
int? feeRate,
111+
UnspentCoinType coinTypeToSpendFrom = UnspentCoinType.any});
99112

100113
String getAddress(Object wallet);
101114
List<ElectrumSubAddress> getSilentPaymentAddresses(Object wallet);
@@ -112,12 +125,13 @@ abstract class Bitcoin {
112125
TransactionPriority priority, int rate,
113126
{int? customRate});
114127

115-
List<Unspent> getUnspents(Object wallet);
128+
List<Unspent> getUnspents(Object wallet,
129+
{UnspentCoinType coinTypeToSpendFrom = UnspentCoinType.any});
116130
Future<void> updateUnspents(Object wallet);
117131
WalletService createBitcoinWalletService(Box<WalletInfo> walletInfoSource,
118132
Box<UnspentCoinsInfo> unspentCoinSource, bool alwaysScan, bool isDirect);
119133
WalletService createLitecoinWalletService(Box<WalletInfo> walletInfoSource,
120-
Box<UnspentCoinsInfo> unspentCoinSource, bool isDirect);
134+
Box<UnspentCoinsInfo> unspentCoinSource, bool alwaysScan, bool isDirect);
121135
TransactionPriority getBitcoinTransactionPriorityMedium();
122136
TransactionPriority getBitcoinTransactionPriorityCustom();
123137
TransactionPriority getLitecoinTransactionPriorityMedium();
@@ -131,6 +145,7 @@ abstract class Bitcoin {
131145
Future<void> setAddressType(Object wallet, dynamic option);
132146
ReceivePageOption getSelectedAddressType(Object wallet);
133147
List<ReceivePageOption> getBitcoinReceivePageOptions();
148+
List<ReceivePageOption> getLitecoinReceivePageOptions();
134149
BitcoinAddressType getBitcoinAddressType(ReceivePageOption option);
135150
bool hasSelectedSilentPayments(Object wallet);
136151
bool isBitcoinReceivePageOption(ReceivePageOption option);
@@ -142,7 +157,8 @@ abstract class Bitcoin {
142157

143158
Future<PendingTransaction> replaceByFee(
144159
Object wallet, String transactionHash, String fee);
145-
Future<bool> canReplaceByFee(Object wallet, String transactionHash);
160+
Future<String?> canReplaceByFee(Object wallet, Object tx);
161+
int getTransactionVSize(Object wallet, String txHex);
146162
Future<bool> isChangeSufficientForFee(
147163
Object wallet, String txId, String newFee);
148164
int getFeeAmountForPriority(Object wallet, TransactionPriority priority,
@@ -153,18 +169,33 @@ abstract class Bitcoin {
153169
int feeAmountWithFeeRate(
154170
Object wallet, int feeRate, int inputsCount, int outputsCount,
155171
{int? size});
156-
int getHeightByDate({required DateTime date});
172+
Future<bool> checkIfMempoolAPIIsEnabled(Object wallet);
173+
Future<int> getHeightByDate(
174+
{required DateTime date, bool? bitcoinMempoolAPIEnabled});
175+
int getLitecoinHeightByDate({required DateTime date});
157176
Future<void> rescan(Object wallet, {required int height, bool? doSingleScan});
158177
Future<bool> getNodeIsElectrsSPEnabled(Object wallet);
159178
void deleteSilentPaymentAddress(Object wallet, String address);
160179
Future<void> updateFeeRates(Object wallet);
161180
int getMaxCustomFeeRate(Object wallet);
162-
163-
void setLedger(WalletBase wallet, Ledger ledger, LedgerDevice device);
164-
Future<List<HardwareAccountData>> getHardwareWalletAccounts(
181+
void setLedgerConnection(
182+
WalletBase wallet, ledger.LedgerConnection connection);
183+
Future<List<HardwareAccountData>> getHardwareWalletBitcoinAccounts(
184+
LedgerViewModel ledgerVM,
185+
{int index = 0,
186+
int limit = 5});
187+
Future<List<HardwareAccountData>> getHardwareWalletLitecoinAccounts(
165188
LedgerViewModel ledgerVM,
166189
{int index = 0,
167190
int limit = 5});
191+
List<Output> updateOutputs(
192+
PendingTransaction pendingTransaction, List<Output> outputs);
193+
bool txIsReceivedSilentPayment(TransactionInfo txInfo);
194+
bool txIsMweb(TransactionInfo txInfo);
195+
Future<void> setMwebEnabled(Object wallet, bool enabled);
196+
bool getMwebEnabled(Object wallet);
197+
String? getUnusedMwebAddress(Object wallet);
198+
String? getUnusedSegwitAddress(Object wallet);
168199

169200
Future<Map<String, dynamic>> buildV2PjStr({
170201
int? amount,

lib/bitcoin/cw_bitcoin.dart

+98-99
Original file line numberDiff line numberDiff line change
@@ -752,116 +752,115 @@ class CWBitcoin extends Bitcoin {
752752
} catch (_) {
753753
return null;
754754
}
755+
}
755756

756-
Future<Map<String, dynamic>> buildV2PjStr({
757-
int? amount,
758-
required String address,
759-
required bool isTestnet,
760-
required BigInt expireAfter,
761-
}) async {
762-
final res = await payjoin.buildV2PjStr(
763-
amount: amount,
764-
address: address,
765-
network: isTestnet ? payjoin.testnet : payjoin.mainnet,
766-
expireAfter: expireAfter,
767-
);
768-
return res;
769-
}
757+
Future<Map<String, dynamic>> buildV2PjStr({
758+
int? amount,
759+
required String address,
760+
required bool isTestnet,
761+
required BigInt expireAfter,
762+
}) async {
763+
final res = await payjoin.buildV2PjStr(
764+
amount: amount,
765+
address: address,
766+
network: isTestnet ? payjoin.testnet : payjoin.mainnet,
767+
expireAfter: expireAfter,
768+
);
769+
return res;
770+
}
770771

771-
@override
772-
Future<UncheckedProposal> handleReceiverSession(Receiver session) async {
773-
final res = await payjoin.handleReceiverSession(session);
774-
return res;
775-
}
772+
@override
773+
Future<UncheckedProposal> handleReceiverSession(Receiver session) async {
774+
final res = await payjoin.handleReceiverSession(session);
775+
return res;
776+
}
776777

777-
@override
778-
Future<String> extractOriginalTransaction(
779-
UncheckedProposal proposal) async {
780-
final res = await payjoin.extractOriginalTransaction(proposal);
781-
return res;
782-
}
778+
@override
779+
Future<String> extractOriginalTransaction(UncheckedProposal proposal) async {
780+
final res = await payjoin.extractOriginalTransaction(proposal);
781+
return res;
782+
}
783783

784-
@override
785-
Future<PayjoinProposal> processProposal({
786-
required UncheckedProposal proposal,
787-
required Object receiverWallet,
788-
}) async {
789-
final res = await payjoin.processProposal(
790-
proposal: proposal, receiverWallet: receiverWallet);
791-
return res;
792-
}
784+
@override
785+
Future<PayjoinProposal> processProposal({
786+
required UncheckedProposal proposal,
787+
required Object receiverWallet,
788+
}) async {
789+
final res = await payjoin.processProposal(
790+
proposal: proposal, receiverWallet: receiverWallet);
791+
return res;
792+
}
793793

794-
@override
795-
Future<String> sendFinalProposal(PayjoinProposal finalProposal) async {
796-
final res = await payjoin.sendFinalProposal(finalProposal);
797-
return res;
798-
}
794+
@override
795+
Future<String> sendFinalProposal(PayjoinProposal finalProposal) async {
796+
final res = await payjoin.sendFinalProposal(finalProposal);
797+
return res;
798+
}
799799

800-
@override
801-
Future<String> getTxIdFromPsbt(String psbtBase64) async {
802-
final res = await payjoin.getTxIdFromPsbt(psbtBase64);
803-
return res;
804-
}
800+
@override
801+
Future<String> getTxIdFromPsbt(String psbtBase64) async {
802+
final res = await payjoin.getTxIdFromPsbt(psbtBase64);
803+
return res;
804+
}
805805

806-
@override
807-
Future<Uri?> stringToPjUri(String pj) async {
808-
return await payjoin.stringToPjUri(pj);
809-
}
806+
@override
807+
Future<Uri?> stringToPjUri(String pj) async {
808+
return await payjoin.stringToPjUri(pj);
809+
}
810810

811-
@override
812-
Future<String> buildOriginalPsbt(
813-
Object wallet,
814-
dynamic pjUri,
815-
int fee,
816-
double amount,
817-
Object credentials,
818-
) async {
819-
final res = await payjoin.buildOriginalPsbt(
820-
wallet,
821-
pjUri,
822-
fee,
823-
amount,
824-
isTestnet(wallet),
825-
credentials,
826-
);
811+
@override
812+
Future<String> buildOriginalPsbt(
813+
Object wallet,
814+
dynamic pjUri,
815+
int fee,
816+
double amount,
817+
Object credentials,
818+
) async {
819+
final res = await payjoin.buildOriginalPsbt(
820+
wallet,
821+
pjUri,
822+
fee,
823+
amount,
824+
isTestnet(wallet),
825+
credentials,
826+
);
827827

828-
return res;
829-
}
828+
return res;
829+
}
830830

831-
@override
832-
Future<Sender> buildPayjoinRequest(
833-
String originalPsbt,
834-
dynamic pjUri,
835-
int fee,
836-
) async {
837-
final res = await payjoin.buildPayjoinRequest(
838-
originalPsbt,
839-
pjUri,
840-
fee,
841-
);
842-
return res;
843-
}
831+
@override
832+
Future<Sender> buildPayjoinRequest(
833+
String originalPsbt,
834+
dynamic pjUri,
835+
int fee,
836+
) async {
837+
final res = await payjoin.buildPayjoinRequest(
838+
originalPsbt,
839+
pjUri,
840+
fee,
841+
);
842+
return res;
843+
}
844844

845-
@override
846-
Future<String> requestAndPollV2Proposal(
847-
Sender sender,
848-
) async {
849-
final res = await payjoin.requestAndPollV2Proposal(sender);
850-
return res;
851-
}
845+
@override
846+
Future<String> requestAndPollV2Proposal(
847+
Sender sender,
848+
) async {
849+
final res = await payjoin.requestAndPollV2Proposal(sender);
850+
return res;
851+
}
852852

853-
@override
854-
Future<PendingBitcoinTransaction> extractPjTx(
855-
Object wallet,
856-
String psbtString,
857-
Object credentials,
858-
) async {
859-
final res = await payjoin.extractPjTx(
860-
wallet,
861-
psbtString,
862-
credentials,
863-
);
864-
return res;
865-
}
853+
@override
854+
Future<PendingBitcoinTransaction> extractPjTx(
855+
Object wallet,
856+
String psbtString,
857+
Object credentials,
858+
) async {
859+
final res = await payjoin.extractPjTx(
860+
wallet,
861+
psbtString,
862+
credentials,
863+
);
864+
return res;
866865
}
867866
}

0 commit comments

Comments
 (0)