UNPKG

zksync-ethers

Version:

A Web3 library for interacting with the ZkSync Layer 2 scaling solution.

423 lines (422 loc) 18.6 kB
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, 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 type L2TransactionRequestDirectStruct = { chainId: BigNumberish; mintValue: BigNumberish; l2Contract: AddressLike; l2Value: BigNumberish; l2Calldata: BytesLike; l2GasLimit: BigNumberish; l2GasPerPubdataByteLimit: BigNumberish; factoryDeps: BytesLike[]; refundRecipient: AddressLike; }; export type L2TransactionRequestDirectStructOutput = [ chainId: bigint, mintValue: bigint, l2Contract: string, l2Value: bigint, l2Calldata: string, l2GasLimit: bigint, l2GasPerPubdataByteLimit: bigint, factoryDeps: string[], refundRecipient: string ] & { chainId: bigint; mintValue: bigint; l2Contract: string; l2Value: bigint; l2Calldata: string; l2GasLimit: bigint; l2GasPerPubdataByteLimit: bigint; factoryDeps: string[]; refundRecipient: string; }; export type L2TransactionRequestTwoBridgesOuterStruct = { chainId: BigNumberish; mintValue: BigNumberish; l2Value: BigNumberish; l2GasLimit: BigNumberish; l2GasPerPubdataByteLimit: BigNumberish; refundRecipient: AddressLike; secondBridgeAddress: AddressLike; secondBridgeValue: BigNumberish; secondBridgeCalldata: BytesLike; }; export type L2TransactionRequestTwoBridgesOuterStructOutput = [ chainId: bigint, mintValue: bigint, l2Value: bigint, l2GasLimit: bigint, l2GasPerPubdataByteLimit: bigint, refundRecipient: string, secondBridgeAddress: string, secondBridgeValue: bigint, secondBridgeCalldata: string ] & { chainId: bigint; mintValue: bigint; l2Value: bigint; l2GasLimit: bigint; l2GasPerPubdataByteLimit: bigint; refundRecipient: string; secondBridgeAddress: string; secondBridgeValue: bigint; secondBridgeCalldata: string; }; export interface IBridgehubInterface extends Interface { getFunction(nameOrSignature: "acceptAdmin" | "addStateTransitionManager" | "addToken" | "baseToken" | "createNewChain" | "getHyperchain" | "l2TransactionBaseCost" | "proveL1ToL2TransactionStatus" | "proveL2LogInclusion" | "proveL2MessageInclusion" | "removeStateTransitionManager" | "requestL2TransactionDirect" | "requestL2TransactionTwoBridges" | "setPendingAdmin" | "setSharedBridge" | "sharedBridge" | "stateTransitionManager" | "stateTransitionManagerIsRegistered" | "tokenIsRegistered"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "NewAdmin" | "NewChain" | "NewPendingAdmin"): EventFragment; encodeFunctionData(functionFragment: "acceptAdmin", values?: undefined): string; encodeFunctionData(functionFragment: "addStateTransitionManager", values: [AddressLike]): string; encodeFunctionData(functionFragment: "addToken", values: [AddressLike]): string; encodeFunctionData(functionFragment: "baseToken", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "createNewChain", values: [ BigNumberish, AddressLike, AddressLike, BigNumberish, AddressLike, BytesLike ]): string; encodeFunctionData(functionFragment: "getHyperchain", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "l2TransactionBaseCost", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "proveL1ToL2TransactionStatus", values: [ BigNumberish, BytesLike, BigNumberish, BigNumberish, BigNumberish, BytesLike[], BigNumberish ]): string; encodeFunctionData(functionFragment: "proveL2LogInclusion", values: [BigNumberish, BigNumberish, BigNumberish, L2LogStruct, BytesLike[]]): string; encodeFunctionData(functionFragment: "proveL2MessageInclusion", values: [ BigNumberish, BigNumberish, BigNumberish, L2MessageStruct, BytesLike[] ]): string; encodeFunctionData(functionFragment: "removeStateTransitionManager", values: [AddressLike]): string; encodeFunctionData(functionFragment: "requestL2TransactionDirect", values: [L2TransactionRequestDirectStruct]): string; encodeFunctionData(functionFragment: "requestL2TransactionTwoBridges", values: [L2TransactionRequestTwoBridgesOuterStruct]): string; encodeFunctionData(functionFragment: "setPendingAdmin", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setSharedBridge", values: [AddressLike]): string; encodeFunctionData(functionFragment: "sharedBridge", values?: undefined): string; encodeFunctionData(functionFragment: "stateTransitionManager", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "stateTransitionManagerIsRegistered", values: [AddressLike]): string; encodeFunctionData(functionFragment: "tokenIsRegistered", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "acceptAdmin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addStateTransitionManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "baseToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createNewChain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHyperchain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "l2TransactionBaseCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proveL1ToL2TransactionStatus", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proveL2LogInclusion", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proveL2MessageInclusion", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeStateTransitionManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "requestL2TransactionDirect", data: BytesLike): Result; decodeFunctionResult(functionFragment: "requestL2TransactionTwoBridges", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPendingAdmin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setSharedBridge", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sharedBridge", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stateTransitionManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stateTransitionManagerIsRegistered", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokenIsRegistered", data: BytesLike): Result; } export declare namespace NewAdminEvent { type InputTuple = [oldAdmin: AddressLike, newAdmin: AddressLike]; type OutputTuple = [oldAdmin: string, newAdmin: string]; interface OutputObject { oldAdmin: string; newAdmin: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace NewChainEvent { type InputTuple = [ chainId: BigNumberish, stateTransitionManager: AddressLike, chainGovernance: AddressLike ]; type OutputTuple = [ chainId: bigint, stateTransitionManager: string, chainGovernance: string ]; interface OutputObject { chainId: bigint; stateTransitionManager: string; chainGovernance: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace NewPendingAdminEvent { type InputTuple = [ oldPendingAdmin: AddressLike, newPendingAdmin: AddressLike ]; type OutputTuple = [oldPendingAdmin: string, newPendingAdmin: string]; interface OutputObject { oldPendingAdmin: string; newPendingAdmin: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export interface IBridgehub extends BaseContract { connect(runner?: ContractRunner | null): IBridgehub; waitForDeployment(): Promise<this>; interface: IBridgehubInterface; 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>; acceptAdmin: TypedContractMethod<[], [void], "nonpayable">; addStateTransitionManager: TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ void ], "nonpayable">; addToken: TypedContractMethod<[_token: AddressLike], [void], "nonpayable">; baseToken: TypedContractMethod<[_chainId: BigNumberish], [string], "view">; createNewChain: TypedContractMethod<[ _chainId: BigNumberish, _stateTransitionManager: AddressLike, _baseToken: AddressLike, _salt: BigNumberish, _admin: AddressLike, _initData: BytesLike ], [ bigint ], "nonpayable">; getHyperchain: TypedContractMethod<[ _chainId: BigNumberish ], [ string ], "view">; l2TransactionBaseCost: TypedContractMethod<[ _chainId: BigNumberish, _gasPrice: BigNumberish, _l2GasLimit: BigNumberish, _l2GasPerPubdataByteLimit: BigNumberish ], [ bigint ], "view">; proveL1ToL2TransactionStatus: TypedContractMethod<[ _chainId: BigNumberish, _l2TxHash: BytesLike, _l2BatchNumber: BigNumberish, _l2MessageIndex: BigNumberish, _l2TxNumberInBatch: BigNumberish, _merkleProof: BytesLike[], _status: BigNumberish ], [ boolean ], "view">; proveL2LogInclusion: TypedContractMethod<[ _chainId: BigNumberish, _batchNumber: BigNumberish, _index: BigNumberish, _log: L2LogStruct, _proof: BytesLike[] ], [ boolean ], "view">; proveL2MessageInclusion: TypedContractMethod<[ _chainId: BigNumberish, _batchNumber: BigNumberish, _index: BigNumberish, _message: L2MessageStruct, _proof: BytesLike[] ], [ boolean ], "view">; removeStateTransitionManager: TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ void ], "nonpayable">; requestL2TransactionDirect: TypedContractMethod<[ _request: L2TransactionRequestDirectStruct ], [ string ], "payable">; requestL2TransactionTwoBridges: TypedContractMethod<[ _request: L2TransactionRequestTwoBridgesOuterStruct ], [ string ], "payable">; setPendingAdmin: TypedContractMethod<[ _newPendingAdmin: AddressLike ], [ void ], "nonpayable">; setSharedBridge: TypedContractMethod<[ _sharedBridge: AddressLike ], [ void ], "nonpayable">; sharedBridge: TypedContractMethod<[], [string], "view">; stateTransitionManager: TypedContractMethod<[ _chainId: BigNumberish ], [ string ], "view">; stateTransitionManagerIsRegistered: TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ boolean ], "view">; tokenIsRegistered: TypedContractMethod<[ _baseToken: AddressLike ], [ boolean ], "view">; getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T; getFunction(nameOrSignature: "acceptAdmin"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "addStateTransitionManager"): TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "addToken"): TypedContractMethod<[_token: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "baseToken"): TypedContractMethod<[_chainId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "createNewChain"): TypedContractMethod<[ _chainId: BigNumberish, _stateTransitionManager: AddressLike, _baseToken: AddressLike, _salt: BigNumberish, _admin: AddressLike, _initData: BytesLike ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "getHyperchain"): TypedContractMethod<[_chainId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "l2TransactionBaseCost"): TypedContractMethod<[ _chainId: BigNumberish, _gasPrice: BigNumberish, _l2GasLimit: BigNumberish, _l2GasPerPubdataByteLimit: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "proveL1ToL2TransactionStatus"): TypedContractMethod<[ _chainId: BigNumberish, _l2TxHash: BytesLike, _l2BatchNumber: BigNumberish, _l2MessageIndex: BigNumberish, _l2TxNumberInBatch: BigNumberish, _merkleProof: BytesLike[], _status: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "proveL2LogInclusion"): TypedContractMethod<[ _chainId: BigNumberish, _batchNumber: BigNumberish, _index: BigNumberish, _log: L2LogStruct, _proof: BytesLike[] ], [ boolean ], "view">; getFunction(nameOrSignature: "proveL2MessageInclusion"): TypedContractMethod<[ _chainId: BigNumberish, _batchNumber: BigNumberish, _index: BigNumberish, _message: L2MessageStruct, _proof: BytesLike[] ], [ boolean ], "view">; getFunction(nameOrSignature: "removeStateTransitionManager"): TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "requestL2TransactionDirect"): TypedContractMethod<[ _request: L2TransactionRequestDirectStruct ], [ string ], "payable">; getFunction(nameOrSignature: "requestL2TransactionTwoBridges"): TypedContractMethod<[ _request: L2TransactionRequestTwoBridgesOuterStruct ], [ string ], "payable">; getFunction(nameOrSignature: "setPendingAdmin"): TypedContractMethod<[_newPendingAdmin: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setSharedBridge"): TypedContractMethod<[_sharedBridge: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "sharedBridge"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "stateTransitionManager"): TypedContractMethod<[_chainId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "stateTransitionManagerIsRegistered"): TypedContractMethod<[ _stateTransitionManager: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "tokenIsRegistered"): TypedContractMethod<[_baseToken: AddressLike], [boolean], "view">; getEvent(key: "NewAdmin"): TypedContractEvent<NewAdminEvent.InputTuple, NewAdminEvent.OutputTuple, NewAdminEvent.OutputObject>; getEvent(key: "NewChain"): TypedContractEvent<NewChainEvent.InputTuple, NewChainEvent.OutputTuple, NewChainEvent.OutputObject>; getEvent(key: "NewPendingAdmin"): TypedContractEvent<NewPendingAdminEvent.InputTuple, NewPendingAdminEvent.OutputTuple, NewPendingAdminEvent.OutputObject>; filters: { "NewAdmin(address,address)": TypedContractEvent<NewAdminEvent.InputTuple, NewAdminEvent.OutputTuple, NewAdminEvent.OutputObject>; NewAdmin: TypedContractEvent<NewAdminEvent.InputTuple, NewAdminEvent.OutputTuple, NewAdminEvent.OutputObject>; "NewChain(uint256,address,address)": TypedContractEvent<NewChainEvent.InputTuple, NewChainEvent.OutputTuple, NewChainEvent.OutputObject>; NewChain: TypedContractEvent<NewChainEvent.InputTuple, NewChainEvent.OutputTuple, NewChainEvent.OutputObject>; "NewPendingAdmin(address,address)": TypedContractEvent<NewPendingAdminEvent.InputTuple, NewPendingAdminEvent.OutputTuple, NewPendingAdminEvent.OutputObject>; NewPendingAdmin: TypedContractEvent<NewPendingAdminEvent.InputTuple, NewPendingAdminEvent.OutputTuple, NewPendingAdminEvent.OutputObject>; }; }