UNPKG

viem

Version:

TypeScript Interface for Ethereum

183 lines • 8.36 kB
import type { Address } from 'abitype'; import type { FeeValuesEIP1559 } from '../../types/fee.js'; import type { Hash, Hex } from '../../types/misc.js'; import type { Index, Quantity, RpcTransactionReceipt, RpcTransactionRequest as RpcTransactionRequest_ } from '../../types/rpc.js'; import type { TransactionBase, TransactionEIP1559 as TransactionEIP1559_, TransactionEIP2930 as TransactionEIP2930_, TransactionLegacy as TransactionLegacy_, TransactionReceipt, TransactionRequestBase, TransactionRequest as TransactionRequest_, TransactionSerializable, TransactionSerializableEIP1559, TransactionSerialized, TransactionType, Transaction as Transaction_ } from '../../types/transaction.js'; import type { ExactPartial, OneOf, UnionOmit } from '../../types/utils.js'; import type { ZksyncEip712Meta } from './eip712.js'; import type { ZksyncFee, ZksyncFeeValues } from './fee.js'; import type { ZksyncL2ToL1Log, ZksyncLog, ZksyncRpcL2ToL1Log, ZksyncRpcLog } from './log.js'; type EIP712Type = '0x71'; type PriorityType = '0xff'; type TransactionOverrides = { l1BatchNumber: bigint | null; l1BatchTxIndex: bigint | null; }; type TransactionPriority<pending extends boolean = boolean> = TransactionBase<bigint, number, pending> & TransactionOverrides & FeeValuesEIP1559 & { type: 'priority'; }; export type ZksyncTransactionEIP712<pending extends boolean = boolean> = TransactionBase<bigint, number, pending> & TransactionOverrides & FeeValuesEIP1559 & { type: 'eip712' | 'priority'; }; type Transaction<pending extends boolean = boolean> = Transaction_<bigint, number, pending> & TransactionOverrides; export type ZksyncTransaction<pending extends boolean = boolean> = Transaction<pending> | TransactionPriority<pending> | ZksyncTransactionEIP712<pending>; type RpcTransactionOverrides = { l1BatchNumber: Hex | null; l1BatchTxIndex: Hex | null; }; type RpcTransactionLegacy<pending extends boolean = boolean> = TransactionLegacy_<Hex, Hex, pending, '0x0'> & RpcTransactionOverrides; type RpcTransactionEIP2930<pending extends boolean = boolean> = TransactionEIP2930_<Hex, Hex, pending, '0x1'> & RpcTransactionOverrides; type RpcTransactionEIP1559<pending extends boolean = boolean> = TransactionEIP1559_<Hex, Hex, pending, '0x2'> & RpcTransactionOverrides; export type ZksyncRpcTransactionPriority<pending extends boolean = boolean> = TransactionBase<Quantity, Index, pending> & ZksyncFeeValues<Quantity> & RpcTransactionOverrides & { accessList?: undefined; chainId: Hex; type: PriorityType; }; export type ZksyncRpcTransactionEIP712<pending extends boolean = boolean> = TransactionBase<Quantity, Index, pending> & ZksyncFeeValues<Quantity> & RpcTransactionOverrides & { accessList?: undefined; chainId: Hex; type: EIP712Type; }; export type ZksyncRpcTransaction<pending extends boolean = boolean> = UnionOmit<RpcTransactionLegacy<pending> | RpcTransactionEIP2930<pending> | RpcTransactionEIP1559<pending> | ZksyncRpcTransactionPriority<pending> | ZksyncRpcTransactionEIP712<pending>, 'typeHex'>; export type TransactionRequest<quantity = bigint, index = number> = TransactionRequest_<quantity, index> & { gasPerPubdata?: undefined; customSignature?: undefined; paymaster?: undefined; paymasterInput?: undefined; factoryDeps?: undefined; }; export type ZksyncTransactionRequestEIP712<quantity = bigint, index = number> = Omit<TransactionRequestBase<quantity, index>, 'type'> & ExactPartial<FeeValuesEIP1559> & { gasPerPubdata?: bigint | undefined; customSignature?: Hex | undefined; factoryDeps?: Hex[] | undefined; type?: 'eip712' | 'priority' | undefined; } & ({ paymaster: Address; paymasterInput: Hex; } | { paymaster?: undefined; paymasterInput?: undefined; }); export type ZksyncTransactionRequest<quantity = bigint, index = number> = TransactionRequest<quantity, index> | ZksyncTransactionRequestEIP712<quantity, index>; type RpcTransactionRequest = RpcTransactionRequest_ & { eip712Meta?: undefined; }; export type ZksyncRpcTransactionRequestEIP712 = TransactionRequestBase<Quantity, Index> & ExactPartial<FeeValuesEIP1559<Quantity>> & { eip712Meta: ZksyncEip712Meta; type: EIP712Type | PriorityType; }; export type ZksyncRpcTransactionRequest = RpcTransactionRequest | ZksyncRpcTransactionRequestEIP712; export type ZksyncTransactionType = TransactionType | 'eip712' | 'priority'; export type ZksyncRpcTransactionReceiptOverrides = { l1BatchNumber: Hex | null; l1BatchTxIndex: Hex | null; logs: ZksyncRpcLog[]; l2ToL1Logs: ZksyncRpcL2ToL1Log[]; root: Hex; }; export type ZksyncRpcTransactionReceipt = Omit<RpcTransactionReceipt, 'logs'> & ZksyncRpcTransactionReceiptOverrides; export type ZksyncTransactionReceiptOverrides = { l1BatchNumber: bigint | null; l1BatchTxIndex: bigint | null; logs: ZksyncLog[]; l2ToL1Logs: ZksyncL2ToL1Log[]; }; export type ZksyncTransactionReceipt<status = 'success' | 'reverted', type = ZksyncTransactionType> = Omit<TransactionReceipt<bigint, number, status, type>, 'logs'> & ZksyncTransactionReceiptOverrides; export type ZksyncTransactionSerializable = OneOf<TransactionSerializable | ZksyncTransactionSerializableEIP712>; export type ZksyncTransactionSerialized<type extends TransactionType = 'eip712'> = type extends 'eip712' ? ZksyncTransactionSerializedEIP712 : TransactionSerialized<type>; export type ZksyncTransactionSerializedEIP712 = `0x71${string}`; export type ZksyncTransactionSerializableEIP712<quantity = bigint, index = number> = Omit<TransactionSerializableEIP1559<quantity, index>, 'type'> & { from: Hex; gasPerPubdata?: bigint | undefined; paymaster?: Address | undefined; factoryDeps?: Hex[] | undefined; paymasterInput?: Hex | undefined; customSignature?: Hex | undefined; type?: 'eip712' | undefined; }; export type ZksyncEIP712TransactionSignable = { txType: bigint; from: bigint; to: bigint; gasLimit: bigint; gasPerPubdataByteLimit: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; paymaster: bigint; nonce: bigint; value: bigint; data: Hex; factoryDeps: Hex[]; paymasterInput: Hex; }; export type TransactionRequestEIP712<quantity = bigint, index = number, transactionType = 'eip712'> = TransactionRequestBase<quantity, index> & ExactPartial<FeeValuesEIP1559<quantity>> & { accessList?: undefined; gasPerPubdata?: bigint | undefined; factoryDeps?: Hex[] | undefined; paymaster?: Address | undefined; paymasterInput?: Hex | undefined; customSignature?: Hex | undefined; type?: transactionType | undefined; }; type CommonDataRawBlockTransaction = { sender: Address; maxFeePerGas: Hex; gasLimit: Hex; gasPerPubdataLimit: Hex; ethHash: Hash; ethBlock: number; canonicalTxHash: Hash; toMint: Hex; refundRecipient: Address; }; export type ZksyncRawBlockTransactions = { commonData: { L1?: ({ serialId: number; deadlineBlock: number; layer2TipFee: Hex; fullFee: Hex; opProcessingType: string; priorityQueueType: string; } & CommonDataRawBlockTransaction) | undefined; L2?: { nonce: number; fee: ZksyncFee<Hex>; initiatorAddress: Address; signature: Uint8Array; transactionType: string; input?: { hash: Hash; data: Uint8Array; } | undefined; paymasterParams: { paymaster: Address; paymasterInput: Uint8Array; }; } | undefined; ProtocolUpgrade?: ({ upgradeId: string; } & CommonDataRawBlockTransaction) | undefined; }; execute: { calldata: Hash; contractAddress: Address; factoryDeps?: Hash; value: bigint; }; receivedTimestampMs: number; rawBytes?: string | undefined; }[]; export type ZksyncTransactionDetails = { isL1Originated: boolean; status: string; fee: bigint; gasPerPubdata: bigint; initiatorAddress: Address; receivedAt: Date; ethCommitTxHash?: Hash | undefined; ethProveTxHash?: Hash | undefined; ethExecuteTxHash?: Hash | undefined; }; export {}; //# sourceMappingURL=transaction.d.ts.map