import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common"; export interface IStarknetMessagingInterface extends utils.Interface { functions: { "consumeMessageFromL2(uint256,uint256[])": FunctionFragment; "sendMessageToL2(uint256,uint256,uint256[])": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "consumeMessageFromL2" | "sendMessageToL2"): FunctionFragment; encodeFunctionData(functionFragment: "consumeMessageFromL2", values: [PromiseOrValue, PromiseOrValue[]]): string; encodeFunctionData(functionFragment: "sendMessageToL2", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue[] ]): string; decodeFunctionResult(functionFragment: "consumeMessageFromL2", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendMessageToL2", data: BytesLike): Result; events: { "ConsumedMessageToL1(uint256,address,uint256[])": EventFragment; "ConsumedMessageToL2(address,uint256,uint256,uint256[],uint256)": EventFragment; "LogMessageToL1(uint256,address,uint256[])": EventFragment; "LogMessageToL2(address,uint256,uint256,uint256[],uint256,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "ConsumedMessageToL1"): EventFragment; getEvent(nameOrSignatureOrTopic: "ConsumedMessageToL2"): EventFragment; getEvent(nameOrSignatureOrTopic: "LogMessageToL1"): EventFragment; getEvent(nameOrSignatureOrTopic: "LogMessageToL2"): EventFragment; } export interface ConsumedMessageToL1EventObject { fromAddress: BigNumber; toAddress: string; payload: BigNumber[]; } export type ConsumedMessageToL1Event = TypedEvent<[ BigNumber, string, BigNumber[] ], ConsumedMessageToL1EventObject>; export type ConsumedMessageToL1EventFilter = TypedEventFilter; export interface ConsumedMessageToL2EventObject { fromAddress: string; toAddress: BigNumber; selector: BigNumber; payload: BigNumber[]; nonce: BigNumber; } export type ConsumedMessageToL2Event = TypedEvent<[ string, BigNumber, BigNumber, BigNumber[], BigNumber ], ConsumedMessageToL2EventObject>; export type ConsumedMessageToL2EventFilter = TypedEventFilter; export interface LogMessageToL1EventObject { fromAddress: BigNumber; toAddress: string; payload: BigNumber[]; } export type LogMessageToL1Event = TypedEvent<[ BigNumber, string, BigNumber[] ], LogMessageToL1EventObject>; export type LogMessageToL1EventFilter = TypedEventFilter; export interface LogMessageToL2EventObject { fromAddress: string; toAddress: BigNumber; selector: BigNumber; payload: BigNumber[]; nonce: BigNumber; fee: BigNumber; } export type LogMessageToL2Event = TypedEvent<[ string, BigNumber, BigNumber, BigNumber[], BigNumber, BigNumber ], LogMessageToL2EventObject>; export type LogMessageToL2EventFilter = TypedEventFilter; export interface IStarknetMessaging extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IStarknetMessagingInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { consumeMessageFromL2(fromAddress: PromiseOrValue, payload: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; sendMessageToL2(toAddress: PromiseOrValue, selector: PromiseOrValue, payload: PromiseOrValue[], overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; consumeMessageFromL2(fromAddress: PromiseOrValue, payload: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; sendMessageToL2(toAddress: PromiseOrValue, selector: PromiseOrValue, payload: PromiseOrValue[], overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; callStatic: { consumeMessageFromL2(fromAddress: PromiseOrValue, payload: PromiseOrValue[], overrides?: CallOverrides): Promise; sendMessageToL2(toAddress: PromiseOrValue, selector: PromiseOrValue, payload: PromiseOrValue[], overrides?: CallOverrides): Promise<[string, BigNumber]>; }; filters: { "ConsumedMessageToL1(uint256,address,uint256[])"(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, payload?: null): ConsumedMessageToL1EventFilter; ConsumedMessageToL1(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, payload?: null): ConsumedMessageToL1EventFilter; "ConsumedMessageToL2(address,uint256,uint256,uint256[],uint256)"(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, selector?: PromiseOrValue | null, payload?: null, nonce?: null): ConsumedMessageToL2EventFilter; ConsumedMessageToL2(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, selector?: PromiseOrValue | null, payload?: null, nonce?: null): ConsumedMessageToL2EventFilter; "LogMessageToL1(uint256,address,uint256[])"(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, payload?: null): LogMessageToL1EventFilter; LogMessageToL1(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, payload?: null): LogMessageToL1EventFilter; "LogMessageToL2(address,uint256,uint256,uint256[],uint256,uint256)"(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, selector?: PromiseOrValue | null, payload?: null, nonce?: null, fee?: null): LogMessageToL2EventFilter; LogMessageToL2(fromAddress?: PromiseOrValue | null, toAddress?: PromiseOrValue | null, selector?: PromiseOrValue | null, payload?: null, nonce?: null, fee?: null): LogMessageToL2EventFilter; }; estimateGas: { consumeMessageFromL2(fromAddress: PromiseOrValue, payload: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; sendMessageToL2(toAddress: PromiseOrValue, selector: PromiseOrValue, payload: PromiseOrValue[], overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { consumeMessageFromL2(fromAddress: PromiseOrValue, payload: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; sendMessageToL2(toAddress: PromiseOrValue, selector: PromiseOrValue, payload: PromiseOrValue[], overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; }