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();
|
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 //////
|
////// 3: SUBSTRATE CONNECTION //////
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
|
@ -714,7 +727,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
txOptions = [destAddress, false];
|
txOptions = [destAddress, false];
|
||||||
tx2 = 'api.tx.balances.transferAll("$destAddress", false)';
|
tx2 = 'api.tx.balances.transferAll("$destAddress", false)';
|
||||||
} else {
|
} else {
|
||||||
int amountUnit;
|
late int amountUnit;
|
||||||
if (isUdUnit) {
|
if (isUdUnit) {
|
||||||
palette = 'universalDividend';
|
palette = 'universalDividend';
|
||||||
call = 'transferUd';
|
call = 'transferUd';
|
||||||
|
|
|
@ -452,6 +452,8 @@ void paymentPopup(BuildContext context, String toAddress) {
|
||||||
isScrollControlled: true,
|
isScrollControlled: true,
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
|
final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
|
||||||
|
double fees = 0;
|
||||||
return StatefulBuilder(
|
return StatefulBuilder(
|
||||||
builder: (BuildContext context, StateSetter setState) {
|
builder: (BuildContext context, StateSetter setState) {
|
||||||
if (walletViewProvider.payAmount.text != '' &&
|
if (walletViewProvider.payAmount.text != '' &&
|
||||||
|
@ -588,12 +590,26 @@ void paymentPopup(BuildContext context, String toAddress) {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Text(
|
Row(
|
||||||
'amount'.tr(),
|
children: [
|
||||||
style: TextStyle(
|
Text(
|
||||||
fontSize: 19,
|
'amount'.tr(),
|
||||||
fontWeight: FontWeight.w500,
|
style: TextStyle(
|
||||||
color: Colors.grey[600]),
|
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),
|
const SizedBox(height: 10),
|
||||||
TextField(
|
TextField(
|
||||||
|
@ -606,7 +622,17 @@ void paymentPopup(BuildContext context, String toAddress) {
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
keyboardType: TextInputType.number,
|
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>[
|
inputFormatters: <TextInputFormatter>[
|
||||||
FilteringTextInputFormatter.deny(',',
|
FilteringTextInputFormatter.deny(',',
|
||||||
replacementString: '.'),
|
replacementString: '.'),
|
||||||
|
|
|
@ -5,7 +5,7 @@ description: Pay with G1.
|
||||||
# pub.dev using `pub publish`. This is preferred for private packages.
|
# 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
|
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:
|
environment:
|
||||||
sdk: '>=2.12.0 <3.0.0'
|
sdk: '>=2.12.0 <3.0.0'
|
||||||
|
|
Loading…
Reference in New Issue