zksync-ethers
Version:
A Web3 library for interacting with the ZkSync Layer 2 scaling solution.
125 lines (124 loc) • 5.29 kB
TypeScript
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<this>;
interface: L2MessageVerificationInterface;
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
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<T extends ContractMethod = ContractMethod>(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: {};
}