Nov 16, 7-8 AM (0)
Nov 16, 8-9 AM (6)
Nov 16, 9-10 AM (6)
Nov 16, 10-11 AM (2)
Nov 16, 11-12 PM (5)
Nov 16, 12-1 PM (7)
Nov 16, 1-2 PM (7)
Nov 16, 2-3 PM (5)
Nov 16, 3-4 PM (10)
Nov 16, 4-5 PM (4)
Nov 16, 5-6 PM (8)
Nov 16, 6-7 PM (11)
Nov 16, 7-8 PM (14)
Nov 16, 8-9 PM (4)
Nov 16, 9-10 PM (9)
Nov 16, 10-11 PM (38)
Nov 16, 11-12 AM (24)
Nov 17, 12-1 AM (0)
Nov 17, 1-2 AM (7)
Nov 17, 2-3 AM (4)
Nov 17, 3-4 AM (4)
Nov 17, 4-5 AM (3)
Nov 17, 5-6 AM (8)
Nov 17, 6-7 AM (7)
Nov 17, 7-8 AM (36)
Nov 17, 8-9 AM (40)
Nov 17, 9-10 AM (29)
Nov 17, 10-11 AM (83)
Nov 17, 11-12 PM (32)
Nov 17, 12-1 PM (49)
Nov 17, 1-2 PM (48)
Nov 17, 2-3 PM (52)
Nov 17, 3-4 PM (41)
Nov 17, 4-5 PM (29)
Nov 17, 5-6 PM (23)
Nov 17, 6-7 PM (27)
Nov 17, 7-8 PM (26)
Nov 17, 8-9 PM (18)
Nov 17, 9-10 PM (25)
Nov 17, 10-11 PM (27)
Nov 17, 11-12 AM (29)
Nov 18, 12-1 AM (7)
Nov 18, 1-2 AM (6)
Nov 18, 2-3 AM (8)
Nov 18, 3-4 AM (7)
Nov 18, 4-5 AM (3)
Nov 18, 5-6 AM (5)
Nov 18, 6-7 AM (1)
Nov 18, 7-8 AM (15)
Nov 18, 8-9 AM (35)
Nov 18, 9-10 AM (42)
Nov 18, 10-11 AM (66)
Nov 18, 11-12 PM (64)
Nov 18, 12-1 PM (32)
Nov 18, 1-2 PM (44)
Nov 18, 2-3 PM (43)
Nov 18, 3-4 PM (41)
Nov 18, 4-5 PM (38)
Nov 18, 5-6 PM (18)
Nov 18, 6-7 PM (37)
Nov 18, 7-8 PM (12)
Nov 18, 8-9 PM (6)
Nov 18, 9-10 PM (14)
Nov 18, 10-11 PM (34)
Nov 18, 11-12 AM (25)
Nov 19, 12-1 AM (5)
Nov 19, 1-2 AM (3)
Nov 19, 2-3 AM (13)
Nov 19, 3-4 AM (7)
Nov 19, 4-5 AM (6)
Nov 19, 5-6 AM (12)
Nov 19, 6-7 AM (14)
Nov 19, 7-8 AM (19)
Nov 19, 8-9 AM (38)
Nov 19, 9-10 AM (48)
Nov 19, 10-11 AM (72)
Nov 19, 11-12 PM (31)
Nov 19, 12-1 PM (41)
Nov 19, 1-2 PM (44)
Nov 19, 2-3 PM (56)
Nov 19, 3-4 PM (24)
Nov 19, 4-5 PM (28)
Nov 19, 5-6 PM (20)
Nov 19, 6-7 PM (7)
Nov 19, 7-8 PM (24)
Nov 19, 8-9 PM (51)
Nov 19, 9-10 PM (10)
Nov 19, 10-11 PM (33)
Nov 19, 11-12 AM (25)
Nov 20, 12-1 AM (7)
Nov 20, 1-2 AM (34)
Nov 20, 2-3 AM (6)
Nov 20, 3-4 AM (4)
Nov 20, 4-5 AM (9)
Nov 20, 5-6 AM (3)
Nov 20, 6-7 AM (6)
Nov 20, 7-8 AM (19)
Nov 20, 8-9 AM (24)
Nov 20, 9-10 AM (28)
Nov 20, 10-11 AM (37)
Nov 20, 11-12 PM (54)
Nov 20, 12-1 PM (26)
Nov 20, 1-2 PM (62)
Nov 20, 2-3 PM (28)
Nov 20, 3-4 PM (22)
Nov 20, 4-5 PM (24)
Nov 20, 5-6 PM (15)
Nov 20, 6-7 PM (33)
Nov 20, 7-8 PM (10)
Nov 20, 8-9 PM (11)
Nov 20, 9-10 PM (21)
Nov 20, 10-11 PM (26)
Nov 20, 11-12 AM (31)
Nov 21, 12-1 AM (7)
Nov 21, 1-2 AM (4)
Nov 21, 2-3 AM (4)
Nov 21, 3-4 AM (5)
Nov 21, 4-5 AM (13)
Nov 21, 5-6 AM (7)
Nov 21, 6-7 AM (13)
Nov 21, 7-8 AM (23)
Nov 21, 8-9 AM (24)
Nov 21, 9-10 AM (29)
Nov 21, 10-11 AM (35)
Nov 21, 11-12 PM (35)
Nov 21, 12-1 PM (28)
Nov 21, 1-2 PM (29)
Nov 21, 2-3 PM (29)
Nov 21, 3-4 PM (37)
Nov 21, 4-5 PM (47)
Nov 21, 5-6 PM (17)
Nov 21, 6-7 PM (11)
Nov 21, 7-8 PM (13)
Nov 21, 8-9 PM (20)
Nov 21, 9-10 PM (11)
Nov 21, 10-11 PM (34)
Nov 21, 11-12 AM (15)
Nov 22, 12-1 AM (8)
Nov 22, 1-2 AM (9)
Nov 22, 2-3 AM (11)
Nov 22, 3-4 AM (7)
Nov 22, 4-5 AM (1)
Nov 22, 5-6 AM (0)
Nov 22, 6-7 AM (2)
Nov 22, 7-8 AM (5)
Nov 22, 8-9 AM (3)
Nov 22, 9-10 AM (3)
Nov 22, 10-11 AM (6)
Nov 22, 11-12 PM (11)
Nov 22, 12-1 PM (13)
Nov 22, 1-2 PM (18)
Nov 22, 2-3 PM (14)
Nov 22, 3-4 PM (20)
Nov 22, 4-5 PM (3)
Nov 22, 5-6 PM (7)
Nov 22, 6-7 PM (2)
Nov 22, 7-8 PM (7)
Nov 22, 8-9 PM (2)
Nov 22, 9-10 PM (14)
Nov 22, 10-11 PM (23)
Nov 22, 11-12 AM (26)
Nov 23, 12-1 AM (1)
Nov 23, 1-2 AM (9)
Nov 23, 2-3 AM (10)
Nov 23, 3-4 AM (6)
Nov 23, 4-5 AM (7)
Nov 23, 5-6 AM (2)
Nov 23, 6-7 AM (0)
Nov 23, 7-8 AM (0)
3,322 commits this week Nov 16, 2025 - Nov 23, 2025
test(api): add comprehensive JSON tests for TxOut instances
Implements extensive test coverage for the ToJSON and FromJSON instances
of TxOut across all eras and contexts, ensuring robust JSON serialization
and deserialization behavior.

