feat: add wallet error support for coinbase and metamask wallets #3758
Annotations
10 errors and 1 warning
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
Unit Test:
.vitest/src/paymaster/base.ts#L119
ContractFunctionExecutionError: The contract function "deposit" reverted.
Contract Call:
address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83
function: deposit()
sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1
Docs: https://viem.sh/docs/contract/writeContract
Version: 2.20.0
❯ getContractError ../../node_modules/viem/utils/errors/getContractError.ts:72:10
❯ writeContract ../../node_modules/viem/actions/wallet/writeContract.ts:208:11
❯ Object.deployPaymasterContract ../../.vitest/src/paymaster/base.ts:119:7
❯ ../../.vitest/setupTests.ts:21:3
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/writeContract', metaMessages: [ 'Contract Call:', ' address: 0xDF4C7a1DF1B294b0319F8b97CE0e4Fdc7A3c4D83\n function: deposit()\n sender: 0x5993Ad310b285D03286C8bb27BD17f9E445710a1' ], shortMessage: 'The contract function "deposit" reverted.', version: '2.20.0', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'addStake', inputs: [ { name: 'unstakeDelaySec', type: 'uint32', internalType: 'uint32' } ], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'deposit', inputs: [], outputs: [], stateMutability: 'payable' }, { type: 'function', name: 'entryPoint', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'contract IEntryPoint' } ], stateMutability: 'view' }, { type: 'function', name: 'getDeposit', inputs: [], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'getHash', inputs: [ { name: 'userOp', type: 'tuple', internalType: 'struct UserOperation', components: [ { name: 'sender', type: 'address', internalType: 'address' }, { name: 'nonce', type: 'uint256', internalType: 'uint256' }, { name: 'initCode', type: 'bytes', internalType: 'bytes' }, { name: 'callData', type: 'bytes', internalType: 'bytes' }, { name: 'callGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'verificationGasLimit', type: 'uint256', internalType: 'uint256' }, { name: 'preVerificationGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'maxPriorityFeePerGas', type: 'uint256', internalType: 'uint256' }, { name: 'paymasterAndData', type: 'bytes', internalType: 'bytes' }, { name: 'signature', type: 'bytes', internalType: 'bytes' } ] }, { name: 'sigTimeRange', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: '', type: 'bytes32', internalType: 'bytes32' } ], stateMutability: 'view' }, { type: 'function', name: 'initialize', inputs: [ { name: '_entryPoint', type: 'address', internalType: 'address' }, { name: '_verifyingSigner', type: 'address', internalType: 'address' }, { name: '_owner', type: 'address', internalType: 'address' }, { name: '_pauser', type: 'address', internalType: 'address' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'owner', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'packValidationData', inputs: [ { name: 'sigFailed', type: 'bool', internalType: 'bool' }, { name: 'validUntil', type: 'uint48', internalType: 'uint48' }, { name: 'validAfter', type: 'uint48', internalType: 'uint48' } ], outputs: [ { name: '', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'pure' }, { type: 'function', name: 'pause', inputs: [], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'pauser', inputs: [], outputs: [ { name: '', type: 'address', internalType: 'address' } ], stateMutability: 'view' }, { type: 'function', name: 'postOp', inputs: [ { name: 'mode', type: 'uint8', internalType: 'enum IPaymaster.PostOpMode' }, { name: 'context', type: 'bytes', internalType: 'bytes' }, { name: 'actualGasCost', type: 'uint256', internalType: 'uint256' } ], outputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'proxiableUUID', inputs: [], outputs: [ { name: '', type: 'bytes32', internal
|
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Loading