Select Git revision
-
* allow clippy needless_pass_by_ref_mut * fix clippy °_° * fix provider behavior * fix build errors * change behavior of going below ED * fix provider initialization * add mock epoch change * add session number test * add session number test * WIP fix tests * fix time-based ud test * update metadata * FIX apply all fix from flash branch * partial fix clippy other suggestions are not legit * fix metadata and end2end test * fix build tests * fix build and clippy * remove benchmark of upgrade_accounts this happens in substrate dependency I also updated other packages because why not :D and I removed a useless implementation in mock but the test do not compile with feature runtime benchmarks anyway * test_total_issuance_vs_monetary_mass * proofreading comment * fix total issuance differently this actually fixes total issuance at genesis instead of creating duplicate account data * fix test scenario the thing tested here was not the ability to call the function, but the impossibility of deleting the account * add comment to explain test * fix providers and sufficients counts * fix initial balance * fix initial TotalIssuance * fix clippy warnings and optimization * fix xtask * update docs * add DustHandle * fix pallets config * fix tests * fix pallet_balance genesis config * wip: fix end2end-test * fix manual and instant sealing * fix live-tests * fix offences after rebase * generate all weights * add rust toolchain file * fix benchmarks Pallet balances benchmarks need https://github.com/duniter/substrate/commit/c36ab4f32454318a47777b24b6533c44121fc10b because pallet duniter-account add another provider. * fix babe-worker * fix subxt dependency * fix ImplicitCallIndex and Weight::from_ref_time deprecation * fix consensus_babe dependency * regenerate weights Regenerate all weights except for pallet-balance failing on one extrinsic * workaround pallet_duniter_account Workaround to be able to pass https://github.com/paritytech/substrate/blob/6ef184e33f6ce0f56999ae84b212ea6148c0624d/frame/balances/src/benchmarking.rs#L271 in the benchmark. ExtraFlags is private and Default is always new_logic not suitable for the benchmark. * wip fix node errors * wip fix runtime errors * fix pallet-duniter-account errors * fix pallet-balance errors * fix pallet-identity errors * fix pallet-duniter-account errors * upgrade Cargo files * update docs
* allow clippy needless_pass_by_ref_mut * fix clippy °_° * fix provider behavior * fix build errors * change behavior of going below ED * fix provider initialization * add mock epoch change * add session number test * add session number test * WIP fix tests * fix time-based ud test * update metadata * FIX apply all fix from flash branch * partial fix clippy other suggestions are not legit * fix metadata and end2end test * fix build tests * fix build and clippy * remove benchmark of upgrade_accounts this happens in substrate dependency I also updated other packages because why not :D and I removed a useless implementation in mock but the test do not compile with feature runtime benchmarks anyway * test_total_issuance_vs_monetary_mass * proofreading comment * fix total issuance differently this actually fixes total issuance at genesis instead of creating duplicate account data * fix test scenario the thing tested here was not the ability to call the function, but the impossibility of deleting the account * add comment to explain test * fix providers and sufficients counts * fix initial balance * fix initial TotalIssuance * fix clippy warnings and optimization * fix xtask * update docs * add DustHandle * fix pallets config * fix tests * fix pallet_balance genesis config * wip: fix end2end-test * fix manual and instant sealing * fix live-tests * fix offences after rebase * generate all weights * add rust toolchain file * fix benchmarks Pallet balances benchmarks need https://github.com/duniter/substrate/commit/c36ab4f32454318a47777b24b6533c44121fc10b because pallet duniter-account add another provider. * fix babe-worker * fix subxt dependency * fix ImplicitCallIndex and Weight::from_ref_time deprecation * fix consensus_babe dependency * regenerate weights Regenerate all weights except for pallet-balance failing on one extrinsic * workaround pallet_duniter_account Workaround to be able to pass https://github.com/paritytech/substrate/blob/6ef184e33f6ce0f56999ae84b212ea6148c0624d/frame/balances/src/benchmarking.rs#L271 in the benchmark. ExtraFlags is private and Default is always new_logic not suitable for the benchmark. * wip fix node errors * wip fix runtime errors * fix pallet-duniter-account errors * fix pallet-balance errors * fix pallet-identity errors * fix pallet-duniter-account errors * upgrade Cargo files * update docs
substrate_sdk.dart 38.55 KiB
// ignore_for_file: use_build_context_synchronously, body_might_complete_normally_catch_error
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:fast_base58/fast_base58.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:gecko/providers/duniter_indexer.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:pinenacl/ed25519.dart';
import 'package:polkawallet_sdk/api/apiKeyring.dart';
import 'package:polkawallet_sdk/api/types/networkParams.dart';
import 'package:polkawallet_sdk/api/types/txInfoData.dart';
import 'package:polkawallet_sdk/polkawallet_sdk.dart';
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";
class SubstrateSdk with ChangeNotifier {
final WalletSDK sdk = WalletSDK();
final Keyring keyring = Keyring();
String generatedMnemonic = '';
bool sdkReady = false;
bool sdkLoading = false;
bool nodeConnected = false;
bool importIsLoading = false;
int blocNumber = 0;
bool isLoadingEndpoint = false;
String transactionStatus = '';
final int initSs58 = 42;
Map<String, int> currencyParameters = {};
TextEditingController csSalt = TextEditingController();
TextEditingController csPassword = TextEditingController();
String g1V1NewAddress = '';
String g1V1OldPubkey = '';
bool isCesiumIDVisible = false;
bool isCesiumAddresLoading = false;
late int udValue;
Map<String, List<int>> certsCounterCache = {};
Map<String, List> oldOwnerKeys = {};
/////////////////////////////////////
////////// 1: API METHODS ///////////
/////////////////////////////////////
Future<String> _executeCall(TxInfoData txInfo, txOptions, String password,
[String? rawParams]) async {
final walletOptions =
Provider.of<WalletOptionsProvider>(homeContext, listen: false);
final walletProfiles =
Provider.of<WalletsProfilesProvider>(homeContext, listen: false);
try {
final hash = await sdk.api.tx.signAndSend(txInfo, txOptions, password,
rawParam: rawParams, onStatusChange: (p0) {
transactionStatus = p0;
notifyListeners();
}).timeout(
const Duration(seconds: 18),
onTimeout: () => {},