Function toNexusAccount

  • Returns Promise<{
        address: `0x${string}`;
        attesters: `0x${string}`[];
        chain: Chain;
        client: Client;
        decodeCalls?: ((data) => Promise<readonly Call[]>);
        encodeCalls: ((calls) => Promise<`0x${string}`>);
        encodeExecute: ((call) => Promise<`0x${string}`>);
        encodeExecuteBatch: ((calls) => Promise<`0x${string}`>);
        entryPoint: {
            abi: readonly [{
                inputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "ret";
                    type: "bytes";
                }];
                name: "DelegateAndRevert";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "opIndex";
                    type: "uint256";
                }, {
                    internalType: "string";
                    name: "reason";
                    type: "string";
                }];
                name: "FailedOp";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "opIndex";
                    type: "uint256";
                }, {
                    internalType: "string";
                    name: "reason";
                    type: "string";
                }, {
                    internalType: "bytes";
                    name: "inner";
                    type: "bytes";
                }];
                name: "FailedOpWithRevert";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                name: "PostOpReverted";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ReentrancyGuardReentrantCall";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "SenderAddressResult";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "aggregator";
                    type: "address";
                }];
                name: "SignatureValidationFailed";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "factory";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "paymaster";
                    type: "address";
                }];
                name: "AccountDeployed";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [];
                name: "BeforeExecution";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "totalDeposit";
                    type: "uint256";
                }];
                name: "Deposited";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "revertReason";
                    type: "bytes";
                }];
                name: "PostOpRevertReason";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "aggregator";
                    type: "address";
                }];
                name: "SignatureAggregatorChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "totalStaked";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "unstakeDelaySec";
                    type: "uint256";
                }];
                name: "StakeLocked";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "withdrawTime";
                    type: "uint256";
                }];
                name: "StakeUnlocked";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "StakeWithdrawn";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "paymaster";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "actualGasCost";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "actualGasUsed";
                    type: "uint256";
                }];
                name: "UserOperationEvent";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }];
                name: "UserOperationPrefundTooLow";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "revertReason";
                    type: "bytes";
                }];
                name: "UserOperationRevertReason";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "Withdrawn";
                type: "event";
            }, {
                inputs: readonly [{
                    internalType: "uint32";
                    name: "unstakeDelaySec";
                    type: "uint32";
                }];
                name: "addStake";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "balanceOf";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "target";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "delegateAndRevert";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "depositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deposits";
                outputs: readonly [{
                    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: readonly [{
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "getDepositInfo";
                outputs: readonly [{
                    components: readonly [{
                        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: readonly [{
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "uint192";
                    name: "key";
                    type: "uint192";
                }];
                name: "getNonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "initCode";
                    type: "bytes";
                }];
                name: "getSenderAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [{
                        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: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [{
                        components: readonly [{
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }];
                        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: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [{
                        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: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "key";
                    type: "uint192";
                }];
                name: "incrementNonce";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "callData";
                    type: "bytes";
                }, {
                    components: readonly [{
                        components: readonly [{
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }, {
                            internalType: ...;
                            name: ...;
                            type: ...;
                        }];
                        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: readonly [{
                    internalType: "uint256";
                    name: "actualGasCost";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint192";
                    name: "";
                    type: "uint192";
                }];
                name: "nonceSequenceNumber";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "unlockStake";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }];
                name: "withdrawStake";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "withdrawAmount";
                    type: "uint256";
                }];
                name: "withdrawTo";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }];
            address: `0x${string}`;
            version: "0.7";
        };
        extend?: {
            attesters: `0x${string}`[];
            chain: Chain;
            encodeExecute: ((call) => Promise<`0x${string}`>);
            encodeExecuteBatch: ((calls) => Promise<`0x${string}`>);
            factoryAddress: `0x${string}`;
            factoryData: `0x${string}`;
            getCounterFactualAddress: (() => Promise<`0x${string}`>);
            getInitCode: (() => `0x${string}`);
            getModule: (() => Assign_<BaseModule, undefined | object> & object);
            getUserOpHash: ((userOp) => `0x${string}`);
            isDeployed: (() => Promise<boolean>);
            publicClient: {
                account: undefined;
                batch?: {
                    multicall?: boolean | {
                        batchSize?: number;
                        wait?: number;
                    };
                };
                cacheTime: number;
                call: ((parameters) => Promise<CallReturnType>);
                ccipRead?: false | {
                    request?: ((parameters) => Promise<`0x${(...)}`>);
                };
                chain: undefined | Chain;
                createAccessList: ((parameters) => Promise<{
                    accessList: AccessList;
                    gasUsed: bigint;
                }>);
                createBlockFilter: (() => Promise<{
                    id: `0x${string}`;
                    request: EIP1193RequestFn<readonly [{
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }, {
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }, {
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }]>;
                    type: "block";
                }>);
                createContractEventFilter: (<const abi, eventName, args, strict, fromBlock, toBlock>(args) => Promise<CreateContractEventFilterReturnType<abi, eventName, args, strict, fromBlock, toBlock>>);
                createEventFilter: (<const abiEvent, const abiEvents, strict, fromBlock, toBlock, _EventName, _Args>(args?) => Promise<{
                    [K in string | number | symbol]: Filter<"event", abiEvents, _EventName, _Args, strict, fromBlock, toBlock>[K]
                }>);
                createPendingTransactionFilter: (() => Promise<{
                    id: `0x${string}`;
                    request: EIP1193RequestFn<readonly [{
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }, {
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }, {
                        Method: ...;
                        Parameters: ...;
                        ReturnType: ...;
                    }]>;
                    type: "transaction";
                }>);
                estimateContractGas: (<chain, const abi, functionName, args>(args) => Promise<bigint>);
                estimateFeesPerGas: (<chainOverride, type>(args?) => Promise<EstimateFeesPerGasReturnType<type>>);
                estimateGas: ((args) => Promise<bigint>);
                estimateMaxPriorityFeePerGas: (<chainOverride>(args?) => Promise<bigint>);
                extend: (<const client>(fn) => Client<Transport, undefined | Chain, undefined, PublicRpcSchema, {
                    [K in string | number | symbol]: client[K]
                } & PublicActions<Transport, undefined | Chain>>);
                getBalance: ((args) => Promise<bigint>);
                getBlobBaseFee: (() => Promise<bigint>);
                getBlock: (<includeTransactions, blockTag>(args?) => Promise<{
                    baseFeePerGas: null | bigint;
                    blobGasUsed: bigint;
                    difficulty: bigint;
                    excessBlobGas: bigint;
                    extraData: `0x${string}`;
                    gasLimit: bigint;
                    gasUsed: bigint;
                    hash: blockTag extends "pending"
                        ? null
                        : `0x${string}`;
                    logsBloom: blockTag extends "pending"
                        ? null
                        : `0x${string}`;
                    miner: `0x${string}`;
                    mixHash: `0x${string}`;
                    nonce: blockTag extends "pending"
                        ? null
                        : `0x${string}`;
                    number: blockTag extends "pending"
                        ? null
                        : bigint;
                    parentBeaconBlockRoot?: `0x${string}`;
                    parentHash: `0x${string}`;
                    receiptsRoot: `0x${string}`;
                    sealFields: `0x${string}`[];
                    sha3Uncles: `0x${string}`;
                    size: bigint;
                    stateRoot: `0x${string}`;
                    timestamp: bigint;
                    totalDifficulty: null | bigint;
                    transactions: includeTransactions extends true
                        ? ((...) | (...) | (...) | (...) | (...))[]
                        : `0x${(...)}`[];
                    transactionsRoot: `0x${string}`;
                    uncles: `0x${string}`[];
                    withdrawals?: Withdrawal[];
                    withdrawalsRoot?: `0x${string}`;
                }>);
                getBlockNumber: ((args?) => Promise<bigint>);
                getBlockTransactionCount: ((args?) => Promise<number>);
                getBytecode: ((args) => Promise<GetCodeReturnType>);
                getChainId: (() => Promise<number>);
                getCode: ((args) => Promise<GetCodeReturnType>);
                getContractEvents: (<const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>>);
                getEip712Domain: ((args) => Promise<GetEip712DomainReturnType>);
                getEnsAddress: ((args) => Promise<GetEnsAddressReturnType>);
                getEnsAvatar: ((args) => Promise<GetEnsAvatarReturnType>);
                getEnsName: ((args) => Promise<GetEnsNameReturnType>);
                getEnsResolver: ((args) => Promise<`0x${string}`>);
                getEnsText: ((args) => Promise<GetEnsTextReturnType>);
                getFeeHistory: ((args) => Promise<GetFeeHistoryReturnType>);
                getFilterChanges: (<filterType, const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetFilterChangesReturnType<filterType, abi, eventName, strict, fromBlock, toBlock>>);
                getFilterLogs: (<const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>>);
                getGasPrice: (() => Promise<bigint>);
                getLogs: (<const abiEvent, const abiEvents, strict, fromBlock, toBlock>(args?) => Promise<GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>>);
                getProof: ((args) => Promise<GetProofReturnType>);
                getStorageAt: ((args) => Promise<GetStorageAtReturnType>);
                getTransaction: (<blockTag>(args) => Promise<{
                    accessList?: undefined;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : `0x${(...)}`;
                    blockNumber: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : bigint;
                    chainId?: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${(...)}`;
                    transactionIndex: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : number;
                    type: "legacy";
                    typeHex: null | `0x${(...)}`;
                    v: bigint;
                    value: bigint;
                    yParity?: undefined;
                } | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : `0x${(...)}`;
                    blockNumber: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${(...)}`;
                    transactionIndex: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : number;
                    type: "eip2930";
                    typeHex: null | `0x${(...)}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                } | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : `0x${(...)}`;
                    blockNumber: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${(...)}`;
                    transactionIndex: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : number;
                    type: "eip1559";
                    typeHex: null | `0x${(...)}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                } | {
                    accessList: AccessList;
                    authorizationList?: undefined;
                    blobVersionedHashes: readonly `0x${(...)}`[];
                    blockHash: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : `0x${(...)}`;
                    blockNumber: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas: bigint;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${(...)}`;
                    transactionIndex: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : number;
                    type: "eip4844";
                    typeHex: null | `0x${(...)}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                } | {
                    accessList: AccessList;
                    authorizationList: SignedAuthorizationList;
                    blobVersionedHashes?: undefined;
                    blockHash: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : `0x${(...)}`;
                    blockNumber: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${(...)}`;
                    transactionIndex: ((...) extends (...)
                            ? (...)
                            : (...)) extends true
                        ? null
                        : number;
                    type: "eip7702";
                    typeHex: null | `0x${(...)}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }>);
                getTransactionConfirmations: ((args) => Promise<bigint>);
                getTransactionCount: ((args) => Promise<number>);
                getTransactionReceipt: ((args) => Promise<TransactionReceipt>);
                key: string;
                multicall: (<const contracts, allowFailure>(args) => Promise<MulticallReturnType<contracts, allowFailure>>);
                name: string;
                pollingInterval: number;
                prepareTransactionRequest: (<const request, chainOverride, accountOverride>(args) => Promise<{
                    [K in string | number | symbol]: (UnionRequiredBy<(...), (...)> & ((...) extends (...)
                        ? (...)
                        : (...)))[K]
                }>);
                readContract: (<const abi, functionName, const args>(args) => Promise<ReadContractReturnType<abi, functionName, args>>);
                request: EIP1193RequestFn<PublicRpcSchema>;
                sendRawTransaction: ((args) => Promise<`0x${string}`>);
                simulate: (<const calls>(args) => Promise<SimulateReturnType<calls>>);
                simulateContract: (<const abi, functionName, const args, chainOverride, accountOverride>(args) => Promise<SimulateContractReturnType<abi, functionName, args, undefined | Chain, undefined | Account, chainOverride, accountOverride>>);
                transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
                type: string;
                uid: string;
                uninstallFilter: ((args) => Promise<boolean>);
                verifyMessage: ((args) => Promise<boolean>);
                verifySiweMessage: ((args) => Promise<boolean>);
                verifyTypedData: ((args) => Promise<boolean>);
                waitForTransactionReceipt: ((args) => Promise<TransactionReceipt>);
                watchBlockNumber: ((args) => WatchBlockNumberReturnType);
                watchBlocks: (<includeTransactions, blockTag>(args) => WatchBlocksReturnType);
                watchContractEvent: (<const abi, eventName, strict>(args) => WatchContractEventReturnType);
                watchEvent: (<const abiEvent, const abiEvents, strict>(args) => WatchEventReturnType);
                watchPendingTransactions: ((args) => WatchPendingTransactionsReturnType);
            };
            setModule: ((validationModule) => void);
            signer: {
                address: `0x${string}`;
                experimental_signAuthorization?: ((parameters) => Promise<SignAuthorizationReturnType>);
                nonceManager?: NonceManager;
                publicKey: `0x${string}`;
                sign?: ((parameters) => Promise<`0x${string}`>);
                signMessage: ((__namedParameters) => Promise<`0x${string}`>);
                signTransaction: (<serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<(...)>>, `0x${string}`> extends true
                    ? TransactionSerialized<GetTransactionType<transaction>>
                    : `0x${string}`>);
                signTypedData: (<const typedData, primaryType>(parameters) => Promise<`0x${string}`>);
                source: string;
                type: "local";
            };
            validatorAddress: `0x${string}`;
            walletClient: {
                account: undefined | Account;
                addChain: ((args) => Promise<void>);
                batch?: {
                    multicall?: boolean | {
                        batchSize?: number;
                        wait?: number;
                    };
                };
                cacheTime: number;
                ccipRead?: false | {
                    request?: ((parameters) => Promise<`0x${(...)}`>);
                };
                chain: undefined | Chain;
                deployContract: (<const abi, chainOverride>(args) => Promise<`0x${string}`>);
                extend: (<const client>(fn) => Client<Transport, undefined | Chain, undefined | Account, WalletRpcSchema, {
                    [K in string | number | symbol]: client[K]
                } & WalletActions<undefined | Chain, undefined | Account>>);
                getAddresses: (() => Promise<GetAddressesReturnType>);
                getChainId: (() => Promise<number>);
                getPermissions: (() => Promise<GetPermissionsReturnType>);
                key: string;
                name: string;
                pollingInterval: number;
                prepareTransactionRequest: (<const request, chainOverride, accountOverride>(args) => Promise<{
                    [K in string | number | symbol]: (UnionRequiredBy<(...), (...)> & ((...) extends (...)
                        ? (...)
                        : (...)))[K]
                }>);
                request: EIP1193RequestFn<WalletRpcSchema>;
                requestAddresses: (() => Promise<RequestAddressesReturnType>);
                requestPermissions: ((args) => Promise<RequestPermissionsReturnType>);
                sendRawTransaction: ((args) => Promise<`0x${string}`>);
                sendTransaction: (<const request, chainOverride>(args) => Promise<`0x${string}`>);
                signMessage: ((args) => Promise<`0x${string}`>);
                signTransaction: (<chainOverride, const request>(args) => Promise<TransactionSerialized<GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))>, (GetTransactionType<(...), (...)> extends "eip1559"
                    ? `0x02${(...)}`
                    : never) | (GetTransactionType<(...), (...)> extends "eip2930"
                    ? `0x01${(...)}`
                    : never) | (GetTransactionType<(...), (...)> extends "eip4844"
                    ? `0x03${(...)}`
                    : never) | (GetTransactionType<(...), (...)> extends "eip7702"
                    ? `0x04${(...)}`
                    : never) | (GetTransactionType<(...), (...)> extends "legacy"
                    ? TransactionSerializedLegacy
                    : never)>>);
                signTypedData: (<const typedData, primaryType>(args) => Promise<`0x${string}`>);
                switchChain: ((args) => Promise<void>);
                transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
                type: string;
                uid: string;
                watchAsset: ((args) => Promise<boolean>);
                writeContract: (<const abi, functionName, args, chainOverride>(args) => Promise<`0x${string}`>);
            };
        };
        factoryAddress: `0x${string}`;
        factoryData: `0x${string}`;
        getAddress: (() => Promise<`0x${string}`>);
        getCounterFactualAddress: (() => Promise<`0x${string}`>);
        getFactoryArgs: (() => Promise<{
            factory?: `0x${string}`;
            factoryData?: `0x${string}`;
        }>);
        getInitCode: (() => `0x${string}`);
        getModule: (() => Assign_<BaseModule, undefined | object> & object);
        getNonce: ((parameters?) => Promise<bigint>);
        getStubSignature: ((parameters?) => Promise<`0x${string}`>);
        getUserOpHash: ((userOp) => `0x${string}`);
        isDeployed: (() => Promise<boolean>);
        nonceKeyManager?: NonceManager;
        publicClient: {
            account: undefined;
            batch?: {
                multicall?: boolean | {
                    batchSize?: number;
                    wait?: number;
                };
            };
            cacheTime: number;
            call: ((parameters) => Promise<CallReturnType>);
            ccipRead?: false | {
                request?: ((parameters) => Promise<`0x${string}`>);
            };
            chain: undefined | Chain;
            createAccessList: ((parameters) => Promise<{
                accessList: AccessList;
                gasUsed: bigint;
            }>);
            createBlockFilter: (() => Promise<{
                id: `0x${string}`;
                request: EIP1193RequestFn<readonly [{
                    Method: "eth_getFilterChanges";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: (...)[] | (...)[];
                }, {
                    Method: "eth_getFilterLogs";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: RpcLog[];
                }, {
                    Method: "eth_uninstallFilter";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: boolean;
                }]>;
                type: "block";
            }>);
            createContractEventFilter: (<const abi, eventName, args, strict, fromBlock, toBlock>(args) => Promise<CreateContractEventFilterReturnType<abi, eventName, args, strict, fromBlock, toBlock>>);
            createEventFilter: (<const abiEvent, const abiEvents, strict, fromBlock, toBlock, _EventName, _Args>(args?) => Promise<{
                [K in string | number | symbol]: Filter<"event", abiEvents, _EventName, _Args, strict, fromBlock, toBlock>[K]
            }>);
            createPendingTransactionFilter: (() => Promise<{
                id: `0x${string}`;
                request: EIP1193RequestFn<readonly [{
                    Method: "eth_getFilterChanges";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: (...)[] | (...)[];
                }, {
                    Method: "eth_getFilterLogs";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: RpcLog[];
                }, {
                    Method: "eth_uninstallFilter";
                    Parameters: [filterId: `0x${(...)}`];
                    ReturnType: boolean;
                }]>;
                type: "transaction";
            }>);
            estimateContractGas: (<chain, const abi, functionName, args>(args) => Promise<bigint>);
            estimateFeesPerGas: (<chainOverride, type>(args?) => Promise<EstimateFeesPerGasReturnType<type>>);
            estimateGas: ((args) => Promise<bigint>);
            estimateMaxPriorityFeePerGas: (<chainOverride>(args?) => Promise<bigint>);
            extend: (<const client>(fn) => Client<Transport, undefined | Chain, undefined, PublicRpcSchema, {
                [K in string | number | symbol]: client[K]
            } & PublicActions<Transport, undefined | Chain>>);
            getBalance: ((args) => Promise<bigint>);
            getBlobBaseFee: (() => Promise<bigint>);
            getBlock: (<includeTransactions, blockTag>(args?) => Promise<{
                baseFeePerGas: null | bigint;
                blobGasUsed: bigint;
                difficulty: bigint;
                excessBlobGas: bigint;
                extraData: `0x${string}`;
                gasLimit: bigint;
                gasUsed: bigint;
                hash: blockTag extends "pending"
                    ? null
                    : `0x${string}`;
                logsBloom: blockTag extends "pending"
                    ? null
                    : `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: blockTag extends "pending"
                    ? null
                    : `0x${string}`;
                number: blockTag extends "pending"
                    ? null
                    : bigint;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields: `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: bigint;
                stateRoot: `0x${string}`;
                timestamp: bigint;
                totalDifficulty: null | bigint;
                transactions: includeTransactions extends true
                    ? ({
                        accessList?: undefined;
                        authorizationList?: undefined;
                        blobVersionedHashes?: undefined;
                        blockHash: (...) extends (...)
                            ? (...)
                            : (...);
                        blockNumber: (...) extends (...)
                            ? (...)
                            : (...);
                        chainId?: (...) | (...);
                        from: `0x${(...)}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${(...)}`;
                        input: `0x${(...)}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${(...)}`;
                        s: `0x${(...)}`;
                        to: (...) | (...);
                        transactionIndex: (...) extends (...)
                            ? (...)
                            : (...);
                        type: "legacy";
                        typeHex: (...) | (...);
                        v: bigint;
                        value: bigint;
                        yParity?: undefined;
                    } | {
                        accessList: AccessList;
                        authorizationList?: undefined;
                        blobVersionedHashes?: undefined;
                        blockHash: (...) extends (...)
                            ? (...)
                            : (...);
                        blockNumber: (...) extends (...)
                            ? (...)
                            : (...);
                        chainId: number;
                        from: `0x${(...)}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${(...)}`;
                        input: `0x${(...)}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${(...)}`;
                        s: `0x${(...)}`;
                        to: (...) | (...);
                        transactionIndex: (...) extends (...)
                            ? (...)
                            : (...);
                        type: "eip2930";
                        typeHex: (...) | (...);
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    } | {
                        accessList: AccessList;
                        authorizationList?: undefined;
                        blobVersionedHashes?: undefined;
                        blockHash: (...) extends (...)
                            ? (...)
                            : (...);
                        blockNumber: (...) extends (...)
                            ? (...)
                            : (...);
                        chainId: number;
                        from: `0x${(...)}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${(...)}`;
                        input: `0x${(...)}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${(...)}`;
                        s: `0x${(...)}`;
                        to: (...) | (...);
                        transactionIndex: (...) extends (...)
                            ? (...)
                            : (...);
                        type: "eip1559";
                        typeHex: (...) | (...);
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    } | {
                        accessList: AccessList;
                        authorizationList?: undefined;
                        blobVersionedHashes: readonly (...)[];
                        blockHash: (...) extends (...)
                            ? (...)
                            : (...);
                        blockNumber: (...) extends (...)
                            ? (...)
                            : (...);
                        chainId: number;
                        from: `0x${(...)}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${(...)}`;
                        input: `0x${(...)}`;
                        maxFeePerBlobGas: bigint;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${(...)}`;
                        s: `0x${(...)}`;
                        to: (...) | (...);
                        transactionIndex: (...) extends (...)
                            ? (...)
                            : (...);
                        type: "eip4844";
                        typeHex: (...) | (...);
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    } | {
                        accessList: AccessList;
                        authorizationList: SignedAuthorizationList;
                        blobVersionedHashes?: undefined;
                        blockHash: (...) extends (...)
                            ? (...)
                            : (...);
                        blockNumber: (...) extends (...)
                            ? (...)
                            : (...);
                        chainId: number;
                        from: `0x${(...)}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${(...)}`;
                        input: `0x${(...)}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${(...)}`;
                        s: `0x${(...)}`;
                        to: (...) | (...);
                        transactionIndex: (...) extends (...)
                            ? (...)
                            : (...);
                        type: "eip7702";
                        typeHex: (...) | (...);
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    })[]
                    : `0x${string}`[];
                transactionsRoot: `0x${string}`;
                uncles: `0x${string}`[];
                withdrawals?: Withdrawal[];
                withdrawalsRoot?: `0x${string}`;
            }>);
            getBlockNumber: ((args?) => Promise<bigint>);
            getBlockTransactionCount: ((args?) => Promise<number>);
            getBytecode: ((args) => Promise<GetCodeReturnType>);
            getChainId: (() => Promise<number>);
            getCode: ((args) => Promise<GetCodeReturnType>);
            getContractEvents: (<const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>>);
            getEip712Domain: ((args) => Promise<GetEip712DomainReturnType>);
            getEnsAddress: ((args) => Promise<GetEnsAddressReturnType>);
            getEnsAvatar: ((args) => Promise<GetEnsAvatarReturnType>);
            getEnsName: ((args) => Promise<GetEnsNameReturnType>);
            getEnsResolver: ((args) => Promise<`0x${string}`>);
            getEnsText: ((args) => Promise<GetEnsTextReturnType>);
            getFeeHistory: ((args) => Promise<GetFeeHistoryReturnType>);
            getFilterChanges: (<filterType, const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetFilterChangesReturnType<filterType, abi, eventName, strict, fromBlock, toBlock>>);
            getFilterLogs: (<const abi, eventName, strict, fromBlock, toBlock>(args) => Promise<GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>>);
            getGasPrice: (() => Promise<bigint>);
            getLogs: (<const abiEvent, const abiEvents, strict, fromBlock, toBlock>(args?) => Promise<GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>>);
            getProof: ((args) => Promise<GetProofReturnType>);
            getStorageAt: ((args) => Promise<GetStorageAtReturnType>);
            getTransaction: (<blockTag>(args) => Promise<{
                accessList?: undefined;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId?: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "legacy";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity?: undefined;
            } | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip2930";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            } | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip1559";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            } | {
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes: readonly `0x${string}`[];
                blockHash: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas: bigint;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip4844";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            } | {
                accessList: AccessList;
                authorizationList: SignedAuthorizationList;
                blobVersionedHashes?: undefined;
                blockHash: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip7702";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }>);
            getTransactionConfirmations: ((args) => Promise<bigint>);
            getTransactionCount: ((args) => Promise<number>);
            getTransactionReceipt: ((args) => Promise<TransactionReceipt>);
            key: string;
            multicall: (<const contracts, allowFailure>(args) => Promise<MulticallReturnType<contracts, allowFailure>>);
            name: string;
            pollingInterval: number;
            prepareTransactionRequest: (<const request, chainOverride, accountOverride>(args) => Promise<{
                [K in string | number | symbol]: (UnionRequiredBy<Extract<(...), (...)> & {
                    chainId?: ...;
                }, ParameterTypeToParameters<(...) extends (...)
                    ? (...)
                    : (...)>> & (unknown extends request["kzg"]
                    ? {}
                    : Pick<request, "kzg">))[K]
            }>);
            readContract: (<const abi, functionName, const args>(args) => Promise<ReadContractReturnType<abi, functionName, args>>);
            request: EIP1193RequestFn<PublicRpcSchema>;
            sendRawTransaction: ((args) => Promise<`0x${string}`>);
            simulate: (<const calls>(args) => Promise<SimulateReturnType<calls>>);
            simulateContract: (<const abi, functionName, const args, chainOverride, accountOverride>(args) => Promise<SimulateContractReturnType<abi, functionName, args, undefined | Chain, undefined | Account, chainOverride, accountOverride>>);
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            uninstallFilter: ((args) => Promise<boolean>);
            verifyMessage: ((args) => Promise<boolean>);
            verifySiweMessage: ((args) => Promise<boolean>);
            verifyTypedData: ((args) => Promise<boolean>);
            waitForTransactionReceipt: ((args) => Promise<TransactionReceipt>);
            watchBlockNumber: ((args) => WatchBlockNumberReturnType);
            watchBlocks: (<includeTransactions, blockTag>(args) => WatchBlocksReturnType);
            watchContractEvent: (<const abi, eventName, strict>(args) => WatchContractEventReturnType);
            watchEvent: (<const abiEvent, const abiEvents, strict>(args) => WatchEventReturnType);
            watchPendingTransactions: ((args) => WatchPendingTransactionsReturnType);
        };
        setModule: ((validationModule) => void);
        sign?: ((parameters) => Promise<`0x${string}`>);
        signMessage: ((parameters) => Promise<`0x${string}`>);
        signTypedData: (<const typedData, primaryType>(parameters) => Promise<`0x${string}`>);
        signUserOperation: ((parameters) => Promise<`0x${string}`>);
        signer: {
            address: `0x${string}`;
            experimental_signAuthorization?: ((parameters) => Promise<SignAuthorizationReturnType>);
            nonceManager?: NonceManager;
            publicKey: `0x${string}`;
            sign?: ((parameters) => Promise<`0x${string}`>);
            signMessage: ((__namedParameters) => Promise<`0x${string}`>);
            signTransaction: (<serializer, transaction>(transaction, options?) => Promise<IsNarrowable<TransactionSerialized<GetTransactionType<transaction>>, `0x${string}`> extends true
                ? TransactionSerialized<GetTransactionType<transaction>>
                : `0x${string}`>);
            signTypedData: (<const typedData, primaryType>(parameters) => Promise<`0x${string}`>);
            source: string;
            type: "local";
        };
        type: "smart";
        userOperation?: {
            estimateGas?: ((userOperation) => Promise<undefined | ExactPartial<EstimateUserOperationGasReturnType>>);
        };
        validatorAddress: `0x${string}`;
        walletClient: {
            account: undefined | Account;
            addChain: ((args) => Promise<void>);
            batch?: {
                multicall?: boolean | {
                    batchSize?: number;
                    wait?: number;
                };
            };
            cacheTime: number;
            ccipRead?: false | {
                request?: ((parameters) => Promise<`0x${string}`>);
            };
            chain: undefined | Chain;
            deployContract: (<const abi, chainOverride>(args) => Promise<`0x${string}`>);
            extend: (<const client>(fn) => Client<Transport, undefined | Chain, undefined | Account, WalletRpcSchema, {
                [K in string | number | symbol]: client[K]
            } & WalletActions<undefined | Chain, undefined | Account>>);
            getAddresses: (() => Promise<GetAddressesReturnType>);
            getChainId: (() => Promise<number>);
            getPermissions: (() => Promise<GetPermissionsReturnType>);
            key: string;
            name: string;
            pollingInterval: number;
            prepareTransactionRequest: (<const request, chainOverride, accountOverride>(args) => Promise<{
                [K in string | number | symbol]: (UnionRequiredBy<Extract<(...), (...)> & {
                    chainId?: ...;
                }, ParameterTypeToParameters<(...) extends (...)
                    ? (...)
                    : (...)>> & (unknown extends request["kzg"]
                    ? {}
                    : Pick<request, "kzg">))[K]
            }>);
            request: EIP1193RequestFn<WalletRpcSchema>;
            requestAddresses: (() => Promise<RequestAddressesReturnType>);
            requestPermissions: ((args) => Promise<RequestPermissionsReturnType>);
            sendRawTransaction: ((args) => Promise<`0x${string}`>);
            sendTransaction: (<const request, chainOverride>(args) => Promise<`0x${string}`>);
            signMessage: ((args) => Promise<`0x${string}`>);
            signTransaction: (<chainOverride, const request>(args) => Promise<TransactionSerialized<GetTransactionType<request, (request extends LegacyProperties
                ? "legacy"
                : never) | (request extends EIP1559Properties
                ? "eip1559"
                : never) | (request extends EIP2930Properties
                ? "eip2930"
                : never) | (request extends EIP4844Properties
                ? "eip4844"
                : never) | (request extends EIP7702Properties
                ? "eip7702"
                : never) | (request["type"] extends undefined | string
                ? Extract<any[any], string>
                : never)>, (GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))> extends "eip1559"
                ? `0x02${string}`
                : never) | (GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))> extends "eip2930"
                ? `0x01${string}`
                : never) | (GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))> extends "eip4844"
                ? `0x03${string}`
                : never) | (GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))> extends "eip7702"
                ? `0x04${string}`
                : never) | (GetTransactionType<request, ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...)) | ((...) extends (...)
                    ? (...)
                    : (...))> extends "legacy"
                ? TransactionSerializedLegacy
                : never)>>);
            signTypedData: (<const typedData, primaryType>(args) => Promise<`0x${string}`>);
            switchChain: ((args) => Promise<void>);
            transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
            type: string;
            uid: string;
            watchAsset: ((args) => Promise<boolean>);
            writeContract: (<const abi, functionName, args, chainOverride>(args) => Promise<`0x${string}`>);
        };
    }>

    Nexus Smart Account. NexusAccount

    Description

    Create a Nexus Smart Account.

    Example

    import { toNexusAccount } from '@biconomy/abstractjs'
    import { createWalletClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const account = await toNexusAccount({
    chain: mainnet,
    transport: http(),
    signer: '0x...',
    })