decreaseAllowance method
Future<String>
decreaseAllowance(
- dynamic ownerPrivateKey,
- dynamic contract_Add,
- dynamic spender_Add,
- dynamic value_,
Decrease Allowance Method Decrease the amount of tokens that an owner allowed to a spender. ownerPrivateKey : Owner Private key contract_Add : Token Address for which , allownce need to to decrease. spender_Add : The address which will spend the funds. value : The amount of tokens to increase the allowance by. ownAddress : Owner Address
Implementation
Future<String> decreaseAllowance(
ownerPrivateKey, contract_Add, spender_Add, value_) async {
final String privateKey = ownerPrivateKey;
final credentials = await EthPrivateKey.fromHex(privateKey);
final ownAddress = await credentials.extractAddress();
final EthereumAddress contractAddr = EthereumAddress.fromHex(contract_Add);
final contract = DeployedContract(
ContractAbi.fromJson(abiString, 'XRC20'), contractAddr);
final tokenAllowance = contract.function('allowance');
final EthereumAddress spender = EthereumAddress.fromHex(spender_Add);
final decrease = await client.call(
contract: contract,
function: tokenAllowance,
params: [ownAddress, spender]);
var decrease_amount = decrease[0];
var amount = decrease_amount - value_;
final tokenApprovedecrease = contract.function('approve');
final decreasedAllowance = await Transaction.callContract(
contract: contract,
function: tokenApprovedecrease,
parameters: [spender, amount]);
final decreasedAllowances = await client.sendTransaction(
credentials, decreasedAllowance,
chainId: null, fetchChainIdFromNetworkId: true);
return '$decreasedAllowances';
}