@ledgerhq/live-common 34.42.0-nightly.3 → 34.42.0
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/__tests__/migration/account-migration.js +0 -3
- package/lib/__tests__/migration/account-migration.js.map +1 -1
- package/lib/__tests__/test-helpers/environment.js +0 -3
- package/lib/__tests__/test-helpers/environment.js.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +1 -3
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js +0 -6
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib/bridge/impl.d.ts +0 -2
- package/lib/bridge/impl.d.ts.map +1 -1
- package/lib/bridge/impl.js +1 -8
- package/lib/bridge/impl.js.map +1 -1
- package/lib/bridge/useBridgeTransaction.test.js +1 -1
- package/lib/bridge/useBridgeTransaction.test.js.map +1 -1
- package/lib/e2e/index.d.ts +0 -6
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +2 -5
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/families/evm/config.d.ts.map +1 -1
- package/lib/families/evm/config.js +0 -51
- package/lib/families/evm/config.js.map +1 -1
- package/lib/families/evm/walletApiAdapter.js +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts +0 -3
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +0 -3
- package/lib/featureFlags/defaultFeatures.js.map +1 -1
- package/lib/modularDrawer/utils/index.d.ts +1 -2
- package/lib/modularDrawer/utils/index.d.ts.map +1 -1
- package/lib/modularDrawer/utils/index.js +1 -3
- package/lib/modularDrawer/utils/index.js.map +1 -1
- package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
- package/lib/wallet-api/Exchange/server.js +6 -6
- package/lib/wallet-api/Exchange/server.js.map +1 -1
- package/lib-es/__tests__/migration/account-migration.js +0 -3
- package/lib-es/__tests__/migration/account-migration.js.map +1 -1
- package/lib-es/__tests__/test-helpers/environment.js +0 -3
- package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +1 -3
- 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 +0 -6
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib-es/bridge/impl.d.ts +0 -2
- package/lib-es/bridge/impl.d.ts.map +1 -1
- package/lib-es/bridge/impl.js +0 -6
- package/lib-es/bridge/impl.js.map +1 -1
- package/lib-es/bridge/useBridgeTransaction.test.js +1 -1
- package/lib-es/bridge/useBridgeTransaction.test.js.map +1 -1
- package/lib-es/e2e/index.d.ts +0 -6
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/e2e/speculos.d.ts.map +1 -1
- package/lib-es/e2e/speculos.js +2 -5
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/families/evm/config.d.ts.map +1 -1
- package/lib-es/families/evm/config.js +0 -51
- package/lib-es/families/evm/config.js.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.js +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts +0 -3
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +0 -3
- package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
- package/lib-es/modularDrawer/utils/index.d.ts +1 -2
- package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/index.js +1 -2
- package/lib-es/modularDrawer/utils/index.js.map +1 -1
- package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
- package/lib-es/wallet-api/Exchange/server.js +6 -6
- package/lib-es/wallet-api/Exchange/server.js.map +1 -1
- package/package.json +64 -64
- package/src/__tests__/migration/account-migration.ts +0 -3
- package/src/__tests__/test-helpers/environment.ts +0 -3
- package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +1 -8
- package/src/bridge/impl.ts +0 -8
- package/src/bridge/useBridgeTransaction.test.ts +1 -1
- package/src/e2e/speculos.ts +2 -5
- package/src/families/evm/config.ts +0 -51
- package/src/families/evm/walletApiAdapter.ts +1 -1
- package/src/featureFlags/defaultFeatures.ts +0 -3
- package/src/modularDrawer/utils/index.ts +1 -2
- package/src/wallet-api/Exchange/server.ts +6 -7
- package/lib/bridge/crypto-assets/index.d.ts +0 -4
- package/lib/bridge/crypto-assets/index.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/index.js +0 -52
- package/lib/bridge/crypto-assets/index.js.map +0 -1
- package/lib/bridge/crypto-assets/index.test.d.ts +0 -2
- package/lib/bridge/crypto-assets/index.test.d.ts.map +0 -1
- package/lib/bridge/crypto-assets/index.test.js +0 -85
- package/lib/bridge/crypto-assets/index.test.js.map +0 -1
- package/lib/e2e/families/osmosis.d.ts +0 -3
- package/lib/e2e/families/osmosis.d.ts.map +0 -1
- package/lib/e2e/families/osmosis.js +0 -19
- package/lib/e2e/families/osmosis.js.map +0 -1
- package/lib/modularDrawer/__mocks__/currencies.mock.d.ts +0 -17
- package/lib/modularDrawer/__mocks__/currencies.mock.d.ts.map +0 -1
- package/lib/modularDrawer/__mocks__/currencies.mock.js +0 -60
- package/lib/modularDrawer/__mocks__/currencies.mock.js.map +0 -1
- package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
- package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
- package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -41
- package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
- package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.d.ts +0 -2
- package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.d.ts.map +0 -1
- package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js +0 -28
- package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js.map +0 -1
- package/lib/modularDrawer/utils/haveOneCommonProvider.d.ts +0 -11
- package/lib/modularDrawer/utils/haveOneCommonProvider.d.ts.map +0 -1
- package/lib/modularDrawer/utils/haveOneCommonProvider.js +0 -29
- package/lib/modularDrawer/utils/haveOneCommonProvider.js.map +0 -1
- package/lib-es/bridge/crypto-assets/index.d.ts +0 -4
- package/lib-es/bridge/crypto-assets/index.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/index.js +0 -24
- package/lib-es/bridge/crypto-assets/index.js.map +0 -1
- package/lib-es/bridge/crypto-assets/index.test.d.ts +0 -2
- package/lib-es/bridge/crypto-assets/index.test.d.ts.map +0 -1
- package/lib-es/bridge/crypto-assets/index.test.js +0 -60
- package/lib-es/bridge/crypto-assets/index.test.js.map +0 -1
- package/lib-es/e2e/families/osmosis.d.ts +0 -3
- package/lib-es/e2e/families/osmosis.d.ts.map +0 -1
- package/lib-es/e2e/families/osmosis.js +0 -12
- package/lib-es/e2e/families/osmosis.js.map +0 -1
- package/lib-es/modularDrawer/__mocks__/currencies.mock.d.ts +0 -17
- package/lib-es/modularDrawer/__mocks__/currencies.mock.d.ts.map +0 -1
- package/lib-es/modularDrawer/__mocks__/currencies.mock.js +0 -55
- package/lib-es/modularDrawer/__mocks__/currencies.mock.js.map +0 -1
- package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
- package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
- package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -38
- package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
- package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.d.ts +0 -2
- package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js +0 -26
- package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js.map +0 -1
- package/lib-es/modularDrawer/utils/haveOneCommonProvider.d.ts +0 -11
- package/lib-es/modularDrawer/utils/haveOneCommonProvider.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/haveOneCommonProvider.js +0 -25
- package/lib-es/modularDrawer/utils/haveOneCommonProvider.js.map +0 -1
- package/src/bridge/crypto-assets/index.test.ts +0 -71
- package/src/bridge/crypto-assets/index.ts +0 -30
- package/src/e2e/families/osmosis.ts +0 -13
- package/src/modularDrawer/__mocks__/currencies.mock.ts +0 -62
- package/src/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.ts +0 -49
- package/src/modularDrawer/utils/__tests__/haveOneCommonProvider.test.ts +0 -34
- package/src/modularDrawer/utils/haveOneCommonProvider.ts +0 -31
@@ -1,71 +0,0 @@
|
|
1
|
-
import { LiveConfig } from "@ledgerhq/live-config/LiveConfig";
|
2
|
-
import { getCryptoAssetsStore, setCryptoAssetsStore } from ".";
|
3
|
-
import * as legacy from "@ledgerhq/cryptoassets/tokens";
|
4
|
-
import { CryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/type";
|
5
|
-
|
6
|
-
describe("Testing CryptoAssetStore", () => {
|
7
|
-
it("should return the default methods from cryptoassets libs when feature flag does not exists", () => {
|
8
|
-
LiveConfig.setConfig({
|
9
|
-
some_other_feature: {
|
10
|
-
type: "boolean",
|
11
|
-
default: true,
|
12
|
-
},
|
13
|
-
});
|
14
|
-
|
15
|
-
const store = getCryptoAssetsStore();
|
16
|
-
expect(store).toEqual({
|
17
|
-
findTokenByAddress: legacy.findTokenByAddress,
|
18
|
-
getTokenById: legacy.getTokenById,
|
19
|
-
findTokenById: legacy.findTokenById,
|
20
|
-
findTokenByAddressInCurrency: legacy.findTokenByAddressInCurrency,
|
21
|
-
findTokenByTicker: legacy.findTokenByTicker,
|
22
|
-
});
|
23
|
-
});
|
24
|
-
|
25
|
-
it("should return the default methods from cryptoassets libs when feature flag is disabled", () => {
|
26
|
-
LiveConfig.setConfig({
|
27
|
-
feature_cal_lazy_loading: {
|
28
|
-
type: "boolean",
|
29
|
-
default: false,
|
30
|
-
},
|
31
|
-
});
|
32
|
-
|
33
|
-
const store = getCryptoAssetsStore();
|
34
|
-
expect(store).toEqual({
|
35
|
-
findTokenByAddress: legacy.findTokenByAddress,
|
36
|
-
getTokenById: legacy.getTokenById,
|
37
|
-
findTokenById: legacy.findTokenById,
|
38
|
-
findTokenByAddressInCurrency: legacy.findTokenByAddressInCurrency,
|
39
|
-
findTokenByTicker: legacy.findTokenByTicker,
|
40
|
-
});
|
41
|
-
});
|
42
|
-
|
43
|
-
it("should throw an error when no store is set and feature flag is enabled", () => {
|
44
|
-
LiveConfig.setConfig({
|
45
|
-
feature_cal_lazy_loading: {
|
46
|
-
type: "boolean",
|
47
|
-
default: true,
|
48
|
-
},
|
49
|
-
});
|
50
|
-
|
51
|
-
expect(() => getCryptoAssetsStore()).toThrow(
|
52
|
-
"CryptoAssetsStore is not set. Please call setCryptoAssetsStore first.",
|
53
|
-
);
|
54
|
-
});
|
55
|
-
|
56
|
-
it("should throw return the new store when feature flag is enabled", () => {
|
57
|
-
LiveConfig.setConfig({
|
58
|
-
feature_cal_lazy_loading: {
|
59
|
-
type: "boolean",
|
60
|
-
default: true,
|
61
|
-
},
|
62
|
-
});
|
63
|
-
|
64
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
65
|
-
const newStore = {} as unknown as CryptoAssetsStore;
|
66
|
-
setCryptoAssetsStore(newStore);
|
67
|
-
|
68
|
-
const store = getCryptoAssetsStore();
|
69
|
-
expect(store).toBe(newStore);
|
70
|
-
});
|
71
|
-
});
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { LiveConfig } from "@ledgerhq/live-config/LiveConfig";
|
2
|
-
import { CryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/type";
|
3
|
-
import * as legacy from "@ledgerhq/cryptoassets/tokens";
|
4
|
-
|
5
|
-
let cryptoAssetsStore: CryptoAssetsStore | undefined = undefined;
|
6
|
-
|
7
|
-
export function setCryptoAssetsStore(store: CryptoAssetsStore) {
|
8
|
-
cryptoAssetsStore = store;
|
9
|
-
}
|
10
|
-
|
11
|
-
const legacyStore: CryptoAssetsStore = {
|
12
|
-
findTokenByAddress: legacy.findTokenByAddress,
|
13
|
-
getTokenById: legacy.getTokenById,
|
14
|
-
findTokenById: legacy.findTokenById,
|
15
|
-
findTokenByAddressInCurrency: legacy.findTokenByAddressInCurrency,
|
16
|
-
findTokenByTicker: legacy.findTokenByTicker,
|
17
|
-
};
|
18
|
-
|
19
|
-
export function getCryptoAssetsStore(): CryptoAssetsStore {
|
20
|
-
const featureEnabled = LiveConfig.getValueByKey("feature_cal_lazy_loading");
|
21
|
-
if (!featureEnabled) {
|
22
|
-
return legacyStore;
|
23
|
-
}
|
24
|
-
|
25
|
-
if (!cryptoAssetsStore) {
|
26
|
-
throw new Error("CryptoAssetsStore is not set. Please call setCryptoAssetsStore first.");
|
27
|
-
}
|
28
|
-
|
29
|
-
return cryptoAssetsStore;
|
30
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { Delegate } from "../models/Delegate";
|
2
|
-
import { containsSubstringInEvent, pressBoth, pressUntilTextFound, waitFor } from "../speculos";
|
3
|
-
import { DeviceLabels } from "../enum/DeviceLabels";
|
4
|
-
import expect from "expect";
|
5
|
-
|
6
|
-
export async function delegateOsmosis(delegatingAccount: Delegate) {
|
7
|
-
await waitFor(DeviceLabels.PLEASE_REVIEW);
|
8
|
-
const events = await pressUntilTextFound(DeviceLabels.CAPS_APPROVE);
|
9
|
-
const amountInUosmo = (Number(delegatingAccount.amount) * 1_000_000).toString();
|
10
|
-
const isAmountCorrect = containsSubstringInEvent(amountInUosmo, events);
|
11
|
-
expect(isAmountCorrect).toBeTruthy();
|
12
|
-
await pressBoth();
|
13
|
-
}
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index";
|
2
|
-
import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
3
|
-
|
4
|
-
export const mockBtcCryptoCurrency = getCryptoCurrencyById("bitcoin");
|
5
|
-
export const mockEthCryptoCurrency = getCryptoCurrencyById("ethereum");
|
6
|
-
export const mockArbitrumCryptoCurrency = getCryptoCurrencyById("arbitrum");
|
7
|
-
export const mockBaseCryptoCurrency = getCryptoCurrencyById("base");
|
8
|
-
export const mockScrollCryptoCurrency = getCryptoCurrencyById("scroll");
|
9
|
-
export const mockInjectiveCryptoCurrency = getCryptoCurrencyById("injective");
|
10
|
-
|
11
|
-
export const arbitrumToken: TokenCurrency = {
|
12
|
-
type: "TokenCurrency",
|
13
|
-
id: "arbitrum/erc20/arbitrum",
|
14
|
-
contractAddress: "0x912CE59144191C1204E64559FE8253a0e49E6548",
|
15
|
-
parentCurrency: mockArbitrumCryptoCurrency,
|
16
|
-
tokenType: "erc20",
|
17
|
-
name: "Arbitrum",
|
18
|
-
ticker: "ARB",
|
19
|
-
units: [
|
20
|
-
{
|
21
|
-
name: "Arbitrum",
|
22
|
-
code: "ARB",
|
23
|
-
magnitude: 18,
|
24
|
-
},
|
25
|
-
],
|
26
|
-
};
|
27
|
-
export const usdcToken: TokenCurrency = {
|
28
|
-
type: "TokenCurrency",
|
29
|
-
id: "ethereum/erc20/usd__coin",
|
30
|
-
contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
31
|
-
parentCurrency: mockEthCryptoCurrency,
|
32
|
-
tokenType: "erc20",
|
33
|
-
name: "USD Coin",
|
34
|
-
ticker: "USDC",
|
35
|
-
units: [
|
36
|
-
{
|
37
|
-
name: "USD Coin",
|
38
|
-
code: "USDC",
|
39
|
-
magnitude: 6,
|
40
|
-
},
|
41
|
-
],
|
42
|
-
};
|
43
|
-
|
44
|
-
export const findCryptoCurrencyById = (id: string) =>
|
45
|
-
[mockBtcCryptoCurrency, mockEthCryptoCurrency, mockArbitrumCryptoCurrency].find(a => a.id === id);
|
46
|
-
export const getTokenOrCryptoCurrencyById = (id: string) =>
|
47
|
-
[
|
48
|
-
mockBtcCryptoCurrency,
|
49
|
-
mockEthCryptoCurrency,
|
50
|
-
mockArbitrumCryptoCurrency,
|
51
|
-
arbitrumToken,
|
52
|
-
usdcToken,
|
53
|
-
].find(a => a.id === id);
|
54
|
-
|
55
|
-
export const mockCurrenciesByProvider = [
|
56
|
-
{
|
57
|
-
providerId: "ethereum",
|
58
|
-
currenciesByNetwork: [mockEthCryptoCurrency],
|
59
|
-
},
|
60
|
-
];
|
61
|
-
|
62
|
-
export const mockCurrencyIds = ["bitcoin", "ethereum", "arbitrum", "base"];
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import { LoadingStatus } from "@ledgerhq/live-common/deposit/type";
|
2
|
-
import {
|
3
|
-
arbitrumToken,
|
4
|
-
mockArbitrumCryptoCurrency,
|
5
|
-
mockBaseCryptoCurrency,
|
6
|
-
mockBtcCryptoCurrency,
|
7
|
-
mockEthCryptoCurrency,
|
8
|
-
mockInjectiveCryptoCurrency,
|
9
|
-
mockScrollCryptoCurrency,
|
10
|
-
usdcToken,
|
11
|
-
} from "./currencies.mock";
|
12
|
-
|
13
|
-
export const providers = [
|
14
|
-
{
|
15
|
-
providerId: "bitcoin",
|
16
|
-
currenciesByNetwork: [mockBtcCryptoCurrency],
|
17
|
-
},
|
18
|
-
{
|
19
|
-
providerId: "ethereum",
|
20
|
-
currenciesByNetwork: [
|
21
|
-
mockEthCryptoCurrency,
|
22
|
-
mockArbitrumCryptoCurrency,
|
23
|
-
mockBaseCryptoCurrency,
|
24
|
-
mockScrollCryptoCurrency,
|
25
|
-
],
|
26
|
-
},
|
27
|
-
{ providerId: "arbitrum", currenciesByNetwork: [arbitrumToken] },
|
28
|
-
{ providerId: "usd-coin", currenciesByNetwork: [usdcToken] },
|
29
|
-
{ providerId: "injective-protocol", currenciesByNetwork: [mockInjectiveCryptoCurrency] },
|
30
|
-
];
|
31
|
-
|
32
|
-
export const res = {
|
33
|
-
result: {
|
34
|
-
currenciesByProvider: providers,
|
35
|
-
sortedCryptoCurrencies: [
|
36
|
-
mockBtcCryptoCurrency,
|
37
|
-
mockEthCryptoCurrency,
|
38
|
-
mockArbitrumCryptoCurrency,
|
39
|
-
mockBaseCryptoCurrency,
|
40
|
-
mockScrollCryptoCurrency,
|
41
|
-
mockInjectiveCryptoCurrency,
|
42
|
-
],
|
43
|
-
},
|
44
|
-
};
|
45
|
-
|
46
|
-
export const useGroupedCurrenciesByProvider: jest.Mock = jest.fn(() => ({
|
47
|
-
...res,
|
48
|
-
loadingStatus: LoadingStatus.Success,
|
49
|
-
}));
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import { haveOneCommonProvider } from "../haveOneCommonProvider";
|
2
|
-
import { useGroupedCurrenciesByProvider } from "../../__mocks__/useGroupedCurrenciesByProvider.mock";
|
3
|
-
import { LoadingBasedGroupedCurrencies } from "@ledgerhq/live-common/deposit/type";
|
4
|
-
|
5
|
-
jest.mock("@ledgerhq/live-common/deposit/useGroupedCurrenciesByProvider.hook", () => ({
|
6
|
-
useGroupedCurrenciesByProvider: () => useGroupedCurrenciesByProvider(),
|
7
|
-
}));
|
8
|
-
|
9
|
-
describe("haveOneCommonProvider", () => {
|
10
|
-
it("should return false for an empty array", () => {
|
11
|
-
expect(haveOneCommonProvider([], [])).toBe(false);
|
12
|
-
});
|
13
|
-
|
14
|
-
it("should return true for a single currency with one provider", () => {
|
15
|
-
const { result } = useGroupedCurrenciesByProvider(true) as LoadingBasedGroupedCurrencies;
|
16
|
-
const { currenciesByProvider } = result;
|
17
|
-
|
18
|
-
expect(haveOneCommonProvider(["bitcoin"], currenciesByProvider)).toBe(true);
|
19
|
-
});
|
20
|
-
|
21
|
-
it("should return false for multiple currencies with different providers", () => {
|
22
|
-
const { result } = useGroupedCurrenciesByProvider(true) as LoadingBasedGroupedCurrencies;
|
23
|
-
const { currenciesByProvider } = result;
|
24
|
-
|
25
|
-
expect(haveOneCommonProvider(["bitcoin", "ethereum"], currenciesByProvider)).toBe(false);
|
26
|
-
});
|
27
|
-
|
28
|
-
it("should return true for multiple currencies with the same provider", () => {
|
29
|
-
const { result } = useGroupedCurrenciesByProvider(true) as LoadingBasedGroupedCurrencies;
|
30
|
-
const { currenciesByProvider } = result;
|
31
|
-
|
32
|
-
expect(haveOneCommonProvider(["ethereum", "arbitrum"], currenciesByProvider)).toBe(true);
|
33
|
-
});
|
34
|
-
});
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import { CurrenciesByProviderId } from "@ledgerhq/live-common/deposit/type";
|
2
|
-
|
3
|
-
/**
|
4
|
-
* This function checks if all currencies in the provided array
|
5
|
-
* it stopped at the first currency that does not match to prevent unnecessary iterations.
|
6
|
-
*
|
7
|
-
* @param currenciesIdsArray array of currency IDs to check
|
8
|
-
* @param currenciesByProvider array of currencies grouped by provider
|
9
|
-
* @returns boolean indicating whether all currencies in the array have one common provider
|
10
|
-
*/
|
11
|
-
export const haveOneCommonProvider = (
|
12
|
-
currenciesIdsArray: string[],
|
13
|
-
currenciesByProvider: CurrenciesByProviderId[],
|
14
|
-
): boolean => {
|
15
|
-
if (currenciesIdsArray.length === 0) return false;
|
16
|
-
|
17
|
-
const providerIds = new Set<string>();
|
18
|
-
|
19
|
-
for (const currencyId of currenciesIdsArray) {
|
20
|
-
for (const provider of currenciesByProvider) {
|
21
|
-
if (provider.currenciesByNetwork.some(currency => currency.id === currencyId)) {
|
22
|
-
providerIds.add(provider.providerId);
|
23
|
-
if (providerIds.size > 1) {
|
24
|
-
return false;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
return true;
|
31
|
-
};
|