@ledgerhq/live-wallet 0.16.0 → 0.16.1-nightly.20251126160702
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/lib/walletsync/modules/accountNames.d.ts +21 -0
- package/lib/walletsync/modules/accountNames.d.ts.map +1 -1
- package/lib/walletsync/modules/accountNames.js.map +1 -1
- package/lib/walletsync/modules/accounts.d.ts +22 -0
- package/lib/walletsync/modules/accounts.d.ts.map +1 -1
- package/lib/walletsync/modules/accounts.js.map +1 -1
- package/lib-es/walletsync/modules/accountNames.d.ts +21 -0
- package/lib-es/walletsync/modules/accountNames.d.ts.map +1 -1
- package/lib-es/walletsync/modules/accountNames.js.map +1 -1
- package/lib-es/walletsync/modules/accounts.d.ts +22 -0
- package/lib-es/walletsync/modules/accounts.d.ts.map +1 -1
- package/lib-es/walletsync/modules/accounts.js.map +1 -1
- package/package.json +7 -7
- package/src/liveqr/importAccounts.test.ts +4 -9
- package/src/ordering.test.ts +5 -9
- package/src/walletsync/modules/accountNames.ts +21 -0
- package/src/walletsync/modules/accounts.ts +22 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ledgerhq/live-wallet
|
|
2
2
|
|
|
3
|
+
## 0.16.1-nightly.20251126160702
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`50aeea1`](https://github.com/LedgerHQ/ledger-live/commit/50aeea1233056e9abff9568eb928927f39e76cff), [`a2ecb55`](https://github.com/LedgerHQ/ledger-live/commit/a2ecb55df9d383dc282f5fe489cb14386208215e), [`fe81926`](https://github.com/LedgerHQ/ledger-live/commit/fe81926afeb2df8e917e6bd1e4cbab13f09647fd), [`67137eb`](https://github.com/LedgerHQ/ledger-live/commit/67137eb5d7f04dd5f3610fdaa4e463d292654105), [`49ef24c`](https://github.com/LedgerHQ/ledger-live/commit/49ef24cbd1948bfd146af0b20f2128951b2dc170), [`b4a4e16`](https://github.com/LedgerHQ/ledger-live/commit/b4a4e160aae6fd64f944ab25633f6931dc4358d3), [`927ae64`](https://github.com/LedgerHQ/ledger-live/commit/927ae64db0bb04af54e25623655a001a68e0f2d3), [`903ea9c`](https://github.com/LedgerHQ/ledger-live/commit/903ea9cdacf704a0119de2803a4f409b775391a5), [`9251b77`](https://github.com/LedgerHQ/ledger-live/commit/9251b77fcb01709723842f19220a2a41a6fc8f3b), [`02ef98f`](https://github.com/LedgerHQ/ledger-live/commit/02ef98faeb13c182ef255e06a43c39abeb55ecc7), [`6d0c6b2`](https://github.com/LedgerHQ/ledger-live/commit/6d0c6b2eda60049d8eebda5de2c54e8f0be7d009), [`0d33751`](https://github.com/LedgerHQ/ledger-live/commit/0d33751bb2ae599d0d26ce6a8efdbe01757f12fb), [`aadcec6`](https://github.com/LedgerHQ/ledger-live/commit/aadcec66847b800f79452ba1df09149e0a1cb9e8), [`b113920`](https://github.com/LedgerHQ/ledger-live/commit/b11392056bc334fc1813c473569ad3ae7be08045), [`53deeef`](https://github.com/LedgerHQ/ledger-live/commit/53deeef592b7d566b4e7a636fa34d7ad59dd43ad), [`ed8532b`](https://github.com/LedgerHQ/ledger-live/commit/ed8532bad754ca2b5f1788c6e92f4646b775ec79), [`88a5018`](https://github.com/LedgerHQ/ledger-live/commit/88a501871d58c980f18495b5b32012a3eaa9ab2c), [`9659a34`](https://github.com/LedgerHQ/ledger-live/commit/9659a34d9998d5c4dff8618bf6cef7d16403680d)]:
|
|
8
|
+
- @ledgerhq/cryptoassets@13.34.0-nightly.20251126160702
|
|
9
|
+
- @ledgerhq/types-live@6.90.0-nightly.20251126160702
|
|
10
|
+
- @ledgerhq/coin-framework@6.10.0-nightly.20251126160702
|
|
11
|
+
- @ledgerhq/live-env@2.22.0-nightly.20251126160702
|
|
12
|
+
- @ledgerhq/ledger-key-ring-protocol@0.8.0-nightly.20251126160702
|
|
13
|
+
- @ledgerhq/live-network@2.1.2-nightly.20251126160702
|
|
14
|
+
|
|
3
15
|
## 0.16.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accountNames
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing custom account names across Live instances
|
|
5
|
+
* in the WalletSync system. It manages the mapping between account IDs and their
|
|
6
|
+
* user-defined names, ensuring that when a user renames an account on one Live instance,
|
|
7
|
+
* that name change is propagated to all other synchronized Live instances.
|
|
8
|
+
*
|
|
9
|
+
* Account names are off-chain data (not stored on the blockchain), and therefore need to
|
|
10
|
+
* be synchronized through the WalletSync system to ensure consistency across all Live instances.
|
|
11
|
+
*
|
|
12
|
+
* Key responsibilities:
|
|
13
|
+
* - Tracks local account name changes and prepares them for synchronization
|
|
14
|
+
* - Resolves incoming account name updates from other Live instances
|
|
15
|
+
* - Handles conflict resolution by accepting incoming state changes (last-write-wins strategy)
|
|
16
|
+
* - Maintains consistency between local state (Map<string, string>) and distant state (Record<string, string>)
|
|
17
|
+
*
|
|
18
|
+
* The module uses a replace-all strategy for updates, meaning any incoming state change
|
|
19
|
+
* will replace the entire account names mapping. While this simplifies conflict resolution,
|
|
20
|
+
* it may result in lost changes if multiple Live instances modify names simultaneously.
|
|
21
|
+
*/
|
|
1
22
|
import { WalletSyncDataManager } from "../types";
|
|
2
23
|
import { z } from "zod";
|
|
3
24
|
declare const schema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnB;IACE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,EACD,OAAO,MAAM,CAqCd,CAAC;AAWF,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"accountNames.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnB;IACE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,EACD,OAAO,MAAM,CAqCd,CAAC;AAWF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":";;AAsBA,6BAAwB;AAExB,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEpC,MAAM,OAAO,GAMT;IACF,MAAM;IAEN,kBAAkB,CAAC,SAAS,EAAE,WAAW;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,UAAU;YACV,SAAS;SACV,CAAC;IACJ,CAAC;IAED,oIAAoI;IACpI,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa;QACxE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,iDAAiD;QACjF,CAAC;QAED,MAAM,UAAU,GACd,WAAW,KAAK,aAAa,IAAI,yCAAyC;YAC1E,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,CAAyB,EAAE,CAAyB;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kBAAe,OAAO,CAAC"}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accounts
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing account data across Live instances in the
|
|
5
|
+
* WalletSync system. It manages the lifecycle of accounts (adding, removing, and
|
|
6
|
+
* maintaining account information) to ensure that all synchronized Live instances have
|
|
7
|
+
* access to the same set of accounts.
|
|
8
|
+
*
|
|
9
|
+
* Key responsibilities:
|
|
10
|
+
* - Tracks locally added/removed accounts and prepares them for synchronization
|
|
11
|
+
* - Resolves incoming account updates from other Live instances by converting account
|
|
12
|
+
* descriptors into full Account objects through bridge synchronization
|
|
13
|
+
* - Manages non-imported accounts with exponential backoff retry logic for accounts
|
|
14
|
+
* that failed to import (e.g., due to network issues, invalid data, or missing currencies)
|
|
15
|
+
* - Handles account ID migrations and deduplication when accounts resolve to the same ID
|
|
16
|
+
* - Performs full account synchronization to validate account data and populate
|
|
17
|
+
* all necessary fields before adding accounts to the local wallet
|
|
18
|
+
*
|
|
19
|
+
* The module maintains a list of accounts and tracks failed import attempts,
|
|
20
|
+
* allowing the system to retry importing accounts that previously failed with
|
|
21
|
+
* an exponential backoff strategy to avoid excessive retry attempts.
|
|
22
|
+
*/
|
|
1
23
|
import { Account, AccountBridge, BridgeCacheSystem, TransactionCommon } from "@ledgerhq/types-live";
|
|
2
24
|
import { WalletSyncDataManager, WalletSyncDataManagerResolutionContext } from "../types";
|
|
3
25
|
import { z } from "zod";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;WAAmC,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC;IACE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD;IACE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD,OAAO,MAAM,CAsJd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACxC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,cAAc,CAyBhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,iBAAiB,EAC7E,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EACxD,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QACE,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,cAAc,EACpB,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,sCAAsC,GAC7F,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAM3E;AAED,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;WAAmC,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC;IACE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD;IACE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD,OAAO,MAAM,CAsJd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACxC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,cAAc,CAyBhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,iBAAiB,EAC7E,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EACxD,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QACE,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,cAAc,EACpB,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,sCAAsC,GAC7F,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAM3E;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accountNames
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing custom account names across Live instances
|
|
5
|
+
* in the WalletSync system. It manages the mapping between account IDs and their
|
|
6
|
+
* user-defined names, ensuring that when a user renames an account on one Live instance,
|
|
7
|
+
* that name change is propagated to all other synchronized Live instances.
|
|
8
|
+
*
|
|
9
|
+
* Account names are off-chain data (not stored on the blockchain), and therefore need to
|
|
10
|
+
* be synchronized through the WalletSync system to ensure consistency across all Live instances.
|
|
11
|
+
*
|
|
12
|
+
* Key responsibilities:
|
|
13
|
+
* - Tracks local account name changes and prepares them for synchronization
|
|
14
|
+
* - Resolves incoming account name updates from other Live instances
|
|
15
|
+
* - Handles conflict resolution by accepting incoming state changes (last-write-wins strategy)
|
|
16
|
+
* - Maintains consistency between local state (Map<string, string>) and distant state (Record<string, string>)
|
|
17
|
+
*
|
|
18
|
+
* The module uses a replace-all strategy for updates, meaning any incoming state change
|
|
19
|
+
* will replace the entire account names mapping. While this simplifies conflict resolution,
|
|
20
|
+
* it may result in lost changes if multiple Live instances modify names simultaneously.
|
|
21
|
+
*/
|
|
1
22
|
import { WalletSyncDataManager } from "../types";
|
|
2
23
|
import { z } from "zod";
|
|
3
24
|
declare const schema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnB;IACE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,EACD,OAAO,MAAM,CAqCd,CAAC;AAWF,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"accountNames.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnB;IACE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,EACD,OAAO,MAAM,CAqCd,CAAC;AAWF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEpC,MAAM,OAAO,GAMT;IACF,MAAM;IAEN,kBAAkB,CAAC,SAAS,EAAE,WAAW;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,UAAU;YACV,SAAS;SACV,CAAC;IACJ,CAAC;IAED,oIAAoI;IACpI,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa;QACxE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,iDAAiD;QACjF,CAAC;QAED,MAAM,UAAU,GACd,WAAW,KAAK,aAAa,IAAI,yCAAyC;YAC1E,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,CAAyB,EAAE,CAAyB;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accounts
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing account data across Live instances in the
|
|
5
|
+
* WalletSync system. It manages the lifecycle of accounts (adding, removing, and
|
|
6
|
+
* maintaining account information) to ensure that all synchronized Live instances have
|
|
7
|
+
* access to the same set of accounts.
|
|
8
|
+
*
|
|
9
|
+
* Key responsibilities:
|
|
10
|
+
* - Tracks locally added/removed accounts and prepares them for synchronization
|
|
11
|
+
* - Resolves incoming account updates from other Live instances by converting account
|
|
12
|
+
* descriptors into full Account objects through bridge synchronization
|
|
13
|
+
* - Manages non-imported accounts with exponential backoff retry logic for accounts
|
|
14
|
+
* that failed to import (e.g., due to network issues, invalid data, or missing currencies)
|
|
15
|
+
* - Handles account ID migrations and deduplication when accounts resolve to the same ID
|
|
16
|
+
* - Performs full account synchronization to validate account data and populate
|
|
17
|
+
* all necessary fields before adding accounts to the local wallet
|
|
18
|
+
*
|
|
19
|
+
* The module maintains a list of accounts and tracks failed import attempts,
|
|
20
|
+
* allowing the system to retry importing accounts that previously failed with
|
|
21
|
+
* an exponential backoff strategy to avoid excessive retry attempts.
|
|
22
|
+
*/
|
|
1
23
|
import { Account, AccountBridge, BridgeCacheSystem, TransactionCommon } from "@ledgerhq/types-live";
|
|
2
24
|
import { WalletSyncDataManager, WalletSyncDataManagerResolutionContext } from "../types";
|
|
3
25
|
import { z } from "zod";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;WAAmC,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC;IACE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD;IACE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD,OAAO,MAAM,CAsJd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACxC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,cAAc,CAyBhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,iBAAiB,EAC7E,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EACxD,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QACE,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,cAAc,EACpB,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,sCAAsC,GAC7F,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAM3E;AAED,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEjE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;WAAmC,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAClC;IACE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD;IACE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD,EACD,OAAO,MAAM,CAsJd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACxC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,cAAc,CAyBhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,iBAAiB,EAC7E,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EACxD,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QACE,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,cAAc,EACpB,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,sCAAsC,GAC7F,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAM3E;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accounts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/live-wallet",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.1-nightly.20251126160702",
|
|
4
4
|
"description": "Ledger Live wallet",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger"
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"pako": "^2.0.4",
|
|
29
29
|
"rxjs": "7",
|
|
30
30
|
"zod": "^3.22.4",
|
|
31
|
-
"@ledgerhq/coin-framework": "6.
|
|
32
|
-
"@ledgerhq/cryptoassets": "13.
|
|
33
|
-
"@ledgerhq/live-env": "2.
|
|
34
|
-
"@ledgerhq/live-network": "2.1.1",
|
|
31
|
+
"@ledgerhq/coin-framework": "6.10.0-nightly.20251126160702",
|
|
32
|
+
"@ledgerhq/cryptoassets": "13.34.0-nightly.20251126160702",
|
|
33
|
+
"@ledgerhq/live-env": "2.22.0-nightly.20251126160702",
|
|
35
34
|
"@ledgerhq/live-promise": "0.1.1",
|
|
36
35
|
"@ledgerhq/logs": "6.13.0",
|
|
37
|
-
"@ledgerhq/ledger-key-ring-protocol": "0.
|
|
36
|
+
"@ledgerhq/ledger-key-ring-protocol": "0.8.0-nightly.20251126160702",
|
|
37
|
+
"@ledgerhq/live-network": "2.1.2-nightly.20251126160702",
|
|
38
38
|
"@ledgerhq/types-cryptoassets": "7.30.0",
|
|
39
|
-
"@ledgerhq/types-live": "6.
|
|
39
|
+
"@ledgerhq/types-live": "6.90.0-nightly.20251126160702"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/jest": "^29.5.10",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Account, AccountRaw } from "@ledgerhq/types-live";
|
|
2
2
|
import { fromAccountRaw } from "@ledgerhq/coin-framework/serialization/account";
|
|
3
|
-
import {
|
|
4
|
-
import type { CryptoAssetsStore } from "@ledgerhq/types-live";
|
|
3
|
+
import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
|
|
5
4
|
import {
|
|
6
5
|
importAccountsReduce,
|
|
7
6
|
type ImportItem,
|
|
@@ -9,13 +8,9 @@ import {
|
|
|
9
8
|
type SyncNewAccountsOutput,
|
|
10
9
|
} from "./importAccounts";
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
findTokenById: async (_: string) => undefined,
|
|
16
|
-
findTokenByAddressInCurrency: async (_: string, __: string) => undefined,
|
|
17
|
-
getTokensSyncHash: () => Promise.resolve("0"),
|
|
18
|
-
} as unknown as CryptoAssetsStore);
|
|
11
|
+
setupMockCryptoAssetsStore({
|
|
12
|
+
getTokensSyncHash: async () => "0",
|
|
13
|
+
});
|
|
19
14
|
|
|
20
15
|
// Mock account factory using fromAccountRaw for proper Account structure
|
|
21
16
|
const createMockAccount = async (
|
package/src/ordering.test.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
// TODO rewrite the test
|
|
2
2
|
|
|
3
3
|
import type { AccountRaw } from "@ledgerhq/types-live";
|
|
4
|
-
import type { TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
5
4
|
import { sortAccountsComparatorFromOrder } from "./ordering";
|
|
6
5
|
import { setSupportedCurrencies } from "@ledgerhq/coin-framework/currencies/index";
|
|
7
6
|
import { fromAccountRaw } from "@ledgerhq/coin-framework/serialization/account";
|
|
8
7
|
import { WalletState, accountRawToAccountUserData } from "./store";
|
|
9
|
-
import {
|
|
10
|
-
import type { CryptoAssetsStore } from "@ledgerhq/types-live";
|
|
8
|
+
import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
|
|
11
9
|
|
|
12
10
|
setSupportedCurrencies(["ethereum"]);
|
|
13
11
|
|
|
@@ -88,12 +86,10 @@ const raws: AccountRaw[] = [
|
|
|
88
86
|
balance: "4000000000000000000",
|
|
89
87
|
},
|
|
90
88
|
];
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
getTokensSyncHash: () => Promise.resolve("0"),
|
|
96
|
-
} as CryptoAssetsStore);
|
|
89
|
+
|
|
90
|
+
setupMockCryptoAssetsStore({
|
|
91
|
+
getTokensSyncHash: async () => "0",
|
|
92
|
+
});
|
|
97
93
|
|
|
98
94
|
let accounts: Awaited<ReturnType<typeof fromAccountRaw>>[];
|
|
99
95
|
const walletState: WalletState = {
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accountNames
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing custom account names across Live instances
|
|
5
|
+
* in the WalletSync system. It manages the mapping between account IDs and their
|
|
6
|
+
* user-defined names, ensuring that when a user renames an account on one Live instance,
|
|
7
|
+
* that name change is propagated to all other synchronized Live instances.
|
|
8
|
+
*
|
|
9
|
+
* Account names are off-chain data (not stored on the blockchain), and therefore need to
|
|
10
|
+
* be synchronized through the WalletSync system to ensure consistency across all Live instances.
|
|
11
|
+
*
|
|
12
|
+
* Key responsibilities:
|
|
13
|
+
* - Tracks local account name changes and prepares them for synchronization
|
|
14
|
+
* - Resolves incoming account name updates from other Live instances
|
|
15
|
+
* - Handles conflict resolution by accepting incoming state changes (last-write-wins strategy)
|
|
16
|
+
* - Maintains consistency between local state (Map<string, string>) and distant state (Record<string, string>)
|
|
17
|
+
*
|
|
18
|
+
* The module uses a replace-all strategy for updates, meaning any incoming state change
|
|
19
|
+
* will replace the entire account names mapping. While this simplifies conflict resolution,
|
|
20
|
+
* it may result in lost changes if multiple Live instances modify names simultaneously.
|
|
21
|
+
*/
|
|
1
22
|
import { WalletSyncDataManager } from "../types";
|
|
2
23
|
import { z } from "zod";
|
|
3
24
|
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accounts
|
|
3
|
+
*
|
|
4
|
+
* This module is responsible for synchronizing account data across Live instances in the
|
|
5
|
+
* WalletSync system. It manages the lifecycle of accounts (adding, removing, and
|
|
6
|
+
* maintaining account information) to ensure that all synchronized Live instances have
|
|
7
|
+
* access to the same set of accounts.
|
|
8
|
+
*
|
|
9
|
+
* Key responsibilities:
|
|
10
|
+
* - Tracks locally added/removed accounts and prepares them for synchronization
|
|
11
|
+
* - Resolves incoming account updates from other Live instances by converting account
|
|
12
|
+
* descriptors into full Account objects through bridge synchronization
|
|
13
|
+
* - Manages non-imported accounts with exponential backoff retry logic for accounts
|
|
14
|
+
* that failed to import (e.g., due to network issues, invalid data, or missing currencies)
|
|
15
|
+
* - Handles account ID migrations and deduplication when accounts resolve to the same ID
|
|
16
|
+
* - Performs full account synchronization to validate account data and populate
|
|
17
|
+
* all necessary fields before adding accounts to the local wallet
|
|
18
|
+
*
|
|
19
|
+
* The module maintains a list of accounts and tracks failed import attempts,
|
|
20
|
+
* allowing the system to retry importing accounts that previously failed with
|
|
21
|
+
* an exponential backoff strategy to avoid excessive retry attempts.
|
|
22
|
+
*/
|
|
1
23
|
import { Account, AccountBridge, BridgeCacheSystem, TransactionCommon } from "@ledgerhq/types-live";
|
|
2
24
|
import { WalletSyncDataManager, WalletSyncDataManagerResolutionContext } from "../types";
|
|
3
25
|
import { z } from "zod";
|