@ledgerhq/live-common 34.33.0-nightly.3 → 34.33.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.
Files changed (45) hide show
  1. package/lib/DataModel.d.ts.map +1 -1
  2. package/lib/DataModel.js +8 -0
  3. package/lib/DataModel.js.map +1 -1
  4. package/lib/DataModel.test.js +46 -0
  5. package/lib/DataModel.test.js.map +1 -1
  6. package/lib/domain/getTokensWithFunds.d.ts +3 -0
  7. package/lib/domain/getTokensWithFunds.d.ts.map +1 -0
  8. package/lib/domain/getTokensWithFunds.js +36 -0
  9. package/lib/domain/getTokensWithFunds.js.map +1 -0
  10. package/lib/domain/getTokensWithFunds.test.d.ts +2 -0
  11. package/lib/domain/getTokensWithFunds.test.d.ts.map +1 -0
  12. package/lib/domain/getTokensWithFunds.test.js +71 -0
  13. package/lib/domain/getTokensWithFunds.test.js.map +1 -0
  14. package/lib/families/evm/config.d.ts.map +1 -1
  15. package/lib/families/evm/config.js +63 -0
  16. package/lib/families/evm/config.js.map +1 -1
  17. package/lib/families/solana/banner.test.js +1 -0
  18. package/lib/families/solana/banner.test.js.map +1 -1
  19. package/lib/wallet-api/constants.d.ts +1 -1
  20. package/lib-es/DataModel.d.ts.map +1 -1
  21. package/lib-es/DataModel.js +8 -0
  22. package/lib-es/DataModel.js.map +1 -1
  23. package/lib-es/DataModel.test.js +46 -0
  24. package/lib-es/DataModel.test.js.map +1 -1
  25. package/lib-es/domain/getTokensWithFunds.d.ts +3 -0
  26. package/lib-es/domain/getTokensWithFunds.d.ts.map +1 -0
  27. package/lib-es/domain/getTokensWithFunds.js +32 -0
  28. package/lib-es/domain/getTokensWithFunds.js.map +1 -0
  29. package/lib-es/domain/getTokensWithFunds.test.d.ts +2 -0
  30. package/lib-es/domain/getTokensWithFunds.test.d.ts.map +1 -0
  31. package/lib-es/domain/getTokensWithFunds.test.js +66 -0
  32. package/lib-es/domain/getTokensWithFunds.test.js.map +1 -0
  33. package/lib-es/families/evm/config.d.ts.map +1 -1
  34. package/lib-es/families/evm/config.js +63 -0
  35. package/lib-es/families/evm/config.js.map +1 -1
  36. package/lib-es/families/solana/banner.test.js +1 -0
  37. package/lib-es/families/solana/banner.test.js.map +1 -1
  38. package/lib-es/wallet-api/constants.d.ts +1 -1
  39. package/package.json +36 -36
  40. package/src/DataModel.test.ts +51 -0
  41. package/src/DataModel.ts +8 -2
  42. package/src/domain/getTokensWithFunds.test.ts +94 -0
  43. package/src/domain/getTokensWithFunds.ts +36 -0
  44. package/src/families/evm/config.ts +63 -0
  45. package/src/families/solana/banner.test.ts +1 -0
@@ -2,6 +2,10 @@ import { createDataModel } from "./DataModel";
2
2
  import { fromAccountRaw, toAccountRaw } from "./account";
3
3
  import { accountRawToAccountUserData } from "@ledgerhq/live-wallet/lib/store";
4
4
  import { APTOS_HARDENED_DERIVATION_PATH, APTOS_NON_HARDENED_DERIVATION_PATH, } from "./families/aptos/consts";
5
+ import { getCurrencyConfiguration } from "./config";
6
+ jest.mock("./config", () => ({
7
+ getCurrencyConfiguration: jest.fn(),
8
+ }));
5
9
  const opRetentionStategy = (maxDaysOld, keepFirst) => (op, index) => index < keepFirst || Date.now() - op.date.getTime() < 1000 * 60 * 60 * 24 * maxDaysOld;
6
10
  const schema = {
7
11
  migrations: [raw => raw],
@@ -24,6 +28,21 @@ const aptosAccount = {
24
28
  },
25
29
  version: 1,
26
30
  };
