import type { Block, BlockIdentifier, BlockNumber, BlockTag, Uncle, } from './block.js' import type { FeeHistory, FeeValues } from './fee.js' import type { Log } from './log.js' import type { TransactionEIP1559, TransactionEIP2930, TransactionLegacy, TransactionReceipt, TransactionRequestEIP1559, TransactionRequestEIP2930, TransactionRequestLegacy, } from './transaction.js' import type { UnionOmit } from './utils.js' export type Index = `0x${string}` export type Quantity = `0x${string}` export type Status = '0x0' | '0x1' export type TransactionType = '0x0' | '0x1' | '0x2' | (string & {}) export type RpcBlock< TBlockTag extends BlockTag = BlockTag, TIncludeTransactions extends boolean = boolean, TTransaction = RpcTransaction, > = Block export type RpcBlockNumber = BlockNumber export type RpcBlockIdentifier = BlockIdentifier export type RpcUncle = Uncle export type RpcFeeHistory = FeeHistory export type RpcFeeValues = FeeValues export type RpcLog = Log export type RpcTransactionReceipt = TransactionReceipt< Quantity, Index, Status, TransactionType > export type RpcTransactionRequest = | TransactionRequestLegacy | TransactionRequestEIP2930 | TransactionRequestEIP1559 export type RpcTransaction = UnionOmit< | TransactionLegacy | TransactionEIP2930 | TransactionEIP1559, 'typeHex' >