@runonflux/account-abstraction
Version:
Account Abstraction Schnorr Multi-Signatures
465 lines (464 loc) • 21.5 kB
TypeScript
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common";
export type UserOperationStruct = {
sender: AddressLike;
nonce: BigNumberish;
initCode: BytesLike;
callData: BytesLike;
callGasLimit: BigNumberish;
verificationGasLimit: BigNumberish;
preVerificationGas: BigNumberish;
maxFeePerGas: BigNumberish;
maxPriorityFeePerGas: BigNumberish;
paymasterAndData: BytesLike;
signature: BytesLike;
};
export type UserOperationStructOutput = [
sender: string,
nonce: bigint,
initCode: string,
callData: string,
callGasLimit: bigint,
verificationGasLimit: bigint,
preVerificationGas: bigint,
maxFeePerGas: bigint,
maxPriorityFeePerGas: bigint,
paymasterAndData: string,
signature: string
] & {
sender: string;
nonce: bigint;
initCode: string;
callData: string;
callGasLimit: bigint;
verificationGasLimit: bigint;
preVerificationGas: bigint;
maxFeePerGas: bigint;
maxPriorityFeePerGas: bigint;
paymasterAndData: string;
signature: string;
};
export interface MultiSigSmartAccountInterface extends Interface {
getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "OWNER_ROLE" | "UPGRADE_INTERFACE_VERSION" | "addDeposit" | "entryPoint" | "execute" | "executeBatch" | "getDeposit" | "getNonce" | "getRoleAdmin" | "grantRole" | "hasRole" | "initialize" | "isValidSignature" | "onERC1155BatchReceived" | "onERC1155Received" | "onERC721Received" | "proxiableUUID" | "renounceRole" | "revokeRole" | "supportsInterface" | "tokensReceived" | "upgradeToAndCall" | "validateUserOp" | "withdrawDepositTo"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "Initialized" | "MultiSigAccountInitialized" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "Upgraded"): EventFragment;
encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
encodeFunctionData(functionFragment: "OWNER_ROLE", values?: undefined): string;
encodeFunctionData(functionFragment: "UPGRADE_INTERFACE_VERSION", values?: undefined): string;
encodeFunctionData(functionFragment: "addDeposit", values?: undefined): string;
encodeFunctionData(functionFragment: "entryPoint", values?: undefined): string;
encodeFunctionData(functionFragment: "execute", values: [AddressLike, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "executeBatch", values: [AddressLike[], BytesLike[]]): string;
encodeFunctionData(functionFragment: "getDeposit", values?: undefined): string;
encodeFunctionData(functionFragment: "getNonce", values?: undefined): string;
encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "initialize", values: [AddressLike[]]): string;
encodeFunctionData(functionFragment: "isValidSignature", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "onERC1155BatchReceived", values: [
AddressLike,
AddressLike,
BigNumberish[],
BigNumberish[],
BytesLike
]): string;
encodeFunctionData(functionFragment: "onERC1155Received", values: [AddressLike, AddressLike, BigNumberish, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "onERC721Received", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "proxiableUUID", values?: undefined): string;
encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "tokensReceived", values: [
AddressLike,
AddressLike,
AddressLike,
BigNumberish,
BytesLike,
BytesLike
]): string;
encodeFunctionData(functionFragment: "upgradeToAndCall", values: [AddressLike, BytesLike]): string;
encodeFunctionData(functionFragment: "validateUserOp", values: [UserOperationStruct, BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "withdrawDepositTo", values: [AddressLike, BigNumberish]): string;
decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "OWNER_ROLE", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "UPGRADE_INTERFACE_VERSION", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "addDeposit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "executeBatch", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getDeposit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getNonce", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isValidSignature", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "onERC1155BatchReceived", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "onERC1155Received", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "proxiableUUID", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "tokensReceived", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "upgradeToAndCall", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "validateUserOp", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "withdrawDepositTo", data: BytesLike): Result;
}
export declare namespace InitializedEvent {
type InputTuple = [version: BigNumberish];
type OutputTuple = [version: bigint];
interface OutputObject {
version: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MultiSigAccountInitializedEvent {
type InputTuple = [
entryPoint: AddressLike,
pubKeysCounter: BigNumberish
];
type OutputTuple = [entryPoint: string, pubKeysCounter: bigint];
interface OutputObject {
entryPoint: string;
pubKeysCounter: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleAdminChangedEvent {
type InputTuple = [
role: BytesLike,
previousAdminRole: BytesLike,
newAdminRole: BytesLike
];
type OutputTuple = [
role: string,
previousAdminRole: string,
newAdminRole: string
];
interface OutputObject {
role: string;
previousAdminRole: string;
newAdminRole: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleGrantedEvent {
type InputTuple = [
role: BytesLike,
account: AddressLike,
sender: AddressLike
];
type OutputTuple = [role: string, account: string, sender: string];
interface OutputObject {
role: string;
account: string;
sender: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleRevokedEvent {
type InputTuple = [
role: BytesLike,
account: AddressLike,
sender: AddressLike
];
type OutputTuple = [role: string, account: string, sender: string];
interface OutputObject {
role: string;
account: string;
sender: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpgradedEvent {
type InputTuple = [implementation: AddressLike];
type OutputTuple = [implementation: string];
interface OutputObject {
implementation: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface MultiSigSmartAccount extends BaseContract {
connect(runner?: ContractRunner | null): MultiSigSmartAccount;
waitForDeployment(): Promise<this>;
interface: MultiSigSmartAccountInterface;
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">;
OWNER_ROLE: TypedContractMethod<[], [string], "view">;
UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">;
addDeposit: TypedContractMethod<[], [void], "payable">;
entryPoint: TypedContractMethod<[], [string], "view">;
execute: TypedContractMethod<[
dest: AddressLike,
value: BigNumberish,
func: BytesLike
], [
void
], "nonpayable">;
executeBatch: TypedContractMethod<[
dest: AddressLike[],
func: BytesLike[]
], [
void
], "nonpayable">;
getDeposit: TypedContractMethod<[], [bigint], "view">;
getNonce: TypedContractMethod<[], [bigint], "view">;
getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;
grantRole: TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
void
], "nonpayable">;
hasRole: TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
boolean
], "view">;
initialize: TypedContractMethod<[
combinedAddress: AddressLike[]
], [
void
], "nonpayable">;
isValidSignature: TypedContractMethod<[
hash: BytesLike,
signature: BytesLike
], [
string
], "view">;
onERC1155BatchReceived: TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish[],
arg3: BigNumberish[],
arg4: BytesLike
], [
string
], "view">;
onERC1155Received: TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish,
arg3: BigNumberish,
arg4: BytesLike
], [
string
], "view">;
onERC721Received: TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish,
arg3: BytesLike
], [
string
], "view">;
proxiableUUID: TypedContractMethod<[], [string], "view">;
renounceRole: TypedContractMethod<[
role: BytesLike,
callerConfirmation: AddressLike
], [
void
], "nonpayable">;
revokeRole: TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
void
], "nonpayable">;
supportsInterface: TypedContractMethod<[
interfaceId: BytesLike
], [
boolean
], "view">;
tokensReceived: TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: AddressLike,
arg3: BigNumberish,
arg4: BytesLike,
arg5: BytesLike
], [
void
], "view">;
upgradeToAndCall: TypedContractMethod<[
newImplementation: AddressLike,
data: BytesLike
], [
void
], "payable">;
validateUserOp: TypedContractMethod<[
userOp: UserOperationStruct,
userOpHash: BytesLike,
missingAccountFunds: BigNumberish
], [
bigint
], "nonpayable">;
withdrawDepositTo: TypedContractMethod<[
withdrawAddress: AddressLike,
amount: BigNumberish
], [
void
], "nonpayable">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "OWNER_ROLE"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "UPGRADE_INTERFACE_VERSION"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "addDeposit"): TypedContractMethod<[], [void], "payable">;
getFunction(nameOrSignature: "entryPoint"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "execute"): TypedContractMethod<[
dest: AddressLike,
value: BigNumberish,
func: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "executeBatch"): TypedContractMethod<[
dest: AddressLike[],
func: BytesLike[]
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "getDeposit"): TypedContractMethod<[], [bigint], "view">;
getFunction(nameOrSignature: "getNonce"): TypedContractMethod<[], [bigint], "view">;
getFunction(nameOrSignature: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">;
getFunction(nameOrSignature: "grantRole"): TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "hasRole"): TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "initialize"): TypedContractMethod<[
combinedAddress: AddressLike[]
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "isValidSignature"): TypedContractMethod<[
hash: BytesLike,
signature: BytesLike
], [
string
], "view">;
getFunction(nameOrSignature: "onERC1155BatchReceived"): TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish[],
arg3: BigNumberish[],
arg4: BytesLike
], [
string
], "view">;
getFunction(nameOrSignature: "onERC1155Received"): TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish,
arg3: BigNumberish,
arg4: BytesLike
], [
string
], "view">;
getFunction(nameOrSignature: "onERC721Received"): TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: BigNumberish,
arg3: BytesLike
], [
string
], "view">;
getFunction(nameOrSignature: "proxiableUUID"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[
role: BytesLike,
callerConfirmation: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "revokeRole"): TypedContractMethod<[
role: BytesLike,
account: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "tokensReceived"): TypedContractMethod<[
arg0: AddressLike,
arg1: AddressLike,
arg2: AddressLike,
arg3: BigNumberish,
arg4: BytesLike,
arg5: BytesLike
], [
void
], "view">;
getFunction(nameOrSignature: "upgradeToAndCall"): TypedContractMethod<[
newImplementation: AddressLike,
data: BytesLike
], [
void
], "payable">;
getFunction(nameOrSignature: "validateUserOp"): TypedContractMethod<[
userOp: UserOperationStruct,
userOpHash: BytesLike,
missingAccountFunds: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "withdrawDepositTo"): TypedContractMethod<[
withdrawAddress: AddressLike,
amount: BigNumberish
], [
void
], "nonpayable">;
getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
getEvent(key: "MultiSigAccountInitialized"): TypedContractEvent<MultiSigAccountInitializedEvent.InputTuple, MultiSigAccountInitializedEvent.OutputTuple, MultiSigAccountInitializedEvent.OutputObject>;
getEvent(key: "RoleAdminChanged"): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
getEvent(key: "RoleGranted"): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
getEvent(key: "RoleRevoked"): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
getEvent(key: "Upgraded"): TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
filters: {
"Initialized(uint64)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
"MultiSigAccountInitialized(address,uint256)": TypedContractEvent<MultiSigAccountInitializedEvent.InputTuple, MultiSigAccountInitializedEvent.OutputTuple, MultiSigAccountInitializedEvent.OutputObject>;
MultiSigAccountInitialized: TypedContractEvent<MultiSigAccountInitializedEvent.InputTuple, MultiSigAccountInitializedEvent.OutputTuple, MultiSigAccountInitializedEvent.OutputObject>;
"RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
"RoleGranted(bytes32,address,address)": TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
RoleGranted: TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
"RoleRevoked(bytes32,address,address)": TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
RoleRevoked: TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
"Upgraded(address)": TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
Upgraded: TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
};
}