@owlprotocol/contracts-account-abstraction
Version:
ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.
238 lines (235 loc) • 29.3 kB
text/typescript
import { Hex, Address } from "viem";
export const _constructor = {
inputs: [
{ internalType: "contract IEntryPoint", name: "_entryPoint", type: "address" },
{ internalType: "address", name: "_verifyingSigner", type: "address" },
],
stateMutability: "nonpayable",
type: "constructor",
} as const;
export const ECDSAInvalidSignature = { inputs: [], name: "ECDSAInvalidSignature", type: "error" } as const;
export const ECDSAInvalidSignatureLength = {
inputs: [{ internalType: "uint256", name: "length", type: "uint256" }],
name: "ECDSAInvalidSignatureLength",
type: "error",
} as const;
export const ECDSAInvalidSignatureS = {
inputs: [{ internalType: "bytes32", name: "s", type: "bytes32" }],
name: "ECDSAInvalidSignatureS",
type: "error",
} as const;
export const OwnableInvalidOwner = {
inputs: [{ internalType: "address", name: "owner", type: "address" }],
name: "OwnableInvalidOwner",
type: "error",
} as const;
export const OwnableUnauthorizedAccount = {
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "OwnableUnauthorizedAccount",
type: "error",
} as const;
export const OwnershipTransferred = {
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "previousOwner", type: "address" },
{ indexed: true, internalType: "address", name: "newOwner", type: "address" },
],
name: "OwnershipTransferred",
type: "event",
} as const;
export const addStake = {
inputs: [{ internalType: "uint32", name: "unstakeDelaySec", type: "uint32" }],
name: "addStake",
outputs: [],
stateMutability: "payable",
type: "function",
} as const;
export const deposit = {
inputs: [],
name: "deposit",
outputs: [],
stateMutability: "payable",
type: "function",
} as const;
export const entryPoint = {
inputs: [],
name: "entryPoint",
outputs: [{ internalType: "contract IEntryPoint", name: "", type: "address" }],
stateMutability: "view",
type: "function",
} as const;
export const getDeposit = {
inputs: [],
name: "getDeposit",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
} as const;
export const getHash = {
inputs: [
{
components: [
{ internalType: "address", name: "sender", type: "address" },
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "bytes", name: "initCode", type: "bytes" },
{ internalType: "bytes", name: "callData", type: "bytes" },
{ internalType: "bytes32", name: "accountGasLimits", type: "bytes32" },
{ internalType: "uint256", name: "preVerificationGas", type: "uint256" },
{ internalType: "bytes32", name: "gasFees", type: "bytes32" },
{ internalType: "bytes", name: "paymasterAndData", type: "bytes" },
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct PackedUserOperation",
name: "userOp",
type: "tuple",
},
{ internalType: "uint48", name: "validUntil", type: "uint48" },
{ internalType: "uint48", name: "validAfter", type: "uint48" },
],
name: "getHash",
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
stateMutability: "view",
type: "function",
} as const;
export const owner = {
inputs: [],
name: "owner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
} as const;
export const parsePaymasterAndData = {
inputs: [{ internalType: "bytes", name: "paymasterAndData", type: "bytes" }],
name: "parsePaymasterAndData",
outputs: [
{ internalType: "uint48", name: "validUntil", type: "uint48" },
{ internalType: "uint48", name: "validAfter", type: "uint48" },
{ internalType: "bytes", name: "signature", type: "bytes" },
],
stateMutability: "pure",
type: "function",
} as const;
export const postOp = {
inputs: [
{ internalType: "enum IPaymaster.PostOpMode", name: "mode", type: "uint8" },
{ internalType: "bytes", name: "context", type: "bytes" },
{ internalType: "uint256", name: "actualGasCost", type: "uint256" },
{ internalType: "uint256", name: "actualUserOpFeePerGas", type: "uint256" },
],
name: "postOp",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const renounceOwnership = {
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const transferOwnership = {
inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const unlockStake = {
inputs: [],
name: "unlockStake",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const validatePaymasterUserOp = {
inputs: [
{
components: [
{ internalType: "address", name: "sender", type: "address" },
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "bytes", name: "initCode", type: "bytes" },
{ internalType: "bytes", name: "callData", type: "bytes" },
{ internalType: "bytes32", name: "accountGasLimits", type: "bytes32" },
{ internalType: "uint256", name: "preVerificationGas", type: "uint256" },
{ internalType: "bytes32", name: "gasFees", type: "bytes32" },
{ internalType: "bytes", name: "paymasterAndData", type: "bytes" },
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct PackedUserOperation",
name: "userOp",
type: "tuple",
},
{ internalType: "bytes32", name: "userOpHash", type: "bytes32" },
{ internalType: "uint256", name: "maxCost", type: "uint256" },
],
name: "validatePaymasterUserOp",
outputs: [
{ internalType: "bytes", name: "context", type: "bytes" },
{ internalType: "uint256", name: "validationData", type: "uint256" },
],
stateMutability: "nonpayable",
type: "function",
} as const;
export const verifyingSigner = {
inputs: [],
name: "verifyingSigner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
} as const;
export const withdrawStake = {
inputs: [{ internalType: "address payable", name: "withdrawAddress", type: "address" }],
name: "withdrawStake",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const withdrawTo = {
inputs: [
{ internalType: "address payable", name: "withdrawAddress", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
name: "withdrawTo",
outputs: [],
stateMutability: "nonpayable",
type: "function",
} as const;
export const functions = [
_constructor,
addStake,
deposit,
entryPoint,
getDeposit,
getHash,
owner,
parsePaymasterAndData,
postOp,
renounceOwnership,
transferOwnership,
unlockStake,
validatePaymasterUserOp,
verifyingSigner,
withdrawStake,
withdrawTo,
] as const;
export const events = [OwnershipTransferred] as const;
export const errors = [
ECDSAInvalidSignature,
ECDSAInvalidSignatureLength,
ECDSAInvalidSignatureS,
OwnableInvalidOwner,
OwnableUnauthorizedAccount,
] as const;
export const abi = [...functions, ...events, ...errors] as const;
export const bytecode =
"0x60c060409080825234620001e5578181620015988038038091620000248285620001ea565b833981010312620001e55780516001600160a01b0391828216808303620001e557602080920151938085168503620001e5573315620001cd5760008054336001600160a01b031982168117835588519492938693869360249385939091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08880a36301ffc9a760e01b825263122a0e9b60e31b60048301525afa918215620001c157819262000179575b50501562000136575060805260a0525161137390816200022582396080518181816101fb01528181610304015281816103da0152818161049b0152818161054c01528181610a0f01528181610adf0152610ef5015260a05181818161099201526110120152f35b60649084519062461bcd60e51b82526004820152601e60248201527f49456e747279506f696e7420696e74657266616365206d69736d6174636800006044820152fd5b9091508281813d8311620001b9575b620001948183620001ea565b81010312620001b55751908115158203620001b257503880620000cf565b80fd5b5080fd5b503d62000188565b508551903d90823e3d90fd5b8551631e4fbdf760e01b815260006004820152602490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200020e57604052565b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001457600080fd5b600091823560e01c80630396cb6014610a8457838163205c2878146109b65750806323d9ac9b1461094757806352b7512c146108695780635829c5f5146107de578063715018a6146107415780637c627b211461067f5780638da5cb5b1461062e57806394d4ad6014610574578063b0d691fe1461050157838163bb9fe6bf1461044b578163c23a5cea1461038057508063c399ec881461028d57838163d0e30db0146101b8575063f2fde38b146100cb57600080fd5b346101b45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b45781359173ffffffffffffffffffffffffffffffffffffffff918284168094036101b057610125610e8d565b8315610181575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b908460249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b8480fd5b8280fd5b808484827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102895773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b1561028457839060248351809581937fb760faf9000000000000000000000000000000000000000000000000000000008352309083015234905af190811561027b57506102685750f35b61027190610bbb565b6102785780f35b80fd5b513d84823e3d90fd5b505050fd5b5050fd5b50346101b457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b4578051917f70a08231000000000000000000000000000000000000000000000000000000008352309083015260208260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561037657839261033e575b6020838351908152f35b9091506020813d60201161036e575b8161035a60209383610c1a565b810103126101b45760209250519038610334565b3d915061034d565b81513d85823e3d90fd5b808484346102895760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610289576103ba610b57565b6103c2610e8d565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016803b1561044757859283602492865197889586947fc23a5cea00000000000000000000000000000000000000000000000000000000865216908401525af190811561027b57506102685750f35b8580fd5b8084843461028957827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028957610484610e8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b1561028457839283918351809581937fbb9fe6bf0000000000000000000000000000000000000000000000000000000083525af190811561027b57506102685750f35b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610570576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b509190346105705760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057057803567ffffffffffffffff81116101b457601f60606105f56105ef608096957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095369101610b8d565b90610e09565b9389859398949a519a8b9965ffffffffffff8092168b521660208a01528801528160608801528787013785828601015201168101030190f35b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105705773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b5091346102785760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027857600382351015610278576024359067ffffffffffffffff821161027857506064926106e060209236908501610b8d565b50506106ea610ede565b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600d60248201527f6d757374206f76657272696465000000000000000000000000000000000000006044820152fd5b833461027857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027857610778610e8d565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5090346101b4577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc926060843601126102785781359367ffffffffffffffff851161057057610120908536030112610278575065ffffffffffff60243581811681036108645760443591821682036108645760209461085d9301610d11565b9051908152f35b600080fd5b508234610278576060927ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906060823601126101b45780359167ffffffffffffffff8311610943576101209083360301126101b4576108d3849286926108cd610ede565b01610f7b565b9093835194859385855281518096860152825b86811061092c57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f926060809787010152602085015201168101030190f35b6020838201810151898301840152889650016108e6565b8380fd5b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610570576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8084843461028957807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610289576109ef610b57565b6109f7610e8d565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016803b1561044757859283604492865197889586947f205c2878000000000000000000000000000000000000000000000000000000008652169084015260243560248401525af190811561027b57506102685750f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b45782823563ffffffff811680910361057057610ac8610e8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001693843b156101b457602490845195869384927f0396cb6000000000000000000000000000000000000000000000000000000000845283015234905af190811561027b5750610b4b575080f35b610b5490610bbb565b80f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361086457565b359065ffffffffffff8216820361086457565b9181601f840112156108645782359167ffffffffffffffff8311610864576020838186019501011161086457565b67ffffffffffffffff8111610bcf57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff821117610bcf57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610bcf57604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610864570180359067ffffffffffffffff82116108645760200191813603831361086457565b92919267ffffffffffffffff8211610bcf5760405191610cf460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c1a565b829481845281830111610864578281602093846000960137010152565b9091610d2a610d236040840184610c5b565b3691610cac565b6020815191012092610d42610d236060850185610c5b565b6020815191012092610d5760e0820182610c5b565b60349291921161086457601460c09260405196602088019873ffffffffffffffffffffffffffffffffffffffff8535168a52602085013560408a015260608901526080880152608083013560a088015201358286015260a081013560e08601520135610100840152466101208401523061014084015265ffffffffffff80911661016084015261018091168183015281526101a0810181811067ffffffffffffffff821117610bcf5760405251902090565b9190806034116108645760407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc8483810103011261086457610e4d60348401610b7a565b91610e5a60548501610b7a565b92938260741161086457607401917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c0190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610eae57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610f1d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152fd5b90610f8c6105ef60e0840184610c5b565b604081969396148015611173575b156110ef57610fe8610fee92610fb48887610ff797610d11565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c600020923691610cac565b9061117d565b909291926111b9565b73ffffffffffffffffffffffffffffffffffffffff809116907f000000000000000000000000000000000000000000000000000000000000000016036110915779ffffffffffff00000000000000000000000000000000000000007fffffffffffff000000000000000000000000000000000000000000000000000060405161107f81610bfe565b600081529460d01b169160a01b161790565b60019079ffffffffffff00000000000000000000000000000000000000007fffffffffffff00000000000000000000000000000000000000000000000000006040516110dc81610bfe565b600081529560d01b169160a01b16171790565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604060248201527f566572696679696e675061796d61737465723a20696e76616c6964207369676e60448201527f6174757265206c656e67746820696e207061796d6173746572416e64446174616064820152fd5b5060418114610f9a565b81519190604183036111ae576111a792506020820151906060604084015193015160001a906112a0565b9192909190565b505060009160029190565b600481101561127157806111cb575050565b600181036111fd5760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b6002810361123657602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b6003146112405750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161133157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561132557805173ffffffffffffffffffffffffffffffffffffffff81161561131c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fea26469706673582212204813be1a24d91615c67283633df5462f1e8d45e62d226cbe4e761e0a6932a62064736f6c63430008170033" as Hex;
export const deployedBytecode =
"0x60406080815260048036101561001457600080fd5b600091823560e01c80630396cb6014610a8457838163205c2878146109b65750806323d9ac9b1461094757806352b7512c146108695780635829c5f5146107de578063715018a6146107415780637c627b211461067f5780638da5cb5b1461062e57806394d4ad6014610574578063b0d691fe1461050157838163bb9fe6bf1461044b578163c23a5cea1461038057508063c399ec881461028d57838163d0e30db0146101b8575063f2fde38b146100cb57600080fd5b346101b45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b45781359173ffffffffffffffffffffffffffffffffffffffff918284168094036101b057610125610e8d565b8315610181575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b908460249251917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b8480fd5b8280fd5b808484827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102895773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b1561028457839060248351809581937fb760faf9000000000000000000000000000000000000000000000000000000008352309083015234905af190811561027b57506102685750f35b61027190610bbb565b6102785780f35b80fd5b513d84823e3d90fd5b505050fd5b5050fd5b50346101b457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b4578051917f70a08231000000000000000000000000000000000000000000000000000000008352309083015260208260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561037657839261033e575b6020838351908152f35b9091506020813d60201161036e575b8161035a60209383610c1a565b810103126101b45760209250519038610334565b3d915061034d565b81513d85823e3d90fd5b808484346102895760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610289576103ba610b57565b6103c2610e8d565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016803b1561044757859283602492865197889586947fc23a5cea00000000000000000000000000000000000000000000000000000000865216908401525af190811561027b57506102685750f35b8580fd5b8084843461028957827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028957610484610e8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b1561028457839283918351809581937fbb9fe6bf0000000000000000000000000000000000000000000000000000000083525af190811561027b57506102685750f35b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610570576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b509190346105705760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261057057803567ffffffffffffffff81116101b457601f60606105f56105ef608096957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095369101610b8d565b90610e09565b9389859398949a519a8b9965ffffffffffff8092168b521660208a01528801528160608801528787013785828601015201168101030190f35b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105705773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b5091346102785760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027857600382351015610278576024359067ffffffffffffffff821161027857506064926106e060209236908501610b8d565b50506106ea610ede565b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600d60248201527f6d757374206f76657272696465000000000000000000000000000000000000006044820152fd5b833461027857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027857610778610e8d565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5090346101b4577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc926060843601126102785781359367ffffffffffffffff851161057057610120908536030112610278575065ffffffffffff60243581811681036108645760443591821682036108645760209461085d9301610d11565b9051908152f35b600080fd5b508234610278576060927ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906060823601126101b45780359167ffffffffffffffff8311610943576101209083360301126101b4576108d3849286926108cd610ede565b01610f7b565b9093835194859385855281518096860152825b86811061092c57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f926060809787010152602085015201168101030190f35b6020838201810151898301840152889650016108e6565b8380fd5b83823461057057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610570576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8084843461028957807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610289576109ef610b57565b6109f7610e8d565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016803b1561044757859283604492865197889586947f205c2878000000000000000000000000000000000000000000000000000000008652169084015260243560248401525af190811561027b57506102685750f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b45782823563ffffffff811680910361057057610ac8610e8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001693843b156101b457602490845195869384927f0396cb6000000000000000000000000000000000000000000000000000000000845283015234905af190811561027b5750610b4b575080f35b610b5490610bbb565b80f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361086457565b359065ffffffffffff8216820361086457565b9181601f840112156108645782359167ffffffffffffffff8311610864576020838186019501011161086457565b67ffffffffffffffff8111610bcf57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff821117610bcf57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610bcf57604052565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610864570180359067ffffffffffffffff82116108645760200191813603831361086457565b92919267ffffffffffffffff8211610bcf5760405191610cf460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610c1a565b829481845281830111610864578281602093846000960137010152565b9091610d2a610d236040840184610c5b565b3691610cac565b6020815191012092610d42610d236060850185610c5b565b6020815191012092610d5760e0820182610c5b565b60349291921161086457601460c09260405196602088019873ffffffffffffffffffffffffffffffffffffffff8535168a52602085013560408a015260608901526080880152608083013560a088015201358286015260a081013560e08601520135610100840152466101208401523061014084015265ffffffffffff80911661016084015261018091168183015281526101a0810181811067ffffffffffffffff821117610bcf5760405251902090565b9190806034116108645760407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc8483810103011261086457610e4d60348401610b7a565b91610e5a60548501610b7a565b92938260741161086457607401917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c0190565b73ffffffffffffffffffffffffffffffffffffffff600054163303610eae57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610f1d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152fd5b90610f8c6105ef60e0840184610c5b565b604081969396148015611173575b156110ef57610fe8610fee92610fb48887610ff797610d11565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c600020923691610cac565b9061117d565b909291926111b9565b73ffffffffffffffffffffffffffffffffffffffff809116907f000000000000000000000000000000000000000000000000000000000000000016036110915779ffffffffffff00000000000000000000000000000000000000007fffffffffffff000000000000000000000000000000000000000000000000000060405161107f81610bfe565b600081529460d01b169160a01b161790565b60019079ffffffffffff00000000000000000000000000000000000000007fffffffffffff00000000000000000000000000000000000000000000000000006040516110dc81610bfe565b600081529560d01b169160a01b16171790565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604060248201527f566572696679696e675061796d61737465723a20696e76616c6964207369676e60448201527f6174757265206c656e67746820696e207061796d6173746572416e64446174616064820152fd5b5060418114610f9a565b81519190604183036111ae576111a792506020820151906060604084015193015160001a906112a0565b9192909190565b505060009160029190565b600481101561127157806111cb575050565b600181036111fd5760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b6002810361123657602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b6003146112405750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161133157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561132557805173ffffffffffffffffffffffffffffffffffffffff81161561131c57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fea26469706673582212204813be1a24d91615c67283633df5462f1e8d45e62d226cbe4e761e0a6932a62064736f6c63430008170033" as Hex;
export const implementation = "0xc4372b954A78e8089fE76dd2F1542F0956886a86" as Address;
export const VerifyingPaymaster = {
abi,
bytecode,
deployedBytecode,
implementation,
};