From 20bd6d906103dc98404f47b7c5db2e15e8e2ac00 Mon Sep 17 00:00:00 2001 From: compusophy <79760496+compusophy@users.noreply.github.com> Date: Tue, 14 Jul 2026 21:55:21 -0600 Subject: [PATCH] fix: include aa_authorization_list in the 0x76/0x78 signing-hash preimages The sender-hash and fee-payer-hash field lists in spec-tempo-transaction.mdx omitted aa_authorization_list (and, for the sender hashes, the optional key_authorization), disagreeing with the node's shared rlp_encode_fields encoder and with the RLP Encoding section further down the same page. Also fixes the missing comma after sender_address in the fee-payer block. Co-Authored-By: Claude Fable 5 --- .../transactions/spec-tempo-transaction.mdx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pages/docs/protocol/transactions/spec-tempo-transaction.mdx b/src/pages/docs/protocol/transactions/spec-tempo-transaction.mdx index f0cf1f83..2c77d452 100644 --- a/src/pages/docs/protocol/transactions/spec-tempo-transaction.mdx +++ b/src/pages/docs/protocol/transactions/spec-tempo-transaction.mdx @@ -323,7 +323,9 @@ sender_hash = keccak256(0x76 || rlp([ valid_before, valid_after, 0x80, // fee_token encoded as EMPTY (skipped) - 0x00 // placeholder byte for fee_payer_signature + 0x00, // placeholder byte for fee_payer_signature + aa_authorization_list, + key_authorization? // Only encoded if present (backwards compatible) ])) // When no fee_payer_signature: @@ -339,7 +341,9 @@ sender_hash = keccak256(0x76 || rlp([ valid_before, valid_after, fee_token, // fee_token is INCLUDED - 0x80 // empty for no fee_payer_signature + 0x80, // empty for no fee_payer_signature + aa_authorization_list, + key_authorization? // Only encoded if present (backwards compatible) ])) ``` @@ -364,9 +368,10 @@ fee_payer_hash = keccak256(0x78 || rlp([ // Note: 0x78 magic byte nonce, valid_before, valid_after, - fee_token, // fee_token ALWAYS included - sender_address // 20-byte sender address - key_authorization, + fee_token, // fee_token ALWAYS included + sender_address, // 20-byte sender address + aa_authorization_list, + key_authorization? // Only encoded if present (backwards compatible) ])) ```