decreaseAllowance method

Future<String> decreaseAllowance(
  1. dynamic ownerPrivateKey,
  2. dynamic contract_Add,
  3. dynamic spender_Add,
  4. 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';
}