Skip to content

Commit 9ea7a09

Browse files
authored
Allow user callGasLimit 0.6 aa if > estimate (#64)
1 parent fd68d52 commit 9ea7a09

File tree

2 files changed

+8
-22
lines changed

2 files changed

+8
-22
lines changed

Thirdweb.Console/Program.cs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,7 @@
3939

4040
// var smartWallet06 = await SmartWallet.Create(personalWallet: privateKeyWallet, chainId: 421614, gasless: true, entryPoint: Constants.ENTRYPOINT_ADDRESS_V06);
4141

42-
// var receipt06 = await smartWallet06.ExecuteTransaction(
43-
// new ThirdwebTransactionInput()
44-
// {
45-
// To = await smartWallet06.GetAddress(),
46-
// Value = new HexBigInteger(BigInteger.Zero),
47-
// Data = "0x",
48-
// }
49-
// );
42+
// var receipt06 = await smartWallet06.ExecuteTransaction(new ThirdwebTransactionInput(chainId: 421614, to: await smartWallet06.GetAddress(), value: 0, data: "0x"));
5043

5144
// Console.WriteLine($"Receipt: {receipt06}");
5245

@@ -56,14 +49,7 @@
5649

5750
// var smartWallet07 = await SmartWallet.Create(personalWallet: privateKeyWallet, chainId: 421614, gasless: true, entryPoint: Constants.ENTRYPOINT_ADDRESS_V07);
5851

59-
// var receipt07 = await smartWallet07.ExecuteTransaction(
60-
// new ThirdwebTransactionInput()
61-
// {
62-
// To = await smartWallet07.GetAddress(),
63-
// Value = new HexBigInteger(BigInteger.Zero),
64-
// Data = "0x"
65-
// }
66-
// );
52+
// var receipt07 = await smartWallet07.ExecuteTransaction(new ThirdwebTransactionInput(chainId: 421614, to: await smartWallet07.GetAddress(), value: 0, data: "0x"));
6753

6854
// Console.WriteLine($"Receipt: {receipt07}");
6955

Thirdweb/Thirdweb.Wallets/SmartWallet/SmartWallet.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ private async Task<object> SignUserOp(ThirdwebTransactionInput transactionInput,
383383
// Estimate gas
384384

385385
var gasEstimates = await BundlerClient.EthEstimateUserOperationGas(this.Client, this._bundlerUrl, requestId, EncodeUserOperation(partialUserOp), this._entryPointContract.Address);
386-
partialUserOp.CallGasLimit = 50000 + new HexBigInteger(gasEstimates.CallGasLimit).Value;
386+
partialUserOp.CallGasLimit = Math.Max((long)(50000 + new HexBigInteger(gasEstimates.CallGasLimit).Value), (long?)transactionInput.Gas?.Value ?? 0);
387387
partialUserOp.VerificationGasLimit = new HexBigInteger(gasEstimates.VerificationGasLimit).Value;
388388
partialUserOp.PreVerificationGas = new HexBigInteger(gasEstimates.PreVerificationGas).Value;
389389

@@ -462,11 +462,11 @@ private async Task<object> SignUserOp(ThirdwebTransactionInput transactionInput,
462462
var res = await this.GetPaymasterAndData(requestId, EncodeUserOperation(partialUserOp), simulation);
463463
partialUserOp.Paymaster = res.Paymaster;
464464
partialUserOp.PaymasterData = res.PaymasterData?.HexToBytes() ?? Array.Empty<byte>();
465-
partialUserOp.PreVerificationGas = new HexBigInteger(res.PreVerificationGas ?? "0").Value;
466-
partialUserOp.VerificationGasLimit = new HexBigInteger(res.VerificationGasLimit ?? "0").Value;
467-
partialUserOp.CallGasLimit = new HexBigInteger(res.CallGasLimit ?? "0").Value;
468-
partialUserOp.PaymasterVerificationGasLimit = new HexBigInteger(res.PaymasterVerificationGasLimit ?? "0").Value;
469-
partialUserOp.PaymasterPostOpGasLimit = new HexBigInteger(res.PaymasterPostOpGasLimit ?? "0").Value;
465+
partialUserOp.PreVerificationGas = new HexBigInteger(res.PreVerificationGas ?? "0x0").Value;
466+
partialUserOp.VerificationGasLimit = new HexBigInteger(res.VerificationGasLimit ?? "0x0").Value;
467+
partialUserOp.CallGasLimit = new HexBigInteger(res.CallGasLimit ?? "0x0").Value;
468+
partialUserOp.PaymasterVerificationGasLimit = new HexBigInteger(res.PaymasterVerificationGasLimit ?? "0x0").Value;
469+
partialUserOp.PaymasterPostOpGasLimit = new HexBigInteger(res.PaymasterPostOpGasLimit ?? "0x0").Value;
470470
}
471471

472472
// Hash, sign and encode the user operation

0 commit comments

Comments
 (0)