import std/strutils, eth/common, stint, chronicles, ./step_desc, ./helpers, ./blobs, ../test_env, ../tx_sender, ../../../../nimbus/utils/utils type # A step that sends multiple new blobs to the client SendBlobTransactions* = ref object of TestStep # Number of blob transactions to send before this block's GetPayload request transactionCount*: int # Blobs per transaction blobsPerTransaction*: int # Max Data Gas Cost for every blob transaction blobTransactionMaxBlobGasCost*: UInt256 # Gas Fee Cap for every blob transaction blobTransactionGasFeeCap*: GasInt # Gas Tip Cap for every blob transaction blobTransactionGasTipCap*: GasInt # Replace transactions replaceTransactions*: bool # Skip verification of retrieving the tx from node skipVerificationFromNode*: bool # Account index to send the blob transactions from accountIndex*: int # Client index to send the blob transactions to clientIndex*: int func getBlobsPerTransaction(step: SendBlobTransactions): int = var blobCountPerTx = step.blobsPerTransaction if blobCountPerTx == 0: blobCountPerTx = 1 return blobCountPerTx method execute*(step: SendBlobTransactions, ctx: CancunTestContext): bool = # Send a blob transaction let blobCountPerTx = step.getBlobsPerTransaction() if step.clientIndex >= ctx.env.numEngines: error "invalid client index", index=step.clientIndex return false let engine = ctx.env.engines(step.clientIndex) # Send the blob transactions for _ in 0..