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 class IERC777 extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TIERC777Types; $meta: { class: string; }; authorizeOperator(sender: TSender, operator: TAddress): Promise; balanceOf(owner: TAddress): Promise; burn(sender: TSender, amount: bigint, data: TEth.Hex): Promise; defaultOperators(): Promise; granularity(): Promise; isOperatorFor(operator: TAddress, tokenHolder: TAddress): Promise; name(): Promise; operatorBurn(sender: TSender, account: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise; operatorSend(sender: TSender, _sender: TAddress, recipient: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise; revokeOperator(sender: TSender, operator: TAddress): Promise; send(sender: TSender, recipient: TAddress, amount: bigint, data: TEth.Hex): Promise; symbol(): Promise; totalSupply(): Promise; $call(): IIERC777TxCaller; $signed(): TOverrideReturns>; $data(): IIERC777TxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TIERC777Types['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>[]>; onAuthorizedOperator(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onBurned(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onMinted(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRevokedOperator(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSent(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsAuthorizedOperator(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsBurned(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsMinted(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRevokedOperator(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSent(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsAuthorizedOperator(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { operator?: TAddress; tokenHolder?: TAddress; }; }): Promise>[]>; getPastLogsBurned(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { operator?: TAddress; from?: TAddress; }; }): Promise>[]>; getPastLogsMinted(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { operator?: TAddress; to?: TAddress; }; }): Promise>[]>; getPastLogsRevokedOperator(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { operator?: TAddress; tokenHolder?: TAddress; }; }): Promise>[]>; getPastLogsSent(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { operator?: TAddress; from?: TAddress; to?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TIERC777Types = { Events: { AuthorizedOperator: { outputParams: { operator: TAddress; tokenHolder: TAddress; }; outputArgs: [operator: TAddress, tokenHolder: TAddress]; }; Burned: { outputParams: { operator: TAddress; from: TAddress; amount: bigint; data: TEth.Hex; operatorData: TEth.Hex; }; outputArgs: [operator: TAddress, from: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex]; }; Minted: { outputParams: { operator: TAddress; to: TAddress; amount: bigint; data: TEth.Hex; operatorData: TEth.Hex; }; outputArgs: [operator: TAddress, to: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex]; }; RevokedOperator: { outputParams: { operator: TAddress; tokenHolder: TAddress; }; outputArgs: [operator: TAddress, tokenHolder: TAddress]; }; Sent: { outputParams: { operator: TAddress; from: TAddress; to: TAddress; amount: bigint; data: TEth.Hex; operatorData: TEth.Hex; }; outputArgs: [operator: TAddress, from: TAddress, to: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex]; }; }; Methods: { authorizeOperator: { method: "authorizeOperator"; arguments: [operator: TAddress]; }; balanceOf: { method: "balanceOf"; arguments: [owner: TAddress]; }; burn: { method: "burn"; arguments: [amount: bigint, data: TEth.Hex]; }; defaultOperators: { method: "defaultOperators"; arguments: []; }; granularity: { method: "granularity"; arguments: []; }; isOperatorFor: { method: "isOperatorFor"; arguments: [operator: TAddress, tokenHolder: TAddress]; }; name: { method: "name"; arguments: []; }; operatorBurn: { method: "operatorBurn"; arguments: [account: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex]; }; operatorSend: { method: "operatorSend"; arguments: [_sender: TAddress, recipient: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex]; }; revokeOperator: { method: "revokeOperator"; arguments: [operator: TAddress]; }; send: { method: "send"; arguments: [recipient: TAddress, amount: bigint, data: TEth.Hex]; }; symbol: { method: "symbol"; arguments: []; }; totalSupply: { method: "totalSupply"; arguments: []; }; }; }; interface IIERC777TxCaller { authorizeOperator(sender: TSender, operator: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; burn(sender: TSender, amount: bigint, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; operatorBurn(sender: TSender, account: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; operatorSend(sender: TSender, _sender: TAddress, recipient: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; revokeOperator(sender: TSender, operator: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; send(sender: TSender, recipient: TAddress, amount: bigint, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IIERC777TxData { authorizeOperator(sender: TSender, operator: TAddress): Promise; burn(sender: TSender, amount: bigint, data: TEth.Hex): Promise; operatorBurn(sender: TSender, account: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise; operatorSend(sender: TSender, _sender: TAddress, recipient: TAddress, amount: bigint, data: TEth.Hex, operatorData: TEth.Hex): Promise; revokeOperator(sender: TSender, operator: TAddress): Promise; send(sender: TSender, recipient: TAddress, amount: bigint, data: TEth.Hex): Promise; } type TEvents = TIERC777Types['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};