Skip to content

Releases: BoltzExchange/boltz-backend

v3.8.1 - Offer still stands

28 Nov 08:49
v3.8.1
46b591c
Compare
Choose a tag to compare

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

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

04 Nov 15:05
v3.8.0
5131797
Compare
Choose a tag to compare

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

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

Read more

v3.7.3 - Rewrite in Rust

16 Aug 15:19
v3.7.3
aad3f28
Compare
Choose a tag to compare

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

  • sidecar database interactions and gRPC service - (815d60d)
  • Webhook integration in backend - (0de07fe)

v3.7.2 - Stability is boring

16 Jul 15:30
v3.7.2
b06443f
Compare
Choose a tag to compare

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)

v3.7.1 - Paying off tech debt

03 Jul 11:18
v3.7.1
e52efbf
Compare
Choose a tag to compare

A couple bug fixes and refactors of really old code.

Bug Fixes

  • put locks on cooperative swap settlement - (2a36576)
  • unconfirmed user lockup transaction error handling - (adfbb9c)
  • check prevout index for swap related broadcasts (#560) - (7cdd390)
  • also clear temporary exclude list when resetting mpay - (db7116a)
  • allow for cooperative refunds when CLN pay failed to pay an invoice (#567) - (293be5e)
  • cleanup Loki log format - (2a4725a)
  • missing status for cooperative chain swap refunds (#578) - (1ed17a8)
  • Mattermost max message length (#584) - (8c4a4e2)
  • lowball claim covenants (#585) - (ec4d5b2)
  • off by one in BIP-21 routing hint - (abde534)

Features

  • include user lockup transactions in swap updates - (939b889)
  • add details to failure reason of swap status - (48e120a)
  • throw error when setting expired invoice - (90d87cf)
  • return referral id in swap created response (#557) - (74e56ad)
  • configurable minimal swap size multipliers (#562) - (d86316d)
  • granular temporary and permanent mpay memory reset - (c65f5bb)
  • set labels for addresses and transactions - (a312595)
  • sanitize ZMQ address wildcards (#576) - (447e072)
  • detailed cooperative refund rejection error (#581) - (e08c854)
  • save permanent payment errors in database (#587) - (2b9a4e8)

Miscellaneous Chores

  • add CHANGELOG for v3.7.0 - (1c7636c)
  • minor dependency update - (5dcbe5e)
  • bump LND to v0.18.0-beta - (bf13d1f)
  • minor dependency updates - (d362dad)
  • set NODE_ENV to production in Docker build - (a433cea)
  • bump CLN to v24.05 (#559) - (358c9bf)
  • update CLN protos to v24.05 (#561) - (7239988)
  • update Python dependencies - (10b055f)
  • add logging for rescan command - (525c885)
  • bump @grpc/grpc-js from 1.10.8 to 1.10.9 (#568) - (47505ba)
  • bump braces from 3.0.2 to 3.0.3 (#569) - (8108cc6)
  • bump urllib3 from 2.2.1 to 2.2.2 in /tools (#571) - (ca491df)
  • bump ws and ethers (#572) - (41564aa)
  • bump Bitcoin Core to v27.1 (#575) - (3436b5a)
  • update NPM dependencies - (e9681fd)
  • change license to AGPL-3 (#574) - (1f61a44)
  • bump LND version to v0.18.1-beta (#582) - (bae070f)
  • include dependencies for clnrest in image - (cac6d0b)
  • bump CI action versions - (e7b18d0)
  • bump version to v3.7.1 - (0f7ded9)
  • include swap id in invoice payment tracking logs (#589) - (e52efbf)

Refactoring

  • improve transaction detection logging - (77d7f00)
  • swap status cache - (751077c)
  • make toHaveBeenCalledTimes in tests more readable - (e17185e)
  • tracking of pending invoice payments - (e7edd6a)

Tests

  • make tests more robust by waiting for CLN sync - (748e5f8)

v3.7.0 - Chain Swap

29 May 15:54
v3.7.0
ddc6878
Compare
Choose a tag to compare

This release introduces Chain Swaps. A new type of swap between two different blockchains.

Bug Fixes

  • mpay override implementation (#541) - (22d3ddf)
  • chain swap errors in Swagger - (65680d0)
  • chain swap refund error - (48bd28a)
  • chain swap pair mapping - (eb6b30c)
  • CLI command to coop claim chain swaps - (1efdee9)
  • regression in getpairs endpoint - (4ee85b0)
  • increase chain swap min swap size multiplier - (1eb62d8)
  • chain swap expiry - (2a5f2af)
  • chain swap pending lockup transaction tracking - (101a12b)
  • lock when broadcasting cooperative claim - (21ae1f4)
  • include timeout ETA in chain swap transactions endpoint - (38f3351)
  • consistent 0-conf rejected status on restart - (323c30f)
  • ignore empty swap options when fetching ChainSwaps - (784a796)
  • use script path fee estimation for chain swaps - (ddc6878)

Documentation

  • add claim covenant and magic routing hints (#536) - (bc82896)
  • Swagger for chain swaps - (660bf3b)
  • add missing swapTypes for pairs config - (d80d13a)
  • add missing chain swap timeout in config - (24ff6bc)

Features

  • allow specifying referral via URL query (#543) - (8398fee)
  • chain swap POC - (02906af)
  • FeeProvider for chain swaps - (f444b11)
  • SQL queries for chain swaps - (86fc8b7)
  • recreate filters for chain swaps - (2ba0a92)
  • cooperative chain swap claims - (9ba1065)
  • cooperative chain swap refunds - (9dbcbf6)
  • query chain swap transactions - (c1f72d3)
  • EVM chain swaps - (25ef8dd)
  • separate timeout block delta for chain swaps - (76bcc4c)
  • allow configuring API endpoint of CLI - (fca6b06)
  • include reverse routing hints in swapinfo - (85cb218)
  • partialy cooperative chain swap claims - (520b921)
  • always include transaction in related events - (612540f)
  • chain swap fee per direction - (3319205)
  • separate swap amount limits for chain swaps - (d90c7b4)

Miscellaneous Chores

Refactoring

  • rename chain swap response properties - (6b8ba97)
  • use isTxConfirmed function - (6ed7bd4)
  • wrapped swap repository for chain and reverse - (797bd1e)

Tests

  • add tests for chain swap related code - (fc0abe0)
  • fix broken test cases - (d249c05)

Mpay

  • add mpay-override-pay option to override pay command (default false, for now!) - (14fe5a0)

Tools/plugins/mpay

  • make the mpay-override-pay option dynamic where supported. - (5415e70)

v3.6.0 - Lowballing

24 Apr 19:05
v3.6.0
cc21c00
Compare
Choose a tag to compare

This release adds the capability to connect to multiple Elements nodes with different transaction relay policies and selectively decide which one to use.

Bug Fixes

  • Docker build script backend version - (c3f6aaa)
  • flaky fee calculating integration test - (c375740)
  • remove lockup transaction table foreign contraint - (d149cc6)
  • use lowball config for second Elements client - (ee3d5be)
  • allow lowball for refunds (#533) - (f0aab1c)
  • bump Liquid claim transaction size estimation (#534) - (9df7beb)

Features

  • make CORS headers configurable (#529) - (efc463f)
  • use lowball for emitting unconfirmed transactions - (9621376)
  • 0-conf circuit breaker - (0c33029)
  • send alert notification when 0-conf is disabled - (b135ce6)
  • use lowball fees in ElementsWrapper (#531) - (add9ea5)

Miscellaneous Chores

Refactoring

  • simplify IChainClient generic - (493c04b)
  • only broadcast with public Elements client - (1459b1e)
  • move allSettled into PromiseUtils - (4937beb)
  • use tableName for all SQL tables - (50b1aa4)

v3.5.0 - In Bloom

12 Apr 15:28
v3.5.0
432fc64
Compare
Choose a tag to compare

This release features a WebSocket API to subscribe to swap status updates and miscellaneous fixes and quality of life improvements for Taproot Swaps.

Bug Fixes

  • ElementsWalletProvider test flakiness - (3d8dee2)
  • Mattermost block formatting - (322db1e)
  • detection of already paid invoices - (b321af0)
  • improve LND HTLC acceptance logging - (ce4824b)
  • Bitcoin Core work queue exhaustion when fetching transactions - (029fb78)
  • mpay forbid self payments - (12bc09d)
  • wrong types in swagger (#485) - (3dab64b)
  • wrong onchainAmount swagger type - (e4db482)
  • CLN plugins for v24.02 - (eef0544)
  • mpay known routes (#503) - (492057a)
  • remove mpay exception traceback - (b2c14d6)
  • use right node for timeout query for invoices (#522) - (acd0b56)
  • harden Taproot signature generation - (622f291)
  • mpay error could not find a route error - (0bf3f06)

Documentation

Features

Miscellaneous Chores

  • update dependencies - (71d49b6)
  • update dependencies - (4ad8a4f)
  • bump Docker image versions - (32dc1da)
  • update NPM dependencies - (43c725c)
  • update dependencies (#491) - (bdaa1fd)
  • update partnerships in README - (41d65ce)
  • bump @openzeppelin/contracts from 5.0.1 to 5.0.2 (#492) - (58dd311)
  • update Docker images - (e7ca60a)
  • update partnerships in readme (#502) - (1719bc2)
  • update CLN Docker image to v24.02.1 - (4d6e240)
  • bump follow-redirects from 1.15.4 to 1.15.6 (#505) - (6d3a1fc)
  • Swagger UI deep linking (#512) - (0d89dd2)
  • bump express from 4.18.3 to 4.19.2 (#515) - (d9134d6)
  • remove host networking from Docker setup (#517) - (d9031e4)
  • update Bitcoin Core to v26.1 (#519) - (8c1dbe2)
  • update CLN to v24.02.2 (#521) - (d48a489)
  • read backend image tag from package.json - (f9d956b)
  • bump tar from 6.1.13 to 6.2.1 (#523) - (38bb1f3)
  • update Python dependencies - (ae3fac3)

Refactoring

Read more

v3.4.0 - Back to the roots

25 Jan 11:45
v3.4.0
90ff2bf
Compare
Choose a tag to compare

Highlights

  • API V2 with Taproot Swaps
  • PostgreSQL database
  • mpay - a CLN pay plugin

Bug Fixes

  • Forbid reverse swaps with same preimage hash
  • Race condition when setting invoices of swaps (#432)
  • Exclude most expensive route in mpay
  • Deduplicate already paid mpay invoices
  • Mpay tests in CI
  • Route hint delay on retries
  • Order of mpay route stats
  • Gas price BigInt conversion error in FeeProvider
  • Locked funds prometheus metric with PostgreSQL
  • Make Anvil miner faster
  • Stats of first month of year
  • Python plugin certificate creation test
  • Tests broken by Taproot swaps
  • Allow modded versions of CLN
  • CLN node URIs
  • Handling of invoices with msat precision (#454)
  • Wrong status event for eligible swap refund
  • Remove "l" from swap id generator (#457)
  • Reset LND mission control on interval (#461)
  • Include RSK in API v2 pairs
  • Do not overwrite failure reason when expiring swap
  • API v2 swap routes

Documentation

  • Misc updates (#429)
  • Fix P2SH nested P2WSH hashing
  • Swagger specs for API V2 endpoints
  • Redeem script clarification (#463)

Features

  • PostgreSQL as database (#425)
  • Mpay plugin prototype
  • Try direct channels first in mpay
  • Mpay list command
  • Reset path memory in mpay
  • Refactor route fee calculations
  • GRPC for mpay
  • SQLite mpay database
  • Getswaptransaction for Ethereum chains
  • Swap node config (#442)
  • Mpay route cache (#447)
  • Add nodes API v2 (#451)
  • Taproot submarine swaps
  • Cooperative Taproot submarine swap refunds
  • Taproot reverse swaps
  • Uncooperative Taproot swap spend cli
  • BIP-21 in invoice memo of reverse swaps (#458)
  • PostgreSQL database backups (#462)
  • API v2 pairs
  • Chain endpoints in API v2
  • API v2 get submarine swap transaction
  • API v2 swap status
  • Mpay to pay invoices

Miscellaneous Tasks

  • Update changelog for v3.3.0
  • Update license for v3.3.0 release (#426)
  • Minor readme update (#428)
  • API landing page favicon (#430)
  • Update Python dependencies
  • Put MIT license on CLN plugins
  • Update to LND v0.17.1-beta
  • Update dependencies
  • Bump LND version to v0.17.2-beta
  • Bump cryptography from 41.0.5 to 41.0.6 in /tools (#438)
  • Update dependencies
  • Bump max supported CLN version
  • Update Docker images (#444)
  • Bump CLN version to v23.11.1
  • Bump CLN version to v23.11.2
  • Prettier import sorting
  • Bump follow-redirects from 1.15.2 to 1.15.4 (#456)
  • Bump GETH Docker image version
  • Generate mpay TypeScript protos

Refactor

  • Cleanup Python project structure
  • Use external SQLAlchemy sessions
  • Include exclude check in get_routes
  • Stats queries for PostgreSQL

Testing

  • Add rudimentary tests for mpay
  • Add Taproot related tests
  • MusigSigner integration test

v3.3.0 - Core compatibility

30 Oct 16:27
v3.3.0
383d494
Compare
Choose a tag to compare

Bug Fixes

  • Custom integration test runner for CI
  • Higher invoice CLTV offset for Reverse Swaps
  • Connect nodes for hold invoice test
  • Skipped hold invoice plugin tests
  • Too short CLTV expiry hold plugin test
  • Python plugin integration tests on CI
  • CLN to LND short channel id conversion
  • Various CLN bugs (#378)
  • CLN pay status gRPC
  • Duplicate CLN pay calls
  • Startup without LND
  • Route querying for CLN
  • Nested arrays in routing hints endpoint
  • Use correct lightning node to query route CLTV estimations
  • Check for paid invoices in paystatus
  • Check for temporary errors before pending
  • Improve detection of pending CLN payments
  • Filter configs with no min wallet balance for notifications
  • Reconnect to CLN subscription error on interval
  • Retry SQLITE_BUSY error
  • Detect open invoice with only cancelled HTLCs
  • Minor prometheus metric typo
  • Payment error handling (#417)
  • Handling of pending HTLCs for expired invoices (#419)
  • Minor adjustments for RSK compatibility
  • CI Docker build workflow
  • Commit version in Docker image build
  • Default metrics to 0
  • Logging of InjectedProvider

Documentation

  • Minor wording adjustment (#415)
  • Uncomment EVM RSK sections (#416)
  • Add API Onion address (#423)
  • RSK related rewording (#424)

Features

  • Increase routing offset based on amount (#372)
  • GRPC command to unblind outputs of a transaction (#373)
  • CLN hld invoice plugin
  • CLN SCB backup plugin
  • MPP support for CLN hold invoice plugin
  • GRPC for hold invoice plugin
  • Improve hold gRPC error handling
  • Track hold invoice state via gRPC
  • Hold gRPC steam to track all invoices
  • Routing hints in hold invoice plugin (#375)
  • CLN integration in backend
  • Save creation date of hold invoices
  • GRPC SSL for hold invoice plugin
  • Support for multiple wallets/nodes in gRPC
  • Upload SCB backup on plugin startup
  • Switch between LND and CLN based on referral (#379)
  • GetRoute in hold plugin for specifying max CLTV
  • Apply CLTV exceptions to routing hints
  • Query swapinfo by more columns (#399)
  • Fallback for timeouts when creating invoices (#398)
  • Separate notification channel for alerts (#400)
  • Use satcomma to format notification amounts (#403)
  • Max unused wallet balance alert (#405)
  • Forbid swaps to our own lightning nodes
  • Loki transport for logger (#410)
  • Race all locking lightning client calls
  • Log and send notification for client status changes
  • Prometheus metrics
  • RSK integration
  • Configurable expiry of reverse swap invoices (#422)
  • Save hold HTLC information in datastore
  • Query listholdinvoices by invoice
  • Prevent invoice overpayment in hold plugin
  • Throw error when creating invoices with hash length != 32

Miscellaneous Tasks

  • Update changelog
  • Speed up tests by disabling global type check
  • Bump certifi from 2022.12.7 to 2023.7.22 in /tools (#368)
  • Update NPM dependencies
  • Harden regtest Docker image build
  • Enable fast gossip for CLN in regtest image
  • Fix shebang line in Python plugins
  • Update geth Docker image to v1.12.2
  • Bump version to v3.3.0
  • Bump CLN to v23.08
  • Update dependencies
  • Update CLN Docker image
  • Bump max CLN version
  • Bump cryptography from 41.0.3 to 41.0.4 in /tools (#384)
  • Update dependencies
  • Remove docs build status
  • Bump urllib3 from 2.0.4 to 2.0.6 in /tools (#392)
  • Update LND to v0.17.0 (#397)
  • Update git-commit-template.txt (#393)
  • README Update (#389)
  • Push Docker image on push to master
  • Push Docker images with latest tag by default (#404)
  • Remove unused mkdocs dependency
  • Bump urllib3 from 2.0.6 to 2.0.7 in /tools (#409)
  • Bump @babel/traverse from 7.22.8 to 7.23.2 (#411)
  • Update to Bitcoin Core v25.1
  • Update dependencies
  • Dependency updates
  • Update dependencies
  • Fix .gitattributes
  • Switch from black to ruff Python formatter
  • Python format rule adjustments

Refactor

  • Use highest mempool.space fee estimation
  • Use bolt11 Python library
  • Update bolt11 library
  • Move docs to gitbook
  • Getstats command (#402)
  • Infer BaseClient log name from service name
  • Remove last hardcoded usages of LND client

Styling

  • Fix ruff warnings

Testing

  • Integration test for hold invoice CLN plugin
  • Fix broken tests
  • Fix broken TimeoutDeltaProvider tests
  • Add missing tests for RSK integration