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 interface LaserFactoryInterface extends utils.Interface { functions: { "createProxy(bytes,uint256)": FunctionFragment; "preComputeAddress(bytes,uint256)": FunctionFragment; "proxyCreationCode()": FunctionFragment; "proxyRuntimeCode()": FunctionFragment; "singleton()": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "createProxy" | "preComputeAddress" | "proxyCreationCode" | "proxyRuntimeCode" | "singleton"): FunctionFragment; encodeFunctionData(functionFragment: "createProxy", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "preComputeAddress", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "proxyCreationCode", values?: undefined): string; encodeFunctionData(functionFragment: "proxyRuntimeCode", values?: undefined): string; encodeFunctionData(functionFragment: "singleton", values?: undefined): string; decodeFunctionResult(functionFragment: "createProxy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "preComputeAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proxyCreationCode", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proxyRuntimeCode", data: BytesLike): Result; decodeFunctionResult(functionFragment: "singleton", data: BytesLike): Result; events: { "LaserCreated(address)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "LaserCreated"): EventFragment; } export interface LaserCreatedEventObject { laser: string; } export declare type LaserCreatedEvent = TypedEvent<[string], LaserCreatedEventObject>; export declare type LaserCreatedEventFilter = TypedEventFilter; export interface LaserFactory extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: LaserFactoryInterface; 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: { /** * Allows to create new proxy contact and execute a message call to the new proxy within one transaction. * @param initializer Payload for message call sent to new proxy contract. * @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract. */ createProxy(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Precomputes the address of a proxy that is created through 'create2'. */ preComputeAddress(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; /** * Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address. */ proxyCreationCode(overrides?: CallOverrides): Promise<[string]>; /** * Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed. */ proxyRuntimeCode(overrides?: CallOverrides): Promise<[string]>; singleton(overrides?: CallOverrides): Promise<[string]>; }; /** * Allows to create new proxy contact and execute a message call to the new proxy within one transaction. * @param initializer Payload for message call sent to new proxy contract. * @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract. */ createProxy(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Precomputes the address of a proxy that is created through 'create2'. */ preComputeAddress(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address. */ proxyCreationCode(overrides?: CallOverrides): Promise; /** * Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed. */ proxyRuntimeCode(overrides?: CallOverrides): Promise; singleton(overrides?: CallOverrides): Promise; callStatic: { /** * Allows to create new proxy contact and execute a message call to the new proxy within one transaction. * @param initializer Payload for message call sent to new proxy contract. * @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract. */ createProxy(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Precomputes the address of a proxy that is created through 'create2'. */ preComputeAddress(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address. */ proxyCreationCode(overrides?: CallOverrides): Promise; /** * Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed. */ proxyRuntimeCode(overrides?: CallOverrides): Promise; singleton(overrides?: CallOverrides): Promise; }; filters: { "LaserCreated(address)"(laser?: null): LaserCreatedEventFilter; LaserCreated(laser?: null): LaserCreatedEventFilter; }; estimateGas: { /** * Allows to create new proxy contact and execute a message call to the new proxy within one transaction. * @param initializer Payload for message call sent to new proxy contract. * @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract. */ createProxy(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Precomputes the address of a proxy that is created through 'create2'. */ preComputeAddress(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address. */ proxyCreationCode(overrides?: CallOverrides): Promise; /** * Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed. */ proxyRuntimeCode(overrides?: CallOverrides): Promise; singleton(overrides?: CallOverrides): Promise; }; populateTransaction: { /** * Allows to create new proxy contact and execute a message call to the new proxy within one transaction. * @param initializer Payload for message call sent to new proxy contract. * @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract. */ createProxy(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Precomputes the address of a proxy that is created through 'create2'. */ preComputeAddress(initializer: PromiseOrValue, saltNonce: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address. */ proxyCreationCode(overrides?: CallOverrides): Promise; /** * Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed. */ proxyRuntimeCode(overrides?: CallOverrides): Promise; singleton(overrides?: CallOverrides): Promise; }; }