* views: WalletConfiguration: lock interface for initialized LDK Node
Hide the wallet interface dropdown once an LDK Node wallet has been
initialized, matching the existing behavior for Embedded LND wallets
with an admin macaroon. Show a read-only, localized Network label in
its place, as Embedded LND does.
* views: WalletConfiguration: show wallet interface label on initialized wallets
Hide the wallet interface dropdown once an LDK Node wallet has been
initialized, matching the existing behavior for Embedded LND wallets
with an admin macaroon. Show a read-only, localized Network label in
its place, as Embedded LND does.
Use the Screen component for the themed gradient background, add
horizontal margins around the duress PIN explanation text, and match
SetPin's heading offset.
When the Lockscreen was opened from Security settings to delete or
change a PIN or password, entering duress credentials still triggered
deleteNodes() and wiped all wallet configurations. Duress credentials
now count as an incorrect entry in these flows and only trigger the
wipe on a genuine login attempt.
Also clarify the prompts in the delete duress flows so users know the
login credential is expected, not the duress one.
Fixes#3725
pbts emits proto/lightning.d.ts unformatted, which then fails the
prettier check since it globs **/*.ts*. Format it as part of gen-proto
so regenerating bindings doesn't require a manual fixup pass.
proto/lightning.js is left as pbjs emits it - it isn't covered by the
prettier check.
* [Transifex] Translate locales/en.json in it
95% of minimum 25% translated source file: 'locales/en.json'
on 'it'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in tr
27% of minimum 25% translated source file: 'locales/en.json'
on 'tr'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in pt_BR
95% of minimum 25% translated source file: 'locales/en.json'
on 'pt_BR'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in sw
36% of minimum 25% translated source file: 'locales/en.json'
on 'sw'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in bg
39% of minimum 25% translated source file: 'locales/en.json'
on 'bg'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in el
53% of minimum 25% translated source file: 'locales/en.json'
on 'el'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in cs
99% of minimum 25% translated source file: 'locales/en.json'
on 'cs'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in hi_IN
54% of minimum 25% translated source file: 'locales/en.json'
on 'hi_IN'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in zh_TW
68% of minimum 25% translated source file: 'locales/en.json'
on 'zh_TW'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in sv
38% of minimum 25% translated source file: 'locales/en.json'
on 'sv'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in id
77% of minimum 25% translated source file: 'locales/en.json'
on 'id'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in zh_CN
99% of minimum 25% translated source file: 'locales/en.json'
on 'zh_CN'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in fi
52% of minimum 25% translated source file: 'locales/en.json'
on 'fi'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in fa
29% of minimum 25% translated source file: 'locales/en.json'
on 'fa'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in pl
30% of minimum 25% translated source file: 'locales/en.json'
on 'pl'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in es
99% of minimum 25% translated source file: 'locales/en.json'
on 'es'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in th
35% of minimum 25% translated source file: 'locales/en.json'
on 'th'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in de
88% of minimum 25% translated source file: 'locales/en.json'
on 'de'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in fr
95% of minimum 25% translated source file: 'locales/en.json'
on 'fr'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in vi
44% of minimum 25% translated source file: 'locales/en.json'
on 'vi'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in ko
99% of minimum 25% translated source file: 'locales/en.json'
on 'ko'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in ru
28% of minimum 25% translated source file: 'locales/en.json'
on 'ru'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in ro
95% of minimum 25% translated source file: 'locales/en.json'
on 'ro'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in he
32% of minimum 25% translated source file: 'locales/en.json'
on 'he'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Addresses two high-severity Dependabot alerts:
- shell-quote <= 1.8.4 (GHSA-395f-4hp3-45gv, quadratic parse() DoS):
bump concurrently to 10.0.4 (pins shell-quote 1.9.0) and refresh the
remaining lockfile entries to 1.10.0. Closes alert #377.
- brace-expansion <= 5.0.7 (GHSA-mh99-v99m-4gvg, OOM crash via chained
brace groups): only 5.0.8 (ESM-only) is patched, so the CJS
minimatch@3/@5 chains must stay on 1.1.16/2.1.2 for now. Remove the
global minimatch/brace-expansion resolutions, which were forcing
minimatch ^5/^10 requests (protobufjs-cli -> glob@8,
react-native-blob-util -> glob@13, and
@typescript-eslint/typescript-estree) down to 3.1.5/1.1.16 and
orphaning the scoped react-native-blob-util/* pins (they never
matched: the chain runs through glob, not a direct dep). Each
minimatch major now resolves its proper brace-expansion line,
including the patched 5.0.8 for the ^5.0.5 range.
All affected packages are dev/build tooling; nothing ships in the app
bundle. Alert #388 remains open on brace-expansion 1.1.16/2.1.2 until
upstream backports land.
The module's 'mocha --reporter spec' test script has been dead
scaffolding since the beginning - upstream lightninglabs/lnc-rn never
shipped a test directory - so yarn test always failed with 'No test
files found'.
Add a suite for the parts of lib/ that run in plain Node (lnc.ts needs
react-native and is exercised through the app):
- api/createRpc: unary calls route to lnc.request with capitalized
method names; every entry in lnc-core's subscriptionMethods routes
to lnc.subscribe
- util/credentialStore: field storage, isPaired logic, clear()
- util/log: level filtering, prefix naming, fromEnv no-op default
Wiring notes:
- .mocharc.yml requires ts-node/register/transpile-only so no
@types/mocha or @types/chai devDependencies are needed
- the spec pattern avoids ** because the minimatch 9 resolution pin
makes mocha's bundled glob 7 crash on globstar (GLOBSTAR is a Symbol
in minimatch 4+)
- root jest gains 'zeus_modules' in testPathIgnorePatterns: its
crawler only skips node_modules, so it would otherwise collect these
mocha tests into the app's jest run
The lnc-rn prepare step (bob build) failed its typescript target on
every yarn install inside the module: tsc's automatic @types inclusion
walks up parent node_modules, so the vendored copy picked up the zeus
root's @types/lodash, whose 'infer N extends number' syntax the
package's pinned TypeScript 4.5.5 cannot parse (TS1005). Upstream
lnc-rn never hits this because it is not nested inside another repo.
Fix: restrict typeRoots to the package's own node_modules/@types.
Also commit the dist/ output regenerated by the pinned toolchain so
prepare is idempotent and installs leave a clean tree:
- dist/typescript is byte-identical, so the type surface zeus's tsc
consumes is unchanged
- dist/commonjs and dist/module drift is babel class-property lowering
(previous committed copy kept class-fields syntax); zeus never runs
these files - Metro resolves the react-native field to lib/ source
- dist/commonjs/package.json ({"type":"commonjs"}) is dropped: bob
0.18.3 does not emit it and the package has no "type" field, so CJS
is already the default
Root:
- bump brace-expansion resolutions for GHSA-3jxr-9vmj-r5cp: blanket
pin 1.1.13 -> 1.1.16, protobufjs-cli scope 2.0.3 -> 2.1.2; add
react-native-blob-util/brace-expansion 5.0.8 so the minimatch 10 /
glob 13 subtree gets the only patched line for GHSA-mh99-v99m-4gvg
- re-resolve the stale ws@^6.2.3 lockfile entry 6.2.3 -> 6.2.6 for
GHSA-96hv-2xvq-fx4p (dev-only, @react-native-community/cli-server-api)
zeus_modules/@lightninglabs/lnc-rn (vendored; dev tooling only, none
of this is bundled into the app):
- js-yaml 3.14.1 -> 3.15.0 and 4.1.0 -> 4.3.0 (via mocha/js-yaml
resolution) for GHSA-52cp-r559-cp3m and GHSA-h67p-54hq-rp68
- ws 6.2.3 -> 6.2.6 and 7.5.10 -> 7.5.13 for GHSA-96hv-2xvq-fx4p
Applies lightninglabs/lnc-rn#45 to the vendored copy in zeus_modules:
- add eslint.config.mjs (flat config, eslint v9 + typescript-eslint v8)
translating the previous tslint.json rule set
- swap tslint/tslint-config-prettier devDependencies for @eslint/js,
eslint, eslint-config-prettier, globals and typescript-eslint;
lint script is now 'eslint lib'
- drop unused Proxy handler params in lib/api/createRpc.ts and the
unused catch binding in lib/lnc.ts, mirrored into the prebuilt dist/
- regenerate the module's local yarn.lock
No runtime behavior change. The root package.json and yarn.lock are
untouched, so contributors do not need to re-run yarn.
protobufjs v8 reads TextDecoder at import time, and Hermes does not
provide it. The polyfill assignment in index.js ran after hoisted
imports, so the app crashed on launch with 'Property TextDecoder
doesn't exist'. Move the polyfills into their own module imported
first so they are installed before any other module executes.
Upgrades the protobuf toolchain and runtime together, as they are
version-coupled (protobufjs-cli 2.5.x peer-requires protobufjs ^8.6):
- protobufjs 7.6.5 -> 8.7.1 (runtime; v8's only breaking change is
Edition 2024 descriptor support - LND protos are proto3 and the
runtime APIs Zeus uses, util.Long/configure/Writer/Reader, are
unchanged)
- protobufjs-cli 2.0.0 -> 2.5.1 (dev; supersedes #4257, which would
have created a peer mismatch against the 7.x runtime)
- long 5.2.3 -> 5.3.2 (protobufjs 8 requires ^5.3.2; keeping the
direct dep in lockstep avoids two hoisted Long classes and
instanceof mismatches in the Long wiring in index.js)
- gen-proto: add -p proto so pbjs can resolve import "lightning.proto"
from the rpc subdirectory protos; the script failed with ENOENT
without it (on both old and new CLI versions)
- proto/lightning.js + lightning.d.ts regenerated with the new
toolchain (v8-era codegen: unknown-field preservation, recursion
depth guards); d.ts formatted with the repo prettier config
* [Transifex] Translate locales/en.json in cs
99% of minimum 25% translated source file: 'locales/en.json'
on 'cs'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
* [Transifex] Translate locales/en.json in cs
100% translated source file: 'locales/en.json'
on 'cs'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
99% of minimum 25% translated source file: 'locales/en.json'
on 'cs'.
Sync of partially translated files:
untranslated content is included with an empty translation
or source language content depending on file format
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>