Releases: BoltzExchange/boltz-backend
Releases · BoltzExchange/boltz-backend
v3.12.1 - Harder, Better, Faster, Stronger
This release features:
- CLI migration to Rust: Migrated entire CLI tooling to Rust for better performance, reliability, and parameter parsing
- WebSocket improvements: Added queueing/caching for faster and more scalable real-time swap status updates
- Performance optimizations: Added balance check caching and optimized Liquid transaction blinding
- Self-payment & chain swap fixes: Resolved multiple edge cases including failed lockups, incorrect asset handling, and CLTV delta issues
- Infrastructure upgrades: ARM64 Docker builds, Node.js v24, and swap contracts v5
Bug Fixes
- Redis client throwing on exit - (1be61b6)
- relative cltv delta for self payment (#1159) - (6bc2381)
- listen to checked transactions in nursery - (d87b6e0)
- handling of incorrect asset for 0-amount chain swaps (#1176) - (93dd935)
- handle self payment failed lockups (#1178) - (677cb49)
- refund from cli (#1183) - (9cb2536)
- chain swap lock (#1184) - (8ff87d0)
- WebSocket message injection deadlock (#1187) - (de57b89)
Documentation
- improve MRH and swap restore (#1142) - (9c24357)
- add about queued lightning payments (#1158) - (5fe006f)
Features
- (cln) add cln.disableMpp config option (#1153) - (955f4f4)
- rescue index cache (#1143) - (4a5a19e)
- sync key index at database level (#1150) - (12a6c2a)
- add missing functionality from boltzr-cli (#1165) - (22f9b52)
- pagination in restore endpoint (#1160) - (f56c5bb)
- fetch referral stats in CLI (#1169) - (2edf306)
- custom routing fee config for destination - (c4d813d)
- allow custom s3 region - (bafee13)
- sponsor refunds for refunds of liquid assets - (b3beb5f)
- expose supported contracts in API - (8b0247a)
Miscellaneous Chores
- bring back Rust build CI cache (#1134) - (8f52a99)
- bump body-parser from 2.2.0 to 2.2.1 (#1136) - (3abfa51)
- bump Elements to v23.3.1 (#1137) - (40a3a89)
- bump node-forge from 1.3.1 to 1.3.2 (#1139) - (b73258d)
- bump express from 5.1.0 to 5.2.1 (#1145) - (9001a81)
- bump hold to v0.3.3 (#1146) - (ee8e43e)
- bump nodemailer from 7.0.10 to 7.0.11 (#1147) - (7398223)
- bump mdast-util-to-hast from 13.2.0 to 13.2.1 (#1148) - (11cea21)
- bump Node.js in Dockerfile to v24 (#1149) - (99d03d7)
- bump validator from 13.15.20 to 13.15.23 (#1151) - (91107f8)
- bump CLN to v25.12 (#1152) - (3628a61)
- update to contracts v5 - (76b62bc)
- make sidecar tests less flaky - (a38c000)
- bump swagger-ui to v5.31.0 - (7da47fa)
- update dependencies - (0e1a398)
- bump version of GitHub Actions usages - (f20f1e3)
- adjust RSK block times (#1157) - (68b2505)
- add instrumentation to lightning cache - (8858408)
- bump dependencies - (921abf0)
- use redis instead of dragonfly (#1166) - (4d4e299)
- add local source build option (#1167) - (de80138)
- build ARM64 Docker images in CI - (ec56472)
- check if swagger is up to date in CI - (6f05d1b)
- bump dependencies - (1b570c4)
- bump qs from 6.14.0 to 6.14.1 (#1175) - (9eb5266)
- bump Bitcoin Core to v30.1 - (5a9d576)
- more logging for Elements wallet (#1182) - (e65e6ef)
- bump preact from 10.26.9 to 10.28.2 (#1186) - (686aa92)
- remove testnet from swagger - (1931002)
- bump @smithy/config-resolver from 4.1.5 to 4.4.5 (#1188) - (b4c0d1c)
Performance
- cache for balance checks (#1135) - (f5be026)
- optimize liquid transaction blinding - (1471066)
- WebSocket queueing and status caching (#1179) - (8b2757e)
Refactoring
- safer gRPC transaction status - (7905864)
- confirmed transactions from block stream - (805503d)
- script_pubkeys table primary key - (28a2c2e)
- batch checking txs in blocks - (3d05d11)
- self host swagger-ui - (8c0aa1c)
- use swc as test transpiler - (9763001)
- remove racy user lockup confirmation checks - (e6f68aa)
- move claim and refund commands to Rust (#1162) - (56aec71)
- move rest of boltz-cli to Rust - ([e56b12e](e56b12ee1ddc4fff64f49a39ca01e...
v3.12.0 - Swap Restoration
This release features:
- Swap restore enhancements: New
/swap/restoreendpoint with batch public key support and custom gap limits - Batch sweep improvements: Added interval and amount-based triggers for automated batch claiming of swaps
- Self-payment support: Allow submarine and reverse swaps with the same preimage for self-payments
- Magic Routing Hints (MRH) watcher: Automated monitoring to inform clients of magic routing hint payments
- RBF bumping engine: Naive Replace-By-Fee engine with mempool.space WebSocket client integration
Bug Fixes
- (config) update certificate path to follow datadir (#1078) - (d8fbd5d)
- expose invoice payment hook (#940) - (1534001)
- invoice payment hook with no preference (#952) - (2740fc4)
- sanitize ZMQ wildcards (#965) - (b773b79)
- check invoice of self payments - (c27b9ed)
- handle pending payments in self payment client - (5e435c6)
- check for blindingKey being defined (#967) - (0c003e6)
- ZMQ channel warnings in sidecar (#969) - (5002ce9)
- only allow submarine and reverse swaps with same preimage (#966) - (240e8d7)
- use second routing hint in MRH (#975) - (dd8fa94)
- exit handle for MRH watcher (#982) - (9f57672)
- swap failed on double lockup (#984) - (31e3a92)
- reset pending sweeps gauges to zero (#987) - (e762674)
- encoding of MRH in swapinfo responses (#988) - (95b5c97)
- API docs URL (#990) - (ab9d541)
- cancel of reverse swap invoices for self payments (#995) - (7bab357)
- honor cancellation in mempool reconnection loop - (ecb07b7)
- handling of two lockups in same transaction (#1002) - (6f030a9)
- abandon webhook when no status in database (#1003) - (24003ae)
- fail self payments when reverse swap is refunded (#1006) - (501355b)
- add database triggers for preimage hash checks (#1011) - (7d5a4de)
- parsing of referral id for chain swaps (#1024) - (b315f12)
- swap rescue key drift - (1defe13)
- exclude RSK swaps from rescue endpoints - (5e53c98)
- bump ZMQ inactivity timeout (#1038) - (f22546f)
- flaky Elements transaction tests - (ff5ecf7)
- harden Mattermost WebSocket - (8d5b502)
- run Bitcoin transaction tests in serial - (c19f1b6)
- make node selection optional in invoice payment hook (#1069) - (1f62409)
- Docker version build args (#1074) - (e9dcd80)
- lower quote output amount in EVM quote test (#1098) - (67a8456)
- sidecar span exporter - (082fb93)
- use Node v22 for docker images - (3e7398a)
- do not fail self payment when invoice cannot be cancelled (#1111) - (19f63f6)
- setInvoice race condition (#1117) - (f47ab4f)
- include swaps to RSK in restore endpoint (#1124) - (b340d15)
- only settle confirmed lockups when invoice is set (#1125) - (0106e8b)
- parent propagation of OTEL spans (#1126) - (55806a2)
- gap limit for public key iterators - (584240b)
Documentation
- add support center to resources (#954) - (b29608c)
- add referral payout terms (#964) - (f57947f)
- clarify transactions and code samples (#955) - (790b1d1)
- remove testnet (#971) - (c196c5c)
- fix MRH example (#980) - (e159bc2)
- rephrase MRH doc (#981) - (7c3508d)
- fix typos - (d6a4c5f)
- fix hint formatting - (5143e77)
- transaction.direct WebSocket event - (89eee5a)
- BOLT12 reverse swaps - (a01edb5)
- fix misc issues (#997) - (099c874)
- extra fees endpoint (#1000) - (13b5e47)
- enable search detailed view (#1017) - (1024283)
- swagger for token swaps quotes - (7d2b32c)
- swagger for /v2/swap/restore endpoint - (5806a8b)
- add boltz-rust Python bindings (#1042) - (b5916b7)
- change warning boxes severity (#1046) - (4721270)
- fetch latest Go examples on docs build, move websocket section lower (#1047) - (8c3802e)
- add pro stats endpoint to swagger (#1064) - (fe2c12c)
- fix typo in rescue key docs (#1070) - (e43222d)
- swap restore and deprecate rescue endpoint - (0bd5540)
- remove deprecated refund files - (f2b436b)
- API authentication - ([52fc07b](52...
v3.11.0 - Counteroffer
This release contains:
- support for Reverse Swaps to BOLT12 offers
- gRPC hooks to change the behaviour of the backend
- lots of bug fixes and miscellaneous improvements
Bug Fixes
- drop B-Tree indexes on invoices column of swaps (#872) - (c86144f)
- tests broken by BOLT12 reverse swaps - (6b741f4)
- Docker build with new hold invoice plugin - (9293318)
- missing status of chain swaps for mempool rescans (#873) - (165df3f)
- prevent webhook channel send when no subscribers exist (#889) - (be45461)
- magic routing hints for BOLT12 invoices (#904) - (23b4c2c)
- GrpcServer test on MacOS (#914) - (84a5674)
- blinding key parsing in CLI (#923) - (e4fa5b1)
- avoid blocking onion messages with webhook calls - (ad72fb2)
- consistent data directory paths in EthereumUtils (#932) - (23f05dd)
- events being sent twice for multiple WS connections (#930) - (71f9306)
Documentation
- Swagger API spec for BOLT12 offer endpoints - (fab56f4)
- fix gitbook integration, make prettier ignore docs folder - (0ed75d6)
- #545 #685, minor rewording - (a255e4c)
- BOLT12 invoice subscription WebSocket - (3032015)
- remove boltz-python from library section (#920) - (debc497)
Features
- invoice timeout (#856) - (dc0434c)
- configurable LND gRPC SSL name override - (0a22370)
- generic Webhook caller - (a263a5a)
- confirmation status in transaction endpoint (#869) - (3710c9c)
- log failed HTTP requests in sidecar (#871) - (2961f0c)
- BOLT12 invoice request webhooks - (954c739)
- allow reverse swap creation with BOLT12 invoices - (bc2f175)
- magic routing hints support for bolt12 - (25f1553)
- allow updating BOLT12 offer webhook URL - (e59bc62)
- check network of BOLT12 offers and invoices - (a492ae4)
- BOLT12 fetch shortcut for registered offers - (953776b)
- continue onion message hooks for unknown offers - (018f870)
- allow empty reverse swap descriptions - (59a825b)
- batch only submarine swaps (#880) - (0e3eb1f)
- add offer to invoice requests - (2c8c856)
- endpoint to delete BOLT12 offers - (0291937)
- Email notifications for swaps (#893) - (108f952)
- Webhook IP safety checks (#902) - (0924d72)
- transaction hook action hold - (4a481f0)
- gRPC method to check transaction - (b00600b)
- BOLT12 invoice requests via WebSocket - (89a9a16)
- fuzzy search for lightning node alias (#908) - (c82e4c9)
- allow removing url when updating offer (#909) - (2f7fbc0)
- add swap id to transaction hook (#913) - (581e334)
- add swap type to transaction hook (#917) - (b316f09)
- submarine payment retry timeout (#918) - (38facc3)
- endpoint for lightning channel policies - (eef814b)
- broadcast Elements transactions via all clients (#919) - (c80e096)
- allow returning BOLT12 invoice errors (#921) - (2c34a12)
- return MRH in BOLT12 fetch response (#922) - (fd8a287)
- dynamic CLN invoice thresholds - (82a8119)
- metrics for CLN invoice thresholds (#927) - (6ba3ddf)
- invoice payment hook (#925) - (1433ada)
- allow BOLT12 invoice request payer notes - (d53bf3d)
Miscellaneous Chores
- Rust release builds in c-lightning image (#855) - (0e52eac)
- fix open handles in unit tests - (1b3e9b3)
- bump dependencies - (6267256)
- include confirmation in transaction hook (#863) - (7e32d06)
- bump tar-fs from 2.1.1 to 2.1.2 (#867) - (be23915)
- bump Ubuntu version of Docker images (#866) - (c01a2e0)
- include ca-certificates in CLN image - (792195d)
- update dependencies (#870) - (af95b03)
- minor cleanup - (41014fe)
- update hold invoice plugin - (28c6ea3)
- switch to upstream lightning dependency - (fd5d553)
- bump max invoice description length to 500 (#876) - (06966c4)
- bump elements to v23.2.7 (#878) - (ed58cb3)
- bump ecpair and boltz-core to v3 - ([f32d6bc](https://github.com/BoltzExchange/boltz-backend/...
v3.10.0 - Rescue mission
This release features:
- support for rescue files that allow swaps to be refunded with only the refund keys
- nested fee premiums to allow referrals to add extra fees
- Discount CT on Liquid mainnet
Bug Fixes
- blinding key derivation of wallet stub in CLI (#832) - (2219654)
- skip mempool acceptance check on regtest (#848) - (8a8e45c)
- successful swaps reverting status transaction.confirmed (#851) - (569cee7)
Documentation
- add rescue endpoint to swagger - (fef5b5a)
Features
- nested extra fees (#826) - (64fba5a)
- add lockup tx param to refund-cooperative CLI (#828) - (3f47be3)
- swap recovery rescan - (34ffa9d)
- gRPC method to get pending EVM transactions - (7df8c87)
- add EVM address to swapinfo command (#830) - (7048767)
- swap creation hook - (b75863a)
- add index on refund public key columns - (116bf9f)
- directional premiums for referrals (#837) - (036923e)
- 0-conf tool Prometheus metrics (#846) - (46149c2)
- gRPC method to clear swap update cache (#849) - (454ff7f)
- WebSocket JSON ping/pong (#850) - (c52fbf3)
- add overpayment check for actual > expected * 2 - (e99d388)
Miscellaneous Chores
- bump elliptic from 6.6.0 to 6.6.1 (#824) - (84a3f8c)
- bump LND to v0.18.5 (#825) - (c8709c9)
- minor Rust dependency updates - (ab5490d)
- bump alloy Rust dependencies - (a02e162)
- bump Rust edition to 2024 - (04b2253)
- minor NPM dependency updates - (f89becc)
- fix clippy on Rust nightly (#835) - (a0806e2)
- bump NPM dependencies - (1ca6827)
- update dependencies - (c02dfdb)
- bump ring from 0.17.8 to 0.17.13 in /boltzr (#840) - (2ec9aa6)
- bump axios from 1.8.1 to 1.8.2 (#841) - (6e55d27)
- bump CLN to v25.02 (#842) - (b4bdfd3)
- bump vulnerable dependencies - (b7b54e4)
- bump hold to v0.2.2 - (4696ef4)
- fix naming of NodePendingPaymentTracker (#845) - (ea8c9ee)
- bump Eclair to v0.12.0 - (f4cd063)
- bump dependencies - (4e9ab46)
Refactoring
v3.9.1 - Still swarming
This release includes:
- custom fees and limits based on referrals
- RSK swap fixes
- Fixes for handling CLN xpay payment failures
- Lightning network information API
Bug Fixes
- throw error in cli when no swap output can be found (#764) - (efe6b8a)
- round max routing to 4 decimal places (#778) - (7dd78ef)
- timeout of submarine swaps without invoice (#786) - (a47bd78)
- failure rates for custom expirations - (6818345)
- correct version for EVM reverse swaps - (7cd3b9b)
- failure rates for custom expirations in metrics - (e7d802f)
- throw error when all CLN payment attempts failed - (2735e21)
- forbid fetching 0 amount bolt12 invoices - (02783ec)
- detect replaced rejected chain swap lockup txs (#800) - (6b9533e)
- clippy on Rust nightly (#801) - (4d51493)
- make xpay exit handling more reliable (#802) - (9c92159)
- always watch temporarily failed xpay payments (#806) - (f79d53a)
- Alchemy support on RSK - (6e3eb23)
- 0-conf endpoint schema update (#822) - (79acc58)
Documentation
- fix library section hint (#753) - (25442a8)
- RSK swap code examples (#761) - (41f143e)
- update Go examples (#777) - (edb48fb)
- add new lightning information endpoints - (ff92ac4)
- add orbstack hint for Apple Silicon Macs (#805) - (40e001f)
- add pro API usage (#804) - (0794ed1)
Features
- custom fees for referrals (#749) - (9713f2f)
- gRPC method to calculate transaction fees (#760) - (b151680)
- try all possible key extraction functions in CLI (#765) - (730e26b)
- check submarine swaps for expired invoices (#762) - (9161e6a)
- configurable referral values - (94356ff)
- database migration to new referral premiums - (198902b)
- gRPC methods to update referral configs - (d3eb0da)
- make transaction optional in reverse claim endpoint (#771) - (3ed922d)
- include max routing fee in submarine pairs when queried with ref (#774) - (9dd6d50)
- expose pair details in metrics (#775) - (3c6a22a)
- CPU profiling in sidecar (#783) - (9c442f1)
- custom expiration for submarine swaps (#779) - (5d16749)
- be gentler to xpay (#792) - (a13b5fe)
- do not fail lightning payment when node disconnects (#793) - (15e15af)
- API endpoints to query historical pair data (#791) - (6620d59)
- Lightning channels API - (60337e5)
- Lightning node info API - (343e961)
- select node to pay invoices based on routing hints (#799) - (5fabaac)
- different CLN amount switch for swap types (#807) - (ea4e60e)
- rescan for missed RSK claims on interval (#808) - (1b2123f)
- WebSocket inactivity timeout (#814) - (b7034db)
- sanity check referral config values (#811) - (5771b32)
- periodically rescan all EVM events - (8c5c7cc)
- avoid EVM nonce reuse by checking db - (ab91169)
- sequential EVM signer - (7b61162)
Miscellaneous Chores
- bump CLN to v24.11.1 (#755) - (a6d6008)
- remove Python backup plugin - (9965b2c)
- minor dependency updates - (6741d0e)
- bump hold invoice plugin to v0.2.1 (#763) - (097afa3)
- nicer CLN error parsing (#766) - (adb8e6a)
- cherry-pick maxdelay xpay parameter - (7124276)
- nicer formatting for getreferrals CLI - (964bf25)
- add executables to path in backend image (#772) - (a32ed36)
- add Rust build cache in CI (#773) - (50cb625)
- bump Bitcoin Core to v28.1 (#776) - (20ad9fd)
- update dependencies (#780) - (4da9bdf)
- do not strip sidecar release build (#784) - (61163ee)
- bump elements to v23.2.5 (#785) - (121af9a)
- log when enabling profiler - (8d4f715)
- fix hold invoice plugin build - (287257f)
- missing refundAddress in reverse swap swagger (#789) - (12661c1)
- update dependencies (#794) - (5701065)
- set failureReason to null when renegotiating chain swaps (#796) - (138f947)
- bump openssl from 0.10.68 to 0.10.70 in /boltzr (#809) - ([c652b4f](https://github.com/BoltzExcha...
v3.9.0 - Swarm of Swaps
This release features:
- batch claim support for Chain Swaps
- and batch claiming on EVM based chains
- many tiny little fixes for CLN
Bug Fixes
- skip transaction confirmed swap update when succeeded - (9098457)
- valid use of required swagger properties - (f766714)
- set failureReason to null when invoice is paid (#733) - (a5bdb00)
- CLN routing hints (#736) - (2adbe5e)
- CLN invoice payment fee (#742) - (51e03ca)
Documentation
- add library and referral section (#745) - (30f34d0)
- minor rewording of library section description (#750) - (8a03aa8)
Features
- unsubscribe from swap ids in WebSocket (#730) - (d273c04)
- transaction rebroadcaster (#732) - (bdf43a6)
- gRPC stop command (#738) - (2dc7b7d)
- batch sweep EVM currencies - (3eb8acb)
- support multiple contract versions (#739) - (4649072)
- batch claim Chain Swaps (#741) - (8978a59)
- coop claim Chain Swaps that send on EVM (#743) - (33f058c)
Miscellaneous Chores
- bump sidecar version to v3.8.1 - (4c7063c)
- minor dependency updates (#729) - (3e41c1c)
- bump swagger-ui version - (ac9e1d0)
- update Docker images (#735) - (135f55b)
- bump path-to-regexp and express (#737) - (33f5bb4)
- minor clippy fixes - (63ceb68)
- bump CLN to v24.11 (#746) - (99f44a7)
- bump max sidecar connect attempts - (2e5fe24)
- minor dependency bumps - (1629b7c)
- harden refunds - (58aa2dc)
- bump LND to v0.18.4 (#748) - (9d31d87)
- discount EVM server claims - (938becc)
- bump version to v3.9.0 - (ce97285)
- bump version in Swagger spec - (0daed0d)
v3.8.1 - Offer still stands
Some bug fixes and minor features are included in this patch release.
Bug Fixes
- config parsing with defaults - (c0886a9)
- Core wallet unconfirmed classification - (09c70c5)
- wording of limit exceeded error - (be0786b)
- abandon failed Webhooks when status is not included (#717) - (54223af)
- bolt12 invoice pay status (#722) - (8dca13c)
- chunk batch claim transactions (#725) - (c1372b9)
Documentation
- BOLT12 offer and BIP-353 fetching (#711) - (cddd661)
- BOLT12 misc enhancements (#712) - (1ab9de7)
- EVM clarifications - (fc0f47b)
- remove "RSK Testnet Only" hint (#718) - (0b24836)
Features
- gzip compression for CLN SCB backups (#706) - (42d1330)
- 0-conf Prometheus metrics (#713) - (bb1a42f)
- get status of pending CLN invoices on startup (#714) - (776613d)
- save preimage of Submarine Swaps in database - (2357297)
- preimage endpoint for Submarine Swaps - (2638f0a)
- Liquid 0-conf checks via API (#721) - (69511de)
- un-route-able nodes config - (43e5c48)
- allow cooperative refunds with pending payments - (ea4c827)
Miscellaneous Chores
- update changelog for v3.8.0 - (6131ab9)
- fix fee clalculation for BOLT12 invoices - (2aa6820)
- more verbose logging in ElementsWrapper - (3408300)
- relax sidecar production version check - (26262e4)
- trace deprecations in Docker container - (607331c)
- minor logging improvements - (3c9e311)
- bump cross-spawn from 7.0.3 to 7.0.6 (#726) - (41979d9)
- fix minor logging typo - (c6b0f09)
v3.8.0 - An offer you can't refuse
This release features:
- support for a new CLN hold invoice plugin rewritten from scratch with a focus on performance
- amounts for Chain Swap can be renegotiated in case they are over- or underpaid. Also, the creation of Chain Swaps without an amount
- paying BOLT 12 invoices in submarine swaps and an API endpoint for fetching invoices for offers
Bug Fixes
- mattermost alert channel selection - (14c9791)
- revert axum prometheus collector update - (ba95034)
- show lockup failure details only when status is lockup failed (#683) - (6433170)
- set rate for Taproot only pairs (#686) - (ebb3a18)
- 0-conf disabled alerts triggering every block (#689) - (3b7344c)
- race condition sending chain swap lockup twice - (cefe35b)
- do not crash when leftover batch claim fails - (94aa167)
- CLN bolt12 invoice and offer destination parsing (#697) - (9661cf0)
Documentation
- add missing status property to Webhook docs (#647) - (54ba6b7)
- API v1 hint clarification (#681) - (0351ee2)
Features
- (mpay) add pagination to mpay-list (#650) - (000fd5c)
- add profiling for Node.js (#649) - (23f5315)
- save full pending lockup transactions (#651) - (28b2343)
- check 0-conf transaction is accepted by all nodes - (fba735c)
- pending sweeps CLI command (#655) - (df32696)
- get paystatus from mpay plugin - (5bc07c7)
- add open SSE streams metric - (7358989)
- renegotiation of over- and underpaid chain swaps (#657) - (b93f0e8)
- chain swap creation with no amount (#659) - (b4c4447)
- check balance before creating swap (#663) - (ce479fd)
- different seed for EVM based chains (#667) - (c560000)
- custom invoice expiry for reverse swaps (#669) - (d61eb05)
- bolt12 support in submarine swaps (#664) - (e6d9318)
- alerts via webhook call (#675) - (4c98b7f)
- buffer fetching swap updates before backend connects - (4d4ee00)
- allow configuring pairs as legacy - (1dec7eb)
- improve deferred claim sweep commands (#684) - (3a98e1b)
- max 0-conf risk tolerance (#690) - (d270edf)
- mempool rescan - (cd4f4fb)
- Discount CT support (#691) - (95e0f98)
- gRPC to change log level (#693) - (5c95151)
- check mempool acceptance of public node for 0-conf - (41fb616)
- mempool.space liveliness check (#699) - (823e05c)
- nicer invoice network check error (#704) - (5719736)
- retry failed LND SCB backups - (f602da4)
Miscellaneous Chores
- add CHANGELOG for v3.7.3 - (0b3f513)
- bump elliptic from 6.5.6 to 6.5.7 (#646) - (d0a6847)
- update Rust dependencies - (d6d333d)
- include libpq-dev in CLN image - (d2d1236)
- reduce verbosity of WebSocket logging - (f6834f7)
- compile release script - (03f2cf5)
- sidecar production env fixes - (a5a3f4c)
- bump diesel from 2.2.2 to 2.2.3 in /boltzr (#654) - (3808455)
- bump CLN to v24.08 (#658) - (96dfc8a)
- minor dependency updates - (8f0451e)
- update ZeroMQ dependency - (a98a871)
- bump express - (e4568d1)
- bump LND to v0.18.3 (#665) - (7caac56)
- bump vulnerable dependencies (#666) - (684d768)
- update CLN to v24.08.1 (#670) - (47636e7)
- bump tonic from 0.12.2 to 0.12.3 in /boltzr (#671) - (3c898e7)
- bump max invoice description length (#673) - (611bbff)
- bump Bitcoin Core to v28.0 (#676) - (6e1e5d9)
- update Rust dependencies - (3ad484d)
- update NPM dependencies - (8f5d97d)
- log when calling alert endpoint - (8bc2f79)
- bump hold invoice plugin - (45ba641)
- update dependencies - (13f5792)
- reorder boltzr gRPC service - (20b9a74)
- bump CLN to v24.08.2 (#692) - (7d8f2aa)
- switch to upstream bolt11 library (#694) - (2109250)
- update anvil to fix contract deployment (#701) - (d953560)
- bump elliptic from 6.5.7 to 6.6.0 (#702) - (e0fc15b)
- ...
v3.7.3 - Rewrite in Rust
To address performance problems, this release improves observability by adding OpenTelemetry tracing, more Prometheus metrics and introduces the sidecar which is run as child process of the Node.js application.
Other notable changes are:
- Webhooks for swap status updates
- custom description hashes for invoices of Reverse Swaps (used for LNURL LUD-06 compatibility)
- custom Bitcoin Core and Elements wallet names
- labels for transactions on EVM chains
Bug Fixes
- (cli) certificates type - (b86f475)
- non lowball 0-conf broadcasts through API (#610) - (e38eb51)
- enforce correct limit for chain swaps (#613) - (0d6f871)
- make preimage optional in chain swap claim endpoint (#614) - (ffde577)
- match logger job name with tracing service - (9e4f6f4)
- try connect loop of sidecar - (b42f684)
- persist swap failure reason (#621) - (a5b52eb)
- coalesce sidecar certificate path - (2eb0746)
- nicer error when chain swap already claimed - (d04f520)
- lint errors for unused caught exceptions - (cea5974)
- use TEXT column type for BIP-21 in magic routing hints (#644) - (4aa1955)
- missing subscription ack message in WebSocket (#645) - (3f26a68)
Documentation
- add webhook documentation - (f37091f)
- add swap status change info (#618) - (fc3cfc3)
- update description of how preimages are revealed with taproot swaps (#639) - (9c37770)
Features
- open WebSocket and streams metrics - (546b202)
- add OpenTelemetry - (084f701)
- WebHook caller - (319205a)
- implement WebHooks in API - (9cef596)
- tracing in sidecar - (3b0ab89)
- CLN backups to S3 compatible API - (7b578ae)
- send notification when invoice fails to settle - (0d5698e)
- custom Core RPC wallet names - (ae1a009)
- Webhook status include list (#632) - (c9358b0)
- configurable RSK network name (#633) - (12d8876)
- EVM transaction labels (#637) - (ce5b487)
- command to query transaction labels (#641) - (0fc173e)
- description hashes for reverse swap invoices - (10c926f)
- sign cooperative EVM refund by preimage hash (#643) - (96410c3)
- include timestamp in WebSocket swap updates - (9a44944)
Miscellaneous Chores
- add CHANGELOG for v3.7.2 - (f7ef24e)
- move swap related non lowball tx logging - (a34d0d7)
- update sidecar to changed config keys - (d683b8f)
- allow slight version mismatch in dev - (a12561f)
- bump openssl from 0.10.64 to 0.10.66 in /boltzr (#615) - (99deedb)
- use prettier for Markdown files (#619) - (20027c1)
- trace commands from mattermost - (0deaf40)
- remove WebDav backup provider - (ca61096)
- update dependencies - (9c52375)
- make webhook config of sidecar optional - (b72aca4)
- disable ARM64 builds in CI again - (c42a756)
- bump fast-xml-parser from 4.3.2 to 4.4.1 (#629) - (9707526)
- bump max custom invoice description length (#630) - (b488a3a)
- change regtest chain id to 33 - (2954dbf)
- remove disk usage checker - (8edc1b9)
- get rid of dyn-clone - (fb9eef8)
- bump axios to v1.7.4 - (c1819d0)
- bump LND to v0.18.3 - (3b079df)
- bump version to v3.7.3 - (aad3f28)
Refactoring
- move sidecar child process logic - (a376a78)
- improve API tracing - (beb6bc5)
- remove Discord - (4b20209)
- remove SQLite database backend - (e7f988e)
- remove unused getWalletInfo method - (6663858)
- remove WebDAV CLN backups - (22d08c6)
- move EIP-712 signing to sidecar (#631) - (d86ea12)
- move Mattermost to sidecar - (aa1cac3)
- move WebSockets to sidecar - (69566b5)
Tests
v3.7.2 - Stability is boring
This release fixes some edge case bugs, improves the tooling for operating the backend and also includes two new features for API clients:
- overpayment protection which means swaps that send too much onchain will be failed
- custom descriptions for invoices created for Reverse Swaps
Bug Fixes
- failed notitication for swap without invoice - (e1d3d6c)
- failed Chain Swap notifications - (e781bc2)
- brute force key order combinations in CLI (#603) - (a131e66)
Documentation
- add TypeScript examples for Liquid swaps - (02532ab)
- add Bitcoin -> Liquid Chain swap example - (291cdcb)
- add chain swap lifecycle and transaction details - (1cc27fc)
- add common problems page (#606) - (b06443f)
Features
- sanity check invoice memos - (5f95d82)
- custom reverse swap invoice description - (d218794)
- gRPC server SSL encryption and authentication (#591) - (75a2037)
- allow lowball lockup transactions in API (#598) - (f8ce827)
- onchain overpayment protection (#599) - (61a3d91)
- S3 compatible backup provider - (e24f2bf)
- ListSwaps gRPC method (#607) - (c6e2e4b)
Miscellaneous Chores
- add CHANGELOG for v3.7.1 - (a8b37c0)
- bump certifi from 2024.6.2 to 2024.7.4 in /tools (#597) - (2261aa4)
- remove Google Cloud bucket backup provider - (bc5af96)
- optimize backend Dockerfile (#604) - (ee4c77b)
- include swap id in invoice settlement error log (#608) - (3b652be)
- minor dependency updates - (bbb992c)
- bump Docker image versions - (08ed479)
- apply docs review feedback - (f4260f5)