Start to implement transactions

This commit is contained in:
poka 2021-03-29 22:12:38 +02:00
parent 92d00245ef
commit 8f7397626c
3 changed files with 28 additions and 6 deletions

View File

@ -1,8 +1,12 @@
import 'dart:io';
import 'package:dubp/dubp.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/home.dart';
import 'package:gecko/screens/history.dart';
import 'package:gecko/screens/myWallets/unlockingWallet.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:jdenticon_dart/jdenticon_dart.dart';
import 'package:permission_handler/permission_handler.dart';
@ -45,6 +49,20 @@ class HistoryProvider with ChangeNotifier {
return barcode;
}
void pay(amount, comment) {
UnlockingWallet();
String dewif = File(walletsDirectory.path +
'${defaultWallet.split(':')[0]}/wallet.dewif')
.readAsLinesSync()[0];
DubpRust.simplePaymentFromTransparentAccount(
accountIndex: 0,
amount: 1,
dewif: dewif,
gvaEndpoint: endPointGVA,
recipient: pubkey);
}
String isPubkey(context, pubkey, {bool goHistory}) {
HomeProvider _homeProvider =
Provider.of<HomeProvider>(context, listen: false);

View File

@ -7,6 +7,7 @@ import 'package:gecko/models/queries.dart';
import 'package:gecko/models/history.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:gecko/screens/myWallets/unlockingWallet.dart';
import 'dart:ui';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:provider/provider.dart';
@ -315,7 +316,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
// ),
_historyProvider.isHistoryScreen
? historyView(context, result)
: payView(context),
: payView(context, _historyProvider),
],
))),
onNotification: (t) {
@ -332,7 +333,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
));
}
Widget payView(context) {
Widget payView(context, HistoryProvider _historyProvider) {
TextEditingController payAmount = new TextEditingController();
TextEditingController payComment = new TextEditingController();
return Stack(
@ -361,6 +363,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
Padding(
padding: EdgeInsets.all(8.0),
child: TextFormField(
controller: payAmount,
textAlign: TextAlign.center,
maxLines: 1,
keyboardType: TextInputType.number,
@ -375,9 +378,10 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
style: OutlinedButton.styleFrom(
side: BorderSide(width: 2, color: Color(0xffD28928))),
onPressed: () {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
}
// if (_formKey.currentState.validate()) {
// _formKey.currentState.save();
// }
_historyProvider.pay(payAmount.text, payComment.text);
},
child: Padding(
padding: const EdgeInsets.all(12),

View File

@ -5,7 +5,7 @@ description: Pay with G1.
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 0.0.1+22
version: 0.0.1+23
environment:
sdk: ">=2.7.0 <3.0.0"