All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Xander.Querysupport for retrying connection to node when it is not available.Xander.Transportmodule to abstract transport layer details for connecting to Cardano nodes, providing a unified interface for both Unix socket connections (via:gen_tcp) and SSL connections (via:ssl).
-
Refactored
Xander.Queryto use the newXander.Transportmodule, eliminating the need for mini-protocol implementations to handle transport-specific logic. -
Refactored
Xander.Transactionto use the newXander.Transportmodule. -
Refactored
Xander.ChainSyncto use the newXander.Transportmodule.
-
Fix reading multiplexer messages on
Xander.Util.plex/1. This fix properly accounts for the Mode bit in the multiplexer which fixes the reading of protocol ID. -
Fix multiplexer header for outgoing messages. Properly setting the Mode as 1 bit and the mini protocol ID as 15 bits.
v0.3.0 (2025-08-14)
- Initial support for ChainSync mini-protocol.
- Added
Xander.ChainSyncbehaviour with support forhandle_blockandhandle_rollbackcallback functions. - Support for syncing from either the Conway era boundary, a specific slot and block hash, or the current known tip of the chain.
- Decoding partial block information. Only block number and block body size are
passed to the
handle_blockclient, and slot_number and block_hash are passed to thehandle_rollbackcallback.
v0.2.0 (2025-05-08)
- Support for TxSubmission mini-protocol.
- Integration tests on CI using Yaci DevKit.
v0.1.1 (2025-02-19)
- Issue where the ledger state tracked by the Query OTP process wouldn't be updated after establishing a connection. The result was that queries would always return the same value.
v0.1.0 (2024-02-17)
- Establish connection to Cardano node via Unix socket file or Demeter.run URL
- Support for Ledger State Queries:
:get_current_era:get_current_block_height:get_epoch_number:get_current_tip