Skip to content

Commit b660754

Browse files
committed
Clarify persistence and remove ADR repetition
1 parent d867aaf commit b660754

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

docs/adr/ADR-0003-typed-transactions-sponsorship.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ Implementation will define local primitives/envelopes and wire a custom
5151
`NodeTypes`/`NodePrimitives` configuration so all node components consume those
5252
types without modifying reth crates.
5353

54+
Persistence: 0x76 transactions are persisted as part of block bodies. This
55+
requires a custom envelope type used by `NodeTypes::Primitives` and storage
56+
(`EthStorage<CustomEnvelope, Header>`) plus DB codecs for the custom envelope.
57+
5458
## Specification
5559

5660
### Transaction Type
@@ -294,7 +298,11 @@ match tx.tx() {
294298
}
295299
```
296300

297-
6. Decode in Engine API payloads and validate (no pool).
301+
6. Persistence and storage codecs.
302+
- Implement DB codecs for the envelope (`Compress`/`Decompress` and compact
303+
codecs) so blocks containing 0x76 can be stored and retrieved.
304+
305+
7. Decode in Engine API payloads and validate (no pool).
298306
- Update the Engine API transaction decoding to use `EvTxEnvelope` 2718
299307
decoding, recover signer, and preserve the encoded bytes.
300308
- Add fast, stateless validation for sponsorship fields during payload
@@ -324,7 +332,7 @@ of `reth_primitives::TransactionSigned`. This implies `EvolveNode` must use
324332
custom `NodeTypes::Primitives` so the payload builder and executor operate on
325333
the same envelope type.
326334

327-
7. Define sponsorship validation and failure modes.
335+
8. Define sponsorship validation and failure modes.
328336
- Specify the sponsor authorization format, signature verification, and
329337
constraints (e.g. max fee caps).
330338
- Define stateful validation and exact behavior when sponsor auth is
@@ -353,7 +361,7 @@ Note: stateful validation will be enforced inside the execution handler in
353361
`crates/ev-revm/src/handler.rs` so rules apply consistently at runtime. A
354362
builder-level pre-check is optional.
355363

356-
8. RPC and receipts.
364+
9. RPC and receipts.
357365
- Expose an optional `feePayer` (or `sponsor`) field for 0x76 in
358366
transaction objects for observability; `from` remains the executor.
359367
- This requires a custom RPC type layer (e.g., a custom `EthApiBuilder` and

0 commit comments

Comments
 (0)