feat: blob transactions#357
Conversation
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
| \begin{enumerate} | ||
| \item bla | ||
| \item bla | ||
| \item bla : bla |
There was a problem hiding this comment.
Placeholder text accidentally committed in lookup specification
Medium Severity
The target columns section contains placeholder "bla" text instead of actual column names. This incomplete specification means the lookup into the blob hash module is not properly defined, which would prevent correct verification of blob hash data.
| \loc{storage\_key\_hi} & \define & \rlpTxnComputationColumnExoDataColumn{1} _{i} \\ | ||
| \loc{storage\_key\_lo} & \define & \rlpTxnComputationColumnExoDataColumn{2} _{i} \\ | ||
| \loc{storage\_key\_hi} & \define & \rlpTxnComputationColumnExoDataColumn{1} _{i} \\ | ||
| \loc{storage\_key\_lo} & \define & \rlpTxnComputationColumnCounterConstantAuxiliaryData{1} _{i} \\ |
There was a problem hiding this comment.
Storage key column conflicts with access list countdown
High Severity
The definition of \loc{storage\_key\_lo} was changed from \rlpTxnComputationColumnExoDataColumn{2} to \rlpTxnComputationColumnCounterConstantAuxiliaryData{1}. However, CounterConstantAuxiliaryData{1} is already used by \locAccessListItemCountdown within the same access list phase. This creates a column conflict where the storage key's low 128 bits and the item countdown counter would occupy the same column, potentially causing either value to be corrupted or incorrect during access list processing.
Additional Locations (1)
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
| \loc{storage\_key\_hi} & \define & \rlpTxnComputationColumnExoDataColumn{1} _{i} \\ | ||
| \loc{storage\_key\_lo} & \define & \rlpTxnComputationColumnExoDataColumn{2} _{i} \\ | ||
| \loc{storage\_key\_hi} & \define & \rlpTxnComputationColumnExoDataColumn{1} _{i} \\ | ||
| \loc{storage\_key\_lo} & \define & \rlpTxnComputationColumnCounterConstantAuxiliaryData{1} _{i} \\ |
There was a problem hiding this comment.
Storage key definition change contradicts explanatory comment
Medium Severity
The \loc{storage\_key\_lo} definition was changed from \rlpTxnComputationColumnExoDataColumn{2} to \rlpTxnComputationColumnCounterConstantAuxiliaryData{1}. However, the comment on lines 31-35 still states that the constraint "will end up equating $\rlpTxnComputationColumnExoDataColumn{k}$ with itself for
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
| \newcommand{\rlpProcessBlobHashName} {\rlpDataProcessingCompoundConstraints{BLOBHASH}} | ||
| \newcommand{\rlpProcessBlobHash} [1] { | ||
| \setkeys[RLP]{var}{#1} | ||
| \rlpProcessBytesThirtyTwoName _{\cmdRLP@var@anchorRow} |
There was a problem hiding this comment.
Macro uses wrong name for output rendering
Medium Severity
The \rlpProcessBlobHash macro definition uses \rlpProcessBytesThirtyTwoName instead of the newly defined \rlpProcessBlobHashName. This causes the output to render as "BYTES32" instead of "BLOBHASH", making the specification inconsistent and potentially confusing when distinguishing blob hash processing from general 32-byte processing.
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
| \begin{enumerate} | ||
| \item | ||
| \rlpTxnCommonColumnNumberOfBlobs{} \textbf{transaction-constant} | ||
| \item $\typeThreeTx_{i} = 0$ \Then $\rlpTxnCommonColumnNumberOfBlobs_{i} = 0$ |
There was a problem hiding this comment.
Missing conditional keyword in constraint
Medium Severity
The constraint for non-type-3 transactions is missing the \If keyword. The line reads $\typeThreeTx_{i} = 0$ \Then ... but should be \If $\typeThreeTx_{i} = 0$ \Then .... Without the conditional, this constraint is syntactically malformed and doesn't express the intended conditional logic.
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch>
| \item $\numberr _{j}$ | ||
| \item[\vspace{\fill}] | ||
| \item $consumed gas$ | ||
| \item $consumed blob gas$ |
There was a problem hiding this comment.
Target columns are plain text instead of macros
Medium Severity
The target columns "consumed gas" and "consumed blob gas" are written as plain English text instead of proper LaTeX column reference macros like \col{...}. This indicates the lookup specification is incomplete and cannot be properly compiled or processed.
| \cumulativeConsumedBlobGas _{i + \locFirstRowOfNewTransactionRoff} & = & | ||
| \left[ \begin{array}{ll} | ||
| + & \cumulativeConsumedBlobGas _{i} \\ | ||
| + & GASPERBLOB \cdot \txnDataRlpNumberOfBlobs _{i + \firtComputationOfSystemTransactionRowOffset + \rlpViewRowOffset} \\ |
There was a problem hiding this comment.
GASPERBLOB constant is undefined plain text
Medium Severity
GASPERBLOB is written as plain text rather than a defined LaTeX macro. Throughout the codebase, constants are defined using macros like \numConst{...} or \redm{...}. This undefined constant will render incorrectly and isn't properly linked to the EIP-4844 gas-per-blob value (131072).
| \item $\rlpTxnCommonColumnNumberOfBlobs _{i}$ | ||
| \end{enumerate} | ||
| \end{multicols} | ||
| \item[\underline{Selector:}] we use $\loc{sel} _{i} = \user _{j} \cdot \isUserTxnRlpView_{j}$; |
There was a problem hiding this comment.
Target selector uses inconsistent row variable subscripts
High Severity
The newly added target selector line uses $\loc{sel} _{i} = \user _{j} \cdot \isUserTxnRlpView_{j}$, mixing row variable i (source) on the left with j (target) on the right. A selector cannot be defined at row i as an expression evaluated at row j. The subscript should consistently use j if this is a target selector.
Note
Adds end-to-end support for blob transactions (type 3 / EIP‑4844) across decoding, RLP, and TXN data, plus accounting changes.
typeThreeTxwith new RLP phases:IS_MAX_FEE_PER_BLOB_GASandIS_BLOB_VERSIONED_HASHES, phase transitions/components, and constraints to parse blob hashes and deriveNUMBER_OF_BLOBSBLOB_HASH_FLAG(stackDecBlobHashFlag) and wiring ininto_instruction_decoderrlpProcessBlobHash; specialized processing and phase constraints for blob hash listtxnDataRlpMaxFeePerBlob,txnDataRlpNumberOfBlobs), HUB viewBLOBBASEFEE, cumulativeBLOB_GAS_CUMULATIVE, and constraint to enforcemaxFeePerBlobGas >= blobBaseFee; updates row counts and shorthandsresHito 0 in the WCP lookupWritten by Cursor Bugbot for commit a3ce44d. This will update automatically on new commits. Configure here.