Skip to content
Snippets Groups Projects
Select Git revision
  • durt-stuff
  • master default protected
  • polkadart-stuff
  • dev
  • provider-to-riverpod
  • implementLightnode
  • subscribesSplit
  • hugo_RML16
  • refactorOnboardingSlideshow
  • duniterV1Latest
  • scanNetwork
  • dubp_rs
  • v0.1.28+109
  • v0.1.27+108
  • v0.1.26+107
  • v0.1.25+106
  • v0.1.25+105
  • v0.1.24+102
  • v0.1.23+101
  • v0.1.22+100
  • v0.1.22+99
  • v0.1.21+98
  • v0.1.21+97
  • v0.1.21+96
  • v0.1.21+95
  • v0.1.21+94
  • v0.1.21+93
  • v0.1.20+92
  • v0.1.19+91
  • v0.1.18+90
  • v0.1.17+89
  • v0.1.16+88
32 results

migrate_identity.dart

Blame
  • migrate_identity.dart 18.04 KiB
    // ignore_for_file: use_build_context_synchronously
    
    import 'package:easy_localization/easy_localization.dart';
    import 'package:gecko/globals.dart';
    import 'package:flutter/material.dart';
    import 'package:gecko/models/migrate_wallet_checks.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/generate_wallets.dart';
    import 'package:gecko/providers/my_wallets.dart';
    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/balance_display.dart';
    import 'package:gecko/widgets/commons/text_markdown.dart';
    import 'package:gecko/widgets/commons/top_appbar.dart';
    import 'package:polkawallet_sdk/api/apiKeyring.dart';
    import 'package:provider/provider.dart';
    
    class MigrateIdentityScreen extends StatelessWidget {
      const MigrateIdentityScreen({super.key});
    
      @override
      Widget build(BuildContext context) {
        final walletOptions = Provider.of<WalletOptionsProvider>(context, listen: false);
        final myWalletProvider = Provider.of<MyWalletsProvider>(context, listen: false);
        final generatedWalletsProvider = Provider.of<GenerateWalletsProvider>(context, listen: false);
        final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
        final sub = Provider.of<SubstrateSdk>(context, listen: false);
        final screenSize = MediaQuery.of(context).size;
        final isSmallScreen = screenSize.height < 700;
    
        final fromAddress = walletOptions.address.text;
        final newMnemonicSentence = TextEditingController();
        final newWalletAddress = TextEditingController();
    
        var statusData = const MigrateWalletChecks.defaultValues();
        var mnemonicIsValid = false;
        int? matchDerivationNbr;
        String matchInfo = '';
    
        Future scanDerivations() async {
          if (!await isAddress(newWalletAddress.text) || !await sub.isMnemonicValid(newMnemonicSentence.text) || !statusData.canValidate) {
            mnemonicIsValid = false;
            matchInfo = '';
            walletOptions.reload();
            return;
          }
          log.d('Scan derivations to find a match');
    
          //Scan root wallet
          final addressData = await sub.sdk.api.keyring.addressFromMnemonic(
            sub.currencyParameters['ss58']!,
            cryptoType: CryptoType.sr25519,
            mnemonic: newMnemonicSentence.text,
          );
    
          if (addressData.address == newWalletAddress.text) {
            matchDerivationNbr = -1;
            mnemonicIsValid = true;
            walletOptions.reload();
            return;
          }
    
          //Scan derivations
          for (int derivationNbr in [for (var i = 0; i < generatedWalletsProvider.numberScan; i += 1) i]) {
            final addressData = await sub.sdk.api.keyring.addressFromMnemonic(