import { TAddress } from '../../../models/TAddress'; import { TAccount } from '../../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../../clients/ClientEventsStream'; import { ContractBase } from '../../../contracts/ContractBase'; import { ContractStorageReaderBase } from '../../../contracts/ContractStorageReaderBase'; import { TxWriter } from '../../../txs/TxWriter'; import { ITxLogItem } from '../../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../../clients/Web3Client'; import { IBlockchainExplorer } from '../../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../../class/SubjectStream'; import type { TAbiItem } from '../../../types/TAbi'; import type { TEth } from '../../../models/TEth'; import type { TOverrideReturns } from '../../../utils/types'; export declare class OneInchRouterContract extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TOneInchRouterContractTypes; $meta: { class: string; }; destroy(sender: TSender): Promise; discountedSwap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise; owner(): Promise; renounceOwnership(sender: TSender): Promise; rescueFunds(sender: TSender, token: TAddress, amount: bigint): Promise; swap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; unoswap(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, input3: TEth.Hex[]): Promise; unoswapWithPermit(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, pools: TEth.Hex[], permit: TEth.Hex): Promise; $call(): IOneInchRouterContractTxCaller; $signed(): TOverrideReturns>; $data(): IOneInchRouterContractTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TOneInchRouterContractTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onError(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onOwnershipTransferred(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSwapped(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsError(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsOwnershipTransferred(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSwapped(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsError(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsOwnershipTransferred(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { previousOwner?: TAddress; newOwner?: TAddress; }; }): Promise>[]>; getPastLogsSwapped(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; abi: TAbiItem[]; storage: OneInchRouterContractStorageReader; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TOneInchRouterContractTypes = { Events: { Error: { outputParams: { reason: string; }; outputArgs: [reason: string]; }; OwnershipTransferred: { outputParams: { previousOwner: TAddress; newOwner: TAddress; }; outputArgs: [previousOwner: TAddress, newOwner: TAddress]; }; Swapped: { outputParams: { _sender: TAddress; srcToken: TAddress; dstToken: TAddress; dstReceiver: TAddress; spentAmount: bigint; returnAmount: bigint; }; outputArgs: [_sender: TAddress, srcToken: TAddress, dstToken: TAddress, dstReceiver: TAddress, spentAmount: bigint, returnAmount: bigint]; }; }; Methods: { destroy: { method: "destroy"; arguments: []; }; discountedSwap: { method: "discountedSwap"; arguments: [caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex]; }; owner: { method: "owner"; arguments: []; }; renounceOwnership: { method: "renounceOwnership"; arguments: []; }; rescueFunds: { method: "rescueFunds"; arguments: [token: TAddress, amount: bigint]; }; swap: { method: "swap"; arguments: [caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex]; }; transferOwnership: { method: "transferOwnership"; arguments: [newOwner: TAddress]; }; unoswap: { method: "unoswap"; arguments: [srcToken: TAddress, amount: bigint, minReturn: bigint, input3: TEth.Hex[]]; }; unoswapWithPermit: { method: "unoswapWithPermit"; arguments: [srcToken: TAddress, amount: bigint, minReturn: bigint, pools: TEth.Hex[], permit: TEth.Hex]; }; }; }; declare class OneInchRouterContractStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); _owner(): Promise; $slots: { slot: number; position: number; name: string; size: number; type: string; }[]; } interface IOneInchRouterContractTxCaller { destroy(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; discountedSwap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renounceOwnership(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; rescueFunds(sender: TSender, token: TAddress, amount: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; swap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferOwnership(sender: TSender, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; unoswap(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, input3: TEth.Hex[]): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; unoswapWithPermit(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, pools: TEth.Hex[], permit: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IOneInchRouterContractTxData { destroy(sender: TSender): Promise; discountedSwap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise; renounceOwnership(sender: TSender): Promise; rescueFunds(sender: TSender, token: TAddress, amount: bigint): Promise; swap(sender: TSender, caller: TAddress, desc: { srcToken: TAddress; dstToken: TAddress; srcReceiver: TAddress; dstReceiver: TAddress; amount: bigint; minReturnAmount: bigint; flags: bigint; permit: TEth.Hex; }, data: TEth.Hex): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; unoswap(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, input3: TEth.Hex[]): Promise; unoswapWithPermit(sender: TSender, srcToken: TAddress, amount: bigint, minReturn: bigint, pools: TEth.Hex[], permit: TEth.Hex): Promise; } type TEvents = TOneInchRouterContractTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};