import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "./common"; export type L2LogStruct = { l2ShardId: BigNumberish; isService: boolean; txNumberInBatch: BigNumberish; sender: AddressLike; key: BytesLike; value: BytesLike; }; export type L2LogStructOutput = [ l2ShardId: bigint, isService: boolean, txNumberInBatch: bigint, sender: string, key: string, value: string ] & { l2ShardId: bigint; isService: boolean; txNumberInBatch: bigint; sender: string; key: string; value: string; }; export type L2MessageStruct = { txNumberInBatch: BigNumberish; sender: AddressLike; data: BytesLike; }; export type L2MessageStructOutput = [ txNumberInBatch: bigint, sender: string, data: string ] & { txNumberInBatch: bigint; sender: string; data: string; }; export interface L2MessageVerificationInterface extends Interface { getFunction(nameOrSignature: "proveL2LeafInclusionShared" | "proveL2LogInclusionShared" | "proveL2MessageInclusionShared"): FunctionFragment; encodeFunctionData(functionFragment: "proveL2LeafInclusionShared", values: [BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike[]]): string; encodeFunctionData(functionFragment: "proveL2LogInclusionShared", values: [BigNumberish, BigNumberish, BigNumberish, L2LogStruct, BytesLike[]]): string; encodeFunctionData(functionFragment: "proveL2MessageInclusionShared", values: [ BigNumberish, BigNumberish, BigNumberish, L2MessageStruct, BytesLike[] ]): string; decodeFunctionResult(functionFragment: "proveL2LeafInclusionShared", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proveL2LogInclusionShared", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proveL2MessageInclusionShared", data: BytesLike): Result; } export interface L2MessageVerification extends BaseContract { connect(runner?: ContractRunner | null): L2MessageVerification; waitForDeployment(): Promise; interface: L2MessageVerificationInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; proveL2LeafInclusionShared: TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _leafProofMask: BigNumberish, _leaf: BytesLike, _proof: BytesLike[] ], [ boolean ], "view">; proveL2LogInclusionShared: TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _index: BigNumberish, _log: L2LogStruct, _proof: BytesLike[] ], [ boolean ], "view">; proveL2MessageInclusionShared: TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _index: BigNumberish, _message: L2MessageStruct, _proof: BytesLike[] ], [ boolean ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "proveL2LeafInclusionShared"): TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _leafProofMask: BigNumberish, _leaf: BytesLike, _proof: BytesLike[] ], [ boolean ], "view">; getFunction(nameOrSignature: "proveL2LogInclusionShared"): TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _index: BigNumberish, _log: L2LogStruct, _proof: BytesLike[] ], [ boolean ], "view">; getFunction(nameOrSignature: "proveL2MessageInclusionShared"): TypedContractMethod<[ _chainId: BigNumberish, _blockOrBatchNumber: BigNumberish, _index: BigNumberish, _message: L2MessageStruct, _proof: BytesLike[] ], [ boolean ], "view">; filters: {}; }