diff --git a/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts b/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts index 586c202a0e8..e460d73f72b 100644 --- a/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts +++ b/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts @@ -39,31 +39,26 @@ describe('entryPointVersion: 0.7', async () => { const [account, account_2, account_3] = await getSmartAccounts_07() test('default', async () => { - expect( - await estimateUserOperationGas(bundlerClient, { - account, - calls: [ - { - to: '0x0000000000000000000000000000000000000000', - value: parseEther('1'), - }, - { - to: wagmiContractConfig.address, - abi: wagmiContractConfig.abi, - functionName: 'mint', - }, - ], - ...fees, - }), - ).toMatchInlineSnapshot(` - { - "callGasLimit": 141653n, - "paymasterPostOpGasLimit": 0n, - "paymasterVerificationGasLimit": 0n, - "preVerificationGas": 53438n, - "verificationGasLimit": 259350n, - } - `) + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + expect(gas.callGasLimit).toBeGreaterThanOrEqual(141600n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53400n) + expect(gas.paymasterVerificationGasLimit).toBe(0n) + expect(gas.paymasterPostOpGasLimit).toBe(0n) }) test('args: paymaster (client)', async () => { @@ -74,32 +69,28 @@ describe('entryPointVersion: 0.7', async () => { transport: http(server.url), }) - expect( - await estimateUserOperationGas(bundlerClient, { - account, - calls: [ - { - to: '0x0000000000000000000000000000000000000000', - value: parseEther('1'), - }, - { - to: wagmiContractConfig.address, - abi: wagmiContractConfig.abi, - functionName: 'mint', - }, - ], - paymaster: paymasterClient, - ...fees, - }), - ).toMatchInlineSnapshot(` - { - "callGasLimit": 141653n, - "paymasterPostOpGasLimit": 1n, - "paymasterVerificationGasLimit": 20150n, - "preVerificationGas": 59826n, - "verificationGasLimit": 237672n, - } - `) + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: paymasterClient, + ...fees, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(141600n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53400n) + expect(gas.paymasterVerificationGasLimit).toBe(20150n) + expect(gas.paymasterPostOpGasLimit).toBe(1n) }) test('behavior: client.paymaster (client)', async () => { @@ -114,31 +105,27 @@ describe('entryPointVersion: 0.7', async () => { paymaster: paymasterClient, }) - expect( - await estimateUserOperationGas(bundlerClient, { - account, - calls: [ - { - to: '0x0000000000000000000000000000000000000000', - value: parseEther('1'), - }, - { - to: wagmiContractConfig.address, - abi: wagmiContractConfig.abi, - functionName: 'mint', - }, - ], - ...fees, - }), - ).toMatchInlineSnapshot(` - { - "callGasLimit": 141653n, - "paymasterPostOpGasLimit": 1n, - "paymasterVerificationGasLimit": 20150n, - "preVerificationGas": 59826n, - "verificationGasLimit": 237672n, - } - `) + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(141600n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53400n) + expect(gas.paymasterVerificationGasLimit).toBe(20150n) + expect(gas.paymasterPostOpGasLimit).toBe(1n) }) test('behavior: prepared user operation', async () => { @@ -158,20 +145,16 @@ describe('entryPointVersion: 0.7', async () => { expectTypeOf(request).toMatchTypeOf() - expect( - await estimateUserOperationGas(bundlerClient, { - ...request, - entryPointAddress: account.entryPoint?.address, - }), - ).toMatchInlineSnapshot(` - { - "callGasLimit": 80000n, - "paymasterPostOpGasLimit": 0n, - "paymasterVerificationGasLimit": 0n, - "preVerificationGas": 51722n, - "verificationGasLimit": 259060n, - } - `) + const gas = await estimateUserOperationGas(bundlerClient, { + ...request, + entryPointAddress: account.entryPoint?.address, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(80000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(51000n) + expect(gas.paymasterVerificationGasLimit).toBe(0n) + expect(gas.paymasterPostOpGasLimit).toBe(0n) }) test('error: insufficient funds', async () => { diff --git a/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts b/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts index 1a6792ff1b8..e8977f2be1c 100644 --- a/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts +++ b/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts @@ -38,7 +38,13 @@ describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() test('default', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -54,18 +60,13 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, "maxPriorityFeePerGas": 2000000000n, "nonce": 30902162761021348478818713600000n, "paymasterPostOpGasLimit": 0n, @@ -73,31 +74,31 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 53438n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259350n, } `) }) test('args: callData', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, callData: '0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000', ...fees, }) - expect({ - ...request, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, "maxPriorityFeePerGas": 2000000000n, "nonce": 30902162761039795222892423151616n, "paymasterPostOpGasLimit": 0n, @@ -105,82 +106,90 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 51642n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259060n, } `) }) test('args: parameters (no factory)', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [{ to: '0x0000000000000000000000000000000000000000' }], parameters: ['gas', 'nonce'], ...fees, }) - expect({ ...request, account: undefined }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, - "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, "nonce": 30902162761058241966966132703232n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51642n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", - "verificationGasLimit": 259060n, } `) }) test('args: parameters (no nonce)', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [{ to: '0x0000000000000000000000000000000000000000' }], parameters: ['gas', 'factory'], ...fees, }) - expect({ ...request, account: undefined }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51642n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", - "verificationGasLimit": 259060n, } `) }) test('args: nonce', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [{ to: '0x0000000000000000000000000000000000000000' }], nonce: 0n, ...fees, }) - expect({ - ...request, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, "maxPriorityFeePerGas": 2000000000n, "nonce": 0n, "paymasterPostOpGasLimit": 0n, @@ -188,91 +197,104 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 51642n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259060n, } `) }) test('args: fees', async () => { - const request = await prepareUserOperation(bundlerClient, { - account, - calls: [{ to: '0x0000000000000000000000000000000000000000' }], - maxFeePerGas: 2n, - maxPriorityFeePerGas: 1n, - }) - - expect({ ...request, account: undefined }).toMatchInlineSnapshot(` - { - "account": undefined, - "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, - "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", - "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": 2n, - "maxPriorityFeePerGas": 1n, - "nonce": 30902162761095135455113551806464n, - "paymasterPostOpGasLimit": 0n, - "paymasterVerificationGasLimit": 0n, - "preVerificationGas": 51642n, - "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", - "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259060n, - } - `) - - const request_2 = await prepareUserOperation(bundlerClient, { - account, - calls: [{ to: '0x0000000000000000000000000000000000000000' }], - maxFeePerGas: 2n, - }) + { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxFeePerGas: 2n, + maxPriorityFeePerGas: 1n, + }) - expect({ ...request_2, account: undefined }).toMatchInlineSnapshot(` - { - "account": undefined, - "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, - "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", - "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": 2n, - "maxPriorityFeePerGas": 2000000000n, - "nonce": 30902162761113582199187261358080n, - "paymasterPostOpGasLimit": 0n, - "paymasterVerificationGasLimit": 0n, - "preVerificationGas": 51642n, - "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", - "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259060n, - } - `) + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` + { + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", + "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": 2n, + "maxPriorityFeePerGas": 1n, + "nonce": 30902162761095135455113551806464n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 51642n, + "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } + + { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxFeePerGas: 2n, + }) - const request_3 = await prepareUserOperation(bundlerClient, { - account, - calls: [{ to: '0x0000000000000000000000000000000000000000' }], - maxPriorityFeePerGas: 2n, - }) + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` + { + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", + "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": 2n, + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761113582199187261358080n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 51642n, + "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } + + { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxPriorityFeePerGas: 2n, + }) - expect({ - ...request_3, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` - { - "account": undefined, - "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, - "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", - "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, - "maxPriorityFeePerGas": 2n, - "nonce": 30902162761132028943260970909696n, - "paymasterPostOpGasLimit": 0n, - "paymasterVerificationGasLimit": 0n, - "preVerificationGas": 51642n, - "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", - "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259060n, - } - `) + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` + { + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", + "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": 12981795944n, + "maxPriorityFeePerGas": 2n, + "nonce": 30902162761132028943260970909696n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 51642n, + "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } }) test('args: paymaster (address)', async () => { @@ -329,7 +351,12 @@ describe('entryPointVersion: 0.7', async () => { client, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -346,14 +373,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -366,7 +390,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -418,7 +441,12 @@ describe('entryPointVersion: 0.7', async () => { client, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -439,14 +467,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -459,7 +484,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -476,7 +500,12 @@ describe('entryPointVersion: 0.7', async () => { client, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -500,14 +529,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -520,7 +546,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -537,7 +562,12 @@ describe('entryPointVersion: 0.7', async () => { client, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -555,14 +585,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -575,13 +602,18 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) test('args: signature', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -598,18 +630,13 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, "maxPriorityFeePerGas": 2000000000n, "nonce": 30902162761279602895850647322624n, "paymasterPostOpGasLimit": 0n, @@ -617,13 +644,17 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 51246n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xdeadbeef", - "verificationGasLimit": 254502n, } `) }) test('behavior: account.userOperation.estimateGas', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account: { ...account, userOperation: { @@ -646,14 +677,10 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -664,7 +691,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 53438n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 1000000n, } `) }) @@ -760,7 +786,12 @@ describe('entryPointVersion: 0.7', async () => { }, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -775,14 +806,11 @@ describe('entryPointVersion: 0.7', async () => { ], }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(259000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 3000000n, @@ -793,7 +821,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 53438n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 259350n, } `) }) @@ -836,7 +863,12 @@ describe('entryPointVersion: 0.7', async () => { paymaster: paymasterClient, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -852,14 +884,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -872,7 +901,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -894,7 +922,12 @@ describe('entryPointVersion: 0.7', async () => { }, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -910,14 +943,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -930,7 +960,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -955,7 +984,12 @@ describe('entryPointVersion: 0.7', async () => { }, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -971,14 +1005,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -991,7 +1022,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -1010,7 +1040,12 @@ describe('entryPointVersion: 0.7', async () => { paymasterContext: { validUntil: 3735928600 }, }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [ { @@ -1026,14 +1061,11 @@ describe('entryPointVersion: 0.7', async () => { ...fees, }) - expect({ - ...request, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(141000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(237000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "callGasLimit": 141653n, "factory": "0xfb6dab6200b8958c2655c3747708f82243d3f32e", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, @@ -1046,7 +1078,6 @@ describe('entryPointVersion: 0.7', async () => { "preVerificationGas": 59826n, "sender": "0xE911628bF8428C23f179a07b081325cAe376DE1f", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 237672n, } `) }) @@ -1071,22 +1102,23 @@ describe('entryPointVersion: 0.6', async () => { const [account] = await getSmartAccounts_06() test('default', async () => { - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [{ to: '0x0000000000000000000000000000000000000000' }], ...fees, }) - expect({ - ...request, - maxFeePerGas: undefined, - account: undefined, - }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(258000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, "initCode": "0xabebe9a2d62af9a89e86eb208b51321e748640c3f14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": undefined, "maxPriorityFeePerGas": 2000000000n, "nonce": 30902162761021348478818713600000n, "paymasterAndData": "0x", @@ -1095,7 +1127,6 @@ describe('entryPointVersion: 0.6', async () => { "preVerificationGas": 55154n, "sender": "0x6edf7db791fC4D438D4A683E857B2fE1a84947Ce", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", - "verificationGasLimit": 258801n, } `) }) @@ -1109,17 +1140,22 @@ describe('entryPointVersion: 0.6', async () => { }) await mine(client, { blocks: 1 }) - const request = await prepareUserOperation(bundlerClient, { + const { + account: _, + callGasLimit, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { account, calls: [{ to: '0x0000000000000000000000000000000000000000' }], parameters: ['gas', 'nonce'], ...fees, }) - expect({ ...request, account: undefined }).toMatchInlineSnapshot(` + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(113000n) + expect(request).toMatchInlineSnapshot(` { - "account": undefined, "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "callGasLimit": 80000n, "initCode": "0x", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, @@ -1129,7 +1165,6 @@ describe('entryPointVersion: 0.6', async () => { "paymasterVerificationGasLimit": undefined, "preVerificationGas": 54124n, "sender": "0x6edf7db791fC4D438D4A683E857B2fE1a84947Ce", - "verificationGasLimit": 113517n, } `) })