Test modules added:
- Test.Cardano.Api.TxOut.Gen: Specialized generators for TxOut with specific
  datum types (no datum, datum hash, supplemental, inline) and invalid JSON
  scenarios for error testing
- Test.Cardano.Api.TxOut.Helpers: Test utilities including JSON field
  assertions, parse failure validators, and datum equality checks
- Test.Cardano.Api.TxOut.Json: Main test module organizing all test suites
- Test.Cardano.Api.TxOut.JsonRoundtrip: Roundtrip property tests for all
  eras (Shelley through Conway) in both CtxTx and CtxUTxO contexts
- Test.Cardano.Api.TxOut.JsonEdgeCases: Edge case tests for supplemental
  datum behavior, null field handling, and ToJSON output validation
- Test.Cardano.Api.TxOut.JsonErrorCases: Error case tests for conflicting
  datums, mismatched hashes, partial fields, and invalid data

Coverage highlights:
- All eras from Byron through Dijkstra (where supported)
- Both transaction contexts (CtxTx and CtxUTxO)
- All datum types including edge cases like supplemental datums
- Comprehensive error handling validation
- JSON field presence and null handling verification

This test suite ensures the TxOut JSON instances maintain backward
compatibility while properly handling the complex datum type variations
across different Cardano eras.
refactor(internal): improve clarity of Alonzo TxOut parser implementation
Refactors the alonzoTxOutParser function to enhance code readability and
maintainability by introducing clearer variable names and improving the
logical flow of datum field parsing.

Key improvements:
- Rename ambiguous variables (mDatumVal -> mDatumJson, dVal -> datumJson)
  to clearly indicate they contain JSON representations of datum values
- Add descriptive comments explaining each datum parsing case:
  * No datum information (Nothing, Nothing)
  * Datum hash only (Nothing, Just hash)
  * Both hash and JSON for supplemental datum (Just json, Just hash)
  * Invalid state with JSON but no hash (Just json, Nothing)
- Extract datum parsing into a dedicated section, separating it from
  reference script handling for better code organization
- Use more descriptive variable names (parsedAddress, parsedValue) to
  distinguish parsed results from raw JSON fields
perf: CBOR caching and memory optimizations (#350)
- Add gouroboros CBOR integration with DecodeStoreCbor for repeated decodes
- Implement buffer pooling for JSON marshaling optimization
- Optimize PrintLoadedKeys with bytes.Buffer to reduce allocations
- Pre-allocate slices in LoadWalletDir to reduce allocations
- Update CBOR encoding to use tagged arrays [0, key_data] per Shelley spec
- Change NewWallet accountId to uint32 with bounds checking
- Improve error handling to skip corrupted files instead of failing

Signed-off-by: Chris Gianelloni <[email protected]>