import type { Block, HeaderData } from '@ethereumjs/block'; import type { CLRequest, CLRequestType, PrefixedHexString, WithdrawalData } from '@ethereumjs/util'; import type { BlockBuilder, TxReceipt, VM } from '@ethereumjs/vm'; import type { Config } from '../config.ts'; import type { TxPool } from '../service/txpool.ts'; interface PendingBlockOpts { config: Config; txPool: TxPool; skipHardForkValidation?: boolean; } export interface BlobsBundle { blobs: PrefixedHexString[]; commitments: PrefixedHexString[]; proofs: PrefixedHexString[]; } export declare class PendingBlock { config: Config; txPool: TxPool; pendingPayloads: Map; blobsBundles: Map; private skipHardForkValidation?; constructor(opts: PendingBlockOpts); pruneSetToMax(maxItems: number): number; /** * Starts building a pending block with the given payload * @returns an 8-byte payload identifier to call {@link BlockBuilder.build} with */ start(vm: VM, parentBlock: Block, headerData?: Partial, withdrawals?: WithdrawalData[]): Promise>; /** * Stops a pending payload */ stop(payloadIdBytes: Uint8Array | string): void; /** * Returns the completed block */ build(payloadIdBytes: Uint8Array | string): Promise[] ]>; private addTransactions; private addTransaction; /** * An internal helper for storing the blob bundle associated with each transaction in an EIP4844 world * @param payloadId the payload Id of the pending block * @param txs an array of {@Blob4844Tx } transactions * @param blockHash the blockhash of the pending block (computed from the header data provided) */ private constructBlobsBundle; } export {}; //# sourceMappingURL=pendingBlock.d.ts.map