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 IAMB extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TIAMBTypes; $meta: { class: string; }; destinationChainId(): Promise; failedMessageDataHash(_messageId: TEth.Hex): Promise; failedMessageReceiver(_messageId: TEth.Hex): Promise; failedMessageSender(_messageId: TEth.Hex): Promise; maxGasPerTx(): Promise; messageCallStatus(_messageId: TEth.Hex): Promise; messageId(): Promise; messageSender(): Promise; messageSourceChainId(): Promise; requireToConfirmMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise; requireToPassMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise; sourceChainId(): Promise; transactionHash(): Promise; $call(): IIAMBTxCaller; $signed(): TOverrideReturns>; $data(): IIAMBTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TIAMBTypes['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>[]>; onAffirmationCompleted(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRelayedMessage(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onUserRequestForAffirmation(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onUserRequestForSignature(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsAffirmationCompleted(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRelayedMessage(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsUserRequestForAffirmation(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsUserRequestForSignature(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsAffirmationCompleted(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; executor?: TAddress; messageId?: TEth.Hex; }; }): Promise>[]>; getPastLogsRelayedMessage(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; executor?: TAddress; messageId?: TEth.Hex; }; }): Promise>[]>; getPastLogsUserRequestForAffirmation(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { messageId?: TEth.Hex; }; }): Promise>[]>; getPastLogsUserRequestForSignature(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { messageId?: TEth.Hex; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TIAMBTypes = { Events: { AffirmationCompleted: { outputParams: { _sender: TAddress; executor: TAddress; messageId: TEth.Hex; status: boolean; }; outputArgs: [_sender: TAddress, executor: TAddress, messageId: TEth.Hex, status: boolean]; }; RelayedMessage: { outputParams: { _sender: TAddress; executor: TAddress; messageId: TEth.Hex; status: boolean; }; outputArgs: [_sender: TAddress, executor: TAddress, messageId: TEth.Hex, status: boolean]; }; UserRequestForAffirmation: { outputParams: { messageId: TEth.Hex; encodedData: TEth.Hex; }; outputArgs: [messageId: TEth.Hex, encodedData: TEth.Hex]; }; UserRequestForSignature: { outputParams: { messageId: TEth.Hex; encodedData: TEth.Hex; }; outputArgs: [messageId: TEth.Hex, encodedData: TEth.Hex]; }; }; Methods: { destinationChainId: { method: "destinationChainId"; arguments: []; }; failedMessageDataHash: { method: "failedMessageDataHash"; arguments: [_messageId: TEth.Hex]; }; failedMessageReceiver: { method: "failedMessageReceiver"; arguments: [_messageId: TEth.Hex]; }; failedMessageSender: { method: "failedMessageSender"; arguments: [_messageId: TEth.Hex]; }; maxGasPerTx: { method: "maxGasPerTx"; arguments: []; }; messageCallStatus: { method: "messageCallStatus"; arguments: [_messageId: TEth.Hex]; }; messageId: { method: "messageId"; arguments: []; }; messageSender: { method: "messageSender"; arguments: []; }; messageSourceChainId: { method: "messageSourceChainId"; arguments: []; }; requireToConfirmMessage: { method: "requireToConfirmMessage"; arguments: [_contract: TAddress, _data: TEth.Hex, _gas: bigint]; }; requireToPassMessage: { method: "requireToPassMessage"; arguments: [_contract: TAddress, _data: TEth.Hex, _gas: bigint]; }; sourceChainId: { method: "sourceChainId"; arguments: []; }; transactionHash: { method: "transactionHash"; arguments: []; }; }; }; interface IIAMBTxCaller { requireToConfirmMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; requireToPassMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IIAMBTxData { requireToConfirmMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise; requireToPassMessage(sender: TSender, _contract: TAddress, _data: TEth.Hex, _gas: bigint): Promise; } type TEvents = TIAMBTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};