import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, PayableOverrides, 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 IFeeHandlerInterface extends utils.Interface { contractName: "IFeeHandler"; functions: { "collectFee(address,uint8,uint8,bytes32,bytes,bytes)": FunctionFragment; "calculateFee(address,uint8,uint8,bytes32,bytes,bytes)": FunctionFragment; "feeHandlerType()": FunctionFragment; }; encodeFunctionData(functionFragment: "collectFee", values: [ string, BigNumberish, BigNumberish, BytesLike, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "calculateFee", values: [ string, BigNumberish, BigNumberish, BytesLike, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "feeHandlerType", values?: undefined): string; decodeFunctionResult(functionFragment: "collectFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "feeHandlerType", data: BytesLike): Result; events: { "FeeCollected(address,uint8,uint8,bytes32,uint256,address)": EventFragment; "FeeDistributed(address,address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "FeeCollected"): EventFragment; getEvent(nameOrSignatureOrTopic: "FeeDistributed"): EventFragment; } export declare type FeeCollectedEvent = TypedEvent<[ string, number, number, string, BigNumber, string ], { sender: string; fromDomainID: number; destinationDomainID: number; resourceID: string; fee: BigNumber; tokenAddress: string; }>; export declare type FeeCollectedEventFilter = TypedEventFilter; export declare type FeeDistributedEvent = TypedEvent<[ string, string, BigNumber ], { tokenAddress: string; recipient: string; amount: BigNumber; }>; export declare type FeeDistributedEventFilter = TypedEventFilter; export interface IFeeHandler extends BaseContract { contractName: "IFeeHandler"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IFeeHandlerInterface; 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: { /** * Collects fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ collectFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; /** * Calculates fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ calculateFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise<[BigNumber, string]>; /** * Exposes getter function for fee handler type */ feeHandlerType(overrides?: CallOverrides): Promise<[string]>; }; /** * Collects fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ collectFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; /** * Calculates fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ calculateFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise<[BigNumber, string]>; /** * Exposes getter function for fee handler type */ feeHandlerType(overrides?: CallOverrides): Promise; callStatic: { /** * Collects fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ collectFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise; /** * Calculates fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ calculateFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise<[BigNumber, string]>; /** * Exposes getter function for fee handler type */ feeHandlerType(overrides?: CallOverrides): Promise; }; filters: { "FeeCollected(address,uint8,uint8,bytes32,uint256,address)"(sender?: null, fromDomainID?: null, destinationDomainID?: null, resourceID?: null, fee?: null, tokenAddress?: null): FeeCollectedEventFilter; FeeCollected(sender?: null, fromDomainID?: null, destinationDomainID?: null, resourceID?: null, fee?: null, tokenAddress?: null): FeeCollectedEventFilter; "FeeDistributed(address,address,uint256)"(tokenAddress?: null, recipient?: null, amount?: null): FeeDistributedEventFilter; FeeDistributed(tokenAddress?: null, recipient?: null, amount?: null): FeeDistributedEventFilter; }; estimateGas: { /** * Collects fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ collectFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; /** * Calculates fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ calculateFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise; /** * Exposes getter function for fee handler type */ feeHandlerType(overrides?: CallOverrides): Promise; }; populateTransaction: { /** * Collects fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ collectFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; /** * Calculates fee for deposit. * @param depositData Additional data to be passed to specified handler. * @param destinationDomainID ID of chain deposit will be bridged to. * @param feeData Additional data to be passed to the fee handler. * @param fromDomainID ID of the source chain. * @param resourceID ResourceID to be used when making deposits. * @param sender Sender of the deposit. */ calculateFee(sender: string, fromDomainID: BigNumberish, destinationDomainID: BigNumberish, resourceID: BytesLike, depositData: BytesLike, feeData: BytesLike, overrides?: CallOverrides): Promise; /** * Exposes getter function for fee handler type */ feeHandlerType(overrides?: CallOverrides): Promise; }; }