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 WETH extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TWETHTypes; $meta: { class: string; }; name(): Promise; approve(sender: TSender, guy: TAddress, wad: bigint): Promise; totalSupply(): Promise; transferFrom(sender: TSender, src: TAddress, dst: TAddress, wad: bigint): Promise; withdraw(sender: TSender, wad: bigint): Promise; decimals(): Promise; balanceOf(input0: TAddress): Promise; symbol(): Promise; transfer(sender: TSender, dst: TAddress, wad: bigint): Promise; deposit(sender: TSender): Promise; allowance(input0: TAddress, input1: TAddress): Promise; $call(): IWETHTxCaller; $signed(): TOverrideReturns>; $data(): IWETHTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TWETHTypes['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>[]>; onApproval(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onTransfer(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDeposit(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onWithdrawal(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsApproval(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsTransfer(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDeposit(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsWithdrawal(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsApproval(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { src?: TAddress; guy?: TAddress; }; }): Promise>[]>; getPastLogsTransfer(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { src?: TAddress; dst?: TAddress; }; }): Promise>[]>; getPastLogsDeposit(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { dst?: TAddress; }; }): Promise>[]>; getPastLogsWithdrawal(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { src?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; storage: WETHStorageReader; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TWETHTypes = { Events: { Approval: { outputParams: { src: TAddress; guy: TAddress; wad: bigint; }; outputArgs: [src: TAddress, guy: TAddress, wad: bigint]; }; Transfer: { outputParams: { src: TAddress; dst: TAddress; wad: bigint; }; outputArgs: [src: TAddress, dst: TAddress, wad: bigint]; }; Deposit: { outputParams: { dst: TAddress; wad: bigint; }; outputArgs: [dst: TAddress, wad: bigint]; }; Withdrawal: { outputParams: { src: TAddress; wad: bigint; }; outputArgs: [src: TAddress, wad: bigint]; }; }; Methods: { name: { method: "name"; arguments: []; }; approve: { method: "approve"; arguments: [guy: TAddress, wad: bigint]; }; totalSupply: { method: "totalSupply"; arguments: []; }; transferFrom: { method: "transferFrom"; arguments: [src: TAddress, dst: TAddress, wad: bigint]; }; withdraw: { method: "withdraw"; arguments: [wad: bigint]; }; decimals: { method: "decimals"; arguments: []; }; balanceOf: { method: "balanceOf"; arguments: [input0: TAddress]; }; symbol: { method: "symbol"; arguments: []; }; transfer: { method: "transfer"; arguments: [dst: TAddress, wad: bigint]; }; deposit: { method: "deposit"; arguments: []; }; allowance: { method: "allowance"; arguments: [input0: TAddress, input1: TAddress]; }; }; }; declare class WETHStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); name(): Promise; symbol(): Promise; decimals(): Promise; balanceOf(key: TAddress): Promise; allowance(key: TAddress): Promise>; $slots: { slot: number; position: number; name: string; size: number; type: string; }[]; } interface IWETHTxCaller { approve(sender: TSender, guy: TAddress, wad: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferFrom(sender: TSender, src: TAddress, dst: TAddress, wad: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdraw(sender: TSender, wad: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transfer(sender: TSender, dst: TAddress, wad: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; deposit(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IWETHTxData { approve(sender: TSender, guy: TAddress, wad: bigint): Promise; transferFrom(sender: TSender, src: TAddress, dst: TAddress, wad: bigint): Promise; withdraw(sender: TSender, wad: bigint): Promise; transfer(sender: TSender, dst: TAddress, wad: bigint): Promise; deposit(sender: TSender): Promise; } type TEvents = TWETHTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};