mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-29 04:49:51 +00:00
Merge branch 'main' of https://github.com/cake-tech/cake_wallet into update_app_deps
This commit is contained in:
commit
299484d0f0
6 changed files with 16 additions and 12 deletions
|
@ -119,9 +119,11 @@ class ElectrumClient {
|
||||||
_setConnectionStatus(ConnectionStatus.failed);
|
_setConnectionStatus(ConnectionStatus.failed);
|
||||||
},
|
},
|
||||||
onDone: () {
|
onDone: () {
|
||||||
socket = null;
|
|
||||||
unterminatedString = '';
|
unterminatedString = '';
|
||||||
if (host == socket?.address.host) _setConnectionStatus(ConnectionStatus.disconnected);
|
if (host == socket?.address.host) {
|
||||||
|
socket = null;
|
||||||
|
_setConnectionStatus(ConnectionStatus.disconnected);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
cancelOnError: true,
|
cancelOnError: true,
|
||||||
);
|
);
|
||||||
|
|
|
@ -42,7 +42,6 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
import 'package:rxdart/subjects.dart';
|
import 'package:rxdart/subjects.dart';
|
||||||
import 'package:http/http.dart' as http;
|
|
||||||
import 'package:sp_scanner/sp_scanner.dart';
|
import 'package:sp_scanner/sp_scanner.dart';
|
||||||
|
|
||||||
part 'electrum_wallet.g.dart';
|
part 'electrum_wallet.g.dart';
|
||||||
|
@ -89,7 +88,7 @@ abstract class ElectrumWalletBase
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
this.unspentCoinsInfo = unspentCoinsInfo,
|
this.unspentCoinsInfo = unspentCoinsInfo,
|
||||||
this.isTestnet = network == BitcoinNetwork.testnet,
|
this.isTestnet = !network.isMainnet,
|
||||||
this._mnemonic = mnemonic,
|
this._mnemonic = mnemonic,
|
||||||
super(walletInfo) {
|
super(walletInfo) {
|
||||||
this.electrumClient = electrumClient ?? ElectrumClient();
|
this.electrumClient = electrumClient ?? ElectrumClient();
|
||||||
|
@ -182,7 +181,7 @@ abstract class ElectrumWalletBase
|
||||||
BasedUtxoNetwork network;
|
BasedUtxoNetwork network;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool? isTestnet;
|
bool isTestnet;
|
||||||
|
|
||||||
bool get hasSilentPaymentsScanning => type == WalletType.bitcoin;
|
bool get hasSilentPaymentsScanning => type == WalletType.bitcoin;
|
||||||
|
|
||||||
|
@ -426,7 +425,7 @@ abstract class ElectrumWalletBase
|
||||||
await updateTransactions();
|
await updateTransactions();
|
||||||
await updateAllUnspents();
|
await updateAllUnspents();
|
||||||
await updateBalance();
|
await updateBalance();
|
||||||
updateFeeRates();
|
await updateFeeRates();
|
||||||
|
|
||||||
_updateFeeRateTimer ??=
|
_updateFeeRateTimer ??=
|
||||||
Timer.periodic(const Duration(minutes: 1), (timer) async => await updateFeeRates());
|
Timer.periodic(const Duration(minutes: 1), (timer) async => await updateFeeRates());
|
||||||
|
@ -448,6 +447,8 @@ abstract class ElectrumWalletBase
|
||||||
final feeRates = await electrumClient.feeRates(network: network);
|
final feeRates = await electrumClient.feeRates(network: network);
|
||||||
if (feeRates != [0, 0, 0]) {
|
if (feeRates != [0, 0, 0]) {
|
||||||
_feeRates = feeRates;
|
_feeRates = feeRates;
|
||||||
|
} else if (isTestnet) {
|
||||||
|
_feeRates = [1, 1, 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1005,7 +1006,7 @@ abstract class ElectrumWalletBase
|
||||||
if (estimatedTx.inputPrivKeyInfos.isEmpty) {
|
if (estimatedTx.inputPrivKeyInfos.isEmpty) {
|
||||||
error += "\nNo private keys generated.";
|
error += "\nNo private keys generated.";
|
||||||
} else {
|
} else {
|
||||||
error += "\nAddress: ${utxo.ownerDetails.address.toAddress()}";
|
error += "\nAddress: ${utxo.ownerDetails.address.toAddress(network)}";
|
||||||
|
|
||||||
key = estimatedTx.inputPrivKeyInfos.firstWhereOrNull((element) {
|
key = estimatedTx.inputPrivKeyInfos.firstWhereOrNull((element) {
|
||||||
final elemPubkey = element.privkey.getPublic().toHex();
|
final elemPubkey = element.privkey.getPublic().toHex();
|
||||||
|
@ -1944,8 +1945,9 @@ abstract class ElectrumWalletBase
|
||||||
Future<void> _setInitialHeight() async {
|
Future<void> _setInitialHeight() async {
|
||||||
if (_chainTipUpdateSubject != null) return;
|
if (_chainTipUpdateSubject != null) return;
|
||||||
|
|
||||||
|
_currentChainTip = await getUpdatedChainTip();
|
||||||
|
|
||||||
if ((_currentChainTip == null || _currentChainTip! == 0) && walletInfo.restoreHeight == 0) {
|
if ((_currentChainTip == null || _currentChainTip! == 0) && walletInfo.restoreHeight == 0) {
|
||||||
await getUpdatedChainTip();
|
|
||||||
await walletInfo.updateRestoreHeight(_currentChainTip!);
|
await walletInfo.updateRestoreHeight(_currentChainTip!);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,5 +95,5 @@ abstract class WalletBase<BalanceType extends Balance, HistoryType extends Trans
|
||||||
|
|
||||||
Future<bool> verifyMessage(String message, String signature, {String? address = null});
|
Future<bool> verifyMessage(String message, String signature, {String? address = null});
|
||||||
|
|
||||||
bool? isTestnet;
|
bool isTestnet = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -516,7 +516,7 @@ class CWBitcoin extends Bitcoin {
|
||||||
@override
|
@override
|
||||||
bool isTestnet(Object wallet) {
|
bool isTestnet(Object wallet) {
|
||||||
final bitcoinWallet = wallet as ElectrumWallet;
|
final bitcoinWallet = wallet as ElectrumWallet;
|
||||||
return bitcoinWallet.isTestnet ?? false;
|
return bitcoinWallet.isTestnet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -52,7 +52,7 @@ abstract class NodeListViewModelBase with Store {
|
||||||
|
|
||||||
switch (_appStore.wallet!.type) {
|
switch (_appStore.wallet!.type) {
|
||||||
case WalletType.bitcoin:
|
case WalletType.bitcoin:
|
||||||
if (_appStore.wallet!.isTestnet == true) {
|
if (_appStore.wallet!.isTestnet) {
|
||||||
node = getBitcoinTestnetDefaultElectrumServer(nodes: _nodeSource)!;
|
node = getBitcoinTestnetDefaultElectrumServer(nodes: _nodeSource)!;
|
||||||
} else {
|
} else {
|
||||||
node = getBitcoinDefaultElectrumServer(nodes: _nodeSource)!;
|
node = getBitcoinDefaultElectrumServer(nodes: _nodeSource)!;
|
||||||
|
|
|
@ -152,7 +152,7 @@ abstract class TransactionDetailsViewModelBase with Store {
|
||||||
case WalletType.monero:
|
case WalletType.monero:
|
||||||
return 'https://monero.com/tx/${txId}';
|
return 'https://monero.com/tx/${txId}';
|
||||||
case WalletType.bitcoin:
|
case WalletType.bitcoin:
|
||||||
return 'https://mempool.space/${wallet.isTestnet == true ? "testnet/" : ""}tx/${txId}';
|
return 'https://mempool.space/${wallet.isTestnet ? "testnet/" : ""}tx/${txId}';
|
||||||
case WalletType.litecoin:
|
case WalletType.litecoin:
|
||||||
return 'https://blockchair.com/litecoin/transaction/${txId}';
|
return 'https://blockchair.com/litecoin/transaction/${txId}';
|
||||||
case WalletType.bitcoinCash:
|
case WalletType.bitcoinCash:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue