diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 09e05324..65e0a6ee 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,7 +1,6 @@ name: Publish to pub.dev on: - workflow_dispatch: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+*' @@ -12,7 +11,6 @@ jobs: permissions: id-token: write runs-on: ubuntu-latest - steps: # Checkout the repo - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 62ae1e1b..ea4fc829 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -## 3.3.0-beta06 +## 3.3.0 - One-Click Auth + SIWE implementation - Coinbase Wallet dependency update -- Bug fixes +- Bug fixes and improvements ## 3.2.2 diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 4c036309..6dc4758b 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -49,6 +49,7 @@ + diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 3f04ec0e..8745d21a 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true versionName=3.3.0 -versionCode=67 +versionCode=71 diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index e75e6ff7..94bf2d7c 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -78,4 +78,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 58328b9b..340b0b88 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -470,7 +470,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5R8AG9K22; ENABLE_BITCODE = NO; @@ -496,7 +496,7 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.web3modal.flutterExample.RunnerTests; @@ -514,7 +514,7 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.web3modal.flutterExample.RunnerTests; @@ -530,7 +530,7 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.web3modal.flutterExample.RunnerTests; @@ -655,7 +655,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5R8AG9K22; ENABLE_BITCODE = NO; @@ -686,7 +686,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 67; + CURRENT_PROJECT_VERSION = 70; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5R8AG9K22; ENABLE_BITCODE = NO; diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 1a2a788d..0050911f 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -36,7 +36,7 @@ CFBundleVersion - 67 + 70 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes @@ -82,14 +82,13 @@ trust thorwallet krakenwallet - cosmostation coinwallet mewwallet metamask avacus - argent walletapp - wcflutterwallet + wcflutterwallet-production + wcflutterwallet-internal rn-web3wallet LSRequiresIPhoneOS diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index 29135810..49b5d843 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -54,7 +54,7 @@ class _MyHomePageState extends State { ], redirect: Redirect( native: 'web3modalflutter://', - universal: 'https://walletconnect.com/appkit', + // universal: 'https://walletconnect.com/appkit', ), ); @@ -74,7 +74,7 @@ class _MyHomePageState extends State { getMessageParams: () async { // Provide everything that is needed to construct the SIWE message debugPrint('[SIWEConfig] getMessageParams()'); - final uri = Uri.parse(_pairingMetadata.redirect!.universal!); + final uri = Uri.parse(_pairingMetadata.redirect!.native!); return SIWEMessageArgs( domain: uri.authority, uri: 'https://walletconnect.com/login', @@ -93,7 +93,7 @@ class _MyHomePageState extends State { try { debugPrint('[SIWEConfig] verifyMessage()'); final payload = args.toJson(); - final uri = Uri.parse(_pairingMetadata.redirect!.universal!); + final uri = Uri.parse(_pairingMetadata.redirect!.native!); final result = await _siweTestService.verifyMessage( payload, domain: uri.authority, @@ -253,9 +253,9 @@ class _MyHomePageState extends State { super.dispose(); } - void _onModalConnect(ModalConnect? event) { - debugPrint('[ExampleApp] _onModalConnect ${event?.toString()}'); + void _onModalConnect(ModalConnect? event) async { setState(() {}); + debugPrint('[ExampleApp] _onModalConnect ${event?.session.toJson()}'); } void _onModalUpdate(ModalConnect? event) { @@ -304,8 +304,8 @@ class _MyHomePageState extends State { } void _onRelayClientError(EventArgs? event) { - debugPrint('[ExampleApp] _onRelayClientError ${event?.toString()}'); setState(() {}); + showTextToast(text: 'Relay disconnected', context: context); } void _onRelayClientDisconnect(EventArgs? event) { @@ -364,13 +364,20 @@ class _MyHomePageState extends State { }, ); }, + floatingActionButton: CircleAvatar( + radius: 6.0, + backgroundColor: _initialized && + _w3mService.web3App?.core.relayClient.isConnected == true + ? Colors.green + : Colors.red, + ), ); } Future _refreshData() async { + await _w3mService.reconnectRelay(); await _w3mService.loadAccountData(); setState(() {}); - return; } } diff --git a/example/lib/widgets/debug_drawer.dart b/example/lib/widgets/debug_drawer.dart index a2cf2708..a8cdaf62 100644 --- a/example/lib/widgets/debug_drawer.dart +++ b/example/lib/widgets/debug_drawer.dart @@ -249,7 +249,6 @@ class _DebugDrawerState extends State with WidgetsBindingObserver { ), onTap: () { if (_hasUpdates) { - // TODO warn and crash! showDialog( context: context, builder: (BuildContext context) { diff --git a/example/lib/widgets/session_widget.dart b/example/lib/widgets/session_widget.dart index f18a1493..30af5058 100644 --- a/example/lib/widgets/session_widget.dart +++ b/example/lib/widgets/session_widget.dart @@ -375,7 +375,7 @@ class SessionWidgetState extends State { [ const SizedBox(height: StyleConstants.linear8), Text( - 'Supported chains:', + 'Session chains:', style: Web3ModalTheme.getDataOf(context).textStyles.small600.copyWith( color: Web3ModalTheme.colorsOf(context).foreground100, ), diff --git a/example/pubspec.lock b/example/pubspec.lock index b76fd0b0..5d2f9c40 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: appcheck - sha256: a9e5852e8c9d14342cfa3569fc464a1d49a49eac41e3d006f5825ce54663678f + sha256: "0214f27148610690a14c0d85b414274a740955a8c352a4c719ba01d9b0f50bde" url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.5.1" archive: dependency: transitive description: @@ -1097,10 +1097,10 @@ packages: dependency: transitive description: name: walletconnect_flutter_v2 - sha256: "67582d34a3ceaf8253870d624112562e6e0af730bedc7954bd4df0099c277ee4" + sha256: "4a77de8d33f5d1f6b6ae07d4d2f7bf591ddb6c4cd671bf7493100798d92fa4d3" url: "https://pub.dev" source: hosted - version: "2.3.0-beta04" + version: "2.3.0" watcher: dependency: transitive description: @@ -1131,7 +1131,7 @@ packages: path: ".." relative: true source: path - version: "3.3.0-beta06" + version: "3.3.0" web_socket_channel: dependency: transitive description: diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e75e6ff7..98b8a132 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -8,9 +8,6 @@ PODS: - CoinbaseWalletSDK/CrossPlatform (1.0.4): - CoinbaseWalletSDK/Client - Flutter (1.0.0) - - FMDB (2.7.5): - - FMDB/standard (= 2.7.5) - - FMDB/standard (2.7.5) - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -21,7 +18,7 @@ PODS: - FlutterMacOS - sqflite (0.0.3): - Flutter - - FMDB (>= 2.7.5) + - FlutterMacOS - url_launcher_ios (0.0.1): - Flutter - webview_flutter_wkwebview (0.0.1): @@ -34,14 +31,13 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - sqflite (from `.symlinks/plugins/sqflite/ios`) + - sqflite (from `.symlinks/plugins/sqflite/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) SPEC REPOS: trunk: - CoinbaseWalletSDK - - FMDB EXTERNAL SOURCES: appcheck: @@ -57,7 +53,7 @@ EXTERNAL SOURCES: shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" sqflite: - :path: ".symlinks/plugins/sqflite/ios" + :path: ".symlinks/plugins/sqflite/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" webview_flutter_wkwebview: @@ -68,14 +64,13 @@ SPEC CHECKSUMS: coinbase_wallet_sdk: 7ccd4e1a7940deba6ba9bd81beece999a2268c15 CoinbaseWalletSDK: ea1f37512bbc69ebe07416e3b29bf840f5cc3152 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 - shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 - sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a - url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b - webview_flutter_wkwebview: be0f0d33777f1bfd0c9fdcb594786704dbf65f36 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1 PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/lib/pages/account_page.dart b/lib/pages/account_page.dart index 8735738c..53d31be8 100644 --- a/lib/pages/account_page.dart +++ b/lib/pages/account_page.dart @@ -234,7 +234,7 @@ class _SelectNetworkButton extends StatelessWidget { assetColor: themeColors.background100, ), ), - title: service.selectedChain?.chainName ?? '', + title: service.selectedChain?.chainName ?? 'Unsupported network', titleStyle: themeData.textStyles.paragraph500.copyWith( color: themeColors.foreground100, ), diff --git a/lib/services/blockchain_service/blockchain_service.dart b/lib/services/blockchain_service/blockchain_service.dart index b46321f0..6ec93911 100644 --- a/lib/services/blockchain_service/blockchain_service.dart +++ b/lib/services/blockchain_service/blockchain_service.dart @@ -88,7 +88,12 @@ class BlockChainService implements IBlockChainService { rethrow; } } else { - throw Exception('Failed to get request $method'); + final result = jsonDecode(response.body) as Map; + final reasons = result['reasons'] as List; + final reason = reasons.first as Map; + loggerService.instance.i( + '[$runtimeType] Failed to get request $method. ${reason['description']}', + ); } } @@ -104,7 +109,6 @@ class BlockChainService implements IBlockChainService { throw jsonResponse.error!; } - // TODO to be implemented // @override // Future getBalance( // String address, diff --git a/lib/services/coinbase_service/coinbase_service.dart b/lib/services/coinbase_service/coinbase_service.dart index 1322d4b2..d8fd38cb 100644 --- a/lib/services/coinbase_service/coinbase_service.dart +++ b/lib/services/coinbase_service/coinbase_service.dart @@ -99,19 +99,18 @@ class CoinbaseService implements ICoinbaseService { final imageId = defaultWalletData.listing.imageId; _iconImage = explorerService.instance.getWalletImageUrl(imageId); - final universal = _metadata.redirect?.universal ?? ''; - final nativeLink = _metadata.redirect?.native ?? ''; final walletLink = _walletData.listing.mobileLink ?? ''; - if ((universal.isNotEmpty && nativeLink.isNotEmpty) || - walletLink.isNotEmpty) { + final redirect = _metadata.redirect; + final callback = redirect?.universal ?? redirect?.native ?? ''; + if (callback.isNotEmpty || walletLink.isNotEmpty) { try { final config = Configuration( ios: IOSConfiguration( host: Uri.parse(walletLink), - callback: Uri.parse(nativeLink), + callback: Uri.parse(callback), ), android: AndroidConfiguration( - domain: Uri.parse(universal), + domain: Uri.parse(callback), ), ); await CoinbaseWalletSDK.shared.configure(config); @@ -272,16 +271,16 @@ extension on SessionRequestParams { Action toCoinbaseRequest(String? chainId) { switch (method) { case 'personal_sign': - final address = _getAddressFromParamsList(params); - final message = _getDataFromParamsList(params); + final address = _getAddressFromParamsList(method, params); + final message = _getDataFromParamsList(method, params); return PersonalSign(address: address, message: message); case 'eth_signTypedData_v3': - final address = _getAddressFromParamsList(params); - final jsonData = _getDataFromParamsList(params); + final address = _getAddressFromParamsList(method, params); + final jsonData = _getDataFromParamsList(method, params); return SignTypedDataV3(address: address, typedDataJson: jsonData); case 'eth_signTypedData_v4': - final address = _getAddressFromParamsList(params); - final jsonData = _getDataFromParamsList(params); + final address = _getAddressFromParamsList(method, params); + final jsonData = _getDataFromParamsList(method, params); return SignTypedDataV4(address: address, typedDataJson: jsonData); case 'eth_requestAccounts': return RequestAccounts(); @@ -336,8 +335,8 @@ extension on SessionRequestParams { throw W3MCoinbaseException('Unrecognized chainId $chainId', e, s); } case 'wallet_watchAsset': - final address = _getAddressFromParamsList(params); - final symbol = _getDataFromParamsList(params); + final address = _getAddressFromParamsList(method, params); + final symbol = _getDataFromParamsList(method, params); return WatchAsset( address: address, symbol: symbol, @@ -347,23 +346,40 @@ extension on SessionRequestParams { } } - // TODO [CoinbaseService] this should be an utils on WCFV2 - String _getAddressFromParamsList(dynamic params) { - return (params as List).firstWhere((p) { - try { - EthereumAddress.fromHex(p); - return true; - } catch (e) { - return false; + String _getAddressFromParamsList(String method, dynamic params) { + try { + final paramsList = List.from((params as List)); + if (method == 'personal_sign') { + // for `personal_sign` first value in params has to be always the message + paramsList.removeAt(0); } - }); + + return paramsList.firstWhere((p) { + try { + EthereumAddress.fromHex(p); + return true; + } catch (e) { + return false; + } + }); + } catch (e) { + rethrow; + } } - dynamic _getDataFromParamsList(dynamic params) { - return (params as List).firstWhere((p) { - final address = _getAddressFromParamsList(params); - return p != address; - }); + dynamic _getDataFromParamsList(String method, dynamic params) { + try { + final paramsList = List.from((params as List)); + if (method == 'personal_sign') { + return paramsList.first; + } + return paramsList.firstWhere((p) { + final address = _getAddressFromParamsList(method, params); + return p != address; + }); + } catch (e) { + rethrow; + } } Map _getTransactionFromParams(dynamic params) { diff --git a/lib/services/explorer_service/explorer_service.dart b/lib/services/explorer_service/explorer_service.dart index ed41d3ea..e1b1355b 100644 --- a/lib/services/explorer_service/explorer_service.dart +++ b/lib/services/explorer_service/explorer_service.dart @@ -107,16 +107,14 @@ class ExplorerService implements IExplorerService { return; } - await _setInstalledWalletIdsParam(); - await _fetchInitialWallets(); - - initialized.value = true; - } - - Future _setInstalledWalletIdsParam() async { + // TODO ideally we should call this at every opening to be able to detect newly installed wallets. final nativeData = await _fetchNativeAppData(); final installed = await nativeData.getInstalledApps(); _installedWalletIds = Set.from(installed.map((e) => e.id)); + + await _fetchInitialWallets(); + + initialized.value = true; } Future _fetchInitialWallets() async { diff --git a/lib/services/explorer_service/models/wc_sample_wallets.dart b/lib/services/explorer_service/models/wc_sample_wallets.dart index ddc99d9b..bd5662e8 100644 --- a/lib/services/explorer_service/models/wc_sample_wallets.dart +++ b/lib/services/explorer_service/models/wc_sample_wallets.dart @@ -1,4 +1,3 @@ -import 'package:web3modal_flutter/constants/url_constants.dart'; import 'package:web3modal_flutter/models/listing.dart'; import 'package:web3modal_flutter/services/explorer_service/models/native_app_data.dart'; import 'package:web3modal_flutter/web3modal_flutter.dart'; @@ -7,7 +6,7 @@ class WCSampleWallets { static final nativeData = { // Swift Wallet '123456789012345678901234567890': { - 'name': 'Wallet (Swift)', + 'name': 'SW Wallet', 'platform': ['ios'], 'ios': NativeAppData( id: '123456789012345678901234567890', @@ -20,20 +19,33 @@ class WCSampleWallets { }, // Flutter Wallet '123456789012345678901234567891': { - 'name': 'Wallet (Flutter)', + 'name': 'FL Wallet', 'platform': ['ios', 'android'], 'ios': NativeAppData( id: '123456789012345678901234567891', - schema: 'wcflutterwallet://', + schema: 'wcflutterwallet-production://', ), 'android': NativeAppData( id: '123456789012345678901234567891', schema: 'com.walletconnect.flutterwallet', ), }, + // Flutter Wallet internal + '123456789012345678901234567895': { + 'name': 'FL Wallet (internal)', + 'platform': ['ios', 'android'], + 'ios': NativeAppData( + id: '123456789012345678901234567895', + schema: 'wcflutterwallet-internal://', + ), + 'android': NativeAppData( + id: '123456789012345678901234567895', + schema: 'com.walletconnect.flutterwallet.internal', + ), + }, // React Native Wallet '123456789012345678901234567892': { - 'name': 'Wallet (RN)', + 'name': 'RN Wallet (internal)', 'platform': ['ios', 'android'], 'ios': NativeAppData( id: '123456789012345678901234567892', @@ -44,9 +56,22 @@ class WCSampleWallets { schema: 'com.walletconnect.web3wallet.rnsample', ), }, + // React Native Wallet internal + '1234567890123456789012345678922': { + 'name': 'RN Wallet (internal)', + 'platform': ['ios', 'android'], + 'ios': NativeAppData( + id: '1234567890123456789012345678922', + schema: 'rn-web3wallet://', + ), + 'android': NativeAppData( + id: '1234567890123456789012345678922', + schema: 'com.walletconnect.web3wallet.rnsample.internal', + ), + }, // Kotlin Wallet '123456789012345678901234567893': { - 'name': 'Wallet (Kotlin)', + 'name': 'KT Wallet', 'platform': ['android'], 'ios': NativeAppData( id: '123456789012345678901234567893', @@ -59,7 +84,7 @@ class WCSampleWallets { }, // Kotlin Wallet Internal '123456789012345678901234567894': { - 'name': 'Wallet (Kotlin Internal)', + 'name': 'KT Wallet (Internal)', 'platform': ['android'], 'ios': NativeAppData( id: '123456789012345678901234567894', @@ -78,13 +103,15 @@ class WCSampleWallets { final schema = (entry.value['ios']! as NativeAppData).schema; final platforms = entry.value['platform']! as List; final name = entry.value['name']! as String; + final icon = + 'https://thegraph.academy/wp-content/uploads/2021/04/WalletConnect-logo.png'; if (platforms.contains(platform)) { return W3MWalletInfo( listing: Listing.fromJson({ 'id': entry.key, 'name': name, 'homepage': 'https://walletconnect.com', - 'image_id': _walletImage, + 'image_id': icon, 'order': 10, 'mobile_link': schema, 'app_store': @@ -99,7 +126,4 @@ class WCSampleWallets { }).toList(); return wallets.whereType().toList(); } - - static const _walletImage = - '${UrlConstants.docsUrl}/assets/images/web3walletLogo-54d3b546146931ceaf47a3500868a73a.png'; } diff --git a/lib/services/magic_service/magic_service.dart b/lib/services/magic_service/magic_service.dart index 94cfcf72..2acea3ee 100644 --- a/lib/services/magic_service/magic_service.dart +++ b/lib/services/magic_service/magic_service.dart @@ -579,6 +579,9 @@ class MagicService implements IMagicService { '''); } + // sendW3Message({type:"@w3m-app/GET_SOCIAL_REDIRECT_URI",payload:{provider:"x"}}); + // sendW3Message({type:"@w3m-app/CONNECT_SOCIAL",payload:{uri:"https://auth.magic.link/v1/oauth2/twitter/start?magic_api_key=pk_live_B080E9DC31E5875E&magic_challenge=9HbSG6KYL3r2b7LqzhD7-EcjoHLj-a7wt7npmSBR2fw&state=FfR0W7idPzp81HM2KE~zBPR7bbSQM97CL5zZZMHd_2_ZHZ~rLvnO63MO3fd6eB4LMymif9pQupdhVL11l4NsQk4D-zQDfPGB17PpiWjPobCemCZwP.HdkH4dQeSDgkiH&platform=web&redirect_uri=https%3A%2F%2Fsecure.walletconnect.com%2Fsdk%2Foauth%3FprojectId%3Dcad4956f31a5e40a00b62865b030c6f8"}}); + void _onDebugConsoleReceived(JavaScriptConsoleMessage message) { loggerService.instance.d('[$runtimeType] JS Console ${message.message}'); } diff --git a/lib/services/siwe_service/models/w3m_siwe.g.dart b/lib/services/siwe_service/models/w3m_siwe.g.dart index a3b33b11..ae9dee21 100644 --- a/lib/services/siwe_service/models/w3m_siwe.g.dart +++ b/lib/services/siwe_service/models/w3m_siwe.g.dart @@ -27,7 +27,7 @@ _$SIWECreateMessageArgsImpl _$$SIWECreateMessageArgsImplFromJson( resources: (json['resources'] as List?) ?.map((e) => e as String) .toList(), - expiry: json['expiry'] as int?, + expiry: (json['expiry'] as num?)?.toInt(), iat: json['iat'] as String?, ); @@ -65,7 +65,7 @@ _$SIWEMessageArgsImpl _$$SIWEMessageArgsImplFromJson( resources: (json['resources'] as List?) ?.map((e) => e as String) .toList(), - expiry: json['expiry'] as int?, + expiry: (json['expiry'] as num?)?.toInt(), iat: json['iat'] as String?, methods: (json['methods'] as List?)?.map((e) => e as String).toList(), diff --git a/lib/services/w3m_service/i_w3m_service.dart b/lib/services/w3m_service/i_w3m_service.dart index c49d16bb..190985a2 100644 --- a/lib/services/w3m_service/i_w3m_service.dart +++ b/lib/services/w3m_service/i_w3m_service.dart @@ -11,6 +11,7 @@ enum W3MServiceStatus { bool get isInitialized => this == initialized; bool get isLoading => this == initializing; + bool get isError => this == error; } /// Either a [projectId] and [metadata] must be provided or an already created [web3App]. diff --git a/lib/services/w3m_service/models/w3m_session.dart b/lib/services/w3m_service/models/w3m_session.dart index 917ce11e..897ee4bc 100644 --- a/lib/services/w3m_service/models/w3m_session.dart +++ b/lib/services/w3m_service/models/w3m_session.dart @@ -248,11 +248,7 @@ extension W3MSessionExtension on W3MSession { namespaces: namespaces ?? {}, ); if (chainIds.isNotEmpty) { - final chainId = (chainIds..sort()).first.split(':')[1]; - // If we have the chain in our presets, set it as the selected chain - if (W3MChainPresets.chains.containsKey(chainId)) { - return chainId; - } + return (chainIds..sort()).first.split(':')[1]; } } if (sessionService.isCoinbase) { diff --git a/lib/services/w3m_service/w3m_service.dart b/lib/services/w3m_service/w3m_service.dart index ed0c456c..a4a963ab 100644 --- a/lib/services/w3m_service/w3m_service.dart +++ b/lib/services/w3m_service/w3m_service.dart @@ -65,9 +65,10 @@ class W3MService with ChangeNotifier implements IW3MService { @override W3MServiceStatus get status => _status; - W3MChainInfo? _currentSelectedChain; + String? _currentSelectedChainId; @override - W3MChainInfo? get selectedChain => _currentSelectedChain; + W3MChainInfo? get selectedChain => + W3MChainPresets.chains[_currentSelectedChainId]; W3MWalletInfo? _selectedWallet; @override @@ -116,7 +117,12 @@ class W3MService with ChangeNotifier implements IW3MService { BuildContext? _context; @override - BuildContext? get modalContext => _context; + BuildContext? get modalContext { + if (_context?.mounted == true) { + return _context; + } + return null; + } /// `context` is required if SIWEConfig is passed. W3MService({ @@ -238,8 +244,7 @@ class W3MService with ChangeNotifier implements IW3MService { final isMagic = _currentSession?.sessionService.isMagic == true; final isCoinbase = _currentSession?.sessionService.isCoinbase == true; if (isMagic || isCoinbase) { - final chainId = _currentSession!.chainId; - _currentSelectedChain = W3MChainPresets.chains[chainId]; + _currentSelectedChainId = _currentSession!.chainId; await _setSesionAndChainData(_currentSession!); if (isMagic) { await magicService.instance.init(); @@ -296,8 +301,9 @@ class W3MService with ChangeNotifier implements IW3MService { onModalNetworkChange.subscribe(_onNetworkChainRequireSIWE); - _serviceInitialized = true; - _status = W3MServiceStatus.initialized; + final connected = _web3App.core.relayClient.isConnected; + _serviceInitialized = connected; + _status = connected ? W3MServiceStatus.initialized : W3MServiceStatus.error; _logger.i('[$runtimeType] initialized'); _notify(); } @@ -324,9 +330,8 @@ class W3MService with ChangeNotifier implements IW3MService { Future _setSesionAndChainData(W3MSession w3mSession) async { try { await _storeSession(w3mSession); - final chainId = _currentSelectedChain?.chainId ?? w3mSession.chainId; - final chainInfo = W3MChainPresets.chains[chainId]!; - await _setLocalEthChain(chainInfo, logEvent: false); + final chainId = _currentSelectedChainId ?? w3mSession.chainId; + await _setLocalEthChain(chainId, logEvent: false); } catch (e, s) { _logger.e( '[$runtimeType] _setSesionAndChainData error $e', @@ -362,12 +367,11 @@ class W3MService with ChangeNotifier implements IW3MService { Future _selectChainFromStoredId() async { if (_currentSession != null) { - final chainId = _savedChainId('')!; - if (chainId.isNotEmpty && W3MChainPresets.chains.containsKey(chainId)) { + final chainId = _savedChainId(null); + if (chainId != null && W3MChainPresets.chains.containsKey(chainId)) { await selectChain(W3MChainPresets.chains[chainId]!, logEvent: false); } else { - final chainId = _currentSession!.chainId; - await selectChain(W3MChainPresets.chains[chainId]!, logEvent: false); + _currentSelectedChainId = chainId; } } } @@ -380,7 +384,7 @@ class W3MService with ChangeNotifier implements IW3MService { }) async { _checkInitialized(); - if (chainInfo?.chainId == _currentSelectedChain?.chainId) { + if (chainInfo?.chainId == _currentSelectedChainId) { return; } @@ -399,7 +403,7 @@ class W3MService with ChangeNotifier implements IW3MService { // )); } else { final hasValidSession = _isConnected && _currentSession != null; - if (switchChain && hasValidSession && _currentSelectedChain != null) { + if (switchChain && hasValidSession && _currentSelectedChainId != null) { final approvedChains = _currentSession!.getApprovedChains() ?? []; final hasChainAlready = approvedChains.contains(chainInfo.namespace); if (!hasChainAlready) { @@ -409,10 +413,10 @@ class W3MService with ChangeNotifier implements IW3MService { launchConnectedWallet(); } } else { - await _setLocalEthChain(chainInfo, logEvent: logEvent); + await _setLocalEthChain(chainInfo.chainId, logEvent: logEvent); } } else { - await _setLocalEthChain(chainInfo, logEvent: logEvent); + await _setLocalEthChain(chainInfo.chainId, logEvent: logEvent); } } } @@ -452,30 +456,29 @@ class W3MService with ChangeNotifier implements IW3MService { return _currentSession!.getApprovedEvents(); } - Future _setLocalEthChain( - W3MChainInfo chainInfo, { - bool logEvent = false, - }) async { - _logger.i('[$runtimeType] set local chain ${chainInfo.namespace}'); - _currentSelectedChain = chainInfo; + Future _setLocalEthChain(String chainId, {bool? logEvent}) async { + final caip2Chain = 'eip155:$_currentSelectedChainId'; + _logger.i('[$runtimeType] set local chain $caip2Chain'); + _currentSelectedChainId = chainId; _notify(); // Store the chain for when we reload the app. // If switchChain is true the store is on [_switchEthChain] await storageService.instance.setString( StringConstants.selectedChainId, - _currentSelectedChain!.chainId, + _currentSelectedChainId!, ); - if (_isConnected && logEvent) { - final network = chainInfo.chainId; - analyticsService.instance.sendEvent(SwitchNetworkEvent(network: network)); + if (_isConnected && logEvent == true) { + analyticsService.instance.sendEvent(SwitchNetworkEvent( + network: _currentSelectedChainId!, + )); } - if (_lastChainEmitted != chainInfo.namespace && _isConnected) { + if (_lastChainEmitted != caip2Chain && _isConnected) { if (_lastChainEmitted != null) { onModalNetworkChange.broadcast(ModalNetworkChange( - chainId: chainInfo.namespace, + chainId: caip2Chain, )); } - _lastChainEmitted = chainInfo.namespace; + _lastChainEmitted = caip2Chain; } loadAccountData(); } @@ -520,6 +523,25 @@ class W3MService with ChangeNotifier implements IW3MService { return _showModalView(startWidget: startWidget); } + // if connected can open + // KeyConstants.approveTransactionPage + // KeyConstants.confirmEmailPage + // KeyConstants.selectNetworkPage + + // otherwise + // KeyConstants.selectNetworkPage + // null + // Map> get _allowedWidgets => { + // true: [ + // KeyConstants.approveTransactionPage, + // KeyConstants.confirmEmailPage, + // KeyConstants.selectNetworkPage, + // ], + // false: [ + // KeyConstants.selectNetworkPage, + // ] + // }; + Future _showModalView({ BuildContext? context, Widget? startWidget, @@ -535,7 +557,9 @@ class W3MService with ChangeNotifier implements IW3MService { if (_context == null) { loggerService.instance.e( - 'No context was found. Try adding `context:` parameter in W3MService class'); + 'No context was found. ' + 'Try adding `context:` parameter in W3MService class', + ); return; } @@ -873,7 +897,9 @@ class W3MService with ChangeNotifier implements IW3MService { @override Future reconnectRelay() async { - await _web3App.core.relayClient.connect(); + if (!_web3App.core.relayClient.isConnected) { + await _web3App.core.relayClient.connect(); + } } @override @@ -957,8 +983,9 @@ class W3MService with ChangeNotifier implements IW3MService { _disconnectOnClose = false; final currentKey = widgetStack.instance.getCurrent().key; if (currentKey == KeyConstants.approveSiwePageKey) { - final chainId = _currentSelectedChain?.chainId ?? '1'; - analyticsService.instance.sendEvent(ClickCancelSiwe(network: chainId)); + analyticsService.instance.sendEvent(ClickCancelSiwe( + network: _currentSelectedChainId ?? '', + )); } await disconnect(); selectWallet(null); @@ -976,8 +1003,8 @@ class W3MService with ChangeNotifier implements IW3MService { @override void launchBlockExplorer() async { - if (_currentSelectedChain?.blockExplorer != null) { - final blockExplorer = _currentSelectedChain!.blockExplorer!.url; + if (selectedChain?.blockExplorer != null) { + final blockExplorer = selectedChain!.blockExplorer!.url; final address = _currentSession?.address ?? ''; final explorerUrl = '$blockExplorer/address/$address'; await urlUtils.instance.launchUrl( @@ -1216,7 +1243,7 @@ class W3MService with ChangeNotifier implements IW3MService { @override Future loadAccountData() async { // If there is no selected chain or session, stop. No account to load in. - if (_currentSelectedChain == null || + if (_currentSelectedChainId == null || _currentSession == null || _currentSession?.address == null) { return; @@ -1226,9 +1253,9 @@ class W3MService with ChangeNotifier implements IW3MService { _chainBalance = await blockchainService.instance.getRpcRequest( method: 'eth_getBalance', params: [_currentSession!.address!, 'latest'], - chain: _currentSelectedChain!.namespace, + chain: 'eip155:$_currentSelectedChainId', ); - final tokenName = _currentSelectedChain?.tokenName ?? ''; + final tokenName = selectedChain?.tokenName ?? ''; balanceNotifier.value = '$_chainBalance $tokenName'; // Get the avatar, each chainId is just a number in string form. @@ -1250,13 +1277,13 @@ class W3MService with ChangeNotifier implements IW3MService { await selectChain(newChain); return; } - final currentChainId = _currentSelectedChain!.namespace; + final currentChain = 'eip155:$_currentSelectedChainId'; final newChainId = newChain.namespace; _logger.i('[$runtimeType] requesting switch to chain $newChainId'); try { await request( topic: _currentSession?.topic ?? '', - chainId: currentChainId, + chainId: currentChain, switchToChainId: newChainId, request: SessionRequestParams( method: MethodsConstants.walletSwitchEthChain, @@ -1265,14 +1292,14 @@ class W3MService with ChangeNotifier implements IW3MService { ], ), ); - _currentSelectedChain = newChain; + _currentSelectedChainId = newChain.chainId; await _setSesionAndChainData(_currentSession!); return; } catch (e) { _logger.i('[$runtimeType] requestSwitchToChain error $e'); // if request errors due to user rejection then set the previous chain if (_isUserRejectedError(e)) { - await _setLocalEthChain(_currentSelectedChain!); + await _setLocalEthChain(_currentSelectedChainId!); throw JsonRpcError(code: 5002, message: 'User rejected methods.'); } else { try { @@ -1288,7 +1315,7 @@ class W3MService with ChangeNotifier implements IW3MService { @override Future requestAddChain(W3MChainInfo newChain) async { final topic = _currentSession?.topic ?? ''; - final currentChainId = _currentSelectedChain!.namespace; + final currentChainId = 'eip155:$_currentSelectedChainId'; final newChainId = newChain.namespace; _logger.i('[$runtimeType] requesting switch to add chain $newChainId'); try { @@ -1301,12 +1328,12 @@ class W3MService with ChangeNotifier implements IW3MService { params: [newChain.toJson()], ), ); - _currentSelectedChain = newChain; + _currentSelectedChainId = newChain.chainId; await _setSesionAndChainData(_currentSession!); return; } catch (e) { _logger.i('[$runtimeType] requestAddChain error $e'); - await _setLocalEthChain(_currentSelectedChain!); + await _setLocalEthChain(_currentSelectedChainId!); throw JsonRpcError(code: 5002, message: 'User rejected methods.'); } } @@ -1354,7 +1381,7 @@ class W3MService with ChangeNotifier implements IW3MService { id: args?.id, )); } - _currentSelectedChain = null; + _currentSelectedChainId = null; _isConnected = false; _currentSession = null; _lastChainEmitted = null; @@ -1456,7 +1483,7 @@ class W3MService with ChangeNotifier implements IW3MService { ); } - String? _savedChainId(String defaultValue) { + String? _savedChainId(String? defaultValue) { return storageService.instance.getString( StringConstants.selectedChainId, defaultValue: defaultValue, @@ -1465,13 +1492,13 @@ class W3MService with ChangeNotifier implements IW3MService { } extension _W3MMagicExtension on W3MService { + // Login event should be treated like Connect event for regular wallets Future _onMagicLoginEvent(MagicLoginEvent? args) async { final debugString = jsonEncode(args?.data?.toJson()); _logger.i('[$runtimeType] _onMagicLoginEvent: $debugString'); if (args!.data != null) { final newChainId = _savedChainId('${args.data!.chainId}')!; - final newChain = W3MChainPresets.chains[newChainId]!; - _currentSelectedChain = newChain; + _currentSelectedChainId = newChainId; // final magicData = args.data?.copytWith(chainId: int.tryParse(newChainId)); final session = W3MSession(magicData: magicData); @@ -1509,8 +1536,7 @@ extension _W3MMagicExtension on W3MService { final newEmail = args.email ?? _currentSession!.email; final address = args.address ?? _currentSession!.address!; final chainId = args.chainId?.toString() ?? _currentSession!.chainId; - final newChain = W3MChainPresets.chains[chainId]!; - _currentSelectedChain = newChain; + _currentSelectedChainId = chainId; // final session = _currentSession!.copyWith( magicData: MagicData( @@ -1525,6 +1551,7 @@ extension _W3MMagicExtension on W3MService { ), ); await _setSesionAndChainData(session); + onModalUpdate.broadcast(ModalConnect(session)); } catch (e, s) { _logger.d( '[$runtimeType] _onMagicUpdateEvent: $e', @@ -1569,8 +1596,7 @@ extension _W3MCoinbaseExtension on W3MService { _logger.i('[$runtimeType] _onCoinbaseConnectEvent: $debugString'); if (args?.data != null) { final newChainId = _savedChainId('${args!.data!.chainId}')!; - final newChain = W3MChainPresets.chains[newChainId]!; - _currentSelectedChain = newChain; + _currentSelectedChainId = newChainId; // final session = W3MSession(coinbaseData: args.data!); await _setSesionAndChainData(session); @@ -1590,18 +1616,17 @@ extension _W3MCoinbaseExtension on W3MService { } void _onCoinbaseSessionUpdateEvent(CoinbaseSessionEvent? args) async { - _logger.d('[$runtimeType] _onCoinbaseSessionUpdateEvent $args'); + _logger.i('[$runtimeType] _onCoinbaseSessionUpdateEvent $args'); if (args != null) { try { final address = args.address ?? _currentSession!.address!; final chainId = args.chainId ?? _currentSession!.chainId; - final newChain = W3MChainPresets.chains[chainId]!; - _currentSelectedChain = newChain; + _currentSelectedChainId = chainId; // final session = _currentSession!.copyWith( coinbaseData: CoinbaseData( address: address, - chainName: newChain.chainName, + chainName: W3MChainPresets.chains[chainId]?.chainName ?? '', chainId: int.parse(chainId), peer: coinbaseService.instance.metadata, self: ConnectionMetadata( @@ -1611,6 +1636,7 @@ extension _W3MCoinbaseExtension on W3MService { ), ); await _setSesionAndChainData(session); + onModalUpdate.broadcast(ModalConnect(session)); } catch (e, s) { _logger.d( '[$runtimeType] _onCoinbaseSessionUpdateEvent: $e', @@ -1636,11 +1662,6 @@ extension _W3MServiceExtension on W3MService { if (args?.session != null) { // IF 1-CA SUPPORTED WE SHOULD CALL SIWECONGIF METHODS HERE final session = await _settleSession(args!.session!); - final namespace = args.session!.namespaces[StringConstants.namespace]!; - final chains = namespace.chains!.map((c) => c.split(':').last).toList() - ..sort(); - String chainId = _currentSelectedChain?.chainId ?? chains.first; - chainId = W3MChainPresets.chains[chainId]!.namespace; // try { // Verify message with just the first cacao @@ -1698,12 +1719,12 @@ extension _W3MServiceExtension on W3MService { // HAS TO BE CALLED JUST ONCE ON CONNECTION Future _settleSession(SessionData sessionData) async { - if (_currentSelectedChain == null) { + if (_currentSelectedChainId == null) { final chains = NamespaceUtils.getChainIdsFromNamespaces( namespaces: sessionData.namespaces, )..sort((a, b) => a.compareTo(b)); final chainId = chains.first.split(':').last.toString(); - _currentSelectedChain = W3MChainPresets.chains[chainId]; + _currentSelectedChainId = chainId; } final session = W3MSession(sessionData: sessionData); await _setSesionAndChainData(session); @@ -1738,21 +1759,16 @@ extension _W3MServiceExtension on W3MService { _logger.i('[$runtimeType] session event $args'); onSessionEventEvent.broadcast(args); if (args?.name == EventsConstants.chainChanged) { - final chainId = args?.data.toString() ?? ''; - if (W3MChainPresets.chains.containsKey(chainId)) { - final newChain = W3MChainPresets.chains[chainId]; - await selectChain(newChain); - } else { - _currentSelectedChain = null; - _notify(); - } + _currentSelectedChainId = args?.data?.toString(); } else if (args?.name == EventsConstants.accountsChanged) { try { + // TODO implement account change if (siweService.instance!.signOutOnAccountChange) { await siweService.instance!.signOut(); } } catch (_) {} } + _notify(); } void _onSessionUpdate(SessionUpdate? args) async { @@ -1760,9 +1776,16 @@ extension _W3MServiceExtension on W3MService { if (args != null) { final wcSessions = _web3App.sessions.getAll(); if (wcSessions.isEmpty) return; + // + final session = _web3App.sessions.get(args.topic); + final updatedSession = W3MSession( + sessionData: session!.copyWith( + namespaces: args.namespaces, + ), + ); + await _setSesionAndChainData(updatedSession); onSessionUpdateEvent.broadcast(args); - final session = W3MSession(sessionData: wcSessions.first); - await _setSesionAndChainData(session); + onModalUpdate.broadcast(ModalConnect(updatedSession)); } } diff --git a/lib/utils/url/url_utils.dart b/lib/utils/url/url_utils.dart index b478dea8..53c524fd 100644 --- a/lib/utils/url/url_utils.dart +++ b/lib/utils/url/url_utils.dart @@ -25,7 +25,7 @@ Future _launchUrlFunc(Uri url, {launcher.LaunchMode? mode}) async { Future _androidAppCheck(String uri) async { try { - return await AppCheck.isAppEnabled(uri); + return await AppCheck().isAppEnabled(uri); } catch (e) { return false; } diff --git a/lib/version.dart b/lib/version.dart index 04717b4a..f611ec25 100644 --- a/lib/version.dart +++ b/lib/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '3.3.0-beta06'; +const packageVersion = '3.3.0'; diff --git a/lib/widgets/w3m_account_button.dart b/lib/widgets/w3m_account_button.dart index 7957ed31..f7f8ab81 100644 --- a/lib/widgets/w3m_account_button.dart +++ b/lib/widgets/w3m_account_button.dart @@ -108,7 +108,10 @@ class _W3MAccountButtonState extends State { } else { // TODO remove this once context parameter is enforced // ignore: deprecated_member_use_from_same_package - widget.service.openModal(widget.context ?? context, ConfirmEmailPage()); + widget.service.openModal( + widget.context ?? context, + ConfirmEmailPage(), + ); } } } diff --git a/pubspec.lock b/pubspec.lock index 8a447eef..9deebcdc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" url: "https://pub.dev" source: hosted - version: "61.0.0" + version: "67.0.0" adaptive_number: dependency: transitive description: @@ -21,26 +21,26 @@ packages: dependency: transitive description: name: analyzer - sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "6.4.1" appcheck: dependency: "direct main" description: name: appcheck - sha256: a9e5852e8c9d14342cfa3569fc464a1d49a49eac41e3d006f5825ce54663678f + sha256: "0214f27148610690a14c0d85b414274a740955a8c352a4c719ba01d9b0f50bde" url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.5.1" args: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" async: dependency: transitive description: @@ -93,34 +93,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: a7417cc44d9edb3f2c8760000270c99dba8c72ff66d0146772b8326565780745 + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "67d591d602906ef9201caf93452495ad1812bea2074f04e25dbd7c133785821b" + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.4.7" + version: "2.4.9" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "7.3.0" build_version: dependency: "direct dev" description: @@ -141,10 +141,10 @@ packages: dependency: transitive description: name: built_value - sha256: ff627b645b28fb8bdb69e645f910c2458fd6b65f6585c3a53e0626024897dedf + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.6.2" + version: "8.9.2" cached_network_image: dependency: "direct main" description: @@ -165,10 +165,10 @@ packages: dependency: transitive description: name: cached_network_image_web - sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316" + sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" characters: dependency: transitive description: @@ -197,10 +197,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "315a598c7fbe77f22de1c9da7cfd6fd21816312f16ffa124453b4fc679e540f1" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.6.0" + version: "4.10.0" coinbase_wallet_sdk: dependency: "direct main" description: @@ -237,34 +237,34 @@ packages: dependency: transitive description: name: cryptography - sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 + sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.7.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" custom_sliding_segmented_control: dependency: "direct main" description: name: custom_sliding_segmented_control - sha256: "05b73fa48d57218bfdf806bad68a859812b216cd81fe81c6cbefde89f39eb257" + sha256: "53c3e931c3ae1f696085d1ec70ac8e934da836595a9b7d9b88fdd0fcbf2a5574" url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.8.3" dart_style: dependency: transitive description: name: dart_style - sha256: "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55" + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.6" ed25519_edwards: dependency: transitive description: @@ -309,18 +309,18 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" fixnum: dependency: transitive description: @@ -338,10 +338,10 @@ packages: dependency: transitive description: name: flutter_cache_manager - sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba" + sha256: ceff65d74d907b1b772e22cf04daad60fb472461638977d9fae8b00a63e01e3d url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.3.3" flutter_svg: dependency: "direct main" description: @@ -364,26 +364,26 @@ packages: dependency: "direct dev" description: name: freezed - sha256: "57247f692f35f068cae297549a46a9a097100685c6780fe67177503eea5ed4e5" + sha256: a434911f643466d78462625df76fd9eb13e57348ff43fe1f77bbe909522c67a1 url: "https://pub.dev" source: hosted - version: "2.4.7" + version: "2.5.2" freezed_annotation: dependency: "direct main" description: name: freezed_annotation - sha256: c3fd9336eb55a38cc1bbd79ab17573113a8deccd0ecbbf926cca3c62803b5c2d + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.4" frontend_server_client: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" glob: dependency: transitive description: @@ -404,10 +404,10 @@ packages: dependency: "direct main" description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -444,10 +444,10 @@ packages: dependency: "direct main" description: name: json_annotation - sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.1" + version: "4.9.0" json_rpc_2: dependency: transitive description: @@ -460,10 +460,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: aa1f5a8912615733e0fdc7a02af03308933c93235bdc8d50d0b0c8a8ccb0b969 + sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b url: "https://pub.dev" source: hosted - version: "6.7.1" + version: "6.8.0" leak_tracker: dependency: transitive description: @@ -500,10 +500,10 @@ packages: dependency: transitive description: name: logger - sha256: "8c94b8c219e7e50194efc8771cd0e9f10807d8d3e219af473d89b06cc2ee4e04" + sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.4.0" logging: dependency: transitive description: @@ -540,18 +540,18 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mockito: dependency: "direct dev" description: name: mockito - sha256: "4b693867cee1853c9d1d7ecc1871f27f39b2ef2c13c0d8d8507dfe5bebd8aaf1" + sha256: "6841eed20a7befac0ce07df8116c8b8233ed1f4486a7647c7fc5a02ae6163917" url: "https://pub.dev" source: hosted - version: "5.4.3" + version: "5.4.4" network_image_mock: dependency: "direct dev" description: @@ -612,26 +612,26 @@ packages: dependency: transitive description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.4" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -644,34 +644,34 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" petitparser: dependency: transitive description: name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" platform: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -684,10 +684,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "3.9.1" pool: dependency: transitive description: @@ -708,10 +708,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.3.0" qr: dependency: transitive description: @@ -732,10 +732,10 @@ packages: dependency: transitive description: name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" url: "https://pub.dev" source: hosted - version: "0.27.7" + version: "0.28.0" sec: dependency: transitive description: @@ -748,58 +748,58 @@ packages: dependency: transitive description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.4.0" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "034650b71e73629ca08a0bd789fd1d83cc63c2d1e405946f7cef7bc37432f93a" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shelf: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: source_gen - sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" source_helper: dependency: transitive description: @@ -865,18 +865,18 @@ packages: dependency: transitive description: name: sqflite - sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a" + sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.3+1" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "1b92f368f44b0dee2425bb861cfa17b6f6cf3961f762ff6f941d20b33355660a" + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.5.4" stack_trace: dependency: transitive description: @@ -913,10 +913,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" term_glyph: dependency: transitive description: @@ -953,74 +953,74 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" + sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.3.0" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.3.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.3.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd" + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.2.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d" + sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.1" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc" + sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.2" uuid: dependency: "direct main" description: name: uuid - sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 + sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" url: "https://pub.dev" source: hosted - version: "4.3.3" + version: "4.4.2" vector_graphics: dependency: transitive description: @@ -1073,10 +1073,10 @@ packages: dependency: "direct main" description: name: walletconnect_flutter_v2 - sha256: "67582d34a3ceaf8253870d624112562e6e0af730bedc7954bd4df0099c277ee4" + sha256: "4a77de8d33f5d1f6b6ae07d4d2f7bf591ddb6c4cd671bf7493100798d92fa4d3" url: "https://pub.dev" source: hosted - version: "2.3.0-beta04" + version: "2.3.0" watcher: dependency: transitive description: @@ -1105,26 +1105,26 @@ packages: dependency: transitive description: name: web_socket_channel - sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2" + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.5" webview_flutter: dependency: "direct main" description: name: webview_flutter - sha256: "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932" + sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "4.8.0" webview_flutter_android: dependency: "direct main" description: name: webview_flutter_android - sha256: f038ee2fae73b509dde1bc9d2c5a50ca92054282de17631a9a3d515883740934 + sha256: "0d21cfc3bfdd2e30ab2ebeced66512b91134b39e72e97b43db2d47dda1c4e53a" url: "https://pub.dev" source: hosted - version: "3.16.0" + version: "3.16.3" webview_flutter_platform_interface: dependency: transitive description: @@ -1137,18 +1137,18 @@ packages: dependency: "direct main" description: name: webview_flutter_wkwebview - sha256: f12f8d8a99784b863e8b85e4a9a5e3cf1839d6803d2c0c3e0533a8f3c5a992a7 + sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb" url: "https://pub.dev" source: hosted - version: "3.13.0" + version: "3.14.0" win32: dependency: transitive description: name: win32 - sha256: "9e82a402b7f3d518fb9c02d0e9ae45952df31b9bf34d77baf19da2de03fc2aaa" + sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" url: "https://pub.dev" source: hosted - version: "5.0.7" + version: "5.5.0" x25519: dependency: transitive description: @@ -1161,18 +1161,18 @@ packages: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: name: xml - sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.5.0" yaml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 20e1454f..69b685d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,13 +1,13 @@ name: web3modal_flutter description: "WalletConnect Web3Modal: Simple, intuitive wallet login. With this drop-in UI SDK, enable any wallet's users to seamlessly log in to your app and enjoy a unified experience" -version: 3.3.0-beta06 +version: 3.3.0 repository: https://github.com/WalletConnect/Web3ModalFlutter environment: sdk: '>=2.19.0 <4.0.0' dependencies: - appcheck: ^1.0.6 + appcheck: ^1.5.1 cached_network_image: ^3.3.1 coinbase_wallet_sdk: ^1.0.9 collection: ^1.17.2 @@ -24,7 +24,7 @@ dependencies: shimmer: ^3.0.0 url_launcher: ^6.2.5 uuid: ^4.3.3 - walletconnect_flutter_v2: ^2.3.0-beta04 + walletconnect_flutter_v2: ^2.3.0 webview_flutter: ^4.7.0 webview_flutter_android: ^3.16.0 webview_flutter_wkwebview: ^3.13.0 diff --git a/test/mock_classes.mocks.dart b/test/mock_classes.mocks.dart index 20569bfd..b1028d95 100644 --- a/test/mock_classes.mocks.dart +++ b/test/mock_classes.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.3 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in web3modal_flutter/test/mock_classes.dart. // Do not manually edit this file. @@ -296,6 +296,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#initialized), ), ) as _i2.ValueNotifier); + @override set initialized(_i2.ValueNotifier? _initialized) => super.noSuchMethod( Invocation.setter( @@ -304,6 +305,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override _i2.ValueNotifier get totalListings => (super.noSuchMethod( Invocation.getter(#totalListings), @@ -312,6 +314,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#totalListings), ), ) as _i2.ValueNotifier); + @override set totalListings(_i2.ValueNotifier? _totalListings) => super.noSuchMethod( @@ -321,6 +324,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override _i2.ValueNotifier> get listings => (super.noSuchMethod( @@ -330,6 +334,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#listings), ), ) as _i2.ValueNotifier>); + @override set listings(_i2.ValueNotifier>? _listings) => super.noSuchMethod( @@ -339,6 +344,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override _i2.ValueNotifier get isSearching => (super.noSuchMethod( Invocation.getter(#isSearching), @@ -347,6 +353,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#isSearching), ), ) as _i2.ValueNotifier); + @override set isSearching(_i2.ValueNotifier? _isSearching) => super.noSuchMethod( Invocation.setter( @@ -355,6 +362,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override set includedWalletIds(Set? _includedWalletIds) => super.noSuchMethod( Invocation.setter( @@ -363,6 +371,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override set excludedWalletIds(Set? _excludedWalletIds) => super.noSuchMethod( Invocation.setter( @@ -371,6 +380,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override set featuredWalletIds(Set? _featuredWalletIds) => super.noSuchMethod( Invocation.setter( @@ -379,6 +389,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override String get projectId => (super.noSuchMethod( Invocation.getter(#projectId), @@ -387,6 +398,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#projectId), ), ) as String); + @override String get searchValue => (super.noSuchMethod( Invocation.getter(#searchValue), @@ -395,11 +407,13 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { Invocation.getter(#searchValue), ), ) as String); + @override bool get canPaginate => (super.noSuchMethod( Invocation.getter(#canPaginate), returnValue: false, ) as bool); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -409,6 +423,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future paginate() => (super.noSuchMethod( Invocation.method( @@ -418,6 +433,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future storeConnectedWallet(_i3.W3MWalletInfo? walletInfo) => (super.noSuchMethod( @@ -428,6 +444,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future storeRecentWalletId(String? walletId) => (super.noSuchMethod( @@ -438,6 +455,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void search({String? query}) => super.noSuchMethod( Invocation.method( @@ -447,6 +465,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValueForMissingStub: null, ); + @override _i14.Future<_i3.W3MWalletInfo?> getCoinbaseWalletObject() => (super.noSuchMethod( @@ -456,6 +475,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), returnValue: _i14.Future<_i3.W3MWalletInfo?>.value(), ) as _i14.Future<_i3.W3MWalletInfo?>); + @override String getWalletImageUrl(String? imageId) => (super.noSuchMethod( Invocation.method( @@ -470,6 +490,7 @@ class MockExplorerService extends _i1.Mock implements _i12.ExplorerService { ), ), ) as String); + @override String getAssetImageUrl(String? imageId) => (super.noSuchMethod( Invocation.method( @@ -502,6 +523,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#balanceNotifier), ), ) as _i2.ValueNotifier); + @override _i3.Event<_i3.ModalConnect> get onModalConnect => (super.noSuchMethod( Invocation.getter(#onModalConnect), @@ -510,6 +532,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onModalConnect), ), ) as _i3.Event<_i3.ModalConnect>); + @override _i3.Event<_i3.ModalConnect> get onModalUpdate => (super.noSuchMethod( Invocation.getter(#onModalUpdate), @@ -518,6 +541,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onModalUpdate), ), ) as _i3.Event<_i3.ModalConnect>); + @override _i3.Event<_i3.ModalNetworkChange> get onModalNetworkChange => (super.noSuchMethod( @@ -527,6 +551,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onModalNetworkChange), ), ) as _i3.Event<_i3.ModalNetworkChange>); + @override _i3.Event<_i3.ModalDisconnect> get onModalDisconnect => (super.noSuchMethod( Invocation.getter(#onModalDisconnect), @@ -535,6 +560,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onModalDisconnect), ), ) as _i3.Event<_i3.ModalDisconnect>); + @override _i3.Event<_i3.ModalError> get onModalError => (super.noSuchMethod( Invocation.getter(#onModalError), @@ -543,6 +569,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onModalError), ), ) as _i3.Event<_i3.ModalError>); + @override _i3.Event<_i3.SessionExpire> get onSessionExpireEvent => (super.noSuchMethod( Invocation.getter(#onSessionExpireEvent), @@ -551,6 +578,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onSessionExpireEvent), ), ) as _i3.Event<_i3.SessionExpire>); + @override _i3.Event<_i3.SessionUpdate> get onSessionUpdateEvent => (super.noSuchMethod( Invocation.getter(#onSessionUpdateEvent), @@ -559,6 +587,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onSessionUpdateEvent), ), ) as _i3.Event<_i3.SessionUpdate>); + @override _i3.Event<_i3.SessionEvent> get onSessionEventEvent => (super.noSuchMethod( Invocation.getter(#onSessionEventEvent), @@ -567,16 +596,19 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#onSessionEventEvent), ), ) as _i3.Event<_i3.SessionEvent>); + @override _i15.W3MServiceStatus get status => (super.noSuchMethod( Invocation.getter(#status), returnValue: _i15.W3MServiceStatus.idle, ) as _i15.W3MServiceStatus); + @override bool get hasNamespaces => (super.noSuchMethod( Invocation.getter(#hasNamespaces), returnValue: false, ) as bool); + @override String get chainBalance => (super.noSuchMethod( Invocation.getter(#chainBalance), @@ -585,21 +617,25 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { Invocation.getter(#chainBalance), ), ) as String); + @override bool get isOpen => (super.noSuchMethod( Invocation.getter(#isOpen), returnValue: false, ) as bool); + @override bool get isConnected => (super.noSuchMethod( Invocation.getter(#isConnected), returnValue: false, ) as bool); + @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), returnValue: false, ) as bool); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -609,6 +645,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future selectChain( _i3.W3MChainInfo? chainInfo, { @@ -627,6 +664,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future openNetworks(_i11.BuildContext? context) => (super.noSuchMethod( @@ -637,6 +675,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future openNetworksView() => (super.noSuchMethod( Invocation.method( @@ -646,6 +685,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future openModal( _i11.BuildContext? context, [ @@ -662,6 +702,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future openModalView([_i11.Widget? startWidget]) => (super.noSuchMethod( @@ -672,6 +713,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future expirePreviousInactivePairings() => (super.noSuchMethod( Invocation.method( @@ -681,6 +723,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future connectSelectedWallet({bool? inBrowser = false}) => (super.noSuchMethod( @@ -692,6 +735,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future buildConnectionUri() => (super.noSuchMethod( Invocation.method( @@ -701,6 +745,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void launchConnectedWallet() => super.noSuchMethod( Invocation.method( @@ -709,6 +754,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override _i14.Future reconnectRelay() => (super.noSuchMethod( Invocation.method( @@ -718,6 +764,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future disconnect({bool? disconnectAllSessions = true}) => (super.noSuchMethod( @@ -729,6 +776,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void closeModal({bool? disconnectSession = false}) => super.noSuchMethod( Invocation.method( @@ -738,6 +786,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override void selectWallet(_i3.W3MWalletInfo? walletInfo) => super.noSuchMethod( Invocation.method( @@ -746,6 +795,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override void launchBlockExplorer() => super.noSuchMethod( Invocation.method( @@ -754,6 +804,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override _i14.Future> requestReadContract({ required _i3.DeployedContract? deployedContract, @@ -772,6 +823,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValue: _i14.Future>.value([]), ) as _i14.Future>); + @override _i14.Future requestWriteContract({ required String? topic, @@ -798,6 +850,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValue: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future request({ required String? topic, @@ -818,6 +871,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValue: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future dispose() => (super.noSuchMethod( Invocation.method( @@ -827,6 +881,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future loadAccountData() => (super.noSuchMethod( Invocation.method( @@ -836,6 +891,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future requestSwitchToChain(_i3.W3MChainInfo? newChain) => (super.noSuchMethod( @@ -846,6 +902,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future requestAddChain(_i3.W3MChainInfo? newChain) => (super.noSuchMethod( @@ -856,6 +913,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( @@ -864,6 +922,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( @@ -872,6 +931,7 @@ class MockW3MService extends _i1.Mock implements _i3.W3MService { ), returnValueForMissingStub: null, ); + @override void notifyListeners() => super.noSuchMethod( Invocation.method( @@ -895,6 +955,7 @@ class MockUrlUtils extends _i1.Mock implements _i17.UrlUtils { Invocation.getter(#androidAppCheck), returnValue: (String uri) => _i14.Future.value(false), ) as _i14.Future Function(String)); + @override _i14.Future Function( Uri, { @@ -910,11 +971,13 @@ class MockUrlUtils extends _i1.Mock implements _i17.UrlUtils { Uri, { _i18.LaunchMode? mode, })); + @override _i14.Future Function(Uri) get canLaunchUrlFunc => (super.noSuchMethod( Invocation.getter(#canLaunchUrlFunc), returnValue: (Uri url) => _i14.Future.value(false), ) as _i14.Future Function(Uri)); + @override _i14.Future isInstalled( String? uri, { @@ -928,6 +991,7 @@ class MockUrlUtils extends _i1.Mock implements _i17.UrlUtils { ), returnValue: _i14.Future.value(false), ) as _i14.Future); + @override _i14.Future launchUrl( Uri? url, { @@ -941,6 +1005,7 @@ class MockUrlUtils extends _i1.Mock implements _i17.UrlUtils { ), returnValue: _i14.Future.value(false), ) as _i14.Future); + @override _i14.Future openRedirect( _i19.WalletRedirect? redirect, { @@ -976,6 +1041,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: _i20.PlatformExact.iOS, ) as _i20.PlatformExact); + @override _i20.PlatformType getPlatformType() => (super.noSuchMethod( Invocation.method( @@ -984,6 +1050,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: _i20.PlatformType.mobile, ) as _i20.PlatformType); + @override bool canDetectInstalledApps() => (super.noSuchMethod( Invocation.method( @@ -992,6 +1059,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: false, ) as bool); + @override bool isBottomSheet() => (super.noSuchMethod( Invocation.method( @@ -1000,6 +1068,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: false, ) as bool); + @override bool isLongBottomSheet(_i11.Orientation? orientation) => (super.noSuchMethod( Invocation.method( @@ -1008,6 +1077,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: false, ) as bool); + @override bool isMobileWidth(double? width) => (super.noSuchMethod( Invocation.method( @@ -1016,6 +1086,7 @@ class MockPlatformUtils extends _i1.Mock implements _i21.PlatformUtils { ), returnValue: false, ) as bool); + @override bool isTablet(_i11.BuildContext? context) => (super.noSuchMethod( Invocation.method( @@ -1039,6 +1110,7 @@ class MockToastUtils extends _i1.Mock implements _i22.ToastUtils { Invocation.getter(#toasts), returnValue: _i14.Stream<_i23.ToastMessage?>.empty(), ) as _i14.Stream<_i23.ToastMessage?>); + @override void show(_i23.ToastMessage? message) => super.noSuchMethod( Invocation.method( @@ -1047,6 +1119,7 @@ class MockToastUtils extends _i1.Mock implements _i22.ToastUtils { ), returnValueForMissingStub: null, ); + @override void clear() => super.noSuchMethod( Invocation.method( @@ -1073,11 +1146,13 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#protocol), ), ) as String); + @override int get version => (super.noSuchMethod( Invocation.getter(#version), returnValue: 0, ) as int); + @override _i3.ICore get core => (super.noSuchMethod( Invocation.getter(#core), @@ -1086,6 +1161,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#core), ), ) as _i3.ICore); + @override _i3.PairingMetadata get metadata => (super.noSuchMethod( Invocation.getter(#metadata), @@ -1094,6 +1170,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#metadata), ), ) as _i3.PairingMetadata); + @override _i3.ISignEngine get signEngine => (super.noSuchMethod( Invocation.getter(#signEngine), @@ -1102,6 +1179,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#signEngine), ), ) as _i3.ISignEngine); + @override set signEngine(_i3.ISignEngine? _signEngine) => super.noSuchMethod( Invocation.setter( @@ -1110,6 +1188,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValueForMissingStub: null, ); + @override _i3.IAuthEngine get authEngine => (super.noSuchMethod( Invocation.getter(#authEngine), @@ -1118,6 +1197,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#authEngine), ), ) as _i3.IAuthEngine); + @override set authEngine(_i3.IAuthEngine? _authEngine) => super.noSuchMethod( Invocation.setter( @@ -1126,6 +1206,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValueForMissingStub: null, ); + @override _i3.Event<_i3.SessionConnect> get onSessionConnect => (super.noSuchMethod( Invocation.getter(#onSessionConnect), @@ -1134,6 +1215,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionConnect), ), ) as _i3.Event<_i3.SessionConnect>); + @override _i3.Event<_i3.SessionEvent> get onSessionEvent => (super.noSuchMethod( Invocation.getter(#onSessionEvent), @@ -1142,6 +1224,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionEvent), ), ) as _i3.Event<_i3.SessionEvent>); + @override _i3.Event<_i3.SessionExpire> get onSessionExpire => (super.noSuchMethod( Invocation.getter(#onSessionExpire), @@ -1150,6 +1233,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionExpire), ), ) as _i3.Event<_i3.SessionExpire>); + @override _i3.Event<_i3.SessionProposalEvent> get onProposalExpire => (super.noSuchMethod( @@ -1159,6 +1243,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onProposalExpire), ), ) as _i3.Event<_i3.SessionProposalEvent>); + @override _i3.Event<_i3.SessionExtend> get onSessionExtend => (super.noSuchMethod( Invocation.getter(#onSessionExtend), @@ -1167,6 +1252,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionExtend), ), ) as _i3.Event<_i3.SessionExtend>); + @override _i3.Event<_i3.SessionPing> get onSessionPing => (super.noSuchMethod( Invocation.getter(#onSessionPing), @@ -1175,6 +1261,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionPing), ), ) as _i3.Event<_i3.SessionPing>); + @override _i3.Event<_i3.SessionUpdate> get onSessionUpdate => (super.noSuchMethod( Invocation.getter(#onSessionUpdate), @@ -1183,6 +1270,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionUpdate), ), ) as _i3.Event<_i3.SessionUpdate>); + @override _i3.Event<_i3.SessionDelete> get onSessionDelete => (super.noSuchMethod( Invocation.getter(#onSessionDelete), @@ -1191,6 +1279,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionDelete), ), ) as _i3.Event<_i3.SessionDelete>); + @override _i4.IGenericStore<_i3.ProposalData> get proposals => (super.noSuchMethod( Invocation.getter(#proposals), @@ -1199,6 +1288,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#proposals), ), ) as _i4.IGenericStore<_i3.ProposalData>); + @override _i5.ISessions get sessions => (super.noSuchMethod( Invocation.getter(#sessions), @@ -1207,6 +1297,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#sessions), ), ) as _i5.ISessions); + @override _i4.IGenericStore<_i3.SessionRequest> get pendingRequests => (super.noSuchMethod( @@ -1216,6 +1307,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#pendingRequests), ), ) as _i4.IGenericStore<_i3.SessionRequest>); + @override _i3.IPairingStore get pairings => (super.noSuchMethod( Invocation.getter(#pairings), @@ -1224,6 +1316,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#pairings), ), ) as _i3.IPairingStore); + @override _i3.Event<_i3.AuthResponse> get onAuthResponse => (super.noSuchMethod( Invocation.getter(#onAuthResponse), @@ -1232,6 +1325,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onAuthResponse), ), ) as _i3.Event<_i3.AuthResponse>); + @override _i4.IGenericStore<_i3.AuthPublicKey> get authKeys => (super.noSuchMethod( Invocation.getter(#authKeys), @@ -1240,6 +1334,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#authKeys), ), ) as _i4.IGenericStore<_i3.AuthPublicKey>); + @override _i4.IGenericStore get pairingTopics => (super.noSuchMethod( Invocation.getter(#pairingTopics), @@ -1248,6 +1343,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#pairingTopics), ), ) as _i4.IGenericStore); + @override _i4.IGenericStore<_i3.StoredCacao> get completeRequests => (super.noSuchMethod( @@ -1257,6 +1353,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#completeRequests), ), ) as _i4.IGenericStore<_i3.StoredCacao>); + @override _i3.Event<_i3.SessionAuthResponse> get onSessionAuthResponse => (super.noSuchMethod( @@ -1266,6 +1363,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { Invocation.getter(#onSessionAuthResponse), ), ) as _i3.Event<_i3.SessionAuthResponse>); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -1275,6 +1373,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future<_i3.ConnectResponse> connect({ Map? requiredNamespaces, @@ -1320,6 +1419,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), )), ) as _i14.Future<_i3.ConnectResponse>); + @override _i14.Future request({ required String? topic, @@ -1338,6 +1438,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future> requestReadContract({ required _i3.DeployedContract? deployedContract, @@ -1360,6 +1461,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: _i14.Future>.value([]), ) as _i14.Future>); + @override _i14.Future requestWriteContract({ required String? topic, @@ -1388,6 +1490,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: _i14.Future.value(), ) as _i14.Future); + @override void registerEventHandler({ required String? chainId, @@ -1409,6 +1512,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValueForMissingStub: null, ); + @override _i14.Future ping({required String? topic}) => (super.noSuchMethod( Invocation.method( @@ -1419,6 +1523,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future disconnectSession({ required String? topic, @@ -1436,6 +1541,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override Map getActiveSessions() => (super.noSuchMethod( Invocation.method( @@ -1444,6 +1550,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: {}, ) as Map); + @override Map getSessionsForPairing( {required String? pairingTopic}) => @@ -1455,6 +1562,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: {}, ) as Map); + @override Map getPendingSessionProposals() => (super.noSuchMethod( @@ -1464,6 +1572,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: {}, ) as Map); + @override _i14.Future<_i3.AuthRequestResponse> requestAuth({ required _i3.AuthRequestParams? params, @@ -1500,6 +1609,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), )), ) as _i14.Future<_i3.AuthRequestResponse>); + @override Map getCompletedRequestsForPairing( {required String? pairingTopic}) => @@ -1511,6 +1621,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: {}, ) as Map); + @override _i14.Future<_i3.SessionAuthRequestResponse> authenticate({ required _i3.SessionAuthRequestParams? params, @@ -1543,6 +1654,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), )), ) as _i14.Future<_i3.SessionAuthRequestResponse>); + @override _i14.Future validateSignedCacao({ required _i3.Cacao? cacao, @@ -1559,6 +1671,7 @@ class MockWeb3App extends _i1.Mock implements _i3.Web3App { ), returnValue: _i14.Future.value(false), ) as _i14.Future); + @override String formatAuthMessage({ required String? iss, @@ -1603,6 +1716,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#context), ), ) as String); + @override String get version => (super.noSuchMethod( Invocation.getter(#version), @@ -1611,6 +1725,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#version), ), ) as String); + @override _i6.IStore get storage => (super.noSuchMethod( Invocation.getter(#storage), @@ -1619,6 +1734,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#storage), ), ) as _i6.IStore); + @override _i3.Event<_i3.StoreCreateEvent<_i3.SessionData>> get onCreate => (super.noSuchMethod( @@ -1628,6 +1744,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#onCreate), ), ) as _i3.Event<_i3.StoreCreateEvent<_i3.SessionData>>); + @override _i3.Event<_i3.StoreUpdateEvent<_i3.SessionData>> get onUpdate => (super.noSuchMethod( @@ -1637,6 +1754,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#onUpdate), ), ) as _i3.Event<_i3.StoreUpdateEvent<_i3.SessionData>>); + @override _i3.Event<_i3.StoreDeleteEvent<_i3.SessionData>> get onDelete => (super.noSuchMethod( @@ -1646,6 +1764,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#onDelete), ), ) as _i3.Event<_i3.StoreDeleteEvent<_i3.SessionData>>); + @override _i3.Event<_i3.StoreSyncEvent> get onSync => (super.noSuchMethod( Invocation.getter(#onSync), @@ -1654,11 +1773,13 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#onSync), ), ) as _i3.Event<_i3.StoreSyncEvent>); + @override Map get data => (super.noSuchMethod( Invocation.getter(#data), returnValue: {}, ) as Map); + @override set data(Map? _data) => super.noSuchMethod( Invocation.setter( @@ -1667,6 +1788,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { ), returnValueForMissingStub: null, ); + @override _i3.SessionData Function(dynamic) get fromJson => (super.noSuchMethod( Invocation.getter(#fromJson), @@ -1675,6 +1797,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#fromJson), ), ) as _i3.SessionData Function(dynamic)); + @override String get storageKey => (super.noSuchMethod( Invocation.getter(#storageKey), @@ -1683,6 +1806,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { Invocation.getter(#storageKey), ), ) as String); + @override _i14.Future update( String? topic, { @@ -1701,6 +1825,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -1710,6 +1835,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override bool has(String? key) => (super.noSuchMethod( Invocation.method( @@ -1718,11 +1844,13 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { ), returnValue: false, ) as bool); + @override _i3.SessionData? get(String? key) => (super.noSuchMethod(Invocation.method( #get, [key], )) as _i3.SessionData?); + @override List<_i3.SessionData> getAll() => (super.noSuchMethod( Invocation.method( @@ -1731,6 +1859,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { ), returnValue: <_i3.SessionData>[], ) as List<_i3.SessionData>); + @override _i14.Future set( String? key, @@ -1747,6 +1876,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future delete(String? key) => (super.noSuchMethod( Invocation.method( @@ -1756,6 +1886,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future persist() => (super.noSuchMethod( Invocation.method( @@ -1765,6 +1896,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future restore() => (super.noSuchMethod( Invocation.method( @@ -1774,6 +1906,7 @@ class MockSessions extends _i1.Mock implements _i3.Sessions { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void checkInitialized() => super.noSuchMethod( Invocation.method( @@ -1800,6 +1933,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onRelayClientConnect), ), ) as _i3.Event<_i3.EventArgs>); + @override _i3.Event<_i3.EventArgs> get onRelayClientDisconnect => (super.noSuchMethod( Invocation.getter(#onRelayClientDisconnect), @@ -1808,6 +1942,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onRelayClientDisconnect), ), ) as _i3.Event<_i3.EventArgs>); + @override _i3.Event<_i3.ErrorEvent> get onRelayClientError => (super.noSuchMethod( Invocation.getter(#onRelayClientError), @@ -1816,6 +1951,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onRelayClientError), ), ) as _i3.Event<_i3.ErrorEvent>); + @override _i3.Event<_i3.MessageEvent> get onRelayClientMessage => (super.noSuchMethod( Invocation.getter(#onRelayClientMessage), @@ -1824,6 +1960,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onRelayClientMessage), ), ) as _i3.Event<_i3.MessageEvent>); + @override _i3.Event<_i3.SubscriptionEvent> get onSubscriptionCreated => (super.noSuchMethod( @@ -1833,6 +1970,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onSubscriptionCreated), ), ) as _i3.Event<_i3.SubscriptionEvent>); + @override _i3.Event<_i3.SubscriptionDeletionEvent> get onSubscriptionDeleted => (super.noSuchMethod( @@ -1842,6 +1980,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onSubscriptionDeleted), ), ) as _i3.Event<_i3.SubscriptionDeletionEvent>); + @override _i3.Event<_i3.EventArgs> get onSubscriptionResubscribed => (super.noSuchMethod( @@ -1851,6 +1990,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onSubscriptionResubscribed), ), ) as _i3.Event<_i3.EventArgs>); + @override _i3.Event<_i3.EventArgs> get onSubscriptionSync => (super.noSuchMethod( Invocation.getter(#onSubscriptionSync), @@ -1859,6 +1999,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#onSubscriptionSync), ), ) as _i3.Event<_i3.EventArgs>); + @override set jsonRPC(_i25.Peer? _jsonRPC) => super.noSuchMethod( Invocation.setter( @@ -1867,12 +2008,14 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), returnValueForMissingStub: null, ); + @override Map> get pendingSubscriptions => (super.noSuchMethod( Invocation.getter(#pendingSubscriptions), returnValue: >{}, ) as Map>); + @override set pendingSubscriptions( Map>? _pendingSubscriptions) => @@ -1883,6 +2026,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), returnValueForMissingStub: null, ); + @override _i7.IMessageTracker get messageTracker => (super.noSuchMethod( Invocation.getter(#messageTracker), @@ -1891,6 +2035,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#messageTracker), ), ) as _i7.IMessageTracker); + @override set messageTracker(_i7.IMessageTracker? _messageTracker) => super.noSuchMethod( @@ -1900,6 +2045,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), returnValueForMissingStub: null, ); + @override _i4.IGenericStore get topicMap => (super.noSuchMethod( Invocation.getter(#topicMap), @@ -1908,6 +2054,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#topicMap), ), ) as _i4.IGenericStore); + @override set topicMap(_i4.IGenericStore? _topicMap) => super.noSuchMethod( Invocation.setter( @@ -1916,6 +2063,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), returnValueForMissingStub: null, ); + @override _i8.IWebSocketHandler get socketHandler => (super.noSuchMethod( Invocation.getter(#socketHandler), @@ -1924,6 +2072,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#socketHandler), ), ) as _i8.IWebSocketHandler); + @override _i3.ICore get core => (super.noSuchMethod( Invocation.getter(#core), @@ -1932,6 +2081,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { Invocation.getter(#core), ), ) as _i3.ICore); + @override set core(_i3.ICore? _core) => super.noSuchMethod( Invocation.setter( @@ -1940,11 +2090,13 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), returnValueForMissingStub: null, ); + @override bool get isConnected => (super.noSuchMethod( Invocation.getter(#isConnected), returnValue: false, ) as bool); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -1954,6 +2106,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future publish({ required String? topic, @@ -1975,6 +2128,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future subscribe({required String? topic}) => (super.noSuchMethod( @@ -1992,6 +2146,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { ), )), ) as _i14.Future); + @override _i14.Future unsubscribe({required String? topic}) => (super.noSuchMethod( @@ -2003,6 +2158,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future connect({String? relayUrl}) => (super.noSuchMethod( Invocation.method( @@ -2013,6 +2169,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future disconnect() => (super.noSuchMethod( Invocation.method( @@ -2022,6 +2179,7 @@ class MockRelayClient extends _i1.Mock implements _i24.RelayClient { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future handlePublish( String? topic, @@ -2067,6 +2225,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future<_i9.Response> get( Uri? url, { @@ -2087,6 +2246,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future<_i9.Response> post( Uri? url, { @@ -2117,6 +2277,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future<_i9.Response> put( Uri? url, { @@ -2147,6 +2308,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future<_i9.Response> patch( Uri? url, { @@ -2177,6 +2339,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future<_i9.Response> delete( Uri? url, { @@ -2207,6 +2370,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.Response>); + @override _i14.Future read( Uri? url, { @@ -2227,6 +2391,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future); + @override _i14.Future<_i27.Uint8List> readBytes( Uri? url, { @@ -2240,6 +2405,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), returnValue: _i14.Future<_i27.Uint8List>.value(_i27.Uint8List(0)), ) as _i14.Future<_i27.Uint8List>); + @override _i14.Future<_i9.StreamedResponse> send(_i9.BaseRequest? request) => (super.noSuchMethod( @@ -2256,6 +2422,7 @@ class MockClient extends _i1.Mock implements _i9.Client { ), )), ) as _i14.Future<_i9.StreamedResponse>); + @override void close() => super.noSuchMethod( Invocation.method( @@ -2282,6 +2449,7 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { Invocation.getter(#initialized), ), ) as _i2.ValueNotifier); + @override set initialized(_i2.ValueNotifier? _initialized) => super.noSuchMethod( Invocation.setter( @@ -2290,12 +2458,14 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { ), returnValueForMissingStub: null, ); + @override List<_i29.GridItem<_i3.W3MChainInfo>> get itemListComplete => (super.noSuchMethod( Invocation.getter(#itemListComplete), returnValue: <_i29.GridItem<_i3.W3MChainInfo>>[], ) as List<_i29.GridItem<_i3.W3MChainInfo>>); + @override set itemListComplete( List<_i29.GridItem<_i3.W3MChainInfo>>? _itemListComplete) => @@ -2306,6 +2476,7 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { ), returnValueForMissingStub: null, ); + @override _i2.ValueNotifier>> get itemList => (super.noSuchMethod( @@ -2316,6 +2487,7 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { Invocation.getter(#itemList), ), ) as _i2.ValueNotifier>>); + @override set itemList( _i2.ValueNotifier>>? @@ -2327,6 +2499,7 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { ), returnValueForMissingStub: null, ); + @override _i14.Future init() => (super.noSuchMethod( Invocation.method( @@ -2336,6 +2509,7 @@ class MockNetworkService extends _i1.Mock implements _i28.NetworkService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override void filterList({String? query}) => super.noSuchMethod( Invocation.method( @@ -2364,6 +2538,7 @@ class MockBlockChainService extends _i1.Mock implements _i30.BlockChainService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future<_i10.BlockchainIdentity> getIdentity(String? address) => (super.noSuchMethod( @@ -2380,6 +2555,7 @@ class MockBlockChainService extends _i1.Mock implements _i30.BlockChainService { ), )), ) as _i14.Future<_i10.BlockchainIdentity>); + @override _i14.Future getRpcRequest({ required String? method, @@ -2417,6 +2593,7 @@ class MockStorageService extends _i1.Mock implements _i31.StorageService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override String? getString( String? key, { @@ -2427,6 +2604,7 @@ class MockStorageService extends _i1.Mock implements _i31.StorageService { [key], {#defaultValue: defaultValue}, )) as String?); + @override _i14.Future setString( String? key, @@ -2442,6 +2620,7 @@ class MockStorageService extends _i1.Mock implements _i31.StorageService { ), returnValue: _i14.Future.value(false), ) as _i14.Future); + @override _i14.Future clearAll() => (super.noSuchMethod( Invocation.method( @@ -2451,6 +2630,7 @@ class MockStorageService extends _i1.Mock implements _i31.StorageService { returnValue: _i14.Future.value(), returnValueForMissingStub: _i14.Future.value(), ) as _i14.Future); + @override _i14.Future clearKey(String? key) => (super.noSuchMethod( Invocation.method( @@ -2477,11 +2657,13 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { Invocation.getter(#onRenderScreen), ), ) as _i2.ValueNotifier); + @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), returnValue: false, ) as bool); + @override _i11.Widget getCurrent() => (super.noSuchMethod( Invocation.method( @@ -2496,6 +2678,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), ), ) as _i11.Widget); + @override void push( _i11.Widget? widget, { @@ -2513,6 +2696,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void pop() => super.noSuchMethod( Invocation.method( @@ -2521,6 +2705,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override bool canPop() => (super.noSuchMethod( Invocation.method( @@ -2529,6 +2714,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValue: false, ) as bool); + @override void popUntil(_i2.Key? key) => super.noSuchMethod( Invocation.method( @@ -2537,6 +2723,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void popAllAndPush( _i11.Widget? widget, { @@ -2550,6 +2737,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override bool containsKey(_i2.Key? key) => (super.noSuchMethod( Invocation.method( @@ -2558,6 +2746,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValue: false, ) as bool); + @override void clear() => super.noSuchMethod( Invocation.method( @@ -2566,6 +2755,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void addDefault() => super.noSuchMethod( Invocation.method( @@ -2574,6 +2764,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( @@ -2582,6 +2773,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( @@ -2590,6 +2782,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void dispose() => super.noSuchMethod( Invocation.method( @@ -2598,6 +2791,7 @@ class MockWidgetStack extends _i1.Mock implements _i32.WidgetStack { ), returnValueForMissingStub: null, ); + @override void notifyListeners() => super.noSuchMethod( Invocation.method(