From 56a6213e9c8ea00faa43fa142079fa809e8926d5 Mon Sep 17 00:00:00 2001 From: poka <poka@p2p.legal> Date: Sun, 21 Apr 2024 20:29:59 +0200 Subject: [PATCH] update to new gdev runtime and hasura squid --- assets/translations/en.json | 1 + assets/translations/es.json | 1 + assets/translations/fr.json | 1 + config/indexer_endpoints.json | 4 +- lib/globals.dart | 2 +- lib/models/queries_indexer.dart | 148 ++--- lib/models/wallet_data.dart | 19 +- lib/models/wallet_data.g.dart | 23 +- lib/providers/duniter_indexer.dart | 86 +-- lib/providers/substrate_sdk.dart | 29 +- lib/providers/v2s_datapod.dart | 47 +- lib/screens/home.dart | 20 +- lib/screens/myWallets/wallet_options.dart | 4 +- lib/widgets/certs_list.dart | 11 +- lib/widgets/datapod_avatar.dart | 44 +- lib/widgets/history_query.dart | 31 +- lib/widgets/history_view.dart | 6 +- lib/widgets/idty_status.dart | 15 +- lib/widgets/name_by_address.dart | 8 +- lib/widgets/payment_popup.dart | 4 +- lib/widgets/search_identity_query.dart | 28 +- lib/widgets/transaction_in_progress_tile.dart | 14 +- pubspec.lock | 591 +++++++++++++----- pubspec.yaml | 60 +- 24 files changed, 721 insertions(+), 476 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index 3ee0948b..ffa78a2f 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -103,6 +103,7 @@ "identityCreated": "Identity created", "identityConfirmed": "Identity confirmed", "identityExpired": "Identity expired", + "identityRevoked": "Identity revoked", "confirmYourIdentity": "Confirm your identity", "noResult": "No results", "noDuniterNodeAvailableTryLater": "No Duniter node available, please try again later", diff --git a/assets/translations/es.json b/assets/translations/es.json index e1ca23e3..8e001274 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -104,6 +104,7 @@ "identityCreated": "Identidad creada", "identityConfirmed": "Identidad confirmada", "identityExpired": "Identidad caducada", + "identityRevoked": "Identidad revocada", "confirmYourIdentity": "Confirma tu identidad", "noResult": "Ningún resultado", "noDuniterNodeAvailableTryLater": "No hay ningún nodo Duniter disponible, por favor, inténtalo más tarde", diff --git a/assets/translations/fr.json b/assets/translations/fr.json index ffa277e4..9bf3dbce 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -103,6 +103,7 @@ "identityCreated": "Identité créée", "identityConfirmed": "Identité confirmée", "identityExpired": "Identité expirée", + "identityRevoked": "Identité révoqué", "confirmYourIdentity": "Confirmez votre identité", "noResult": "Aucun résultat", "noDuniterNodeAvailableTryLater": "Aucun noeud Duniter disponible, veuillez réessayer ultérieurement", diff --git a/config/indexer_endpoints.json b/config/indexer_endpoints.json index 66f30c3b..83e7ddf0 100644 --- a/config/indexer_endpoints.json +++ b/config/indexer_endpoints.json @@ -1,5 +1,3 @@ [ - "gdev-indexer.p2p.legal", - "gdev-hasura.cgeek.fr", - "hasura-gdev.pini.fr" + "gdev-squid.axiom-team.fr" ] diff --git a/lib/globals.dart b/lib/globals.dart index 3cb7d5f9..22b70ef2 100644 --- a/lib/globals.dart +++ b/lib/globals.dart @@ -8,7 +8,7 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:logger/logger.dart'; // Version of box data -const int dataVersion = 8; +const int dataVersion = 9; late String appVersion; const int pinLength = 5; diff --git a/lib/models/queries_indexer.dart b/lib/models/queries_indexer.dart index 9d76b12a..7c74ea3e 100644 --- a/lib/models/queries_indexer.dart +++ b/lib/models/queries_indexer.dart @@ -1,45 +1,55 @@ const String getNameByAddressQ = r''' query ($address: String!) { - account_by_pk(pubkey: $address) { - identity { - name + identityConnection( + where: { accountId: { _eq: $address } } + orderBy: { name: ASC } + ) { + edges { + node { + name + accountId + } } - pubkey } } '''; const String searchAddressByNameQ = r''' query ($name: String!) { - search_identity(args: {name: $name}) { - pubkey - name + identityConnection( + where: { name: { _ilike: $name } } + orderBy: { name: ASC } + ) { + edges { + node { + name + accountId + } + } } } '''; const String getHistoryByAddressRelayQ = r''' -query ($address: String!, $number: Int!, $cursor: String) { - transaction_connection(where: - {_or: [ - {issuer_pubkey: {_eq: $address}}, - {receiver_pubkey: {_eq: $address}} - ]}, - order_by: {created_at: desc}, - first: $number, - after: $cursor) { +query ($address: String!, $first: Int!, $after: String) { + transferConnection( + after: $after + first: $first + orderBy: { timestamp: DESC } + where: { _or: [{ fromId: { _eq: $address } }, { toId: { _eq: $address } }] } + ) { edges { node { amount - created_at - issuer_pubkey - receiver_pubkey - issuer { + timestamp + fromId + from { identity { name } } - receiver { + toId + to { identity { name } @@ -49,35 +59,6 @@ query ($address: String!, $number: Int!, $cursor: String) { pageInfo { endCursor hasNextPage - hasPreviousPage - startCursor - } - } -} -'''; - -const String getHistoryByAddressQ = r''' -query ($address: String!, $number: Int!, $offset: Int!) { - transaction_aggregate(where: {_or: [{issuer_pubkey: {_eq: $address}}, {receiver_pubkey: {_eq: $address}}]}) { - aggregate { - count - } - } - transaction(where: {_or: [{issuer_pubkey: {_eq: $address}}, {receiver_pubkey: {_eq: $address}}]}, order_by: {created_at: desc}, limit: $number, offset: $offset) { - amount - comment - created_at - issuer { - pubkey - identity { - name - } - } - receiver { - pubkey - identity { - name - } } } } @@ -85,52 +66,79 @@ query ($address: String!, $number: Int!, $offset: Int!) { const String getCertsReceived = r''' query ($address: String!) { - certification(where: {receiver: {pubkey: {_eq: $address}}}, order_by: {created_at: desc}) { - issuer { - pubkey - name + certConnection( + where: {receiver: {accountId: {_eq: $address}}} + ) { + edges { + node { + createdOn + issuer { + accountId + name + } + } } - created_at } } '''; const String getCertsSent = r''' query ($address: String!) { - certification(where: {issuer: {pubkey: {_eq: $address}}}, order_by: {created_at: desc}) { - receiver { - pubkey - name + certConnection( + where: {issuer: {accountId: {_eq: $address}}} + ) { + edges { + node { + createdOn + receiver { + accountId + name + } + } } - created_at } } '''; const String isIdtyExistQ = r''' query ($name: String!) { - identity(where: {name: {_eq: $name}}) { - name + identityConnection(where: {name: {_eq: ""}}) { + edges { + node { + name + } + } } } '''; const String getBlockchainStartQ = r''' query { - block(limit: 1) { - created_at - number + blockConnection(first: 1) { + edges { + node { + height + timestamp + } + } } } '''; const String subscribeHistoryIssuedQ = r''' subscription ($address: String!) { - account_by_pk(pubkey: $address) { - transactions_issued(limit: 1, order_by: {created_at: desc}) { - receiver_pubkey - amount - created_at + accountConnection( + where: {id: {_eq: $address}} + ) { + edges { + node { + transfersIssued(limit: 1, orderBy: {timestamp: DESC}) { + toId + amount + timestamp + blockNumber + } + } } } } diff --git a/lib/models/wallet_data.dart b/lib/models/wallet_data.dart index 725e7736..37782f70 100644 --- a/lib/models/wallet_data.dart +++ b/lib/models/wallet_data.dart @@ -74,13 +74,13 @@ class WalletData extends HiveObject { } bool hasIdentity() { - return identityStatus == IdtyStatus.created || - identityStatus == IdtyStatus.confirmed || - identityStatus == IdtyStatus.validated; + return identityStatus == IdtyStatus.unconfirmed || + identityStatus == IdtyStatus.unvalidated || + identityStatus == IdtyStatus.member; } bool isMembre() { - return identityStatus == IdtyStatus.validated; + return identityStatus == IdtyStatus.member; } bool exist() { @@ -139,17 +139,20 @@ enum IdtyStatus { none, @HiveField(1) - created, + unconfirmed, @HiveField(2) - confirmed, + unvalidated, @HiveField(3) - validated, + member, @HiveField(4) - expired, + notMember, @HiveField(5) + revoked, + + @HiveField(6) unknown } diff --git a/lib/models/wallet_data.g.dart b/lib/models/wallet_data.g.dart index 14c85c3e..71df9617 100644 --- a/lib/models/wallet_data.g.dart +++ b/lib/models/wallet_data.g.dart @@ -83,14 +83,16 @@ class IdtyStatusAdapter extends TypeAdapter<IdtyStatus> { case 0: return IdtyStatus.none; case 1: - return IdtyStatus.created; + return IdtyStatus.unconfirmed; case 2: - return IdtyStatus.confirmed; + return IdtyStatus.unvalidated; case 3: - return IdtyStatus.validated; + return IdtyStatus.member; case 4: - return IdtyStatus.expired; + return IdtyStatus.notMember; case 5: + return IdtyStatus.revoked; + case 6: return IdtyStatus.unknown; default: return IdtyStatus.none; @@ -103,21 +105,24 @@ class IdtyStatusAdapter extends TypeAdapter<IdtyStatus> { case IdtyStatus.none: writer.writeByte(0); break; - case IdtyStatus.created: + case IdtyStatus.unconfirmed: writer.writeByte(1); break; - case IdtyStatus.confirmed: + case IdtyStatus.unvalidated: writer.writeByte(2); break; - case IdtyStatus.validated: + case IdtyStatus.member: writer.writeByte(3); break; - case IdtyStatus.expired: + case IdtyStatus.notMember: writer.writeByte(4); break; - case IdtyStatus.unknown: + case IdtyStatus.revoked: writer.writeByte(5); break; + case IdtyStatus.unknown: + writer.writeByte(6); + break; } } diff --git a/lib/providers/duniter_indexer.dart b/lib/providers/duniter_indexer.dart index a6ac5d17..a23ec65d 100644 --- a/lib/providers/duniter_indexer.dart +++ b/lib/providers/duniter_indexer.dart @@ -11,10 +11,11 @@ import 'package:graphql_flutter/graphql_flutter.dart'; class DuniterIndexer with ChangeNotifier { Map<String, String?> walletNameIndexer = {}; + String? fetchMoreCursor; + Map? pageInfo; List? transBC; List listIndexerEndpoints = []; bool isLoadingIndexer = false; - bool hasNextPage = false; Future<QueryResult<Object?>?> Function()? refetch; late GraphQLClient indexerClient; @@ -29,7 +30,7 @@ class DuniterIndexer with ChangeNotifier { client.connectionTimeout = const Duration(milliseconds: 4000); try { final request = - await client.postUrl(Uri.parse('https://$endpoint/v1/graphql')); + await client.postUrl(Uri.parse('https://$endpoint/v1beta1/relay')); final response = await request.close(); if (response.statusCode != 200) { log.w('Indexer $endpoint is offline'); @@ -98,7 +99,7 @@ class DuniterIndexer with ChangeNotifier { } try { - final endpointPath = 'https://${listIndexerEndpoints[i]}/v1/graphql'; + final endpointPath = 'https://${listIndexerEndpoints[i]}/v1beta1/relay'; final request = await client.postUrl(Uri.parse(endpointPath)); final response = await request.close(); @@ -134,21 +135,21 @@ class DuniterIndexer with ChangeNotifier { List transBC = []; int i = 0; - for (final transaction in blockchainTX) { - final direction = - transaction['issuer']['pubkey'] != address ? 'RECEIVED' : 'SENT'; + for (final transactionNode in blockchainTX) { + final transaction = transactionNode['node']; + final direction = transaction['fromId'] != address ? 'RECEIVED' : 'SENT'; transBC.add(i); transBC[i] = []; - transBC[i].add(DateTime.parse(transaction['created_at'])); + transBC[i].add(DateTime.parse(transaction['timestamp'])); final amountBrut = transaction['amount']; final amount = removeDecimalZero(amountBrut / 100); if (direction == "RECEIVED") { - transBC[i].add(transaction['issuer']['pubkey']); - transBC[i].add(transaction['issuer']['identity']?['name'] ?? ''); + transBC[i].add(transaction['fromId']); + transBC[i].add(transaction['from']['identity']?['name'] ?? ''); } else if (direction == "SENT") { - transBC[i].add(transaction['receiver']['pubkey']); - transBC[i].add(transaction['receiver']['identity']?['name'] ?? ''); + transBC[i].add(transaction['toId']); + transBC[i].add(transaction['to']['identity']?['name'] ?? ''); } transBC[i].add(amount); transBC[i].add(direction); @@ -158,36 +159,38 @@ class DuniterIndexer with ChangeNotifier { return transBC; } - FetchMoreOptions? mergeQueryResult( - {required List transactions, - required FetchMoreOptions? opts, - required String address, - required int nRepositories, - required int offset}) { - // pageInfo = result.data!['transaction_connection']['pageInfo']; - // fetchMoreCursor = pageInfo!['endCursor']; + FetchMoreOptions? mergeQueryResult(QueryResult result, FetchMoreOptions? opts, + String address, int nRepositories) { + final List<dynamic> blockchainTX = + (result.data!['transferConnection']['edges'] as List<dynamic>); + + pageInfo = result.data!['transferConnection']['pageInfo']; + fetchMoreCursor = pageInfo!['endCursor']; // final hasNextPage = pageInfo!['hasNextPage']; - // final hasPreviousPage = pageInfo!['hasPreviousPage']; - // log.d('endCursor: $fetchMoreCursor $hasNextPage $hasPreviousPage'); - - // if (fetchMoreCursor != null) { - opts = FetchMoreOptions( - variables: {'offset': offset, 'number': nRepositories}, - updateQuery: (previousResultData, fetchMoreResultData) { - final List<dynamic> repos = [ - ...previousResultData!['transaction'] as List<dynamic>, - ...fetchMoreResultData!['transaction'] as List<dynamic> - ]; - - fetchMoreResultData['transaction'] = repos; - return fetchMoreResultData; - }, - ); - transBC = parseHistory(transactions, address); - // } else { - // log.d("Activity start of $address"); - // } + // log.d('endCursor: $fetchMoreCursor $hasNextPage'); + + if (fetchMoreCursor != null) { + opts = FetchMoreOptions( + variables: {'after': fetchMoreCursor, 'first': nRepositories}, + updateQuery: (previousResultData, fetchMoreResultData) { + final List<dynamic> repos = [ + ...previousResultData!['transferConnection']['edges'] + as List<dynamic>, + ...fetchMoreResultData!['transferConnection']['edges'] + as List<dynamic> + ]; + + fetchMoreResultData['transferConnection']['edges'] = repos; + return fetchMoreResultData; + }, + ); + } + if (fetchMoreCursor != null) { + transBC = parseHistory(blockchainTX, address); + } else { + log.d("Activity start of $address"); + } return opts; } @@ -203,14 +206,15 @@ class DuniterIndexer with ChangeNotifier { 'name': name, }; final result = await _execQuery(isIdtyExistQ, variables); + log.d(result.data); return result.data?['identity']?.isNotEmpty ?? false; } Future<DateTime> getBlockStart() async { final result = await _execQuery(getBlockchainStartQ, {}); if (!result.hasException) { - startBlockchainTime = - DateTime.parse(result.data!['block'][0]['created_at']); + startBlockchainTime = DateTime.parse( + result.data!['blockConnection']['edges'][0]['node']['timestamp']); startBlockchainInitialized = true; return startBlockchainTime; } diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index 520c54ec..f359a39f 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -215,7 +215,8 @@ class SubstrateSdk with ChangeNotifier { return []; } final certsReceiver = - await _getStorage('cert.storageIdtyCertMeta($idtyIndex)') ?? []; + await _getStorage('certification.storageIdtyCertMeta($idtyIndex)') ?? + []; try { certsCounterCache.update( @@ -241,7 +242,7 @@ class SubstrateSdk with ChangeNotifier { if (idtyIndexFrom == null || idtyIndexTo == null) return 0; final List certData = - await _getStorage('cert.certsByReceiver($idtyIndexTo)') ?? []; + await _getStorage('certification.certsByReceiver($idtyIndexTo)') ?? []; if (certData.isEmpty) return 0; for (List certInfo in certData) { @@ -395,7 +396,7 @@ class SubstrateSdk with ChangeNotifier { } else if (nextIssuableOn > blocNumber) { final certDelayDuration = (nextIssuableOn - blocNumber) * 6; result.putIfAbsent('certDelay', () => certDelayDuration); - } else if (toStatus == IdtyStatus.created) { + } else if (toStatus == IdtyStatus.unconfirmed) { result.putIfAbsent('toStatus', () => 1); } else if (toStatus == IdtyStatus.none) { result.putIfAbsent('toStatus', () => 2); @@ -412,7 +413,8 @@ class SubstrateSdk with ChangeNotifier { var idtyIndex = await _getIdentityIndexOf(address); final certMeta = - await _getStorage('cert.storageIdtyCertMeta($idtyIndex)') ?? ''; + await _getStorage('certification.storageIdtyCertMeta($idtyIndex)') ?? + ''; return certMeta; } @@ -455,10 +457,11 @@ class SubstrateSdk with ChangeNotifier { List<IdtyStatus> resultStatus = []; final mapStatus = { null: IdtyStatus.none, - 'Created': IdtyStatus.created, - 'ConfirmedByOwner': IdtyStatus.confirmed, - 'Validated': IdtyStatus.validated, - 'Expired': IdtyStatus.expired, + 'Unconfirmed': IdtyStatus.unconfirmed, + 'Unvalidated': IdtyStatus.unvalidated, + 'Member': IdtyStatus.member, + 'NotMember': IdtyStatus.notMember, + 'Revoked': IdtyStatus.revoked, 'unknown': IdtyStatus.unknown, }; @@ -1048,7 +1051,7 @@ class SubstrateSdk with ChangeNotifier { final fromIndex = idtyIndexList[0]; final toIndex = idtyIndexList[1]; - if (myIdtyStatus != IdtyStatus.validated) { + if (myIdtyStatus != IdtyStatus.member) { return 'notMember'; } @@ -1069,17 +1072,17 @@ class SubstrateSdk with ChangeNotifier { sender, ); txOptions = [destAddress]; - } else if (toIdtyStatus == IdtyStatus.validated || - toIdtyStatus == IdtyStatus.confirmed) { + } else if (toIdtyStatus == IdtyStatus.member || + toIdtyStatus == IdtyStatus.unvalidated) { if (toCerts[0] >= currencyParameters['minCertForMembership']! - 1 && - toIdtyStatus != IdtyStatus.validated) { + toIdtyStatus != IdtyStatus.member) { log.d('Batch cert and membership validation'); txInfo = TxInfoData( 'utility', 'batchAll', sender, ); - final tx1 = 'api.tx.cert.addCert($fromIndex, $toIndex)'; + final tx1 = 'api.tx.certification.addCert($fromIndex, $toIndex)'; //TODO: add requestDistanceEvaluation tx when available diff --git a/lib/providers/v2s_datapod.dart b/lib/providers/v2s_datapod.dart index 21a84439..5797aaa6 100644 --- a/lib/providers/v2s_datapod.dart +++ b/lib/providers/v2s_datapod.dart @@ -32,12 +32,13 @@ class V2sDatapodProvider with ChangeNotifier { }; } - Future<QueryResult> _execQuery( + Future<QueryResult?> _execQuery( String query, Map<String, dynamic> variables) async { - final QueryOptions options = - QueryOptions(document: gql(query), variables: variables); - - return await datapodClient.query(options); + //TODO: Switch to IPFS Datapod + return null; + // final QueryOptions options = + // QueryOptions(document: gql(query), variables: variables); + // return await datapodClient.query(options); } Future<bool> updateProfile( @@ -61,11 +62,11 @@ class V2sDatapodProvider with ChangeNotifier { if (variables.isEmpty) return false; final result = await _execQuery(updateProfileQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + log.e(result?.exception.toString()); return false; } - log.d(result.data!['updateProfile']['message']); + log.d(result!.data!['updateProfile']['message']); return true; } @@ -75,11 +76,11 @@ class V2sDatapodProvider with ChangeNotifier { if (variables.isEmpty) return false; final result = await _execQuery(deleteProfileQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + log.e(result?.exception.toString()); return false; } - log.d(result.data!['deleteProfile']['message']); + log.d(result!.data!['deleteProfile']['message']); return true; } @@ -90,11 +91,11 @@ class V2sDatapodProvider with ChangeNotifier { if (variables.isEmpty) return false; final result = await _execQuery(migrateProfileQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + log.e(result?.exception.toString()); return false; } - log.d(result.data!['migrateProfile']['message']); + log.d(result!.data!['migrateProfile']['message']); return true; } @@ -112,11 +113,11 @@ class V2sDatapodProvider with ChangeNotifier { if (variables.isEmpty) return false; final result = await _execQuery(addTransactionCommentQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + log.e(result?.exception.toString()); return false; } - log.d(result.data!['addTransaction']['message']); + log.d(result!.data!['addTransaction']['message']); return true; } @@ -131,12 +132,12 @@ class V2sDatapodProvider with ChangeNotifier { 'address': address, }; final result = await _execQuery(profileEditedAtQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + // log.e(result?.exception.toString()); return null; } final String? profileDateData = - result.data!['profiles_by_pk']?['updated_at']; + result!.data!['profiles_by_pk']?['updated_at']; final profileDate = profileDateData == null ? null : DateTime.tryParse(profileDateData); return profileDate; @@ -148,11 +149,11 @@ class V2sDatapodProvider with ChangeNotifier { 'address': address, }; final result = await _execQuery(getAvatarQ, variables); - if (result.hasException) { - log.e(result.exception.toString()); + if (result?.hasException ?? true) { + log.e(result?.exception.toString()); return defaultAvatar(size); } - final String? avatar64 = result.data!['profiles_by_pk']?['avatar64']; + final String? avatar64 = result!.data!['profiles_by_pk']?['avatar64']; if (avatar64 == null) { return defaultAvatar(size); diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 9cbac103..8e0ff180 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -79,24 +79,24 @@ class _HomeScreenState extends State<HomeScreen> { duniterIndexer.getValidIndexerEndpoint().then((validIndexerEndpoint) { final wsLinkIndexer = WebSocketLink( - 'wss://$validIndexerEndpoint/v1/graphql', + 'wss://$validIndexerEndpoint/v1beta1/relay', ); - const headerWebsocket = - datapodEndpoint == '10.0.2.2:8080' ? 'ws' : 'wss'; - final wsLinkDatapod = WebSocketLink( - '$headerWebsocket://$datapodEndpoint/v1/graphql', - ); + // const headerWebsocket = + // datapodEndpoint == '10.0.2.2:8080' ? 'ws' : 'wss'; + // final wsLinkDatapod = WebSocketLink( + // '$headerWebsocket://$datapodEndpoint/v1/graphql', + // ); duniterIndexer.indexerClient = GraphQLClient( cache: GraphQLCache(), link: wsLinkIndexer, ); - datapod.datapodClient = GraphQLClient( - cache: GraphQLCache(), - link: wsLinkDatapod, - ); + // datapod.datapodClient = GraphQLClient( + // cache: GraphQLCache(), + // link: wsLinkDatapod, + // ); }); await homeProvider.getValidEndpoints(); diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 368b7413..a92239ce 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -151,7 +151,7 @@ class WalletOptions extends StatelessWidget { size: 24, color: Colors.black, fontWeight: wallet.identityStatus == - IdtyStatus.validated + IdtyStatus.member ? FontWeight.w500 : FontWeight.w400, fontStyle: FontStyle.normal); @@ -330,7 +330,7 @@ class WalletOptions extends StatelessWidget { if (!snapshot.hasData || snapshot.hasError) { return const SizedBox.shrink(); } - if (snapshot.data!.first == IdtyStatus.created) { + if (snapshot.data!.first == IdtyStatus.unconfirmed) { return Column(children: [ ScaledSizedBox( width: 310, diff --git a/lib/widgets/certs_list.dart b/lib/widgets/certs_list.dart index 40cb4fd4..777afb76 100644 --- a/lib/widgets/certs_list.dart +++ b/lib/widgets/certs_list.dart @@ -62,7 +62,7 @@ class CertsList extends StatelessWidget { style: scaledTextStyle(fontSize: 18), ) ]); - } else if (result.data?['certification']?.isEmpty) { + } else if (result.data?['certConnection']['edges']?.isEmpty) { return Column(children: <Widget>[ ScaledSizedBox(height: 50), Text( @@ -72,12 +72,13 @@ class CertsList extends StatelessWidget { ]); } - final List certsData = result.data!['certification']; + final List certsData = result.data!['certConnection']['edges']; List listCerts = []; - for (final cert in certsData) { - final String issuerAddress = cert[certFrom]['pubkey']; + for (final certNode in certsData) { + final cert = certNode['node']; + final String issuerAddress = cert[certFrom]['accountId']; final String issuerName = cert[certFrom]['name']; - final date = DateTime.parse(cert['created_at']); + final date = DateTime.parse('2024-02-04T21:20:54.001+00:00'); final dp = DateTime(date.year, date.month, date.day); final dateForm = '${dp.day}-${dp.month}-${dp.year}'; diff --git a/lib/widgets/datapod_avatar.dart b/lib/widgets/datapod_avatar.dart index 7bf86fa1..31b2f71c 100644 --- a/lib/widgets/datapod_avatar.dart +++ b/lib/widgets/datapod_avatar.dart @@ -1,12 +1,8 @@ -import 'dart:convert'; import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; -import 'package:gecko/models/queries_datapod.dart'; import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/providers/v2s_datapod.dart'; -import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:provider/provider.dart'; class DatapodAvatar extends StatelessWidget { @@ -31,44 +27,6 @@ class DatapodAvatar extends StatelessWidget { } return ScaledSizedBox( - width: size, - child: GraphQLProvider( - client: ValueNotifier(datapod.datapodClient), - child: Query( - options: QueryOptions( - document: gql(getAvatarQ), - variables: <String, dynamic>{ - 'address': address, - }, - ), - builder: (QueryResult result, {fetchMore, refetch}) { - if (result.isLoading || result.data == null) { - return Center( - child: ClipOval(child: datapod.defaultAvatar(size)), - ); - } - final String? avatar64 = - result.data!['profiles_by_pk']?['avatar64']; - - if (avatar64 == null || result.data == null) { - return ClipOval(child: datapod.defaultAvatar(size)); - } - - final sanitizedAvatar64 = avatar64 - .replaceAll('\n', '') - .replaceAll('\r', '') - .replaceAll(' ', ''); - - datapod.cacheAvatar(address, sanitizedAvatar64); - - return ClipOval( - child: Image.memory( - base64.decode(sanitizedAvatar64), - fit: BoxFit.cover, - ), - ); - }), - ), - ); + width: size, child: ClipOval(child: datapod.defaultAvatar(size))); } } diff --git a/lib/widgets/history_query.dart b/lib/widgets/history_query.dart index b300687f..37c9d5b7 100644 --- a/lib/widgets/history_query.dart +++ b/lib/widgets/history_query.dart @@ -45,11 +45,11 @@ class HistoryQuery extends StatelessWidget { children: <Widget>[ Query( options: QueryOptions( - document: gql(getHistoryByAddressQ), + document: gql(getHistoryByAddressRelayQ), variables: <String, dynamic>{ 'address': address, - 'number': nRepositories, - 'offset': 0 + 'first': nRepositories, + 'after': null }, ), builder: (QueryResult result, {fetchMore, refetch}) { @@ -61,7 +61,8 @@ class HistoryQuery extends StatelessWidget { ), ); } - final List transactions = result.data?["transaction"]; + final List transactions = + result.data?["transferConnection"]["edges"]; // Get transaction in progress if exist String? transactionId; @@ -106,18 +107,10 @@ class HistoryQuery extends StatelessWidget { ]); } - final int totalTransactions = - result.data!["transaction_aggregate"]["aggregate"]["count"]; - duniterIndexer.hasNextPage = - !(transactions.length == totalTransactions); - - opts = duniterIndexer.mergeQueryResult( - transactions: transactions, - opts: opts, - address: address, - nRepositories: nRepositories, - offset: transactions.length, - ); + if (result.isNotLoading) { + opts = duniterIndexer.mergeQueryResult( + result, opts, address, nRepositories); + } // Build history list return NotificationListener( @@ -144,10 +137,14 @@ class HistoryQuery extends StatelessWidget { ), ), onNotification: (dynamic t) { + if (duniterIndexer.pageInfo == null) { + duniterIndexer.reload(); + } + if (t is ScrollEndNotification && scrollController.position.pixels >= scrollController.position.maxScrollExtent * 0.7 && - duniterIndexer.hasNextPage && + duniterIndexer.pageInfo!['hasNextPage'] && result.isNotLoading) { fetchMore!(opts!); } diff --git a/lib/widgets/history_view.dart b/lib/widgets/history_view.dart index 6483e340..9d211292 100644 --- a/lib/widgets/history_view.dart +++ b/lib/widgets/history_view.dart @@ -99,14 +99,14 @@ class HistoryView extends StatelessWidget { context: context), ]); }).toList()), - if (result.isLoading && duniterIndexer.hasNextPage) + if (result.isLoading && duniterIndexer.pageInfo!['hasNextPage']) const Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Loading(size: 30, stroke: 3), ], ), - if (!duniterIndexer.hasNextPage && + if (!duniterIndexer.pageInfo!['hasNextPage'] && sub.oldOwnerKeys[address]?[0] != null) Padding( padding: const EdgeInsets.symmetric(vertical: 30), @@ -152,7 +152,7 @@ class HistoryView extends StatelessWidget { ), ), ), - if (!duniterIndexer.hasNextPage) + if (!duniterIndexer.pageInfo!['hasNextPage']) Column( children: <Widget>[ ScaledSizedBox(height: 15), diff --git a/lib/widgets/idty_status.dart b/lib/widgets/idty_status.dart index 9eca2acc..f0a10b26 100644 --- a/lib/widgets/idty_status.dart +++ b/lib/widgets/idty_status.dart @@ -37,14 +37,14 @@ class IdentityStatus extends StatelessWidget { final resStatus = walletData.identityStatus; if (!isOwner) { - if (resStatus == IdtyStatus.confirmed) { + if (resStatus == IdtyStatus.unvalidated) { return NameByAddress( wallet: walletData, size: 18, color: Colors.grey[700]!, fontWeight: FontWeight.w500, fontStyle: FontStyle.italic); - } else if (resStatus == IdtyStatus.validated) { + } else if (resStatus == IdtyStatus.member) { return NameByAddress( wallet: walletData, size: 20, @@ -56,16 +56,17 @@ class IdentityStatus extends StatelessWidget { final Map<IdtyStatus, String> statusText = { IdtyStatus.none: '', - IdtyStatus.created: 'identityCreated'.tr(), - IdtyStatus.confirmed: 'identityConfirmed'.tr(), - IdtyStatus.validated: 'memberValidated'.tr(), - IdtyStatus.expired: 'identityExpired'.tr(), + IdtyStatus.unconfirmed: 'identityCreated'.tr(), + IdtyStatus.unvalidated: 'identityConfirmed'.tr(), + IdtyStatus.member: 'memberValidated'.tr(), + IdtyStatus.notMember: 'identityExpired'.tr(), + IdtyStatus.revoked: 'identityRevoked'.tr(), IdtyStatus.unknown: '' }; return SizedBox( child: showText(statusText[resStatus]!, - bold: resStatus == IdtyStatus.validated, size: scaleSize(17)), + bold: resStatus == IdtyStatus.member, size: scaleSize(17)), ); }); }); diff --git a/lib/widgets/name_by_address.dart b/lib/widgets/name_by_address.dart index 2817fe9e..ac71130a 100644 --- a/lib/widgets/name_by_address.dart +++ b/lib/widgets/name_by_address.dart @@ -56,8 +56,12 @@ class NameByAddress extends StatelessWidget { return const Loading(); } - duniterIndexer.walletNameIndexer[wallet.address] = - result.data?['account_by_pk']?['identity']?['name']; + final edges = result.data?['identityConnection']['edges']; + final name = edges != null && edges.isNotEmpty + ? edges[0]['node']['name'] + : null; + + duniterIndexer.walletNameIndexer[wallet.address] = name; g1WalletsBox.put( wallet.address, diff --git a/lib/widgets/payment_popup.dart b/lib/widgets/payment_popup.dart index 2037b242..20de58af 100644 --- a/lib/widgets/payment_popup.dart +++ b/lib/widgets/payment_popup.dart @@ -38,8 +38,8 @@ void paymentPopup(BuildContext context, String toAddress, String? username) { // Payment workflow ! final sub = Provider.of<SubstrateSdk>(context, listen: false); final acc = sub.getCurrentWallet(); - log.d( - "fromAddress: ${acc.address!},destAddress: $toAddress, amount: ${double.parse(walletViewProvider.payAmount.text)}"); + // log.d( + // "fromAddress: ${acc.address!},destAddress: $toAddress, amount: ${double.parse(walletViewProvider.payAmount.text)}"); final transactionId = await sub.pay( fromAddress: acc.address!, destAddress: toAddress, diff --git a/lib/widgets/search_identity_query.dart b/lib/widgets/search_identity_query.dart index 1d912cf9..352e7b5d 100644 --- a/lib/widgets/search_identity_query.dart +++ b/lib/widgets/search_identity_query.dart @@ -35,7 +35,7 @@ class SearchIdentityQuery extends StatelessWidget { options: QueryOptions( document: gql(searchAddressByNameQ), variables: { - 'name': name, + 'name': '%$name%', }, ), builder: (QueryResult result, @@ -50,15 +50,16 @@ class SearchIdentityQuery extends StatelessWidget { return Text('loading'.tr()); } - final List identities = result.data?['search_identity'] ?? []; + final List identities = + result.data?['identityConnection']['edges'] ?? []; if (identities.isEmpty) { return Text('noResult'.tr()); } for (Map profile in identities) { - duniterIndexer.walletNameIndexer - .putIfAbsent(profile['pubkey'], () => profile['name']); + duniterIndexer.walletNameIndexer.putIfAbsent( + profile['node']['accountId'], () => profile['node']['name']); } searchProvider.resultLenght = identities.length; @@ -68,13 +69,14 @@ class SearchIdentityQuery extends StatelessWidget { child: ListView(children: <Widget>[ for (Map profile in identities) ListTile( - key: keySearchResult(profile['pubkey']), + key: keySearchResult(profile['node']['accountId']), horizontalTitleGap: 10, contentPadding: const EdgeInsets.only(right: 2), leading: DatapodAvatar( - address: profile['pubkey'], size: avatarSize), + address: profile['node']['accountId'], + size: avatarSize), title: Row(children: <Widget>[ - Text(getShortPubkey(profile['pubkey']), + Text(getShortPubkey(profile['node']['accountId']), style: scaledTextStyle( fontSize: 16, fontFamily: 'Monospace', @@ -90,12 +92,13 @@ class SearchIdentityQuery extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Balance( - address: profile['pubkey'], size: 15), + address: profile['node']['accountId'], + size: 15), ]), ]), ), subtitle: Row(children: <Widget>[ - Text(profile['name'] ?? '', + Text(profile['node']['name'] ?? '', style: scaledTextStyle( fontSize: 17, fontWeight: FontWeight.w500), textAlign: TextAlign.center), @@ -107,10 +110,11 @@ class SearchIdentityQuery extends StatelessWidget { Navigator.push( context, MaterialPageRoute(builder: (context) { - walletsProfiles.address = profile['pubkey']; + walletsProfiles.address = + profile['node']['accountId']; return WalletViewScreen( - address: profile['pubkey'], - username: profile['name'], + address: profile['node']['accountId'], + username: profile['node']['name'], ); }), ); diff --git a/lib/widgets/transaction_in_progress_tile.dart b/lib/widgets/transaction_in_progress_tile.dart index ae487245..1e3d392e 100644 --- a/lib/widgets/transaction_in_progress_tile.dart +++ b/lib/widgets/transaction_in_progress_tile.dart @@ -39,17 +39,21 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> { final stream = duniterIndexer.subscribeHistoryIssued(widget.address); txContent = sub.transactionStatus[widget.transactionId]!; + //TODO: change way to get finliized transaction status + subscription = stream.listen((result) { - if (result.data?['account_by_pk'] == null) return; + if (result.data?['accountConnection']['edges'] == null) return; if (result.hasException) { log.e(result.exception); isVisible = true; } else { - final Map transData = - result.data?['account_by_pk']['transactions_issued'].first; - final String receiver = transData['receiver_pubkey']; + final Map transDataNode = + result.data?['accountConnection']['edges'].first; + if (transDataNode['node']['transfersIssued'].isEmpty) return; + final Map transData = transDataNode['node']['transfersIssued'][0]; + final String receiver = transData['toId']; final double amount = transData['amount'] / 100; - final createdAt = DateTime.parse(transData['created_at']); + final createdAt = DateTime.parse(transData['timestamp']); final difference = createdAt.difference(DateTime.now()); if (receiver == txContent.to && diff --git a/pubspec.lock b/pubspec.lock index 42b1dcff..65578940 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -17,6 +17,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.0" + adaptive_number: + dependency: transitive + description: + name: adaptive_number + sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77" + url: "https://pub.dev" + source: hosted + version: "1.0.0" analyzer: dependency: transitive description: @@ -37,10 +45,10 @@ packages: 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: @@ -53,10 +61,10 @@ packages: dependency: transitive description: name: barcode - sha256: "91b143666f7bb13636f716b6d4e412e372ab15ff7969799af8c9e30a382e9385" + sha256: "1fe4a55344505850517ce72d4a3a7b9ccf51b0dc1631ee7e552f6eacc4947f96" url: "https://pub.dev" source: hosted - version: "2.2.6" + version: "2.2.7" barcode_scan2: dependency: "direct main" description: @@ -65,22 +73,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.3.0" - bidi: + base_x: dependency: transitive description: - name: bidi - sha256: "1a7d0c696324b2089f72e7671fd1f1f64fef44c980f3cebc84e803967c597b63" + name: base_x + sha256: "519abcdafd637d4b6bd7e72fabd8f9264935f804b9b9f6c5d8411c7d52cbf8fd" url: "https://pub.dev" source: hosted - version: "2.0.10" - bip32: + version: "2.0.1" + bidi: dependency: transitive description: - name: bip32 - sha256: "54787cd7a111e9d37394aabbf53d1fc5e2e0e0af2cd01c459147a97c0e3f8a97" + name: bidi + sha256: "1a7d0c696324b2089f72e7671fd1f1f64fef44c980f3cebc84e803967c597b63" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.10" bip32_ed25519: dependency: transitive description: @@ -97,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.6" + bip39_mnemonic: + dependency: transitive + description: + name: bip39_mnemonic + sha256: "24855a62fb9dd930f697063a274e084b0a574e1cc55ec270ca4756f579ab512c" + url: "https://pub.dev" + source: hosted + version: "3.0.6" bip39_multi_nullsafety: dependency: transitive description: @@ -113,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" - bs58check: - dependency: transitive - description: - name: bs58check - sha256: c4a164d42b25c2f6bc88a8beccb9fc7d01440f3c60ba23663a20a70faf484ea9 - url: "https://pub.dev" - source: hosted - version: "1.0.2" bubble: dependency: "direct main" description: @@ -165,10 +173,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.4.8" + version: "2.4.9" build_runner_core: dependency: transitive description: @@ -189,10 +197,10 @@ packages: dependency: transitive description: name: built_value - sha256: fedde275e0a6b798c3296963c5cd224e3e1b55d0e478d5b7e65e6b540f363a0e + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.9.1" + version: "8.9.2" carousel_slider: dependency: "direct main" description: @@ -253,10 +261,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: b74247fad72c171381dbe700ca17da24deac637ab6d43c343b42867acb95c991 + sha256: "224a77051d52a11fbad53dd57827594d3bd24f945af28bd70bab376d68d437f0" url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "5.0.2" connectivity_plus_platform_interface: dependency: transitive description: @@ -277,10 +285,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.4+1" crypto: dependency: "direct main" description: @@ -289,6 +297,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + cryptography: + dependency: transitive + description: + name: cryptography + sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 + url: "https://pub.dev" + source: hosted + version: "2.7.0" dart_style: dependency: transitive description: @@ -305,22 +321,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.10" - decimal: - dependency: transitive - description: - name: decimal - sha256: "24a261d5d5c87e86c7651c417a5dbdf8bcd7080dd592533910e8d0505a279f21" - url: "https://pub.dev" - source: hosted - version: "2.3.3" dio: dependency: "direct main" description: name: dio - sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8" + sha256: "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5" url: "https://pub.dev" source: hosted - version: "5.4.1" + version: "5.4.3+1" dots_indicator: dependency: "direct main" description: @@ -337,6 +345,13 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.8" + durt2: + dependency: "direct main" + description: + path: "../../durt2" + relative: true + source: path + version: "0.1.0" easy_localization: dependency: "direct main" description: @@ -353,14 +368,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.0.2" + ed25519_edwards: + dependency: transitive + description: + name: ed25519_edwards + sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + edwards25519: + dependency: transitive + description: + name: edwards25519 + sha256: "48e4678136e362bed9790dfb716ebe8e2f34f026bdb900b058214620672c6273" + url: "https://pub.dev" + source: hosted + version: "1.0.4" eip1559: dependency: transitive description: name: eip1559 - sha256: de454d6321bd753eb79116e9ec4f8df20895c2e97f9a3839a032f3a728985516 + sha256: c2b81ac85f3e0e71aaf558201dd9a4600f051ece7ebacd0c5d70065c9b458004 url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.6.2" eip55: dependency: transitive description: @@ -369,14 +400,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" - ethers: + equatable: dependency: transitive description: - name: ethers - sha256: e7f06c339a04c626c6df73f6c2559a956810a2c1b7fa32a5a6e198a78cd0c9ff + name: equatable + sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 url: "https://pub.dev" source: hosted - version: "0.0.1+3" + version: "2.0.5" fade_and_translate: dependency: "direct main" description: @@ -470,6 +501,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.3" + flutter_curve25519: + dependency: transitive + description: + name: flutter_curve25519 + sha256: d2d196e51de878f5f0289d2d7c5e93dc0c62ccda7ca98c7e47b5a58a6851b861 + url: "https://pub.dev" + source: hosted + version: "0.1.2" flutter_driver: dependency: transitive description: flutter @@ -479,10 +518,10 @@ packages: dependency: transitive description: name: flutter_hooks - sha256: "6a126f703b89499818d73305e4ce1e3de33b4ae1c5512e3b8eab4b986f46774c" + sha256: cde36b12f7188c85286fba9b38cc5a902e7279f36dd676967106c041dc9dde70 url: "https://pub.dev" source: hosted - version: "0.18.6" + version: "0.20.5" flutter_inappwebview: dependency: transitive description: @@ -495,10 +534,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" flutter_localizations: dependency: transitive description: flutter @@ -508,26 +547,74 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: cb44f7831b23a6bdd0f501718b0d2e8045cbc625a15f668af37ddb80314821db + sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f" url: "https://pub.dev" source: hosted - version: "0.6.21" + version: "0.7.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da + sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" url: "https://pub.dev" source: hosted - version: "2.0.17" + version: "2.0.19" + flutter_secure_storage: + dependency: transitive + description: + name: flutter_secure_storage + sha256: ffdbb60130e4665d2af814a0267c481bcf522c41ae2e43caf69fa0146876d685 + url: "https://pub.dev" + source: hosted + version: "9.0.0" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c + url: "https://pub.dev" + source: hosted + version: "3.0.1" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: "5809c66f9dd3b4b93b0a6e2e8561539405322ee767ac2f64d084e2ab5429d108" + url: "https://pub.dev" + source: hosted + version: "3.0.0" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.9" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -542,10 +629,10 @@ packages: 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" fuchsia_remote_debug_protocol: dependency: transitive description: flutter @@ -579,74 +666,74 @@ packages: dependency: transitive description: name: gql - sha256: "998304fbb88a3956cfea10cd27a56f8e5d4b3bc110f03c952c18a9310774e8bb" + sha256: afe032332ddfa69b79f1dea2ad7d95923d4993c1b269b224fc7bb3d17e32d33c url: "https://pub.dev" source: hosted - version: "0.14.0" + version: "1.0.1-alpha+1709845491443" gql_dedupe_link: dependency: transitive description: name: gql_dedupe_link - sha256: "89681048cf956348e865da872a40081499b8c087fc84dd4d4b9c134bd70d27b3" + sha256: "2971173c68623d5c43f5327ea899bd2ee64ce3461c1263f240b4bb6211f667be" url: "https://pub.dev" source: hosted - version: "2.0.3+1" + version: "2.0.4-alpha+1709845491527" gql_error_link: dependency: transitive description: name: gql_error_link - sha256: e7bfdd2b6232f3e15861cd96c2ad6b7c9c94693843b3dea18295136a5fb5b534 + sha256: "93901458f3c050e33386dedb0ca7173e08cebd7078e4e0deca4bf23ab7a71f63" url: "https://pub.dev" source: hosted - version: "0.2.3+1" + version: "1.0.0+1" gql_exec: dependency: transitive description: name: gql_exec - sha256: "0d1fdb2e4154efbfc1dcf3f35ec36d19c8428ff0d560eb4c45b354f8f871dc50" + sha256: "394944626fae900f1d34343ecf2d62e44eb984826189c8979d305f0ae5846e38" url: "https://pub.dev" source: hosted - version: "0.4.3" + version: "1.1.1-alpha+1699813812660" gql_http_link: dependency: transitive description: name: gql_http_link - sha256: "89ef87b32947acf4189f564c095f1148b0ab9bb9996fe518716dbad66708b834" + sha256: "1f922eed1b7078fdbfd602187663026f9f659fe9a9499e2207b5d5e01617f658" url: "https://pub.dev" source: hosted - version: "0.4.5" + version: "1.0.1+1" gql_link: dependency: transitive description: name: gql_link - sha256: f7973279126bc922d465c4f4da6ed93d187085e597b3480f5e14e74d28fe14bd + sha256: "177500e250b3742d6d2673d57961e8413b6593dc6bd6a512c51865b6cf096f7e" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "1.0.1-alpha+1709845491457" gql_transform_link: dependency: transitive description: name: gql_transform_link - sha256: b1735a9a92d25a92960002a8b40dfaede95ec1e5ed848906125d69efd878661f + sha256: "0645fdd874ca1be695fd327271fdfb24c0cd6fa40774a64b946062f321a59709" url: "https://pub.dev" source: hosted - version: "0.2.2+1" + version: "1.0.0" graphql: dependency: transitive description: name: graphql - sha256: b061201579040e9548cec2bae17bbdea0ab30666cb4e7ba48b9675f14d982199 + sha256: d066e53446166c12537458386b507f7426f2b8801ebafc184576aab3cbc64d56 url: "https://pub.dev" source: hosted - version: "5.1.3" + version: "5.2.0-beta.7" graphql_flutter: dependency: "direct main" description: name: graphql_flutter - sha256: "06059ac9e8417c71582f05e28a59b1416d43959d34a6a0d9565341e3a362e117" + sha256: "39b5e830bc654ab02c5b776c31675841d1a8c95840fdd284efba713b1d47e65d" url: "https://pub.dev" source: hosted - version: "5.1.2" + version: "5.2.0-beta.6" graphs: dependency: transitive description: @@ -655,6 +742,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.1" + hashlib_codecs: + dependency: transitive + description: + name: hashlib_codecs + sha256: "49e2a471f74b15f1854263e58c2ac11f2b631b5b12c836f9708a35397d36d626" + url: "https://pub.dev" + source: hosted + version: "2.2.0" hex: dependency: "direct main" description: @@ -691,10 +786,10 @@ packages: dependency: transitive description: name: http - sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.dev" source: hosted - version: "0.13.6" + version: "1.2.1" http_multi_server: dependency: transitive description: @@ -731,58 +826,58 @@ packages: dependency: "direct main" description: name: image_cropper - sha256: "542c3453109d16bcc388e43ae2276044d2cd6a6d20c68bdcff2c94ab9363ea15" + sha256: f4bad5ed2dfff5a7ce0dfbad545b46a945c702bb6182a921488ef01ba7693111 url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "5.0.1" image_cropper_for_web: dependency: transitive description: name: image_cropper_for_web - sha256: "89c936aa772a35b69ca67b78049ae9fa163a4fb8da2f6dee3893db8883fb49d2" + sha256: "865d798b5c9d826f1185b32e5d0018c4183ddb77b7b82a931e1a06aa3b74974e" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "3.0.0" image_cropper_platform_interface: dependency: transitive description: name: image_cropper_platform_interface - sha256: b232175c132b2f7ede3e1f101652bcd635cb4079a77c6dded8e6d32e6578d685 + sha256: ee160d686422272aa306125f3b6fb1c1894d9b87a5e20ed33fa008e7285da11e url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" image_picker: dependency: "direct main" description: name: image_picker - sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd" + sha256: fe9ee64ccb8d599a5dfb0e21cc6652232c610bcf667af4e79b9eb175cc30a7a5 url: "https://pub.dev" source: hosted - version: "1.0.7" + version: "1.1.0" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1" + sha256: "8e75431a62b7feb4fd55cb4a5c6f0ac4564460ec5dc09f9c4a0d50a5ce7c4cb9" url: "https://pub.dev" source: hosted - version: "0.8.9+3" + version: "0.8.10" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 + sha256: "5d6eb13048cd47b60dbf1a5495424dea226c5faf3950e20bf8120a58efb5b5f3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.4" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3 + sha256: f4a6f62be96d6fd268f32a6bf8ef444cd8e3fff64d16923c6e6fe55e0c84a761 url: "https://pub.dev" source: hosted - version: "0.8.9+1" + version: "0.8.10" image_picker_linux: dependency: transitive description: @@ -803,10 +898,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "3d2c323daea9d60608f1caf30be32a938916f4975434b8352e6f73dae496da38" + sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" url: "https://pub.dev" source: hosted - version: "2.9.4" + version: "2.10.0" image_picker_windows: dependency: transitive description: @@ -868,6 +963,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" + json_schema2: + dependency: transitive + description: + name: json_schema2 + sha256: "094e60d3605333c0816eeb2e5310b4f71ffaea2c0abc026b27418c1ac41a5db3" + url: "https://pub.dev" + source: hosted + version: "2.0.4+9" leak_tracker: dependency: transitive description: @@ -904,10 +1007,10 @@ packages: dependency: "direct main" description: name: logger - sha256: b3ff55aeb08d9d8901b767650285872cb1bb8f508373b3e348d60268b0c7f770 + sha256: "8c94b8c219e7e50194efc8771cd0e9f10807d8d3e219af473d89b06cc2ee4e04" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" logging: dependency: transitive description: @@ -940,6 +1043,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.8.0" + merlin: + dependency: transitive + description: + name: merlin + sha256: c6b5d5bc70880aa7639686db66480d0be4b89da843b5cab20550610507da2540 + url: "https://pub.dev" + source: hosted + version: "1.0.3" meta: dependency: transitive description: @@ -960,10 +1071,10 @@ packages: dependency: transitive description: name: mobx - sha256: "74ee54012dc7c1b3276eaa960a600a7418ef5f9997565deb8fca1fd88fb36b78" + sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" url: "https://pub.dev" source: hosted - version: "2.3.0+1" + version: "2.3.3+2" nested: dependency: transitive description: @@ -984,10 +1095,10 @@ packages: dependency: transitive description: name: normalize - sha256: baf8caf2d8b745af5737cca6c24f7fe3cf3158897fdbcde9a909b9c8d3e2e5af + sha256: "8a60e37de5b608eeaf9b839273370c71ebba445e9f73b08eee7725e0d92dbc43" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.8.2+1" package_config: dependency: transitive description: @@ -1000,18 +1111,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79" + sha256: "2c582551839386fa7ddbc7770658be7c0f87f388a4bff72066478f597c34d17f" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "7.0.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6" + sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" path: dependency: transitive description: @@ -1032,18 +1143,18 @@ packages: dependency: "direct main" description: name: path_provider - sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.4" path_provider_foundation: dependency: transitive description: @@ -1096,10 +1207,10 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "74e962b7fad7ff75959161bb2c0ad8fe7f2568ee82621c9c2660b751146bfe44" + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" url: "https://pub.dev" source: hosted - version: "11.3.0" + version: "11.3.1" permission_handler_android: dependency: transitive description: @@ -1112,10 +1223,10 @@ packages: dependency: transitive description: name: permission_handler_apple - sha256: bdafc6db74253abb63907f4e357302e6bb786ab41465e8635f362ee71fd8707b + sha256: e9ad66020b89ff1b63908f247c2c6f931c6e62699b756ef8b3c4569350cd8662 url: "https://pub.dev" source: hosted - version: "9.4.0" + version: "9.4.4" permission_handler_html: dependency: transitive description: @@ -1128,10 +1239,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: "23dfba8447c076ab5be3dee9ceb66aad345c4a648f0cac292c77b1eb0e800b78" + sha256: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20" url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.2.1" permission_handler_windows: dependency: transitive description: @@ -1184,19 +1295,51 @@ packages: dependency: "direct main" description: name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + sha256: "79fbafed02cfdbe85ef3fd06c7f4bc2cbcba0177e61b765264853d4253b21744" + url: "https://pub.dev" + source: hosted + version: "3.9.0" + polkadart: + dependency: transitive + description: + name: polkadart + sha256: "4be169198d7938aec035eacead499b469795ccc9797589bb2df5b2ec6bd52535" + url: "https://pub.dev" + source: hosted + version: "0.4.3" + polkadart_cli: + dependency: transitive + description: + name: polkadart_cli + sha256: a0c82811e7ed935208afc7a8e0ef04446574d53f0a1855694ec5ad0792decef1 + url: "https://pub.dev" + source: hosted + version: "0.4.2" + polkadart_keyring: + dependency: transitive + description: + name: polkadart_keyring + sha256: "10cdd75e3319169ca7a4bb49745d85fab3f56bba2eafda35655c4f278a4c5e07" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "0.4.3" + polkadart_scale_codec: + dependency: transitive + description: + name: polkadart_scale_codec + sha256: fab60c739f6ebcc812796e56378656dca57179cec46e92c23614db6fd9ed0f86 + url: "https://pub.dev" + source: hosted + version: "1.2.0" polkawallet_sdk: dependency: "direct main" description: path: "." - ref: "8b254d9e98cb367b4a57d67f8c6f5bbe89a52552" - resolved-ref: "8b254d9e98cb367b4a57d67f8c6f5bbe89a52552" + ref: fcfdb5e9f214c99c8d3a97d3aea38a67ea1fa6a5 + resolved-ref: fcfdb5e9f214c99c8d3a97d3aea38a67ea1fa6a5 url: "https://github.com/poka-IT/sdk.git" source: git - version: "0.5.4+4" + version: "0.5.9+4" pool: dependency: transitive description: @@ -1269,14 +1412,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.0" - rational: + quiver: dependency: transitive description: - name: rational - sha256: ba58e9e18df9abde280e8b10051e4bce85091e41e8e7e411b6cde2e738d357cf + name: quiver + sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "3.2.1" + recase: + dependency: transitive + description: + name: recase + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" + source: hosted + version: "4.1.0" responsive_framework: dependency: "direct main" description: @@ -1285,6 +1436,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + rest_client: + dependency: transitive + description: + name: rest_client + sha256: "90473416250779b85f8d620e9dc277f38ea67acf84d3c6299e005ce08caedd69" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + ristretto255: + dependency: transitive + description: + name: ristretto255 + sha256: "3824d6786146dfb3b0783f305b714d36fa213c0d08e0ba864267baa0ede51cdd" + url: "https://pub.dev" + source: hosted + version: "1.0.2" rxdart: dependency: transitive description: @@ -1297,50 +1464,50 @@ packages: dependency: "direct main" description: name: screen_brightness - sha256: a1273cbc854c39c940c17ac400c040afd973166b8808f2efe2072763b23e4d30 + sha256: "7d4ac84ae26b37c01d6f5db7123a72db7933e1f2a2a8c369a51e08f81b3178d8" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" screen_brightness_android: dependency: transitive description: name: screen_brightness_android - sha256: "69d903bb42071aa2ad8853bf24e206ff6c39894930278e6239751447aacb9fe4" + sha256: "8c69d3ac475e4d625e7fa682a3a51a69ff59abe5b4a9e57f6ec7d830a6c69bd6" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" screen_brightness_ios: dependency: transitive description: name: screen_brightness_ios - sha256: "265790af69e26c4840e515b9b34e31505f95c0ca8866fac47b80db3552196214" + sha256: f08f70ca1ac3e30719764b5cfb8b3fe1e28163065018a41b3e6f243ab146c2f1 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" screen_brightness_macos: dependency: transitive description: name: screen_brightness_macos - sha256: b83e7a8b7c0f1a3161b586620781517b585deb4082dfff3745a5b2779ea94996 + sha256: "70c2efa4534e22b927e82693488f127dd4a0f008469fccf4f0eefe9061bbdd6a" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" screen_brightness_platform_interface: dependency: transitive description: name: screen_brightness_platform_interface - sha256: e160b78f37bc093a6a66bfa118bb9266c36bfa3163bf976f94e0e5aa79977ff9 + sha256: "9f3ebf7f22d5487e7676fe9ddaf3fc55b6ff8057707cf6dc0121c7dfda346a16" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" screen_brightness_windows: dependency: transitive description: name: screen_brightness_windows - sha256: "1f1f14436ec3d8fdda4dca60a8c6aa70f9ae1c04a55bd2cf40e3a4453a4bf78e" + sha256: c8e12a91cf6dd912a48bd41fcf749282a51afa17f536c3460d8d05702fb89ffa url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" scroll_to_index: dependency: transitive description: @@ -1357,38 +1524,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + secp256k1_ecdsa: + dependency: transitive + description: + name: secp256k1_ecdsa + sha256: "87008b4fd164d861b94b0edf2e01ffadd6f06769e1f0382e19bb091daecc0576" + url: "https://pub.dev" + source: hosted + version: "0.4.0" sentry: dependency: transitive description: name: sentry - sha256: a524a87d096799b775530176c8c082afe7aa1f10cc31ba078fecdd74e9afc923 + sha256: "19a267774906ca3a3c4677fc7e9582ea9da79ae9a28f84bbe4885dac2c269b70" url: "https://pub.dev" source: hosted - version: "7.17.0" + version: "7.20.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: e0f8367f8f7c74dba9f7521f71700bce6c6ee065cf342f065d4fce411b84fc7b + sha256: "2d2917f7d795167e33a790db9bc5e1104d2035569ecf83e09a3f491bc6978cfe" url: "https://pub.dev" source: hosted - version: "7.17.0" + version: "7.20.0" shared_preferences: 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: @@ -1417,10 +1592,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.0" shared_preferences_windows: dependency: transitive description: @@ -1474,6 +1649,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sr25519: + dependency: transitive + description: + name: sr25519 + sha256: "266f7b2a4dd2d6a41a49924d41e80665f3b8340c157deff172f2b0cf64657a27" + url: "https://pub.dev" + source: hosted + version: "0.4.0" + ss58: + dependency: transitive + description: + name: ss58 + sha256: b24d2713597b83708ef30daea5a565dba8bc9129031b30c025069e168301ae5e + url: "https://pub.dev" + source: hosted + version: "1.1.2" stack_trace: dependency: transitive description: @@ -1506,6 +1705,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + strobe: + dependency: transitive + description: + name: strobe + sha256: a23adf7d305e45c6f210270aa925d8b404819144e29f7c5257a67281b63e0887 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + substrate_bip39: + dependency: transitive + description: + name: substrate_bip39 + sha256: "29548105e939d1fb213aba96686eb5c5aae472249fa12b8dda58b252d23f492c" + url: "https://pub.dev" + source: hosted + version: "0.4.0" + substrate_metadata: + dependency: transitive + description: + name: substrate_metadata + sha256: "4557950c7dcea17cdf7e1224ac7822ab38dd9658f000be6d58b4a41b0a8126d4" + url: "https://pub.dev" + source: hosted + version: "1.2.0" sync_http: dependency: transitive description: @@ -1574,26 +1797,34 @@ packages: dependency: "direct main" description: name: unorm_dart - sha256: "23d8bf65605401a6a32cff99435fed66ef3dab3ddcad3454059165df46496a3b" + sha256: "5b35bff83fce4d76467641438f9e867dc9bcfdb8c1694854f230579d68cd8f4b" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.2.0" + uri: + dependency: transitive + description: + name: uri + sha256: "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a" + url: "https://pub.dev" + source: hosted + version: "1.0.0" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" + sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.2.6" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 + sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_ios: dependency: transitive description: @@ -1630,10 +1861,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.1" url_launcher_windows: dependency: transitive description: @@ -1642,38 +1873,46 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.1" + utility: + dependency: transitive + description: + name: utility + sha256: "200d264c3804e87da7ea36aa81bd73fb845d2cb7b2e820f3f357a0a2bd4e37f5" + url: "https://pub.dev" + source: hosted + version: "1.0.3" uuid: dependency: "direct main" description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.4.0" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752" + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33 + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -1710,26 +1949,26 @@ packages: dependency: transitive description: name: web - sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.4.2" + version: "0.5.1" web3dart: dependency: transitive description: name: web3dart - sha256: "0b96223a6b284e3146e65dc842ded139eca68a85c4ab79c5ba1a73284927d3cd" + sha256: "885e5e8f0cc3c87c09f160a7fce6279226ca41316806f7ece2001959c62ecced" url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.7.3" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd" + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.4.5" webdriver: dependency: transitive description: @@ -1750,10 +1989,10 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: "3e5f4e9d818086b0d01a66fb1ff9cc72ab0cc58c71980e3d3661c5685ea0efb0" + sha256: f038ee2fae73b509dde1bc9d2c5a50ca92054282de17631a9a3d515883740934 url: "https://pub.dev" source: hosted - version: "3.15.0" + version: "3.16.0" webview_flutter_platform_interface: dependency: transitive description: @@ -1766,18 +2005,18 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "9bf168bccdf179ce90450b5f37e36fe263f591c9338828d6bf09b6f8d0f57f86" + sha256: f12f8d8a99784b863e8b85e4a9a5e3cf1839d6803d2c0c3e0533a8f3c5a992a7 url: "https://pub.dev" source: hosted - version: "3.12.0" + version: "3.13.0" win32: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.4.0" xdg_directories: dependency: transitive description: @@ -1802,6 +2041,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" + yaon: + dependency: transitive + description: + name: yaon + sha256: "15909774f728b07066a72b54719d3212cbf58bae80450b8303d810302e68a53c" + url: "https://pub.dev" + source: hosted + version: "1.1.4+7" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.3.3 <4.0.0" flutter: ">=3.19.0" diff --git a/pubspec.yaml b/pubspec.yaml index 77b6d325..519e61fd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: Pay with G1. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 0.1.5+72 +version: 0.1.6+73 environment: sdk: ">=2.12.0 <3.0.0" @@ -15,59 +15,63 @@ dependencies: sdk: flutter bubble: ^1.2.1 carousel_slider: ^4.2.1 - graphql_flutter: ^5.1.2 + graphql_flutter: ^5.2.0-beta.6 hive_flutter: ^1.1.0 - image_picker: ^1.0.5 + image_picker: ^1.1.0 jdenticon_dart: ^2.0.0 - logger: ^2.0.2+1 - path_provider: ^2.1.1 - pdf: ^3.10.7 - permission_handler: ^11.1.0 + logger: ^2.2.0 + path_provider: ^2.1.3 + pdf: ^3.10.8 + permission_handler: ^11.3.1 pin_code_fields: ^8.0.1 - printing: ^5.11.1 - provider: ^6.1.1 + printing: ^5.12.0 + provider: ^6.1.2 barcode_scan2: ^4.3.0 qr_flutter: ^4.1.0 - responsive_framework: ^1.1.1 - sentry_flutter: ^7.14.0 + responsive_framework: ^1.4.0 + sentry_flutter: ^7.20.0 truncate: ^3.0.1 - unorm_dart: ^0.3.0 - dio: ^5.4.0 - durt: ^0.1.7 - package_info_plus: ^5.0.1 + unorm_dart: ^0.2.0 + dio: ^5.4.3+1 + durt: ^0.1.8 + package_info_plus: ^7.0.0 polkawallet_sdk: #^0.5.2 git: # url: https://github.com/polkawallet-io/sdk.git # ref: develop url: https://github.com/poka-IT/sdk.git # ref: gecko-fixes-3 - ref: 8b254d9e98cb367b4a57d67f8c6f5bbe89a52552 + ref: fcfdb5e9f214c99c8d3a97d3aea38a67ea1fa6a5 dots_indicator: ^3.0.0 - connectivity_plus: ^3.0.6 - image_cropper: ^4.0.1 - easy_localization: ^3.0.3 - flutter_markdown: ^0.6.18+2 - pointycastle: ^3.7.3 + connectivity_plus: ^5.0.2 + image_cropper: ^5.0.1 + easy_localization: ^3.0.5 + flutter_markdown: ^0.7.1 + pointycastle: ^3.9.0 hex: ^0.2.0 accordion: ^2.6.0 - flutter_svg: ^2.0.9 + flutter_svg: ^2.0.10+1 pinenacl: ^0.5.1 fast_base58: ^0.2.1 tutorial_coach_mark: ^1.2.11 confetti: ^0.7.0 - url_launcher: ^6.2.2 + url_launcher: ^6.2.6 crypto: ^3.0.3 - screen_brightness: ^1.0.0 - uuid: ^3.0.7 + screen_brightness: ^1.0.1 + uuid: ^4.4.0 fade_and_translate: ^0.1.3 + durt2: + path: ../../durt2 + # git: + # url: https://git.duniter.org/libs/durt2 dev_dependencies: # flutter_launcher_icons: ^0.9.2 # flutter_launcher_icons_maker: ^^0.10.2 - icons_launcher: ^2.1.6 - build_runner: ^2.4.7 + icons_launcher: ^2.1.7 + build_runner: ^2.4.9 hive_generator: ^2.0.1 - flutter_lints: ^3.0.1 + flutter_lints: ^3.0.2 flutter_test: sdk: flutter integration_test: -- GitLab