Harden the RGB Lightning wallet runtime - #41
Merged
Jainakin merged 35 commits intoSep 1, 2026
Conversation
# Conflicts: # tests/types-contract.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Publishes the WDK integration surface used by Iris Wallet for production-oriented Bitcoin, RGB, Lightning, VSS, and wallet lifecycle management.
This change keeps native work behind one typed account API and adds:
Address-attested APay
enableLightningAddress()now resolves the LSP-provisioned address before submitting exactly oneapayNewWithAddress(hostNodeId, username, domain)batch. The default path fails closed if the signed native capability is unavailable. LegacyapayNewremains available only through the explicit{ requireAddressAttestation: false }compatibility policy.The LSP address lookup tolerates the bounded provisioning window, while malformed or permanently missing addresses fail without registering a hash batch. The package smoke consumes the minimum published Node peer and asserts that its native
SdkNodeexposesapayNewWithAddress.Native dependency status
f30a5393268de67c6bb5a1c525bc790c5b11afa2; RLN owns the signed APay implementation.bd11dad0b27b722cc868d79fff040420dccdd741and released as@utexo/rgb-lightning-node-bare@0.1.0-beta.20.2cb58b4611c687f77a3cf19c93348050907793deand released as@utexo/rgb-lightning-node-nodejs@0.1.0-beta.16.1a446b9932c2dce5c40117bcaae752dd083edd80.@utexo/rgb-lightning-node-bare >=0.1.0-beta.20 <0.2.0and@utexo/rgb-lightning-node-nodejs >=0.1.0-beta.16 <0.2.0.Validation
npm ci --ignore-scriptsnpm run lintnpm run check:typesnpm test -- --runInBand --no-watchman: 22 suites and 682 tests passednpm run check:packagenode scripts/verify-peer-releases.mjs: both exact minimum peers resolved from npmnpm audit --omit=dev --audit-level=high: 0 vulnerabilitiesa3370badc4279fa8dfb20c93eef2e02fa871c2bbWhy this remains draft
The package chain is released, but Iris Wallet still pins older Git revisions and its LSP bootstrap currently invokes legacy
apayNewdirectly. The app must repin the released native/WDK chain, resolve its LSP-provisioned address, persist registration intent, and invoke the signed API without creating a legacy batch first.After that consumer migration, the remaining gates are fresh-create, restore, background, crash/restart, APay refill, and funded Signet interoperability tests on release-equivalent iOS and Android builds.