mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-11-17 17:57:40 +00:00
timeout check server features on wallet creation (allow offline new wallet creation on timeout)
This commit is contained in:
parent
5c9664c667
commit
d86f0de130
6 changed files with 128 additions and 110 deletions
|
@ -1519,22 +1519,28 @@ class BitcoinWallet extends CoinServiceAPI {
|
||||||
Logging.instance
|
Logging.instance
|
||||||
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.bitcoin:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
throw Exception("genesis hash does not match main net!");
|
switch (coin) {
|
||||||
}
|
case Coin.bitcoin:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
case Coin.bitcoinTestNet:
|
throw Exception("genesis hash does not match main net!");
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
}
|
||||||
throw Exception("genesis hash does not match test net!");
|
break;
|
||||||
}
|
case Coin.bitcoinTestNet:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match test net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1405,22 +1405,28 @@ class BitcoinCashWallet extends CoinServiceAPI {
|
||||||
Logging.instance
|
Logging.instance
|
||||||
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.bitcoincash:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
throw Exception("genesis hash does not match main net!");
|
switch (coin) {
|
||||||
}
|
case Coin.bitcoincash:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
case Coin.bitcoincashTestnet:
|
throw Exception("genesis hash does not match main net!");
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
}
|
||||||
throw Exception("genesis hash does not match test net!");
|
break;
|
||||||
}
|
case Coin.bitcoincashTestnet:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match test net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1268,22 +1268,28 @@ class DogecoinWallet extends CoinServiceAPI {
|
||||||
Logging.instance
|
Logging.instance
|
||||||
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.dogecoin:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
throw Exception("genesis hash does not match main net!");
|
switch (coin) {
|
||||||
}
|
case Coin.dogecoin:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
case Coin.dogecoinTestNet:
|
throw Exception("genesis hash does not match main net!");
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
}
|
||||||
throw Exception("genesis hash does not match test net!");
|
break;
|
||||||
}
|
case Coin.dogecoinTestNet:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match test net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a BitcoinWallet using a non bitcoin coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2148,32 +2148,29 @@ class FiroWallet extends CoinServiceAPI {
|
||||||
Logging.instance
|
Logging.instance
|
||||||
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.firo:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
throw Exception("genesis hash does not match main net!");
|
switch (coin) {
|
||||||
}
|
case Coin.firo:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
case Coin.firoTestNet:
|
throw Exception("genesis hash does not match main net!");
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
}
|
||||||
throw Exception("genesis hash does not match test net!");
|
break;
|
||||||
}
|
case Coin.firoTestNet:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match test net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a FiroWallet using a non firo coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a FiroWallet using a non firo coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
// if (_networkType == BasicNetworkType.main) {
|
|
||||||
// if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
|
||||||
// throw Exception("genesis hash does not match!");
|
|
||||||
// }
|
|
||||||
// } else if (_networkType == BasicNetworkType.test) {
|
|
||||||
// if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
|
||||||
// throw Exception("genesis hash does not match!");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// this should never fail as overwriting a mnemonic is big bad
|
// this should never fail as overwriting a mnemonic is big bad
|
||||||
|
|
|
@ -1521,23 +1521,29 @@ class LitecoinWallet extends CoinServiceAPI {
|
||||||
Logging.instance
|
Logging.instance
|
||||||
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
.log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.litecoin:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
print(features['genesis_hash']);
|
switch (coin) {
|
||||||
throw Exception("genesis hash does not match main net!");
|
case Coin.litecoin:
|
||||||
}
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
break;
|
print(features['genesis_hash']);
|
||||||
case Coin.litecoinTestNet:
|
throw Exception("genesis hash does not match main net!");
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
}
|
||||||
throw Exception("genesis hash does not match test net!");
|
break;
|
||||||
}
|
case Coin.litecoinTestNet:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match test net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a LitecoinWallet using a non litecoin coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a LitecoinWallet using a non litecoin coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -344,27 +344,24 @@ class NamecoinWallet extends CoinServiceAPI {
|
||||||
Logging.instance.log("IS_INTEGRATION_TEST: $integrationTestFlag",
|
Logging.instance.log("IS_INTEGRATION_TEST: $integrationTestFlag",
|
||||||
level: LogLevel.Info);
|
level: LogLevel.Info);
|
||||||
if (!integrationTestFlag) {
|
if (!integrationTestFlag) {
|
||||||
final features = await electrumXClient.getServerFeatures();
|
try {
|
||||||
Logging.instance.log("features: $features", level: LogLevel.Info);
|
final features = await electrumXClient
|
||||||
switch (coin) {
|
.getServerFeatures()
|
||||||
case Coin.namecoin:
|
.timeout(const Duration(seconds: 3));
|
||||||
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
Logging.instance.log("features: $features", level: LogLevel.Info);
|
||||||
throw Exception("genesis hash does not match main net!");
|
switch (coin) {
|
||||||
}
|
case Coin.namecoin:
|
||||||
break;
|
if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
||||||
default:
|
throw Exception("genesis hash does not match main net!");
|
||||||
throw Exception(
|
}
|
||||||
"Attempted to generate a NamecoinWallet using a non namecoin coin type: ${coin.name}");
|
break;
|
||||||
|
default:
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to generate a NamecoinWallet using a non namecoin coin type: ${coin.name}");
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log("$e/n$s", level: LogLevel.Info);
|
||||||
}
|
}
|
||||||
// if (_networkType == BasicNetworkType.main) {
|
|
||||||
// if (features['genesis_hash'] != GENESIS_HASH_MAINNET) {
|
|
||||||
// throw Exception("genesis hash does not match main net!");
|
|
||||||
// }
|
|
||||||
// } else if (_networkType == BasicNetworkType.test) {
|
|
||||||
// if (features['genesis_hash'] != GENESIS_HASH_TESTNET) {
|
|
||||||
// throw Exception("genesis hash does not match test net!");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// check to make sure we aren't overwriting a mnemonic
|
// check to make sure we aren't overwriting a mnemonic
|
||||||
// this should never fail
|
// this should never fail
|
||||||
|
|
Loading…
Reference in a new issue