import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface IXERC20FactoryInterface extends utils.Interface { contractName: "IXERC20Factory"; functions: { "deployXERC20(string,string,uint256[],uint256[],address[])": FunctionFragment; "deployLockbox(address,address,bool)": FunctionFragment; }; encodeFunctionData(functionFragment: "deployXERC20", values: [string, string, BigNumberish[], BigNumberish[], string[]]): string; encodeFunctionData(functionFragment: "deployLockbox", values: [string, string, boolean]): string; decodeFunctionResult(functionFragment: "deployXERC20", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deployLockbox", data: BytesLike): Result; events: { "LockboxDeployed(address)": EventFragment; "XERC20Deployed(address)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "LockboxDeployed"): EventFragment; getEvent(nameOrSignatureOrTopic: "XERC20Deployed"): EventFragment; } export declare type LockboxDeployedEvent = TypedEvent<[string], { _lockbox: string; }>; export declare type LockboxDeployedEventFilter = TypedEventFilter; export declare type XERC20DeployedEvent = TypedEvent<[string], { _xerc20: string; }>; export declare type XERC20DeployedEventFilter = TypedEventFilter; export interface IXERC20Factory extends BaseContract { contractName: "IXERC20Factory"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IXERC20FactoryInterface; 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: { /** * _limits and _minters must be the same length * Deploys an XERC20 contract using CREATE3 * @param _bridges The array of burners that you are adding (optional, can be an empty array) * @param _burnerLimits The array of burning limits that you are adding (optional, can be an empty array) * @param _minterLimits The array of minter limits that you are adding (optional, can be an empty array) * @param _name The name of the token * @param _symbol The symbol of the token */ deployXERC20(_name: string, _symbol: string, _minterLimits: BigNumberish[], _burnerLimits: BigNumberish[], _bridges: string[], overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Deploys an XERC20Lockbox contract using CREATE3 * @param _baseToken The address of the base token that you want to lock * @param _isNative Whether or not the base token is native * @param _xerc20 The address of the xerc20 that you want to deploy a lockbox for */ deployLockbox(_xerc20: string, _baseToken: string, _isNative: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; /** * _limits and _minters must be the same length * Deploys an XERC20 contract using CREATE3 * @param _bridges The array of burners that you are adding (optional, can be an empty array) * @param _burnerLimits The array of burning limits that you are adding (optional, can be an empty array) * @param _minterLimits The array of minter limits that you are adding (optional, can be an empty array) * @param _name The name of the token * @param _symbol The symbol of the token */ deployXERC20(_name: string, _symbol: string, _minterLimits: BigNumberish[], _burnerLimits: BigNumberish[], _bridges: string[], overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Deploys an XERC20Lockbox contract using CREATE3 * @param _baseToken The address of the base token that you want to lock * @param _isNative Whether or not the base token is native * @param _xerc20 The address of the xerc20 that you want to deploy a lockbox for */ deployLockbox(_xerc20: string, _baseToken: string, _isNative: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { /** * _limits and _minters must be the same length * Deploys an XERC20 contract using CREATE3 * @param _bridges The array of burners that you are adding (optional, can be an empty array) * @param _burnerLimits The array of burning limits that you are adding (optional, can be an empty array) * @param _minterLimits The array of minter limits that you are adding (optional, can be an empty array) * @param _name The name of the token * @param _symbol The symbol of the token */ deployXERC20(_name: string, _symbol: string, _minterLimits: BigNumberish[], _burnerLimits: BigNumberish[], _bridges: string[], overrides?: CallOverrides): Promise; /** * Deploys an XERC20Lockbox contract using CREATE3 * @param _baseToken The address of the base token that you want to lock * @param _isNative Whether or not the base token is native * @param _xerc20 The address of the xerc20 that you want to deploy a lockbox for */ deployLockbox(_xerc20: string, _baseToken: string, _isNative: boolean, overrides?: CallOverrides): Promise; }; filters: { "LockboxDeployed(address)"(_lockbox?: null): LockboxDeployedEventFilter; LockboxDeployed(_lockbox?: null): LockboxDeployedEventFilter; "XERC20Deployed(address)"(_xerc20?: null): XERC20DeployedEventFilter; XERC20Deployed(_xerc20?: null): XERC20DeployedEventFilter; }; estimateGas: { /** * _limits and _minters must be the same length * Deploys an XERC20 contract using CREATE3 * @param _bridges The array of burners that you are adding (optional, can be an empty array) * @param _burnerLimits The array of burning limits that you are adding (optional, can be an empty array) * @param _minterLimits The array of minter limits that you are adding (optional, can be an empty array) * @param _name The name of the token * @param _symbol The symbol of the token */ deployXERC20(_name: string, _symbol: string, _minterLimits: BigNumberish[], _burnerLimits: BigNumberish[], _bridges: string[], overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Deploys an XERC20Lockbox contract using CREATE3 * @param _baseToken The address of the base token that you want to lock * @param _isNative Whether or not the base token is native * @param _xerc20 The address of the xerc20 that you want to deploy a lockbox for */ deployLockbox(_xerc20: string, _baseToken: string, _isNative: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { /** * _limits and _minters must be the same length * Deploys an XERC20 contract using CREATE3 * @param _bridges The array of burners that you are adding (optional, can be an empty array) * @param _burnerLimits The array of burning limits that you are adding (optional, can be an empty array) * @param _minterLimits The array of minter limits that you are adding (optional, can be an empty array) * @param _name The name of the token * @param _symbol The symbol of the token */ deployXERC20(_name: string, _symbol: string, _minterLimits: BigNumberish[], _burnerLimits: BigNumberish[], _bridges: string[], overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Deploys an XERC20Lockbox contract using CREATE3 * @param _baseToken The address of the base token that you want to lock * @param _isNative Whether or not the base token is native * @param _xerc20 The address of the xerc20 that you want to deploy a lockbox for */ deployLockbox(_xerc20: string, _baseToken: string, _isNative: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; }