Skip to content
Snippets Groups Projects
Select Git revision
  • d1c86c2c9a20f6ab1de24ba49d55b726d0bccec2
  • master default
2 results

main.js

Blame
  • payment_popup.dart 26.28 KiB
    // ignore_for_file: use_build_context_synchronously
    
    import 'package:easy_localization/easy_localization.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:gecko/globals.dart';
    import 'package:gecko/models/scale_functions.dart';
    import 'package:gecko/models/text_input_formaters.dart';
    import 'package:gecko/models/wallet_data.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/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';
    import 'package:url_launcher/url_launcher.dart';
    import 'package:uuid/uuid.dart';
    
    void paymentPopup(BuildContext context, String toAddress, String? username) {
      final walletViewProvider = Provider.of<WalletsProfilesProvider>(context, listen: false);
      final myWalletProvider = Provider.of<MyWalletsProvider>(context, listen: false);
    
      double fees = 0;
      const double shapeSize = 16;
      var defaultWallet = myWalletProvider.getDefaultWallet();
      bool canValidate = false;
      final amountFocus = FocusNode();
      final commentFocus = FocusNode();
    
      void resetState() {
        walletViewProvider.payAmount.text = '';
        walletViewProvider.isCommentVisible = false;
        walletViewProvider.comment = '';
        walletViewProvider.payComment.text = '';
      }
    
      resetState();
    
      Future executeTransfert() async {
        Navigator.pop(context);
        if (!await myWalletProvider.askPinCode()) return;
    
        // Payment workflow !
        final sub = Provider.of<SubstrateSdk>(context, listen: false);
        final acc = sub.getCurrentKeyPair();
    
        final transactionId = const Uuid().v4();
    
        sub.pay(
          fromAddress: acc.address!,
          destAddress: toAddress,
          amount: double.parse(walletViewProvider.payAmount.text),
          password: myWalletProvider.pinCode,
          transactionId: transactionId,
          comment: walletViewProvider.comment,
        );
    
        Navigator.push(
          context,
          MaterialPageRoute(builder: (context) {
            return ActivityScreen(
              address: acc.address!,
              transactionId: transactionId,
              comment: walletViewProvider.comment,
            );
          }),