Releases: BoltzExchange/boltz-backend
v3.2.1 - Route-ability
This release features some more improvements regarding the reliability of lightning payments for swaps
Bug Fixes
- Use correct Logger for NodeInfo
- Remove tslint config
- Mine block before generating invoices in integration test
Features
- Send latest Swap status on SSE connect
- Use queryRoutes to estimate timeout of swaps
Miscellaneous Tasks
v3.2.0 - Reliable liquidity
This release features:
- support for the Liquid chain
- vastly improved Lighting payment reliability for swaps
Bug Fixes
- Stringify of BigInt
- Show output index of Swap transactions
- Handle cltv limit should be greater than errors
- Allow disabling currencies gracefully
- Mininmal amount calculations on interval
- Liquid testnet BIP21
- Liquid transaction sizes
- Allow lower limits on Liquid
- Do not throw when WebDAV backup fails
- Increase estimated size for Liquid claim transactions
- Broken tests
- Crash after LND restart with invoice GC
- Missing initEccLib call to bitcoinjs-lib
- Handle invoice settlement error
- Channel open after successful swap
- CoreWalletProvider integration test
- Handling replaced swap transactions
- Chain ID serialization
- Broken service test
- Lightning payment reliability (#358)
- Swap timeout for cross chain
- Buffer to reach routing hints
Documentation
- Rm ltc sample from /getnodes (#321)
- Markdown style fixes
- Update according to changes in Liquid branch
- Update config sample
Features
- LND v0.16.0-beta support (#316)
- Add boltz-cli command to hash hex values
- Backups to WebDav (#330)
- Liquid integration
- Liquid BIP21
- Configurable wallet backend
- Liquid 0.2 sat/vbyte floor
- Mempool.space API fallbacks
- Blinding key of swaps
- Use Taproot addresses by default in Bitcoin Core wallet
- Node stats enpoint
- Deriving blinding keys via gRPC
- API landing page
Miscellaneous Tasks
- Update changelog
- Bump undici from 5.14.0 to 5.19.1 (#309)
- Bump sequelize from 6.28.0 to 6.28.2 (#310)
- Bump sequelize from 6.28.2 to 6.29.0 (#311)
- Update GitHub CI Action (#312)
- Bump minimist from 1.2.5 to 1.2.6 (#313)
- Update Docker images
- Update sqlite3 to 5.1.5
- Update CLN Docker image to 23.02.2
- Improve miner_fee script
- Minor style fixes
- Update boltz Docker image
- Bump @openzeppelin/contracts from 4.8.2 to 4.8.3 (#320)
- Update LND to 0.16.1-beta (#324)
- Update LND to 0.16.2-beta (#328)
- Print version on startup
- Increasize liquid fees
- Bump boltz-core-liquid
- Hardcode Liquid tx fee to 0.11 sat/vbyte
- Bump requests from 2.28.2 to 2.31.0 in /tools (#334)
- Update regtest container
- Run prettier on whole project
- Bump @openzeppelin/contracts from 4.8.3 to 4.9.1 (#348)
- Bump dottie from 2.0.3 to 2.0.4 (#349)
- Update Docker images
- Increase Mempool.space refresh interval
- Bump @openzeppelin/contracts from 4.9.1 to 4.9.2 (#352)
- Update Eclair Docker image
- Update dependencies
- Revert version to v3.2.0
- Bump fast-xml-parser from 4.2.4 to 4.2.5 (#355)
- Bump CI Node.js version (#356)
- Update CLN Docker image to v23.05.2
Refactor
- Dockerfile of backend for tagged image builds
- Fee estimation preparation log
- Update to Ethers v6
- Querying statistics
- Make database repositories static
- Disable RBF for lockup transactions
- Set limit of pairs in pair
v3.1.5 - It's been a long, long time
Too many things happened since the last release to summarize in here.
Tldr: this release marks the begin of the habit of tagging releases again.
Bug Fixes
- Race condition in fee calculation of ERC20s
- Improve Web3 provider initialization
- Failure reason detection of SendPaymentV2
- Query lockup vout in database migration to v2
- Race condition which caused claim transactions not being detected
- Balance alerts of Ethereum wallets (#224)
- Set payment fee limit (#230)
- Harden Discord login logic
- LND max message length
- Set start height of LND transaction list call
- Timestamp of log messages (#236)
- Handle pending lightning HTLCs
- Pad log timestamps
- Convert amounts of lockefunds command to whole coins
- Retry of channel creation invoice payment
- Error when routing policy is not defined
- Handle failed requests to GasNow
- Double channel opening when connecting to remote node
- Check routability for disabled channel creations
- Harden ZMQ connection logic
- Harden Reverse Swap lockup confirmation logic (#246)
- Invoice cancellation on fresh regtest environments
- Show method of failed Web3 provider requests (#248)
- Handle rejections (#249)
- GasNow WebSocket timeouts
- Stuck GasNow WebSocket
- Handle invoices already cancelled by LND
- Foreign key of channel creations
- Handle GasNow WebSocket errors
- Still allow LND v0.12
- Update dependencies
- Redundant check for confirmed lock transactions
- Increase invoice payment timeout
- More verbose backup upload failure logs (#260)
- Endless channel backup reconnection loop
- Add missing port to startRegtest.sh (#280)
- Reject AMP invoices for swaps (#289)
- Prepay minerfee race condition
- Missing -f parameter to docker build (#296)
- Max CLTV delta for lightning payments
- CLTV delta for cross chain swaps
- Cross chain CLTV delta for Ethereum
- Add check for minimal CLTV limit
- ARM64 boltz-backend Docker build
- Parsing of invalid Bitcoin addresses
Documentation
- Update for v3.1.0
- Request authentication and querying referrals
- Add note that API is not accessible from browser (#295)
- Minor wording fix
Features
- Improve balance check notifications
- Add timeout to requests to web3 provider
- Group stats by year
- Split long Discord message in multiple parts
- Show ids of swaps for which coins are locked (#233)
- Add provider for Bitcoin Core wallet (#235)
- Allow client to request private routing hints
- Allow clients to fetch routing hints
- Update to swap contracts v2
- Add Ethereum prepay miner fee
- Cancel pending HTLCs for expired prepay invoices
- Allow to specify onchain amount when creating Reverse Swaps
- Add user/password RPC authentication again
- Improve invoice cancellation logic
- Switch to GasNow WebSocket (#247)
- Add mempool.space based fee estimates
- Adjust minimal limits based on miner fees (#253)
- Add referral fee
- Send Ethereum type 2 transactions
- Add referral API keys and secrets
- Add HMAC API authentication
- Add API endpoint to query referrals
- API endpoint to query swap timeouts
- Allow configuring ZMQ endpoints
- Add elements to docker regtest (#269)
- Set max payment fee ratio for LND (#299)
- SwapIn fee (#305)
- Allow setting feePerVbyte and timeoutBlockHeight in CLI tooling
Miscellaneous Tasks
- Update Zcash to v4.1.1
- Decrease LND payment timeout to 15 seconds
- Update GETH to v1.9.25
- Bump ini from 1.3.5 to 1.3.8 (#228)
- Bump node-notifier from 8.0.0 to 8.0.1 (#229)
- Bump date-and-time from 0.14.1 to 0.14.2 (#231)
- Update LND to v0.12.0
- Update Docker images
- Run Github actions only against Node v14
- Update to LND v0.12.1
- Update Zcash to v4.3.0
- Update GETH to v1.10.0
- Update GETH to v1.10.1
- Update dependencies
- Update Python dependencies
- Update dependencies (#251)
- Update NPM dependencies
- Update NPM dependencies
- Fix build (#256)
- Bump urllib3 from 1.26.4 to 1.26.5 in /tools (#255)
- Update dependencies
- Update dependencies
- Switch to grpc-js
- Update dependencies
- Dependency updates
- Update GETH to v1.10.9
- Update LND to v0.13.3-beta (#263)
- Update dependencies
- Fix lint errors
- Update c-lightning image to v0.10.2
- Bump mkdocs from 1.2.2 to 1.2.3 in /tools (#266)
- Update to Node v16 (#267)
- Update dependencies
- Update Docker images
- Update dependencies
- Docker images for linux/arm64
- Allow specifying organisation in Docker build script
- Update Docker images
- Update to LND 0.14.2-beta (#274)
- Add docker image for boltz-backend (#285)
- Add security.md (#287)
- Docker image updates
- NPM dependency updates
- Minor wording fixes
- Add docker aliases script (#282)
- Update LND to v0.15.0
- Update protos for LND 0.15.0
- Bump max LND version 0.15.1
- Update Docker images
- Update Dockerfile for Boltz backend
- Bump moment-timezone from 0.5.34 to 0.5.37 (#294)
- Update dependencies
- Update Docker images to LND 0.15.2-beta
- Show TX ID when it cannot be found
- Set max LND version to 0.15.3
- Update LND Docker image to v0.15.3
- Update LND to v0.15.4
- Update Docker images
- Update Docker images
- Update regtest Docker image
- Update vulnerable dependencies
- Update dependencies
- Bump http-cache-semantics from 4.1.0 to 4.1.1 (#306)
- Add SQL scripts to query stats
- Update dependencies
Refactor
- Remove all GasNow code
- Cache LND node URIs
- Switch from WebSocket to HTTP Web3 providers
- Remove native dependency for disk usage
- Use poetry for Python dependencies
Testing
- Add case for gRPC messages longer than the default limit
- Fetch contract addresses dynamically
- Comment out Binance price oracle test
- Add case for decoding of invalid addresses
v2.4.3 - Double check everything
This release includes a new feature to verify that fee estimations and rates did not change in the period of time between querying them and creating a Swap, some minor bug fixes and dependency updates
Bug Fixes
- use miner fees shown in API (95631d3)
Features
v2.4.2 - Vulnerable
This release updates LND to v0.11.1
because of the vulnerability that was recently disclosed on the lightning-dev mailing list.
Bug Fixes
- update to LND v0.11.1 (acff8e7)
v2.4.1 - Don't force it
Cross chain Reverse Swaps that time out and have to be refunded caused some force closed channels on mainnet. This release increases the buffer between the lightning and onchain timeout block height to prevent those channel force closures.
Features
- add 10 percent buffer to CLTV expiry for cross chain Reverse Swaps (97d7ee3)
v2.4.0 - Channel for everyone
This release is a first step to enabling Channel Creation Swaps in the Boltz frontend
Bug Fixes
- relax invoice check in auto Channel Creation mode (caa4fc2)
Features
v2.3.0 - Ragnarock
In this release we are introducing quite a bit of new functionality in our API:
- Channel Creation Swaps
- Creating Submarine Swaps with just a preimage hash and setting the invoice afterwards
- Querying lockup transaction of Submarine Swaps by Swap ID
- Querying the URIs of the lightning nodes of Boltz
We have also been working on an optional Reverse Swap protocol change with Electrum. We call it prepay miner fee and it requires a second invoice for the miner fee to be paid. But as of writing this, the prepay miner fee protocol change is not enabled on the official Boltz instances.
And of course we also made lots of improvements under the hood.
v2.1.0-beta - Hold my beer
This release features a new protocol for the reverse swaps using hold invoices.
Bug Fixes
- address and invoice encoding in LND Litecoin (62e0bbb)
- edge case of swap event handling (68f9387)
- error printing of chain client during initialization (7fe33bd)
- invoice decoding on testnet (bf21052)
- loading status of pending reverse swaps (9104819)
- multiple messages of disk usage checker (1af2887)
- normal cross chain swaps (7072765)
- Python linting warnings (a346829)
- update commands for new reverse swaps (41460c0)
Features
- accept invoices with upper case letters (#158) (d2f08d4)
- add Dogecoin Core and Zcash Docker images (9bec35d)
- add ETA to TransactionMempool events (3a3a29d)
- add lockedfunds Discord command (b034f25)
- add memo to invoice of reverse swaps (556513f)
- add notification when disk is getting full (#146) (47843ba)
- add pendingswaps Discord command (f192ea2)
- add script to fund Boltz wallet (#141) (c0ff5ca)
- add support for Dogecoin (2c9e9d6)
- add timeouts of hold reverse swaps (f4aae82)
- add tool to analyze failed swaps (#157) (9138f3b)
- add usage of single commands to Discord help (63c6e8c)
- add version API endpoint (277d2c7)
- add withdraw Discord command (#142) (6fdc4d4)
- build LND docker image with all available tags (d3ddba0)
- cancel invoices of expired reverse swaps (e6aef4f)
- default status for swaps (531fd39)
- make timeouts configurable on a per chain basis (#153) (14f7b80)
- raw transaction in events of reverse swaps (46b8d25)
- remove Boltz wallet (6946bf3)
- reverse swaps with hold invoices (6936fc2)
- reword invoice memo (af55e31)
- show git commit hash in version (#151) (f84a2f7)
- show onchainAmount in response of createreverseswap (#161) (f1c784a)
- use new reverse swap script (82d8860)
v2.0.0-beta - The Programmable Flash
This release features support for 0-conf transactions and the documentation of the REST API.
Bug Fixes
- always use free port for ZMQ tests (8eb6984)
- calculation of enforced limits of LTC/BTC pair (e874595)
- message of backup command (#131) (b5f1676)
- minor fee calculation fixes (9075469)
- minor improvements (c3f19b4)
- not throwing exception if backup private key cannot be found (ec84edc)
- output type of NewAddress (ca52f9c)
- race conditions in EventHandler (9442a1e)
- tests after renaming event to status (335cac3)
- tests in different timezones (af283ec)
Features
- abort swaps after expiration (#123) (5879a3b)
- accept 0-conf for non RBF swap outputs (#118) (66066ee)
- add 0-conf limits to getPairs endpoint (769b79f)
- add list of images to builder script (9a091f9)
- add script to stream Server-Sent events (14c72bd)
- add timeoutBlockHeight to response of createReverseSwap (14b8314)
- improve Docker image build process (1c5c627)