Major Updates
Protocol Version Upgrade
- The protocol version has been upgraded to v5.
- Important: As before, swaps are only supported between peers running the same protocol version. Make sure all peers upgrade to v5 to maintain compatibility.
Premium Feature
- A Premium feature has been added to allow more flexible handling of fees and pricing structures for swaps (PR #264, #371).
- Note: This feature is still in the testing phase and may be refined in future releases.
Other Fixes
-
Migrated Protocol Buffers to Buf
- Replaced the traditional
protoc
workflow with Buf to unify and automate linting and formatting. - This provides consistent formatting and a more efficient workflow, though contributors need to learn the new toolchain.
- Replaced the traditional
-
Documented Minimum Version for
elementsd
- PR #345 clarifies the minimum required version of Elements when running a local Elements node.
- Ensure your
elementsd
version meets or exceeds this requirement.
-
Dependency Updates
- Multiple libraries, including LND (
v0.18.0-beta.rc3
), have been updated (PR #297). nixpkgs
and flake dependencies have also been refreshed to improve maintainability.
- Multiple libraries, including LND (
-
Fix for
amount_msat
Exceeding Cases- Addresses scenarios where swap amounts could inadvertently exceed set limits (PR #356).
-
Added
acceptdiscountctIsEnabled
Check- A new step checks for
acceptdiscountctIsEnabled
during setup, helping to avoid misconfiguration (PR #348).
- A new step checks for
-
Minor Improvements
Notes
- Active Swaps: As with previous releases, ensure you have no active swaps before upgrading.
- Upgrade Procedure: Refer to the Upgrade Guide for detailed instructions.
- LWK Beta Status: LWK support remains in beta; please report any issues or feedback to improve its reliability.
Release Status
Most PeerSwap features are stable; however, newly added components like LWK and the Premium feature remain in early or beta stages. Feedback is highly encouraged to further enhance upcoming releases.
Special thanks
Special thanks to @yuyaogawa for Premium Feature specification review a while ago.
What's Changed
- liquid: ct discount by @YusukeShimizu in #304
- swap: bump protocol version to 4 by @grubles in #250
- nix: nixpkgs input to the latest revision by @YusukeShimizu in #334
- ci: nix-flake update workflow by @YusukeShimizu in #335
- test: replace t.TempDir() by @YusukeShimizu in #342
- other: configuration for devcontainer by @YusukeShimizu in #341
- ci: update nix-flake schedule monthly[skip ci] by @YusukeShimizu in #340
- docs: minimum version for elementsd by @YusukeShimizu in #345
- multi: acceptdiscountctIsEnabled check in setup by @YusukeShimizu in #348
- deps: glightning version reference by @YusukeShimizu in #349
- peerswaprpc: typo. correct in gen_protos.sh by @YusukeShimizu in #351
- multi: migrate protoc to buf by @shelter2759 in #350
- remove gen_protos.sh script by @YusukeShimizu in #352
- chore: fix some function names in comment[skip ci] by @finaltrip in #353
- multi: Modify buf.yaml for Buf lint and Format with Buf CLI Comamnd("buf format -w") by @shelter2759 in #354
- Fix "exceeding amount_msat" check by @Impa10r in #356
- refine triggers by @YusukeShimizu in #357
- conf: remove golangci configuration file by @YusukeShimizu in #360
- chore: remove redundant words in comment[skip ci] by @kevincatty in #362
- Premium by @YusukeShimizu in #264
- Update flake.lock by @github-actions[bot] in #337
- mod: update package lnd v0.18.0-beta.rc3 by @YusukeShimizu in #297
- Use the peerswaprpc proto file for shared serialization by @YusukeShimizu in #231
- rpc: return raw peerswaprpc.PremiumRate pointers by @YusukeShimizu in #371
- mod: bump go-elements to v0.5.1 by @YusukeShimizu in #363
- chore: fix some function names in comment[skip ci] by @pengqiseven in #376
- Add testnet4 support by @Impa10r in #369
- refactor: use the built-in max/min to simplify the code by @todaymoon in #367
- chore: fix struct field name in comment[skip ci] by @coderwander in #378
- chore: fix some minor issues in the comments[skip ci] by @shandongzhejiang in #380
- refactor: use slices.Contains to simplify code by @jinjingroad in #379
- chore: fix some minor issues in the comments[skip ci] by @mountdisk in #382
- chore: make function comment match function name[skip ci] by @rustfix in #388
- ci: improve caching by @YusukeShimizu in #385
- refactor: use the built-in max/min by @bytetigers in #389
New Contributors
- @shelter2759 made their first contribution in #350
- @finaltrip made their first contribution in #353
- @kevincatty made their first contribution in #362
- @github-actions[bot] made their first contribution in #337
- @pengqiseven made their first contribution in #376
- @todaymoon made their first contribution in #367
- @coderwander made their first contribution in #378
- @shandongzhejiang made their first contribution in #380
- @jinjingroad made their first contribution in #379
- @mountdisk made their first contribution in #382
- @rustfix made their first contribution in #388
- @bytetigers made their first contribution in #389
Full Changelog: v3.99...v5.0.0