import { TAddress } from '../../models/TAddress'; import { TAccount } from '../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../clients/ClientEventsStream'; import { ContractBase } from '../../contracts/ContractBase'; 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 namespace VotesErrors { interface InvalidShortString { type: 'InvalidShortString'; params: {}; } interface StringTooLong { type: 'StringTooLong'; params: { str: string; }; } type Error = InvalidShortString | StringTooLong; } export declare class Votes extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TVotesTypes; $meta: { class: string; }; CLOCK_MODE(): Promise; DOMAIN_SEPARATOR(): Promise; clock(): Promise; delegate(sender: TSender, delegatee: TAddress): Promise; delegateBySig(sender: TSender, delegatee: TAddress, nonce: bigint, expiry: bigint, v: number, r: TEth.Hex, s: TEth.Hex): Promise; delegates(account: TAddress): Promise; eip712Domain(): Promise<{ fields: TEth.Hex; name: string; version: string; chainId: bigint; verifyingContract: TAddress; salt: TEth.Hex; extensions: bigint[]; }>; getPastTotalSupply(timepoint: bigint): Promise; getPastVotes(account: TAddress, timepoint: bigint): Promise; getVotes(account: TAddress): Promise; nonces(owner: TAddress): Promise; $call(): IVotesTxCaller; $signed(): TOverrideReturns>; $data(): IVotesTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TVotesTypes['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>[]>; onDelegateChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDelegateVotesChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onEIP712DomainChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsDelegateChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDelegateVotesChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsEIP712DomainChanged(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsDelegateChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { delegator?: TAddress; fromDelegate?: TAddress; toDelegate?: TAddress; }; }): Promise>[]>; getPastLogsDelegateVotesChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { delegate?: TAddress; }; }): Promise>[]>; getPastLogsEIP712DomainChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TVotesTypes = { Events: { DelegateChanged: { outputParams: { delegator: TAddress; fromDelegate: TAddress; toDelegate: TAddress; }; outputArgs: [delegator: TAddress, fromDelegate: TAddress, toDelegate: TAddress]; }; DelegateVotesChanged: { outputParams: { delegate: TAddress; previousBalance: bigint; newBalance: bigint; }; outputArgs: [delegate: TAddress, previousBalance: bigint, newBalance: bigint]; }; EIP712DomainChanged: { outputParams: {}; outputArgs: []; }; }; Methods: { CLOCK_MODE: { method: "CLOCK_MODE"; arguments: []; }; DOMAIN_SEPARATOR: { method: "DOMAIN_SEPARATOR"; arguments: []; }; clock: { method: "clock"; arguments: []; }; delegate: { method: "delegate"; arguments: [delegatee: TAddress]; }; delegateBySig: { method: "delegateBySig"; arguments: [delegatee: TAddress, nonce: bigint, expiry: bigint, v: number, r: TEth.Hex, s: TEth.Hex]; }; delegates: { method: "delegates"; arguments: [account: TAddress]; }; eip712Domain: { method: "eip712Domain"; arguments: []; }; getPastTotalSupply: { method: "getPastTotalSupply"; arguments: [timepoint: bigint]; }; getPastVotes: { method: "getPastVotes"; arguments: [account: TAddress, timepoint: bigint]; }; getVotes: { method: "getVotes"; arguments: [account: TAddress]; }; nonces: { method: "nonces"; arguments: [owner: TAddress]; }; }; }; interface IVotesTxCaller { delegate(sender: TSender, delegatee: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; delegateBySig(sender: TSender, delegatee: TAddress, nonce: bigint, expiry: bigint, v: number, r: TEth.Hex, s: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IVotesTxData { delegate(sender: TSender, delegatee: TAddress): Promise; delegateBySig(sender: TSender, delegatee: TAddress, nonce: bigint, expiry: bigint, v: number, r: TEth.Hex, s: TEth.Hex): Promise; } type TEvents = TVotesTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};