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 IERC20UpgradeableInterface extends utils.Interface { functions: { "totalSupply()": FunctionFragment; "balanceOf(address)": FunctionFragment; "transfer(address,uint256)": FunctionFragment; "allowance(address,address)": FunctionFragment; "approve(address,uint256)": FunctionFragment; "transferFrom(address,address,uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "totalSupply" | "balanceOf" | "transfer" | "allowance" | "approve" | "transferFrom"): FunctionFragment; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "transfer", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "allowance", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "approve", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "transferFrom", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result; events: { "Approval(address,address,uint256)": EventFragment; "Transfer(address,address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; } export interface ApprovalEventObject { owner: string; spender: string; value: BigNumber; } export type ApprovalEvent = TypedEvent<[ string, string, BigNumber ], ApprovalEventObject>; export type ApprovalEventFilter = TypedEventFilter; export interface TransferEventObject { from: string; to: string; value: BigNumber; } export type TransferEvent = TypedEvent<[ string, string, BigNumber ], TransferEventObject>; export type TransferEventFilter = TypedEventFilter; export interface IERC20Upgradeable extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IERC20UpgradeableInterface; 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: { /** * Returns the amount of tokens in existence. */ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; /** * Returns the amount of tokens owned by `account`. */ balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; /** * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transfer(recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called. */ allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; /** * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event. */ approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transferFrom(sender: PromiseOrValue, recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; /** * Returns the amount of tokens in existence. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns the amount of tokens owned by `account`. */ balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transfer(recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called. */ allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event. */ approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transferFrom(sender: PromiseOrValue, recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { /** * Returns the amount of tokens in existence. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns the amount of tokens owned by `account`. */ balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transfer(recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called. */ allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event. */ approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transferFrom(sender: PromiseOrValue, recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { "Approval(address,address,uint256)"(owner?: PromiseOrValue | null, spender?: PromiseOrValue | null, value?: null): ApprovalEventFilter; Approval(owner?: PromiseOrValue | null, spender?: PromiseOrValue | null, value?: null): ApprovalEventFilter; "Transfer(address,address,uint256)"(from?: PromiseOrValue | null, to?: PromiseOrValue | null, value?: null): TransferEventFilter; Transfer(from?: PromiseOrValue | null, to?: PromiseOrValue | null, value?: null): TransferEventFilter; }; estimateGas: { /** * Returns the amount of tokens in existence. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns the amount of tokens owned by `account`. */ balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transfer(recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called. */ allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event. */ approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transferFrom(sender: PromiseOrValue, recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { /** * Returns the amount of tokens in existence. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns the amount of tokens owned by `account`. */ balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transfer(recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called. */ allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event. */ approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event. */ transferFrom(sender: PromiseOrValue, recipient: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }