diff --git a/abi/ECDSAKernelFactory.json b/abi/ECDSAKernelFactory.json deleted file mode 100644 index 333d2f8..0000000 --- a/abi/ECDSAKernelFactory.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract KernelFactory", - "name": "_singletonFactory", - "type": "address" - }, - { - "internalType": "contract ECDSAValidator", - "name": "_validator", - "type": "address" - }, - { - "internalType": "contract IEntryPoint", - "name": "_entryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "contract EIP1967Proxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getAccountAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "singletonFactory", - "outputs": [ - { - "internalType": "contract KernelFactory", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validator", - "outputs": [ - { - "internalType": "contract ECDSAValidator", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/ECDSAValidator.json b/abi/ECDSAValidator.json index 70bf1f1..f1c87fd 100644 --- a/abi/ECDSAValidator.json +++ b/abi/ECDSAValidator.json @@ -35,7 +35,7 @@ ], "name": "disable", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -67,7 +67,31 @@ ], "name": "enable", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_caller", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "validCaller", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -86,7 +110,7 @@ "name": "validateSignature", "outputs": [ { - "internalType": "uint256", + "internalType": "ValidationData", "name": "", "type": "uint256" } @@ -172,12 +196,12 @@ "name": "validateUserOp", "outputs": [ { - "internalType": "uint256", + "internalType": "ValidationData", "name": "validationData", "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "payable", "type": "function" } ] diff --git a/abi/Kernel.json b/abi/Kernel.json index 67ea32f..942274a 100644 --- a/abi/Kernel.json +++ b/abi/Kernel.json @@ -11,6 +11,26 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "DisabledMode", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorizedCaller", + "type": "error" + }, + { + "inputs": [], + "name": "NotEntryPoint", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -55,6 +75,25 @@ "name": "ExecutionChanged", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Received", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -82,7 +121,50 @@ ], "name": "disableMode", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -117,13 +199,60 @@ }, { "internalType": "enum Operation", - "name": "operation", + "name": "", "type": "uint8" } ], "name": "execute", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeDelegateCall", + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct Call[]", + "name": "calls", + "type": "tuple[]" + } + ], + "name": "executeBatch", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { @@ -132,7 +261,7 @@ "outputs": [ { "internalType": "contract IKernelValidator", - "name": "", + "name": "validator", "type": "address" } ], @@ -145,7 +274,7 @@ "outputs": [ { "internalType": "bytes4", - "name": "", + "name": "disabled", "type": "bytes4" } ], @@ -165,13 +294,13 @@ { "components": [ { - "internalType": "uint48", - "name": "validUntil", + "internalType": "ValidAfter", + "name": "validAfter", "type": "uint48" }, { - "internalType": "uint48", - "name": "validAfter", + "internalType": "ValidUntil", + "name": "validUntil", "type": "uint48" }, { @@ -253,7 +382,7 @@ ], "name": "initialize", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -420,7 +549,7 @@ ], "name": "setDefaultValidator", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -441,12 +570,12 @@ "type": "address" }, { - "internalType": "uint48", + "internalType": "ValidUntil", "name": "_validUntil", "type": "uint48" }, { - "internalType": "uint48", + "internalType": "ValidAfter", "name": "_validAfter", "type": "uint48" }, @@ -458,7 +587,7 @@ ], "name": "setExecution", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -471,7 +600,7 @@ ], "name": "upgradeTo", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -535,7 +664,7 @@ } ], "internalType": "struct UserOperation", - "name": "userOp", + "name": "_userOp", "type": "tuple" }, { @@ -552,12 +681,12 @@ "name": "validateUserOp", "outputs": [ { - "internalType": "uint256", + "internalType": "ValidationData", "name": "validationData", "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { diff --git a/abi/KernelFactory.json b/abi/KernelFactory.json index 4b44648..f6b8531 100644 --- a/abi/KernelFactory.json +++ b/abi/KernelFactory.json @@ -2,6 +2,11 @@ "abi": [ { "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "internalType": "contract IEntryPoint", "name": "_entryPoint", @@ -11,42 +16,133 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "DeploymentFailed", + "type": "error" + }, + { + "inputs": [], + "name": "NewOwnerIsZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "NoHandoverRequest", + "type": "error" + }, + { + "inputs": [], + "name": "SaltDoesNotStartWithCaller", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", - "name": "account", + "name": "proxy", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "validator", + "name": "implementation", "type": "address" - }, + } + ], + "name": "Deployed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" + "indexed": true, + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "OwnershipHandoverCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "OwnershipHandoverRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "AccountCreated", + "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { - "internalType": "contract IKernelValidator", - "name": "_validator", + "internalType": "uint32", + "name": "unstakeDelaySec", + "type": "uint32" + } + ], + "name": "addStake", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "completeOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_implementation", "type": "address" }, { @@ -63,12 +159,12 @@ "name": "createAccount", "outputs": [ { - "internalType": "contract EIP1967Proxy", + "internalType": "address", "name": "proxy", "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -86,11 +182,6 @@ }, { "inputs": [ - { - "internalType": "contract IKernelValidator", - "name": "_validator", - "type": "address" - }, { "internalType": "bytes", "name": "_data", @@ -115,29 +206,177 @@ }, { "inputs": [], - "name": "kernelTemplate", + "name": "initCodeHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "result", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isAllowedImplementation", "outputs": [ { - "internalType": "contract TempKernel", + "internalType": "bool", "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "ownershipHandoverExpiresAt", + "outputs": [ + { + "internalType": "uint256", + "name": "result", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], - "name": "nextTemplate", + "name": "ownershipHandoverValidFor", "outputs": [ { - "internalType": "contract Kernel", + "internalType": "uint64", "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "name": "predictDeterministicAddress", + "outputs": [ + { + "internalType": "address", + "name": "predicted", "type": "address" } ], "stateMutability": "view", "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "requestOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IEntryPoint", + "name": "_entryPoint", + "type": "address" + } + ], + "name": "setEntryPoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_implementation", + "type": "address" + }, + { + "internalType": "bool", + "name": "_allow", + "type": "bool" + } + ], + "name": "setImplementation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "unlockStake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "withdrawAddress", + "type": "address" + } + ], + "name": "withdrawStake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ] } diff --git a/abi/Multisend.json b/abi/Multisend.json deleted file mode 100644 index 958e6cd..0000000 --- a/abi/Multisend.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ] -} diff --git a/src/constants/kernel.ts b/src/constants/kernel.ts index 257ffe8..2fcee38 100644 --- a/src/constants/kernel.ts +++ b/src/constants/kernel.ts @@ -1,7 +1,7 @@ export const Kernel = { - Factory: "0x5D006d3880645ec6e254E18C1F879DAC9Dd71A39", - ECDSAFactory: "0xD49a72cb78C44c6bfbf0d471581B7635cF62E81e", - ECDSAValidator: "0x180D6465F921C7E0DEA0040107D342c87455fFF5", + Kernel: "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5", + KernelFactory: "0x5de4839a76cf55d0c90e2061ef4386d962e15ae3", + ECDSAValidator: "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390", Modes: { Sudo: "0x00000000", Plugin: "0x00000001", diff --git a/src/preset/builder/kernel.ts b/src/preset/builder/kernel.ts index 00f274d..247af54 100644 --- a/src/preset/builder/kernel.ts +++ b/src/preset/builder/kernel.ts @@ -10,32 +10,24 @@ import { import { EntryPoint, EntryPoint__factory, - ECDSAKernelFactory, - ECDSAKernelFactory__factory, + KernelFactory, + KernelFactory__factory, Kernel as KernelImpl, Kernel__factory, - Multisend, - Multisend__factory, } from "../../typechain"; import { IPresetBuilderOpts, ICall, UserOperationMiddlewareFn, } from "../../types"; -import { Safe } from "../../constants/safe"; -enum Operation { - Call, - DelegateCall, -} export class Kernel extends UserOperationBuilder { private signer: ethers.Signer; private provider: ethers.providers.JsonRpcProvider; private entryPoint: EntryPoint; - private factory: ECDSAKernelFactory; + private factory: KernelFactory; private initCode: string; - private multisend: Multisend; proxy: KernelImpl; private constructor( @@ -52,15 +44,11 @@ export class Kernel extends UserOperationBuilder { opts?.entryPoint || ERC4337.EntryPoint, this.provider ); - this.factory = ECDSAKernelFactory__factory.connect( - opts?.factory || KernelConst.ECDSAFactory, + this.factory = KernelFactory__factory.connect( + opts?.factory || KernelConst.KernelFactory, this.provider ); this.initCode = "0x"; - this.multisend = Multisend__factory.connect( - ethers.constants.AddressZero, - this.provider - ); this.proxy = Kernel__factory.connect( ethers.constants.AddressZero, this.provider @@ -87,11 +75,17 @@ export class Kernel extends UserOperationBuilder { const instance = new Kernel(signer, rpcUrl, opts); try { + const _data = instance.proxy.interface.encodeFunctionData("initialize", [ + KernelConst.ECDSAValidator, await signer.getAddress() + ]); + const _index = opts?.salt || 0; + instance.initCode = await ethers.utils.hexConcat([ instance.factory.address, instance.factory.interface.encodeFunctionData("createAccount", [ - await instance.signer.getAddress(), - ethers.BigNumber.from(opts?.salt ?? 0), + KernelConst.Kernel, + _data, + _index, ]), ]); await instance.entryPoint.callStatic.getSenderAddress(instance.initCode); @@ -101,13 +95,6 @@ export class Kernel extends UserOperationBuilder { const addr = error?.errorArgs?.sender; if (!addr) throw error; - const chain = await instance.provider.getNetwork().then((n) => n.chainId); - const ms = Safe.MultiSend[chain.toString()]; - if (!ms) - throw new Error( - `Multisend contract not deployed on network: ${chain.toString()}` - ); - instance.multisend = Multisend__factory.connect(ms, instance.provider); instance.proxy = Kernel__factory.connect(addr, instance.provider); } @@ -139,36 +126,27 @@ export class Kernel extends UserOperationBuilder { call.to, call.value, call.data, - Operation.Call, + call.operation, ]) ); } - executeBatch(calls: Array) { - const data = this.multisend.interface.encodeFunctionData("multiSend", [ - ethers.utils.hexConcat( - calls.map((c) => - ethers.utils.solidityPack( - ["uint8", "address", "uint256", "uint256", "bytes"], - [ - Operation.Call, - c.to, - c.value, - ethers.utils.hexDataLength(c.data), - c.data, - ] - ) - ) - ), - ]); - + executeBatch(calls: ICall[]) { return this.setCallData( - this.proxy.interface.encodeFunctionData("execute", [ - this.multisend.address, - ethers.constants.Zero, - data, - Operation.DelegateCall, + this.proxy.interface.encodeFunctionData("executeBatch", [ + calls.map((call) => ({ + to: call.to, + value: call.value, + data: call.data, + operation: call.operation, + })), ]) ); } + + executeDelegateCall(to: string, data: string) { + return this.setCallData( + this.proxy.interface.encodeFunctionData("executeDelegateCall", [to, data]) + ); + } } diff --git a/src/typechain/ECDSAValidator.ts b/src/typechain/ECDSAValidator.ts index 0492dec..58ae6d0 100644 --- a/src/typechain/ECDSAValidator.ts +++ b/src/typechain/ECDSAValidator.ts @@ -8,7 +8,7 @@ import type { BytesLike, CallOverrides, ContractTransaction, - Overrides, + PayableOverrides, PopulatedTransaction, Signer, utils, @@ -71,6 +71,7 @@ export interface ECDSAValidatorInterface extends utils.Interface { "disable(bytes)": FunctionFragment; "ecdsaValidatorStorage(address)": FunctionFragment; "enable(bytes)": FunctionFragment; + "validCaller(address,bytes)": FunctionFragment; "validateSignature(bytes32,bytes)": FunctionFragment; "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": FunctionFragment; }; @@ -80,6 +81,7 @@ export interface ECDSAValidatorInterface extends utils.Interface { | "disable" | "ecdsaValidatorStorage" | "enable" + | "validCaller" | "validateSignature" | "validateUserOp" ): FunctionFragment; @@ -90,6 +92,10 @@ export interface ECDSAValidatorInterface extends utils.Interface { values: [string] ): string; encodeFunctionData(functionFragment: "enable", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "validCaller", + values: [string, BytesLike] + ): string; encodeFunctionData( functionFragment: "validateSignature", values: [BytesLike, BytesLike] @@ -105,6 +111,10 @@ export interface ECDSAValidatorInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "enable", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "validCaller", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "validateSignature", data: BytesLike @@ -162,7 +172,7 @@ export interface ECDSAValidator extends BaseContract { functions: { disable( arg0: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; ecdsaValidatorStorage( @@ -172,9 +182,15 @@ export interface ECDSAValidator extends BaseContract { enable( _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + validCaller( + _caller: string, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + validateSignature( hash: BytesLike, signature: BytesLike, @@ -185,13 +201,13 @@ export interface ECDSAValidator extends BaseContract { _userOp: UserOperationStruct, _userOpHash: BytesLike, arg2: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber] & { validationData: BigNumber }>; + overrides?: PayableOverrides & { from?: string } + ): Promise; }; disable( arg0: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; ecdsaValidatorStorage( @@ -201,9 +217,15 @@ export interface ECDSAValidator extends BaseContract { enable( _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + validCaller( + _caller: string, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + validateSignature( hash: BytesLike, signature: BytesLike, @@ -214,8 +236,8 @@ export interface ECDSAValidator extends BaseContract { _userOp: UserOperationStruct, _userOpHash: BytesLike, arg2: BigNumberish, - overrides?: CallOverrides - ): Promise; + overrides?: PayableOverrides & { from?: string } + ): Promise; callStatic: { disable(arg0: BytesLike, overrides?: CallOverrides): Promise; @@ -227,6 +249,12 @@ export interface ECDSAValidator extends BaseContract { enable(_data: BytesLike, overrides?: CallOverrides): Promise; + validCaller( + _caller: string, + arg1: BytesLike, + overrides?: CallOverrides + ): Promise; + validateSignature( hash: BytesLike, signature: BytesLike, @@ -257,7 +285,7 @@ export interface ECDSAValidator extends BaseContract { estimateGas: { disable( arg0: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; ecdsaValidatorStorage( @@ -267,7 +295,13 @@ export interface ECDSAValidator extends BaseContract { enable( _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } + ): Promise; + + validCaller( + _caller: string, + arg1: BytesLike, + overrides?: CallOverrides ): Promise; validateSignature( @@ -280,14 +314,14 @@ export interface ECDSAValidator extends BaseContract { _userOp: UserOperationStruct, _userOpHash: BytesLike, arg2: BigNumberish, - overrides?: CallOverrides + overrides?: PayableOverrides & { from?: string } ): Promise; }; populateTransaction: { disable( arg0: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; ecdsaValidatorStorage( @@ -297,7 +331,13 @@ export interface ECDSAValidator extends BaseContract { enable( _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } + ): Promise; + + validCaller( + _caller: string, + arg1: BytesLike, + overrides?: CallOverrides ): Promise; validateSignature( @@ -310,7 +350,7 @@ export interface ECDSAValidator extends BaseContract { _userOp: UserOperationStruct, _userOpHash: BytesLike, arg2: BigNumberish, - overrides?: CallOverrides + overrides?: PayableOverrides & { from?: string } ): Promise; }; } diff --git a/src/typechain/Kernel.ts b/src/typechain/Kernel.ts index daa3b2b..3c1d657 100644 --- a/src/typechain/Kernel.ts +++ b/src/typechain/Kernel.ts @@ -8,7 +8,7 @@ import type { BytesLike, CallOverrides, ContractTransaction, - Overrides, + PayableOverrides, PopulatedTransaction, Signer, utils, @@ -26,16 +26,24 @@ import type { OnEvent, } from "./common"; +export type CallStruct = { to: string; value: BigNumberish; data: BytesLike }; + +export type CallStructOutput = [string, BigNumber, string] & { + to: string; + value: BigNumber; + data: string; +}; + export type ExecutionDetailStruct = { - validUntil: BigNumberish; validAfter: BigNumberish; + validUntil: BigNumberish; executor: string; validator: string; }; export type ExecutionDetailStructOutput = [number, number, string, string] & { - validUntil: number; validAfter: number; + validUntil: number; executor: string; validator: string; }; @@ -83,8 +91,11 @@ export type UserOperationStructOutput = [ export interface KernelInterface extends utils.Interface { functions: { "disableMode(bytes4)": FunctionFragment; + "eip712Domain()": FunctionFragment; "entryPoint()": FunctionFragment; "execute(address,uint256,bytes,uint8)": FunctionFragment; + "executeDelegateCall(address,bytes)": FunctionFragment; + "executeBatch((address,uint256,bytes)[])": FunctionFragment; "getDefaultValidator()": FunctionFragment; "getDisabledMode()": FunctionFragment; "getExecution(bytes4)": FunctionFragment; @@ -107,8 +118,11 @@ export interface KernelInterface extends utils.Interface { getFunction( nameOrSignatureOrTopic: | "disableMode" + | "eip712Domain" | "entryPoint" | "execute" + | "executeDelegateCall" + | "executeBatch" | "getDefaultValidator" | "getDisabledMode" | "getExecution" @@ -132,6 +146,10 @@ export interface KernelInterface extends utils.Interface { functionFragment: "disableMode", values: [BytesLike] ): string; + encodeFunctionData( + functionFragment: "eip712Domain", + values?: undefined + ): string; encodeFunctionData( functionFragment: "entryPoint", values?: undefined @@ -140,6 +158,14 @@ export interface KernelInterface extends utils.Interface { functionFragment: "execute", values: [string, BigNumberish, BytesLike, BigNumberish] ): string; + encodeFunctionData( + functionFragment: "executeDelegateCall", + values: [string, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "executeBatch", + values: [CallStruct[]] + ): string; encodeFunctionData( functionFragment: "getDefaultValidator", values?: undefined @@ -204,8 +230,20 @@ export interface KernelInterface extends utils.Interface { functionFragment: "disableMode", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "eip712Domain", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "executeDelegateCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "executeBatch", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getDefaultValidator", data: BytesLike @@ -263,11 +301,13 @@ export interface KernelInterface extends utils.Interface { events: { "DefaultValidatorChanged(address,address)": EventFragment; "ExecutionChanged(bytes4,address,address)": EventFragment; + "Received(address,uint256)": EventFragment; "Upgraded(address)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "DefaultValidatorChanged"): EventFragment; getEvent(nameOrSignatureOrTopic: "ExecutionChanged"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Received"): EventFragment; getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; } @@ -296,6 +336,17 @@ export type ExecutionChangedEvent = TypedEvent< export type ExecutionChangedEventFilter = TypedEventFilter; +export interface ReceivedEventObject { + sender: string; + amount: BigNumber; +} +export type ReceivedEvent = TypedEvent< + [string, BigNumber], + ReceivedEventObject +>; + +export type ReceivedEventFilter = TypedEventFilter; + export interface UpgradedEventObject { newImplementation: string; } @@ -332,22 +383,51 @@ export interface Kernel extends BaseContract { functions: { disableMode( _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + eip712Domain( + overrides?: CallOverrides + ): Promise< + [string, string, string, BigNumber, string, string, BigNumber[]] & { + fields: string; + name: string; + version: string; + chainId: BigNumber; + verifyingContract: string; + salt: string; + extensions: BigNumber[]; + } + >; + entryPoint(overrides?: CallOverrides): Promise<[string]>; execute( to: string, value: BigNumberish, data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } + arg3: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeDelegateCall( + to: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeBatch( + calls: CallStruct[], + overrides?: PayableOverrides & { from?: string } ): Promise; - getDefaultValidator(overrides?: CallOverrides): Promise<[string]>; + getDefaultValidator( + overrides?: CallOverrides + ): Promise<[string] & { validator: string }>; - getDisabledMode(overrides?: CallOverrides): Promise<[string]>; + getDisabledMode( + overrides?: CallOverrides + ): Promise<[string] & { disabled: string }>; getExecution( _selector: BytesLike, @@ -366,7 +446,7 @@ export interface Kernel extends BaseContract { initialize( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; isValidSignature( @@ -406,7 +486,7 @@ export interface Kernel extends BaseContract { setDefaultValidator( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; setExecution( @@ -416,19 +496,19 @@ export interface Kernel extends BaseContract { _validUntil: BigNumberish, _validAfter: BigNumberish, _enableData: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; upgradeTo( _newImplementation: string, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; validateUserOp( - userOp: UserOperationStruct, + _userOp: UserOperationStruct, userOpHash: BytesLike, missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; version(overrides?: CallOverrides): Promise<[string]>; @@ -436,17 +516,42 @@ export interface Kernel extends BaseContract { disableMode( _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + eip712Domain( + overrides?: CallOverrides + ): Promise< + [string, string, string, BigNumber, string, string, BigNumber[]] & { + fields: string; + name: string; + version: string; + chainId: BigNumber; + verifyingContract: string; + salt: string; + extensions: BigNumber[]; + } + >; + entryPoint(overrides?: CallOverrides): Promise; execute( to: string, value: BigNumberish, data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } + arg3: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeDelegateCall( + to: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeBatch( + calls: CallStruct[], + overrides?: PayableOverrides & { from?: string } ): Promise; getDefaultValidator(overrides?: CallOverrides): Promise; @@ -470,7 +575,7 @@ export interface Kernel extends BaseContract { initialize( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; isValidSignature( @@ -510,7 +615,7 @@ export interface Kernel extends BaseContract { setDefaultValidator( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; setExecution( @@ -520,19 +625,19 @@ export interface Kernel extends BaseContract { _validUntil: BigNumberish, _validAfter: BigNumberish, _enableData: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; upgradeTo( _newImplementation: string, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; validateUserOp( - userOp: UserOperationStruct, + _userOp: UserOperationStruct, userOpHash: BytesLike, missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; version(overrides?: CallOverrides): Promise; @@ -543,16 +648,38 @@ export interface Kernel extends BaseContract { overrides?: CallOverrides ): Promise; + eip712Domain( + overrides?: CallOverrides + ): Promise< + [string, string, string, BigNumber, string, string, BigNumber[]] & { + fields: string; + name: string; + version: string; + chainId: BigNumber; + verifyingContract: string; + salt: string; + extensions: BigNumber[]; + } + >; + entryPoint(overrides?: CallOverrides): Promise; execute( to: string, value: BigNumberish, data: BytesLike, - operation: BigNumberish, + arg3: BigNumberish, + overrides?: CallOverrides + ): Promise; + + executeDelegateCall( + to: string, + data: BytesLike, overrides?: CallOverrides ): Promise; + executeBatch(calls: CallStruct[], overrides?: CallOverrides): Promise; + getDefaultValidator(overrides?: CallOverrides): Promise; getDisabledMode(overrides?: CallOverrides): Promise; @@ -633,7 +760,7 @@ export interface Kernel extends BaseContract { ): Promise; validateUserOp( - userOp: UserOperationStruct, + _userOp: UserOperationStruct, userOpHash: BytesLike, missingAccountFunds: BigNumberish, overrides?: CallOverrides @@ -663,6 +790,12 @@ export interface Kernel extends BaseContract { validator?: string | null ): ExecutionChangedEventFilter; + "Received(address,uint256)"( + sender?: null, + amount?: null + ): ReceivedEventFilter; + Received(sender?: null, amount?: null): ReceivedEventFilter; + "Upgraded(address)"(newImplementation?: string | null): UpgradedEventFilter; Upgraded(newImplementation?: string | null): UpgradedEventFilter; }; @@ -670,17 +803,30 @@ export interface Kernel extends BaseContract { estimateGas: { disableMode( _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + eip712Domain(overrides?: CallOverrides): Promise; + entryPoint(overrides?: CallOverrides): Promise; execute( to: string, value: BigNumberish, data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } + arg3: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeDelegateCall( + to: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeBatch( + calls: CallStruct[], + overrides?: PayableOverrides & { from?: string } ): Promise; getDefaultValidator(overrides?: CallOverrides): Promise; @@ -704,7 +850,7 @@ export interface Kernel extends BaseContract { initialize( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; isValidSignature( @@ -744,7 +890,7 @@ export interface Kernel extends BaseContract { setDefaultValidator( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; setExecution( @@ -754,19 +900,19 @@ export interface Kernel extends BaseContract { _validUntil: BigNumberish, _validAfter: BigNumberish, _enableData: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; upgradeTo( _newImplementation: string, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; validateUserOp( - userOp: UserOperationStruct, + _userOp: UserOperationStruct, userOpHash: BytesLike, missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; version(overrides?: CallOverrides): Promise; @@ -775,17 +921,30 @@ export interface Kernel extends BaseContract { populateTransaction: { disableMode( _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; + eip712Domain(overrides?: CallOverrides): Promise; + entryPoint(overrides?: CallOverrides): Promise; execute( to: string, value: BigNumberish, data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } + arg3: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeDelegateCall( + to: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + executeBatch( + calls: CallStruct[], + overrides?: PayableOverrides & { from?: string } ): Promise; getDefaultValidator( @@ -813,7 +972,7 @@ export interface Kernel extends BaseContract { initialize( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; isValidSignature( @@ -853,7 +1012,7 @@ export interface Kernel extends BaseContract { setDefaultValidator( _defaultValidator: string, _data: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; setExecution( @@ -863,19 +1022,19 @@ export interface Kernel extends BaseContract { _validUntil: BigNumberish, _validAfter: BigNumberish, _enableData: BytesLike, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; upgradeTo( _newImplementation: string, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; validateUserOp( - userOp: UserOperationStruct, + _userOp: UserOperationStruct, userOpHash: BytesLike, missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; version(overrides?: CallOverrides): Promise; diff --git a/src/typechain/KernelFactory.ts b/src/typechain/KernelFactory.ts index 725a547..5a58793 100644 --- a/src/typechain/KernelFactory.ts +++ b/src/typechain/KernelFactory.ts @@ -9,6 +9,7 @@ import type { CallOverrides, ContractTransaction, Overrides, + PayableOverrides, PopulatedTransaction, Signer, utils, @@ -28,22 +29,62 @@ import type { export interface KernelFactoryInterface extends utils.Interface { functions: { + "addStake(uint32)": FunctionFragment; + "cancelOwnershipHandover()": FunctionFragment; + "completeOwnershipHandover(address)": FunctionFragment; "createAccount(address,bytes,uint256)": FunctionFragment; "entryPoint()": FunctionFragment; - "getAccountAddress(address,bytes,uint256)": FunctionFragment; - "kernelTemplate()": FunctionFragment; - "nextTemplate()": FunctionFragment; + "getAccountAddress(bytes,uint256)": FunctionFragment; + "initCodeHash()": FunctionFragment; + "isAllowedImplementation(address)": FunctionFragment; + "owner()": FunctionFragment; + "ownershipHandoverExpiresAt(address)": FunctionFragment; + "ownershipHandoverValidFor()": FunctionFragment; + "predictDeterministicAddress(bytes32)": FunctionFragment; + "renounceOwnership()": FunctionFragment; + "requestOwnershipHandover()": FunctionFragment; + "setEntryPoint(address)": FunctionFragment; + "setImplementation(address,bool)": FunctionFragment; + "transferOwnership(address)": FunctionFragment; + "unlockStake()": FunctionFragment; + "withdrawStake(address)": FunctionFragment; }; getFunction( nameOrSignatureOrTopic: + | "addStake" + | "cancelOwnershipHandover" + | "completeOwnershipHandover" | "createAccount" | "entryPoint" | "getAccountAddress" - | "kernelTemplate" - | "nextTemplate" + | "initCodeHash" + | "isAllowedImplementation" + | "owner" + | "ownershipHandoverExpiresAt" + | "ownershipHandoverValidFor" + | "predictDeterministicAddress" + | "renounceOwnership" + | "requestOwnershipHandover" + | "setEntryPoint" + | "setImplementation" + | "transferOwnership" + | "unlockStake" + | "withdrawStake" ): FunctionFragment; + encodeFunctionData( + functionFragment: "addStake", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "cancelOwnershipHandover", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "completeOwnershipHandover", + values: [string] + ): string; encodeFunctionData( functionFragment: "createAccount", values: [string, BytesLike, BigNumberish] @@ -54,17 +95,67 @@ export interface KernelFactoryInterface extends utils.Interface { ): string; encodeFunctionData( functionFragment: "getAccountAddress", - values: [string, BytesLike, BigNumberish] + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initCodeHash", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "isAllowedImplementation", + values: [string] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownershipHandoverExpiresAt", + values: [string] ): string; encodeFunctionData( - functionFragment: "kernelTemplate", + functionFragment: "ownershipHandoverValidFor", values?: undefined ): string; encodeFunctionData( - functionFragment: "nextTemplate", + functionFragment: "predictDeterministicAddress", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "renounceOwnership", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "requestOwnershipHandover", values?: undefined ): string; + encodeFunctionData( + functionFragment: "setEntryPoint", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "setImplementation", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "transferOwnership", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "unlockStake", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "withdrawStake", + values: [string] + ): string; + decodeFunctionResult(functionFragment: "addStake", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "cancelOwnershipHandover", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "completeOwnershipHandover", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "createAccount", data: BytesLike @@ -75,33 +166,109 @@ export interface KernelFactoryInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "kernelTemplate", + functionFragment: "initCodeHash", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isAllowedImplementation", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "ownershipHandoverExpiresAt", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "ownershipHandoverValidFor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "predictDeterministicAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceOwnership", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "requestOwnershipHandover", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setEntryPoint", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setImplementation", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferOwnership", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "nextTemplate", + functionFragment: "unlockStake", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawStake", data: BytesLike ): Result; events: { - "AccountCreated(address,address,bytes,uint256)": EventFragment; + "Deployed(address,address)": EventFragment; + "OwnershipHandoverCanceled(address)": EventFragment; + "OwnershipHandoverRequested(address)": EventFragment; + "OwnershipTransferred(address,address)": EventFragment; }; - getEvent(nameOrSignatureOrTopic: "AccountCreated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Deployed"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipHandoverCanceled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipHandoverRequested"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; +} + +export interface DeployedEventObject { + proxy: string; + implementation: string; +} +export type DeployedEvent = TypedEvent<[string, string], DeployedEventObject>; + +export type DeployedEventFilter = TypedEventFilter; + +export interface OwnershipHandoverCanceledEventObject { + pendingOwner: string; +} +export type OwnershipHandoverCanceledEvent = TypedEvent< + [string], + OwnershipHandoverCanceledEventObject +>; + +export type OwnershipHandoverCanceledEventFilter = + TypedEventFilter; + +export interface OwnershipHandoverRequestedEventObject { + pendingOwner: string; } +export type OwnershipHandoverRequestedEvent = TypedEvent< + [string], + OwnershipHandoverRequestedEventObject +>; -export interface AccountCreatedEventObject { - account: string; - validator: string; - data: string; - index: BigNumber; +export type OwnershipHandoverRequestedEventFilter = + TypedEventFilter; + +export interface OwnershipTransferredEventObject { + oldOwner: string; + newOwner: string; } -export type AccountCreatedEvent = TypedEvent< - [string, string, string, BigNumber], - AccountCreatedEventObject +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject >; -export type AccountCreatedEventFilter = TypedEventFilter; +export type OwnershipTransferredEventFilter = + TypedEventFilter; export interface KernelFactory extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; @@ -130,50 +297,190 @@ export interface KernelFactory extends BaseContract { removeListener: OnEvent; functions: { + addStake( + unstakeDelaySec: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + cancelOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + completeOwnershipHandover( + pendingOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + createAccount( - _validator: string, + _implementation: string, _data: BytesLike, _index: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; entryPoint(overrides?: CallOverrides): Promise<[string]>; getAccountAddress( - _validator: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides ): Promise<[string]>; - kernelTemplate(overrides?: CallOverrides): Promise<[string]>; + initCodeHash( + overrides?: CallOverrides + ): Promise<[string] & { result: string }>; + + isAllowedImplementation( + arg0: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + owner(overrides?: CallOverrides): Promise<[string] & { result: string }>; + + ownershipHandoverExpiresAt( + pendingOwner: string, + overrides?: CallOverrides + ): Promise<[BigNumber] & { result: BigNumber }>; + + ownershipHandoverValidFor(overrides?: CallOverrides): Promise<[BigNumber]>; + + predictDeterministicAddress( + salt: BytesLike, + overrides?: CallOverrides + ): Promise<[string] & { predicted: string }>; + + renounceOwnership( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + requestOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + setEntryPoint( + _entryPoint: string, + overrides?: Overrides & { from?: string } + ): Promise; + + setImplementation( + _implementation: string, + _allow: boolean, + overrides?: Overrides & { from?: string } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + unlockStake( + overrides?: Overrides & { from?: string } + ): Promise; - nextTemplate(overrides?: CallOverrides): Promise<[string]>; + withdrawStake( + withdrawAddress: string, + overrides?: Overrides & { from?: string } + ): Promise; }; + addStake( + unstakeDelaySec: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + cancelOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + completeOwnershipHandover( + pendingOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + createAccount( - _validator: string, + _implementation: string, _data: BytesLike, _index: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; entryPoint(overrides?: CallOverrides): Promise; getAccountAddress( - _validator: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides ): Promise; - kernelTemplate(overrides?: CallOverrides): Promise; + initCodeHash(overrides?: CallOverrides): Promise; + + isAllowedImplementation( + arg0: string, + overrides?: CallOverrides + ): Promise; - nextTemplate(overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; + + ownershipHandoverExpiresAt( + pendingOwner: string, + overrides?: CallOverrides + ): Promise; + + ownershipHandoverValidFor(overrides?: CallOverrides): Promise; + + predictDeterministicAddress( + salt: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + requestOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + setEntryPoint( + _entryPoint: string, + overrides?: Overrides & { from?: string } + ): Promise; + + setImplementation( + _implementation: string, + _allow: boolean, + overrides?: Overrides & { from?: string } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + unlockStake( + overrides?: Overrides & { from?: string } + ): Promise; + + withdrawStake( + withdrawAddress: string, + overrides?: Overrides & { from?: string } + ): Promise; callStatic: { + addStake( + unstakeDelaySec: BigNumberish, + overrides?: CallOverrides + ): Promise; + + cancelOwnershipHandover(overrides?: CallOverrides): Promise; + + completeOwnershipHandover( + pendingOwner: string, + overrides?: CallOverrides + ): Promise; + createAccount( - _validator: string, + _implementation: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides @@ -182,73 +489,261 @@ export interface KernelFactory extends BaseContract { entryPoint(overrides?: CallOverrides): Promise; getAccountAddress( - _validator: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides ): Promise; - kernelTemplate(overrides?: CallOverrides): Promise; + initCodeHash(overrides?: CallOverrides): Promise; + + isAllowedImplementation( + arg0: string, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownershipHandoverExpiresAt( + pendingOwner: string, + overrides?: CallOverrides + ): Promise; + + ownershipHandoverValidFor(overrides?: CallOverrides): Promise; + + predictDeterministicAddress( + salt: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + requestOwnershipHandover(overrides?: CallOverrides): Promise; + + setEntryPoint( + _entryPoint: string, + overrides?: CallOverrides + ): Promise; + + setImplementation( + _implementation: string, + _allow: boolean, + overrides?: CallOverrides + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides + ): Promise; + + unlockStake(overrides?: CallOverrides): Promise; - nextTemplate(overrides?: CallOverrides): Promise; + withdrawStake( + withdrawAddress: string, + overrides?: CallOverrides + ): Promise; }; filters: { - "AccountCreated(address,address,bytes,uint256)"( - account?: string | null, - validator?: string | null, - data?: null, - index?: null - ): AccountCreatedEventFilter; - AccountCreated( - account?: string | null, - validator?: string | null, - data?: null, - index?: null - ): AccountCreatedEventFilter; + "Deployed(address,address)"( + proxy?: string | null, + implementation?: string | null + ): DeployedEventFilter; + Deployed( + proxy?: string | null, + implementation?: string | null + ): DeployedEventFilter; + + "OwnershipHandoverCanceled(address)"( + pendingOwner?: string | null + ): OwnershipHandoverCanceledEventFilter; + OwnershipHandoverCanceled( + pendingOwner?: string | null + ): OwnershipHandoverCanceledEventFilter; + + "OwnershipHandoverRequested(address)"( + pendingOwner?: string | null + ): OwnershipHandoverRequestedEventFilter; + OwnershipHandoverRequested( + pendingOwner?: string | null + ): OwnershipHandoverRequestedEventFilter; + + "OwnershipTransferred(address,address)"( + oldOwner?: string | null, + newOwner?: string | null + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + oldOwner?: string | null, + newOwner?: string | null + ): OwnershipTransferredEventFilter; }; estimateGas: { + addStake( + unstakeDelaySec: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + cancelOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + completeOwnershipHandover( + pendingOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + createAccount( - _validator: string, + _implementation: string, _data: BytesLike, _index: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; entryPoint(overrides?: CallOverrides): Promise; getAccountAddress( - _validator: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides ): Promise; - kernelTemplate(overrides?: CallOverrides): Promise; + initCodeHash(overrides?: CallOverrides): Promise; + + isAllowedImplementation( + arg0: string, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; - nextTemplate(overrides?: CallOverrides): Promise; + ownershipHandoverExpiresAt( + pendingOwner: string, + overrides?: CallOverrides + ): Promise; + + ownershipHandoverValidFor(overrides?: CallOverrides): Promise; + + predictDeterministicAddress( + salt: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + requestOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + setEntryPoint( + _entryPoint: string, + overrides?: Overrides & { from?: string } + ): Promise; + + setImplementation( + _implementation: string, + _allow: boolean, + overrides?: Overrides & { from?: string } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + unlockStake(overrides?: Overrides & { from?: string }): Promise; + + withdrawStake( + withdrawAddress: string, + overrides?: Overrides & { from?: string } + ): Promise; }; populateTransaction: { + addStake( + unstakeDelaySec: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + cancelOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + completeOwnershipHandover( + pendingOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + createAccount( - _validator: string, + _implementation: string, _data: BytesLike, _index: BigNumberish, - overrides?: Overrides & { from?: string } + overrides?: PayableOverrides & { from?: string } ): Promise; entryPoint(overrides?: CallOverrides): Promise; getAccountAddress( - _validator: string, _data: BytesLike, _index: BigNumberish, overrides?: CallOverrides ): Promise; - kernelTemplate(overrides?: CallOverrides): Promise; + initCodeHash(overrides?: CallOverrides): Promise; - nextTemplate(overrides?: CallOverrides): Promise; + isAllowedImplementation( + arg0: string, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownershipHandoverExpiresAt( + pendingOwner: string, + overrides?: CallOverrides + ): Promise; + + ownershipHandoverValidFor( + overrides?: CallOverrides + ): Promise; + + predictDeterministicAddress( + salt: BytesLike, + overrides?: CallOverrides + ): Promise; + + renounceOwnership( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + requestOwnershipHandover( + overrides?: PayableOverrides & { from?: string } + ): Promise; + + setEntryPoint( + _entryPoint: string, + overrides?: Overrides & { from?: string } + ): Promise; + + setImplementation( + _implementation: string, + _allow: boolean, + overrides?: Overrides & { from?: string } + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: PayableOverrides & { from?: string } + ): Promise; + + unlockStake( + overrides?: Overrides & { from?: string } + ): Promise; + + withdrawStake( + withdrawAddress: string, + overrides?: Overrides & { from?: string } + ): Promise; }; } diff --git a/src/typechain/factories/ECDSAValidator__factory.ts b/src/typechain/factories/ECDSAValidator__factory.ts index e179dd4..e55a6e5 100644 --- a/src/typechain/factories/ECDSAValidator__factory.ts +++ b/src/typechain/factories/ECDSAValidator__factory.ts @@ -45,7 +45,7 @@ const _abi = [ ], name: "disable", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -77,7 +77,31 @@ const _abi = [ ], name: "enable", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_caller", + type: "address", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "validCaller", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", type: "function", }, { @@ -96,7 +120,7 @@ const _abi = [ name: "validateSignature", outputs: [ { - internalType: "uint256", + internalType: "ValidationData", name: "", type: "uint256", }, @@ -182,12 +206,12 @@ const _abi = [ name: "validateUserOp", outputs: [ { - internalType: "uint256", + internalType: "ValidationData", name: "validationData", type: "uint256", }, ], - stateMutability: "view", + stateMutability: "payable", type: "function", }, ] as const; diff --git a/src/typechain/factories/KernelFactory__factory.ts b/src/typechain/factories/KernelFactory__factory.ts index 65d5140..48a7f5a 100644 --- a/src/typechain/factories/KernelFactory__factory.ts +++ b/src/typechain/factories/KernelFactory__factory.ts @@ -9,6 +9,11 @@ import type { KernelFactory, KernelFactoryInterface } from "../KernelFactory"; const _abi = [ { inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, { internalType: "contract IEntryPoint", name: "_entryPoint", @@ -18,42 +23,133 @@ const _abi = [ stateMutability: "nonpayable", type: "constructor", }, + { + inputs: [], + name: "DeploymentFailed", + type: "error", + }, + { + inputs: [], + name: "NewOwnerIsZeroAddress", + type: "error", + }, + { + inputs: [], + name: "NoHandoverRequest", + type: "error", + }, + { + inputs: [], + name: "SaltDoesNotStartWithCaller", + type: "error", + }, + { + inputs: [], + name: "Unauthorized", + type: "error", + }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", - name: "account", + name: "proxy", type: "address", }, { indexed: true, internalType: "address", - name: "validator", + name: "implementation", type: "address", }, + ], + name: "Deployed", + type: "event", + }, + { + anonymous: false, + inputs: [ { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + indexed: true, + internalType: "address", + name: "pendingOwner", + type: "address", }, + ], + name: "OwnershipHandoverCanceled", + type: "event", + }, + { + anonymous: false, + inputs: [ { - indexed: false, - internalType: "uint256", - name: "index", - type: "uint256", + indexed: true, + internalType: "address", + name: "pendingOwner", + type: "address", + }, + ], + name: "OwnershipHandoverRequested", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "oldOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", }, ], - name: "AccountCreated", + name: "OwnershipTransferred", type: "event", }, { inputs: [ { - internalType: "contract IKernelValidator", - name: "_validator", + internalType: "uint32", + name: "unstakeDelaySec", + type: "uint32", + }, + ], + name: "addStake", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "cancelOwnershipHandover", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "pendingOwner", + type: "address", + }, + ], + name: "completeOwnershipHandover", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_implementation", type: "address", }, { @@ -70,12 +166,12 @@ const _abi = [ name: "createAccount", outputs: [ { - internalType: "contract EIP1967Proxy", + internalType: "address", name: "proxy", type: "address", }, ], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -93,11 +189,6 @@ const _abi = [ }, { inputs: [ - { - internalType: "contract IKernelValidator", - name: "_validator", - type: "address", - }, { internalType: "bytes", name: "_data", @@ -122,30 +213,178 @@ const _abi = [ }, { inputs: [], - name: "kernelTemplate", + name: "initCodeHash", + outputs: [ + { + internalType: "bytes32", + name: "result", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "isAllowedImplementation", outputs: [ { - internalType: "contract TempKernel", + internalType: "bool", name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "result", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "pendingOwner", type: "address", }, ], + name: "ownershipHandoverExpiresAt", + outputs: [ + { + internalType: "uint256", + name: "result", + type: "uint256", + }, + ], stateMutability: "view", type: "function", }, { inputs: [], - name: "nextTemplate", + name: "ownershipHandoverValidFor", outputs: [ { - internalType: "contract Kernel", + internalType: "uint64", name: "", + type: "uint64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + ], + name: "predictDeterministicAddress", + outputs: [ + { + internalType: "address", + name: "predicted", type: "address", }, ], stateMutability: "view", type: "function", }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "requestOwnershipHandover", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IEntryPoint", + name: "_entryPoint", + type: "address", + }, + ], + name: "setEntryPoint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_implementation", + type: "address", + }, + { + internalType: "bool", + name: "_allow", + type: "bool", + }, + ], + name: "setImplementation", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "unlockStake", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address payable", + name: "withdrawAddress", + type: "address", + }, + ], + name: "withdrawStake", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, ] as const; export class KernelFactory__factory { diff --git a/src/typechain/factories/Kernel__factory.ts b/src/typechain/factories/Kernel__factory.ts index d112edb..57ed7b2 100644 --- a/src/typechain/factories/Kernel__factory.ts +++ b/src/typechain/factories/Kernel__factory.ts @@ -18,6 +18,26 @@ const _abi = [ stateMutability: "nonpayable", type: "constructor", }, + { + inputs: [], + name: "AlreadyInitialized", + type: "error", + }, + { + inputs: [], + name: "DisabledMode", + type: "error", + }, + { + inputs: [], + name: "NotAuthorizedCaller", + type: "error", + }, + { + inputs: [], + name: "NotEntryPoint", + type: "error", + }, { anonymous: false, inputs: [ @@ -62,6 +82,25 @@ const _abi = [ name: "ExecutionChanged", type: "event", }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Received", + type: "event", + }, { anonymous: false, inputs: [ @@ -89,7 +128,50 @@ const _abi = [ ], name: "disableMode", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "eip712Domain", + outputs: [ + { + internalType: "bytes1", + name: "fields", + type: "bytes1", + }, + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "version", + type: "string", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "address", + name: "verifyingContract", + type: "address", + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "uint256[]", + name: "extensions", + type: "uint256[]", + }, + ], + stateMutability: "view", type: "function", }, { @@ -124,13 +206,60 @@ const _abi = [ }, { internalType: "enum Operation", - name: "operation", + name: "", type: "uint8", }, ], name: "execute", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "executeDelegateCall", + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "executeBatch", + outputs: [], + stateMutability: "payable", type: "function", }, { @@ -139,7 +268,7 @@ const _abi = [ outputs: [ { internalType: "contract IKernelValidator", - name: "", + name: "validator", type: "address", }, ], @@ -152,7 +281,7 @@ const _abi = [ outputs: [ { internalType: "bytes4", - name: "", + name: "disabled", type: "bytes4", }, ], @@ -172,13 +301,13 @@ const _abi = [ { components: [ { - internalType: "uint48", - name: "validUntil", + internalType: "ValidAfter", + name: "validAfter", type: "uint48", }, { - internalType: "uint48", - name: "validAfter", + internalType: "ValidUntil", + name: "validUntil", type: "uint48", }, { @@ -260,7 +389,7 @@ const _abi = [ ], name: "initialize", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -427,7 +556,7 @@ const _abi = [ ], name: "setDefaultValidator", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -448,12 +577,12 @@ const _abi = [ type: "address", }, { - internalType: "uint48", + internalType: "ValidUntil", name: "_validUntil", type: "uint48", }, { - internalType: "uint48", + internalType: "ValidAfter", name: "_validAfter", type: "uint48", }, @@ -465,7 +594,7 @@ const _abi = [ ], name: "setExecution", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -478,7 +607,7 @@ const _abi = [ ], name: "upgradeTo", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { @@ -542,7 +671,7 @@ const _abi = [ }, ], internalType: "struct UserOperation", - name: "userOp", + name: "_userOp", type: "tuple", }, { @@ -559,12 +688,12 @@ const _abi = [ name: "validateUserOp", outputs: [ { - internalType: "uint256", + internalType: "ValidationData", name: "validationData", type: "uint256", }, ], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, { diff --git a/src/typechain/factories/index.ts b/src/typechain/factories/index.ts index 62aa0b1..8bebd0e 100644 --- a/src/typechain/factories/index.ts +++ b/src/typechain/factories/index.ts @@ -5,11 +5,9 @@ export { BarzAccountFacet__factory } from "./BarzAccountFacet__factory"; export { BarzDefaultFallbackHandler__factory } from "./BarzDefaultFallbackHandler__factory"; export { BarzFactory__factory } from "./BarzFactory__factory"; export { BarzSecp256r1VerificationFacet__factory } from "./BarzSecp256r1VerificationFacet__factory"; -export { ECDSAKernelFactory__factory } from "./ECDSAKernelFactory__factory"; export { ECDSAValidator__factory } from "./ECDSAValidator__factory"; export { EntryPoint__factory } from "./EntryPoint__factory"; export { Kernel__factory } from "./Kernel__factory"; export { KernelFactory__factory } from "./KernelFactory__factory"; -export { Multisend__factory } from "./Multisend__factory"; export { SimpleAccount__factory } from "./SimpleAccount__factory"; export { SimpleAccountFactory__factory } from "./SimpleAccountFactory__factory"; diff --git a/src/typechain/index.ts b/src/typechain/index.ts index aa9fcba..5f0fd7a 100644 --- a/src/typechain/index.ts +++ b/src/typechain/index.ts @@ -5,12 +5,10 @@ export type { BarzAccountFacet } from "./BarzAccountFacet"; export type { BarzDefaultFallbackHandler } from "./BarzDefaultFallbackHandler"; export type { BarzFactory } from "./BarzFactory"; export type { BarzSecp256r1VerificationFacet } from "./BarzSecp256r1VerificationFacet"; -export type { ECDSAKernelFactory } from "./ECDSAKernelFactory"; export type { ECDSAValidator } from "./ECDSAValidator"; export type { EntryPoint } from "./EntryPoint"; export type { Kernel } from "./Kernel"; export type { KernelFactory } from "./KernelFactory"; -export type { Multisend } from "./Multisend"; export type { SimpleAccount } from "./SimpleAccount"; export type { SimpleAccountFactory } from "./SimpleAccountFactory"; export * as factories from "./factories"; @@ -18,11 +16,9 @@ export { BarzAccountFacet__factory } from "./factories/BarzAccountFacet__factory export { BarzDefaultFallbackHandler__factory } from "./factories/BarzDefaultFallbackHandler__factory"; export { BarzFactory__factory } from "./factories/BarzFactory__factory"; export { BarzSecp256r1VerificationFacet__factory } from "./factories/BarzSecp256r1VerificationFacet__factory"; -export { ECDSAKernelFactory__factory } from "./factories/ECDSAKernelFactory__factory"; export { ECDSAValidator__factory } from "./factories/ECDSAValidator__factory"; export { EntryPoint__factory } from "./factories/EntryPoint__factory"; export { Kernel__factory } from "./factories/Kernel__factory"; export { KernelFactory__factory } from "./factories/KernelFactory__factory"; -export { Multisend__factory } from "./factories/Multisend__factory"; export { SimpleAccount__factory } from "./factories/SimpleAccount__factory"; export { SimpleAccountFactory__factory } from "./factories/SimpleAccountFactory__factory"; diff --git a/src/types.ts b/src/types.ts index 349d687..5e60458 100644 --- a/src/types.ts +++ b/src/types.ts @@ -71,4 +71,5 @@ export interface ICall { to: string; value: BigNumberish; data: BytesLike; + operation: BigNumberish; }