From efed633e87a583e9c8823e31f126867158f95e24 Mon Sep 17 00:00:00 2001 From: poka <poka@p2p.legal> Date: Sat, 30 Nov 2024 18:48:27 +0100 Subject: [PATCH] refac utils --- integration_test/utility/tests_utility.dart | 1 + lib/providers/duniter_indexer.dart | 1 + lib/providers/substrate_sdk.dart | 40 ++----------------- lib/providers/wallet_options.dart | 1 + lib/screens/myWallets/import_g1_v1.dart | 1 + lib/screens/myWallets/manage_membership.dart | 1 + lib/screens/myWallets/migrate_identity.dart | 1 + lib/screens/myWallets/wallet_options.dart | 1 + lib/screens/qrcode_fullscreen.dart | 2 +- lib/screens/transaction_in_progress.dart | 1 + lib/utils.dart | 38 ++++++++++++++++++ lib/widgets/cert_tile.dart | 2 +- lib/widgets/certify/certify_button.dart | 1 + lib/widgets/contacts_list.dart | 2 +- lib/widgets/header_profile.dart | 1 + lib/widgets/history_view.dart | 1 + lib/widgets/payment_popup.dart | 1 + lib/widgets/search_identity_query.dart | 2 +- lib/widgets/search_result_list.dart | 2 +- lib/widgets/transaction_in_progress_tile.dart | 1 + lib/widgets/transaction_tile.dart | 2 +- 21 files changed, 60 insertions(+), 43 deletions(-) create mode 100644 lib/utils.dart diff --git a/integration_test/utility/tests_utility.dart b/integration_test/utility/tests_utility.dart index 99bee8be..2c51c888 100644 --- a/integration_test/utility/tests_utility.dart +++ b/integration_test/utility/tests_utility.dart @@ -7,6 +7,7 @@ import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/generate_wallets.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:gecko/utils.dart'; import 'package:provider/provider.dart'; import 'dart:io' as io; import 'package:gecko/main.dart' as app; diff --git a/lib/providers/duniter_indexer.dart b/lib/providers/duniter_indexer.dart index 2ced8efb..a2cb30df 100644 --- a/lib/providers/duniter_indexer.dart +++ b/lib/providers/duniter_indexer.dart @@ -8,6 +8,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/queries_indexer.dart'; import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:gecko/utils.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:provider/provider.dart'; diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index c13d8474..79fe0c82 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -6,13 +6,13 @@ import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/chest_data.dart'; import 'package:gecko/models/migrate_wallet_checks.dart'; -import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/transaction_content.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/providers/wallets_profiles.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/certify/cert_state.dart'; import 'package:gecko/widgets/transaction_status.dart'; import 'package:pinenacl/ed25519.dart'; @@ -24,7 +24,6 @@ import 'package:polkawallet_sdk/storage/keyring.dart'; import 'package:polkawallet_sdk/storage/types/keyPairData.dart'; import 'package:polkawallet_sdk/webviewWithExtension/types/signExtrinsicParam.dart'; import 'package:provider/provider.dart'; -import 'package:truncate/truncate.dart'; import 'package:pointycastle/pointycastle.dart' as pc; import "package:hex/hex.dart"; import 'package:uuid/uuid.dart' show Uuid; @@ -1058,7 +1057,7 @@ class SubstrateSdk with ChangeNotifier { final prefix = 'icok'.codeUnits; final genesisHashString = await getGenesisHash(); final genesisHash = HEX.decode(genesisHashString.substring(2)) as Uint8List; - final idtyIndex = _int32bytes((await _getIdentityIndexOf(fromAddress))!); + final idtyIndex = int32bytes((await _getIdentityIndexOf(fromAddress))!); final oldPubkey = await addressToPubkey(fromAddress); final messageToSign = Uint8List.fromList(prefix + genesisHash + idtyIndex + oldPubkey); final messageToSignHex = HEX.encode(messageToSign); @@ -1120,7 +1119,7 @@ newKeySig: $newKeySigType"""); final prefix = 'revo'.codeUnits; final genesisHashString = await getGenesisHash(); final genesisHash = HEX.decode(genesisHashString.substring(2)) as Uint8List; - final idtyIndexBytes = _int32bytes(idtyIndex!); + final idtyIndexBytes = int32bytes(idtyIndex!); final messageToSign = Uint8List.fromList(prefix + genesisHash + idtyIndexBytes); final revocationSig = (await _signMessage(messageToSign, address, password)).substring(2); final revocationSigTyped = '0x01$revocationSig'; @@ -1218,36 +1217,3 @@ newKeySig: $newKeySigType"""); notifyListeners(); } } - -//////////////////////////////////////////// -/////// 6: UI ELEMENTS (off class) ///////// -//////////////////////////////////////////// - -void snackNode(bool isConnected) { - String message; - if (!isConnected) { - message = "noDuniterNodeAvailableTryLater".tr(); - } else { - final sub = Provider.of<SubstrateSdk>(homeContext, listen: false); - - message = "${"youAreConnectedToNode".tr()}\n${sub.getConnectedEndpoint()!.split('//')[1]}"; - } - final snackBar = SnackBar( - backgroundColor: Colors.grey[900], - padding: const EdgeInsets.all(20), - content: Text(message, style: scaledTextStyle(fontSize: 13)), - duration: const Duration(seconds: 4)); - ScaffoldMessenger.of(homeContext).showSnackBar(snackBar); -} - -String getShortPubkey(String pubkey) { - String pubkeyShort = truncate(pubkey, 7, omission: String.fromCharCode(0x2026), position: TruncatePosition.end) + - truncate(pubkey, 6, omission: "", position: TruncatePosition.start); - return pubkeyShort; -} - -Uint8List _int32bytes(int value) => Uint8List(4)..buffer.asInt32List()[0] = value; - -double round(double number, [int decimal = 2]) { - return double.parse((number.toStringAsFixed(decimal))); -} diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index ee82331b..ff3cf5a7 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -12,6 +12,7 @@ import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/v2s_datapod.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/common_elements.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; import 'package:image_picker/image_picker.dart'; diff --git a/lib/screens/myWallets/import_g1_v1.dart b/lib/screens/myWallets/import_g1_v1.dart index 430f8664..e13c394b 100644 --- a/lib/screens/myWallets/import_g1_v1.dart +++ b/lib/screens/myWallets/import_g1_v1.dart @@ -14,6 +14,7 @@ import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/certifications.dart'; import 'package:gecko/widgets/commons/top_appbar.dart'; import 'package:gecko/widgets/idty_status.dart'; diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart index 8062db3c..675e08ac 100644 --- a/lib/screens/myWallets/manage_membership.dart +++ b/lib/screens/myWallets/manage_membership.dart @@ -7,6 +7,7 @@ import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/common_elements.dart'; import 'package:gecko/screens/myWallets/migrate_identity.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; diff --git a/lib/screens/myWallets/migrate_identity.dart b/lib/screens/myWallets/migrate_identity.dart index ef0bab4a..c0a39b38 100644 --- a/lib/screens/myWallets/migrate_identity.dart +++ b/lib/screens/myWallets/migrate_identity.dart @@ -14,6 +14,7 @@ import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/top_appbar.dart'; import 'package:polkawallet_sdk/api/apiKeyring.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 6e9299cc..a8bd2ae3 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -20,6 +20,7 @@ import 'package:gecko/screens/activity.dart'; import 'package:gecko/screens/myWallets/chest_options.dart'; import 'package:gecko/screens/myWallets/import_g1_v1.dart'; import 'package:gecko/screens/qrcode_fullscreen.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/bottom_app_bar.dart'; import 'package:gecko/widgets/buttons/manage_membership_button.dart'; diff --git a/lib/screens/qrcode_fullscreen.dart b/lib/screens/qrcode_fullscreen.dart index 3259b120..77e82b3d 100644 --- a/lib/screens/qrcode_fullscreen.dart +++ b/lib/screens/qrcode_fullscreen.dart @@ -3,7 +3,7 @@ import 'package:gecko/globals.dart'; import 'package:flutter/material.dart'; import 'package:gecko/models/scale_functions.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:gecko/utils.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:screen_brightness/screen_brightness.dart'; diff --git a/lib/screens/transaction_in_progress.dart b/lib/screens/transaction_in_progress.dart index 3f485f52..a5c9ae2e 100644 --- a/lib/screens/transaction_in_progress.dart +++ b/lib/screens/transaction_in_progress.dart @@ -6,6 +6,7 @@ import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallets_profiles.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/loading.dart'; import 'package:gecko/widgets/transaction_status.dart'; import 'package:gecko/widgets/transaction_status_icon.dart'; diff --git a/lib/utils.dart b/lib/utils.dart new file mode 100644 index 00000000..fa9ffd36 --- /dev/null +++ b/lib/utils.dart @@ -0,0 +1,38 @@ +import 'dart:typed_data'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:gecko/globals.dart'; +import 'package:gecko/models/scale_functions.dart'; +import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:provider/provider.dart'; +import 'package:truncate/truncate.dart'; + +void snackNode(bool isConnected) { + String message; + if (!isConnected) { + message = "noDuniterNodeAvailableTryLater".tr(); + } else { + final sub = Provider.of<SubstrateSdk>(homeContext, listen: false); + + message = "${"youAreConnectedToNode".tr()}\n${sub.getConnectedEndpoint()!.split('//')[1]}"; + } + final snackBar = SnackBar( + backgroundColor: Colors.grey[900], + padding: const EdgeInsets.all(20), + content: Text(message, style: scaledTextStyle(fontSize: 13)), + duration: const Duration(seconds: 4)); + ScaffoldMessenger.of(homeContext).showSnackBar(snackBar); +} + +String getShortPubkey(String pubkey) { + String pubkeyShort = truncate(pubkey, 7, omission: String.fromCharCode(0x2026), position: TruncatePosition.end) + + truncate(pubkey, 6, omission: "", position: TruncatePosition.start); + return pubkeyShort; +} + +Uint8List int32bytes(int value) => Uint8List(4)..buffer.asInt32List()[0] = value; + +double round(double number, [int decimal = 2]) { + return double.parse((number.toStringAsFixed(decimal))); +} diff --git a/lib/widgets/cert_tile.dart b/lib/widgets/cert_tile.dart index 95c2dc54..c567a93b 100644 --- a/lib/widgets/cert_tile.dart +++ b/lib/widgets/cert_tile.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/widgets_keys.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; class CertTile extends StatelessWidget { diff --git a/lib/widgets/certify/certify_button.dart b/lib/widgets/certify/certify_button.dart index d3b7c4be..a47933db 100644 --- a/lib/widgets/certify/certify_button.dart +++ b/lib/widgets/certify/certify_button.dart @@ -12,6 +12,7 @@ import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; import 'package:gecko/screens/wallet_view.dart' show buttonSize, buttonFontSize; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/common_elements.dart'; import 'package:provider/provider.dart'; diff --git a/lib/widgets/contacts_list.dart b/lib/widgets/contacts_list.dart index 2fa211f3..8b0a970a 100644 --- a/lib/widgets/contacts_list.dart +++ b/lib/widgets/contacts_list.dart @@ -6,9 +6,9 @@ import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/duniter_indexer.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; import 'package:gecko/widgets/name_by_address.dart'; diff --git a/lib/widgets/header_profile.dart b/lib/widgets/header_profile.dart index 2e1499d0..dc25f0ae 100644 --- a/lib/widgets/header_profile.dart +++ b/lib/widgets/header_profile.dart @@ -8,6 +8,7 @@ import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/certifications.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/certifications.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; diff --git a/lib/widgets/history_view.dart b/lib/widgets/history_view.dart index 78b6bd44..38f76346 100644 --- a/lib/widgets/history_view.dart +++ b/lib/widgets/history_view.dart @@ -5,6 +5,7 @@ import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/providers/duniter_indexer.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/commons/loading.dart'; import 'package:gecko/widgets/page_route_no_transition.dart'; import 'package:gecko/widgets/transaction_tile.dart'; diff --git a/lib/widgets/payment_popup.dart b/lib/widgets/payment_popup.dart index 7093444a..0e0567c6 100644 --- a/lib/widgets/payment_popup.dart +++ b/lib/widgets/payment_popup.dart @@ -12,6 +12,7 @@ import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/activity.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/name_by_address.dart'; import 'package:provider/provider.dart'; diff --git a/lib/widgets/search_identity_query.dart b/lib/widgets/search_identity_query.dart index c319ea48..ca3a87a5 100644 --- a/lib/widgets/search_identity_query.dart +++ b/lib/widgets/search_identity_query.dart @@ -7,9 +7,9 @@ import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/duniter_indexer.dart'; import 'package:gecko/providers/search.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; diff --git a/lib/widgets/search_result_list.dart b/lib/widgets/search_result_list.dart index 54d9cbc3..f38f9e06 100644 --- a/lib/widgets/search_result_list.dart +++ b/lib/widgets/search_result_list.dart @@ -5,9 +5,9 @@ import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/duniter_indexer.dart'; import 'package:gecko/providers/search.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/commons/loading.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; diff --git a/lib/widgets/transaction_in_progress_tile.dart b/lib/widgets/transaction_in_progress_tile.dart index 6f7ea475..9bfa398f 100644 --- a/lib/widgets/transaction_in_progress_tile.dart +++ b/lib/widgets/transaction_in_progress_tile.dart @@ -7,6 +7,7 @@ import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/transaction_content.dart'; import 'package:gecko/providers/duniter_indexer.dart'; import 'package:gecko/providers/substrate_sdk.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; import 'package:gecko/widgets/transaction_status.dart'; import 'package:gecko/widgets/transaction_status_icon.dart'; diff --git a/lib/widgets/transaction_tile.dart b/lib/widgets/transaction_tile.dart index c40fe3f2..97a592ed 100644 --- a/lib/widgets/transaction_tile.dart +++ b/lib/widgets/transaction_tile.dart @@ -3,8 +3,8 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/scale_functions.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/providers/duniter_indexer.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/screens/wallet_view.dart'; +import 'package:gecko/utils.dart'; import 'package:gecko/widgets/datapod_avatar.dart'; import 'package:gecko/widgets/page_route_no_transition.dart'; -- GitLab