31
+ const evmAccount = {
32
+ data: {
33
+ currencyId: "ethereum",
34
+ operations: [
35
+ {
36
+ id: "op_evm_001",
37
+ },
38
+ {
39
+ id: "op_evm_002",
40
+ nftOperations: [{ id: "op_evm_nft_001" }],
41
+ },
42
+ ],
43
+ },
44
+ version: 1,
45
+ };
27
46
  describe("DataModel", () => {
28
47
  test("createDataModel for crypto.org account", () => {
29
48
  const migratedCryptoOrgAccount = createDataModel(schema).decode(cryptoOrgAccount);
@@ -37,5 +56,32 @@ describe("DataModel", () => {
37
56
  const migratedAptosAccountRaw = migratedAptosAccount.at(0);
38
57
  expect(migratedAptosAccountRaw.freshAddressPath).toEqual(APTOS_HARDENED_DERIVATION_PATH);
39
58
  });
59
+ describe("test for shownNfts true", () => {
60
+ beforeAll(() => {
61
+ getCurrencyConfiguration.mockReturnValue({
62
+ showNfts: true,
63
+ });
64
+ });
65
+ test("evm account", () => {
66
+ const data = createDataModel(schema).decode(evmAccount);
67
+ const account = data.at(0);
68
+ expect(account.operations).toEqual([
69
+ expect.objectContaining({ id: "op_evm_001" }),
70
+ expect.objectContaining({ id: "op_evm_002" }),
71
+ ]);
72
+ });
73
+ });
74
+ describe("test for shownNfts false", () => {
75
+ beforeAll(() => {
76
+ getCurrencyConfiguration.mockReturnValue({
77
+ showNfts: false,
78
+ });
79
+ });
80
+ test("evm account", () => {
81
+ const data = createDataModel(schema).decode(evmAccount);
82
+ const account = data.at(0);
83
+ expect(account.operations).toEqual([expect.objectContaining({ id: "op_evm_001" })]);
84
+ });
85
+ });
40
86
  });
41
87
  //# sourceMappingURL=DataModel.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataModel.test.js","sourceRoot":"","sources":["../src/DataModel.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,kBAAkB,GACtB,CAAC,UAAkB,EAAE,SAAiB,EAAE,EAAE,CAC1C,CAAC,EAAa,EAAE,KAAa,EAAW,EAAE,CACxC,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;AAE3F,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACxB,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACpF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,CAA6B,EAAc,EAAE,CACtE,YAAY,CACV;QACE,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACpE,EACD,QAAQ,CACT;CACJ,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;KACX;IACf,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE;QACJ,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,kCAAkC;KACvC;IACf,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,wBAAwB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClF,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE3D,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAEhE,CAAC;QACF,MAAM,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAY,CAAC;QACtE,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"DataModel.test.js","sourceRoot":"","sources":["../src/DataModel.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Account } from "@ledgerhq/types-live";
2
+ export declare const getTokensWithFunds: (accounts: Account[]) => string[];
3
+ //# sourceMappingURL=getTokensWithFunds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokensWithFunds.d.ts","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,eAAO,MAAM,kBAAkB,aAAc,OAAO,EAAE,KAAG,MAAM,EAgC9D,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { getParentAccount } from "@ledgerhq/coin-framework/account/helpers";
2
+ export const getTokensWithFunds = (accounts) => {
3
+ if (!accounts?.length)
4
+ return [];
5
+ const tokensMap = new Map();
6
+ for (const account of accounts) {
7
+ const { balance, currency } = account || {};
8
+ if (!balance?.gt(0) || !currency)
9
+ continue;
10
+ const parentAccount = getParentAccount(account, accounts);
11
+ const networkName = parentAccount?.currency?.name;
12
+ if (!networkName)
13
+ continue;
14
+ const mainKey = `${currency.ticker}:${networkName}`;
15
+ tokensMap.set(mainKey, {
16
+ ticker: currency.ticker,
17
+ networkName,
18
+ });
19
+ account.subAccounts?.forEach(subAccount => {
20
+ const { balance, token } = subAccount || {};
21
+ if (!balance?.gt(0) || !token)
22
+ return;
23
+ const subKey = `${token.ticker}:${networkName}`;
24
+ tokensMap.set(subKey, {
25
+ ticker: token.ticker,
26
+ networkName,
27
+ });
28
+ });
29
+ }
30
+ return Array.from(tokensMap.values(), ({ ticker, networkName }) => `${ticker} on ${networkName}`);
31
+ };
32
+ //# sourceMappingURL=getTokensWithFunds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokensWithFunds.js","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAmB,EAAY,EAAE;IAClE,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmD,CAAC;IAE7E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC;QAClD,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QACpD,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;YACxC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEtC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YAChD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,WAAW,EAAE,CAAC,CAAC;AACpG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTokensWithFunds.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokensWithFunds.test.d.ts","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import { genAccount } from "@ledgerhq/coin-framework/lib/mocks/account";
2
+ import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index";
3
+ import BigNumber from "bignumber.js";
4
+ import { getTokensWithFunds } from "./getTokensWithFunds";
5
+ const ETH = getCryptoCurrencyById("ethereum");
6
+ const mockedAccounts = [
7
+ genAccount("mocked-account-2", {
8
+ currency: ETH,
9
+ }),
10
+ ];
11
+ describe("getTokensWithFunds", () => {
12
+ it("should return empty array if no accounts", () => {
13
+ const result = getTokensWithFunds([]);
14
+ expect(result).toEqual([]);
15
+ });
16
+ it("should return array with accounts with funds", () => {
17
+ const account = mockedAccounts[0];
18
+ const result = getTokensWithFunds(mockedAccounts);
19
+ expect(account.balance).toBeTruthy();
20
+ expect(account.balance instanceof BigNumber).toBe(true);
21
+ expect(account.balance.gt(0)).toBe(true);
22
+ expect(account.subAccounts).toBeDefined();
23
+ expect(account.subAccounts?.length).toBe(2);
24
+ const [zrxAccount, repAccount] = account.subAccounts || [];
25
+ expect(zrxAccount.balance).toBeTruthy();
26
+ expect(zrxAccount.balance instanceof BigNumber).toBe(true);
27
+ expect(zrxAccount.balance.gt(0)).toBe(true);
28
+ expect(repAccount.balance).toBeTruthy();
29
+ expect(repAccount.balance instanceof BigNumber).toBe(true);
30
+ expect(repAccount.balance.gt(0)).toBe(true);
31
+ expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
32
+ });
33
+ it("should return array with accounts with funds", () => {
34
+ const account = mockedAccounts[0];
35
+ expect(account.balance).toBeTruthy();
36
+ expect(account.balance instanceof BigNumber).toBe(true);
37
+ expect(account.balance.gt(0)).toBe(true);
38
+ expect(account.subAccounts).toBeDefined();
39
+ expect(account.subAccounts?.length).toBe(2);
40
+ const [zrxAccount, repAccount] = account.subAccounts || [];
41
+ const emptyRepAccount = { ...repAccount, balance: new BigNumber(0) };
42
+ expect(zrxAccount.balance).toBeTruthy();
43
+ expect(zrxAccount.balance instanceof BigNumber).toBe(true);
44
+ expect(zrxAccount.balance.gt(0)).toBe(true);
45
+ expect(emptyRepAccount.balance).toBeTruthy();
46
+ expect(emptyRepAccount.balance instanceof BigNumber).toBe(true);
47
+ expect(emptyRepAccount.balance.gt(0)).toBe(false);
48
+ const accounts = { ...account, subAccounts: [zrxAccount, emptyRepAccount] };
49
+ const result = getTokensWithFunds([accounts]);
50
+ expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum"]);
51
+ });
52
+ it("should return array with accounts with funds without duplication", () => {
53
+ const account = mockedAccounts[0];
54
+ expect(account.balance).toBeTruthy();
55
+ expect(account.balance instanceof BigNumber).toBe(true);
56
+ expect(account.balance.gt(0)).toBe(true);
57
+ expect(account.subAccounts).toBeDefined();
58
+ expect(account.subAccounts?.length).toBe(2);
59
+ const [zrxAccount, repAccount] = account.subAccounts || [];
60
+ const accounts = { ...account, subAccounts: [zrxAccount, repAccount, repAccount] };
61
+ expect(accounts.subAccounts.length).toBe(3);
62
+ const result = getTokensWithFunds([accounts]);
63
+ expect(result).toEqual(["ETH on Ethereum", "ZRX on Ethereum", "REP on Ethereum"]);
64
+ });
65
+ });
66
+ //# sourceMappingURL=getTokensWithFunds.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokensWithFunds.test.js","sourceRoot":"","sources":["../../src/domain/getTokensWithFunds.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/families/evm/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,QAAA,MAAM,SAAS,EAAE,4BA2wBhB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/families/evm/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,QAAA,MAAM,SAAS,EAAE,4BA00BhB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}