import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../common"; export declare type TransactionStruct = { to: PromiseOrValue; value: PromiseOrValue; callData: PromiseOrValue; nonce: PromiseOrValue; signatures: PromiseOrValue; }; export declare type TransactionStructOutput = [ string, BigNumber, string, BigNumber, string ] & { to: string; value: BigNumber; callData: string; nonce: BigNumber; signatures: string; }; export interface LaserWalletInterface extends utils.Interface { functions: { "NAME()": FunctionFragment; "VERSION()": FunctionFragment; "addGuardian(address)": FunctionFragment; "addRecoveryOwner(address)": FunctionFragment; "changeOwner(address)": FunctionFragment; "changeSingleton(address)": FunctionFragment; "domainSeparator()": FunctionFragment; "exec(address,uint256,bytes,uint256,bytes)": FunctionFragment; "getChainId()": FunctionFragment; "getConfig()": FunctionFragment; "getGuardians()": FunctionFragment; "getRecoveryOwners()": FunctionFragment; "guardians(address)": FunctionFragment; "init(address,address[],address[],bytes)": FunctionFragment; "isValidSignature(bytes32,bytes)": FunctionFragment; "multiCall((address,uint256,bytes,uint256,bytes)[])": FunctionFragment; "nonce()": FunctionFragment; "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": FunctionFragment; "onERC1155Received(address,address,uint256,uint256,bytes)": FunctionFragment; "onERC721Received(address,address,uint256,bytes)": FunctionFragment; "operationHash(address,uint256,bytes,uint256)": FunctionFragment; "owner()": FunctionFragment; "recover(address)": FunctionFragment; "recovery(uint256,bytes,bytes)": FunctionFragment; "recoveryOwners(address)": FunctionFragment; "removeGuardian(address,address)": FunctionFragment; "removeRecoveryOwner(address,address)": FunctionFragment; "singleton()": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; "tokensReceived(address,address,address,uint256,bytes,bytes)": FunctionFragment; "unlock()": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "NAME" | "VERSION" | "addGuardian" | "addRecoveryOwner" | "changeOwner" | "changeSingleton" | "domainSeparator" | "exec" | "getChainId" | "getConfig" | "getGuardians" | "getRecoveryOwners" | "guardians" | "init" | "isValidSignature" | "multiCall" | "nonce" | "onERC1155BatchReceived" | "onERC1155Received" | "onERC721Received" | "operationHash" | "owner" | "recover" | "recovery" | "recoveryOwners" | "removeGuardian" | "removeRecoveryOwner" | "singleton" | "supportsInterface" | "tokensReceived" | "unlock"): FunctionFragment; encodeFunctionData(functionFragment: "NAME", values?: undefined): string; encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; encodeFunctionData(functionFragment: "addGuardian", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "addRecoveryOwner", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "changeOwner", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "changeSingleton", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "domainSeparator", values?: undefined): string; encodeFunctionData(functionFragment: "exec", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "getChainId", values?: undefined): string; encodeFunctionData(functionFragment: "getConfig", values?: undefined): string; encodeFunctionData(functionFragment: "getGuardians", values?: undefined): string; encodeFunctionData(functionFragment: "getRecoveryOwners", values?: undefined): string; encodeFunctionData(functionFragment: "guardians", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "init", values: [ PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: "isValidSignature", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "multiCall", values: [TransactionStruct[]]): string; encodeFunctionData(functionFragment: "nonce", values?: undefined): string; encodeFunctionData(functionFragment: "onERC1155BatchReceived", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: "onERC1155Received", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "onERC721Received", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "operationHash", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "recover", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "recovery", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "recoveryOwners", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "removeGuardian", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "removeRecoveryOwner", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "singleton", values?: undefined): string; encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "tokensReceived", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "unlock", values?: undefined): string; decodeFunctionResult(functionFragment: "NAME", data: BytesLike): Result; decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addGuardian", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addRecoveryOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeSingleton", data: BytesLike): Result; decodeFunctionResult(functionFragment: "domainSeparator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "exec", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getConfig", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGuardians", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRecoveryOwners", data: BytesLike): Result; decodeFunctionResult(functionFragment: "guardians", data: BytesLike): Result; decodeFunctionResult(functionFragment: "init", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isValidSignature", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiCall", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onERC1155BatchReceived", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onERC1155Received", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result; decodeFunctionResult(functionFragment: "operationHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recover", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recovery", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recoveryOwners", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeGuardian", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeRecoveryOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "singleton", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokensReceived", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unlock", data: BytesLike): Result; events: { "ExecSuccess(address,uint256,uint256,bytes4)": EventFragment; "GuardianRemoved(address)": EventFragment; "NewGuardian(address)": EventFragment; "NewRecoveryOwner(address)": EventFragment; "OwnerChanged(address)": EventFragment; "RecoverActivated(address)": EventFragment; "RecoveryOwnerRemoved(address)": EventFragment; "SingletonChanged(address)": EventFragment; "WalletUnlocked()": EventFragment; }; getEvent(nameOrSignatureOrTopic: "ExecSuccess"): EventFragment; getEvent(nameOrSignatureOrTopic: "GuardianRemoved"): EventFragment; getEvent(nameOrSignatureOrTopic: "NewGuardian"): EventFragment; getEvent(nameOrSignatureOrTopic: "NewRecoveryOwner"): EventFragment; getEvent(nameOrSignatureOrTopic: "OwnerChanged"): EventFragment; getEvent(nameOrSignatureOrTopic: "RecoverActivated"): EventFragment; getEvent(nameOrSignatureOrTopic: "RecoveryOwnerRemoved"): EventFragment; getEvent(nameOrSignatureOrTopic: "SingletonChanged"): EventFragment; getEvent(nameOrSignatureOrTopic: "WalletUnlocked"): EventFragment; } export interface ExecSuccessEventObject { to: string; value: BigNumber; nonce: BigNumber; funcSig: string; } export declare type ExecSuccessEvent = TypedEvent<[ string, BigNumber, BigNumber, string ], ExecSuccessEventObject>; export declare type ExecSuccessEventFilter = TypedEventFilter; export interface GuardianRemovedEventObject { removedGuardian: string; } export declare type GuardianRemovedEvent = TypedEvent<[ string ], GuardianRemovedEventObject>; export declare type GuardianRemovedEventFilter = TypedEventFilter; export interface NewGuardianEventObject { newGuardian: string; } export declare type NewGuardianEvent = TypedEvent<[string], NewGuardianEventObject>; export declare type NewGuardianEventFilter = TypedEventFilter; export interface NewRecoveryOwnerEventObject { NewRecoveryOwner: string; } export declare type NewRecoveryOwnerEvent = TypedEvent<[ string ], NewRecoveryOwnerEventObject>; export declare type NewRecoveryOwnerEventFilter = TypedEventFilter; export interface OwnerChangedEventObject { newOwner: string; } export declare type OwnerChangedEvent = TypedEvent<[string], OwnerChangedEventObject>; export declare type OwnerChangedEventFilter = TypedEventFilter; export interface RecoverActivatedEventObject { newOwner: string; } export declare type RecoverActivatedEvent = TypedEvent<[ string ], RecoverActivatedEventObject>; export declare type RecoverActivatedEventFilter = TypedEventFilter; export interface RecoveryOwnerRemovedEventObject { removedRecoveryOwner: string; } export declare type RecoveryOwnerRemovedEvent = TypedEvent<[ string ], RecoveryOwnerRemovedEventObject>; export declare type RecoveryOwnerRemovedEventFilter = TypedEventFilter; export interface SingletonChangedEventObject { newSingleton: string; } export declare type SingletonChangedEvent = TypedEvent<[ string ], SingletonChangedEventObject>; export declare type SingletonChangedEventFilter = TypedEventFilter; export interface WalletUnlockedEventObject { } export declare type WalletUnlockedEvent = TypedEvent<[], WalletUnlockedEventObject>; export declare type WalletUnlockedEventFilter = TypedEventFilter; export interface LaserWallet extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: LaserWalletInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { NAME(overrides?: CallOverrides): Promise<[string]>; VERSION(overrides?: CallOverrides): Promise<[string]>; /** * Restricted, can only be called by address(this). * Adds a new guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param newGuardian Address of the new guardian. */ addGuardian(newGuardian: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Adds a new recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param newRecoveryOwner Address of the new recovery owner. */ addRecoveryOwner(newRecoveryOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the owner of the wallet. Can only be called by the owner + recovery owner or owner + guardian. * @param newOwner Address of the new owner. */ changeOwner(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the singleton. Can only be called by the owner + recovery owner or owner + guardian. * @param newSingleton Address of the new singleton. */ changeSingleton(newSingleton: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Domain separator for this wallet. */ domainSeparator(overrides?: CallOverrides): Promise<[string]>; /** * Executes a generic transaction. The transaction is required to be signed by the owner + recovery owner or owner + guardian while the wallet is not locked. * @param _nonce Anti-replay number. * @param callData Data payload to send. * @param signatures Signatures of the hash of the transaction. * @param to Destination address. * @param value Amount in WEI to transfer. */ exec(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** */ getChainId(overrides?: CallOverrides): Promise<[BigNumber] & { chainId: BigNumber; }>; /** */ getConfig(overrides?: CallOverrides): Promise<[ BigNumber, boolean, string ] & { configTimestamp: BigNumber; _isLocked: boolean; oldOwner: string; }>; /** */ getGuardians(overrides?: CallOverrides): Promise<[string[]]>; /** */ getRecoveryOwners(overrides?: CallOverrides): Promise<[string[]]>; guardians(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; /** * Setup function, sets initial storage of the wallet. It can't be called after initialization. * @param _guardians Array of guardians. * @param _owner The owner of the wallet. * @param _recoveryOwners Array of recovery owners. * @param ownerSignature Signature of the owner that validates the correctness of the address. */ init(_owner: PromiseOrValue, _guardians: PromiseOrValue[], _recoveryOwners: PromiseOrValue[], ownerSignature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Should return whether the signature provided is valid for the provided hash. * @param hash Hash of the data to be signed. * @param signature Signature byte array associated with hash. MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls */ isValidSignature(hash: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; multiCall(transactions: TransactionStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; nonce(overrides?: CallOverrides): Promise<[BigNumber]>; onERC1155BatchReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue[], arg3: PromiseOrValue[], arg4: PromiseOrValue, overrides?: CallOverrides): Promise<[string] & { result: string; }>; onERC1155Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; onERC721Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; /** * Returns the hash to be signed to execute a transaction. */ operationHash(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; owner(overrides?: CallOverrides): Promise<[string]>; /** * Restricted, can only be called by address(this). * Recovers the wallet. Can only be called by the recovery owner + recovery owner or recovery owner + guardian. * @param newOwner Address of the new owner. */ recover(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Triggers the recovery mechanism. * @param callData Data payload, can only be either lock(), unlock() or recover(address). * @param signatures Signatures of the hash of the transaction. */ recovery(_nonce: PromiseOrValue, callData: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; recoveryOwners(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; /** * Restricted, can only be called by address(this). * Removes a guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param guardianToRemove Address of the guardian to be removed. * @param prevGuardian Address of the previous guardian in the linked list. */ removeGuardian(prevGuardian: PromiseOrValue, guardianToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Removes a recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param prevRecoveryOwner Address of the previous recovery owner in the linked list. * @param recoveryOwnerToRemove Address of the recovery owner to be removed. */ removeRecoveryOwner(prevRecoveryOwner: PromiseOrValue, recoveryOwnerToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; singleton(overrides?: CallOverrides): Promise<[string]>; supportsInterface(_interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; tokensReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, arg5: PromiseOrValue, overrides?: CallOverrides): Promise<[void]>; /** * Restricted, can only be called by address(this). * Unlocks the wallet. Can only be called by the owner + recovery owner or owner + guardian. */ unlock(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; NAME(overrides?: CallOverrides): Promise; VERSION(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Adds a new guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param newGuardian Address of the new guardian. */ addGuardian(newGuardian: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Adds a new recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param newRecoveryOwner Address of the new recovery owner. */ addRecoveryOwner(newRecoveryOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the owner of the wallet. Can only be called by the owner + recovery owner or owner + guardian. * @param newOwner Address of the new owner. */ changeOwner(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the singleton. Can only be called by the owner + recovery owner or owner + guardian. * @param newSingleton Address of the new singleton. */ changeSingleton(newSingleton: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Domain separator for this wallet. */ domainSeparator(overrides?: CallOverrides): Promise; /** * Executes a generic transaction. The transaction is required to be signed by the owner + recovery owner or owner + guardian while the wallet is not locked. * @param _nonce Anti-replay number. * @param callData Data payload to send. * @param signatures Signatures of the hash of the transaction. * @param to Destination address. * @param value Amount in WEI to transfer. */ exec(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** */ getChainId(overrides?: CallOverrides): Promise; /** */ getConfig(overrides?: CallOverrides): Promise<[ BigNumber, boolean, string ] & { configTimestamp: BigNumber; _isLocked: boolean; oldOwner: string; }>; /** */ getGuardians(overrides?: CallOverrides): Promise; /** */ getRecoveryOwners(overrides?: CallOverrides): Promise; guardians(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Setup function, sets initial storage of the wallet. It can't be called after initialization. * @param _guardians Array of guardians. * @param _owner The owner of the wallet. * @param _recoveryOwners Array of recovery owners. * @param ownerSignature Signature of the owner that validates the correctness of the address. */ init(_owner: PromiseOrValue, _guardians: PromiseOrValue[], _recoveryOwners: PromiseOrValue[], ownerSignature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Should return whether the signature provided is valid for the provided hash. * @param hash Hash of the data to be signed. * @param signature Signature byte array associated with hash. MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls */ isValidSignature(hash: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; multiCall(transactions: TransactionStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; nonce(overrides?: CallOverrides): Promise; onERC1155BatchReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue[], arg3: PromiseOrValue[], arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC1155Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC721Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the hash to be signed to execute a transaction. */ operationHash(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Recovers the wallet. Can only be called by the recovery owner + recovery owner or recovery owner + guardian. * @param newOwner Address of the new owner. */ recover(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Triggers the recovery mechanism. * @param callData Data payload, can only be either lock(), unlock() or recover(address). * @param signatures Signatures of the hash of the transaction. */ recovery(_nonce: PromiseOrValue, callData: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; recoveryOwners(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Removes a guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param guardianToRemove Address of the guardian to be removed. * @param prevGuardian Address of the previous guardian in the linked list. */ removeGuardian(prevGuardian: PromiseOrValue, guardianToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Removes a recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param prevRecoveryOwner Address of the previous recovery owner in the linked list. * @param recoveryOwnerToRemove Address of the recovery owner to be removed. */ removeRecoveryOwner(prevRecoveryOwner: PromiseOrValue, recoveryOwnerToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; singleton(overrides?: CallOverrides): Promise; supportsInterface(_interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; tokensReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, arg5: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Unlocks the wallet. Can only be called by the owner + recovery owner or owner + guardian. */ unlock(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { NAME(overrides?: CallOverrides): Promise; VERSION(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Adds a new guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param newGuardian Address of the new guardian. */ addGuardian(newGuardian: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Adds a new recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param newRecoveryOwner Address of the new recovery owner. */ addRecoveryOwner(newRecoveryOwner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Changes the owner of the wallet. Can only be called by the owner + recovery owner or owner + guardian. * @param newOwner Address of the new owner. */ changeOwner(newOwner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Changes the singleton. Can only be called by the owner + recovery owner or owner + guardian. * @param newSingleton Address of the new singleton. */ changeSingleton(newSingleton: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Domain separator for this wallet. */ domainSeparator(overrides?: CallOverrides): Promise; /** * Executes a generic transaction. The transaction is required to be signed by the owner + recovery owner or owner + guardian while the wallet is not locked. * @param _nonce Anti-replay number. * @param callData Data payload to send. * @param signatures Signatures of the hash of the transaction. * @param to Destination address. * @param value Amount in WEI to transfer. */ exec(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, signatures: PromiseOrValue, overrides?: CallOverrides): Promise; /** */ getChainId(overrides?: CallOverrides): Promise; /** */ getConfig(overrides?: CallOverrides): Promise<[ BigNumber, boolean, string ] & { configTimestamp: BigNumber; _isLocked: boolean; oldOwner: string; }>; /** */ getGuardians(overrides?: CallOverrides): Promise; /** */ getRecoveryOwners(overrides?: CallOverrides): Promise; guardians(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Setup function, sets initial storage of the wallet. It can't be called after initialization. * @param _guardians Array of guardians. * @param _owner The owner of the wallet. * @param _recoveryOwners Array of recovery owners. * @param ownerSignature Signature of the owner that validates the correctness of the address. */ init(_owner: PromiseOrValue, _guardians: PromiseOrValue[], _recoveryOwners: PromiseOrValue[], ownerSignature: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Should return whether the signature provided is valid for the provided hash. * @param hash Hash of the data to be signed. * @param signature Signature byte array associated with hash. MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls */ isValidSignature(hash: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; multiCall(transactions: TransactionStruct[], overrides?: CallOverrides): Promise; nonce(overrides?: CallOverrides): Promise; onERC1155BatchReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue[], arg3: PromiseOrValue[], arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC1155Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC721Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the hash to be signed to execute a transaction. */ operationHash(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Recovers the wallet. Can only be called by the recovery owner + recovery owner or recovery owner + guardian. * @param newOwner Address of the new owner. */ recover(newOwner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Triggers the recovery mechanism. * @param callData Data payload, can only be either lock(), unlock() or recover(address). * @param signatures Signatures of the hash of the transaction. */ recovery(_nonce: PromiseOrValue, callData: PromiseOrValue, signatures: PromiseOrValue, overrides?: CallOverrides): Promise; recoveryOwners(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Removes a guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param guardianToRemove Address of the guardian to be removed. * @param prevGuardian Address of the previous guardian in the linked list. */ removeGuardian(prevGuardian: PromiseOrValue, guardianToRemove: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Removes a recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param prevRecoveryOwner Address of the previous recovery owner in the linked list. * @param recoveryOwnerToRemove Address of the recovery owner to be removed. */ removeRecoveryOwner(prevRecoveryOwner: PromiseOrValue, recoveryOwnerToRemove: PromiseOrValue, overrides?: CallOverrides): Promise; singleton(overrides?: CallOverrides): Promise; supportsInterface(_interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; tokensReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, arg5: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Unlocks the wallet. Can only be called by the owner + recovery owner or owner + guardian. */ unlock(overrides?: CallOverrides): Promise; }; filters: { "ExecSuccess(address,uint256,uint256,bytes4)"(to?: null, value?: null, nonce?: null, funcSig?: null): ExecSuccessEventFilter; ExecSuccess(to?: null, value?: null, nonce?: null, funcSig?: null): ExecSuccessEventFilter; "GuardianRemoved(address)"(removedGuardian?: null): GuardianRemovedEventFilter; GuardianRemoved(removedGuardian?: null): GuardianRemovedEventFilter; "NewGuardian(address)"(newGuardian?: null): NewGuardianEventFilter; NewGuardian(newGuardian?: null): NewGuardianEventFilter; "NewRecoveryOwner(address)"(NewRecoveryOwner?: null): NewRecoveryOwnerEventFilter; NewRecoveryOwner(NewRecoveryOwner?: null): NewRecoveryOwnerEventFilter; "OwnerChanged(address)"(newOwner?: null): OwnerChangedEventFilter; OwnerChanged(newOwner?: null): OwnerChangedEventFilter; "RecoverActivated(address)"(newOwner?: null): RecoverActivatedEventFilter; RecoverActivated(newOwner?: null): RecoverActivatedEventFilter; "RecoveryOwnerRemoved(address)"(removedRecoveryOwner?: null): RecoveryOwnerRemovedEventFilter; RecoveryOwnerRemoved(removedRecoveryOwner?: null): RecoveryOwnerRemovedEventFilter; "SingletonChanged(address)"(newSingleton?: null): SingletonChangedEventFilter; SingletonChanged(newSingleton?: null): SingletonChangedEventFilter; "WalletUnlocked()"(): WalletUnlockedEventFilter; WalletUnlocked(): WalletUnlockedEventFilter; }; estimateGas: { NAME(overrides?: CallOverrides): Promise; VERSION(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Adds a new guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param newGuardian Address of the new guardian. */ addGuardian(newGuardian: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Adds a new recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param newRecoveryOwner Address of the new recovery owner. */ addRecoveryOwner(newRecoveryOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the owner of the wallet. Can only be called by the owner + recovery owner or owner + guardian. * @param newOwner Address of the new owner. */ changeOwner(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the singleton. Can only be called by the owner + recovery owner or owner + guardian. * @param newSingleton Address of the new singleton. */ changeSingleton(newSingleton: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Domain separator for this wallet. */ domainSeparator(overrides?: CallOverrides): Promise; /** * Executes a generic transaction. The transaction is required to be signed by the owner + recovery owner or owner + guardian while the wallet is not locked. * @param _nonce Anti-replay number. * @param callData Data payload to send. * @param signatures Signatures of the hash of the transaction. * @param to Destination address. * @param value Amount in WEI to transfer. */ exec(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** */ getChainId(overrides?: CallOverrides): Promise; /** */ getConfig(overrides?: CallOverrides): Promise; /** */ getGuardians(overrides?: CallOverrides): Promise; /** */ getRecoveryOwners(overrides?: CallOverrides): Promise; guardians(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Setup function, sets initial storage of the wallet. It can't be called after initialization. * @param _guardians Array of guardians. * @param _owner The owner of the wallet. * @param _recoveryOwners Array of recovery owners. * @param ownerSignature Signature of the owner that validates the correctness of the address. */ init(_owner: PromiseOrValue, _guardians: PromiseOrValue[], _recoveryOwners: PromiseOrValue[], ownerSignature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Should return whether the signature provided is valid for the provided hash. * @param hash Hash of the data to be signed. * @param signature Signature byte array associated with hash. MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls */ isValidSignature(hash: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; multiCall(transactions: TransactionStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; nonce(overrides?: CallOverrides): Promise; onERC1155BatchReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue[], arg3: PromiseOrValue[], arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC1155Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC721Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the hash to be signed to execute a transaction. */ operationHash(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Recovers the wallet. Can only be called by the recovery owner + recovery owner or recovery owner + guardian. * @param newOwner Address of the new owner. */ recover(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Triggers the recovery mechanism. * @param callData Data payload, can only be either lock(), unlock() or recover(address). * @param signatures Signatures of the hash of the transaction. */ recovery(_nonce: PromiseOrValue, callData: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; recoveryOwners(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Removes a guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param guardianToRemove Address of the guardian to be removed. * @param prevGuardian Address of the previous guardian in the linked list. */ removeGuardian(prevGuardian: PromiseOrValue, guardianToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Removes a recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param prevRecoveryOwner Address of the previous recovery owner in the linked list. * @param recoveryOwnerToRemove Address of the recovery owner to be removed. */ removeRecoveryOwner(prevRecoveryOwner: PromiseOrValue, recoveryOwnerToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; singleton(overrides?: CallOverrides): Promise; supportsInterface(_interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; tokensReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, arg5: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Unlocks the wallet. Can only be called by the owner + recovery owner or owner + guardian. */ unlock(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { NAME(overrides?: CallOverrides): Promise; VERSION(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Adds a new guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param newGuardian Address of the new guardian. */ addGuardian(newGuardian: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Adds a new recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param newRecoveryOwner Address of the new recovery owner. */ addRecoveryOwner(newRecoveryOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the owner of the wallet. Can only be called by the owner + recovery owner or owner + guardian. * @param newOwner Address of the new owner. */ changeOwner(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Changes the singleton. Can only be called by the owner + recovery owner or owner + guardian. * @param newSingleton Address of the new singleton. */ changeSingleton(newSingleton: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Domain separator for this wallet. */ domainSeparator(overrides?: CallOverrides): Promise; /** * Executes a generic transaction. The transaction is required to be signed by the owner + recovery owner or owner + guardian while the wallet is not locked. * @param _nonce Anti-replay number. * @param callData Data payload to send. * @param signatures Signatures of the hash of the transaction. * @param to Destination address. * @param value Amount in WEI to transfer. */ exec(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** */ getChainId(overrides?: CallOverrides): Promise; /** */ getConfig(overrides?: CallOverrides): Promise; /** */ getGuardians(overrides?: CallOverrides): Promise; /** */ getRecoveryOwners(overrides?: CallOverrides): Promise; guardians(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Setup function, sets initial storage of the wallet. It can't be called after initialization. * @param _guardians Array of guardians. * @param _owner The owner of the wallet. * @param _recoveryOwners Array of recovery owners. * @param ownerSignature Signature of the owner that validates the correctness of the address. */ init(_owner: PromiseOrValue, _guardians: PromiseOrValue[], _recoveryOwners: PromiseOrValue[], ownerSignature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Should return whether the signature provided is valid for the provided hash. * @param hash Hash of the data to be signed. * @param signature Signature byte array associated with hash. MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls */ isValidSignature(hash: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; multiCall(transactions: TransactionStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; nonce(overrides?: CallOverrides): Promise; onERC1155BatchReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue[], arg3: PromiseOrValue[], arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC1155Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, overrides?: CallOverrides): Promise; onERC721Received(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the hash to be signed to execute a transaction. */ operationHash(to: PromiseOrValue, value: PromiseOrValue, callData: PromiseOrValue, _nonce: PromiseOrValue, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Recovers the wallet. Can only be called by the recovery owner + recovery owner or recovery owner + guardian. * @param newOwner Address of the new owner. */ recover(newOwner: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Triggers the recovery mechanism. * @param callData Data payload, can only be either lock(), unlock() or recover(address). * @param signatures Signatures of the hash of the transaction. */ recovery(_nonce: PromiseOrValue, callData: PromiseOrValue, signatures: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; recoveryOwners(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Removes a guardian. Can only be called by the owner + recovery owner or owner + guardian. * @param guardianToRemove Address of the guardian to be removed. * @param prevGuardian Address of the previous guardian in the linked list. */ removeGuardian(prevGuardian: PromiseOrValue, guardianToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Restricted, can only be called by address(this). * Removes a recovery owner. Can only be called by the owner + recovery owner or owner + guardian. * @param prevRecoveryOwner Address of the previous recovery owner in the linked list. * @param recoveryOwnerToRemove Address of the recovery owner to be removed. */ removeRecoveryOwner(prevRecoveryOwner: PromiseOrValue, recoveryOwnerToRemove: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; singleton(overrides?: CallOverrides): Promise; supportsInterface(_interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; tokensReceived(arg0: PromiseOrValue, arg1: PromiseOrValue, arg2: PromiseOrValue, arg3: PromiseOrValue, arg4: PromiseOrValue, arg5: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Restricted, can only be called by address(this). * Unlocks the wallet. Can only be called by the owner + recovery owner or owner + guardian. */ unlock(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }