mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
fix: initial fixes for timeouts
This commit is contained in:
parent
d1c45a5326
commit
aa374f9127
3 changed files with 23 additions and 24 deletions
|
@ -270,7 +270,9 @@ class ElectrumClient {
|
|||
Future<dynamic> getTransaction({required String hash, required bool verbose}) async {
|
||||
try {
|
||||
final result = await callWithTimeout(
|
||||
method: 'blockchain.transaction.get', params: [hash, verbose], timeout: 10000);
|
||||
method: 'blockchain.transaction.get',
|
||||
params: [hash, verbose],
|
||||
);
|
||||
return result;
|
||||
} on RequestFailedTimeoutException catch (_) {
|
||||
return <String, dynamic>{};
|
||||
|
|
|
@ -123,6 +123,7 @@ class ElectrumTransactionInfo extends TransactionInfo {
|
|||
List<String> inputAddresses = [];
|
||||
List<String> outputAddresses = [];
|
||||
|
||||
try {
|
||||
for (var i = 0; i < bundle.originalTransaction.inputs.length; i++) {
|
||||
final input = bundle.originalTransaction.inputs[i];
|
||||
final inputTransaction = bundle.ins[i];
|
||||
|
@ -133,6 +134,7 @@ class ElectrumTransactionInfo extends TransactionInfo {
|
|||
inputAddresses.add(addressFromOutputScript(outTransaction.scriptPubKey, network));
|
||||
}
|
||||
}
|
||||
} catch (_) {}
|
||||
|
||||
final receivedAmounts = <int>[];
|
||||
for (final out in bundle.originalTransaction.outputs) {
|
||||
|
|
|
@ -1423,7 +1423,6 @@ abstract class ElectrumWalletBase
|
|||
required List<BitcoinUnspent> updatedUnspentCoins,
|
||||
required List<List<BitcoinUnspent>?> results,
|
||||
}) {
|
||||
|
||||
if (failedCount == results.length) {
|
||||
printV("All UTXOs failed to fetch, falling back to previous UTXOs");
|
||||
return previousUnspentCoins;
|
||||
|
@ -1918,19 +1917,15 @@ abstract class ElectrumWalletBase
|
|||
final original = BtcTransaction.fromRaw(transactionHex);
|
||||
final ins = <BtcTransaction>[];
|
||||
|
||||
for (final vin in original.inputs) {
|
||||
final verboseTransaction = await electrumClient.getTransactionVerbose(hash: vin.txId);
|
||||
|
||||
final String inputTransactionHex;
|
||||
|
||||
if (verboseTransaction.isEmpty) {
|
||||
inputTransactionHex = await electrumClient.getTransactionHex(hash: hash);
|
||||
} else {
|
||||
inputTransactionHex = verboseTransaction['hex'] as String;
|
||||
}
|
||||
try {
|
||||
await Future.forEach(original.inputs, (vin) async {
|
||||
String inputTransactionHex = await electrumClient.getTransactionHex(
|
||||
hash: (vin as TxInput).txId,
|
||||
);
|
||||
|
||||
ins.add(BtcTransaction.fromRaw(inputTransactionHex));
|
||||
}
|
||||
});
|
||||
} catch (_) {}
|
||||
|
||||
return ElectrumTransactionBundle(
|
||||
original,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue