getUserOpEncodedDataAsString method

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

Implementation

Future<String> getUserOpEncodedDataAsString({
  required String contractAddress,
  required String contractAbi,
  required String functionName,
  required List<dynamic> args,
  // required bool usePaymaster,
  BigInt? gasPrice,
  BigInt? gasLimit,
}) async {
  Uint8List encodedData = await Encoder().getContractEncodedDataBytes(
    args: args,
    contractAbi: contractAbi,
    functionName: functionName,
  );
  // uint8 list encoded data to hex
  var encodedDataHex = '0x' + hex.encode(encodedData);
  // print("encoded data for calling contract function:");
  // print(encodedDataHex);
  var executeFunc = this.deployedContract.function('execute');
  var params = [
    EthereumAddress.fromHex(contractAddress),
    BigInt.zero,
    Uint8List.fromList(encodedData),
  ];
  var encodedParams = executeFunc.encodeCall(params);
  var encodedParamsHex = '0x' + hex.encode(encodedParams);
  return encodedParamsHex;
}