Select Git revision
test_block.py
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,
);
}),