@ledgerhq/live-wallet 0.17.0-nightly.20251219024040 → 0.17.0-nightly.20251223024125
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 +11 -9
- package/lib/store.d.ts +1 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/walletsync/__mocks__/modules/recentAddresses.d.ts.map +1 -1
- package/lib/walletsync/__mocks__/modules/recentAddresses.js +5 -2
- package/lib/walletsync/__mocks__/modules/recentAddresses.js.map +1 -1
- package/lib/walletsync/modules/recentAddresses.d.ts +4 -0
- package/lib/walletsync/modules/recentAddresses.d.ts.map +1 -1
- package/lib/walletsync/modules/recentAddresses.js +15 -5
- package/lib/walletsync/modules/recentAddresses.js.map +1 -1
- package/lib/walletsync/root.d.ts +6 -0
- package/lib/walletsync/root.d.ts.map +1 -1
- package/lib-es/store.d.ts +1 -0
- package/lib-es/store.d.ts.map +1 -1
- package/lib-es/walletsync/__mocks__/modules/recentAddresses.d.ts.map +1 -1
- package/lib-es/walletsync/__mocks__/modules/recentAddresses.js +5 -2
- package/lib-es/walletsync/__mocks__/modules/recentAddresses.js.map +1 -1
- package/lib-es/walletsync/modules/recentAddresses.d.ts +4 -0
- package/lib-es/walletsync/modules/recentAddresses.d.ts.map +1 -1
- package/lib-es/walletsync/modules/recentAddresses.js +15 -5
- package/lib-es/walletsync/modules/recentAddresses.js.map +1 -1
- package/lib-es/walletsync/root.d.ts +6 -0
- package/lib-es/walletsync/root.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/walletsync/__mocks__/modules/recentAddresses.ts +7 -2
- package/src/walletsync/__tests__/modules/recentAddresses.test.ts +226 -134
- package/src/walletsync/modules/recentAddresses.ts +15 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @ledgerhq/live-wallet
|
|
2
2
|
|
|
3
|
-
## 0.17.0-nightly.
|
|
3
|
+
## 0.17.0-nightly.20251223024125
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -10,18 +10,20 @@
|
|
|
10
10
|
|
|
11
11
|
- [#13155](https://github.com/LedgerHQ/ledger-live/pull/13155) [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe) Thanks [@gre-ledger](https://github.com/gre-ledger)! - rxjs@7.8.2 everywhere
|
|
12
12
|
|
|
13
|
+
- [#13400](https://github.com/LedgerHQ/ledger-live/pull/13400) [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07) Thanks [@dilaouid](https://github.com/dilaouid)! - feat: save timestamp in the recentlAddresses store
|
|
14
|
+
|
|
13
15
|
- [#13156](https://github.com/LedgerHQ/ledger-live/pull/13156) [`fb3631e`](https://github.com/LedgerHQ/ledger-live/commit/fb3631ef74e9f10fea15fd7daf812306f6d2bc07) Thanks [@gre-ledger](https://github.com/gre-ledger)! - isomorphic-ws@5.0.0 in catalog
|
|
14
16
|
|
|
15
17
|
### Patch Changes
|
|
16
18
|
|
|
17
|
-
- Updated dependencies [[`480a08a`](https://github.com/LedgerHQ/ledger-live/commit/480a08ae190119829910b46ecc6d2a9fb11bb7c2), [`19a54fd`](https://github.com/LedgerHQ/ledger-live/commit/19a54fd89a2d3c7481aebc28817870875f9d44dc), [`e63194f`](https://github.com/LedgerHQ/ledger-live/commit/e63194f7dbd5ff2b0135c26aac3842a2be676b0a), [`bc76d51`](https://github.com/LedgerHQ/ledger-live/commit/bc76d5154d35f8340b6b282c4909cd26920b8d40), [`7ae71b6`](https://github.com/LedgerHQ/ledger-live/commit/7ae71b64161424b398b63f77da5127085143fcdc), [`5fa83e4`](https://github.com/LedgerHQ/ledger-live/commit/5fa83e49c5fb103da7ecf0777b7e75bb35d5ed61), [`c5da2ce`](https://github.com/LedgerHQ/ledger-live/commit/c5da2cef7cded2b53c1af9aa3174cd27e5c92e0a), [`450f518`](https://github.com/LedgerHQ/ledger-live/commit/450f518d4cedb828c5fe1e7ccffaabd483f53226), [`adbabc7`](https://github.com/LedgerHQ/ledger-live/commit/adbabc7d3b7ed8915503120a027d19304adc1fc8), [`30be235`](https://github.com/LedgerHQ/ledger-live/commit/30be2354822b3497c69322294ff1dab43375be50), [`bdacedf`](https://github.com/LedgerHQ/ledger-live/commit/bdacedfe32bea8ffce96ab675a44c0d7cf395143), [`fba1e31`](https://github.com/LedgerHQ/ledger-live/commit/fba1e31386e589a93adb19bc4f6eae55129e19ea), [`0924eed`](https://github.com/LedgerHQ/ledger-live/commit/0924eed6a633793999e8657076140523e30ae40b), [`5e8d6be`](https://github.com/LedgerHQ/ledger-live/commit/5e8d6be609dd37c48d747890e56189e0716d5273), [`768718d`](https://github.com/LedgerHQ/ledger-live/commit/768718df029bc8799b88c0299925dc56302b0c53), [`a5ad7d4`](https://github.com/LedgerHQ/ledger-live/commit/a5ad7d4578c06db3e40f260451b644c27e20cb62), [`3e70677`](https://github.com/LedgerHQ/ledger-live/commit/3e706774f8c4e9b768ab18b67abc3471cf61b6b6), [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe), [`e44d216`](https://github.com/LedgerHQ/ledger-live/commit/e44d216d516df87e13f033ed64fedc1ce96380f4), [`d4bad44`](https://github.com/LedgerHQ/ledger-live/commit/d4bad4433c3fb083d95820d2927a9e8beeaf244f), [`8d8e1b7`](https://github.com/LedgerHQ/ledger-live/commit/8d8e1b7bb26305af326ea21710248223d1e8653b), [`07de7a8`](https://github.com/LedgerHQ/ledger-live/commit/07de7a87415ae4d1126e751d6a4d521ced3065e3), [`d37fa4b`](https://github.com/LedgerHQ/ledger-live/commit/d37fa4baf4534161bffe5033ce44fc7780c79d89), [`5e0556a`](https://github.com/LedgerHQ/ledger-live/commit/5e0556a3bd0ea60277462eed10c997b17b09d299), [`bce6610`](https://github.com/LedgerHQ/ledger-live/commit/bce6610ca8554a85f8f17b6014e921fdecd3fa4f), [`ddd40b4`](https://github.com/LedgerHQ/ledger-live/commit/ddd40b4cae93ecf3139fd33dc0f4dd1c8366d628), [`2a60165`](https://github.com/LedgerHQ/ledger-live/commit/2a601656b7a23a424a29f006ec53090648fdae4f), [`34248c3`](https://github.com/LedgerHQ/ledger-live/commit/34248c306479dafe6335b2c176daf25064c85b3b), [`2d9f320`](https://github.com/LedgerHQ/ledger-live/commit/2d9f32087eea12ae9d5ea2347b277b8bf4e60f55), [`c56ab86`](https://github.com/LedgerHQ/ledger-live/commit/c56ab86ab65597caf87a09b7596faa54f3104bd4), [`fb3631e`](https://github.com/LedgerHQ/ledger-live/commit/fb3631ef74e9f10fea15fd7daf812306f6d2bc07)]:
|
|
18
|
-
- @ledgerhq/coin-framework@6.11.0-nightly.
|
|
19
|
-
- @ledgerhq/types-live@6.91.0-nightly.
|
|
20
|
-
- @ledgerhq/cryptoassets@13.35.0-nightly.
|
|
21
|
-
- @ledgerhq/ledger-key-ring-protocol@0.9.0-nightly.
|
|
22
|
-
- @ledgerhq/live-env@2.23.0-nightly.
|
|
23
|
-
- @ledgerhq/types-cryptoassets@7.31.0-nightly.
|
|
24
|
-
- @ledgerhq/live-network@2.1.4-nightly.
|
|
19
|
+
- Updated dependencies [[`480a08a`](https://github.com/LedgerHQ/ledger-live/commit/480a08ae190119829910b46ecc6d2a9fb11bb7c2), [`19a54fd`](https://github.com/LedgerHQ/ledger-live/commit/19a54fd89a2d3c7481aebc28817870875f9d44dc), [`e63194f`](https://github.com/LedgerHQ/ledger-live/commit/e63194f7dbd5ff2b0135c26aac3842a2be676b0a), [`bc76d51`](https://github.com/LedgerHQ/ledger-live/commit/bc76d5154d35f8340b6b282c4909cd26920b8d40), [`7ae71b6`](https://github.com/LedgerHQ/ledger-live/commit/7ae71b64161424b398b63f77da5127085143fcdc), [`5fa83e4`](https://github.com/LedgerHQ/ledger-live/commit/5fa83e49c5fb103da7ecf0777b7e75bb35d5ed61), [`c5da2ce`](https://github.com/LedgerHQ/ledger-live/commit/c5da2cef7cded2b53c1af9aa3174cd27e5c92e0a), [`450f518`](https://github.com/LedgerHQ/ledger-live/commit/450f518d4cedb828c5fe1e7ccffaabd483f53226), [`adbabc7`](https://github.com/LedgerHQ/ledger-live/commit/adbabc7d3b7ed8915503120a027d19304adc1fc8), [`8cb7d40`](https://github.com/LedgerHQ/ledger-live/commit/8cb7d40e0a55e47f42adc5cd522740cab1fd4de4), [`30be235`](https://github.com/LedgerHQ/ledger-live/commit/30be2354822b3497c69322294ff1dab43375be50), [`bdacedf`](https://github.com/LedgerHQ/ledger-live/commit/bdacedfe32bea8ffce96ab675a44c0d7cf395143), [`fba1e31`](https://github.com/LedgerHQ/ledger-live/commit/fba1e31386e589a93adb19bc4f6eae55129e19ea), [`0924eed`](https://github.com/LedgerHQ/ledger-live/commit/0924eed6a633793999e8657076140523e30ae40b), [`5e8d6be`](https://github.com/LedgerHQ/ledger-live/commit/5e8d6be609dd37c48d747890e56189e0716d5273), [`768718d`](https://github.com/LedgerHQ/ledger-live/commit/768718df029bc8799b88c0299925dc56302b0c53), [`a5ad7d4`](https://github.com/LedgerHQ/ledger-live/commit/a5ad7d4578c06db3e40f260451b644c27e20cb62), [`3e70677`](https://github.com/LedgerHQ/ledger-live/commit/3e706774f8c4e9b768ab18b67abc3471cf61b6b6), [`81a193d`](https://github.com/LedgerHQ/ledger-live/commit/81a193da5abf0d5f3a129bd78895dd450ce29ca1), [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe), [`e44d216`](https://github.com/LedgerHQ/ledger-live/commit/e44d216d516df87e13f033ed64fedc1ce96380f4), [`d4bad44`](https://github.com/LedgerHQ/ledger-live/commit/d4bad4433c3fb083d95820d2927a9e8beeaf244f), [`8d8e1b7`](https://github.com/LedgerHQ/ledger-live/commit/8d8e1b7bb26305af326ea21710248223d1e8653b), [`07de7a8`](https://github.com/LedgerHQ/ledger-live/commit/07de7a87415ae4d1126e751d6a4d521ced3065e3), [`d37fa4b`](https://github.com/LedgerHQ/ledger-live/commit/d37fa4baf4534161bffe5033ce44fc7780c79d89), [`5e0556a`](https://github.com/LedgerHQ/ledger-live/commit/5e0556a3bd0ea60277462eed10c997b17b09d299), [`bce6610`](https://github.com/LedgerHQ/ledger-live/commit/bce6610ca8554a85f8f17b6014e921fdecd3fa4f), [`ddd40b4`](https://github.com/LedgerHQ/ledger-live/commit/ddd40b4cae93ecf3139fd33dc0f4dd1c8366d628), [`2a60165`](https://github.com/LedgerHQ/ledger-live/commit/2a601656b7a23a424a29f006ec53090648fdae4f), [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07), [`34248c3`](https://github.com/LedgerHQ/ledger-live/commit/34248c306479dafe6335b2c176daf25064c85b3b), [`2d9f320`](https://github.com/LedgerHQ/ledger-live/commit/2d9f32087eea12ae9d5ea2347b277b8bf4e60f55), [`c56ab86`](https://github.com/LedgerHQ/ledger-live/commit/c56ab86ab65597caf87a09b7596faa54f3104bd4), [`fb3631e`](https://github.com/LedgerHQ/ledger-live/commit/fb3631ef74e9f10fea15fd7daf812306f6d2bc07)]:
|
|
20
|
+
- @ledgerhq/coin-framework@6.11.0-nightly.20251223024125
|
|
21
|
+
- @ledgerhq/types-live@6.91.0-nightly.20251223024125
|
|
22
|
+
- @ledgerhq/cryptoassets@13.35.0-nightly.20251223024125
|
|
23
|
+
- @ledgerhq/ledger-key-ring-protocol@0.9.0-nightly.20251223024125
|
|
24
|
+
- @ledgerhq/live-env@2.23.0-nightly.20251223024125
|
|
25
|
+
- @ledgerhq/types-cryptoassets@7.31.0-nightly.20251223024125
|
|
26
|
+
- @ledgerhq/live-network@2.1.4-nightly.20251223024125
|
|
25
27
|
|
|
26
28
|
## 0.16.2
|
|
27
29
|
|
package/lib/store.d.ts
CHANGED
package/lib/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAExB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGlC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;IAGlD,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;IAClD,YAAY,EAAE;QACZ,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,eAAe,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAM1B,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;CACpD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,gBAAgB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAC5E,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,sBAAsB,EAAE;QAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC9D,mBAAmB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7D,YAAY,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,kBAAkB,EAAE;QAClB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjD,yBAAyB,EAAE,sBAAsB,EAAE,CAAC;IACpD,uBAAuB,EAAE,oBAAoB,CAAC;CAC/C,CAAC;AAEF,KAAK,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,IAAI;KAC9C,GAAG,IAAI,MAAM,KAAK,GAAG,CACpB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC,UAAU,SAAS,IAAI,GAAG,GAAG,GAAG,MAAM,KAAK,CAAC,CAAA;KAAE,KAClE,KAAK;CACX,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,UAAU,GAAG,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAEpG,eAAO,MAAM,QAAQ,EAAE,cAqEtB,CAAC;AAIF,eAAO,MAAM,cAAc,cAAe,MAAM,QAAQ,MAAM;;;;;;CAG5D,CAAC;AAEH,eAAO,MAAM,eAAe,iBAAkB,IAAI,MAAM,EAAE,MAAM,CAAC;;;;;CAG/D,CAAC;AAEH,eAAO,MAAM,iBAAiB,cAAe,MAAM,WAAW,OAAO;;;;;;CAGnE,CAAC;AAEH,eAAO,MAAM,YAAY,aAAc,OAAO,EAAE,oBAAoB,eAAe,EAAE;;;;;;CAGnF,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAAa,QAAQ,mBAAmB,CAAC;;;;;;;;0BAlJrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;+BAClB,MAAM,EAAE;;;;CA4J7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,SAAU,YAAY,GAAG,IAAI,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;CAGzE,CAAC;AAEH,eAAO,MAAM,sBAAsB,YAAa,sBAAsB,EAAE;;;CAGtE,CAAC;AAEH,eAAO,MAAM,qBAAqB,YAAa,oBAAoB;;;CAGjE,CAAC;AAIH,eAAO,MAAM,mBAAmB,UACvB,WAAW;eACU,MAAM;MACjC,MAAM,GAAG,SAA8C,CAAC;AAE3D,eAAO,MAAM,8BAA8B,UAAW,WAAW,WAAW,WAAW,KAAG,MAClB,CAAC;AAEzE,eAAO,MAAM,wBAAwB,UAC5B,WAAW;eACU,MAAM;MACjC,OAAiD,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,UACjC,WAAW;aACM,OAAO;MAC9B,eAaF,CAAC;AAEF,eAAO,MAAM,2BAA2B,QAAS,UAAU,KAAG,eAkB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,WAAW,KAAG,mBAQrD,CAAC;AAEH,eAAO,MAAM,6BAA6B,MAAO,WAAW,KAAK,WAAW,KAAG,OAQ9E,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAW,WAAW,KAAG,OAAgC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAG5B,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,UAAU,IAAK,CAAC;AAE7B,eAAO,MAAM,QAAQ,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAG5B,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,UAAU,IAAK,CAAC;AAE7B,eAAO,MAAM,QAAQ,UAAW,MAAM,yBAcrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,eAAgB,oBAAoB,gCAC/C,CAAC;AAE7B,eAAO,MAAM,0BAA0B,iBAAkB,2BAA2B,yBAC7D,CAAC;AAExB,eAAO,MAAM,iBAAiB,UACrB,oBAAoB,cACf,oBAAoB,YAgBjC,CAAC"}
|
|
@@ -8,7 +8,10 @@ const genState = (index) => {
|
|
|
8
8
|
for (let i = 0; i < index + 1; i++) {
|
|
9
9
|
recentAddressesState["currency-" + i.toString()] = [];
|
|
10
10
|
for (let j = 0; j < 12; j++) {
|
|
11
|
-
recentAddressesState["currency-" + i.toString()].push(
|
|
11
|
+
recentAddressesState["currency-" + i.toString()].push({
|
|
12
|
+
address: `some random address at index ${j}`,
|
|
13
|
+
lastUsed: Date.now(),
|
|
14
|
+
});
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
return recentAddressesState;
|
|
@@ -25,7 +28,7 @@ const similarLocalState = (state, otherState) => {
|
|
|
25
28
|
otherStateKeys.every(key => {
|
|
26
29
|
return (state[key] &&
|
|
27
30
|
state[key].length === otherState[key].length &&
|
|
28
|
-
otherState[key].every(
|
|
31
|
+
otherState[key].every(otherAddr => state[key].some(stateAddr => stateAddr.address === otherAddr.address)));
|
|
29
32
|
}));
|
|
30
33
|
};
|
|
31
34
|
exports.similarLocalState = similarLocalState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":";;;AACA,mEAIuC;AAE1B,QAAA,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,MAAM,oBAAoB,GAAyB,EAAE,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":";;;AACA,mEAIuC;AAE1B,QAAA,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,MAAM,oBAAoB,GAAyB,EAAE,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;gBACpD,OAAO,EAAE,gCAAgC,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAdW,QAAA,QAAQ,YAcnB;AAEK,MAAM,0BAA0B,GAAG,CAAC,UAAgC,EAAE,EAAE,CAC7E,IAAA,gCAAc,EAAC,UAAU,CAAC,CAAC;AADhB,QAAA,0BAA0B,8BACV;AAEtB,MAAM,0BAA0B,GAAG,CAAC,YAAyC,EAAE,EAAE,CACtF,IAAA,yBAAO,EAAC,YAAY,CAAC,CAAC;AADX,QAAA,0BAA0B,8BACf;AAEjB,MAAM,iBAAiB,GAAG,CAC/B,KAA2B,EAC3B,UAAgC,EAChC,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CACL,KAAK,CAAC,GAAG,CAAC;gBACV,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;gBAC5C,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAChC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,CACtE,CACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,iBAAiB,qBAkB5B"}
|
|
@@ -29,18 +29,22 @@ import { RecentAddressesState } from "@ledgerhq/types-live";
|
|
|
29
29
|
export type DistantRecentAddressesState = Record<string, {
|
|
30
30
|
address: string;
|
|
31
31
|
index: number;
|
|
32
|
+
lastUsed?: number;
|
|
32
33
|
}[]>;
|
|
33
34
|
export declare function toDistantState(addressesByCurrency: RecentAddressesState): DistantRecentAddressesState;
|
|
34
35
|
export declare function toState(addressesByCurrency: DistantRecentAddressesState): RecentAddressesState;
|
|
35
36
|
declare const schema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
36
37
|
address: z.ZodString;
|
|
37
38
|
index: z.ZodNumber;
|
|
39
|
+
lastUsed: z.ZodOptional<z.ZodNumber>;
|
|
38
40
|
}, "strip", z.ZodTypeAny, {
|
|
39
41
|
index: number;
|
|
40
42
|
address: string;
|
|
43
|
+
lastUsed?: number | undefined;
|
|
41
44
|
}, {
|
|
42
45
|
index: number;
|
|
43
46
|
address: string;
|
|
47
|
+
lastUsed?: number | undefined;
|
|
44
48
|
}>, "many">>;
|
|
45
49
|
declare const manager: WalletSyncDataManager<RecentAddressesState, RecentAddressesState, typeof schema>;
|
|
46
50
|
export default manager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EAAE,CACJ,CAAC;AAEF,wBAAgB,cAAc,CAC5B,mBAAmB,EAAE,oBAAoB,GACxC,2BAA2B,CAW7B;AAED,wBAAgB,OAAO,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,oBAAoB,CAY9F;AA6BD,QAAA,MAAM,MAAM;;;;;;;;;;;;YAAuD,CAAC;AAEpE,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,OAAO,MAAM,CAgC7F,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -26,7 +26,11 @@ const zod_1 = require("zod");
|
|
|
26
26
|
function toDistantState(addressesByCurrency) {
|
|
27
27
|
const state = {};
|
|
28
28
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
29
|
-
state[key] = addressesByCurrency[key].map((
|
|
29
|
+
state[key] = addressesByCurrency[key].map((entry, index) => ({
|
|
30
|
+
address: entry.address,
|
|
31
|
+
index,
|
|
32
|
+
lastUsed: entry.lastUsed,
|
|
33
|
+
}));
|
|
30
34
|
});
|
|
31
35
|
return state;
|
|
32
36
|
}
|
|
@@ -36,7 +40,10 @@ function toState(addressesByCurrency) {
|
|
|
36
40
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
37
41
|
state[key] = addressesByCurrency[key]
|
|
38
42
|
.sort((current, other) => current.index - other.index)
|
|
39
|
-
.map(data =>
|
|
43
|
+
.map(data => ({
|
|
44
|
+
address: data.address,
|
|
45
|
+
lastUsed: data.lastUsed ?? Date.now(),
|
|
46
|
+
}));
|
|
40
47
|
});
|
|
41
48
|
return state;
|
|
42
49
|
}
|
|
@@ -48,14 +55,17 @@ function sameDistantState(localData, distantState) {
|
|
|
48
55
|
distantStateKeys.every(key => {
|
|
49
56
|
return (localData[key] &&
|
|
50
57
|
localData[key].length === distantState[key].length &&
|
|
51
|
-
!distantState[key].some(data =>
|
|
52
|
-
data.index >= localData[key].length
|
|
53
|
-
|
|
58
|
+
!distantState[key].some(data => {
|
|
59
|
+
if (data.index < 0 || data.index >= localData[key].length)
|
|
60
|
+
return true;
|
|
61
|
+
return localData[key][data.index].address !== data.address;
|
|
62
|
+
}));
|
|
54
63
|
}));
|
|
55
64
|
}
|
|
56
65
|
const recentAddressesSchema = zod_1.z.object({
|
|
57
66
|
address: zod_1.z.string(),
|
|
58
67
|
index: zod_1.z.number(),
|
|
68
|
+
lastUsed: zod_1.z.number().optional(),
|
|
59
69
|
});
|
|
60
70
|
const schema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(recentAddressesSchema));
|
|
61
71
|
const manager = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,6BAAwB;
|
|
1
|
+
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"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"}
|
package/lib/walletsync/root.d.ts
CHANGED
|
@@ -49,12 +49,15 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
49
49
|
recentAddresses: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
50
50
|
address: z.ZodString;
|
|
51
51
|
index: z.ZodNumber;
|
|
52
|
+
lastUsed: z.ZodOptional<z.ZodNumber>;
|
|
52
53
|
}, "strip", z.ZodTypeAny, {
|
|
53
54
|
index: number;
|
|
54
55
|
address: string;
|
|
56
|
+
lastUsed?: number | undefined;
|
|
55
57
|
}, {
|
|
56
58
|
index: number;
|
|
57
59
|
address: string;
|
|
60
|
+
lastUsed?: number | undefined;
|
|
58
61
|
}>, "many">>>;
|
|
59
62
|
}, "strip", z.ZodTypeAny, {
|
|
60
63
|
accounts?: {
|
|
@@ -69,6 +72,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
69
72
|
recentAddresses?: Record<string, {
|
|
70
73
|
index: number;
|
|
71
74
|
address: string;
|
|
75
|
+
lastUsed?: number | undefined;
|
|
72
76
|
}[]> | undefined;
|
|
73
77
|
}, {
|
|
74
78
|
accounts?: {
|
|
@@ -83,6 +87,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
83
87
|
recentAddresses?: Record<string, {
|
|
84
88
|
index: number;
|
|
85
89
|
address: string;
|
|
90
|
+
lastUsed?: number | undefined;
|
|
86
91
|
}[]> | undefined;
|
|
87
92
|
}>, {
|
|
88
93
|
accounts?: {
|
|
@@ -97,6 +102,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
97
102
|
recentAddresses?: Record<string, {
|
|
98
103
|
index: number;
|
|
99
104
|
address: string;
|
|
105
|
+
lastUsed?: number | undefined;
|
|
100
106
|
}[]> | undefined;
|
|
101
107
|
}>;
|
|
102
108
|
type Root = typeof root;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/walletsync/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgB/E;;;;GAIG;AACH,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/walletsync/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgB/E;;;;GAIG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAEvC,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC;AACxB,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE3C,eAAe,IAAI,CAAC"}
|
package/lib-es/store.d.ts
CHANGED
package/lib-es/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAG5B,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,UAAU,IAAK,CAAC;AAE7B,eAAO,MAAM,QAAQ,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAG5B,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,UAAU,IAAK,CAAC;AAE7B,eAAO,MAAM,QAAQ,UAAW,MAAM,yBAcrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,eAAgB,oBAAoB,gCAC/C,CAAC;AAE7B,eAAO,MAAM,0BAA0B,iBAAkB,2BAA2B,yBAC7D,CAAC;AAExB,eAAO,MAAM,iBAAiB,UACrB,oBAAoB,cACf,oBAAoB,YAgBjC,CAAC"}
|
|
@@ -5,7 +5,10 @@ export const genState = (index) => {
|
|
|
5
5
|
for (let i = 0; i < index + 1; i++) {
|
|
6
6
|
recentAddressesState["currency-" + i.toString()] = [];
|
|
7
7
|
for (let j = 0; j < 12; j++) {
|
|
8
|
-
recentAddressesState["currency-" + i.toString()].push(
|
|
8
|
+
recentAddressesState["currency-" + i.toString()].push({
|
|
9
|
+
address: `some random address at index ${j}`,
|
|
10
|
+
lastUsed: Date.now(),
|
|
11
|
+
});
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
14
|
return recentAddressesState;
|
|
@@ -19,7 +22,7 @@ export const similarLocalState = (state, otherState) => {
|
|
|
19
22
|
otherStateKeys.every(key => {
|
|
20
23
|
return (state[key] &&
|
|
21
24
|
state[key].length === otherState[key].length &&
|
|
22
|
-
otherState[key].every(
|
|
25
|
+
otherState[key].every(otherAddr => state[key].some(stateAddr => stateAddr.address === otherAddr.address)));
|
|
23
26
|
}));
|
|
24
27
|
};
|
|
25
28
|
//# sourceMappingURL=recentAddresses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,OAAO,GACR,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,MAAM,oBAAoB,GAAyB,EAAE,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../../src/walletsync/__mocks__/modules/recentAddresses.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,OAAO,GACR,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,MAAM,oBAAoB,GAAyB,EAAE,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;gBACpD,OAAO,EAAE,gCAAgC,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAgC,EAAE,EAAE,CAC7E,cAAc,CAAC,UAAU,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,YAAyC,EAAE,EAAE,CACtF,OAAO,CAAC,YAAY,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAA2B,EAC3B,UAAgC,EAChC,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CACL,KAAK,CAAC,GAAG,CAAC;gBACV,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;gBAC5C,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAChC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,CACtE,CACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -29,18 +29,22 @@ import { RecentAddressesState } from "@ledgerhq/types-live";
|
|
|
29
29
|
export type DistantRecentAddressesState = Record<string, {
|
|
30
30
|
address: string;
|
|
31
31
|
index: number;
|
|
32
|
+
lastUsed?: number;
|
|
32
33
|
}[]>;
|
|
33
34
|
export declare function toDistantState(addressesByCurrency: RecentAddressesState): DistantRecentAddressesState;
|
|
34
35
|
export declare function toState(addressesByCurrency: DistantRecentAddressesState): RecentAddressesState;
|
|
35
36
|
declare const schema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
36
37
|
address: z.ZodString;
|
|
37
38
|
index: z.ZodNumber;
|
|
39
|
+
lastUsed: z.ZodOptional<z.ZodNumber>;
|
|
38
40
|
}, "strip", z.ZodTypeAny, {
|
|
39
41
|
index: number;
|
|
40
42
|
address: string;
|
|
43
|
+
lastUsed?: number | undefined;
|
|
41
44
|
}, {
|
|
42
45
|
index: number;
|
|
43
46
|
address: string;
|
|
47
|
+
lastUsed?: number | undefined;
|
|
44
48
|
}>, "many">>;
|
|
45
49
|
declare const manager: WalletSyncDataManager<RecentAddressesState, RecentAddressesState, typeof schema>;
|
|
46
50
|
export default manager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"recentAddresses.d.ts","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EAAE,CACJ,CAAC;AAEF,wBAAgB,cAAc,CAC5B,mBAAmB,EAAE,oBAAoB,GACxC,2BAA2B,CAW7B;AAED,wBAAgB,OAAO,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,oBAAoB,CAY9F;AA6BD,QAAA,MAAM,MAAM;;;;;;;;;;;;YAAuD,CAAC;AAEpE,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,OAAO,MAAM,CAgC7F,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -23,7 +23,11 @@ import { z } from "zod";
|
|
|
23
23
|
export function toDistantState(addressesByCurrency) {
|
|
24
24
|
const state = {};
|
|
25
25
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
26
|
-
state[key] = addressesByCurrency[key].map((
|
|
26
|
+
state[key] = addressesByCurrency[key].map((entry, index) => ({
|
|
27
|
+
address: entry.address,
|
|
28
|
+
index,
|
|
29
|
+
lastUsed: entry.lastUsed,
|
|
30
|
+
}));
|
|
27
31
|
});
|
|
28
32
|
return state;
|
|
29
33
|
}
|
|
@@ -32,7 +36,10 @@ export function toState(addressesByCurrency) {
|
|
|
32
36
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
33
37
|
state[key] = addressesByCurrency[key]
|
|
34
38
|
.sort((current, other) => current.index - other.index)
|
|
35
|
-
.map(data =>
|
|
39
|
+
.map(data => ({
|
|
40
|
+
address: data.address,
|
|
41
|
+
lastUsed: data.lastUsed ?? Date.now(),
|
|
42
|
+
}));
|
|
36
43
|
});
|
|
37
44
|
return state;
|
|
38
45
|
}
|
|
@@ -43,14 +50,17 @@ function sameDistantState(localData, distantState) {
|
|
|
43
50
|
distantStateKeys.every(key => {
|
|
44
51
|
return (localData[key] &&
|
|
45
52
|
localData[key].length === distantState[key].length &&
|
|
46
|
-
!distantState[key].some(data =>
|
|
47
|
-
data.index >= localData[key].length
|
|
48
|
-
|
|
53
|
+
!distantState[key].some(data => {
|
|
54
|
+
if (data.index < 0 || data.index >= localData[key].length)
|
|
55
|
+
return true;
|
|
56
|
+
return localData[key][data.index].address !== data.address;
|
|
57
|
+
}));
|
|
49
58
|
}));
|
|
50
59
|
}
|
|
51
60
|
const recentAddressesSchema = z.object({
|
|
52
61
|
address: z.string(),
|
|
53
62
|
index: z.number(),
|
|
63
|
+
lastUsed: z.number().optional(),
|
|
54
64
|
});
|
|
55
65
|
const schema = z.record(z.string(), z.array(recentAddressesSchema));
|
|
56
66
|
const manager = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"recentAddresses.js","sourceRoot":"","sources":["../../../src/walletsync/modules/recentAddresses.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,12 +49,15 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
49
49
|
recentAddresses: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
50
50
|
address: z.ZodString;
|
|
51
51
|
index: z.ZodNumber;
|
|
52
|
+
lastUsed: z.ZodOptional<z.ZodNumber>;
|
|
52
53
|
}, "strip", z.ZodTypeAny, {
|
|
53
54
|
index: number;
|
|
54
55
|
address: string;
|
|
56
|
+
lastUsed?: number | undefined;
|
|
55
57
|
}, {
|
|
56
58
|
index: number;
|
|
57
59
|
address: string;
|
|
60
|
+
lastUsed?: number | undefined;
|
|
58
61
|
}>, "many">>>;
|
|
59
62
|
}, "strip", z.ZodTypeAny, {
|
|
60
63
|
accounts?: {
|
|
@@ -69,6 +72,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
69
72
|
recentAddresses?: Record<string, {
|
|
70
73
|
index: number;
|
|
71
74
|
address: string;
|
|
75
|
+
lastUsed?: number | undefined;
|
|
72
76
|
}[]> | undefined;
|
|
73
77
|
}, {
|
|
74
78
|
accounts?: {
|
|
@@ -83,6 +87,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
83
87
|
recentAddresses?: Record<string, {
|
|
84
88
|
index: number;
|
|
85
89
|
address: string;
|
|
90
|
+
lastUsed?: number | undefined;
|
|
86
91
|
}[]> | undefined;
|
|
87
92
|
}>, {
|
|
88
93
|
accounts?: {
|
|
@@ -97,6 +102,7 @@ declare const root: import("./types").WalletSyncDataManager<{
|
|
|
97
102
|
recentAddresses?: Record<string, {
|
|
98
103
|
index: number;
|
|
99
104
|
address: string;
|
|
105
|
+
lastUsed?: number | undefined;
|
|
100
106
|
}[]> | undefined;
|
|
101
107
|
}>;
|
|
102
108
|
type Root = typeof root;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/walletsync/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgB/E;;;;GAIG;AACH,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/walletsync/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgB/E;;;;GAIG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAEvC,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC;AACxB,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE3C,eAAe,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/live-wallet",
|
|
3
|
-
"version": "0.17.0-nightly.
|
|
3
|
+
"version": "0.17.0-nightly.20251223024125",
|
|
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.8.2",
|
|
30
30
|
"zod": "^3.22.4",
|
|
31
|
-
"@ledgerhq/
|
|
32
|
-
"@ledgerhq/
|
|
33
|
-
"@ledgerhq/live-
|
|
31
|
+
"@ledgerhq/coin-framework": "6.11.0-nightly.20251223024125",
|
|
32
|
+
"@ledgerhq/cryptoassets": "13.35.0-nightly.20251223024125",
|
|
33
|
+
"@ledgerhq/live-env": "2.23.0-nightly.20251223024125",
|
|
34
|
+
"@ledgerhq/live-network": "2.1.4-nightly.20251223024125",
|
|
34
35
|
"@ledgerhq/live-promise": "0.1.1",
|
|
35
36
|
"@ledgerhq/logs": "6.13.0",
|
|
36
|
-
"@ledgerhq/ledger-key-ring-protocol": "0.9.0-nightly.
|
|
37
|
-
"@ledgerhq/types-cryptoassets": "7.31.0-nightly.
|
|
38
|
-
"@ledgerhq/types-live": "6.91.0-nightly.
|
|
39
|
-
"@ledgerhq/coin-framework": "6.11.0-nightly.20251219024040"
|
|
37
|
+
"@ledgerhq/ledger-key-ring-protocol": "0.9.0-nightly.20251223024125",
|
|
38
|
+
"@ledgerhq/types-cryptoassets": "7.31.0-nightly.20251223024125",
|
|
39
|
+
"@ledgerhq/types-live": "6.91.0-nightly.20251223024125"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/jest": "^29.5.10",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"timemachine": "^0.3.2",
|
|
49
49
|
"ts-jest": "^29.1.1",
|
|
50
50
|
"ws": "^8.16.0",
|
|
51
|
-
"@ledgerhq/hw-transport-mocker": "^6.30.0-nightly.
|
|
51
|
+
"@ledgerhq/hw-transport-mocker": "^6.30.0-nightly.20251223024125"
|
|
52
52
|
},
|
|
53
53
|
"typesVersions": {
|
|
54
54
|
"*": {
|
|
@@ -13,7 +13,10 @@ export const genState = (index: number) => {
|
|
|
13
13
|
for (let i = 0; i < index + 1; i++) {
|
|
14
14
|
recentAddressesState["currency-" + i.toString()] = [];
|
|
15
15
|
for (let j = 0; j < 12; j++) {
|
|
16
|
-
recentAddressesState["currency-" + i.toString()].push(
|
|
16
|
+
recentAddressesState["currency-" + i.toString()].push({
|
|
17
|
+
address: `some random address at index ${j}`,
|
|
18
|
+
lastUsed: Date.now(),
|
|
19
|
+
});
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -38,7 +41,9 @@ export const similarLocalState = (
|
|
|
38
41
|
return (
|
|
39
42
|
state[key] &&
|
|
40
43
|
state[key].length === otherState[key].length &&
|
|
41
|
-
otherState[key].every(
|
|
44
|
+
otherState[key].every(otherAddr =>
|
|
45
|
+
state[key].some(stateAddr => stateAddr.address === otherAddr.address),
|
|
46
|
+
)
|
|
42
47
|
);
|
|
43
48
|
})
|
|
44
49
|
);
|
|
@@ -10,67 +10,76 @@ describe("recentAddress", () => {
|
|
|
10
10
|
{
|
|
11
11
|
localData: {} as RecentAddressesState,
|
|
12
12
|
latestState: {
|
|
13
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
13
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
14
14
|
} as DistantRecentAddressesState,
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
localData: {} as RecentAddressesState,
|
|
18
18
|
latestState: {
|
|
19
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
20
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
19
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
20
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
21
21
|
} as DistantRecentAddressesState,
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
localData: {
|
|
25
|
-
ethereum: ["some random address"],
|
|
26
|
-
},
|
|
25
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
26
|
+
} as RecentAddressesState,
|
|
27
27
|
latestState: {} as DistantRecentAddressesState,
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
localData: {
|
|
31
|
-
ethereum: [
|
|
32
|
-
|
|
31
|
+
ethereum: [
|
|
32
|
+
{ address: "some random address", lastUsed: 1 },
|
|
33
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
34
|
+
],
|
|
35
|
+
} as RecentAddressesState,
|
|
33
36
|
latestState: {
|
|
34
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
37
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
35
38
|
} as DistantRecentAddressesState,
|
|
36
39
|
},
|
|
37
40
|
{
|
|
38
41
|
localData: {
|
|
39
|
-
solana: ["some random address"],
|
|
40
|
-
},
|
|
42
|
+
solana: [{ address: "some random address", lastUsed: 1 }],
|
|
43
|
+
} as RecentAddressesState,
|
|
41
44
|
latestState: {
|
|
42
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
45
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
43
46
|
} as DistantRecentAddressesState,
|
|
44
47
|
},
|
|
45
48
|
{
|
|
46
49
|
localData: {
|
|
47
|
-
ethereum: ["some random address"],
|
|
48
|
-
solana: ["some random address on Solana"],
|
|
49
|
-
},
|
|
50
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
51
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
52
|
+
} as RecentAddressesState,
|
|
50
53
|
latestState: {
|
|
51
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
54
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
52
55
|
} as DistantRecentAddressesState,
|
|
53
56
|
},
|
|
54
57
|
{
|
|
55
58
|
localData: {
|
|
56
|
-
ethereum: ["some random address"],
|
|
57
|
-
solana: [
|
|
58
|
-
|
|
59
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
60
|
+
solana: [
|
|
61
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
62
|
+
{ address: "some random address on Solana 2", lastUsed: 2 },
|
|
63
|
+
],
|
|
64
|
+
} as RecentAddressesState,
|
|
59
65
|
latestState: {
|
|
60
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
61
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
66
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
67
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
62
68
|
} as DistantRecentAddressesState,
|
|
63
69
|
},
|
|
64
70
|
{
|
|
65
71
|
localData: {
|
|
66
|
-
ethereum: ["some random address"],
|
|
67
|
-
solana: [
|
|
68
|
-
|
|
72
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
73
|
+
solana: [
|
|
74
|
+
{ address: "some random address on Solana 2", lastUsed: 2 },
|
|
75
|
+
{ address: "some random address on Solana 3", lastUsed: 3 },
|
|
76
|
+
],
|
|
77
|
+
} as RecentAddressesState,
|
|
69
78
|
latestState: {
|
|
70
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
79
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
71
80
|
solana: [
|
|
72
|
-
{ address: "some random address on Solana", index: 0 },
|
|
73
|
-
{ address: "some random address on Solana 2", index: 1 },
|
|
81
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
82
|
+
{ address: "some random address on Solana 2", index: 1, lastUsed: 2 },
|
|
74
83
|
],
|
|
75
84
|
} as DistantRecentAddressesState,
|
|
76
85
|
},
|
|
@@ -87,7 +96,13 @@ describe("recentAddress", () => {
|
|
|
87
96
|
Object.entries(localData).forEach(([key, value]) => {
|
|
88
97
|
const nextState = result.nextState;
|
|
89
98
|
expect(nextState[key]).toEqual(
|
|
90
|
-
expect.arrayContaining(
|
|
99
|
+
expect.arrayContaining(
|
|
100
|
+
value.map((entry, index) => ({
|
|
101
|
+
address: entry.address,
|
|
102
|
+
index,
|
|
103
|
+
lastUsed: entry.lastUsed,
|
|
104
|
+
})),
|
|
105
|
+
),
|
|
91
106
|
);
|
|
92
107
|
});
|
|
93
108
|
},
|
|
@@ -99,114 +114,146 @@ describe("recentAddress", () => {
|
|
|
99
114
|
latestState: {} as DistantRecentAddressesState,
|
|
100
115
|
},
|
|
101
116
|
{
|
|
102
|
-
localData: {
|
|
117
|
+
localData: {
|
|
118
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
119
|
+
} as RecentAddressesState,
|
|
103
120
|
latestState: {
|
|
104
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
121
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
105
122
|
} as DistantRecentAddressesState,
|
|
106
123
|
},
|
|
107
124
|
{
|
|
108
125
|
localData: {
|
|
109
|
-
ethereum: [
|
|
126
|
+
ethereum: [
|
|
127
|
+
{ address: "some random address", lastUsed: 1 },
|
|
128
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
129
|
+
],
|
|
110
130
|
} as RecentAddressesState,
|
|
111
131
|
latestState: {
|
|
112
132
|
ethereum: [
|
|
113
|
-
{ address: "some random address", index: 0 },
|
|
114
|
-
{ address: "some random address 2", index: 1 },
|
|
133
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
134
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
115
135
|
],
|
|
116
136
|
} as DistantRecentAddressesState,
|
|
117
137
|
},
|
|
118
138
|
{
|
|
119
139
|
localData: {
|
|
120
|
-
ethereum: [
|
|
140
|
+
ethereum: [
|
|
141
|
+
{ address: "some random address", lastUsed: 1 },
|
|
142
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
143
|
+
],
|
|
121
144
|
} as RecentAddressesState,
|
|
122
145
|
latestState: {
|
|
123
146
|
ethereum: [
|
|
124
|
-
{ address: "some random address 2", index: 1 },
|
|
125
|
-
{ address: "some random address", index: 0 },
|
|
147
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
148
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
126
149
|
],
|
|
127
150
|
} as DistantRecentAddressesState,
|
|
128
151
|
},
|
|
129
152
|
{
|
|
130
153
|
localData: {
|
|
131
|
-
ethereum: ["some random address"],
|
|
132
|
-
solana: ["some random address on Solana"],
|
|
154
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
155
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
133
156
|
} as RecentAddressesState,
|
|
134
157
|
latestState: {
|
|
135
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
136
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
158
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
159
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
137
160
|
} as DistantRecentAddressesState,
|
|
138
161
|
},
|
|
139
162
|
{
|
|
140
163
|
localData: {
|
|
141
|
-
ethereum: [
|
|
142
|
-
|
|
164
|
+
ethereum: [
|
|
165
|
+
{ address: "some random address", lastUsed: 1 },
|
|
166
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
167
|
+
],
|
|
168
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
143
169
|
} as RecentAddressesState,
|
|
144
170
|
latestState: {
|
|
145
171
|
ethereum: [
|
|
146
|
-
{ address: "some random address", index: 0 },
|
|
147
|
-
{ address: "some random address 2", index: 1 },
|
|
172
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
173
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
148
174
|
],
|
|
149
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
175
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
150
176
|
} as DistantRecentAddressesState,
|
|
151
177
|
},
|
|
152
178
|
{
|
|
153
179
|
localData: {
|
|
154
|
-
ethereum: [
|
|
155
|
-
|
|
180
|
+
ethereum: [
|
|
181
|
+
{ address: "some random address", lastUsed: 1 },
|
|
182
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
183
|
+
],
|
|
184
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
156
185
|
} as RecentAddressesState,
|
|
157
186
|
latestState: {
|
|
158
187
|
ethereum: [
|
|
159
|
-
{ address: "some random address 2", index: 1 },
|
|
160
|
-
{ address: "some random address", index: 0 },
|
|
188
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
189
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
161
190
|
],
|
|
162
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
191
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
163
192
|
} as DistantRecentAddressesState,
|
|
164
193
|
},
|
|
165
194
|
{
|
|
166
195
|
localData: {
|
|
167
|
-
ethereum: [
|
|
168
|
-
|
|
196
|
+
ethereum: [
|
|
197
|
+
{ address: "some random address", lastUsed: 1 },
|
|
198
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
199
|
+
],
|
|
200
|
+
solana: [
|
|
201
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
202
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
203
|
+
],
|
|
169
204
|
} as RecentAddressesState,
|
|
170
205
|
latestState: {
|
|
171
206
|
ethereum: [
|
|
172
|
-
{ address: "some random address", index: 0 },
|
|
173
|
-
{ address: "some random address 2", index: 1 },
|
|
207
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
208
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
174
209
|
],
|
|
175
210
|
solana: [
|
|
176
|
-
{ address: "some random address on Solana", index: 0 },
|
|
177
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
211
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
212
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
178
213
|
],
|
|
179
214
|
} as DistantRecentAddressesState,
|
|
180
215
|
},
|
|
181
216
|
{
|
|
182
217
|
localData: {
|
|
183
|
-
ethereum: [
|
|
184
|
-
|
|
218
|
+
ethereum: [
|
|
219
|
+
{ address: "some random address", lastUsed: 1 },
|
|
220
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
221
|
+
],
|
|
222
|
+
solana: [
|
|
223
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
224
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
225
|
+
],
|
|
185
226
|
} as RecentAddressesState,
|
|
186
227
|
latestState: {
|
|
187
228
|
ethereum: [
|
|
188
|
-
{ address: "some random address", index: 0 },
|
|
189
|
-
{ address: "some random address 2", index: 1 },
|
|
229
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
230
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
190
231
|
],
|
|
191
232
|
solana: [
|
|
192
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
193
|
-
{ address: "some random address on Solana", index: 0 },
|
|
233
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
234
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
194
235
|
],
|
|
195
236
|
} as DistantRecentAddressesState,
|
|
196
237
|
},
|
|
197
238
|
{
|
|
198
239
|
localData: {
|
|
199
|
-
ethereum: [
|
|
200
|
-
|
|
240
|
+
ethereum: [
|
|
241
|
+
{ address: "some random address", lastUsed: 1 },
|
|
242
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
243
|
+
],
|
|
244
|
+
solana: [
|
|
245
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
246
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
247
|
+
],
|
|
201
248
|
} as RecentAddressesState,
|
|
202
249
|
latestState: {
|
|
203
250
|
ethereum: [
|
|
204
|
-
{ address: "some random address 2", index: 1 },
|
|
205
|
-
{ address: "some random address", index: 0 },
|
|
251
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
252
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
206
253
|
],
|
|
207
254
|
solana: [
|
|
208
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
209
|
-
{ address: "some random address on Solana", index: 0 },
|
|
255
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
256
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
210
257
|
],
|
|
211
258
|
} as DistantRecentAddressesState,
|
|
212
259
|
},
|
|
@@ -237,12 +284,16 @@ describe("recentAddress", () => {
|
|
|
237
284
|
|
|
238
285
|
it.each([
|
|
239
286
|
[{} as DistantRecentAddressesState],
|
|
240
|
-
[
|
|
287
|
+
[
|
|
288
|
+
{
|
|
289
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
290
|
+
} as DistantRecentAddressesState,
|
|
291
|
+
],
|
|
241
292
|
[
|
|
242
293
|
{
|
|
243
294
|
ethereum: [
|
|
244
|
-
{ address: "some random address", index: 0 },
|
|
245
|
-
{ address: "some random address 2", index: 1 },
|
|
295
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
296
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
246
297
|
],
|
|
247
298
|
} as DistantRecentAddressesState,
|
|
248
299
|
],
|
|
@@ -267,114 +318,146 @@ describe("recentAddress", () => {
|
|
|
267
318
|
incomingState: {} as DistantRecentAddressesState,
|
|
268
319
|
},
|
|
269
320
|
{
|
|
270
|
-
localData: {
|
|
321
|
+
localData: {
|
|
322
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
323
|
+
} as RecentAddressesState,
|
|
271
324
|
incomingState: {
|
|
272
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
325
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
273
326
|
} as DistantRecentAddressesState,
|
|
274
327
|
},
|
|
275
328
|
{
|
|
276
329
|
localData: {
|
|
277
|
-
ethereum: [
|
|
330
|
+
ethereum: [
|
|
331
|
+
{ address: "some random address", lastUsed: 1 },
|
|
332
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
333
|
+
],
|
|
278
334
|
} as RecentAddressesState,
|
|
279
335
|
incomingState: {
|
|
280
336
|
ethereum: [
|
|
281
|
-
{ address: "some random address", index: 0 },
|
|
282
|
-
{ address: "some random address 2", index: 1 },
|
|
337
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
338
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
283
339
|
],
|
|
284
340
|
} as DistantRecentAddressesState,
|
|
285
341
|
},
|
|
286
342
|
{
|
|
287
343
|
localData: {
|
|
288
|
-
ethereum: [
|
|
344
|
+
ethereum: [
|
|
345
|
+
{ address: "some random address", lastUsed: 1 },
|
|
346
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
347
|
+
],
|
|
289
348
|
} as RecentAddressesState,
|
|
290
349
|
incomingState: {
|
|
291
350
|
ethereum: [
|
|
292
|
-
{ address: "some random address 2", index: 1 },
|
|
293
|
-
{ address: "some random address", index: 0 },
|
|
351
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
352
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
294
353
|
],
|
|
295
354
|
} as DistantRecentAddressesState,
|
|
296
355
|
},
|
|
297
356
|
{
|
|
298
357
|
localData: {
|
|
299
|
-
ethereum: ["some random address"],
|
|
300
|
-
solana: ["some random address on Solana"],
|
|
358
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
359
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
301
360
|
} as RecentAddressesState,
|
|
302
361
|
incomingState: {
|
|
303
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
304
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
362
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
363
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
305
364
|
} as DistantRecentAddressesState,
|
|
306
365
|
},
|
|
307
366
|
{
|
|
308
367
|
localData: {
|
|
309
|
-
ethereum: [
|
|
310
|
-
|
|
368
|
+
ethereum: [
|
|
369
|
+
{ address: "some random address", lastUsed: 1 },
|
|
370
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
371
|
+
],
|
|
372
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
311
373
|
} as RecentAddressesState,
|
|
312
374
|
incomingState: {
|
|
313
375
|
ethereum: [
|
|
314
|
-
{ address: "some random address", index: 0 },
|
|
315
|
-
{ address: "some random address 2", index: 1 },
|
|
376
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
377
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
316
378
|
],
|
|
317
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
379
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
318
380
|
} as DistantRecentAddressesState,
|
|
319
381
|
},
|
|
320
382
|
{
|
|
321
383
|
localData: {
|
|
322
|
-
ethereum: [
|
|
323
|
-
|
|
384
|
+
ethereum: [
|
|
385
|
+
{ address: "some random address", lastUsed: 1 },
|
|
386
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
387
|
+
],
|
|
388
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
324
389
|
} as RecentAddressesState,
|
|
325
390
|
incomingState: {
|
|
326
391
|
ethereum: [
|
|
327
|
-
{ address: "some random address 2", index: 1 },
|
|
328
|
-
{ address: "some random address", index: 0 },
|
|
392
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
393
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
329
394
|
],
|
|
330
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
395
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
331
396
|
} as DistantRecentAddressesState,
|
|
332
397
|
},
|
|
333
398
|
{
|
|
334
399
|
localData: {
|
|
335
|
-
ethereum: [
|
|
336
|
-
|
|
400
|
+
ethereum: [
|
|
401
|
+
{ address: "some random address", lastUsed: 1 },
|
|
402
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
403
|
+
],
|
|
404
|
+
solana: [
|
|
405
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
406
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
407
|
+
],
|
|
337
408
|
} as RecentAddressesState,
|
|
338
409
|
incomingState: {
|
|
339
410
|
ethereum: [
|
|
340
|
-
{ address: "some random address", index: 0 },
|
|
341
|
-
{ address: "some random address 2", index: 1 },
|
|
411
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
412
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
342
413
|
],
|
|
343
414
|
solana: [
|
|
344
|
-
{ address: "some random address on Solana", index: 0 },
|
|
345
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
415
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
416
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
346
417
|
],
|
|
347
418
|
} as DistantRecentAddressesState,
|
|
348
419
|
},
|
|
349
420
|
{
|
|
350
421
|
localData: {
|
|
351
|
-
ethereum: [
|
|
352
|
-
|
|
422
|
+
ethereum: [
|
|
423
|
+
{ address: "some random address", lastUsed: 1 },
|
|
424
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
425
|
+
],
|
|
426
|
+
solana: [
|
|
427
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
428
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
429
|
+
],
|
|
353
430
|
} as RecentAddressesState,
|
|
354
431
|
incomingState: {
|
|
355
432
|
ethereum: [
|
|
356
|
-
{ address: "some random address", index: 0 },
|
|
357
|
-
{ address: "some random address 2", index: 1 },
|
|
433
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
434
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
358
435
|
],
|
|
359
436
|
solana: [
|
|
360
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
361
|
-
{ address: "some random address on Solana", index: 0 },
|
|
437
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
438
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
362
439
|
],
|
|
363
440
|
} as DistantRecentAddressesState,
|
|
364
441
|
},
|
|
365
442
|
{
|
|
366
443
|
localData: {
|
|
367
|
-
ethereum: [
|
|
368
|
-
|
|
444
|
+
ethereum: [
|
|
445
|
+
{ address: "some random address", lastUsed: 1 },
|
|
446
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
447
|
+
],
|
|
448
|
+
solana: [
|
|
449
|
+
{ address: "some random address on Solana", lastUsed: 1 },
|
|
450
|
+
{ address: "some random address 2 on Solana", lastUsed: 2 },
|
|
451
|
+
],
|
|
369
452
|
} as RecentAddressesState,
|
|
370
453
|
incomingState: {
|
|
371
454
|
ethereum: [
|
|
372
|
-
{ address: "some random address 2", index: 1 },
|
|
373
|
-
{ address: "some random address", index: 0 },
|
|
455
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
456
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
374
457
|
],
|
|
375
458
|
solana: [
|
|
376
|
-
{ address: "some random address 2 on Solana", index: 1 },
|
|
377
|
-
{ address: "some random address on Solana", index: 0 },
|
|
459
|
+
{ address: "some random address 2 on Solana", index: 1, lastUsed: 2 },
|
|
460
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
378
461
|
],
|
|
379
462
|
} as DistantRecentAddressesState,
|
|
380
463
|
},
|
|
@@ -397,53 +480,55 @@ describe("recentAddress", () => {
|
|
|
397
480
|
{
|
|
398
481
|
localData: {} as RecentAddressesState,
|
|
399
482
|
incomingState: {
|
|
400
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
483
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
401
484
|
} as DistantRecentAddressesState,
|
|
402
485
|
},
|
|
403
486
|
{
|
|
404
|
-
localData: {
|
|
487
|
+
localData: {
|
|
488
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
489
|
+
} as RecentAddressesState,
|
|
405
490
|
incomingState: {
|
|
406
491
|
ethereum: [
|
|
407
|
-
{ address: "some random address", index: 0 },
|
|
408
|
-
{ address: "some random address 2", index: 1 },
|
|
492
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
493
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
409
494
|
],
|
|
410
495
|
} as DistantRecentAddressesState,
|
|
411
496
|
},
|
|
412
497
|
{
|
|
413
498
|
localData: {
|
|
414
|
-
ethereum: ["some random address"],
|
|
415
|
-
},
|
|
499
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
500
|
+
} as RecentAddressesState,
|
|
416
501
|
incomingState: {
|
|
417
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
418
|
-
solana: [{ address: "some random address on Solana", index: 0 }],
|
|
502
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
503
|
+
solana: [{ address: "some random address on Solana", index: 0, lastUsed: 1 }],
|
|
419
504
|
} as DistantRecentAddressesState,
|
|
420
505
|
},
|
|
421
506
|
{
|
|
422
507
|
localData: {
|
|
423
|
-
ethereum: ["some random address"],
|
|
424
|
-
solana: ["some random address on Solana"],
|
|
425
|
-
},
|
|
508
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
509
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
510
|
+
} as RecentAddressesState,
|
|
426
511
|
incomingState: {
|
|
427
|
-
ethereum: [{ address: "some random address", index: 0 }],
|
|
512
|
+
ethereum: [{ address: "some random address", index: 0, lastUsed: 1 }],
|
|
428
513
|
solana: [
|
|
429
|
-
{ address: "some random address on Solana", index: 0 },
|
|
430
|
-
{ address: "some random address on Solana 2", index: 1 },
|
|
514
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
515
|
+
{ address: "some random address on Solana 2", index: 1, lastUsed: 2 },
|
|
431
516
|
],
|
|
432
517
|
} as DistantRecentAddressesState,
|
|
433
518
|
},
|
|
434
519
|
{
|
|
435
520
|
localData: {
|
|
436
|
-
ethereum: ["some random address"],
|
|
437
|
-
solana: ["some random address on Solana"],
|
|
438
|
-
},
|
|
521
|
+
ethereum: [{ address: "some random address", lastUsed: 1 }],
|
|
522
|
+
solana: [{ address: "some random address on Solana", lastUsed: 1 }],
|
|
523
|
+
} as RecentAddressesState,
|
|
439
524
|
incomingState: {
|
|
440
525
|
ethereum: [
|
|
441
|
-
{ address: "some random address", index: 0 },
|
|
442
|
-
{ address: "some random address 2", index: 1 },
|
|
526
|
+
{ address: "some random address", index: 0, lastUsed: 1 },
|
|
527
|
+
{ address: "some random address 2", index: 1, lastUsed: 2 },
|
|
443
528
|
],
|
|
444
529
|
solana: [
|
|
445
|
-
{ address: "some random address on Solana", index: 0 },
|
|
446
|
-
{ address: "some random address on Solana 2", index: 1 },
|
|
530
|
+
{ address: "some random address on Solana", index: 0, lastUsed: 1 },
|
|
531
|
+
{ address: "some random address on Solana 2", index: 1, lastUsed: 2 },
|
|
447
532
|
],
|
|
448
533
|
} as DistantRecentAddressesState,
|
|
449
534
|
},
|
|
@@ -461,7 +546,7 @@ describe("recentAddress", () => {
|
|
|
461
546
|
Object.keys(incomingState).forEach(key => {
|
|
462
547
|
update[key] = incomingState[key]
|
|
463
548
|
.sort((current, other) => current.index - other.index)
|
|
464
|
-
.map(data => data.address);
|
|
549
|
+
.map(data => ({ address: data.address, lastUsed: data.lastUsed ?? Date.now() }));
|
|
465
550
|
});
|
|
466
551
|
|
|
467
552
|
expect(result).toEqual({
|
|
@@ -475,8 +560,15 @@ describe("recentAddress", () => {
|
|
|
475
560
|
describe("applyUpdate", () => {
|
|
476
561
|
it.each([
|
|
477
562
|
[{}],
|
|
478
|
-
[{ ethereum: ["some random address"] }],
|
|
479
|
-
[
|
|
563
|
+
[{ ethereum: [{ address: "some random address", lastUsed: 1 }] }],
|
|
564
|
+
[
|
|
565
|
+
{
|
|
566
|
+
ethereum: [
|
|
567
|
+
{ address: "some random address", lastUsed: 1 },
|
|
568
|
+
{ address: "some random address 2", lastUsed: 2 },
|
|
569
|
+
],
|
|
570
|
+
},
|
|
571
|
+
],
|
|
480
572
|
])("should return updated data #%#", (update: RecentAddressesState) => {
|
|
481
573
|
const result = manager.applyUpdate({}, update);
|
|
482
574
|
expect(result).toEqual(update);
|
|
@@ -33,6 +33,7 @@ export type DistantRecentAddressesState = Record<
|
|
|
33
33
|
{
|
|
34
34
|
address: string;
|
|
35
35
|
index: number;
|
|
36
|
+
lastUsed?: number;
|
|
36
37
|
}[]
|
|
37
38
|
>;
|
|
38
39
|
|
|
@@ -41,7 +42,11 @@ export function toDistantState(
|
|
|
41
42
|
): DistantRecentAddressesState {
|
|
42
43
|
const state: DistantRecentAddressesState = {};
|
|
43
44
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
44
|
-
state[key] = addressesByCurrency[key].map((
|
|
45
|
+
state[key] = addressesByCurrency[key].map((entry, index) => ({
|
|
46
|
+
address: entry.address,
|
|
47
|
+
index,
|
|
48
|
+
lastUsed: entry.lastUsed,
|
|
49
|
+
}));
|
|
45
50
|
});
|
|
46
51
|
|
|
47
52
|
return state;
|
|
@@ -52,7 +57,10 @@ export function toState(addressesByCurrency: DistantRecentAddressesState): Recen
|
|
|
52
57
|
Object.keys(addressesByCurrency).forEach(key => {
|
|
53
58
|
state[key] = addressesByCurrency[key]
|
|
54
59
|
.sort((current, other) => current.index - other.index)
|
|
55
|
-
.map(data =>
|
|
60
|
+
.map(data => ({
|
|
61
|
+
address: data.address,
|
|
62
|
+
lastUsed: data.lastUsed ?? Date.now(),
|
|
63
|
+
}));
|
|
56
64
|
});
|
|
57
65
|
|
|
58
66
|
return state;
|
|
@@ -70,12 +78,10 @@ function sameDistantState(
|
|
|
70
78
|
return (
|
|
71
79
|
localData[key] &&
|
|
72
80
|
localData[key].length === distantState[key].length &&
|
|
73
|
-
!distantState[key].some(
|
|
74
|
-
data
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
localData[key][data.index] !== data.address,
|
|
78
|
-
)
|
|
81
|
+
!distantState[key].some(data => {
|
|
82
|
+
if (data.index < 0 || data.index >= localData[key].length) return true;
|
|
83
|
+
return localData[key][data.index].address !== data.address;
|
|
84
|
+
})
|
|
79
85
|
);
|
|
80
86
|
})
|
|
81
87
|
);
|
|
@@ -84,6 +90,7 @@ function sameDistantState(
|
|
|
84
90
|
const recentAddressesSchema = z.object({
|
|
85
91
|
address: z.string(),
|
|
86
92
|
index: z.number(),
|
|
93
|
+
lastUsed: z.number().optional(),
|
|
87
94
|
});
|
|
88
95
|
|
|
89
96
|
const schema = z.record(z.string(), z.array(recentAddressesSchema));
|