From af87ec76efa62d8a3dfee6d78603f440001e8423 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 24 Apr 2024 15:00:36 -0600 Subject: [PATCH] build runner run updates --- .../isar/models/blockchain_data/address.dart | 4 +- .../models/blockchain_data/address.g.dart | 2 + lib/wallets/isar/models/wallet_info.g.dart | 2 + test/cached_electrumx_test.mocks.dart | 304 +- test/electrumx_test.dart | 3556 ++++++++--------- test/electrumx_test.mocks.dart | 771 ---- test/json_rpc_test.dart | 67 - .../pages/send_view/send_view_test.mocks.dart | 13 + .../exchange/exchange_view_test.mocks.dart | 13 + ...allet_settings_view_screen_test.mocks.dart | 175 +- .../bitcoin/bitcoin_wallet_test.mocks.dart | 90 +- .../bitcoincash_wallet_test.mocks.dart | 90 +- .../dogecoin/dogecoin_wallet_test.mocks.dart | 90 +- .../namecoin/namecoin_wallet_test.mocks.dart | 90 +- .../particl/particl_wallet_test.mocks.dart | 90 +- .../managed_favorite_test.mocks.dart | 13 + .../node_options_sheet_test.mocks.dart | 13 + .../transaction_card_test.mocks.dart | 13 + 18 files changed, 2266 insertions(+), 3130 deletions(-) delete mode 100644 test/electrumx_test.mocks.dart delete mode 100644 test/json_rpc_test.dart diff --git a/lib/models/isar/models/blockchain_data/address.dart b/lib/models/isar/models/blockchain_data/address.dart index a5bd64431..76d69f104 100644 --- a/lib/models/isar/models/blockchain_data/address.dart +++ b/lib/models/isar/models/blockchain_data/address.dart @@ -164,8 +164,8 @@ enum AddressType { stellar, tezos, frostMS, - solana, - p2tr; + p2tr, + solana; String get readableName { switch (this) { diff --git a/lib/models/isar/models/blockchain_data/address.g.dart b/lib/models/isar/models/blockchain_data/address.g.dart index ae96a3ac9..7e78cbee8 100644 --- a/lib/models/isar/models/blockchain_data/address.g.dart +++ b/lib/models/isar/models/blockchain_data/address.g.dart @@ -268,6 +268,7 @@ const _AddresstypeEnumValueMap = { 'tezos': 12, 'frostMS': 13, 'p2tr': 14, + 'solana': 15, }; const _AddresstypeValueEnumMap = { 0: AddressType.p2pkh, @@ -285,6 +286,7 @@ const _AddresstypeValueEnumMap = { 12: AddressType.tezos, 13: AddressType.frostMS, 14: AddressType.p2tr, + 15: AddressType.solana, }; Id _addressGetId(Address object) { diff --git a/lib/wallets/isar/models/wallet_info.g.dart b/lib/wallets/isar/models/wallet_info.g.dart index 5e0ed135f..bc0a5828e 100644 --- a/lib/wallets/isar/models/wallet_info.g.dart +++ b/lib/wallets/isar/models/wallet_info.g.dart @@ -267,6 +267,7 @@ const _WalletInfomainAddressTypeEnumValueMap = { 'tezos': 12, 'frostMS': 13, 'p2tr': 14, + 'solana': 15, }; const _WalletInfomainAddressTypeValueEnumMap = { 0: AddressType.p2pkh, @@ -284,6 +285,7 @@ const _WalletInfomainAddressTypeValueEnumMap = { 12: AddressType.tezos, 13: AddressType.frostMS, 14: AddressType.p2tr, + 15: AddressType.solana, }; Id _walletInfoGetId(WalletInfo object) { diff --git a/test/cached_electrumx_test.mocks.dart b/test/cached_electrumx_test.mocks.dart index dcbb78453..1b032ceff 100644 --- a/test/cached_electrumx_test.mocks.dart +++ b/test/cached_electrumx_test.mocks.dart @@ -3,19 +3,21 @@ // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; -import 'dart:ui' as _i11; +import 'dart:async' as _i6; +import 'dart:ui' as _i12; -import 'package:decimal/decimal.dart' as _i2; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i9; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i10; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i7; -import 'package:stackwallet/utilities/prefs.dart' as _i6; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i5; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i10; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i9; +import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i11; +import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i8; +import 'package:stackwallet/utilities/prefs.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' - as _i3; + as _i4; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -28,8 +30,9 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_i // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -38,8 +41,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -48,8 +51,18 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeFusionInfo_2 extends _i1.SmartFake implements _i3.FusionInfo { - _FakeFusionInfo_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFusionInfo_3 extends _i1.SmartFake implements _i4.FusionInfo { + _FakeFusionInfo_3( Object parent, Invocation parentInvocation, ) : super( @@ -61,13 +74,21 @@ class _FakeFusionInfo_2 extends _i1.SmartFake implements _i3.FusionInfo { /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i5.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -91,7 +112,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -112,16 +133,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -140,10 +161,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -160,10 +181,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -176,10 +197,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -187,10 +208,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -198,10 +219,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -214,10 +235,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(''), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -231,10 +252,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -247,11 +268,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -259,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -276,11 +297,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -288,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -308,10 +329,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -327,10 +348,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -343,10 +364,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -360,20 +381,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -389,10 +410,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -405,10 +426,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -421,21 +442,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -443,10 +464,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -459,7 +480,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -470,15 +491,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -486,13 +507,13 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [Prefs]. /// /// See the documentation for Mockito's code generation for more information. -class MockPrefs extends _i1.Mock implements _i6.Prefs { +class MockPrefs extends _i1.Mock implements _i7.Prefs { MockPrefs() { _i1.throwOnMissingStub(this); } @@ -548,12 +569,12 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - _i7.SyncingType get syncType => (super.noSuchMethod( + _i8.SyncingType get syncType => (super.noSuchMethod( Invocation.getter(#syncType), - returnValue: _i7.SyncingType.currentWalletOnly, - ) as _i7.SyncingType); + returnValue: _i8.SyncingType.currentWalletOnly, + ) as _i8.SyncingType); @override - set syncType(_i7.SyncingType? syncType) => super.noSuchMethod( + set syncType(_i8.SyncingType? syncType) => super.noSuchMethod( Invocation.setter( #syncType, syncType, @@ -712,12 +733,12 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - _i8.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i9.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i8.BackupFrequencyType.everyTenMinutes, - ) as _i8.BackupFrequencyType); + returnValue: _i9.BackupFrequencyType.everyTenMinutes, + ) as _i9.BackupFrequencyType); @override - set backupFrequencyType(_i8.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i9.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -863,6 +884,19 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false, @@ -881,61 +915,61 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValue: false, ) as bool); @override - _i5.Future init() => (super.noSuchMethod( + _i6.Future init() => (super.noSuchMethod( Invocation.method( #init, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( + _i6.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( Invocation.method( #incrementCurrentNotificationIndex, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future isExternalCallsSet() => (super.noSuchMethod( + _i6.Future isExternalCallsSet() => (super.noSuchMethod( Invocation.method( #isExternalCallsSet, [], ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future saveUserID(String? userId) => (super.noSuchMethod( + _i6.Future saveUserID(String? userId) => (super.noSuchMethod( Invocation.method( #saveUserID, [userId], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( + _i6.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( Invocation.method( #saveSignupEpoch, [signupEpoch], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i9.AmountUnit amountUnit(_i10.Coin? coin) => (super.noSuchMethod( + _i10.AmountUnit amountUnit(_i11.Coin? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i9.AmountUnit.normal, - ) as _i9.AmountUnit); + returnValue: _i10.AmountUnit.normal, + ) as _i10.AmountUnit); @override void updateAmountUnit({ - required _i10.Coin? coin, - required _i9.AmountUnit? amountUnit, + required _i11.Coin? coin, + required _i10.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -949,7 +983,7 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i10.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i11.Coin? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -958,7 +992,7 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { ) as int); @override void updateMaxDecimals({ - required _i10.Coin? coin, + required _i11.Coin? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -973,23 +1007,23 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - _i3.FusionInfo getFusionServerInfo(_i10.Coin? coin) => (super.noSuchMethod( + _i4.FusionInfo getFusionServerInfo(_i11.Coin? coin) => (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], ), - returnValue: _FakeFusionInfo_2( + returnValue: _FakeFusionInfo_3( this, Invocation.method( #getFusionServerInfo, [coin], ), ), - ) as _i3.FusionInfo); + ) as _i4.FusionInfo); @override void setFusionServerInfo( - _i10.Coin? coin, - _i3.FusionInfo? fusionServerInfo, + _i11.Coin? coin, + _i4.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( Invocation.method( @@ -1002,7 +1036,7 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1010,7 +1044,7 @@ class MockPrefs extends _i1.Mock implements _i6.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/electrumx_test.dart b/test/electrumx_test.dart index 64dc69a58..06ed6111d 100644 --- a/test/electrumx_test.dart +++ b/test/electrumx_test.dart @@ -1,1778 +1,1778 @@ -import 'dart:io'; - -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/electrumx_rpc/rpc.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; - -import 'electrumx_test.mocks.dart'; -import 'sample_data/get_anonymity_set_sample_data.dart'; -import 'sample_data/get_used_serials_sample_data.dart'; -import 'sample_data/transaction_data_samples.dart'; - -@GenerateMocks([JsonRPC, Prefs, TorService]) -void main() { - group("factory constructors and getters", () { - test("electrumxnode .from factory", () { - final nodeA = ElectrumXNode( - address: "some address", - port: 1, - name: "some name", - id: "some ID", - useSSL: true, - ); - - final nodeB = ElectrumXNode.from(nodeA); - - expect(nodeB.toString(), nodeA.toString()); - expect(nodeA == nodeB, false); - }); - - test("electrumx .from factory", () { - final node = ElectrumXNode( - address: "some address", - port: 1, - name: "some name", - id: "some ID", - useSSL: true, - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - - final client = ElectrumXClient.from( - node: node, - failovers: [], - prefs: mockPrefs, - torService: torService, - ); - - expect(client.useSSL, node.useSSL); - expect(client.host, node.address); - expect(client.port, node.port); - expect(client.rpcClient, null); - - verifyNoMoreInteractions(mockPrefs); - }); - }); - - test("Server error", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["",true]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "error": { - "code": 1, - "message": "None should be a transaction hash", - }, - "id": "some requestId", - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - failovers: [], - prefs: mockPrefs, - torService: torService, - ); - - expect(() => client.getTransaction(requestID: "some requestId", txHash: ''), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - group("getBlockHeadTip", () { - test("getBlockHeadTip success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.headers.subscribe"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": {"height": 520481, "hex": "some block hex string"}, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = - await (client.getBlockHeadTip(requestID: "some requestId")); - - expect(result["height"], 520481); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getBlockHeadTip throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.headers.subscribe"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect(() => client.getBlockHeadTip(requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("ping", () { - test("ping success", () async { - final mockClient = MockJsonRPC(); - const command = "server.ping"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 2), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": null, - "id": "some requestId", - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.ping(requestID: "some requestId"); - - expect(result, true); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("ping throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "server.ping"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 2), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect(() => client.ping(requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getServerFeatures", () { - test("getServerFeatures success", () async { - final mockClient = MockJsonRPC(); - const command = "server.features"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": { - "genesis_hash": - "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", - "hosts": { - "0.0.0.0": {"tcp_port": 51001, "ssl_port": 51002} - }, - "protocol_max": "1.0", - "protocol_min": "1.0", - "pruning": null, - "server_version": "ElectrumX 1.0.17", - "hash_function": "sha256" - }, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = - await client.getServerFeatures(requestID: "some requestId"); - - expect(result, { - "genesis_hash": - "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", - "hosts": { - "0.0.0.0": {"tcp_port": 51001, "ssl_port": 51002} - }, - "protocol_max": "1.0", - "protocol_min": "1.0", - "pruning": null, - "server_version": "ElectrumX 1.0.17", - "hash_function": "sha256", - }); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getServerFeatures throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "server.features"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect(() => client.getServerFeatures(requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("broadcastTransaction", () { - test("broadcastTransaction success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.broadcast"; - const jsonArgs = '["some raw transaction string"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": "the txid of the rawtx", - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.broadcastTransaction( - rawTx: "some raw transaction string", requestID: "some requestId"); - - expect(result, "the txid of the rawtx"); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("broadcastTransaction throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.broadcast"; - const jsonArgs = '["some raw transaction string"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.broadcastTransaction( - rawTx: "some raw transaction string", - requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getBalance", () { - test("getBalance success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.get_balance"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": { - "confirmed": 103873966, - "unconfirmed": 23684400, - }, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getBalance( - scripthash: "dummy hash", requestID: "some requestId"); - - expect(result, {"confirmed": 103873966, "unconfirmed": 23684400}); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getBalance throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.get_balance"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getBalance( - scripthash: "dummy hash", requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getHistory", () { - test("getHistory success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.get_history"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 5), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": [ - { - "height": 200004, - "tx_hash": - "acc3758bd2a26f869fcc67d48ff30b96464d476bca82c1cd6656e7d506816412" - }, - { - "height": 215008, - "tx_hash": - "f3e1bf48975b8d6060a9de8884296abb80be618dc00ae3cb2f6cee3085e09403" - } - ], - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getHistory( - scripthash: "dummy hash", requestID: "some requestId"); - - expect(result, [ - { - "height": 200004, - "tx_hash": - "acc3758bd2a26f869fcc67d48ff30b96464d476bca82c1cd6656e7d506816412" - }, - { - "height": 215008, - "tx_hash": - "f3e1bf48975b8d6060a9de8884296abb80be618dc00ae3cb2f6cee3085e09403" - } - ]); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getHistory throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.get_history"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 5), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getHistory( - scripthash: "dummy hash", requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getUTXOs", () { - test("getUTXOs success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.listunspent"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": [ - { - "tx_pos": 0, - "value": 45318048, - "tx_hash": - "9f2c45a12db0144909b5db269415f7319179105982ac70ed80d76ea79d923ebf", - "height": 437146 - }, - { - "tx_pos": 0, - "value": 919195, - "tx_hash": - "3d2290c93436a3e964cfc2f0950174d8847b1fbe3946432c4784e168da0f019f", - "height": 441696 - } - ], - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getUTXOs( - scripthash: "dummy hash", requestID: "some requestId"); - - expect(result, [ - { - "tx_pos": 0, - "value": 45318048, - "tx_hash": - "9f2c45a12db0144909b5db269415f7319179105982ac70ed80d76ea79d923ebf", - "height": 437146 - }, - { - "tx_pos": 0, - "value": 919195, - "tx_hash": - "3d2290c93436a3e964cfc2f0950174d8847b1fbe3946432c4784e168da0f019f", - "height": 441696 - } - ]); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getUTXOs throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.scripthash.listunspent"; - const jsonArgs = '["dummy hash"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getUTXOs( - scripthash: "dummy hash", requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getTransaction", () { - test("getTransaction success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": SampleGetTransactionData.txData0, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - verbose: true, - requestID: "some requestId"); - - expect(result, SampleGetTransactionData.txData0); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getTransaction throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getAnonymitySet", () { - test("getAnonymitySet success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getanonymityset"; - const jsonArgs = '["1",""]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": GetAnonymitySetSampleData.data, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusAnonymitySet( - groupId: "1", blockhash: "", requestID: "some requestId"); - - expect(result, GetAnonymitySetSampleData.data); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getAnonymitySet throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getanonymityset"; - const jsonArgs = '["1",""]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusAnonymitySet( - groupId: "1", requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getMintData", () { - test("getMintData success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getmintmetadata"; - const jsonArgs = '["some mints"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": "mint meta data", - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusMintData( - mints: "some mints", requestID: "some requestId"); - - expect(result, "mint meta data"); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getMintData throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getmintmetadata"; - const jsonArgs = '["some mints"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusMintData( - mints: "some mints", requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getUsedCoinSerials", () { - test("getUsedCoinSerials success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getusedcoinserials"; - const jsonArgs = '["0"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 2), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": GetUsedSerialsSampleData.serials, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusUsedCoinSerials( - requestID: "some requestId", startNumber: 0); - - expect(result, GetUsedSerialsSampleData.serials); - - verify(mockPrefs.wifiOnly).called(3); - verify(mockPrefs.useTor).called(3); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getUsedCoinSerials throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getusedcoinserials"; - const jsonArgs = '["0"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 2), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusUsedCoinSerials( - requestID: "some requestId", startNumber: 0), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getLatestCoinId", () { - test("getLatestCoinId success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getlatestcoinid"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": 1, - "id": "some requestId", - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = - await client.getLelantusLatestCoinId(requestID: "some requestId"); - - expect(result, 1); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getLatestCoinId throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getlatestcoinid"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusLatestCoinId( - requestID: "some requestId", - ), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getCoinsForRecovery", () { - test("getCoinsForRecovery success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getanonymityset"; - const jsonArgs = '["1",""]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": GetAnonymitySetSampleData.data, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusAnonymitySet( - groupId: "1", blockhash: "", requestID: "some requestId"); - - expect(result, GetAnonymitySetSampleData.data); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getAnonymitySet throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getanonymityset"; - const jsonArgs = '["1",""]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusAnonymitySet( - groupId: "1", - requestID: "some requestId", - ), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getMintData", () { - test("getMintData success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getmintmetadata"; - const jsonArgs = '["some mints"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": "mint meta data", - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusMintData( - mints: "some mints", requestID: "some requestId"); - - expect(result, "mint meta data"); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getMintData throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getmintmetadata"; - const jsonArgs = '["some mints"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusMintData( - mints: "some mints", - requestID: "some requestId", - ), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getUsedCoinSerials", () { - test("getUsedCoinSerials success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getusedcoinserials"; - const jsonArgs = '["0"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 2), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": GetUsedSerialsSampleData.serials, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getLelantusUsedCoinSerials( - requestID: "some requestId", startNumber: 0); - - expect(result, GetUsedSerialsSampleData.serials); - - verify(mockPrefs.wifiOnly).called(3); - verify(mockPrefs.useTor).called(3); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getUsedCoinSerials throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getusedcoinserials"; - const jsonArgs = '["0"]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(minutes: 2), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect( - () => client.getLelantusUsedCoinSerials( - requestID: "some requestId", startNumber: 0), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getLatestCoinId", () { - test("getLatestCoinId success", () async { - final mockClient = MockJsonRPC(); - const command = "lelantus.getlatestcoinid"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": 1, - "id": "some requestId", - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = - await client.getLelantusLatestCoinId(requestID: "some requestId"); - - expect(result, 1); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getLatestCoinId throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "lelantus.getlatestcoinid"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect(() => client.getLelantusLatestCoinId(requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - group("getFeeRate", () { - test("getFeeRate success", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.getfeerate"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": { - "rate": 1000, - }, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - final result = await client.getFeeRate(requestID: "some requestId"); - - expect(result, {"rate": 1000}); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - test("getFeeRate throws/fails", () { - final mockClient = MockJsonRPC(); - const command = "blockchain.getfeerate"; - const jsonArgs = '[]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenThrow(Exception()); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: torService, - failovers: []); - - expect(() => client.getFeeRate(requestID: "some requestId"), - throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - }); - - test("rpcClient is null throws with bad server info", () { - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((realInvocation) => false); - final torService = MockTorService(); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final client = ElectrumXClient( - client: null, - port: -10, - host: "_ :sa %", - useSSL: false, - prefs: mockPrefs, - torService: torService, - failovers: [], - ); - - expect(() => client.getFeeRate(), throwsA(isA())); - - verify(mockPrefs.wifiOnly).called(1); - verifyNoMoreInteractions(mockPrefs); - }); - - group("Tor tests", () { - // useTor is false, so no TorService calls should be made. - test("Tor not in use", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when(mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - )).thenAnswer((_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": SampleGetTransactionData.txData0, - "id": "some requestId", - })); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((_) => false); - when(mockPrefs.torKillSwitch) - .thenAnswer((_) => false); // Or true, shouldn't matter. - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final mockTorService = MockTorService(); - when(mockTorService.status) - .thenAnswer((_) => TorConnectionStatus.disconnected); - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - failovers: [], - prefs: mockPrefs, - torService: mockTorService, - ); - - final result = await client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - verbose: true, - requestID: "some requestId"); - - expect(result, SampleGetTransactionData.txData0); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNever(mockPrefs.torKillSwitch); - verifyNoMoreInteractions(mockPrefs); - verifyNever(mockTorService.status); - verifyNoMoreInteractions(mockTorService); - }); - - // useTor is true, but TorService is not enabled and the killswitch is off, so a clearnet call should be made. - test("Tor in use but Tor unavailable and killswitch off", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when(mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - )).thenAnswer((_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": SampleGetTransactionData.txData0, - "id": "some requestId", - })); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((_) => true); - when(mockPrefs.torKillSwitch).thenAnswer((_) => false); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - - final mockTorService = MockTorService(); - when(mockTorService.status) - .thenAnswer((_) => TorConnectionStatus.disconnected); - when(mockTorService.getProxyInfo()).thenAnswer((_) => ( - host: InternetAddress('1.2.3.4'), - port: -1 - )); // Port is set to -1 until Tor is enabled. - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: mockTorService, - failovers: []); - - final result = await client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - verbose: true, - requestID: "some requestId"); - - expect(result, SampleGetTransactionData.txData0); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verify(mockPrefs.torKillSwitch).called(1); - verifyNoMoreInteractions(mockPrefs); - verify(mockTorService.status).called(1); - verifyNever(mockTorService.getProxyInfo()); - verifyNoMoreInteractions(mockTorService); - }); - - // useTor is true and TorService is enabled, so a TorService call should be made. - test("Tor in use and available", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when(mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - )).thenAnswer((_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": SampleGetTransactionData.txData0, - "id": "some requestId", - })); - when(mockClient.proxyInfo) - .thenAnswer((_) => (host: InternetAddress('1.2.3.4'), port: 42)); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((_) => true); - when(mockPrefs.torKillSwitch).thenAnswer((_) => false); // Or true. - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - - final mockTorService = MockTorService(); - when(mockTorService.status) - .thenAnswer((_) => TorConnectionStatus.connected); - when(mockTorService.getProxyInfo()) - .thenAnswer((_) => (host: InternetAddress('1.2.3.4'), port: 42)); - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - prefs: mockPrefs, - torService: mockTorService, - failovers: []); - - final result = await client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - verbose: true, - requestID: "some requestId"); - - expect(result, SampleGetTransactionData.txData0); - - verify(mockClient.proxyInfo).called(1); - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verifyNever(mockPrefs.torKillSwitch); - verifyNoMoreInteractions(mockPrefs); - verify(mockTorService.status).called(1); - verify(mockTorService.getProxyInfo()).called(1); - verifyNoMoreInteractions(mockTorService); - }); - - // useTor is true, but TorService is not enabled and the killswitch is on, so no TorService calls should be made. - test("killswitch enabled", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["",true]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "error": { - "code": 1, - "message": "None should be a transaction hash", - }, - "id": "some requestId", - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((_) => true); - when(mockPrefs.torKillSwitch).thenAnswer((_) => true); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final mockTorService = MockTorService(); - when(mockTorService.status) - .thenAnswer((_) => TorConnectionStatus.disconnected); - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - failovers: [], - prefs: mockPrefs, - torService: mockTorService, - ); - - try { - var result = await client.getTransaction( - requestID: "some requestId", txHash: ''); - } catch (e) { - expect(e, isA()); - expect( - e.toString(), - equals( - "Exception: Tor preference and killswitch set but Tor is not enabled, not connecting to ElectrumX")); - } - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verify(mockPrefs.torKillSwitch).called(1); - verifyNoMoreInteractions(mockPrefs); - verify(mockTorService.status).called(1); - verifyNoMoreInteractions(mockTorService); - }); - - // useTor is true but Tor is not enabled, but because the killswitch is off, a clearnet call should be made. - test("killswitch disabled", () async { - final mockClient = MockJsonRPC(); - const command = "blockchain.transaction.get"; - const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; - when( - mockClient.request( - '{"jsonrpc": "2.0", "id": "some requestId",' - '"method": "$command","params": $jsonArgs}', - const Duration(seconds: 60), - ), - ).thenAnswer( - (_) async => JsonRPCResponse(data: { - "jsonrpc": "2.0", - "result": SampleGetTransactionData.txData0, - "id": "some requestId" - }), - ); - - final mockPrefs = MockPrefs(); - when(mockPrefs.useTor).thenAnswer((_) => true); - when(mockPrefs.torKillSwitch).thenAnswer((_) => false); - when(mockPrefs.wifiOnly).thenAnswer((_) => false); - final mockTorService = MockTorService(); - when(mockTorService.status) - .thenAnswer((_) => TorConnectionStatus.disconnected); - - final client = ElectrumXClient( - host: "some server", - port: 0, - useSSL: true, - client: mockClient, - failovers: [], - prefs: mockPrefs, - torService: mockTorService, - ); - - final result = await client.getTransaction( - txHash: SampleGetTransactionData.txHash0, - verbose: true, - requestID: "some requestId"); - - expect(result, SampleGetTransactionData.txData0); - - verify(mockPrefs.wifiOnly).called(1); - verify(mockPrefs.useTor).called(1); - verify(mockPrefs.torKillSwitch).called(1); - verifyNoMoreInteractions(mockPrefs); - verify(mockTorService.status).called(1); - verifyNoMoreInteractions(mockTorService); - }); - }); -} +// import 'dart:io'; +// +// import 'package:flutter_test/flutter_test.dart'; +// import 'package:mockito/annotations.dart'; +// import 'package:mockito/mockito.dart'; +// import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; +// import 'package:stackwallet/electrumx_rpc/rpc.dart'; +// import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; +// import 'package:stackwallet/services/tor_service.dart'; +// import 'package:stackwallet/utilities/prefs.dart'; +// +// import 'electrumx_test.mocks.dart'; +// import 'sample_data/get_anonymity_set_sample_data.dart'; +// import 'sample_data/get_used_serials_sample_data.dart'; +// import 'sample_data/transaction_data_samples.dart'; +// +// @GenerateMocks([JsonRPC, Prefs, TorService]) +// void main() { +// group("factory constructors and getters", () { +// test("electrumxnode .from factory", () { +// final nodeA = ElectrumXNode( +// address: "some address", +// port: 1, +// name: "some name", +// id: "some ID", +// useSSL: true, +// ); +// +// final nodeB = ElectrumXNode.from(nodeA); +// +// expect(nodeB.toString(), nodeA.toString()); +// expect(nodeA == nodeB, false); +// }); +// +// test("electrumx .from factory", () { +// final node = ElectrumXNode( +// address: "some address", +// port: 1, +// name: "some name", +// id: "some ID", +// useSSL: true, +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// +// final client = ElectrumXClient.from( +// node: node, +// failovers: [], +// prefs: mockPrefs, +// torService: torService, +// ); +// +// expect(client.useSSL, node.useSSL); +// expect(client.host, node.address); +// expect(client.port, node.port); +// expect(client.rpcClient, null); +// +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// test("Server error", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["",true]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "error": { +// "code": 1, +// "message": "None should be a transaction hash", +// }, +// "id": "some requestId", +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// failovers: [], +// prefs: mockPrefs, +// torService: torService, +// ); +// +// expect(() => client.getTransaction(requestID: "some requestId", txHash: ''), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// group("getBlockHeadTip", () { +// test("getBlockHeadTip success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.headers.subscribe"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": {"height": 520481, "hex": "some block hex string"}, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = +// await (client.getBlockHeadTip(requestID: "some requestId")); +// +// expect(result["height"], 520481); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getBlockHeadTip throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.headers.subscribe"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect(() => client.getBlockHeadTip(requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("ping", () { +// test("ping success", () async { +// final mockClient = MockJsonRPC(); +// const command = "server.ping"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 2), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": null, +// "id": "some requestId", +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.ping(requestID: "some requestId"); +// +// expect(result, true); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("ping throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "server.ping"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 2), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect(() => client.ping(requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getServerFeatures", () { +// test("getServerFeatures success", () async { +// final mockClient = MockJsonRPC(); +// const command = "server.features"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": { +// "genesis_hash": +// "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", +// "hosts": { +// "0.0.0.0": {"tcp_port": 51001, "ssl_port": 51002} +// }, +// "protocol_max": "1.0", +// "protocol_min": "1.0", +// "pruning": null, +// "server_version": "ElectrumX 1.0.17", +// "hash_function": "sha256" +// }, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = +// await client.getServerFeatures(requestID: "some requestId"); +// +// expect(result, { +// "genesis_hash": +// "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", +// "hosts": { +// "0.0.0.0": {"tcp_port": 51001, "ssl_port": 51002} +// }, +// "protocol_max": "1.0", +// "protocol_min": "1.0", +// "pruning": null, +// "server_version": "ElectrumX 1.0.17", +// "hash_function": "sha256", +// }); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getServerFeatures throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "server.features"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect(() => client.getServerFeatures(requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("broadcastTransaction", () { +// test("broadcastTransaction success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.broadcast"; +// const jsonArgs = '["some raw transaction string"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": "the txid of the rawtx", +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.broadcastTransaction( +// rawTx: "some raw transaction string", requestID: "some requestId"); +// +// expect(result, "the txid of the rawtx"); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("broadcastTransaction throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.broadcast"; +// const jsonArgs = '["some raw transaction string"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.broadcastTransaction( +// rawTx: "some raw transaction string", +// requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getBalance", () { +// test("getBalance success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.get_balance"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": { +// "confirmed": 103873966, +// "unconfirmed": 23684400, +// }, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getBalance( +// scripthash: "dummy hash", requestID: "some requestId"); +// +// expect(result, {"confirmed": 103873966, "unconfirmed": 23684400}); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getBalance throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.get_balance"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getBalance( +// scripthash: "dummy hash", requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getHistory", () { +// test("getHistory success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.get_history"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 5), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": [ +// { +// "height": 200004, +// "tx_hash": +// "acc3758bd2a26f869fcc67d48ff30b96464d476bca82c1cd6656e7d506816412" +// }, +// { +// "height": 215008, +// "tx_hash": +// "f3e1bf48975b8d6060a9de8884296abb80be618dc00ae3cb2f6cee3085e09403" +// } +// ], +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getHistory( +// scripthash: "dummy hash", requestID: "some requestId"); +// +// expect(result, [ +// { +// "height": 200004, +// "tx_hash": +// "acc3758bd2a26f869fcc67d48ff30b96464d476bca82c1cd6656e7d506816412" +// }, +// { +// "height": 215008, +// "tx_hash": +// "f3e1bf48975b8d6060a9de8884296abb80be618dc00ae3cb2f6cee3085e09403" +// } +// ]); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getHistory throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.get_history"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 5), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getHistory( +// scripthash: "dummy hash", requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getUTXOs", () { +// test("getUTXOs success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.listunspent"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": [ +// { +// "tx_pos": 0, +// "value": 45318048, +// "tx_hash": +// "9f2c45a12db0144909b5db269415f7319179105982ac70ed80d76ea79d923ebf", +// "height": 437146 +// }, +// { +// "tx_pos": 0, +// "value": 919195, +// "tx_hash": +// "3d2290c93436a3e964cfc2f0950174d8847b1fbe3946432c4784e168da0f019f", +// "height": 441696 +// } +// ], +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getUTXOs( +// scripthash: "dummy hash", requestID: "some requestId"); +// +// expect(result, [ +// { +// "tx_pos": 0, +// "value": 45318048, +// "tx_hash": +// "9f2c45a12db0144909b5db269415f7319179105982ac70ed80d76ea79d923ebf", +// "height": 437146 +// }, +// { +// "tx_pos": 0, +// "value": 919195, +// "tx_hash": +// "3d2290c93436a3e964cfc2f0950174d8847b1fbe3946432c4784e168da0f019f", +// "height": 441696 +// } +// ]); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getUTXOs throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.scripthash.listunspent"; +// const jsonArgs = '["dummy hash"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getUTXOs( +// scripthash: "dummy hash", requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getTransaction", () { +// test("getTransaction success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": SampleGetTransactionData.txData0, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// verbose: true, +// requestID: "some requestId"); +// +// expect(result, SampleGetTransactionData.txData0); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getTransaction throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getAnonymitySet", () { +// test("getAnonymitySet success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getanonymityset"; +// const jsonArgs = '["1",""]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": GetAnonymitySetSampleData.data, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusAnonymitySet( +// groupId: "1", blockhash: "", requestID: "some requestId"); +// +// expect(result, GetAnonymitySetSampleData.data); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getAnonymitySet throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getanonymityset"; +// const jsonArgs = '["1",""]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusAnonymitySet( +// groupId: "1", requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getMintData", () { +// test("getMintData success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getmintmetadata"; +// const jsonArgs = '["some mints"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": "mint meta data", +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusMintData( +// mints: "some mints", requestID: "some requestId"); +// +// expect(result, "mint meta data"); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getMintData throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getmintmetadata"; +// const jsonArgs = '["some mints"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusMintData( +// mints: "some mints", requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getUsedCoinSerials", () { +// test("getUsedCoinSerials success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getusedcoinserials"; +// const jsonArgs = '["0"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 2), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": GetUsedSerialsSampleData.serials, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusUsedCoinSerials( +// requestID: "some requestId", startNumber: 0); +// +// expect(result, GetUsedSerialsSampleData.serials); +// +// verify(mockPrefs.wifiOnly).called(3); +// verify(mockPrefs.useTor).called(3); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getUsedCoinSerials throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getusedcoinserials"; +// const jsonArgs = '["0"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 2), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusUsedCoinSerials( +// requestID: "some requestId", startNumber: 0), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getLatestCoinId", () { +// test("getLatestCoinId success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getlatestcoinid"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": 1, +// "id": "some requestId", +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = +// await client.getLelantusLatestCoinId(requestID: "some requestId"); +// +// expect(result, 1); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getLatestCoinId throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getlatestcoinid"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusLatestCoinId( +// requestID: "some requestId", +// ), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getCoinsForRecovery", () { +// test("getCoinsForRecovery success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getanonymityset"; +// const jsonArgs = '["1",""]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": GetAnonymitySetSampleData.data, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusAnonymitySet( +// groupId: "1", blockhash: "", requestID: "some requestId"); +// +// expect(result, GetAnonymitySetSampleData.data); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getAnonymitySet throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getanonymityset"; +// const jsonArgs = '["1",""]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusAnonymitySet( +// groupId: "1", +// requestID: "some requestId", +// ), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getMintData", () { +// test("getMintData success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getmintmetadata"; +// const jsonArgs = '["some mints"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": "mint meta data", +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusMintData( +// mints: "some mints", requestID: "some requestId"); +// +// expect(result, "mint meta data"); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getMintData throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getmintmetadata"; +// const jsonArgs = '["some mints"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusMintData( +// mints: "some mints", +// requestID: "some requestId", +// ), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getUsedCoinSerials", () { +// test("getUsedCoinSerials success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getusedcoinserials"; +// const jsonArgs = '["0"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 2), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": GetUsedSerialsSampleData.serials, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getLelantusUsedCoinSerials( +// requestID: "some requestId", startNumber: 0); +// +// expect(result, GetUsedSerialsSampleData.serials); +// +// verify(mockPrefs.wifiOnly).called(3); +// verify(mockPrefs.useTor).called(3); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getUsedCoinSerials throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getusedcoinserials"; +// const jsonArgs = '["0"]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(minutes: 2), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect( +// () => client.getLelantusUsedCoinSerials( +// requestID: "some requestId", startNumber: 0), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getLatestCoinId", () { +// test("getLatestCoinId success", () async { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getlatestcoinid"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": 1, +// "id": "some requestId", +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = +// await client.getLelantusLatestCoinId(requestID: "some requestId"); +// +// expect(result, 1); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getLatestCoinId throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "lelantus.getlatestcoinid"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect(() => client.getLelantusLatestCoinId(requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// group("getFeeRate", () { +// test("getFeeRate success", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.getfeerate"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": { +// "rate": 1000, +// }, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// final result = await client.getFeeRate(requestID: "some requestId"); +// +// expect(result, {"rate": 1000}); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// test("getFeeRate throws/fails", () { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.getfeerate"; +// const jsonArgs = '[]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenThrow(Exception()); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: torService, +// failovers: []); +// +// expect(() => client.getFeeRate(requestID: "some requestId"), +// throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// }); +// +// test("rpcClient is null throws with bad server info", () { +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((realInvocation) => false); +// final torService = MockTorService(); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final client = ElectrumXClient( +// client: null, +// port: -10, +// host: "_ :sa %", +// useSSL: false, +// prefs: mockPrefs, +// torService: torService, +// failovers: [], +// ); +// +// expect(() => client.getFeeRate(), throwsA(isA())); +// +// verify(mockPrefs.wifiOnly).called(1); +// verifyNoMoreInteractions(mockPrefs); +// }); +// +// group("Tor tests", () { +// // useTor is false, so no TorService calls should be made. +// test("Tor not in use", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when(mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// )).thenAnswer((_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": SampleGetTransactionData.txData0, +// "id": "some requestId", +// })); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((_) => false); +// when(mockPrefs.torKillSwitch) +// .thenAnswer((_) => false); // Or true, shouldn't matter. +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final mockTorService = MockTorService(); +// when(mockTorService.status) +// .thenAnswer((_) => TorConnectionStatus.disconnected); +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// failovers: [], +// prefs: mockPrefs, +// torService: mockTorService, +// ); +// +// final result = await client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// verbose: true, +// requestID: "some requestId"); +// +// expect(result, SampleGetTransactionData.txData0); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNever(mockPrefs.torKillSwitch); +// verifyNoMoreInteractions(mockPrefs); +// verifyNever(mockTorService.status); +// verifyNoMoreInteractions(mockTorService); +// }); +// +// // useTor is true, but TorService is not enabled and the killswitch is off, so a clearnet call should be made. +// test("Tor in use but Tor unavailable and killswitch off", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when(mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// )).thenAnswer((_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": SampleGetTransactionData.txData0, +// "id": "some requestId", +// })); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((_) => true); +// when(mockPrefs.torKillSwitch).thenAnswer((_) => false); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// +// final mockTorService = MockTorService(); +// when(mockTorService.status) +// .thenAnswer((_) => TorConnectionStatus.disconnected); +// when(mockTorService.getProxyInfo()).thenAnswer((_) => ( +// host: InternetAddress('1.2.3.4'), +// port: -1 +// )); // Port is set to -1 until Tor is enabled. +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: mockTorService, +// failovers: []); +// +// final result = await client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// verbose: true, +// requestID: "some requestId"); +// +// expect(result, SampleGetTransactionData.txData0); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verify(mockPrefs.torKillSwitch).called(1); +// verifyNoMoreInteractions(mockPrefs); +// verify(mockTorService.status).called(1); +// verifyNever(mockTorService.getProxyInfo()); +// verifyNoMoreInteractions(mockTorService); +// }); +// +// // useTor is true and TorService is enabled, so a TorService call should be made. +// test("Tor in use and available", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when(mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId","method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// )).thenAnswer((_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": SampleGetTransactionData.txData0, +// "id": "some requestId", +// })); +// when(mockClient.proxyInfo) +// .thenAnswer((_) => (host: InternetAddress('1.2.3.4'), port: 42)); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((_) => true); +// when(mockPrefs.torKillSwitch).thenAnswer((_) => false); // Or true. +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// +// final mockTorService = MockTorService(); +// when(mockTorService.status) +// .thenAnswer((_) => TorConnectionStatus.connected); +// when(mockTorService.getProxyInfo()) +// .thenAnswer((_) => (host: InternetAddress('1.2.3.4'), port: 42)); +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// prefs: mockPrefs, +// torService: mockTorService, +// failovers: []); +// +// final result = await client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// verbose: true, +// requestID: "some requestId"); +// +// expect(result, SampleGetTransactionData.txData0); +// +// verify(mockClient.proxyInfo).called(1); +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verifyNever(mockPrefs.torKillSwitch); +// verifyNoMoreInteractions(mockPrefs); +// verify(mockTorService.status).called(1); +// verify(mockTorService.getProxyInfo()).called(1); +// verifyNoMoreInteractions(mockTorService); +// }); +// +// // useTor is true, but TorService is not enabled and the killswitch is on, so no TorService calls should be made. +// test("killswitch enabled", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["",true]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "error": { +// "code": 1, +// "message": "None should be a transaction hash", +// }, +// "id": "some requestId", +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((_) => true); +// when(mockPrefs.torKillSwitch).thenAnswer((_) => true); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final mockTorService = MockTorService(); +// when(mockTorService.status) +// .thenAnswer((_) => TorConnectionStatus.disconnected); +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// failovers: [], +// prefs: mockPrefs, +// torService: mockTorService, +// ); +// +// try { +// var result = await client.getTransaction( +// requestID: "some requestId", txHash: ''); +// } catch (e) { +// expect(e, isA()); +// expect( +// e.toString(), +// equals( +// "Exception: Tor preference and killswitch set but Tor is not enabled, not connecting to ElectrumX")); +// } +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verify(mockPrefs.torKillSwitch).called(1); +// verifyNoMoreInteractions(mockPrefs); +// verify(mockTorService.status).called(1); +// verifyNoMoreInteractions(mockTorService); +// }); +// +// // useTor is true but Tor is not enabled, but because the killswitch is off, a clearnet call should be made. +// test("killswitch disabled", () async { +// final mockClient = MockJsonRPC(); +// const command = "blockchain.transaction.get"; +// const jsonArgs = '["${SampleGetTransactionData.txHash0}",true]'; +// when( +// mockClient.request( +// '{"jsonrpc": "2.0", "id": "some requestId",' +// '"method": "$command","params": $jsonArgs}', +// const Duration(seconds: 60), +// ), +// ).thenAnswer( +// (_) async => JsonRPCResponse(data: { +// "jsonrpc": "2.0", +// "result": SampleGetTransactionData.txData0, +// "id": "some requestId" +// }), +// ); +// +// final mockPrefs = MockPrefs(); +// when(mockPrefs.useTor).thenAnswer((_) => true); +// when(mockPrefs.torKillSwitch).thenAnswer((_) => false); +// when(mockPrefs.wifiOnly).thenAnswer((_) => false); +// final mockTorService = MockTorService(); +// when(mockTorService.status) +// .thenAnswer((_) => TorConnectionStatus.disconnected); +// +// final client = ElectrumXClient( +// host: "some server", +// port: 0, +// useSSL: true, +// client: mockClient, +// failovers: [], +// prefs: mockPrefs, +// torService: mockTorService, +// ); +// +// final result = await client.getTransaction( +// txHash: SampleGetTransactionData.txHash0, +// verbose: true, +// requestID: "some requestId"); +// +// expect(result, SampleGetTransactionData.txData0); +// +// verify(mockPrefs.wifiOnly).called(1); +// verify(mockPrefs.useTor).called(1); +// verify(mockPrefs.torKillSwitch).called(1); +// verifyNoMoreInteractions(mockPrefs); +// verify(mockTorService.status).called(1); +// verifyNoMoreInteractions(mockTorService); +// }); +// }); +// } diff --git a/test/electrumx_test.mocks.dart b/test/electrumx_test.mocks.dart deleted file mode 100644 index 3f0660617..000000000 --- a/test/electrumx_test.mocks.dart +++ /dev/null @@ -1,771 +0,0 @@ -// Mocks generated by Mockito 5.4.2 from annotations -// in stackwallet/test/electrumx_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; -import 'dart:io' as _i4; -import 'dart:ui' as _i11; - -import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/rpc.dart' as _i2; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart' - as _i13; -import 'package:stackwallet/services/tor_service.dart' as _i12; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i9; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i10; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i7; -import 'package:stackwallet/utilities/prefs.dart' as _i6; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' - as _i3; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i14; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeJsonRPCResponse_1 extends _i1.SmartFake - implements _i2.JsonRPCResponse { - _FakeJsonRPCResponse_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeFusionInfo_2 extends _i1.SmartFake implements _i3.FusionInfo { - _FakeFusionInfo_2( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeInternetAddress_3 extends _i1.SmartFake - implements _i4.InternetAddress { - _FakeInternetAddress_3( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [JsonRPC]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockJsonRPC extends _i1.Mock implements _i2.JsonRPC { - MockJsonRPC() { - _i1.throwOnMissingStub(this); - } - - @override - bool get useSSL => (super.noSuchMethod( - Invocation.getter(#useSSL), - returnValue: false, - ) as bool); - @override - String get host => (super.noSuchMethod( - Invocation.getter(#host), - returnValue: '', - ) as String); - @override - int get port => (super.noSuchMethod( - Invocation.getter(#port), - returnValue: 0, - ) as int); - @override - Duration get connectionTimeout => (super.noSuchMethod( - Invocation.getter(#connectionTimeout), - returnValue: _FakeDuration_0( - this, - Invocation.getter(#connectionTimeout), - ), - ) as Duration); - @override - set proxyInfo(({_i4.InternetAddress host, int port})? _proxyInfo) => - super.noSuchMethod( - Invocation.setter( - #proxyInfo, - _proxyInfo, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i2.JsonRPCResponse> request( - String? jsonRpcRequest, - Duration? requestTimeout, - ) => - (super.noSuchMethod( - Invocation.method( - #request, - [ - jsonRpcRequest, - requestTimeout, - ], - ), - returnValue: - _i5.Future<_i2.JsonRPCResponse>.value(_FakeJsonRPCResponse_1( - this, - Invocation.method( - #request, - [ - jsonRpcRequest, - requestTimeout, - ], - ), - )), - ) as _i5.Future<_i2.JsonRPCResponse>); - @override - _i5.Future disconnect({ - required String? reason, - bool? ignoreMutex = false, - }) => - (super.noSuchMethod( - Invocation.method( - #disconnect, - [], - { - #reason: reason, - #ignoreMutex: ignoreMutex, - }, - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); -} - -/// A class which mocks [Prefs]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockPrefs extends _i1.Mock implements _i6.Prefs { - MockPrefs() { - _i1.throwOnMissingStub(this); - } - - @override - bool get isInitialized => (super.noSuchMethod( - Invocation.getter(#isInitialized), - returnValue: false, - ) as bool); - @override - int get lastUnlockedTimeout => (super.noSuchMethod( - Invocation.getter(#lastUnlockedTimeout), - returnValue: 0, - ) as int); - @override - set lastUnlockedTimeout(int? lastUnlockedTimeout) => super.noSuchMethod( - Invocation.setter( - #lastUnlockedTimeout, - lastUnlockedTimeout, - ), - returnValueForMissingStub: null, - ); - @override - int get lastUnlocked => (super.noSuchMethod( - Invocation.getter(#lastUnlocked), - returnValue: 0, - ) as int); - @override - set lastUnlocked(int? lastUnlocked) => super.noSuchMethod( - Invocation.setter( - #lastUnlocked, - lastUnlocked, - ), - returnValueForMissingStub: null, - ); - @override - int get currentNotificationId => (super.noSuchMethod( - Invocation.getter(#currentNotificationId), - returnValue: 0, - ) as int); - @override - List get walletIdsSyncOnStartup => (super.noSuchMethod( - Invocation.getter(#walletIdsSyncOnStartup), - returnValue: [], - ) as List); - @override - set walletIdsSyncOnStartup(List? walletIdsSyncOnStartup) => - super.noSuchMethod( - Invocation.setter( - #walletIdsSyncOnStartup, - walletIdsSyncOnStartup, - ), - returnValueForMissingStub: null, - ); - @override - _i7.SyncingType get syncType => (super.noSuchMethod( - Invocation.getter(#syncType), - returnValue: _i7.SyncingType.currentWalletOnly, - ) as _i7.SyncingType); - @override - set syncType(_i7.SyncingType? syncType) => super.noSuchMethod( - Invocation.setter( - #syncType, - syncType, - ), - returnValueForMissingStub: null, - ); - @override - bool get wifiOnly => (super.noSuchMethod( - Invocation.getter(#wifiOnly), - returnValue: false, - ) as bool); - @override - set wifiOnly(bool? wifiOnly) => super.noSuchMethod( - Invocation.setter( - #wifiOnly, - wifiOnly, - ), - returnValueForMissingStub: null, - ); - @override - bool get showFavoriteWallets => (super.noSuchMethod( - Invocation.getter(#showFavoriteWallets), - returnValue: false, - ) as bool); - @override - set showFavoriteWallets(bool? showFavoriteWallets) => super.noSuchMethod( - Invocation.setter( - #showFavoriteWallets, - showFavoriteWallets, - ), - returnValueForMissingStub: null, - ); - @override - String get language => (super.noSuchMethod( - Invocation.getter(#language), - returnValue: '', - ) as String); - @override - set language(String? newLanguage) => super.noSuchMethod( - Invocation.setter( - #language, - newLanguage, - ), - returnValueForMissingStub: null, - ); - @override - String get currency => (super.noSuchMethod( - Invocation.getter(#currency), - returnValue: '', - ) as String); - @override - set currency(String? newCurrency) => super.noSuchMethod( - Invocation.setter( - #currency, - newCurrency, - ), - returnValueForMissingStub: null, - ); - @override - bool get randomizePIN => (super.noSuchMethod( - Invocation.getter(#randomizePIN), - returnValue: false, - ) as bool); - @override - set randomizePIN(bool? randomizePIN) => super.noSuchMethod( - Invocation.setter( - #randomizePIN, - randomizePIN, - ), - returnValueForMissingStub: null, - ); - @override - bool get useBiometrics => (super.noSuchMethod( - Invocation.getter(#useBiometrics), - returnValue: false, - ) as bool); - @override - set useBiometrics(bool? useBiometrics) => super.noSuchMethod( - Invocation.setter( - #useBiometrics, - useBiometrics, - ), - returnValueForMissingStub: null, - ); - @override - bool get hasPin => (super.noSuchMethod( - Invocation.getter(#hasPin), - returnValue: false, - ) as bool); - @override - set hasPin(bool? hasPin) => super.noSuchMethod( - Invocation.setter( - #hasPin, - hasPin, - ), - returnValueForMissingStub: null, - ); - @override - int get familiarity => (super.noSuchMethod( - Invocation.getter(#familiarity), - returnValue: 0, - ) as int); - @override - set familiarity(int? familiarity) => super.noSuchMethod( - Invocation.setter( - #familiarity, - familiarity, - ), - returnValueForMissingStub: null, - ); - @override - bool get torKillSwitch => (super.noSuchMethod( - Invocation.getter(#torKillSwitch), - returnValue: false, - ) as bool); - @override - set torKillSwitch(bool? torKillswitch) => super.noSuchMethod( - Invocation.setter( - #torKillSwitch, - torKillswitch, - ), - returnValueForMissingStub: null, - ); - @override - bool get showTestNetCoins => (super.noSuchMethod( - Invocation.getter(#showTestNetCoins), - returnValue: false, - ) as bool); - @override - set showTestNetCoins(bool? showTestNetCoins) => super.noSuchMethod( - Invocation.setter( - #showTestNetCoins, - showTestNetCoins, - ), - returnValueForMissingStub: null, - ); - @override - bool get isAutoBackupEnabled => (super.noSuchMethod( - Invocation.getter(#isAutoBackupEnabled), - returnValue: false, - ) as bool); - @override - set isAutoBackupEnabled(bool? isAutoBackupEnabled) => super.noSuchMethod( - Invocation.setter( - #isAutoBackupEnabled, - isAutoBackupEnabled, - ), - returnValueForMissingStub: null, - ); - @override - set autoBackupLocation(String? autoBackupLocation) => super.noSuchMethod( - Invocation.setter( - #autoBackupLocation, - autoBackupLocation, - ), - returnValueForMissingStub: null, - ); - @override - _i8.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( - Invocation.getter(#backupFrequencyType), - returnValue: _i8.BackupFrequencyType.everyTenMinutes, - ) as _i8.BackupFrequencyType); - @override - set backupFrequencyType(_i8.BackupFrequencyType? backupFrequencyType) => - super.noSuchMethod( - Invocation.setter( - #backupFrequencyType, - backupFrequencyType, - ), - returnValueForMissingStub: null, - ); - @override - set lastAutoBackup(DateTime? lastAutoBackup) => super.noSuchMethod( - Invocation.setter( - #lastAutoBackup, - lastAutoBackup, - ), - returnValueForMissingStub: null, - ); - @override - bool get hideBlockExplorerWarning => (super.noSuchMethod( - Invocation.getter(#hideBlockExplorerWarning), - returnValue: false, - ) as bool); - @override - set hideBlockExplorerWarning(bool? hideBlockExplorerWarning) => - super.noSuchMethod( - Invocation.setter( - #hideBlockExplorerWarning, - hideBlockExplorerWarning, - ), - returnValueForMissingStub: null, - ); - @override - bool get gotoWalletOnStartup => (super.noSuchMethod( - Invocation.getter(#gotoWalletOnStartup), - returnValue: false, - ) as bool); - @override - set gotoWalletOnStartup(bool? gotoWalletOnStartup) => super.noSuchMethod( - Invocation.setter( - #gotoWalletOnStartup, - gotoWalletOnStartup, - ), - returnValueForMissingStub: null, - ); - @override - set startupWalletId(String? startupWalletId) => super.noSuchMethod( - Invocation.setter( - #startupWalletId, - startupWalletId, - ), - returnValueForMissingStub: null, - ); - @override - bool get externalCalls => (super.noSuchMethod( - Invocation.getter(#externalCalls), - returnValue: false, - ) as bool); - @override - set externalCalls(bool? externalCalls) => super.noSuchMethod( - Invocation.setter( - #externalCalls, - externalCalls, - ), - returnValueForMissingStub: null, - ); - @override - bool get enableCoinControl => (super.noSuchMethod( - Invocation.getter(#enableCoinControl), - returnValue: false, - ) as bool); - @override - set enableCoinControl(bool? enableCoinControl) => super.noSuchMethod( - Invocation.setter( - #enableCoinControl, - enableCoinControl, - ), - returnValueForMissingStub: null, - ); - @override - bool get enableSystemBrightness => (super.noSuchMethod( - Invocation.getter(#enableSystemBrightness), - returnValue: false, - ) as bool); - @override - set enableSystemBrightness(bool? enableSystemBrightness) => - super.noSuchMethod( - Invocation.setter( - #enableSystemBrightness, - enableSystemBrightness, - ), - returnValueForMissingStub: null, - ); - @override - String get themeId => (super.noSuchMethod( - Invocation.getter(#themeId), - returnValue: '', - ) as String); - @override - set themeId(String? themeId) => super.noSuchMethod( - Invocation.setter( - #themeId, - themeId, - ), - returnValueForMissingStub: null, - ); - @override - String get systemBrightnessLightThemeId => (super.noSuchMethod( - Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', - ) as String); - @override - set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => - super.noSuchMethod( - Invocation.setter( - #systemBrightnessLightThemeId, - systemBrightnessLightThemeId, - ), - returnValueForMissingStub: null, - ); - @override - String get systemBrightnessDarkThemeId => (super.noSuchMethod( - Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', - ) as String); - @override - set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => - super.noSuchMethod( - Invocation.setter( - #systemBrightnessDarkThemeId, - systemBrightnessDarkThemeId, - ), - returnValueForMissingStub: null, - ); - @override - bool get useTor => (super.noSuchMethod( - Invocation.getter(#useTor), - returnValue: false, - ) as bool); - @override - set useTor(bool? useTor) => super.noSuchMethod( - Invocation.setter( - #useTor, - useTor, - ), - returnValueForMissingStub: null, - ); - @override - bool get frostEnabled => (super.noSuchMethod( - Invocation.getter(#frostEnabled), - returnValue: false, - ) as bool); - @override - set frostEnabled(bool? frostEnabled) => super.noSuchMethod( - Invocation.setter( - #frostEnabled, - frostEnabled, - ), - returnValueForMissingStub: null, - ); - @override - bool get hasListeners => (super.noSuchMethod( - Invocation.getter(#hasListeners), - returnValue: false, - ) as bool); - @override - _i5.Future init() => (super.noSuchMethod( - Invocation.method( - #init, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override - _i5.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( - Invocation.method( - #incrementCurrentNotificationIndex, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override - _i5.Future isExternalCallsSet() => (super.noSuchMethod( - Invocation.method( - #isExternalCallsSet, - [], - ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); - @override - _i5.Future saveUserID(String? userId) => (super.noSuchMethod( - Invocation.method( - #saveUserID, - [userId], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override - _i5.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( - Invocation.method( - #saveSignupEpoch, - [signupEpoch], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override - _i9.AmountUnit amountUnit(_i10.Coin? coin) => (super.noSuchMethod( - Invocation.method( - #amountUnit, - [coin], - ), - returnValue: _i9.AmountUnit.normal, - ) as _i9.AmountUnit); - @override - void updateAmountUnit({ - required _i10.Coin? coin, - required _i9.AmountUnit? amountUnit, - }) => - super.noSuchMethod( - Invocation.method( - #updateAmountUnit, - [], - { - #coin: coin, - #amountUnit: amountUnit, - }, - ), - returnValueForMissingStub: null, - ); - @override - int maxDecimals(_i10.Coin? coin) => (super.noSuchMethod( - Invocation.method( - #maxDecimals, - [coin], - ), - returnValue: 0, - ) as int); - @override - void updateMaxDecimals({ - required _i10.Coin? coin, - required int? maxDecimals, - }) => - super.noSuchMethod( - Invocation.method( - #updateMaxDecimals, - [], - { - #coin: coin, - #maxDecimals: maxDecimals, - }, - ), - returnValueForMissingStub: null, - ); - @override - _i3.FusionInfo getFusionServerInfo(_i10.Coin? coin) => (super.noSuchMethod( - Invocation.method( - #getFusionServerInfo, - [coin], - ), - returnValue: _FakeFusionInfo_2( - this, - Invocation.method( - #getFusionServerInfo, - [coin], - ), - ), - ) as _i3.FusionInfo); - @override - void setFusionServerInfo( - _i10.Coin? coin, - _i3.FusionInfo? fusionServerInfo, - ) => - super.noSuchMethod( - Invocation.method( - #setFusionServerInfo, - [ - coin, - fusionServerInfo, - ], - ), - returnValueForMissingStub: null, - ); - @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( - Invocation.method( - #addListener, - [listener], - ), - returnValueForMissingStub: null, - ); - @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( - Invocation.method( - #removeListener, - [listener], - ), - returnValueForMissingStub: null, - ); - @override - void dispose() => super.noSuchMethod( - Invocation.method( - #dispose, - [], - ), - returnValueForMissingStub: null, - ); - @override - void notifyListeners() => super.noSuchMethod( - Invocation.method( - #notifyListeners, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TorService]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTorService extends _i1.Mock implements _i12.TorService { - MockTorService() { - _i1.throwOnMissingStub(this); - } - - @override - _i13.TorConnectionStatus get status => (super.noSuchMethod( - Invocation.getter(#status), - returnValue: _i13.TorConnectionStatus.disconnected, - ) as _i13.TorConnectionStatus); - @override - ({_i4.InternetAddress host, int port}) getProxyInfo() => (super.noSuchMethod( - Invocation.method( - #getProxyInfo, - [], - ), - returnValue: ( - host: _FakeInternetAddress_3( - this, - Invocation.method( - #getProxyInfo, - [], - ), - ), - port: 0 - ), - ) as ({_i4.InternetAddress host, int port})); - @override - void init({ - required String? torDataDirPath, - _i14.Tor? mockableOverride, - }) => - super.noSuchMethod( - Invocation.method( - #init, - [], - { - #torDataDirPath: torDataDirPath, - #mockableOverride: mockableOverride, - }, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future start() => (super.noSuchMethod( - Invocation.method( - #start, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override - _i5.Future disable() => (super.noSuchMethod( - Invocation.method( - #disable, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); -} diff --git a/test/json_rpc_test.dart b/test/json_rpc_test.dart deleted file mode 100644 index e9da77971..000000000 --- a/test/json_rpc_test.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'dart:io'; - -import 'package:flutter_test/flutter_test.dart'; -import 'package:stackwallet/electrumx_rpc/rpc.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; - -void main() { - test("REQUIRES INTERNET - JsonRPC.request success", () async { - final jsonRPC = JsonRPC( - host: DefaultNodes.bitcoin.host, - port: DefaultNodes.bitcoin.port, - useSSL: true, - connectionTimeout: const Duration(seconds: 40), - proxyInfo: null, // TODO test for proxyInfo - ); - - const jsonRequestString = - '{"jsonrpc": "2.0", "id": "some id","method": "server.ping","params": []}'; - final result = await jsonRPC.request( - jsonRequestString, - const Duration(seconds: 1), - ); - - expect(result.data, {"jsonrpc": "2.0", "result": null, "id": "some id"}); - }); - - test("JsonRPC.request fails due to SocketException", () async { - final jsonRPC = JsonRPC( - host: "some.bad.address.thingdsfsdfsdaf", - port: 3000, - connectionTimeout: const Duration(seconds: 10), - proxyInfo: null, - ); - - const jsonRequestString = - '{"jsonrpc": "2.0", "id": "some id","method": "server.ping","params": []}'; - - expect( - () => jsonRPC.request( - jsonRequestString, - const Duration(seconds: 1), - ), - throwsA(isA())); - }); - - test("JsonRPC.request fails due to connection timeout", () async { - final jsonRPC = JsonRPC( - host: "8.8.8.8", - port: 3000, - useSSL: false, - connectionTimeout: const Duration(seconds: 1), - proxyInfo: null, - ); - - const jsonRequestString = - '{"jsonrpc": "2.0", "id": "some id","method": "server.ping","params": []}'; - - await expectLater( - jsonRPC.request( - jsonRequestString, - const Duration(seconds: 1), - ), - throwsA(isA() - .having((e) => e.toString(), 'message', contains("Request timeout"))), - ); - }); -} diff --git a/test/pages/send_view/send_view_test.mocks.dart b/test/pages/send_view/send_view_test.mocks.dart index c2f2e6843..710bc087e 100644 --- a/test/pages/send_view/send_view_test.mocks.dart +++ b/test/pages/send_view/send_view_test.mocks.dart @@ -978,6 +978,19 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false, diff --git a/test/screen_tests/exchange/exchange_view_test.mocks.dart b/test/screen_tests/exchange/exchange_view_test.mocks.dart index fc4a829e1..63ddafc1b 100644 --- a/test/screen_tests/exchange/exchange_view_test.mocks.dart +++ b/test/screen_tests/exchange/exchange_view_test.mocks.dart @@ -454,6 +454,19 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false, diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart index 669741692..bb7ed9b5b 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart @@ -3,18 +3,17 @@ // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; -import 'dart:ui' as _i11; +import 'dart:async' as _i4; +import 'dart:ui' as _i10; -import 'package:electrum_adapter/electrum_adapter.dart' as _i3; -import 'package:local_auth/auth_strings.dart' as _i8; -import 'package:local_auth/local_auth.dart' as _i7; +import 'package:local_auth/auth_strings.dart' as _i7; +import 'package:local_auth/local_auth.dart' as _i6; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i4; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i3; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i2; -import 'package:stackwallet/services/wallets_service.dart' as _i10; -import 'package:stackwallet/utilities/biometrics.dart' as _i9; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i6; +import 'package:stackwallet/services/wallets_service.dart' as _i9; +import 'package:stackwallet/utilities/biometrics.dart' as _i8; +import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i5; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -38,22 +37,11 @@ class _FakeElectrumXClient_0 extends _i1.SmartFake ); } -class _FakeElectrumClient_1 extends _i1.SmartFake - implements _i3.ElectrumClient { - _FakeElectrumClient_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i4.CachedElectrumXClient { + implements _i3.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -67,37 +55,10 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i2.ElectrumXClient); @override - _i3.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_1( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i3.ElectrumClient); - @override - set electrumAdapterClient(_i3.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i3.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i3.ElectrumClient>.value(_FakeElectrumClient_1( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i3.ElectrumClient> Function()); - @override - _i5.Future> getAnonymitySet({ + _i4.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i6.Coin? coin, + required _i5.Coin? coin, }) => (super.noSuchMethod( Invocation.method( @@ -110,13 +71,13 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i4.Future>.value({}), + ) as _i4.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i4.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i6.Coin? coin, + required _i5.Coin? coin, }) => (super.noSuchMethod( Invocation.method( @@ -129,8 +90,8 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i4.Future>.value({}), + ) as _i4.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( @@ -148,9 +109,9 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: '', ) as String); @override - _i5.Future> getTransaction({ + _i4.Future> getTransaction({ required String? txHash, - required _i6.Coin? coin, + required _i5.Coin? coin, bool? verbose = true, }) => (super.noSuchMethod( @@ -164,11 +125,11 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i4.Future>.value({}), + ) as _i4.Future>); @override - _i5.Future> getUsedCoinSerials({ - required _i6.Coin? coin, + _i4.Future> getUsedCoinSerials({ + required _i5.Coin? coin, int? startNumber = 0, }) => (super.noSuchMethod( @@ -180,53 +141,53 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i4.Future>.value([]), + ) as _i4.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i6.Coin? coin}) => + _i4.Future> getSparkUsedCoinsTags({required _i5.Coin? coin}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], {#coin: coin}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i4.Future>.value({}), + ) as _i4.Future>); @override - _i5.Future clearSharedTransactionCache({required _i6.Coin? coin}) => + _i4.Future clearSharedTransactionCache({required _i5.Coin? coin}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], {#coin: coin}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i4.Future.value(), + returnValueForMissingStub: _i4.Future.value(), + ) as _i4.Future); } /// A class which mocks [LocalAuthentication]. /// /// See the documentation for Mockito's code generation for more information. class MockLocalAuthentication extends _i1.Mock - implements _i7.LocalAuthentication { + implements _i6.LocalAuthentication { MockLocalAuthentication() { _i1.throwOnMissingStub(this); } @override - _i5.Future get canCheckBiometrics => (super.noSuchMethod( + _i4.Future get canCheckBiometrics => (super.noSuchMethod( Invocation.getter(#canCheckBiometrics), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); @override - _i5.Future authenticateWithBiometrics({ + _i4.Future authenticateWithBiometrics({ required String? localizedReason, bool? useErrorDialogs = true, bool? stickyAuth = false, - _i8.AndroidAuthMessages? androidAuthStrings = - const _i8.AndroidAuthMessages(), - _i8.IOSAuthMessages? iOSAuthStrings = const _i8.IOSAuthMessages(), + _i7.AndroidAuthMessages? androidAuthStrings = + const _i7.AndroidAuthMessages(), + _i7.IOSAuthMessages? iOSAuthStrings = const _i7.IOSAuthMessages(), bool? sensitiveTransaction = true, }) => (super.noSuchMethod( @@ -242,16 +203,16 @@ class MockLocalAuthentication extends _i1.Mock #sensitiveTransaction: sensitiveTransaction, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); @override - _i5.Future authenticate({ + _i4.Future authenticate({ required String? localizedReason, bool? useErrorDialogs = true, bool? stickyAuth = false, - _i8.AndroidAuthMessages? androidAuthStrings = - const _i8.AndroidAuthMessages(), - _i8.IOSAuthMessages? iOSAuthStrings = const _i8.IOSAuthMessages(), + _i7.AndroidAuthMessages? androidAuthStrings = + const _i7.AndroidAuthMessages(), + _i7.IOSAuthMessages? iOSAuthStrings = const _i7.IOSAuthMessages(), bool? sensitiveTransaction = true, bool? biometricOnly = false, }) => @@ -269,46 +230,46 @@ class MockLocalAuthentication extends _i1.Mock #biometricOnly: biometricOnly, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); @override - _i5.Future stopAuthentication() => (super.noSuchMethod( + _i4.Future stopAuthentication() => (super.noSuchMethod( Invocation.method( #stopAuthentication, [], ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); @override - _i5.Future isDeviceSupported() => (super.noSuchMethod( + _i4.Future isDeviceSupported() => (super.noSuchMethod( Invocation.method( #isDeviceSupported, [], ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); @override - _i5.Future> getAvailableBiometrics() => + _i4.Future> getAvailableBiometrics() => (super.noSuchMethod( Invocation.method( #getAvailableBiometrics, [], ), returnValue: - _i5.Future>.value(<_i7.BiometricType>[]), - ) as _i5.Future>); + _i4.Future>.value(<_i6.BiometricType>[]), + ) as _i4.Future>); } /// A class which mocks [Biometrics]. /// /// See the documentation for Mockito's code generation for more information. -class MockBiometrics extends _i1.Mock implements _i9.Biometrics { +class MockBiometrics extends _i1.Mock implements _i8.Biometrics { MockBiometrics() { _i1.throwOnMissingStub(this); } @override - _i5.Future authenticate({ + _i4.Future authenticate({ required String? cancelButtonText, required String? localizedReason, required String? title, @@ -323,28 +284,28 @@ class MockBiometrics extends _i1.Mock implements _i9.Biometrics { #title: title, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i4.Future.value(false), + ) as _i4.Future); } /// A class which mocks [WalletsService]. /// /// See the documentation for Mockito's code generation for more information. -class MockWalletsService extends _i1.Mock implements _i10.WalletsService { +class MockWalletsService extends _i1.Mock implements _i9.WalletsService { @override - _i5.Future> get walletNames => + _i4.Future> get walletNames => (super.noSuchMethod( Invocation.getter(#walletNames), - returnValue: _i5.Future>.value( - {}), - ) as _i5.Future>); + returnValue: _i4.Future>.value( + {}), + ) as _i4.Future>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), returnValue: false, ) as bool); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i10.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -352,7 +313,7 @@ class MockWalletsService extends _i1.Mock implements _i10.WalletsService { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart index 9e2e9d205..85e32012e 100644 --- a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart +++ b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart @@ -5,14 +5,15 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'package:decimal/decimal.dart' as _i2; -import 'package:electrum_adapter/electrum_adapter.dart' as _i4; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i3; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' as _i8; import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -25,8 +26,9 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -35,8 +37,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -45,9 +47,8 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeElectrumXClient_2 extends _i1.SmartFake - implements _i3.ElectrumXClient { - _FakeElectrumXClient_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( Object parent, Invocation parentInvocation, ) : super( @@ -56,9 +57,9 @@ class _FakeElectrumXClient_2 extends _i1.SmartFake ); } -class _FakeElectrumClient_3 extends _i1.SmartFake - implements _i4.ElectrumClient { - _FakeElectrumClient_3( +class _FakeElectrumXClient_3 extends _i1.SmartFake + implements _i4.ElectrumXClient { + _FakeElectrumXClient_3( Object parent, Invocation parentInvocation, ) : super( @@ -70,13 +71,21 @@ class _FakeElectrumClient_3 extends _i1.SmartFake /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i3.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -100,7 +109,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -121,9 +130,9 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i5.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), returnValue: _i5.Future.value(), @@ -455,7 +464,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i5.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -468,7 +477,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -479,15 +488,15 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -495,7 +504,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. @@ -508,40 +517,13 @@ class MockCachedElectrumXClient extends _i1.Mock } @override - _i3.ElectrumXClient get electrumXClient => (super.noSuchMethod( + _i4.ElectrumXClient get electrumXClient => (super.noSuchMethod( Invocation.getter(#electrumXClient), - returnValue: _FakeElectrumXClient_2( + returnValue: _FakeElectrumXClient_3( this, Invocation.getter(#electrumXClient), ), - ) as _i3.ElectrumXClient); - @override - _i4.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i4.ElectrumClient); - @override - set electrumAdapterClient(_i4.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i4.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i4.ElectrumClient>.value(_FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i4.ElectrumClient> Function()); + ) as _i4.ElectrumXClient); @override _i5.Future> getAnonymitySet({ required String? groupId, diff --git a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart index a2b73c2ef..0c2ab7d27 100644 --- a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart +++ b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart @@ -5,14 +5,15 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'package:decimal/decimal.dart' as _i2; -import 'package:electrum_adapter/electrum_adapter.dart' as _i4; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i3; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' as _i8; import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -25,8 +26,9 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -35,8 +37,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -45,9 +47,8 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeElectrumXClient_2 extends _i1.SmartFake - implements _i3.ElectrumXClient { - _FakeElectrumXClient_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( Object parent, Invocation parentInvocation, ) : super( @@ -56,9 +57,9 @@ class _FakeElectrumXClient_2 extends _i1.SmartFake ); } -class _FakeElectrumClient_3 extends _i1.SmartFake - implements _i4.ElectrumClient { - _FakeElectrumClient_3( +class _FakeElectrumXClient_3 extends _i1.SmartFake + implements _i4.ElectrumXClient { + _FakeElectrumXClient_3( Object parent, Invocation parentInvocation, ) : super( @@ -70,13 +71,21 @@ class _FakeElectrumClient_3 extends _i1.SmartFake /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i3.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -100,7 +109,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -121,9 +130,9 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i5.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), returnValue: _i5.Future.value(), @@ -455,7 +464,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i5.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -468,7 +477,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -479,15 +488,15 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -495,7 +504,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. @@ -508,40 +517,13 @@ class MockCachedElectrumXClient extends _i1.Mock } @override - _i3.ElectrumXClient get electrumXClient => (super.noSuchMethod( + _i4.ElectrumXClient get electrumXClient => (super.noSuchMethod( Invocation.getter(#electrumXClient), - returnValue: _FakeElectrumXClient_2( + returnValue: _FakeElectrumXClient_3( this, Invocation.getter(#electrumXClient), ), - ) as _i3.ElectrumXClient); - @override - _i4.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i4.ElectrumClient); - @override - set electrumAdapterClient(_i4.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i4.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i4.ElectrumClient>.value(_FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i4.ElectrumClient> Function()); + ) as _i4.ElectrumXClient); @override _i5.Future> getAnonymitySet({ required String? groupId, diff --git a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart index 4aae75b2e..20a3938e6 100644 --- a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart +++ b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart @@ -5,14 +5,15 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'package:decimal/decimal.dart' as _i2; -import 'package:electrum_adapter/electrum_adapter.dart' as _i4; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i3; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' as _i8; import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -25,8 +26,9 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -35,8 +37,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -45,9 +47,8 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeElectrumXClient_2 extends _i1.SmartFake - implements _i3.ElectrumXClient { - _FakeElectrumXClient_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( Object parent, Invocation parentInvocation, ) : super( @@ -56,9 +57,9 @@ class _FakeElectrumXClient_2 extends _i1.SmartFake ); } -class _FakeElectrumClient_3 extends _i1.SmartFake - implements _i4.ElectrumClient { - _FakeElectrumClient_3( +class _FakeElectrumXClient_3 extends _i1.SmartFake + implements _i4.ElectrumXClient { + _FakeElectrumXClient_3( Object parent, Invocation parentInvocation, ) : super( @@ -70,13 +71,21 @@ class _FakeElectrumClient_3 extends _i1.SmartFake /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i3.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -100,7 +109,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -121,9 +130,9 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i5.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), returnValue: _i5.Future.value(), @@ -455,7 +464,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i5.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -468,7 +477,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -479,15 +488,15 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -495,7 +504,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. @@ -508,40 +517,13 @@ class MockCachedElectrumXClient extends _i1.Mock } @override - _i3.ElectrumXClient get electrumXClient => (super.noSuchMethod( + _i4.ElectrumXClient get electrumXClient => (super.noSuchMethod( Invocation.getter(#electrumXClient), - returnValue: _FakeElectrumXClient_2( + returnValue: _FakeElectrumXClient_3( this, Invocation.getter(#electrumXClient), ), - ) as _i3.ElectrumXClient); - @override - _i4.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i4.ElectrumClient); - @override - set electrumAdapterClient(_i4.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i4.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i4.ElectrumClient>.value(_FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i4.ElectrumClient> Function()); + ) as _i4.ElectrumXClient); @override _i5.Future> getAnonymitySet({ required String? groupId, diff --git a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart index bdf67b8a3..34a2b7c9e 100644 --- a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart +++ b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart @@ -5,14 +5,15 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'package:decimal/decimal.dart' as _i2; -import 'package:electrum_adapter/electrum_adapter.dart' as _i4; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i3; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' as _i8; import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -25,8 +26,9 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -35,8 +37,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -45,9 +47,8 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeElectrumXClient_2 extends _i1.SmartFake - implements _i3.ElectrumXClient { - _FakeElectrumXClient_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( Object parent, Invocation parentInvocation, ) : super( @@ -56,9 +57,9 @@ class _FakeElectrumXClient_2 extends _i1.SmartFake ); } -class _FakeElectrumClient_3 extends _i1.SmartFake - implements _i4.ElectrumClient { - _FakeElectrumClient_3( +class _FakeElectrumXClient_3 extends _i1.SmartFake + implements _i4.ElectrumXClient { + _FakeElectrumXClient_3( Object parent, Invocation parentInvocation, ) : super( @@ -70,13 +71,21 @@ class _FakeElectrumClient_3 extends _i1.SmartFake /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i3.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -100,7 +109,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -121,9 +130,9 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i5.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), returnValue: _i5.Future.value(), @@ -455,7 +464,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i5.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -468,7 +477,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -479,15 +488,15 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -495,7 +504,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. @@ -508,40 +517,13 @@ class MockCachedElectrumXClient extends _i1.Mock } @override - _i3.ElectrumXClient get electrumXClient => (super.noSuchMethod( + _i4.ElectrumXClient get electrumXClient => (super.noSuchMethod( Invocation.getter(#electrumXClient), - returnValue: _FakeElectrumXClient_2( + returnValue: _FakeElectrumXClient_3( this, Invocation.getter(#electrumXClient), ), - ) as _i3.ElectrumXClient); - @override - _i4.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i4.ElectrumClient); - @override - set electrumAdapterClient(_i4.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i4.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i4.ElectrumClient>.value(_FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i4.ElectrumClient> Function()); + ) as _i4.ElectrumXClient); @override _i5.Future> getAnonymitySet({ required String? groupId, diff --git a/test/services/coins/particl/particl_wallet_test.mocks.dart b/test/services/coins/particl/particl_wallet_test.mocks.dart index 4c03c2fe0..447d01329 100644 --- a/test/services/coins/particl/particl_wallet_test.mocks.dart +++ b/test/services/coins/particl/particl_wallet_test.mocks.dart @@ -5,14 +5,15 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'package:decimal/decimal.dart' as _i2; -import 'package:electrum_adapter/electrum_adapter.dart' as _i4; +import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i3; +import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' as _i8; import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -25,8 +26,9 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeDuration_0 extends _i1.SmartFake implements Duration { - _FakeDuration_0( +class _FakeCryptoCurrency_0 extends _i1.SmartFake + implements _i2.CryptoCurrency { + _FakeCryptoCurrency_0( Object parent, Invocation parentInvocation, ) : super( @@ -35,8 +37,8 @@ class _FakeDuration_0 extends _i1.SmartFake implements Duration { ); } -class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { - _FakeDecimal_1( +class _FakeDuration_1 extends _i1.SmartFake implements Duration { + _FakeDuration_1( Object parent, Invocation parentInvocation, ) : super( @@ -45,9 +47,8 @@ class _FakeDecimal_1 extends _i1.SmartFake implements _i2.Decimal { ); } -class _FakeElectrumXClient_2 extends _i1.SmartFake - implements _i3.ElectrumXClient { - _FakeElectrumXClient_2( +class _FakeDecimal_2 extends _i1.SmartFake implements _i3.Decimal { + _FakeDecimal_2( Object parent, Invocation parentInvocation, ) : super( @@ -56,9 +57,9 @@ class _FakeElectrumXClient_2 extends _i1.SmartFake ); } -class _FakeElectrumClient_3 extends _i1.SmartFake - implements _i4.ElectrumClient { - _FakeElectrumClient_3( +class _FakeElectrumXClient_3 extends _i1.SmartFake + implements _i4.ElectrumXClient { + _FakeElectrumXClient_3( Object parent, Invocation parentInvocation, ) : super( @@ -70,13 +71,21 @@ class _FakeElectrumClient_3 extends _i1.SmartFake /// A class which mocks [ElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. -class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { +class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { MockElectrumXClient() { _i1.throwOnMissingStub(this); } @override - set failovers(List<_i3.ElectrumXNode>? _failovers) => super.noSuchMethod( + _i2.CryptoCurrency get cryptoCurrency => (super.noSuchMethod( + Invocation.getter(#cryptoCurrency), + returnValue: _FakeCryptoCurrency_0( + this, + Invocation.getter(#cryptoCurrency), + ), + ) as _i2.CryptoCurrency); + @override + set failovers(List<_i4.ElectrumXNode>? _failovers) => super.noSuchMethod( Invocation.setter( #failovers, _failovers, @@ -100,7 +109,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { Duration get connectionTimeoutForSpecialCaseJsonRPCClients => (super.noSuchMethod( Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), - returnValue: _FakeDuration_0( + returnValue: _FakeDuration_1( this, Invocation.getter(#connectionTimeoutForSpecialCaseJsonRPCClients), ), @@ -121,9 +130,9 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future checkElectrumAdapter() => (super.noSuchMethod( + _i5.Future closeAdapter() => (super.noSuchMethod( Invocation.method( - #checkElectrumAdapter, + #closeAdapter, [], ), returnValue: _i5.Future.value(), @@ -455,7 +464,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future<_i2.Decimal> estimateFee({ + _i5.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -468,7 +477,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -479,15 +488,15 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { }, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); @override - _i5.Future<_i2.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i2.Decimal>.value(_FakeDecimal_1( + returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -495,7 +504,7 @@ class MockElectrumXClient extends _i1.Mock implements _i3.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i2.Decimal>); + ) as _i5.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. @@ -508,40 +517,13 @@ class MockCachedElectrumXClient extends _i1.Mock } @override - _i3.ElectrumXClient get electrumXClient => (super.noSuchMethod( + _i4.ElectrumXClient get electrumXClient => (super.noSuchMethod( Invocation.getter(#electrumXClient), - returnValue: _FakeElectrumXClient_2( + returnValue: _FakeElectrumXClient_3( this, Invocation.getter(#electrumXClient), ), - ) as _i3.ElectrumXClient); - @override - _i4.ElectrumClient get electrumAdapterClient => (super.noSuchMethod( - Invocation.getter(#electrumAdapterClient), - returnValue: _FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterClient), - ), - ) as _i4.ElectrumClient); - @override - set electrumAdapterClient(_i4.ElectrumClient? _electrumAdapterClient) => - super.noSuchMethod( - Invocation.setter( - #electrumAdapterClient, - _electrumAdapterClient, - ), - returnValueForMissingStub: null, - ); - @override - _i5.Future<_i4.ElectrumClient> Function() get electrumAdapterUpdateCallback => - (super.noSuchMethod( - Invocation.getter(#electrumAdapterUpdateCallback), - returnValue: () => - _i5.Future<_i4.ElectrumClient>.value(_FakeElectrumClient_3( - this, - Invocation.getter(#electrumAdapterUpdateCallback), - )), - ) as _i5.Future<_i4.ElectrumClient> Function()); + ) as _i4.ElectrumXClient); @override _i5.Future> getAnonymitySet({ required String? groupId, diff --git a/test/widget_tests/managed_favorite_test.mocks.dart b/test/widget_tests/managed_favorite_test.mocks.dart index d2b31bb6d..ebb7ca994 100644 --- a/test/widget_tests/managed_favorite_test.mocks.dart +++ b/test/widget_tests/managed_favorite_test.mocks.dart @@ -712,6 +712,19 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false, diff --git a/test/widget_tests/node_options_sheet_test.mocks.dart b/test/widget_tests/node_options_sheet_test.mocks.dart index 57c22126e..ad81db4cd 100644 --- a/test/widget_tests/node_options_sheet_test.mocks.dart +++ b/test/widget_tests/node_options_sheet_test.mocks.dart @@ -598,6 +598,19 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false, diff --git a/test/widget_tests/transaction_card_test.mocks.dart b/test/widget_tests/transaction_card_test.mocks.dart index 8841fb5db..fc08360ac 100644 --- a/test/widget_tests/transaction_card_test.mocks.dart +++ b/test/widget_tests/transaction_card_test.mocks.dart @@ -698,6 +698,19 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override + bool get solanaEnabled => (super.noSuchMethod( + Invocation.getter(#solanaEnabled), + returnValue: false, + ) as bool); + @override + set solanaEnabled(bool? solanaEnabled) => super.noSuchMethod( + Invocation.setter( + #solanaEnabled, + solanaEnabled, + ), + returnValueForMissingStub: null, + ); + @override bool get frostEnabled => (super.noSuchMethod( Invocation.getter(#frostEnabled), returnValue: false,