- Add T5 AccountKeychain TIP-1053 witness bindings:
AuthorizeKeyWithWitness(),BurnKeyAuthorizationWitness(),IsKeyAuthorizationWitnessBurned(), and matching selector constants. - Add T5 integration coverage for key-authorization witness burn, read, and authorize flows gated by
TEMPO_HARDFORK=T5. (by @figtracer, #56)
- Accept legacy Ethereum recovery ID values
{27, 28}in 65-byte secp256k1 signature envelopes during transaction deserialization, normalizing them to internalyParity{0, 1}. Structured RLP signature tuples remain strict and serialization continues to emit canonicalyParityonly. (by @BrendanRyan, #57) - Correlate JSON-RPC batch responses by request ID so reordered success and error responses remain associated with their requests. (by @BrendanRyan, #75)
- Detect and remove only genuine fee-payer trailers, preserving transaction data that ends with the trailer marker. (by @BrendanRyan, #76)
- Preserve the fee-payer sponsorship marker when cloning transactions so sender signing payloads remain valid. (by @BrendanRyan, #77)
- Reject malformed fee-payer signature lists in transaction field 11 instead of accepting unsupported tuple shapes. (by @BrendanRyan, #74)
- Reject non-canonical secp256k1 signatures during transaction deserialization and address recovery, preventing transaction hash malleability via legacy
Vvalues and high-S signatures. (by @BrendanRyan, #49)
All notable changes to this project will be documented in this file.
CallScope,SelectorRule, andCallScopeBuilderfor scoping access keys to specific contracts, function selectors, and recipientsKeyRestrictionsbuilder with token spending limits, call scope allowlists, andIsCallAllowedvalidationAuthorizeKey(),RevokeKey(),SetAllowedCalls(),RemoveAllowedCalls(), andUpdateSpendingLimit()precompile call encodersAuthorizeKeyT3Selectorconstant for the T3+authorizeKeyABI- TIP-20 selector constants:
SelectorTransfer,SelectorApprove,SelectorTransferWithMemo,SelectorWildcard - Signature type constants:
SignatureTypeSecp256k1,SignatureTypeP256,SignatureTypeWebAuthn
client.GetNonce()now accepts*big.Intinstead ofuint64for the nonce key parameter, enabling full 192-bit nonce key support as per the Tempo Transaction spec- Integration tests use T3
authorizeKeyABI by default (setTEMPO_HARDFORK=T2for legacy)
- Bumped go-ethereum from v1.13.5 to v1.16.8 to fix CVE-2026-22868 (GHSA-mq3p-rrmp-79jg), a high-severity DoS vulnerability via malicious p2p message
- Minimum Go version is now 1.24 (previously 1.21). This is required by go-ethereum v1.16.8.
- Initial release