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 IBridge extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TIBridgeTypes; $meta: { class: string; }; activeOutbox(): Promise; allowedDelayedInboxList(sender: TSender, input0: bigint): Promise; allowedDelayedInboxes(inbox: TAddress): Promise; allowedOutboxList(sender: TSender, input0: bigint): Promise; allowedOutboxes(outbox: TAddress): Promise; delayedInboxAccs(input0: bigint): Promise; delayedMessageCount(): Promise; enqueueDelayedMessage(sender: TSender, kind: number, _sender: TAddress, messageDataHash: TEth.Hex): Promise; enqueueSequencerMessage(sender: TSender, dataHash: TEth.Hex, afterDelayedMessagesRead: bigint, prevMessageCount: bigint, newMessageCount: bigint): Promise; executeCall(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex): Promise; initialize(sender: TSender, rollup_: TAddress): Promise; rollup(): Promise; sequencerInbox(): Promise; sequencerInboxAccs(input0: bigint): Promise; sequencerMessageCount(): Promise; sequencerReportedSubMessageCount(): Promise; setDelayedInbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise; setOutbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise; setSequencerInbox(sender: TSender, _sequencerInbox: TAddress): Promise; submitBatchSpendingReport(sender: TSender, batchPoster: TAddress, dataHash: TEth.Hex): Promise; $call(): IIBridgeTxCaller; $signed(): TOverrideReturns>; $data(): IIBridgeTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TIBridgeTypes['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>[]>; onBridgeCallTriggered(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onInboxToggle(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onMessageDelivered(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onOutboxToggle(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSequencerInboxUpdated(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsBridgeCallTriggered(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsInboxToggle(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsMessageDelivered(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsOutboxToggle(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSequencerInboxUpdated(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsBridgeCallTriggered(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { outbox?: TAddress; to?: TAddress; }; }): Promise>[]>; getPastLogsInboxToggle(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { inbox?: TAddress; }; }): Promise>[]>; getPastLogsMessageDelivered(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { messageIndex?: bigint; beforeInboxAcc?: TEth.Hex; }; }): Promise>[]>; getPastLogsOutboxToggle(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { outbox?: TAddress; }; }): Promise>[]>; getPastLogsSequencerInboxUpdated(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 TIBridgeTypes = { Events: { BridgeCallTriggered: { outputParams: { outbox: TAddress; to: TAddress; value: bigint; data: TEth.Hex; }; outputArgs: [outbox: TAddress, to: TAddress, value: bigint, data: TEth.Hex]; }; InboxToggle: { outputParams: { inbox: TAddress; enabled: boolean; }; outputArgs: [inbox: TAddress, enabled: boolean]; }; MessageDelivered: { outputParams: { messageIndex: bigint; beforeInboxAcc: TEth.Hex; inbox: TAddress; kind: number; _sender: TAddress; messageDataHash: TEth.Hex; baseFeeL1: bigint; timestamp: number; }; outputArgs: [messageIndex: bigint, beforeInboxAcc: TEth.Hex, inbox: TAddress, kind: number, _sender: TAddress, messageDataHash: TEth.Hex, baseFeeL1: bigint, timestamp: number]; }; OutboxToggle: { outputParams: { outbox: TAddress; enabled: boolean; }; outputArgs: [outbox: TAddress, enabled: boolean]; }; SequencerInboxUpdated: { outputParams: { newSequencerInbox: TAddress; }; outputArgs: [newSequencerInbox: TAddress]; }; }; Methods: { activeOutbox: { method: "activeOutbox"; arguments: []; }; allowedDelayedInboxList: { method: "allowedDelayedInboxList"; arguments: [input0: bigint]; }; allowedDelayedInboxes: { method: "allowedDelayedInboxes"; arguments: [inbox: TAddress]; }; allowedOutboxList: { method: "allowedOutboxList"; arguments: [input0: bigint]; }; allowedOutboxes: { method: "allowedOutboxes"; arguments: [outbox: TAddress]; }; delayedInboxAccs: { method: "delayedInboxAccs"; arguments: [input0: bigint]; }; delayedMessageCount: { method: "delayedMessageCount"; arguments: []; }; enqueueDelayedMessage: { method: "enqueueDelayedMessage"; arguments: [kind: number, _sender: TAddress, messageDataHash: TEth.Hex]; }; enqueueSequencerMessage: { method: "enqueueSequencerMessage"; arguments: [dataHash: TEth.Hex, afterDelayedMessagesRead: bigint, prevMessageCount: bigint, newMessageCount: bigint]; }; executeCall: { method: "executeCall"; arguments: [to: TAddress, value: bigint, data: TEth.Hex]; }; initialize: { method: "initialize"; arguments: [rollup_: TAddress]; }; rollup: { method: "rollup"; arguments: []; }; sequencerInbox: { method: "sequencerInbox"; arguments: []; }; sequencerInboxAccs: { method: "sequencerInboxAccs"; arguments: [input0: bigint]; }; sequencerMessageCount: { method: "sequencerMessageCount"; arguments: []; }; sequencerReportedSubMessageCount: { method: "sequencerReportedSubMessageCount"; arguments: []; }; setDelayedInbox: { method: "setDelayedInbox"; arguments: [inbox: TAddress, enabled: boolean]; }; setOutbox: { method: "setOutbox"; arguments: [inbox: TAddress, enabled: boolean]; }; setSequencerInbox: { method: "setSequencerInbox"; arguments: [_sequencerInbox: TAddress]; }; submitBatchSpendingReport: { method: "submitBatchSpendingReport"; arguments: [batchPoster: TAddress, dataHash: TEth.Hex]; }; }; }; interface IIBridgeTxCaller { allowedDelayedInboxList(sender: TSender, input0: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; allowedOutboxList(sender: TSender, input0: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; enqueueDelayedMessage(sender: TSender, kind: number, _sender: TAddress, messageDataHash: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; enqueueSequencerMessage(sender: TSender, dataHash: TEth.Hex, afterDelayedMessagesRead: bigint, prevMessageCount: bigint, newMessageCount: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; executeCall(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; initialize(sender: TSender, rollup_: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setDelayedInbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setOutbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setSequencerInbox(sender: TSender, _sequencerInbox: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; submitBatchSpendingReport(sender: TSender, batchPoster: TAddress, dataHash: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IIBridgeTxData { allowedDelayedInboxList(sender: TSender, input0: bigint): Promise; allowedOutboxList(sender: TSender, input0: bigint): Promise; enqueueDelayedMessage(sender: TSender, kind: number, _sender: TAddress, messageDataHash: TEth.Hex): Promise; enqueueSequencerMessage(sender: TSender, dataHash: TEth.Hex, afterDelayedMessagesRead: bigint, prevMessageCount: bigint, newMessageCount: bigint): Promise; executeCall(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex): Promise; initialize(sender: TSender, rollup_: TAddress): Promise; setDelayedInbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise; setOutbox(sender: TSender, inbox: TAddress, enabled: boolean): Promise; setSequencerInbox(sender: TSender, _sequencerInbox: TAddress): Promise; submitBatchSpendingReport(sender: TSender, batchPoster: TAddress, dataHash: TEth.Hex): Promise; } type TEvents = TIBridgeTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};