callContractDirect method
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;
}