callContractDirect method

Future<String?> callContractDirect({
  1. required String contractAddress,
  2. required String contractAbi,
  3. required String functionName,
  4. required List args,
  5. required String currentAddress,
  6. bool? useDefaultPaymaster,
  7. BigInt? gasPrice,
  8. BigInt? gasLimit,
})

Implementation

Future<String?> callContractDirect({
  required String contractAddress,
  required String contractAbi,
  required String functionName,
  required List<dynamic> args,
  required String currentAddress,
  bool? useDefaultPaymaster,
  BigInt? gasPrice,
  BigInt? gasLimit,
  // bool? useOctacorePaymaster,
}) async {
  final RPCResult res = await callContract(
      contractAddress: contractAddress,
      contractAbi: contractAbi,
      functionName: functionName,
      args: args,
      useDefaultPaymaster: useDefaultPaymaster ?? this.usePaymaster,
      currentAddress: currentAddress
      // useOctacorePaymaster: useOctacorePaymaster ?? false,
      );

  final String signature =
      await fetchPersonalSignature(res.userOpHash!, currentAddress);
  print(res.userOp!);
  var userOpHash = await sendSignedOp(
      signature, res.userOp!, useDefaultPaymaster ?? this.usePaymaster);
  // print(userOpHash);
  await Future.delayed(Duration(seconds: 10));
  await getUserOpTransactionHash(userOpHash);
  return "userOpHash";

  // int validUntil = 0;
  // // get current time in unix
  // int validAfter = DateTime.now().millisecondsSinceEpoch;
  // var x = await submitUseropToOctacore(signature, res.userOp!,
  //     useDefaultPaymaster ?? this.usePaymaster, validUntil, validAfter);
  // if (x!.statusCode == 200) {
  //   // decopde response body to json
  //   var y = jsonDecode(x.body);
  //   String userOpHash = y["user_op_hash"];
  //   print(userOpHash);
  // }

  // // var userOpHash = userOpResult!["result"];
  // // sleep for 5 seconds
  // await Future.delayed(Duration(seconds: 5));
  // await getUserOpTransactionHash(userOpHash);
  // return userOpHash;
}