@ledgerhq/live-common 34.49.0-nightly.4 → 34.49.0-nightly.5
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/lib/bridge/react/BridgeSync.d.ts.map +1 -1
- package/lib/bridge/react/BridgeSync.js +17 -4
- package/lib/bridge/react/BridgeSync.js.map +1 -1
- package/lib/bridge/syncSessionManager/index.d.ts +18 -0
- package/lib/bridge/syncSessionManager/index.d.ts.map +1 -0
- package/lib/bridge/syncSessionManager/index.js +75 -0
- package/lib/bridge/syncSessionManager/index.js.map +1 -0
- package/lib/bridge/syncSessionManager/index.test.d.ts +2 -0
- package/lib/bridge/syncSessionManager/index.test.d.ts.map +1 -0
- package/lib/bridge/syncSessionManager/index.test.js +118 -0
- package/lib/bridge/syncSessionManager/index.test.js.map +1 -0
- package/lib/e2e/data/deviceLabelsData.js +2 -2
- package/lib/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib/e2e/enum/DeviceLabels.d.ts +1 -9
- package/lib/e2e/enum/DeviceLabels.d.ts.map +1 -1
- package/lib/e2e/enum/DeviceLabels.js +0 -8
- package/lib/e2e/enum/DeviceLabels.js.map +1 -1
- package/lib/e2e/families/tezos.d.ts.map +1 -1
- package/lib/e2e/families/tezos.js +5 -3
- package/lib/e2e/families/tezos.js.map +1 -1
- package/lib/e2e/index.d.ts +2 -0
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/e2e/models/Swap.d.ts +2 -0
- package/lib/e2e/models/Swap.d.ts.map +1 -1
- package/lib/e2e/models/Swap.js +6 -0
- package/lib/e2e/models/Swap.js.map +1 -1
- package/lib/e2e/speculos.d.ts +8 -0
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +17 -31
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/exchange/providers/swap.js +2 -2
- package/lib/exchange/providers/swap.js.map +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +1 -0
- package/lib/featureFlags/defaultFeatures.js.map +1 -1
- package/lib/featureFlags/useFeature.d.ts +1 -1
- package/lib/featureFlags/useFeature.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/modules/useLeftApyModule.d.ts +1 -0
- package/lib/modularDrawer/hooks/modules/useLeftApyModule.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts +1 -0
- package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts +1 -0
- package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts +1 -0
- package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts +1 -0
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
- package/lib/notifications/ServiceStatusProvider/entry-points.d.ts +3 -0
- package/lib/notifications/ServiceStatusProvider/entry-points.d.ts.map +1 -0
- package/lib/notifications/ServiceStatusProvider/entry-points.js +3 -0
- package/lib/notifications/ServiceStatusProvider/entry-points.js.map +1 -0
- package/lib/notifications/ServiceStatusProvider/index.d.ts +18 -1
- package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
- package/lib/notifications/ServiceStatusProvider/index.js +47 -9
- package/lib/notifications/ServiceStatusProvider/index.js.map +1 -1
- package/lib/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
- package/lib/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
- package/lib/notifications/ServiceStatusProvider/index.test.js +88 -0
- package/lib/notifications/ServiceStatusProvider/index.test.js.map +1 -0
- package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
- package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
- package/lib/notifications/ServiceStatusProvider/ledger-components.js +17 -0
- package/lib/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
- package/lib/notifications/ServiceStatusProvider/mocks/ledgerStatus.d.ts +154 -0
- package/lib/notifications/ServiceStatusProvider/mocks/ledgerStatus.d.ts.map +1 -0
- package/lib/notifications/ServiceStatusProvider/mocks/ledgerStatus.js +1192 -0
- package/lib/notifications/ServiceStatusProvider/mocks/ledgerStatus.js.map +1 -0
- package/lib/notifications/ServiceStatusProvider/types.d.ts +3 -1
- package/lib/notifications/ServiceStatusProvider/types.d.ts.map +1 -1
- package/lib-es/bridge/react/BridgeSync.d.ts.map +1 -1
- package/lib-es/bridge/react/BridgeSync.js +17 -4
- package/lib-es/bridge/react/BridgeSync.js.map +1 -1
- package/lib-es/bridge/syncSessionManager/index.d.ts +18 -0
- package/lib-es/bridge/syncSessionManager/index.d.ts.map +1 -0
- package/lib-es/bridge/syncSessionManager/index.js +68 -0
- package/lib-es/bridge/syncSessionManager/index.js.map +1 -0
- package/lib-es/bridge/syncSessionManager/index.test.d.ts +2 -0
- package/lib-es/bridge/syncSessionManager/index.test.d.ts.map +1 -0
- package/lib-es/bridge/syncSessionManager/index.test.js +116 -0
- package/lib-es/bridge/syncSessionManager/index.test.js.map +1 -0
- package/lib-es/e2e/data/deviceLabelsData.js +2 -2
- package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
- package/lib-es/e2e/enum/DeviceLabels.d.ts +1 -9
- package/lib-es/e2e/enum/DeviceLabels.d.ts.map +1 -1
- package/lib-es/e2e/enum/DeviceLabels.js +0 -8
- package/lib-es/e2e/enum/DeviceLabels.js.map +1 -1
- package/lib-es/e2e/families/tezos.d.ts.map +1 -1
- package/lib-es/e2e/families/tezos.js +6 -4
- package/lib-es/e2e/families/tezos.js.map +1 -1
- package/lib-es/e2e/index.d.ts +2 -0
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/e2e/models/Swap.d.ts +2 -0
- package/lib-es/e2e/models/Swap.d.ts.map +1 -1
- package/lib-es/e2e/models/Swap.js +6 -0
- package/lib-es/e2e/models/Swap.js.map +1 -1
- package/lib-es/e2e/speculos.d.ts +8 -0
- package/lib-es/e2e/speculos.d.ts.map +1 -1
- package/lib-es/e2e/speculos.js +16 -31
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/exchange/providers/swap.js +2 -2
- package/lib-es/exchange/providers/swap.js.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +1 -0
- package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
- package/lib-es/featureFlags/useFeature.d.ts +1 -1
- package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
- package/lib-es/notifications/ServiceStatusProvider/entry-points.d.ts +3 -0
- package/lib-es/notifications/ServiceStatusProvider/entry-points.d.ts.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/entry-points.js +2 -0
- package/lib-es/notifications/ServiceStatusProvider/entry-points.js.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/index.d.ts +18 -1
- package/lib-es/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
- package/lib-es/notifications/ServiceStatusProvider/index.js +47 -9
- package/lib-es/notifications/ServiceStatusProvider/index.js.map +1 -1
- package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
- package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/index.test.js +86 -0
- package/lib-es/notifications/ServiceStatusProvider/index.test.js.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
- package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/ledger-components.js +14 -0
- package/lib-es/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/mocks/ledgerStatus.d.ts +154 -0
- package/lib-es/notifications/ServiceStatusProvider/mocks/ledgerStatus.d.ts.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/mocks/ledgerStatus.js +1189 -0
- package/lib-es/notifications/ServiceStatusProvider/mocks/ledgerStatus.js.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/types.d.ts +3 -1
- package/lib-es/notifications/ServiceStatusProvider/types.d.ts.map +1 -1
- package/package.json +67 -67
- package/src/bridge/react/BridgeSync.tsx +17 -3
- package/src/bridge/syncSessionManager/index.test.ts +151 -0
- package/src/bridge/syncSessionManager/index.ts +93 -0
- package/src/e2e/data/deviceLabelsData.ts +2 -2
- package/src/e2e/enum/DeviceLabels.ts +0 -8
- package/src/e2e/families/tezos.ts +13 -4
- package/src/e2e/models/Swap.ts +8 -0
- package/src/e2e/speculos.ts +19 -34
- package/src/exchange/providers/swap.ts +2 -2
- package/src/featureFlags/defaultFeatures.ts +1 -0
- package/src/notifications/ServiceStatusProvider/entry-points.ts +3 -0
- package/src/notifications/ServiceStatusProvider/index.test.ts +102 -0
- package/src/notifications/ServiceStatusProvider/index.tsx +61 -13
- package/src/notifications/ServiceStatusProvider/ledger-components.ts +13 -0
- package/src/notifications/ServiceStatusProvider/mocks/ledgerStatus.ts +1188 -0
- package/src/notifications/ServiceStatusProvider/types.ts +4 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ledgerStatus.js","sourceRoot":"","sources":["../../../../src/notifications/ServiceStatusProvider/mocks/ledgerStatus.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { EntryPoint } from "./entry-points";
|
1
2
|
type Component = {
|
2
3
|
id: string;
|
3
4
|
name: string;
|
@@ -40,7 +41,8 @@ export type ServiceStatusApi = {
|
|
40
41
|
fetchStatusSummary: () => Promise<ServiceStatusSummary>;
|
41
42
|
};
|
42
43
|
export type ServiceStatusUserSettings = {
|
43
|
-
tickers
|
44
|
+
tickers?: string[];
|
45
|
+
entryPoint?: EntryPoint;
|
44
46
|
};
|
45
47
|
export {};
|
46
48
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/types.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,kBAAkB,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,KAAK,SAAS,GAAG;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,kBAAkB,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC"}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ledgerhq/live-common",
|
3
3
|
"description": "Common ground for the Ledger Live apps",
|
4
|
-
"version": "34.49.0-nightly.
|
4
|
+
"version": "34.49.0-nightly.5",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
7
7
|
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
@@ -166,75 +166,75 @@
|
|
166
166
|
"xstate": "^5.19.2",
|
167
167
|
"yargs": "^17.0.0",
|
168
168
|
"zod": "^3.22.4",
|
169
|
-
"@ledgerhq/coin-algorand": "^0.10.2-nightly.
|
170
|
-
"@ledgerhq/coin-aptos": "^3.3.1-nightly.
|
171
|
-
"@ledgerhq/coin-bitcoin": "^0.22.1-nightly.
|
172
|
-
"@ledgerhq/coin-canton": "^0.5.1-nightly.
|
173
|
-
"@ledgerhq/coin-cardano": "^0.12.2-nightly.
|
174
|
-
"@ledgerhq/coin-casper": "^2.1.2-nightly.
|
175
|
-
"@ledgerhq/coin-celo": "^1.
|
176
|
-
"@ledgerhq/coin-cosmos": "^0.17.2-nightly.
|
177
|
-
"@ledgerhq/coin-evm": "^2.31.0-nightly.
|
178
|
-
"@ledgerhq/coin-filecoin": "^1.12.1-nightly.
|
179
|
-
"@ledgerhq/coin-framework": "^6.4.1-nightly.
|
180
|
-
"@ledgerhq/coin-hedera": "^1.11.2-nightly.
|
181
|
-
"@ledgerhq/coin-icon": "^0.12.2-nightly.
|
182
|
-
"@ledgerhq/coin-internet_computer": "^1.8.2-nightly.
|
183
|
-
"@ledgerhq/coin-kaspa": "^1.1.1-nightly.
|
184
|
-
"@ledgerhq/coin-mina": "^1.2.2-nightly.
|
185
|
-
"@ledgerhq/coin-multiversx": "^0.5.2-nightly.
|
186
|
-
"@ledgerhq/coin-near": "^0.13.2-nightly.
|
187
|
-
"@ledgerhq/coin-polkadot": "^6.10.1-nightly.
|
188
|
-
"@ledgerhq/coin-solana": "^0.33.1-nightly.
|
189
|
-
"@ledgerhq/coin-stacks": "^0.9.2-nightly.
|
190
|
-
"@ledgerhq/coin-stellar": "^6.4.1-nightly.
|
191
|
-
"@ledgerhq/coin-sui": "^0.13.1-nightly.
|
192
|
-
"@ledgerhq/coin-tezos": "^6.5.0-nightly.
|
193
|
-
"@ledgerhq/coin-ton": "^0.14.2-nightly.
|
194
|
-
"@ledgerhq/coin-tron": "^5.4.1-nightly.
|
195
|
-
"@ledgerhq/coin-vechain": "^2.9.2-nightly.
|
196
|
-
"@ledgerhq/coin-xrp": "^7.4.1-nightly.
|
169
|
+
"@ledgerhq/coin-algorand": "^0.10.2-nightly.3",
|
170
|
+
"@ledgerhq/coin-aptos": "^3.3.1-nightly.3",
|
171
|
+
"@ledgerhq/coin-bitcoin": "^0.22.1-nightly.3",
|
172
|
+
"@ledgerhq/coin-canton": "^0.5.1-nightly.3",
|
173
|
+
"@ledgerhq/coin-cardano": "^0.12.2-nightly.3",
|
174
|
+
"@ledgerhq/coin-casper": "^2.1.2-nightly.3",
|
175
|
+
"@ledgerhq/coin-celo": "^1.5.0-nightly.4",
|
176
|
+
"@ledgerhq/coin-cosmos": "^0.17.2-nightly.3",
|
177
|
+
"@ledgerhq/coin-evm": "^2.31.0-nightly.4",
|
178
|
+
"@ledgerhq/coin-filecoin": "^1.12.1-nightly.3",
|
179
|
+
"@ledgerhq/coin-framework": "^6.4.1-nightly.3",
|
180
|
+
"@ledgerhq/coin-hedera": "^1.11.2-nightly.3",
|
181
|
+
"@ledgerhq/coin-icon": "^0.12.2-nightly.3",
|
182
|
+
"@ledgerhq/coin-internet_computer": "^1.8.2-nightly.3",
|
183
|
+
"@ledgerhq/coin-kaspa": "^1.1.1-nightly.3",
|
184
|
+
"@ledgerhq/coin-mina": "^1.2.2-nightly.3",
|
185
|
+
"@ledgerhq/coin-multiversx": "^0.5.2-nightly.3",
|
186
|
+
"@ledgerhq/coin-near": "^0.13.2-nightly.3",
|
187
|
+
"@ledgerhq/coin-polkadot": "^6.10.1-nightly.3",
|
188
|
+
"@ledgerhq/coin-solana": "^0.33.1-nightly.3",
|
189
|
+
"@ledgerhq/coin-stacks": "^0.9.2-nightly.3",
|
190
|
+
"@ledgerhq/coin-stellar": "^6.4.1-nightly.3",
|
191
|
+
"@ledgerhq/coin-sui": "^0.13.1-nightly.4",
|
192
|
+
"@ledgerhq/coin-tezos": "^6.5.0-nightly.3",
|
193
|
+
"@ledgerhq/coin-ton": "^0.14.2-nightly.3",
|
194
|
+
"@ledgerhq/coin-tron": "^5.4.1-nightly.3",
|
195
|
+
"@ledgerhq/coin-vechain": "^2.9.2-nightly.3",
|
196
|
+
"@ledgerhq/coin-xrp": "^7.4.1-nightly.3",
|
197
197
|
"@ledgerhq/crypto-icons-ui": "^1.19.0-nightly.1",
|
198
|
-
"@ledgerhq/cryptoassets": "^13.
|
199
|
-
"@ledgerhq/device-core": "^0.6.4-nightly.
|
200
|
-
"@ledgerhq/devices": "8.5.2-nightly.
|
201
|
-
"@ledgerhq/errors": "^6.
|
202
|
-
"@ledgerhq/hw-app-algorand": "^6.31.7-nightly.
|
203
|
-
"@ledgerhq/hw-app-aptos": "^6.34.7-nightly.
|
204
|
-
"@ledgerhq/hw-app-btc": "^10.11.1-nightly.
|
205
|
-
"@ledgerhq/hw-app-celo": "^6.
|
206
|
-
"@ledgerhq/hw-app-cosmos": "^6.32.7-nightly.
|
207
|
-
"@ledgerhq/hw-app-eth": "^6.
|
208
|
-
"@ledgerhq/hw-app-exchange": "^0.
|
209
|
-
"@ledgerhq/hw-app-hedera": "^1.2.7-nightly.
|
210
|
-
"@ledgerhq/hw-app-icon": "^1.3.7-nightly.
|
211
|
-
"@ledgerhq/hw-app-kaspa": "^1.3.0-nightly.
|
212
|
-
"@ledgerhq/hw-app-multiversx": "^6.25.2-nightly.
|
213
|
-
"@ledgerhq/hw-app-near": "^6.31.7-nightly.
|
214
|
-
"@ledgerhq/hw-app-polkadot": "^6.34.7-nightly.
|
215
|
-
"@ledgerhq/hw-app-str": "^7.2.7-nightly.
|
198
|
+
"@ledgerhq/cryptoassets": "^13.29.0-nightly.3",
|
199
|
+
"@ledgerhq/device-core": "^0.6.4-nightly.3",
|
200
|
+
"@ledgerhq/devices": "8.5.2-nightly.1",
|
201
|
+
"@ledgerhq/errors": "^6.26.0-nightly.0",
|
202
|
+
"@ledgerhq/hw-app-algorand": "^6.31.7-nightly.1",
|
203
|
+
"@ledgerhq/hw-app-aptos": "^6.34.7-nightly.1",
|
204
|
+
"@ledgerhq/hw-app-btc": "^10.11.1-nightly.1",
|
205
|
+
"@ledgerhq/hw-app-celo": "^6.35.0-nightly.3",
|
206
|
+
"@ledgerhq/hw-app-cosmos": "^6.32.7-nightly.1",
|
207
|
+
"@ledgerhq/hw-app-eth": "^6.46.0-nightly.3",
|
208
|
+
"@ledgerhq/hw-app-exchange": "^0.14.0-nightly.2",
|
209
|
+
"@ledgerhq/hw-app-hedera": "^1.2.7-nightly.1",
|
210
|
+
"@ledgerhq/hw-app-icon": "^1.3.7-nightly.1",
|
211
|
+
"@ledgerhq/hw-app-kaspa": "^1.3.0-nightly.3",
|
212
|
+
"@ledgerhq/hw-app-multiversx": "^6.25.2-nightly.1",
|
213
|
+
"@ledgerhq/hw-app-near": "^6.31.7-nightly.1",
|
214
|
+
"@ledgerhq/hw-app-polkadot": "^6.34.7-nightly.1",
|
215
|
+
"@ledgerhq/hw-app-str": "^7.2.7-nightly.1",
|
216
216
|
"@ledgerhq/hw-app-sui": "^1.4.0",
|
217
|
-
"@ledgerhq/hw-app-tezos": "^6.31.7-nightly.
|
218
|
-
"@ledgerhq/hw-app-trx": "^6.31.7-nightly.
|
219
|
-
"@ledgerhq/hw-app-vet": "^0.5.17-nightly.
|
220
|
-
"@ledgerhq/hw-app-xrp": "^6.32.5-nightly.
|
221
|
-
"@ledgerhq/hw-transport": "^6.31.11-nightly.
|
222
|
-
"@ledgerhq/hw-transport-mocker": "^6.29.11-nightly.
|
223
|
-
"@ledgerhq/ledger-cal-service": "^1.5.0-nightly.
|
217
|
+
"@ledgerhq/hw-app-tezos": "^6.31.7-nightly.1",
|
218
|
+
"@ledgerhq/hw-app-trx": "^6.31.7-nightly.1",
|
219
|
+
"@ledgerhq/hw-app-vet": "^0.5.17-nightly.3",
|
220
|
+
"@ledgerhq/hw-app-xrp": "^6.32.5-nightly.1",
|
221
|
+
"@ledgerhq/hw-transport": "^6.31.11-nightly.1",
|
222
|
+
"@ledgerhq/hw-transport-mocker": "^6.29.11-nightly.1",
|
223
|
+
"@ledgerhq/ledger-cal-service": "^1.5.0-nightly.2",
|
224
224
|
"@ledgerhq/live-config": "^3.2.0",
|
225
|
-
"@ledgerhq/live-countervalues": "^0.7.2-nightly.
|
226
|
-
"@ledgerhq/live-countervalues-react": "^0.6.1-nightly.
|
227
|
-
"@ledgerhq/live-dmk-shared": "^0.12.4-nightly.
|
228
|
-
"@ledgerhq/live-env": "^2.17.0-nightly.
|
225
|
+
"@ledgerhq/live-countervalues": "^0.7.2-nightly.3",
|
226
|
+
"@ledgerhq/live-countervalues-react": "^0.6.1-nightly.3",
|
227
|
+
"@ledgerhq/live-dmk-shared": "^0.12.4-nightly.2",
|
228
|
+
"@ledgerhq/live-env": "^2.17.0-nightly.2",
|
229
229
|
"@ledgerhq/live-hooks": "0.1.0",
|
230
|
-
"@ledgerhq/live-network": "^2.0.18-nightly.
|
230
|
+
"@ledgerhq/live-network": "^2.0.18-nightly.2",
|
231
231
|
"@ledgerhq/live-promise": "^0.1.1",
|
232
|
-
"@ledgerhq/live-signer-canton": "^0.3.1-nightly.
|
233
|
-
"@ledgerhq/live-signer-evm": "^0.7.6-nightly.
|
234
|
-
"@ledgerhq/live-signer-solana": "^0.5.6-nightly.
|
235
|
-
"@ledgerhq/live-wallet": "^0.14.1-nightly.
|
232
|
+
"@ledgerhq/live-signer-canton": "^0.3.1-nightly.3",
|
233
|
+
"@ledgerhq/live-signer-evm": "^0.7.6-nightly.4",
|
234
|
+
"@ledgerhq/live-signer-solana": "^0.5.6-nightly.3",
|
235
|
+
"@ledgerhq/live-wallet": "^0.14.1-nightly.3",
|
236
236
|
"@ledgerhq/logs": "^6.13.0",
|
237
|
-
"@ledgerhq/speculos-transport": "^0.2.11-nightly.
|
237
|
+
"@ledgerhq/speculos-transport": "^0.2.11-nightly.2",
|
238
238
|
"@ledgerhq/wallet-api-acre-module": "^0.7.0-nightly.0",
|
239
239
|
"@ledgerhq/wallet-api-exchange-module": "^0.16.0"
|
240
240
|
},
|
@@ -284,10 +284,10 @@
|
|
284
284
|
"undici": "6.19.2",
|
285
285
|
"uuid": "^8.3.2",
|
286
286
|
"ws": "7",
|
287
|
-
"@ledgerhq/device-react": "^0.2.45-nightly.
|
288
|
-
"@ledgerhq/types-cryptoassets": "^7.27.0-nightly.
|
287
|
+
"@ledgerhq/device-react": "^0.2.45-nightly.3",
|
288
|
+
"@ledgerhq/types-cryptoassets": "^7.27.0-nightly.1",
|
289
289
|
"@ledgerhq/types-devices": "^6.27.0",
|
290
|
-
"@ledgerhq/types-live": "^6.85.0-nightly.
|
290
|
+
"@ledgerhq/types-live": "^6.85.0-nightly.3"
|
291
291
|
},
|
292
292
|
"scripts": {
|
293
293
|
"build": "zx ./scripts/build-ts.mjs",
|
@@ -12,6 +12,7 @@ import type { SyncAction, SyncState, BridgeSyncState } from "./types";
|
|
12
12
|
import { BridgeSyncContext, BridgeSyncStateContext } from "./context";
|
13
13
|
import type { Account, TokenAccount } from "@ledgerhq/types-live";
|
14
14
|
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
15
|
+
import { createSyncSessionManager } from "../syncSessionManager";
|
15
16
|
|
16
17
|
export type Props = {
|
17
18
|
// this is a wrapping component that you need to put in your tree
|
@@ -52,6 +53,7 @@ export const BridgeSync = ({
|
|
52
53
|
accounts,
|
53
54
|
hydrateCurrency,
|
54
55
|
});
|
56
|
+
const sessionManager = useRef(createSyncSessionManager(trackAnalytics)).current;
|
55
57
|
const [syncQueue, syncState] = useSyncQueue({
|
56
58
|
accounts,
|
57
59
|
prepareCurrency,
|
@@ -59,10 +61,12 @@ export const BridgeSync = ({
|
|
59
61
|
trackAnalytics,
|
60
62
|
updateAccountWithUpdater,
|
61
63
|
blacklistedTokenIds,
|
64
|
+
sessionManager,
|
62
65
|
});
|
63
66
|
const sync = useSync({
|
64
67
|
syncQueue,
|
65
68
|
accounts,
|
69
|
+
sessionManager,
|
66
70
|
});
|
67
71
|
useSyncBackground({
|
68
72
|
sync,
|
@@ -111,6 +115,7 @@ function useSyncQueue({
|
|
111
115
|
trackAnalytics,
|
112
116
|
updateAccountWithUpdater,
|
113
117
|
blacklistedTokenIds,
|
118
|
+
sessionManager,
|
114
119
|
}) {
|
115
120
|
const [bridgeSyncState, setBridgeSyncState]: [BridgeSyncState, any] = useState({});
|
116
121
|
const setAccountSyncState = useCallback((accountId: string, s: SyncState) => {
|
@@ -204,6 +209,7 @@ function useSyncQueue({
|
|
204
209
|
pending: false,
|
205
210
|
error: null,
|
206
211
|
});
|
212
|
+
sessionManager.onAccountSyncDone(accountId, accounts);
|
207
213
|
next();
|
208
214
|
},
|
209
215
|
error: (raw: Error) => {
|
@@ -215,6 +221,7 @@ function useSyncQueue({
|
|
215
221
|
pending: false,
|
216
222
|
error: null,
|
217
223
|
});
|
224
|
+
sessionManager.onAccountSyncDone(accountId, accounts);
|
218
225
|
next();
|
219
226
|
return;
|
220
227
|
}
|
@@ -223,6 +230,7 @@ function useSyncQueue({
|
|
223
230
|
pending: false,
|
224
231
|
error,
|
225
232
|
});
|
233
|
+
sessionManager.onAccountSyncDone(accountId, accounts, true);
|
226
234
|
next();
|
227
235
|
},
|
228
236
|
});
|
@@ -231,6 +239,7 @@ function useSyncQueue({
|
|
231
239
|
pending: false,
|
232
240
|
error,
|
233
241
|
});
|
242
|
+
sessionManager.onAccountSyncDone(accountId, accounts, true);
|
234
243
|
next();
|
235
244
|
}
|
236
245
|
},
|
@@ -243,6 +252,7 @@ function useSyncQueue({
|
|
243
252
|
trackAnalytics,
|
244
253
|
updateAccountWithUpdater,
|
245
254
|
blacklistedTokenIds,
|
255
|
+
sessionManager,
|
246
256
|
],
|
247
257
|
);
|
248
258
|
const synchronizeRef = useRef(synchronize);
|
@@ -259,7 +269,7 @@ function useSyncQueue({
|
|
259
269
|
}
|
260
270
|
|
261
271
|
// useSync: returns a sync function with the syncQueue
|
262
|
-
function useSync({ syncQueue, accounts }) {
|
272
|
+
function useSync({ syncQueue, accounts, sessionManager }) {
|
263
273
|
const skipUnderPriority = useRef(-1);
|
264
274
|
const sync = useMemo(() => {
|
265
275
|
const schedule = (ids: string[], priority: number, reason: string) => {
|
@@ -267,6 +277,10 @@ function useSync({ syncQueue, accounts }) {
|
|
267
277
|
// by convention we remove concurrent tasks with same priority
|
268
278
|
// FIXME this is somehow a hack. ideally we should just dedup the account ids in the pending queue...
|
269
279
|
syncQueue.remove(o => priority === o.priority);
|
280
|
+
// start a global session only if initial + all accounts
|
281
|
+
if (reason === "initial" && ids.length === accounts.length) {
|
282
|
+
sessionManager.start(ids, reason);
|
283
|
+
}
|
270
284
|
log("bridge", "schedule " + ids.join(", "));
|
271
285
|
syncQueue.push(
|
272
286
|
ids.map(accountId => ({
|
@@ -289,7 +303,7 @@ function useSync({ syncQueue, accounts }) {
|
|
289
303
|
SET_SKIP_UNDER_PRIORITY: ({ priority }: { priority: number }) => {
|
290
304
|
if (priority === skipUnderPriority.current) return;
|
291
305
|
skipUnderPriority.current = priority;
|
292
|
-
syncQueue.remove(({ priority }) => priority < skipUnderPriority);
|
306
|
+
syncQueue.remove(({ priority }) => priority < skipUnderPriority.current);
|
293
307
|
|
294
308
|
if (priority === -1 && !accounts.every(isUpToDateAccount)) {
|
295
309
|
// going back to -1 priority => retriggering a background sync if it is "Paused"
|
@@ -338,7 +352,7 @@ function useSync({ syncQueue, accounts }) {
|
|
338
352
|
});
|
339
353
|
}
|
340
354
|
};
|
341
|
-
}, [accounts, syncQueue]);
|
355
|
+
}, [accounts, syncQueue, sessionManager]);
|
342
356
|
const ref = useRef(sync);
|
343
357
|
useEffect(() => {
|
344
358
|
ref.current = sync;
|
@@ -0,0 +1,151 @@
|
|
1
|
+
import { createSyncSessionManager } from ".";
|
2
|
+
import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets";
|
3
|
+
import { setSupportedCurrencies } from "../../currencies";
|
4
|
+
import { genAccount } from "../../mock/account";
|
5
|
+
|
6
|
+
jest.mock("@ledgerhq/logs", () => ({
|
7
|
+
log: jest.fn(),
|
8
|
+
}));
|
9
|
+
|
10
|
+
setSupportedCurrencies(["bitcoin", "ethereum"]);
|
11
|
+
|
12
|
+
describe("syncSessionManager", () => {
|
13
|
+
afterEach(() => {
|
14
|
+
jest.clearAllMocks();
|
15
|
+
jest.useRealTimers();
|
16
|
+
});
|
17
|
+
|
18
|
+
test("tracks SyncSuccessAllAccounts with correct aggregates when all accounts complete", () => {
|
19
|
+
const trackAnalytics = jest.fn();
|
20
|
+
const session = createSyncSessionManager(trackAnalytics);
|
21
|
+
|
22
|
+
const BTC = getCryptoCurrencyById("bitcoin");
|
23
|
+
const ETH = getCryptoCurrencyById("ethereum");
|
24
|
+
const a1 = genAccount("a1", { currency: BTC, operationsSize: 3 });
|
25
|
+
const a2 = genAccount("a2", { currency: BTC, operationsSize: 5 });
|
26
|
+
const a3 = genAccount("a3", { currency: ETH, operationsSize: 7 });
|
27
|
+
const accounts = [a1, a2, a3];
|
28
|
+
|
29
|
+
const nowSpy = jest
|
30
|
+
.spyOn(Date, "now")
|
31
|
+
// start time
|
32
|
+
.mockReturnValueOnce(1_000)
|
33
|
+
// end time (when last account completes)
|
34
|
+
.mockReturnValueOnce(5_000);
|
35
|
+
|
36
|
+
session.start(["a1", "a2", "a3"], "initial");
|
37
|
+
|
38
|
+
// Completing accounts one by one should only trigger analytics on last one
|
39
|
+
session.onAccountSyncDone("a1", accounts);
|
40
|
+
expect(trackAnalytics).not.toHaveBeenCalled();
|
41
|
+
|
42
|
+
session.onAccountSyncDone("a2", accounts);
|
43
|
+
expect(trackAnalytics).not.toHaveBeenCalled();
|
44
|
+
|
45
|
+
session.onAccountSyncDone("a3", accounts);
|
46
|
+
|
47
|
+
expect(trackAnalytics).toHaveBeenCalledTimes(1);
|
48
|
+
expect(trackAnalytics).toHaveBeenCalledWith(
|
49
|
+
"SyncSuccessAllAccounts",
|
50
|
+
expect.objectContaining({
|
51
|
+
duration: 4, // (5000 - 1000) / 1000
|
52
|
+
accountsCount: accounts.length,
|
53
|
+
operationsCount: a1.operationsCount + a2.operationsCount + a3.operationsCount,
|
54
|
+
chains: ["Bitcoin", "Ethereum"],
|
55
|
+
reason: "initial",
|
56
|
+
}),
|
57
|
+
);
|
58
|
+
|
59
|
+
nowSpy.mockRestore();
|
60
|
+
});
|
61
|
+
|
62
|
+
test("ignores subsequent 'initial' sessions after the first completion", () => {
|
63
|
+
const trackAnalytics = jest.fn();
|
64
|
+
const session = createSyncSessionManager(trackAnalytics);
|
65
|
+
|
66
|
+
const BTC = getCryptoCurrencyById("bitcoin");
|
67
|
+
const ETH = getCryptoCurrencyById("ethereum");
|
68
|
+
const a1 = genAccount("a1", { currency: BTC });
|
69
|
+
const a2 = genAccount("a2", { currency: ETH });
|
70
|
+
a1.operationsCount = 2;
|
71
|
+
a2.operationsCount = 1;
|
72
|
+
const accounts = [a1, a2];
|
73
|
+
|
74
|
+
const nowSpy = jest
|
75
|
+
.spyOn(Date, "now")
|
76
|
+
.mockReturnValueOnce(10_000) // first start
|
77
|
+
.mockReturnValueOnce(14_000); // first completion
|
78
|
+
|
79
|
+
// First initial session completes => tracked once
|
80
|
+
session.start(["a1", "a2"], "initial");
|
81
|
+
session.onAccountSyncDone("a1", accounts);
|
82
|
+
session.onAccountSyncDone("a2", accounts);
|
83
|
+
|
84
|
+
expect(trackAnalytics).toHaveBeenCalledTimes(1);
|
85
|
+
expect(trackAnalytics.mock.calls[0][0]).toBe("SyncSuccessAllAccounts");
|
86
|
+
|
87
|
+
// Next initial session should be ignored entirely
|
88
|
+
session.start(["a1"], "initial");
|
89
|
+
session.onAccountSyncDone("a1", accounts);
|
90
|
+
|
91
|
+
expect(trackAnalytics).toHaveBeenCalledTimes(1);
|
92
|
+
|
93
|
+
nowSpy.mockRestore();
|
94
|
+
});
|
95
|
+
|
96
|
+
test("does nothing if onAccountSyncDone is called without a started session", () => {
|
97
|
+
const trackAnalytics = jest.fn();
|
98
|
+
const session = createSyncSessionManager(trackAnalytics);
|
99
|
+
const BTC = getCryptoCurrencyById("bitcoin");
|
100
|
+
const acc = genAccount("x1", { currency: BTC });
|
101
|
+
acc.operationsCount = 1;
|
102
|
+
const accounts = [acc];
|
103
|
+
|
104
|
+
session.onAccountSyncDone("x1", accounts);
|
105
|
+
expect(trackAnalytics).not.toHaveBeenCalled();
|
106
|
+
});
|
107
|
+
test("tracks SyncSuccessAllAccounts with correct aggregates when all accounts complete and errors", () => {
|
108
|
+
const trackAnalytics = jest.fn();
|
109
|
+
const session = createSyncSessionManager(trackAnalytics);
|
110
|
+
|
111
|
+
const BTC = getCryptoCurrencyById("bitcoin");
|
112
|
+
const ETH = getCryptoCurrencyById("ethereum");
|
113
|
+
const a1 = genAccount("a1", { currency: BTC, operationsSize: 3 });
|
114
|
+
const a2 = genAccount("a2", { currency: BTC, operationsSize: 5 });
|
115
|
+
const a3 = genAccount("a3", { currency: ETH, operationsSize: 7 });
|
116
|
+
const accounts = [a1, a2, a3];
|
117
|
+
|
118
|
+
const nowSpy = jest
|
119
|
+
.spyOn(Date, "now")
|
120
|
+
// start time
|
121
|
+
.mockReturnValueOnce(1_000)
|
122
|
+
// end time (when last account completes)
|
123
|
+
.mockReturnValueOnce(5_000);
|
124
|
+
|
125
|
+
session.start(["a1", "a2", "a3"], "initial");
|
126
|
+
|
127
|
+
// Completing accounts one by one should only trigger analytics on last one
|
128
|
+
session.onAccountSyncDone("a1", accounts);
|
129
|
+
expect(trackAnalytics).not.toHaveBeenCalled();
|
130
|
+
|
131
|
+
session.onAccountSyncDone("a2", accounts, true);
|
132
|
+
expect(trackAnalytics).not.toHaveBeenCalled();
|
133
|
+
|
134
|
+
session.onAccountSyncDone("a3", accounts, true);
|
135
|
+
|
136
|
+
expect(trackAnalytics).toHaveBeenCalledTimes(1);
|
137
|
+
expect(trackAnalytics).toHaveBeenCalledWith(
|
138
|
+
"SyncSuccessAllAccounts",
|
139
|
+
expect.objectContaining({
|
140
|
+
duration: 4, // (5000 - 1000) / 1000
|
141
|
+
accountsCount: accounts.length,
|
142
|
+
operationsCount: a1.operationsCount + a2.operationsCount + a3.operationsCount,
|
143
|
+
chains: ["Bitcoin", "Ethereum"],
|
144
|
+
reason: "initial",
|
145
|
+
syncWithErrors: 2,
|
146
|
+
}),
|
147
|
+
);
|
148
|
+
|
149
|
+
nowSpy.mockRestore();
|
150
|
+
});
|
151
|
+
});
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import { log } from "@ledgerhq/logs";
|
2
|
+
import { Account } from "@ledgerhq/types-live";
|
3
|
+
import { Props } from "../react/BridgeSync";
|
4
|
+
|
5
|
+
type Session = {
|
6
|
+
reason: string;
|
7
|
+
startTime: number;
|
8
|
+
accountIds: string[];
|
9
|
+
remaining: Set<string>;
|
10
|
+
errorsCount: number;
|
11
|
+
};
|
12
|
+
|
13
|
+
// Session manager factory to track global sync sessions (Accounts)
|
14
|
+
export function createSyncSessionManager(trackAnalytics: Props["trackAnalytics"]) {
|
15
|
+
let current: Session | null = null;
|
16
|
+
|
17
|
+
let hasTrackedInitial = false;
|
18
|
+
|
19
|
+
const start = (ids: string[], reason: string) => {
|
20
|
+
if (reason === "initial" && hasTrackedInitial) return;
|
21
|
+
current = {
|
22
|
+
reason,
|
23
|
+
startTime: Date.now(),
|
24
|
+
accountIds: ids,
|
25
|
+
remaining: new Set(ids),
|
26
|
+
errorsCount: 0,
|
27
|
+
};
|
28
|
+
logSyncSession("started", { reason, accounts: ids.length });
|
29
|
+
};
|
30
|
+
|
31
|
+
/**
|
32
|
+
*
|
33
|
+
* @param accountId - the account id that has completed sync
|
34
|
+
* @param accounts - the accounts that will be synced
|
35
|
+
* @param hadError - whether the account sync had an error
|
36
|
+
*
|
37
|
+
*/
|
38
|
+
const onAccountSyncDone = (accountId: string, accounts: Account[], hadError = false) => {
|
39
|
+
if (!current) return;
|
40
|
+
|
41
|
+
current.remaining.delete(accountId);
|
42
|
+
if (hadError) {
|
43
|
+
current.errorsCount += 1;
|
44
|
+
}
|
45
|
+
|
46
|
+
if (current.remaining.size === 0) {
|
47
|
+
trackSessionAnalytics(trackAnalytics, current, accounts);
|
48
|
+
|
49
|
+
if (current.reason === "initial") {
|
50
|
+
hasTrackedInitial = true;
|
51
|
+
}
|
52
|
+
current = null;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
|
56
|
+
return { start, onAccountSyncDone } as const;
|
57
|
+
}
|
58
|
+
|
59
|
+
export function getTotalOperations(accounts: Account[]): number {
|
60
|
+
return accounts.reduce((sum, acc) => sum + acc.operationsCount, 0);
|
61
|
+
}
|
62
|
+
|
63
|
+
export function getUniqueChains(accounts: Account[]): string[] {
|
64
|
+
return [...new Set(accounts.map(acc => acc.currency.name))];
|
65
|
+
}
|
66
|
+
|
67
|
+
export function trackSessionAnalytics(
|
68
|
+
trackAnalytics: Props["trackAnalytics"],
|
69
|
+
session: Session,
|
70
|
+
accounts: Account[],
|
71
|
+
) {
|
72
|
+
const duration = (Date.now() - session.startTime) / 1000;
|
73
|
+
const totalOps = getTotalOperations(accounts);
|
74
|
+
const chains = getUniqueChains(accounts);
|
75
|
+
|
76
|
+
trackAnalytics("SyncSuccessAllAccounts", {
|
77
|
+
duration,
|
78
|
+
accountsCount: accounts.length,
|
79
|
+
operationsCount: totalOps,
|
80
|
+
chains,
|
81
|
+
reason: session.reason,
|
82
|
+
syncWithErrors: session.errorsCount,
|
83
|
+
});
|
84
|
+
|
85
|
+
logSyncSession("finished", { reason: session.reason, duration: `${duration}s` });
|
86
|
+
}
|
87
|
+
|
88
|
+
function logSyncSession(event: "started" | "finished", data: Record<string, string | number>) {
|
89
|
+
const serialized = Object.entries(data)
|
90
|
+
.map(([key, value]) => `${key}=${value}`)
|
91
|
+
.join(", ");
|
92
|
+
log("bridge", `SyncSession ${event} ${serialized}`);
|
93
|
+
}
|
@@ -54,7 +54,7 @@ export const DEVICE_LABELS_CONFIG: DeviceLabelsConfig = {
|
|
54
54
|
[AppInfos.MULTIVERS_X.name]: DeviceLabels.SIGN,
|
55
55
|
[AppInfos.NEAR.name]: DeviceLabels.CONTINUE_TO_ACTION,
|
56
56
|
[AppInfos.SOLANA.name]: DeviceLabels.APPROVE,
|
57
|
-
[AppInfos.TEZOS.name]: DeviceLabels.
|
57
|
+
[AppInfos.TEZOS.name]: DeviceLabels.ACCEPT_RISK,
|
58
58
|
default: DeviceLabels.CAPS_APPROVE,
|
59
59
|
},
|
60
60
|
},
|
@@ -87,12 +87,12 @@ export const DEVICE_LABELS_CONFIG: DeviceLabelsConfig = {
|
|
87
87
|
},
|
88
88
|
delegateConfirm: {
|
89
89
|
[AppInfos.CELO.name]: DeviceLabels.ACCEPT,
|
90
|
+
[AppInfos.TEZOS.name]: DeviceLabels.ACCEPT_AND_SEND,
|
90
91
|
[AppInfos.COSMOS.name]: DeviceLabels.CAPS_APPROVE,
|
91
92
|
[AppInfos.INJECTIVE.name]: DeviceLabels.CAPS_APPROVE,
|
92
93
|
[AppInfos.MULTIVERS_X.name]: DeviceLabels.SIGN,
|
93
94
|
[AppInfos.NEAR.name]: DeviceLabels.CONTINUE_TO_ACTION,
|
94
95
|
[AppInfos.SOLANA.name]: DeviceLabels.SIGN_TRANSACTION,
|
95
|
-
[AppInfos.TEZOS.name]: DeviceLabels.ACCEPT_RISK,
|
96
96
|
[AppInfos.OSMOSIS.name]: DeviceLabels.CAPS_APPROVE,
|
97
97
|
default: DeviceLabels.APPROVE,
|
98
98
|
},
|
@@ -7,9 +7,7 @@ export enum DeviceLabels {
|
|
7
7
|
AMOUNT = "Amount",
|
8
8
|
APPROVE = "Approve",
|
9
9
|
BITCOIN_IS_READY = "Bitcoin is ready",
|
10
|
-
CANCEL = "Cancel",
|
11
10
|
CAPS_APPROVE = "APPROVE",
|
12
|
-
CAPS_REJECT = "REJECT",
|
13
11
|
CHAIN_ID = "Chain ID",
|
14
12
|
CONFIRM = "Confirm",
|
15
13
|
CONNECT = "Connect",
|
@@ -20,19 +18,14 @@ export enum DeviceLabels {
|
|
20
18
|
DELEGATE_FROM = "Delegate from",
|
21
19
|
DELEGATE_STAKE = "Delegate stake",
|
22
20
|
DEPOSIT = "Deposit",
|
23
|
-
DEST = "Dest",
|
24
|
-
DESTINATION = "Destination",
|
25
21
|
EXPERT_MODE = "Expert mode",
|
26
22
|
FEES = "Fees",
|
27
|
-
FINALIZE = "Finalize",
|
28
23
|
GET = "Get",
|
29
24
|
I_UNDERSTAND = "I understand",
|
30
25
|
LEDGER_LIVE_WILL_BE = "Ledger Live will be",
|
31
|
-
METHOD_NAME = "Method name",
|
32
26
|
NEW_ORDINARY = "New ordinary",
|
33
27
|
PLEASE_REVIEW = "Please",
|
34
28
|
PUBKEY = "Pubkey",
|
35
|
-
PUBLICKEY = "Public Key Hash",
|
36
29
|
READY = "Ready",
|
37
30
|
RECEIVE_ADDRESS_DOES_NOT_BELONG = "Receive address does",
|
38
31
|
RECEIVER = "Receiver",
|
@@ -65,5 +58,4 @@ export enum DeviceLabels {
|
|
65
58
|
VERIFY_SOLANA_ADDRESS = "Verify Solana address",
|
66
59
|
VIEW_ACTION = "View action",
|
67
60
|
VIEW_HEADER = "View Header",
|
68
|
-
WALLET_ID = "Wallet ID",
|
69
61
|
}
|