@owlprotocol/contracts-account-abstraction
Version:
ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.
704 lines (703 loc) • 30.4 kB
text/typescript
export const functions = [
{
inputs: [],
name: "UPGRADE_INTERFACE_VERSION",
outputs: [{ internalType: "string", name: "", type: "string" }],
stateMutability: "view",
type: "function",
},
{ inputs: [], name: "addDeposit", outputs: [], stateMutability: "payable", type: "function" },
{
inputs: [],
name: "entryPoint",
outputs: [{ internalType: "contract IEntryPoint", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "dest", type: "address" },
{ internalType: "uint256", name: "value", type: "uint256" },
{ internalType: "bytes", name: "func", type: "bytes" },
],
name: "execute",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address[]", name: "dest", type: "address[]" },
{ internalType: "uint256[]", name: "value", type: "uint256[]" },
{ internalType: "bytes[]", name: "func", type: "bytes[]" },
],
name: "executeBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "getDeposit",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getNonce",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address", name: "anOwner", type: "address" }],
name: "initialize",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "", type: "address" },
{ internalType: "address", name: "", type: "address" },
{ internalType: "uint256[]", name: "", type: "uint256[]" },
{ internalType: "uint256[]", name: "", type: "uint256[]" },
{ internalType: "bytes", name: "", type: "bytes" },
],
name: "onERC1155BatchReceived",
outputs: [{ internalType: "bytes4", name: "", type: "bytes4" }],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "", type: "address" },
{ internalType: "address", name: "", type: "address" },
{ internalType: "uint256", name: "", type: "uint256" },
{ internalType: "uint256", name: "", type: "uint256" },
{ internalType: "bytes", name: "", type: "bytes" },
],
name: "onERC1155Received",
outputs: [{ internalType: "bytes4", name: "", type: "bytes4" }],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "", type: "address" },
{ internalType: "address", name: "", type: "address" },
{ internalType: "uint256", name: "", type: "uint256" },
{ internalType: "bytes", name: "", type: "bytes" },
],
name: "onERC721Received",
outputs: [{ internalType: "bytes4", name: "", type: "bytes4" }],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "owner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "proxiableUUID",
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "bytes4", name: "interfaceId", type: "bytes4" }],
name: "supportsInterface",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "newImplementation", type: "address" },
{ internalType: "bytes", name: "data", type: "bytes" },
],
name: "upgradeToAndCall",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
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: "missingAccountFunds", type: "uint256" },
],
name: "validateUserOp",
outputs: [{ internalType: "uint256", name: "validationData", type: "uint256" }],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address payable", name: "withdrawAddress", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
name: "withdrawDepositTo",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "accountImplementation",
outputs: [{ internalType: "contract SimpleAccount", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "owner", type: "address" },
{ internalType: "uint256", name: "salt", type: "uint256" },
],
name: "createAccount",
outputs: [{ internalType: "contract SimpleAccount", name: "ret", type: "address" }],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "owner", type: "address" },
{ internalType: "uint256", name: "salt", type: "uint256" },
],
name: "getAddress",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "uint32", name: "unstakeDelaySec", type: "uint32" }],
name: "addStake",
outputs: [],
stateMutability: "payable",
type: "function",
},
{ inputs: [], name: "deposit", outputs: [], stateMutability: "payable", type: "function" },
{
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",
},
{
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",
},
{
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",
},
{ inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function" },
{
inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{ inputs: [], name: "unlockStake", outputs: [], stateMutability: "nonpayable", type: "function" },
{
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",
},
{
inputs: [],
name: "verifyingSigner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address payable", name: "withdrawAddress", type: "address" }],
name: "withdrawStake",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address payable", name: "withdrawAddress", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
name: "withdrawTo",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "balanceOf",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "target", type: "address" },
{ internalType: "bytes", name: "data", type: "bytes" },
],
name: "delegateAndRevert",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "depositTo",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [{ internalType: "address", name: "", type: "address" }],
name: "deposits",
outputs: [
{ internalType: "uint256", name: "deposit", type: "uint256" },
{ internalType: "bool", name: "staked", type: "bool" },
{ internalType: "uint112", name: "stake", type: "uint112" },
{ internalType: "uint32", name: "unstakeDelaySec", type: "uint32" },
{ internalType: "uint48", name: "withdrawTime", type: "uint48" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "getDepositInfo",
outputs: [
{
components: [
{ internalType: "uint256", name: "deposit", type: "uint256" },
{ internalType: "bool", name: "staked", type: "bool" },
{ internalType: "uint112", name: "stake", type: "uint112" },
{ internalType: "uint32", name: "unstakeDelaySec", type: "uint32" },
{ internalType: "uint48", name: "withdrawTime", type: "uint48" },
],
internalType: "struct IStakeManager.DepositInfo",
name: "info",
type: "tuple",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "sender", type: "address" },
{ internalType: "uint192", name: "key", type: "uint192" },
],
name: "getNonce",
outputs: [{ internalType: "uint256", name: "nonce", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "bytes", name: "initCode", type: "bytes" }],
name: "getSenderAddress",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
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",
},
],
name: "getUserOpHash",
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{
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: "userOps",
type: "tuple[]",
},
{ internalType: "contract IAggregator", name: "aggregator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct IEntryPoint.UserOpsPerAggregator[]",
name: "opsPerAggregator",
type: "tuple[]",
},
{ internalType: "address payable", name: "beneficiary", type: "address" },
],
name: "handleAggregatedOps",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
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: "ops",
type: "tuple[]",
},
{ internalType: "address payable", name: "beneficiary", type: "address" },
],
name: "handleOps",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [{ internalType: "uint192", name: "key", type: "uint192" }],
name: "incrementNonce",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "bytes", name: "callData", type: "bytes" },
{
components: [
{
components: [
{ internalType: "address", name: "sender", type: "address" },
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "uint256", name: "verificationGasLimit", type: "uint256" },
{ internalType: "uint256", name: "callGasLimit", type: "uint256" },
{ internalType: "uint256", name: "paymasterVerificationGasLimit", type: "uint256" },
{ internalType: "uint256", name: "paymasterPostOpGasLimit", type: "uint256" },
{ internalType: "uint256", name: "preVerificationGas", type: "uint256" },
{ internalType: "address", name: "paymaster", type: "address" },
{ internalType: "uint256", name: "maxFeePerGas", type: "uint256" },
{ internalType: "uint256", name: "maxPriorityFeePerGas", type: "uint256" },
],
internalType: "struct EntryPoint.MemoryUserOp",
name: "mUserOp",
type: "tuple",
},
{ internalType: "bytes32", name: "userOpHash", type: "bytes32" },
{ internalType: "uint256", name: "prefund", type: "uint256" },
{ internalType: "uint256", name: "contextOffset", type: "uint256" },
{ internalType: "uint256", name: "preOpGas", type: "uint256" },
],
internalType: "struct EntryPoint.UserOpInfo",
name: "opInfo",
type: "tuple",
},
{ internalType: "bytes", name: "context", type: "bytes" },
],
name: "innerHandleOp",
outputs: [{ internalType: "uint256", name: "actualGasCost", type: "uint256" }],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "", type: "address" },
{ internalType: "uint192", name: "", type: "uint192" },
],
name: "nonceSequenceNumber",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address payable", name: "ep", type: "address" },
{ internalType: "bytes[]", name: "data", type: "bytes[]" },
],
name: "simulateEntryPoint",
outputs: [{ internalType: "bytes[]", name: "", type: "bytes[]" }],
stateMutability: "nonpayable",
type: "function",
},
{
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: "op",
type: "tuple",
},
],
name: "simulateHandleOp",
outputs: [
{
components: [
{ internalType: "uint256", name: "preOpGas", type: "uint256" },
{ internalType: "uint256", name: "paid", type: "uint256" },
{ internalType: "uint256", name: "accountValidationData", type: "uint256" },
{ internalType: "uint256", name: "paymasterValidationData", type: "uint256" },
{ internalType: "bool", name: "targetSuccess", type: "bool" },
{ internalType: "bytes", name: "targetResult", type: "bytes" },
],
internalType: "struct IEntryPointSimulations.ExecutionResult",
name: "",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
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",
},
],
name: "simulateValidation",
outputs: [
{
components: [
{
components: [
{ internalType: "uint256", name: "preOpGas", type: "uint256" },
{ internalType: "uint256", name: "prefund", type: "uint256" },
{ internalType: "uint256", name: "accountValidationData", type: "uint256" },
{ internalType: "uint256", name: "paymasterValidationData", type: "uint256" },
{ internalType: "bytes", name: "paymasterContext", type: "bytes" },
],
internalType: "struct IEntryPoint.ReturnInfo",
name: "returnInfo",
type: "tuple",
},
{
components: [
{ internalType: "uint256", name: "stake", type: "uint256" },
{ internalType: "uint256", name: "unstakeDelaySec", type: "uint256" },
],
internalType: "struct IStakeManager.StakeInfo",
name: "senderInfo",
type: "tuple",
},
{
components: [
{ internalType: "uint256", name: "stake", type: "uint256" },
{ internalType: "uint256", name: "unstakeDelaySec", type: "uint256" },
],
internalType: "struct IStakeManager.StakeInfo",
name: "factoryInfo",
type: "tuple",
},
{
components: [
{ internalType: "uint256", name: "stake", type: "uint256" },
{ internalType: "uint256", name: "unstakeDelaySec", type: "uint256" },
],
internalType: "struct IStakeManager.StakeInfo",
name: "paymasterInfo",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "aggregator", type: "address" },
{
components: [
{ internalType: "uint256", name: "stake", type: "uint256" },
{ internalType: "uint256", name: "unstakeDelaySec", type: "uint256" },
],
internalType: "struct IStakeManager.StakeInfo",
name: "stakeInfo",
type: "tuple",
},
],
internalType: "struct IEntryPoint.AggregatorStakeInfo",
name: "aggregatorInfo",
type: "tuple",
},
],
internalType: "struct IEntryPointSimulations.ValidationResult",
name: "",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
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: "op",
type: "tuple",
},
{ internalType: "address", name: "target", type: "address" },
{ internalType: "bytes", name: "targetCallData", type: "bytes" },
],
name: "simulateCallData",
outputs: [
{
components: [
{ internalType: "uint256", name: "gasUsed", type: "uint256" },
{ internalType: "bool", name: "success", type: "bool" },
{ internalType: "bytes", name: "returnData", type: "bytes" },
],
internalType: "struct IEntryPointSimulations.TargetCallResult",
name: "",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "helloWorld",
outputs: [{ internalType: "string", name: "", type: "string" }],
stateMutability: "pure",
type: "function",
},
] as const;