diff --git a/packages/tfchain_client/lib/src/balances.dart b/packages/tfchain_client/lib/src/balances.dart index 7fc241e..4ecce54 100644 --- a/packages/tfchain_client/lib/src/balances.dart +++ b/packages/tfchain_client/lib/src/balances.dart @@ -21,8 +21,8 @@ class Balances extends QueryBalances { final Client client; Future transfer( - {required String address, required BigInt amount}) async { - if (amount <= BigInt.zero) { + {required String address, required double amount}) async { + if (amount <= 0) { throw Exception("Amount must be a positive numeric value"); } @@ -30,8 +30,12 @@ class Balances extends QueryBalances { final publicKey = keyring.decodeAddress(address); MultiAddress multiAddress = Id(publicKey); + final scaleFactor = BigInt.from(10).pow(7); + final scaledAmount = (amount * scaleFactor.toDouble()).round(); + final bigIntAmount = BigInt.from(scaledAmount); + final extrinsic = client.api.tx.balances - .transfer(dest: multiAddress, value: amount * BigInt.from(10).pow(7)); + .transfer(dest: multiAddress, value: bigIntAmount); await client.apply(extrinsic); }