@ledgerhq/live-common 34.48.0-nightly.0 → 34.48.0-nightly.2
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/crypto-assets/index.d.ts.map +1 -1
- package/lib/bridge/crypto-assets/index.js +0 -4
- package/lib/bridge/crypto-assets/index.js.map +1 -1
- package/lib/bridge/crypto-assets/index.test.js +0 -36
- package/lib/bridge/crypto-assets/index.test.js.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +2 -2
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib/bridge/generic-alpaca/signOperation.js +1 -1
- package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib/config/sharedConfig.d.ts.map +1 -1
- package/lib/config/sharedConfig.js +2 -0
- package/lib/config/sharedConfig.js.map +1 -1
- package/lib/e2e/index.d.ts +4 -4
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/families/canton/bridge/mock-data.d.ts +6 -0
- package/lib/families/canton/bridge/mock-data.d.ts.map +1 -0
- package/lib/families/canton/bridge/mock-data.js +120 -0
- package/lib/families/canton/bridge/mock-data.js.map +1 -0
- package/lib/families/canton/bridge/mock.d.ts +12 -0
- package/lib/families/canton/bridge/mock.d.ts.map +1 -0
- package/lib/families/canton/bridge/mock.js +154 -0
- package/lib/families/canton/bridge/mock.js.map +1 -0
- package/lib/families/canton/config.d.ts.map +1 -1
- package/lib/families/canton/config.js +5 -2
- package/lib/families/canton/config.js.map +1 -1
- package/lib/families/canton/setup.d.ts.map +1 -1
- package/lib/families/canton/setup.js +8 -2
- package/lib/families/canton/setup.js.map +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +0 -1
- 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/generated/bridge/mock.d.ts +8 -0
- package/lib/generated/bridge/mock.d.ts.map +1 -1
- package/lib/generated/bridge/mock.js +26 -24
- package/lib/generated/bridge/mock.js.map +1 -1
- package/lib/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.d.ts +2 -0
- package/lib/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.d.ts.map +1 -0
- package/lib/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.js +206 -0
- package/lib/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.js.map +1 -0
- package/lib/modularDrawer/hooks/useAssetsData.d.ts +1 -0
- package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useAssetsData.js +3 -2
- package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -1
- package/lib/modularDrawer/hooks/useModularDrawerConfiguration.d.ts +13 -0
- package/lib/modularDrawer/hooks/useModularDrawerConfiguration.d.ts.map +1 -0
- package/lib/modularDrawer/hooks/useModularDrawerConfiguration.js +29 -0
- package/lib/modularDrawer/hooks/useModularDrawerConfiguration.js.map +1 -0
- package/lib/modularDrawer/hooks/useSearch.d.ts +16 -0
- package/lib/modularDrawer/hooks/useSearch.d.ts.map +1 -0
- package/lib/modularDrawer/hooks/useSearch.js +24 -0
- package/lib/modularDrawer/hooks/useSearch.js.map +1 -0
- package/lib/notifications/ServiceStatusProvider/index.d.ts +16 -1
- package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
- package/lib/notifications/ServiceStatusProvider/index.js +31 -7
- 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 +16 -0
- package/lib/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
- package/lib/wallet-api/ACRE/server.d.ts +13 -6
- package/lib/wallet-api/ACRE/server.d.ts.map +1 -1
- package/lib/wallet-api/ACRE/server.js +142 -1
- package/lib/wallet-api/ACRE/server.js.map +1 -1
- package/lib/wallet-api/ACRE/server.test.d.ts +2 -0
- package/lib/wallet-api/ACRE/server.test.d.ts.map +1 -0
- package/lib/wallet-api/ACRE/server.test.js +393 -0
- package/lib/wallet-api/ACRE/server.test.js.map +1 -0
- package/lib-es/bridge/crypto-assets/index.d.ts.map +1 -1
- package/lib-es/bridge/crypto-assets/index.js +0 -4
- package/lib-es/bridge/crypto-assets/index.js.map +1 -1
- package/lib-es/bridge/crypto-assets/index.test.js +0 -36
- package/lib-es/bridge/crypto-assets/index.test.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +2 -2
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.js +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib-es/config/sharedConfig.d.ts.map +1 -1
- package/lib-es/config/sharedConfig.js +2 -0
- package/lib-es/config/sharedConfig.js.map +1 -1
- package/lib-es/e2e/index.d.ts +4 -4
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/env.react.d.ts +1 -1
- package/lib-es/env.react.d.ts.map +1 -1
- package/lib-es/families/canton/bridge/mock-data.d.ts +6 -0
- package/lib-es/families/canton/bridge/mock-data.d.ts.map +1 -0
- package/lib-es/families/canton/bridge/mock-data.js +116 -0
- package/lib-es/families/canton/bridge/mock-data.js.map +1 -0
- package/lib-es/families/canton/bridge/mock.d.ts +12 -0
- package/lib-es/families/canton/bridge/mock.d.ts.map +1 -0
- package/lib-es/families/canton/bridge/mock.js +152 -0
- package/lib-es/families/canton/bridge/mock.js.map +1 -0
- package/lib-es/families/canton/config.d.ts.map +1 -1
- package/lib-es/families/canton/config.js +5 -2
- package/lib-es/families/canton/config.js.map +1 -1
- package/lib-es/families/canton/setup.d.ts.map +1 -1
- package/lib-es/families/canton/setup.js +8 -2
- package/lib-es/families/canton/setup.js.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +0 -1
- 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/generated/bridge/mock.d.ts +8 -0
- package/lib-es/generated/bridge/mock.d.ts.map +1 -1
- package/lib-es/generated/bridge/mock.js +2 -0
- package/lib-es/generated/bridge/mock.js.map +1 -1
- package/lib-es/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.d.ts +2 -0
- package/lib-es/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.d.ts.map +1 -0
- package/lib-es/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.js +204 -0
- package/lib-es/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.js.map +1 -0
- package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +1 -0
- package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useAssetsData.js +3 -2
- package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -1
- package/lib-es/modularDrawer/hooks/useModularDrawerConfiguration.d.ts +13 -0
- package/lib-es/modularDrawer/hooks/useModularDrawerConfiguration.d.ts.map +1 -0
- package/lib-es/modularDrawer/hooks/useModularDrawerConfiguration.js +25 -0
- package/lib-es/modularDrawer/hooks/useModularDrawerConfiguration.js.map +1 -0
- package/lib-es/modularDrawer/hooks/useSearch.d.ts +16 -0
- package/lib-es/modularDrawer/hooks/useSearch.d.ts.map +1 -0
- package/lib-es/modularDrawer/hooks/useSearch.js +20 -0
- package/lib-es/modularDrawer/hooks/useSearch.js.map +1 -0
- package/lib-es/notifications/ServiceStatusProvider/index.d.ts +16 -1
- package/lib-es/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
- package/lib-es/notifications/ServiceStatusProvider/index.js +31 -7
- 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 +13 -0
- package/lib-es/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
- package/lib-es/wallet-api/ACRE/server.d.ts +13 -6
- package/lib-es/wallet-api/ACRE/server.d.ts.map +1 -1
- package/lib-es/wallet-api/ACRE/server.js +140 -2
- package/lib-es/wallet-api/ACRE/server.js.map +1 -1
- package/lib-es/wallet-api/ACRE/server.test.d.ts +2 -0
- package/lib-es/wallet-api/ACRE/server.test.d.ts.map +1 -0
- package/lib-es/wallet-api/ACRE/server.test.js +388 -0
- package/lib-es/wallet-api/ACRE/server.test.js.map +1 -0
- package/package.json +48 -48
- package/src/bridge/crypto-assets/index.test.ts +0 -47
- package/src/bridge/crypto-assets/index.ts +0 -5
- package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +4 -3
- package/src/bridge/generic-alpaca/signOperation.ts +1 -1
- package/src/config/sharedConfig.ts +2 -0
- package/src/families/canton/bridge/mock-data.ts +175 -0
- package/src/families/canton/bridge/mock.ts +180 -0
- package/src/families/canton/config.ts +5 -3
- package/src/families/canton/setup.ts +8 -5
- package/src/featureFlags/defaultFeatures.ts +0 -1
- package/src/generated/bridge/mock.ts +2 -0
- package/src/modularDrawer/hooks/__test__/useModularDrawerConfiguration.test.ts +251 -0
- package/src/modularDrawer/hooks/useAssetsData.ts +3 -2
- package/src/modularDrawer/hooks/useModularDrawerConfiguration.ts +33 -0
- package/src/modularDrawer/hooks/useSearch.ts +52 -0
- package/src/notifications/ServiceStatusProvider/index.test.ts +102 -0
- package/src/notifications/ServiceStatusProvider/index.tsx +37 -12
- package/src/notifications/ServiceStatusProvider/ledger-components.ts +12 -0
- package/src/wallet-api/ACRE/server.test.ts +470 -0
- package/src/wallet-api/ACRE/server.ts +202 -14
- package/lib/bridge/crypto-assets/cal-integration.d.ts +0 -4
- package/lib/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/cal-integration.js +0 -26
- package/lib/bridge/crypto-assets/cal-integration.js.map +0 -1
- package/lib/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
- package/lib/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/cal-integration.test.js +0 -45
- package/lib/bridge/crypto-assets/cal-integration.test.js.map +0 -1
- package/lib/bridge/crypto-assets/cal-store.d.ts +0 -14
- package/lib/bridge/crypto-assets/cal-store.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/cal-store.js +0 -58
- package/lib/bridge/crypto-assets/cal-store.js.map +0 -1
- package/lib/bridge/crypto-assets/cal-store.test.d.ts +0 -2
- package/lib/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/cal-store.test.js +0 -70
- package/lib/bridge/crypto-assets/cal-store.test.js.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-integration.d.ts +0 -4
- package/lib-es/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-integration.js +0 -21
- package/lib-es/bridge/crypto-assets/cal-integration.js.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
- package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-integration.test.js +0 -43
- package/lib-es/bridge/crypto-assets/cal-integration.test.js.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-store.d.ts +0 -14
- package/lib-es/bridge/crypto-assets/cal-store.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-store.js +0 -54
- package/lib-es/bridge/crypto-assets/cal-store.js.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-store.test.d.ts +0 -2
- package/lib-es/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/cal-store.test.js +0 -68
- package/lib-es/bridge/crypto-assets/cal-store.test.js.map +0 -1
- package/src/bridge/crypto-assets/cal-integration.test.ts +0 -53
- package/src/bridge/crypto-assets/cal-integration.ts +0 -23
- package/src/bridge/crypto-assets/cal-store.test.ts +0 -93
- package/src/bridge/crypto-assets/cal-store.ts +0 -63
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useModularDrawerConfiguration = void 0;
|
4
|
+
const featureFlags_1 = require("../../featureFlags");
|
5
|
+
const assetConfigurationDisabled = {
|
6
|
+
rightElement: "undefined",
|
7
|
+
leftElement: "undefined",
|
8
|
+
filter: "undefined",
|
9
|
+
};
|
10
|
+
const networkConfigurationDisabled = {
|
11
|
+
rightElement: "undefined",
|
12
|
+
leftElement: "undefined",
|
13
|
+
};
|
14
|
+
const useModularDrawerConfiguration = (featureFlagKey, drawerConfiguration) => {
|
15
|
+
const featureModularDrawer = (0, featureFlags_1.useFeature)(featureFlagKey);
|
16
|
+
const modularizationEnabled = featureModularDrawer?.params?.enableModularization ?? false;
|
17
|
+
const assetsConfiguration = modularizationEnabled
|
18
|
+
? drawerConfiguration?.assets
|
19
|
+
: assetConfigurationDisabled;
|
20
|
+
const networkConfiguration = modularizationEnabled
|
21
|
+
? drawerConfiguration?.networks
|
22
|
+
: networkConfigurationDisabled;
|
23
|
+
return {
|
24
|
+
assetsConfiguration,
|
25
|
+
networkConfiguration,
|
26
|
+
};
|
27
|
+
};
|
28
|
+
exports.useModularDrawerConfiguration = useModularDrawerConfiguration;
|
29
|
+
//# sourceMappingURL=useModularDrawerConfiguration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useModularDrawerConfiguration.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useModularDrawerConfiguration.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAGhD,MAAM,0BAA0B,GAAiD;IAC/E,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,4BAA4B,GAAmD;IACnF,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,WAAW;CACzB,CAAC;AAEK,MAAM,6BAA6B,GAAG,CAC3C,cAAuD,EACvD,mBAAwD,EACxD,EAAE;IACF,MAAM,oBAAoB,GAAG,IAAA,yBAAU,EAAC,cAAc,CAAC,CAAC;IAExD,MAAM,qBAAqB,GAAG,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,KAAK,CAAC;IAC1F,MAAM,mBAAmB,GAAG,qBAAqB;QAC/C,CAAC,CAAC,mBAAmB,EAAE,MAAM;QAC7B,CAAC,CAAC,0BAA0B,CAAC;IAC/B,MAAM,oBAAoB,GAAG,qBAAqB;QAChD,CAAC,CAAC,mBAAmB,EAAE,QAAQ;QAC/B,CAAC,CAAC,4BAA4B,CAAC;IAEjC,OAAO;QACL,mBAAmB;QACnB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { ChangeEvent } from "react";
|
2
|
+
export type UseSearchParams = {
|
3
|
+
/** Initial value to display in the search input */
|
4
|
+
initialValue?: string;
|
5
|
+
/** Persist the search value to the host app state (e.g., Redux) */
|
6
|
+
onPersistSearchValue?: (value: string) => void;
|
7
|
+
/** Track analytics when the debounced value changes and should be emitted */
|
8
|
+
onTrackSearch?: (query: string) => void;
|
9
|
+
};
|
10
|
+
export type UseSearchResult = {
|
11
|
+
handleSearch: (queryOrEvent: string | ChangeEvent<HTMLInputElement>) => void;
|
12
|
+
handleDebouncedChange: (current: string, previous: string) => void;
|
13
|
+
displayedValue: string | undefined;
|
14
|
+
};
|
15
|
+
export declare function useSearchCommon({ initialValue, onPersistSearchValue, onTrackSearch, }: UseSearchParams): UseSearchResult;
|
16
|
+
//# sourceMappingURL=useSearch.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useSearch.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,OAAO,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC5B,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7E,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAIF,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,oBAAoB,EACpB,aAAa,GACd,EAAE,eAAe,GAAG,eAAe,CA4BnC"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useSearchCommon = void 0;
|
4
|
+
const react_1 = require("react");
|
5
|
+
const normalize = (value) => value.trim();
|
6
|
+
function useSearchCommon({ initialValue, onPersistSearchValue, onTrackSearch, }) {
|
7
|
+
const [displayedValue, setDisplayedValue] = (0, react_1.useState)(initialValue);
|
8
|
+
const handleSearch = (0, react_1.useCallback)((queryOrEvent) => {
|
9
|
+
const nextValue = typeof queryOrEvent === "string" ? queryOrEvent : queryOrEvent.target.value;
|
10
|
+
setDisplayedValue(nextValue);
|
11
|
+
}, []);
|
12
|
+
const shouldEmitEvent = (0, react_1.useCallback)((currentQuery, previousQuery) => currentQuery !== "" && currentQuery !== previousQuery, []);
|
13
|
+
const handleDebouncedChange = (0, react_1.useCallback)((current, previous) => {
|
14
|
+
const currentQuery = normalize(current);
|
15
|
+
const previousQuery = normalize(previous);
|
16
|
+
onPersistSearchValue?.(currentQuery);
|
17
|
+
if (!shouldEmitEvent(currentQuery, previousQuery))
|
18
|
+
return;
|
19
|
+
onTrackSearch?.(currentQuery);
|
20
|
+
}, [onPersistSearchValue, onTrackSearch, shouldEmitEvent]);
|
21
|
+
return { handleSearch, handleDebouncedChange, displayedValue };
|
22
|
+
}
|
23
|
+
exports.useSearchCommon = useSearchCommon;
|
24
|
+
//# sourceMappingURL=useSearch.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useSearch.ts"],"names":[],"mappings":";;;AAAA,iCAA2D;AAiB3D,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAElD,SAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,oBAAoB,EACpB,aAAa,GACG;IAChB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAqB,YAAY,CAAC,CAAC;IAEvF,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,CAAC,YAAoD,EAAE,EAAE;QACxF,MAAM,SAAS,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9F,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,YAAoB,EAAE,aAAqB,EAAE,EAAE,CAC9C,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,aAAa,EACvD,EAAE,CACH,CAAC;IACF,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EACvC,CAAC,OAAe,EAAE,QAAgB,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1C,oBAAoB,EAAE,CAAC,YAAY,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC;YAAE,OAAO;QAE1D,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,oBAAoB,EAAE,aAAa,EAAE,eAAe,CAAC,CACvD,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC;AACjE,CAAC;AAhCD,0CAgCC"}
|
@@ -11,7 +11,22 @@ type API = {
|
|
11
11
|
};
|
12
12
|
export type StatusContextType = State & API;
|
13
13
|
export declare function useServiceStatus(): StatusContextType;
|
14
|
-
|
14
|
+
/**
|
15
|
+
* Filters service status incidents based on related tickers or Ledger components.
|
16
|
+
*
|
17
|
+
* ## Behavior:
|
18
|
+
* - If there are no `tickers` or no `incidents`, returns an empty list.
|
19
|
+
* - For each incident:
|
20
|
+
* 1. ✅ If the incident has no components → keep it (always relevant).
|
21
|
+
* 2. ✅ If at least one component name matches a known **Ledger component** → keep it.
|
22
|
+
* 3. ✅ If at least one component name contains a **currency ticker** → keep it.
|
23
|
+
* 4. ❌ Otherwise, the incident is discarded.
|
24
|
+
*
|
25
|
+
* @param {Incident[]} [incidents=[]] - List of incidents to filter.
|
26
|
+
* @param {string[]} [tickers=[]] - List of currency tickers to match against incident components.
|
27
|
+
* @returns {Incident[]} The list of incidents relevant to the provided tickers or Ledger components.
|
28
|
+
*/
|
29
|
+
export declare function filterServiceStatusIncidents(incidents?: Incident[], tickers?: string[]): Incident[];
|
15
30
|
export declare function useFilteredServiceStatus(filters?: ServiceStatusUserSettings): StatusContextType;
|
16
31
|
export declare const ServiceStatusProvider: ({ children, autoUpdateDelay, networkApi, context, }: Props) => ReactElement;
|
17
32
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAmD,YAAY,EAAE,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAmD,YAAY,EAAE,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAM5F,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,GAAG,CAAC;AAU5C,wBAAgB,gBAAgB,IAAI,iBAAiB,CAEpD;AAUD;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,4BAA4B,CAC1C,SAAS,GAAE,QAAQ,EAAO,EAC1B,OAAO,GAAE,MAAM,EAAO,GACrB,QAAQ,EAAE,CAeZ;AAGD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,iBAAiB,CAS/F;AAED,eAAO,MAAM,qBAAqB,wDAK/B,KAAK,KAAG,YA+BV,CAAC"}
|
@@ -32,6 +32,7 @@ const api_1 = __importDefault(require("./api"));
|
|
32
32
|
const xstate_1 = require("xstate");
|
33
33
|
const react_2 = require("@xstate/react");
|
34
34
|
const machine_1 = require("./machine");
|
35
|
+
const ledger_components_1 = require("./ledger-components");
|
35
36
|
const ServiceStatusContext = (0, react_1.createContext)({
|
36
37
|
incidents: [],
|
37
38
|
isLoading: false,
|
@@ -47,14 +48,37 @@ exports.useServiceStatus = useServiceStatus;
|
|
47
48
|
function escapeRegExp(string) {
|
48
49
|
return string.replace(/[.*+?^${}()[\]\\]/g, "\\$&"); // $& means the whole matched string
|
49
50
|
}
|
50
|
-
function
|
51
|
-
|
51
|
+
function sanitizeName(name) {
|
52
|
+
return name.toLowerCase().trim().replace(/\s+/g, " "); // collapse multiple spaces
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Filters service status incidents based on related tickers or Ledger components.
|
56
|
+
*
|
57
|
+
* ## Behavior:
|
58
|
+
* - If there are no `tickers` or no `incidents`, returns an empty list.
|
59
|
+
* - For each incident:
|
60
|
+
* 1. ✅ If the incident has no components → keep it (always relevant).
|
61
|
+
* 2. ✅ If at least one component name matches a known **Ledger component** → keep it.
|
62
|
+
* 3. ✅ If at least one component name contains a **currency ticker** → keep it.
|
63
|
+
* 4. ❌ Otherwise, the incident is discarded.
|
64
|
+
*
|
65
|
+
* @param {Incident[]} [incidents=[]] - List of incidents to filter.
|
66
|
+
* @param {string[]} [tickers=[]] - List of currency tickers to match against incident components.
|
67
|
+
* @returns {Incident[]} The list of incidents relevant to the provided tickers or Ledger components.
|
68
|
+
*/
|
69
|
+
function filterServiceStatusIncidents(incidents = [], tickers = []) {
|
70
|
+
if (!tickers.length || !incidents.length)
|
52
71
|
return [];
|
53
|
-
}
|
54
|
-
const
|
55
|
-
return incidents.filter(({ components }) =>
|
56
|
-
components
|
57
|
-
|
72
|
+
const tickerRegex = new RegExp(`\\b(${tickers.map(escapeRegExp).join("|")})\\b`, "i");
|
73
|
+
const ledgerComponentsSet = new Set(ledger_components_1.LEDGER_COMPONENTS.map(component => sanitizeName(component)));
|
74
|
+
return incidents.filter(({ components }) => {
|
75
|
+
if (!components?.length)
|
76
|
+
return true;
|
77
|
+
return components.some(({ name }) => {
|
78
|
+
const sanitizedName = sanitizeName(name);
|
79
|
+
return ledgerComponentsSet.has(sanitizedName) || tickerRegex.test(sanitizedName);
|
80
|
+
});
|
81
|
+
});
|
58
82
|
}
|
59
83
|
exports.filterServiceStatusIncidents = filterServiceStatusIncidents;
|
60
84
|
// filter out service status incidents by given currencies or fallback on context currencies
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA6F;AAE7F,gDAAsC;AACtC,mCAAqC;AACrC,yCAA2C;AAC3C,uCAAiD;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,88 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const index_1 = require("./index");
|
4
|
+
const ledger_components_1 = require("./ledger-components");
|
5
|
+
const makeIncident = (overrides = {}) => ({
|
6
|
+
created_at: "2025-01-01T00:00:00Z",
|
7
|
+
id: Math.random().toString(16).slice(2),
|
8
|
+
impact: "minor",
|
9
|
+
incident_updates: [],
|
10
|
+
monitoring_at: null,
|
11
|
+
name: "Test incident",
|
12
|
+
page_id: null,
|
13
|
+
resolved_at: null,
|
14
|
+
shortlink: null,
|
15
|
+
status: "investigating",
|
16
|
+
updated_at: null,
|
17
|
+
...overrides,
|
18
|
+
});
|
19
|
+
describe("filterServiceStatusIncidents", () => {
|
20
|
+
it("returns empty when no tickers or no incidents", () => {
|
21
|
+
expect((0, index_1.filterServiceStatusIncidents)([], ["BTC"]).length).toBe(0);
|
22
|
+
expect((0, index_1.filterServiceStatusIncidents)([makeIncident()], []).length).toBe(0);
|
23
|
+
});
|
24
|
+
it("matches incidents with known Ledger components (case-insensitive)", () => {
|
25
|
+
const incidents = [
|
26
|
+
makeIncident({ components: [{ id: "1", name: "Ledger Application Store" }] }),
|
27
|
+
makeIncident({ components: [{ id: "2", name: "ledger appliCAtion store" }] }),
|
28
|
+
makeIncident({ components: [{ id: "3", name: "Unknown Component" }] }),
|
29
|
+
];
|
30
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, ["BTC"]);
|
31
|
+
expect(result.map(i => i.components?.[0].id)).toEqual(["1", "2"]);
|
32
|
+
});
|
33
|
+
it("matches incidents if a component contains a tracked ticker as a whole word (case-insensitive)", () => {
|
34
|
+
const incidents = [
|
35
|
+
makeIncident({ components: [{ id: "1", name: "BTC Node" }] }),
|
36
|
+
makeIncident({ components: [{ id: "2", name: "eth Node" }] }),
|
37
|
+
makeIncident({ components: [{ id: "3", name: "TETHER Service" }] }),
|
38
|
+
makeIncident({ components: [{ id: "4", name: "NOTBTCService" }] }),
|
39
|
+
];
|
40
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, ["BTC", "ETH"]);
|
41
|
+
expect(result.map(i => i.components?.[0].id)).toEqual(["1", "2"]);
|
42
|
+
});
|
43
|
+
it("includes incidents with no components array or empty array", () => {
|
44
|
+
const incidents = [
|
45
|
+
makeIncident({ components: undefined }),
|
46
|
+
makeIncident({ components: [] }),
|
47
|
+
];
|
48
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, ["BTC"]);
|
49
|
+
expect(result.length).toBe(2);
|
50
|
+
});
|
51
|
+
it("escapes tickers so special regex characters do not break matching", () => {
|
52
|
+
const incidents = [
|
53
|
+
makeIncident({ components: [{ id: "1", name: "USDT Node" }] }),
|
54
|
+
makeIncident({ components: [{ id: "2", name: "US.DT Node" }] }),
|
55
|
+
makeIncident({ components: [{ id: "3", name: "(USDT) Node" }] }),
|
56
|
+
makeIncident({ components: [{ id: "4", name: "Ethereum Node" }] }),
|
57
|
+
makeIncident({ components: [{ id: "5", name: "Ethereum (ETH) swap issue" }] }),
|
58
|
+
];
|
59
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, ["USDT", "ETH"]);
|
60
|
+
expect(result.map(i => i.components?.[0].id)).toEqual(["1", "3", "5"]);
|
61
|
+
expect(result.length).toBe(3);
|
62
|
+
});
|
63
|
+
it("matches incidents for all known Ledger components", () => {
|
64
|
+
const incidents = ledger_components_1.LEDGER_COMPONENTS.map((name, index) => makeIncident({ components: [{ id: `${index + 1}`, name }] }));
|
65
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, ["BTC"]);
|
66
|
+
expect(result.length).toBe(ledger_components_1.LEDGER_COMPONENTS.length);
|
67
|
+
});
|
68
|
+
it("filters correctly with common tickers", () => {
|
69
|
+
const tickers = ["XRP", "SOL", "ETH", "BTC", "ADA", "USDC", "USDT"];
|
70
|
+
const incidents = [
|
71
|
+
makeIncident({ components: [{ id: "1", name: "BTC Node" }] }),
|
72
|
+
makeIncident({ components: [{ id: "2", name: "eth Node" }] }),
|
73
|
+
makeIncident({ components: [{ id: "3", name: "ADA-Service" }] }),
|
74
|
+
makeIncident({ components: [{ id: "4", name: "usdc gateway" }] }),
|
75
|
+
makeIncident({ components: [{ id: "5", name: "NOTUSDTService" }] }),
|
76
|
+
makeIncident({ components: [{ id: "6", name: "USDT" }] }),
|
77
|
+
makeIncident({ components: [{ id: "7", name: "xrp relayer" }] }),
|
78
|
+
makeIncident({ components: [{ id: "8", name: "SOL Node" }] }),
|
79
|
+
makeIncident({ components: [{ id: "9", name: "SOLANA Node" }] }),
|
80
|
+
makeIncident({ components: [{ id: "10", name: "Random Service" }] }),
|
81
|
+
makeIncident({ components: [] }),
|
82
|
+
];
|
83
|
+
const result = (0, index_1.filterServiceStatusIncidents)(incidents, tickers);
|
84
|
+
expect(result.map(i => i.components?.[0]?.id)).toEqual(["1", "2", "3", "4", "6", "7", "8"]);
|
85
|
+
expect(result.length).toBe(8);
|
86
|
+
});
|
87
|
+
});
|
88
|
+
//# sourceMappingURL=index.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/index.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export declare const LEDGER_COMPONENTS: readonly ["Ledger Application Store", "Ledger Live Security Services", "Swap API", "Buy", "Earn Dashboard", "Crypto Assets Service", "Cloud Sync", "Trustchain", "Loyalty Program", "Card Program"];
|
2
|
+
//# sourceMappingURL=ledger-components.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ledger-components.d.ts","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/ledger-components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,qMAWpB,CAAC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.LEDGER_COMPONENTS = void 0;
|
4
|
+
exports.LEDGER_COMPONENTS = [
|
5
|
+
"Ledger Application Store",
|
6
|
+
"Ledger Live Security Services",
|
7
|
+
"Swap API",
|
8
|
+
"Buy",
|
9
|
+
"Earn Dashboard",
|
10
|
+
"Crypto Assets Service",
|
11
|
+
"Cloud Sync",
|
12
|
+
"Trustchain",
|
13
|
+
"Loyalty Program",
|
14
|
+
"Card Program",
|
15
|
+
];
|
16
|
+
//# sourceMappingURL=ledger-components.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ledger-components.js","sourceRoot":"","sources":["../../../src/notifications/ServiceStatusProvider/ledger-components.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,0BAA0B;IAC1B,+BAA+B;IAC/B,UAAU;IACV,KAAK;IACL,gBAAgB;IAChB,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,cAAc;CACN,CAAC"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { RPCHandler } from "@ledgerhq/wallet-api-server";
|
2
2
|
import { Account, AccountLike, AnyMessage, Operation, SignedOperation } from "@ledgerhq/types-live";
|
3
|
-
import { MessageSignParams, MessageSignResult, SignOptions, TransactionOptions, TransactionSignAndBroadcastParams, TransactionSignAndBroadcastResult, TransactionSignParams, TransactionSignResult } from "@ledgerhq/wallet-api-acre-module";
|
4
|
-
import { TrackingAPI } from "./tracking";
|
5
|
-
import { AppManifest } from "../types";
|
3
|
+
import { MessageSignParams, MessageSignResult, SignOptions, TransactionOptions, TransactionSignAndBroadcastParams, TransactionSignAndBroadcastResult, TransactionSignParams, TransactionSignResult, RegisterYieldBearingEthereumAddressParams, RegisterYieldBearingEthereumAddressResult } from "@ledgerhq/wallet-api-acre-module";
|
6
4
|
import { Transaction } from "../../generated/types";
|
7
|
-
|
5
|
+
import { AppManifest } from "../types";
|
6
|
+
import { TrackingAPI } from "./tracking";
|
7
|
+
export type ACREUiHooks = {
|
8
8
|
"custom.acre.messageSign": (params: {
|
9
9
|
account: AccountLike;
|
10
10
|
message: AnyMessage;
|
@@ -26,8 +26,15 @@ type ACREUiHooks = {
|
|
26
26
|
onError: (error: Error) => void;
|
27
27
|
}) => void;
|
28
28
|
"custom.acre.transactionBroadcast"?: (account: AccountLike, parentAccount: Account | undefined, mainAccount: Account, optimisticOperation: Operation) => void;
|
29
|
+
"custom.acre.registerAccount": (params: {
|
30
|
+
parentAccount: Account;
|
31
|
+
accountName: string;
|
32
|
+
existingAccounts: Account[];
|
33
|
+
onSuccess: () => void;
|
34
|
+
onError: (error: Error) => void;
|
35
|
+
}) => void;
|
29
36
|
};
|
30
|
-
export declare const handlers: ({ accounts, tracking, manifest, uiHooks: { "custom.acre.messageSign": uiMessageSign, "custom.acre.transactionSign": uiTransactionSign, "custom.acre.transactionBroadcast": uiTransactionBroadcast, }, }: {
|
37
|
+
export declare const handlers: ({ accounts, tracking, manifest, uiHooks: { "custom.acre.messageSign": uiMessageSign, "custom.acre.transactionSign": uiTransactionSign, "custom.acre.transactionBroadcast": uiTransactionBroadcast, "custom.acre.registerAccount": uiRegisterAccount, }, }: {
|
31
38
|
accounts: AccountLike[];
|
32
39
|
tracking: TrackingAPI;
|
33
40
|
manifest: AppManifest;
|
@@ -36,6 +43,6 @@ export declare const handlers: ({ accounts, tracking, manifest, uiHooks: { "cust
|
|
36
43
|
readonly "custom.acre.messageSign": RPCHandler<MessageSignResult, MessageSignParams>;
|
37
44
|
readonly "custom.acre.transactionSign": RPCHandler<TransactionSignResult, TransactionSignParams>;
|
38
45
|
readonly "custom.acre.transactionSignAndBroadcast": RPCHandler<TransactionSignAndBroadcastResult, TransactionSignAndBroadcastParams>;
|
46
|
+
readonly "custom.acre.registerYieldBearingEthereumAddress": RPCHandler<RegisterYieldBearingEthereumAddressResult, RegisterYieldBearingEthereumAddressParams>;
|
39
47
|
};
|
40
|
-
export {};
|
41
48
|
//# sourceMappingURL=server.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/ACRE/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,6BAA6B,CAAC;AAQxE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/ACRE/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,6BAA6B,CAAC;AAQxE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,iCAAiC,EACjC,iCAAiC,EACjC,qBAAqB,EACrB,qBAAqB,EACrB,yCAAyC,EACzC,yCAAyC,EAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwBzC,MAAM,MAAM,WAAW,GAAG;IACxB,yBAAyB,EAAE,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,WAAW,CAAC;QACrB,OAAO,EAAE,UAAU,CAAC;QACpB,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;KACtB,KAAK,IAAI,CAAC;IACX,6BAA6B,EAAE,CAAC,MAAM,EAAE;QACtC,OAAO,EAAE,WAAW,CAAC;QACrB,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;QACnC,aAAa,EAAE;YACb,WAAW,EAAE,OAAO,CAAC;YACrB,eAAe,EAAE,OAAO,CAAC;YACzB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;SAC9B,CAAC;QACF,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,SAAS,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;QACtD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACjC,KAAK,IAAI,CAAC;IACX,kCAAkC,CAAC,EAAE,CACnC,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,OAAO,GAAG,SAAS,EAClC,WAAW,EAAE,OAAO,EACpB,mBAAmB,EAAE,SAAS,KAC3B,IAAI,CAAC;IACV,6BAA6B,EAAE,CAAC,MAAM,EAAE;QACtC,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;QACtB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACjC,KAAK,IAAI,CAAC;CACZ,CAAC;AAwGF,eAAO,MAAM,QAAQ;cAWT,WAAW,EAAE;cACb,WAAW;cACX,WAAW;aACZ,WAAW;;;;;;CA8RrB,CAAC"}
|
@@ -1,4 +1,7 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.handlers = void 0;
|
4
7
|
/* eslint-disable no-console */
|
@@ -6,11 +9,89 @@ const wallet_api_server_1 = require("@ledgerhq/wallet-api-server");
|
|
6
9
|
const wallet_api_core_1 = require("@ledgerhq/wallet-api-core");
|
7
10
|
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
8
11
|
const cryptoassets_1 = require("@ledgerhq/cryptoassets");
|
12
|
+
const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
|
9
13
|
const converters_1 = require("../converters");
|
10
14
|
const bridge_1 = require("../../bridge");
|
11
15
|
const errors_1 = require("@ledgerhq/errors");
|
12
16
|
const live_env_1 = require("@ledgerhq/live-env");
|
13
|
-
const
|
17
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
18
|
+
// Helper function to validate Ethereum address format
|
19
|
+
function isValidEthereumAddress(address) {
|
20
|
+
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
21
|
+
}
|
22
|
+
// Helper function to validate all inputs before account creation
|
23
|
+
function validateInputs(params) {
|
24
|
+
const { ethereumAddress, tokenContractAddress, tokenTicker, meta } = params;
|
25
|
+
// Validate Ethereum address format
|
26
|
+
if (!ethereumAddress) {
|
27
|
+
throw new Error("Ethereum address is required");
|
28
|
+
}
|
29
|
+
if (!isValidEthereumAddress(ethereumAddress)) {
|
30
|
+
throw new Error("Invalid Ethereum address format");
|
31
|
+
}
|
32
|
+
// Validate that at least one token identifier is provided
|
33
|
+
if (!tokenContractAddress && !tokenTicker) {
|
34
|
+
throw new Error("Either tokenContractAddress or tokenTicker must be provided");
|
35
|
+
}
|
36
|
+
return { ethereumAddress, tokenContractAddress, tokenTicker, meta };
|
37
|
+
}
|
38
|
+
// Helper function to find acreToken by address or token id
|
39
|
+
function findAcreToken(tokenContractAddress, tokenTicker) {
|
40
|
+
let foundToken;
|
41
|
+
// Try to find token by contract address first (if provided)
|
42
|
+
if (tokenContractAddress) {
|
43
|
+
foundToken = (0, cryptoassets_1.findTokenByAddressInCurrency)(tokenContractAddress, "ethereum");
|
44
|
+
}
|
45
|
+
else if (tokenTicker) {
|
46
|
+
foundToken = (0, cryptoassets_1.findTokenById)(tokenTicker.toLowerCase());
|
47
|
+
}
|
48
|
+
if (!foundToken) {
|
49
|
+
throw new Error(`Token not found. Tried contract address: ${tokenContractAddress || "not provided"}, ticker: ${tokenTicker || "not provided"}`);
|
50
|
+
}
|
51
|
+
return { token: foundToken, contractAddress: foundToken.contractAddress };
|
52
|
+
}
|
53
|
+
// Helper function to generate unique account names with suffixes
|
54
|
+
// This is clearly a hack as we do not have account name on Account type, we leverage on how many accounts have acreBTC as token sub account to define the name
|
55
|
+
// This is made to help user to identify different ACRE account but not resilient to token account being wiped, emptied
|
56
|
+
// (empty subAccount would not been included in the list therefore parent account not considered as an acre account anymore).
|
57
|
+
function generateUniqueAccountName(existingAccounts, baseName, tokenAddress) {
|
58
|
+
const existingAccountWithAcreToken = existingAccounts.flatMap(account => account.subAccounts?.filter(subAccount => subAccount.token.contractAddress.toLowerCase() === tokenAddress.toLowerCase()) || []);
|
59
|
+
return existingAccountWithAcreToken.length > 0
|
60
|
+
? `${baseName} ${existingAccountWithAcreToken.length}`
|
61
|
+
: baseName;
|
62
|
+
}
|
63
|
+
// Helper function to create parent Ethereum account
|
64
|
+
function createParentAccount(ethereumAddress, ethereumCurrency) {
|
65
|
+
return {
|
66
|
+
type: "Account",
|
67
|
+
id: `js:2:ethereum:${ethereumAddress}:`,
|
68
|
+
seedIdentifier: `04${ethereumAddress.slice(2)}`,
|
69
|
+
derivationMode: "",
|
70
|
+
index: 0,
|
71
|
+
freshAddress: ethereumAddress,
|
72
|
+
freshAddressPath: "44'/60'/0'/0/0",
|
73
|
+
used: false,
|
74
|
+
blockHeight: 0,
|
75
|
+
creationDate: new Date(),
|
76
|
+
balance: new bignumber_js_1.default(0),
|
77
|
+
spendableBalance: new bignumber_js_1.default(0),
|
78
|
+
operationsCount: 0,
|
79
|
+
operations: [],
|
80
|
+
pendingOperations: [],
|
81
|
+
currency: ethereumCurrency,
|
82
|
+
lastSyncDate: new Date(),
|
83
|
+
swapHistory: [],
|
84
|
+
balanceHistoryCache: {
|
85
|
+
HOUR: { latestDate: Date.now(), balances: [] },
|
86
|
+
DAY: { latestDate: Date.now(), balances: [] },
|
87
|
+
WEEK: { latestDate: Date.now(), balances: [] },
|
88
|
+
},
|
89
|
+
syncHash: "0x00000000",
|
90
|
+
subAccounts: [],
|
91
|
+
nfts: [],
|
92
|
+
};
|
93
|
+
}
|
94
|
+
const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.acre.messageSign": uiMessageSign, "custom.acre.transactionSign": uiTransactionSign, "custom.acre.transactionBroadcast": uiTransactionBroadcast, "custom.acre.registerAccount": uiRegisterAccount, }, }) => {
|
14
95
|
function signTransaction({ accountId: walletAccountId, rawTransaction, options, tokenCurrency, }) {
|
15
96
|
const transaction = (0, wallet_api_core_1.deserializeTransaction)(rawTransaction);
|
16
97
|
tracking.signTransactionRequested(manifest);
|
@@ -183,6 +264,66 @@ const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.acre.messag
|
|
183
264
|
transactionHash: optimisticOperation.hash,
|
184
265
|
};
|
185
266
|
}),
|
267
|
+
"custom.acre.registerYieldBearingEthereumAddress": (0, wallet_api_server_1.customWrapper)(async (params) => {
|
268
|
+
if (!params) {
|
269
|
+
return Promise.reject(new Error("Parameters required"));
|
270
|
+
}
|
271
|
+
const validatedInputs = validateInputs(params);
|
272
|
+
const ethereumCurrency = (0, currencies_1.getCryptoCurrencyById)("ethereum");
|
273
|
+
const { token: existingToken, contractAddress: finalTokenContractAddress } = findAcreToken(validatedInputs.tokenContractAddress, validatedInputs.tokenTicker);
|
274
|
+
const existingBearingAccount = accounts.find(account => "freshAddress" in account &&
|
275
|
+
account.freshAddress === validatedInputs.ethereumAddress);
|
276
|
+
const baseName = "Yield-bearing BTC on ACRE";
|
277
|
+
// Account already added, skip registration.
|
278
|
+
if (existingBearingAccount) {
|
279
|
+
return {
|
280
|
+
success: true,
|
281
|
+
accountName: baseName,
|
282
|
+
parentAccountId: existingBearingAccount.id,
|
283
|
+
tokenAccountId: existingBearingAccount.id,
|
284
|
+
ethereumAddress: validatedInputs.ethereumAddress,
|
285
|
+
tokenContractAddress: finalTokenContractAddress,
|
286
|
+
meta: validatedInputs.meta,
|
287
|
+
};
|
288
|
+
}
|
289
|
+
if (uiRegisterAccount) {
|
290
|
+
// Create account & manage the case where an ACRE account has been already registered on another Ethereum address
|
291
|
+
// Filter to have only root accounts
|
292
|
+
const existingParentAccounts = accounts.filter((acc) => acc.type === "Account");
|
293
|
+
const accountName = generateUniqueAccountName(existingParentAccounts, baseName, finalTokenContractAddress);
|
294
|
+
const parentAccount = createParentAccount(validatedInputs.ethereumAddress, ethereumCurrency);
|
295
|
+
const tokenAccount = (0, index_1.makeEmptyTokenAccount)(parentAccount, existingToken);
|
296
|
+
// Add token account as sub-account of parent account
|
297
|
+
const parentAccountWithSubAccount = {
|
298
|
+
...parentAccount,
|
299
|
+
subAccounts: [tokenAccount],
|
300
|
+
};
|
301
|
+
return new Promise((resolve, reject) => {
|
302
|
+
uiRegisterAccount({
|
303
|
+
parentAccount: parentAccountWithSubAccount,
|
304
|
+
accountName,
|
305
|
+
existingAccounts: existingParentAccounts,
|
306
|
+
onSuccess: () => {
|
307
|
+
resolve({
|
308
|
+
success: true,
|
309
|
+
accountName,
|
310
|
+
parentAccountId: parentAccountWithSubAccount.id,
|
311
|
+
tokenAccountId: tokenAccount.id,
|
312
|
+
ethereumAddress: validatedInputs.ethereumAddress,
|
313
|
+
tokenContractAddress: finalTokenContractAddress,
|
314
|
+
meta: validatedInputs.meta,
|
315
|
+
});
|
316
|
+
},
|
317
|
+
onError: error => {
|
318
|
+
reject(error);
|
319
|
+
},
|
320
|
+
});
|
321
|
+
});
|
322
|
+
}
|
323
|
+
else {
|
324
|
+
throw new Error("No account registration UI hook available");
|
325
|
+
}
|
326
|
+
}),
|
186
327
|
};
|
187
328
|
};
|
188
329
|
exports.handlers = handlers;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/wallet-api/ACRE/server.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/wallet-api/ACRE/server.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/ACRE/server.test.ts"],"names":[],"mappings":""}
|