forked from axiom-team/gecko
estimate fees are ok and diplayed to user
This commit is contained in:
parent
6443e04191
commit
a0b0423856
|
@ -367,6 +367,19 @@ class SubstrateSdk with ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<double> txFees(
|
||||
String fromAddress, String destAddress, double amount) async {
|
||||
if (amount == 0) return 0;
|
||||
final sender = await _setSender(fromAddress);
|
||||
final txInfo = TxInfoData('balances', 'transferKeepAlive', sender);
|
||||
final amountUnit = (amount * 100).toInt();
|
||||
|
||||
final estimateFees =
|
||||
await sdk.api.tx.estimateFees(txInfo, [destAddress, amountUnit]);
|
||||
|
||||
return estimateFees.partialFee / 100;
|
||||
}
|
||||
|
||||
/////////////////////////////////////
|
||||
////// 3: SUBSTRATE CONNECTION //////
|
||||
/////////////////////////////////////
|
||||
|
@ -714,7 +727,7 @@ class SubstrateSdk with ChangeNotifier {
|
|||
txOptions = [destAddress, false];
|
||||
tx2 = 'api.tx.balances.transferAll("$destAddress", false)';
|
||||
} else {
|
||||
int amountUnit;
|
||||
late int amountUnit;
|
||||
if (isUdUnit) {
|
||||
palette = 'universalDividend';
|
||||
call = 'transferUd';
|
||||
|
|
|
@ -452,6 +452,8 @@ void paymentPopup(BuildContext context, String toAddress) {
|
|||
isScrollControlled: true,
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
|
||||
double fees = 0;
|
||||
return StatefulBuilder(
|
||||
builder: (BuildContext context, StateSetter setState) {
|
||||
if (walletViewProvider.payAmount.text != '' &&
|
||||
|
@ -588,12 +590,26 @@ void paymentPopup(BuildContext context, String toAddress) {
|
|||
],
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
'amount'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Colors.grey[600]),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
'amount'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Colors.grey[600]),
|
||||
),
|
||||
const Spacer(),
|
||||
Text(
|
||||
'frais: $fees $currencyName',
|
||||
style: const TextStyle(
|
||||
color: orangeC,
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
TextField(
|
||||
|
@ -606,7 +622,17 @@ void paymentPopup(BuildContext context, String toAddress) {
|
|||
maxLines: 1,
|
||||
textAlign: TextAlign.center,
|
||||
keyboardType: TextInputType.number,
|
||||
onChanged: (_) => setState(() {}),
|
||||
onChanged: (_) async {
|
||||
fees = await sub.txFees(
|
||||
defaultWallet.address!,
|
||||
toAddress,
|
||||
double.parse(
|
||||
walletViewProvider.payAmount.text == ''
|
||||
? '0'
|
||||
: walletViewProvider.payAmount.text));
|
||||
log.d(fees);
|
||||
setState(() {});
|
||||
},
|
||||
inputFormatters: <TextInputFormatter>[
|
||||
FilteringTextInputFormatter.deny(',',
|
||||
replacementString: '.'),
|
||||
|
|
|
@ -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.11+31
|
||||
version: 0.0.11+32
|
||||
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
|
Loading…
Reference in New Issue