getContractEncodedDataHex method

Future<String> getContractEncodedDataHex({
  1. required String contractAbi,
  2. required String functionName,
  3. required List args,
  4. BigInt? gasPrice,
  5. BigInt? gasLimit,
})

Implementation

Future<String> getContractEncodedDataHex({
  required String contractAbi,
  required String functionName,
  required List<dynamic> args,
  BigInt? gasPrice,
  BigInt? gasLimit,
}) async {
  var contractToInteract = DeployedContract(
      ContractAbi.fromJson(contractAbi, randomAddress),
      EthereumAddress.fromHex(randomAddress));
  var func = contractToInteract.function(functionName);
  var encodedData = func.encodeCall(args);
  var encodedDataHex = '0x' + hex.encode(encodedData);
  //TODO: check 0x required or not in metamask
  return encodedDataHex;
}