@ledgerhq/live-common 34.50.0-nightly.6 → 34.51.0-nightly.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/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.js +3 -6
- package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +60 -0
- package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
- package/lib/bridge/generic-alpaca/types.d.ts +0 -1
- package/lib/bridge/generic-alpaca/types.d.ts.map +1 -1
- package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
- package/lib/exchange/swap/postSwapState.js +19 -23
- package/lib/exchange/swap/postSwapState.js.map +1 -1
- package/lib/exchange/swap/setBroadcastTransaction.d.ts +4 -4
- package/lib/exchange/swap/setBroadcastTransaction.js +7 -7
- package/lib/exchange/swap/setBroadcastTransaction.js.map +1 -1
- package/lib/exchange/swap/types.d.ts +3 -3
- package/lib/exchange/swap/types.d.ts.map +1 -1
- package/lib/families/tezos/config.js +2 -2
- package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js +5 -2
- package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts +5 -8
- package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceAsset.js +15 -24
- package/lib/modularDrawer/hooks/useRightBalanceAsset.js.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts +6 -25
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.js +4 -3
- package/lib/modularDrawer/hooks/useRightBalanceNetwork.js.map +1 -1
- package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
- package/lib/modularDrawer/modules/createNetworkConfiguration.js +8 -4
- package/lib/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
- package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts +2 -0
- package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts.map +1 -0
- package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.js +212 -0
- package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.js.map +1 -0
- package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts +2 -0
- package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts.map +1 -0
- package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js +202 -0
- package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js.map +1 -0
- package/lib/modularDrawer/utils/calculateProviderTotal.d.ts +1 -0
- package/lib/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -1
- package/lib/modularDrawer/utils/calculateProviderTotal.js +10 -2
- package/lib/modularDrawer/utils/calculateProviderTotal.js.map +1 -1
- package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +6 -4
- package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -1
- package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +9 -22
- package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -1
- package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts +4 -3
- package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -1
- package/lib/modularDrawer/utils/groupAccountsByAsset.js +27 -11
- package/lib/modularDrawer/utils/groupAccountsByAsset.js.map +1 -1
- package/lib/modularDrawer/utils/index.d.ts +0 -1
- 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/modularDrawer/utils/sortByBalance.d.ts +1 -3
- package/lib/modularDrawer/utils/sortByBalance.d.ts.map +1 -1
- package/lib/modularDrawer/utils/sortByBalance.js +6 -18
- package/lib/modularDrawer/utils/sortByBalance.js.map +1 -1
- package/lib/modularDrawer/utils/type.d.ts +9 -8
- package/lib/modularDrawer/utils/type.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/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js +3 -6
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +60 -0
- package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/types.d.ts +0 -1
- package/lib-es/bridge/generic-alpaca/types.d.ts.map +1 -1
- package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
- package/lib-es/exchange/swap/postSwapState.js +19 -23
- package/lib-es/exchange/swap/postSwapState.js.map +1 -1
- package/lib-es/exchange/swap/setBroadcastTransaction.d.ts +4 -4
- package/lib-es/exchange/swap/setBroadcastTransaction.js +7 -7
- package/lib-es/exchange/swap/setBroadcastTransaction.js.map +1 -1
- package/lib-es/exchange/swap/types.d.ts +3 -3
- package/lib-es/exchange/swap/types.d.ts.map +1 -1
- package/lib-es/families/tezos/config.js +2 -2
- package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js +1 -1
- package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts +5 -8
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.js +15 -24
- package/lib-es/modularDrawer/hooks/useRightBalanceAsset.js.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts +6 -25
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.js +4 -3
- package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.js.map +1 -1
- package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
- package/lib-es/modularDrawer/modules/createNetworkConfiguration.js +8 -4
- package/lib-es/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
- package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts +2 -0
- package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts.map +1 -0
- package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.js +207 -0
- package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.js.map +1 -0
- package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts +2 -0
- package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts.map +1 -0
- package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js +197 -0
- package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js.map +1 -0
- package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts +1 -0
- package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/calculateProviderTotal.js +10 -2
- package/lib-es/modularDrawer/utils/calculateProviderTotal.js.map +1 -1
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +6 -4
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +9 -22
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -1
- package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts +4 -3
- package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/groupAccountsByAsset.js +27 -11
- package/lib-es/modularDrawer/utils/groupAccountsByAsset.js.map +1 -1
- package/lib-es/modularDrawer/utils/index.d.ts +0 -1
- package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/index.js +0 -1
- package/lib-es/modularDrawer/utils/index.js.map +1 -1
- package/lib-es/modularDrawer/utils/sortByBalance.d.ts +1 -3
- package/lib-es/modularDrawer/utils/sortByBalance.d.ts.map +1 -1
- package/lib-es/modularDrawer/utils/sortByBalance.js +5 -15
- package/lib-es/modularDrawer/utils/sortByBalance.js.map +1 -1
- package/lib-es/modularDrawer/utils/type.d.ts +9 -8
- package/lib-es/modularDrawer/utils/type.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 +70 -70
- package/src/bridge/generic-alpaca/prepareTransaction.ts +3 -7
- package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +78 -0
- package/src/bridge/generic-alpaca/types.ts +1 -1
- package/src/exchange/swap/postSwapState.ts +28 -32
- package/src/exchange/swap/setBroadcastTransaction.ts +12 -12
- package/src/exchange/swap/types.ts +3 -3
- package/src/families/tezos/config.ts +2 -2
- package/src/modularDrawer/hooks/modules/useRightMarketTrendModule.tsx +1 -1
- package/src/modularDrawer/hooks/useRightBalanceAsset.tsx +22 -38
- package/src/modularDrawer/hooks/useRightBalanceNetwork.tsx +5 -7
- package/src/modularDrawer/modules/createNetworkConfiguration.ts +10 -5
- package/src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts +237 -0
- package/src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts +228 -0
- package/src/modularDrawer/utils/calculateProviderTotal.ts +13 -2
- package/src/modularDrawer/utils/getBalanceAndFiatValueByAssets.ts +13 -37
- package/src/modularDrawer/utils/groupAccountsByAsset.ts +38 -19
- package/src/modularDrawer/utils/index.ts +0 -2
- package/src/modularDrawer/utils/sortByBalance.tsx +5 -18
- package/src/modularDrawer/utils/type.ts +13 -4
- package/src/wallet-api/Exchange/server.ts +6 -6
- package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +0 -2
- package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +0 -1
- package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js +0 -496
- package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +0 -1
- package/lib/modularDrawer/utils/counterValueFormatter.d.ts +0 -14
- package/lib/modularDrawer/utils/counterValueFormatter.d.ts.map +0 -1
- package/lib/modularDrawer/utils/counterValueFormatter.js +0 -107
- package/lib/modularDrawer/utils/counterValueFormatter.js.map +0 -1
- package/lib/modularDrawer/utils/getBalanceAndFiatValue.d.ts +0 -20
- package/lib/modularDrawer/utils/getBalanceAndFiatValue.d.ts.map +0 -1
- package/lib/modularDrawer/utils/getBalanceAndFiatValue.js +0 -39
- package/lib/modularDrawer/utils/getBalanceAndFiatValue.js.map +0 -1
- package/lib/modularDrawer/utils/parseToBigNumber.d.ts +0 -9
- package/lib/modularDrawer/utils/parseToBigNumber.d.ts.map +0 -1
- package/lib/modularDrawer/utils/parseToBigNumber.js +0 -24
- package/lib/modularDrawer/utils/parseToBigNumber.js.map +0 -1
- package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +0 -2
- package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js +0 -494
- package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +0 -1
- package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts +0 -14
- package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/counterValueFormatter.js +0 -103
- package/lib-es/modularDrawer/utils/counterValueFormatter.js.map +0 -1
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.d.ts +0 -20
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.js +0 -32
- package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.js.map +0 -1
- package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts +0 -9
- package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts.map +0 -1
- package/lib-es/modularDrawer/utils/parseToBigNumber.js +0 -17
- package/lib-es/modularDrawer/utils/parseToBigNumber.js.map +0 -1
- package/src/modularDrawer/utils/__tests__/counterValueFormatter.test.ts +0 -549
- package/src/modularDrawer/utils/counterValueFormatter.ts +0 -165
- package/src/modularDrawer/utils/getBalanceAndFiatValue.ts +0 -53
- package/src/modularDrawer/utils/parseToBigNumber.ts +0 -17
@@ -1,18 +1,15 @@
|
|
1
|
-
|
1
|
+
/// <reference types="react" />
|
2
2
|
import type { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
|
3
|
-
import { UseBalanceDeps } from "../utils/type";
|
3
|
+
import { UseBalanceDeps, CreateBalanceItem } from "../utils/type";
|
4
4
|
export type NetworkDeps = {
|
5
|
-
balanceItem:
|
6
|
-
fiatValue?: string;
|
7
|
-
balance?: string;
|
8
|
-
}) => ReactNode;
|
5
|
+
balanceItem: CreateBalanceItem;
|
9
6
|
useBalanceDeps: UseBalanceDeps;
|
10
7
|
};
|
11
8
|
type Params = {
|
12
9
|
networks: CryptoOrTokenCurrency[];
|
13
10
|
};
|
14
|
-
export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }: NetworkDeps): ({ networks }: Params) =>
|
15
|
-
rightElement: ReactNode;
|
11
|
+
export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }: NetworkDeps): ({ networks }: Params) => {
|
12
|
+
rightElement: import("react").ReactNode;
|
16
13
|
balanceData: {};
|
17
14
|
name: string;
|
18
15
|
ticker: string;
|
@@ -42,22 +39,6 @@ export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceIt
|
|
42
39
|
deviceTicker?: string | undefined;
|
43
40
|
explorerId?: import("@ledgerhq/types-cryptoassets").LedgerExplorerId | undefined;
|
44
41
|
tokenTypes?: string[] | undefined;
|
45
|
-
}
|
46
|
-
rightElement: ReactNode;
|
47
|
-
balanceData: {};
|
48
|
-
name: string;
|
49
|
-
ticker: string;
|
50
|
-
units: import("@ledgerhq/types-cryptoassets").Unit[];
|
51
|
-
symbol?: string | undefined;
|
52
|
-
disableCountervalue?: boolean | undefined;
|
53
|
-
delisted?: boolean | undefined;
|
54
|
-
keywords?: string[] | undefined;
|
55
|
-
type: "TokenCurrency";
|
56
|
-
id: string;
|
57
|
-
ledgerSignature?: string | undefined;
|
58
|
-
contractAddress: string;
|
59
|
-
parentCurrency: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
|
60
|
-
tokenType: string;
|
61
|
-
})[];
|
42
|
+
}[];
|
62
43
|
export {};
|
63
44
|
//# sourceMappingURL=useRightBalanceNetwork.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRightBalanceNetwork.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"useRightBalanceNetwork.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlE,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,WAAW,kBAClC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsB5D"}
|
@@ -4,13 +4,14 @@ exports.createUseRightBalanceNetwork = void 0;
|
|
4
4
|
const getBalanceAndFiatValueByAssets_1 = require("../utils/getBalanceAndFiatValueByAssets");
|
5
5
|
function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }) {
|
6
6
|
return function useRightBalanceNetwork({ networks }) {
|
7
|
-
const { flattenedAccounts,
|
8
|
-
const networkBalanceData = (0, getBalanceAndFiatValueByAssets_1.getBalanceAndFiatValueByAssets)(flattenedAccounts, networks, state, counterValueCurrency
|
7
|
+
const { flattenedAccounts, state, counterValueCurrency } = useBalanceDeps();
|
8
|
+
const networkBalanceData = (0, getBalanceAndFiatValueByAssets_1.getBalanceAndFiatValueByAssets)(flattenedAccounts, networks, state, counterValueCurrency);
|
9
9
|
const balanceMap = new Map(networkBalanceData.map(b => [b.id, b]));
|
10
10
|
return networks.map(network => {
|
11
11
|
const balanceData = balanceMap.get(network.id) || {};
|
12
|
+
const details = network.type === "TokenCurrency" ? network.parentCurrency : network;
|
12
13
|
return {
|
13
|
-
...
|
14
|
+
...details,
|
14
15
|
rightElement: balanceItem(balanceData),
|
15
16
|
balanceData: balanceData,
|
16
17
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRightBalanceNetwork.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"useRightBalanceNetwork.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";;;AAEA,4FAAyF;AAWzF,SAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAe;IACvF,OAAO,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAU;QACzD,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE,CAAC;QAE5E,MAAM,kBAAkB,GAAG,IAAA,+DAA8B,EACvD,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,oBAAoB,CACrB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,OAAO;gBACL,GAAG,OAAO;gBACV,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC;gBACtC,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAvBD,oEAuBC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createNetworkConfiguration.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAgB,EAGjB,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,cAAc,yEAEV,eAAe,KAAG,WAAW,GAAG,SAmB9C,CAAC;AAEJ,eAAO,MAAM,eAAe,0EAEV,gBAAgB,KAAG,WAAW,GAAG,SAWhD,CAAC;AAEJ,eAAO,MAAM,8BAA8B,0FAET,mCAAmC,cASvD,qBAAqB,EAAE,YACrB,qBAAqB,EAAE,KAChC,MAAM,qBAAqB,GAAG,OAAO,
|
1
|
+
{"version":3,"file":"createNetworkConfiguration.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAgB,EAGjB,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,cAAc,yEAEV,eAAe,KAAG,WAAW,GAAG,SAmB9C,CAAC;AAEJ,eAAO,MAAM,eAAe,0EAEV,gBAAgB,KAAG,WAAW,GAAG,SAWhD,CAAC;AAEJ,eAAO,MAAM,8BAA8B,0FAET,mCAAmC,cASvD,qBAAqB,EAAE,YACrB,qBAAqB,EAAE,KAChC,MAAM,qBAAqB,GAAG,OAAO,CAkCzC,CAAC"}
|
@@ -47,12 +47,16 @@ const createNetworkConfigurationHook = (NetworkConfigurationDeps) => ({ networks
|
|
47
47
|
networks,
|
48
48
|
})));
|
49
49
|
const result = composedHook(assets);
|
50
|
-
if (leftElement === "numberOfAccounts" ||
|
50
|
+
if (leftElement === "numberOfAccounts" ||
|
51
|
+
leftElement === "numberOfAccountsAndApy" ||
|
52
|
+
leftElement === undefined // default
|
53
|
+
) {
|
51
54
|
result.sort((a, b) => (b?.count || 0) - (a?.count || 0));
|
52
55
|
}
|
53
|
-
if (rightElement === "balance"
|
54
|
-
|
55
|
-
|
56
|
+
if (rightElement === "balance" ||
|
57
|
+
rightElement === undefined // default
|
58
|
+
) {
|
59
|
+
result.sort((a, b) => (0, sortByBalance_1.compareByBalanceThenFiat)(a?.balanceData, b?.balanceData));
|
56
60
|
}
|
57
61
|
return result;
|
58
62
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createNetworkConfiguration.js","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":";;;AACA,8DAAuE;AACvE,oEAAuE;AACvE,4EAA+E;AAW/E,2DAAwD;AACxD,0DAAkE;AAE3D,MAAM,cAAc,GACzB,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,WAA6B,EAA2B,EAAE;IACzD,QAAQ,WAAW,EAAE;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,wBAAwB;YAC3B,OAAO,CAAC,MAAmE,EAAE,EAAE,CAC7E,IAAA,6CAAwB,EACtB,MAAM,EACN,wBAAwB,CAAC,cAAc,EACvC,wBAAwB,CAAC,mBAAmB,EAC5C,MAAM,CAAC,QAAQ,CAChB,CAAC;QACN,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,IAAA,6CAA2B,EAAC;gBACjC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,aAAa,EAAE,wBAAwB,CAAC,aAAa;aACtD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AArBS,QAAA,cAAc,kBAqBvB;AAEG,MAAM,eAAe,GAC1B,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,YAA+B,EAA2B,EAAE;IAC3D,QAAQ,YAAY,EAAE;QACpB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,IAAA,qDAA4B,EAAC;gBAClC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,WAAW,EAAE,wBAAwB,CAAC,WAAW;aAClD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AAbS,QAAA,eAAe,mBAaxB;AAEG,MAAM,8BAA8B,GACzC,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,EAAE,cAAc,EAAE,SAAS,EAAuC,EAAE,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,CAAC;IAE1E,yEAAyE;IACzE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAC;IAErE,OAAO,CACL,MAA+B,EAC/B,QAAiC,EACO,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,2BAAY,EAI/B,GAAG,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CACX,IAAI,CAAC;YACH,MAAM;YACN,SAAS;YACT,QAAQ;SACT,CAAC,CACL,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,
|
1
|
+
{"version":3,"file":"createNetworkConfiguration.js","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":";;;AACA,8DAAuE;AACvE,oEAAuE;AACvE,4EAA+E;AAW/E,2DAAwD;AACxD,0DAAkE;AAE3D,MAAM,cAAc,GACzB,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,WAA6B,EAA2B,EAAE;IACzD,QAAQ,WAAW,EAAE;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,wBAAwB;YAC3B,OAAO,CAAC,MAAmE,EAAE,EAAE,CAC7E,IAAA,6CAAwB,EACtB,MAAM,EACN,wBAAwB,CAAC,cAAc,EACvC,wBAAwB,CAAC,mBAAmB,EAC5C,MAAM,CAAC,QAAQ,CAChB,CAAC;QACN,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,IAAA,6CAA2B,EAAC;gBACjC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,aAAa,EAAE,wBAAwB,CAAC,aAAa;aACtD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AArBS,QAAA,cAAc,kBAqBvB;AAEG,MAAM,eAAe,GAC1B,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,YAA+B,EAA2B,EAAE;IAC3D,QAAQ,YAAY,EAAE;QACpB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,IAAA,qDAA4B,EAAC;gBAClC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,WAAW,EAAE,wBAAwB,CAAC,WAAW;aAClD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AAbS,QAAA,eAAe,mBAaxB;AAEG,MAAM,8BAA8B,GACzC,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,EAAE,cAAc,EAAE,SAAS,EAAuC,EAAE,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,CAAC;IAE1E,yEAAyE;IACzE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAC;IAErE,OAAO,CACL,MAA+B,EAC/B,QAAiC,EACO,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,2BAAY,EAI/B,GAAG,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CACX,IAAI,CAAC;YACH,MAAM;YACN,SAAS;YACT,QAAQ;SACT,CAAC,CACL,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,IACE,WAAW,KAAK,kBAAkB;YAClC,WAAW,KAAK,wBAAwB;YACxC,WAAW,KAAK,SAAS,CAAC,UAAU;UACpC;YACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1D;QAED,IACE,YAAY,KAAK,SAAS;YAC1B,YAAY,KAAK,SAAS,CAAC,UAAU;UACrC;YACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,wCAAwB,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;SACjF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AA/CS,QAAA,8BAA8B,kCA+CvC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"calculateProviderTotal.test.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,212 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const calculateProviderTotal_1 = require("../calculateProviderTotal");
|
7
|
+
const cryptoCurrencies_1 = require("../../../mock/fixtures/cryptoCurrencies");
|
8
|
+
const account_1 = require("../../../mock/account");
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
10
|
+
describe("calculateProviderTotals", () => {
|
11
|
+
const mockBTCCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("bitcoin");
|
12
|
+
const mockETHCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("ethereum");
|
13
|
+
const mockBTCAccount = (0, account_1.genAccount)("btc-account", { currency: mockBTCCurrency });
|
14
|
+
const mockUSDCAccount = (0, account_1.genAccount)("usdc-account", { currency: mockETHCurrency });
|
15
|
+
const mockBscUSDCAccount = (0, account_1.genAccount)("bsc-usdc-account", { currency: mockETHCurrency });
|
16
|
+
const mockUSDCToken = {
|
17
|
+
type: "TokenCurrency",
|
18
|
+
id: "ethereum/erc20/usdc",
|
19
|
+
contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
20
|
+
parentCurrency: mockETHCurrency,
|
21
|
+
tokenType: "erc20",
|
22
|
+
name: "USD Coin",
|
23
|
+
ticker: "USDC",
|
24
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }],
|
25
|
+
};
|
26
|
+
const mockBscUSDCToken = {
|
27
|
+
type: "TokenCurrency",
|
28
|
+
id: "bsc/bep20/usdc",
|
29
|
+
contractAddress: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
|
30
|
+
parentCurrency: mockETHCurrency,
|
31
|
+
tokenType: "bep20",
|
32
|
+
name: "USD Coin (BSC)",
|
33
|
+
ticker: "USDC",
|
34
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }],
|
35
|
+
};
|
36
|
+
it("should return totals with hasAccounts false when no accounts exist", () => {
|
37
|
+
const currencies = [mockBTCCurrency, mockUSDCToken];
|
38
|
+
const groupedAccounts = {};
|
39
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
40
|
+
expect(result).toEqual({
|
41
|
+
totalBalance: new bignumber_js_1.default(0),
|
42
|
+
totalFiatValue: new bignumber_js_1.default(0),
|
43
|
+
hasAccounts: false,
|
44
|
+
referenceCurrency: null,
|
45
|
+
});
|
46
|
+
});
|
47
|
+
it("should sum totals across multiple currencies", () => {
|
48
|
+
const currencies = [mockBTCCurrency, mockUSDCToken];
|
49
|
+
const groupedAccounts = {
|
50
|
+
[mockBTCCurrency.id]: {
|
51
|
+
totalBalance: new bignumber_js_1.default(100000000),
|
52
|
+
totalFiatValue: new bignumber_js_1.default(50000),
|
53
|
+
accounts: [mockBTCAccount],
|
54
|
+
referenceCurrency: mockBTCCurrency,
|
55
|
+
},
|
56
|
+
[mockUSDCToken.id]: {
|
57
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
58
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
59
|
+
accounts: [mockUSDCAccount],
|
60
|
+
referenceCurrency: mockUSDCToken,
|
61
|
+
},
|
62
|
+
};
|
63
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
64
|
+
// BTC (magnitude 8) sets reference, USDC (magnitude 6) gets normalized
|
65
|
+
// USDC: 1000000 * 10^(8-6) = 1000000 * 100 = 100000000
|
66
|
+
// Total: 100000000 (BTC) + 100000000 (normalized USDC) = 200000000
|
67
|
+
expect(result).toEqual({
|
68
|
+
totalBalance: new bignumber_js_1.default(200000000),
|
69
|
+
totalFiatValue: new bignumber_js_1.default(50001),
|
70
|
+
hasAccounts: true,
|
71
|
+
referenceCurrency: mockBTCCurrency, // First currency with accounts
|
72
|
+
});
|
73
|
+
});
|
74
|
+
it("should return referenceCurrency from first asset group with accounts", () => {
|
75
|
+
const currencies = [mockUSDCToken, mockBscUSDCToken];
|
76
|
+
const groupedAccounts = {
|
77
|
+
[mockUSDCToken.id]: {
|
78
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
79
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
80
|
+
accounts: [mockUSDCAccount],
|
81
|
+
referenceCurrency: mockUSDCToken, // ETH USDC with 6 decimals
|
82
|
+
},
|
83
|
+
[mockBscUSDCToken.id]: {
|
84
|
+
totalBalance: new bignumber_js_1.default("1000000000000000000"),
|
85
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
86
|
+
accounts: [mockBscUSDCAccount],
|
87
|
+
referenceCurrency: mockBscUSDCToken, // BSC USDC with 18 decimals
|
88
|
+
},
|
89
|
+
};
|
90
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
91
|
+
expect(result.referenceCurrency).toEqual(mockUSDCToken); // First currency
|
92
|
+
expect(result.hasAccounts).toBe(true);
|
93
|
+
});
|
94
|
+
it("should skip currencies with no accounts", () => {
|
95
|
+
const currencies = [mockBTCCurrency, mockUSDCToken];
|
96
|
+
const groupedAccounts = {
|
97
|
+
[mockUSDCToken.id]: {
|
98
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
99
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
100
|
+
accounts: [mockUSDCAccount],
|
101
|
+
referenceCurrency: mockUSDCToken,
|
102
|
+
},
|
103
|
+
// BTC has no entry in groupedAccounts
|
104
|
+
};
|
105
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
106
|
+
expect(result).toEqual({
|
107
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
108
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
109
|
+
hasAccounts: true,
|
110
|
+
referenceCurrency: mockUSDCToken,
|
111
|
+
});
|
112
|
+
});
|
113
|
+
it("should skip currencies with empty accounts array", () => {
|
114
|
+
const currencies = [mockBTCCurrency, mockUSDCToken];
|
115
|
+
const groupedAccounts = {
|
116
|
+
[mockBTCCurrency.id]: {
|
117
|
+
totalBalance: new bignumber_js_1.default(100000000),
|
118
|
+
totalFiatValue: new bignumber_js_1.default(50000),
|
119
|
+
accounts: [],
|
120
|
+
referenceCurrency: mockBTCCurrency,
|
121
|
+
},
|
122
|
+
[mockUSDCToken.id]: {
|
123
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
124
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
125
|
+
accounts: [mockUSDCAccount],
|
126
|
+
referenceCurrency: mockUSDCToken,
|
127
|
+
},
|
128
|
+
};
|
129
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
130
|
+
expect(result).toEqual({
|
131
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
132
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
133
|
+
hasAccounts: true,
|
134
|
+
referenceCurrency: mockUSDCToken,
|
135
|
+
});
|
136
|
+
});
|
137
|
+
it("should normalize balances based on magnitude differences", () => {
|
138
|
+
// Test the specific code: magnitude normalization between currencies
|
139
|
+
const currencies = [mockUSDCToken, mockBscUSDCToken];
|
140
|
+
const groupedAccounts = {
|
141
|
+
[mockUSDCToken.id]: {
|
142
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
143
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
144
|
+
accounts: [mockUSDCAccount],
|
145
|
+
referenceCurrency: mockUSDCToken, // 6 decimals
|
146
|
+
},
|
147
|
+
[mockBscUSDCToken.id]: {
|
148
|
+
totalBalance: new bignumber_js_1.default("1000000000000000000"),
|
149
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
150
|
+
accounts: [mockBscUSDCAccount],
|
151
|
+
referenceCurrency: mockBscUSDCToken, // 18 decimals
|
152
|
+
},
|
153
|
+
};
|
154
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
155
|
+
// First currency (USDC) sets reference magnitude of 6
|
156
|
+
// Second currency (BSC USDC) has magnitude 18, so diff = 6 - 18 = -12
|
157
|
+
// BSC balance of 1000000000000000000 shifted by -12 = 1000000
|
158
|
+
// Total should be 1000000 + 1000000 = 2000000
|
159
|
+
expect(result.totalBalance).toEqual(new bignumber_js_1.default(2000000));
|
160
|
+
expect(result.totalFiatValue).toEqual(new bignumber_js_1.default(2));
|
161
|
+
expect(result.hasAccounts).toBe(true);
|
162
|
+
expect(result.referenceCurrency).toEqual(mockUSDCToken);
|
163
|
+
});
|
164
|
+
it("should handle magnitude normalization when referenceCurrency is set", () => {
|
165
|
+
const currencies = [mockBscUSDCToken];
|
166
|
+
const groupedAccounts = {
|
167
|
+
[mockBscUSDCToken.id]: {
|
168
|
+
totalBalance: new bignumber_js_1.default("2000000000000000000"),
|
169
|
+
totalFiatValue: new bignumber_js_1.default(2),
|
170
|
+
accounts: [mockBscUSDCAccount],
|
171
|
+
referenceCurrency: mockBscUSDCToken,
|
172
|
+
},
|
173
|
+
};
|
174
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
175
|
+
expect(result.totalBalance).toEqual(new bignumber_js_1.default("2000000000000000000"));
|
176
|
+
expect(result.referenceCurrency).toEqual(mockBscUSDCToken);
|
177
|
+
});
|
178
|
+
it("should handle zero magnitude difference correctly", () => {
|
179
|
+
const sameMagnitudeCurrency = {
|
180
|
+
type: "TokenCurrency",
|
181
|
+
id: "ethereum/erc20/usdc2",
|
182
|
+
contractAddress: "0x1234567890123456789012345678901234567890",
|
183
|
+
parentCurrency: mockETHCurrency,
|
184
|
+
tokenType: "erc20",
|
185
|
+
name: "USD Coin 2",
|
186
|
+
ticker: "USDC2",
|
187
|
+
units: [{ name: "USD Coin 2", code: "USDC2", magnitude: 6 }],
|
188
|
+
};
|
189
|
+
const mockSameMagnitudeAccount = (0, account_1.genAccount)("usdc2-account", { currency: mockETHCurrency });
|
190
|
+
const currencies = [mockUSDCToken, sameMagnitudeCurrency];
|
191
|
+
const groupedAccounts = {
|
192
|
+
[mockUSDCToken.id]: {
|
193
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
194
|
+
totalFiatValue: new bignumber_js_1.default(1),
|
195
|
+
accounts: [mockUSDCAccount],
|
196
|
+
referenceCurrency: mockUSDCToken, // 6 decimals
|
197
|
+
},
|
198
|
+
[sameMagnitudeCurrency.id]: {
|
199
|
+
totalBalance: new bignumber_js_1.default(2000000),
|
200
|
+
totalFiatValue: new bignumber_js_1.default(2),
|
201
|
+
accounts: [mockSameMagnitudeAccount],
|
202
|
+
referenceCurrency: sameMagnitudeCurrency, // 6 decimals
|
203
|
+
},
|
204
|
+
};
|
205
|
+
const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
|
206
|
+
// Both have magnitude 6, so diff = 6 - 6 = 0
|
207
|
+
// No shifting needed, simple addition: 1000000 + 2000000 = 3000000
|
208
|
+
expect(result.totalBalance).toEqual(new bignumber_js_1.default(3000000));
|
209
|
+
expect(result.totalFiatValue).toEqual(new bignumber_js_1.default(3));
|
210
|
+
});
|
211
|
+
});
|
212
|
+
//# sourceMappingURL=calculateProviderTotal.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"calculateProviderTotal.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"groupAccountsByAsset.test.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,202 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const groupAccountsByAsset_1 = require("../groupAccountsByAsset");
|
7
|
+
const cryptoCurrencies_1 = require("../../../mock/fixtures/cryptoCurrencies");
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
9
|
+
// Mock calculate function
|
10
|
+
jest.mock("@ledgerhq/live-countervalues/logic", () => ({
|
11
|
+
calculate: jest.fn((state, { value }) => {
|
12
|
+
// Mock: return the balance directly as fiat value for simple testing
|
13
|
+
return value;
|
14
|
+
}),
|
15
|
+
}));
|
16
|
+
describe("groupAccountsByAsset", () => {
|
17
|
+
const mockCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("bitcoin");
|
18
|
+
const mockEthCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("ethereum");
|
19
|
+
const mockCounterValuesState = {};
|
20
|
+
const mockTargetCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("usd");
|
21
|
+
const mockUSDCToken = {
|
22
|
+
type: "TokenCurrency",
|
23
|
+
id: "ethereum/erc20/usdc",
|
24
|
+
contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
25
|
+
parentCurrency: mockEthCurrency,
|
26
|
+
tokenType: "erc20",
|
27
|
+
name: "USD Coin",
|
28
|
+
ticker: "USDC",
|
29
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }],
|
30
|
+
};
|
31
|
+
const mockBTCAccount = {
|
32
|
+
type: "Account",
|
33
|
+
id: "btc-account-1",
|
34
|
+
seedIdentifier: "seed-id",
|
35
|
+
derivationMode: "",
|
36
|
+
currency: mockCurrency,
|
37
|
+
balance: new bignumber_js_1.default(100000000),
|
38
|
+
spendableBalance: new bignumber_js_1.default(100000000),
|
39
|
+
blockHeight: 0,
|
40
|
+
operations: [],
|
41
|
+
operationsCount: 0,
|
42
|
+
pendingOperations: [],
|
43
|
+
index: 0,
|
44
|
+
freshAddress: "btc-address",
|
45
|
+
freshAddressPath: "44'/0'/0'/0/0",
|
46
|
+
used: true,
|
47
|
+
swapHistory: [],
|
48
|
+
nfts: [],
|
49
|
+
lastSyncDate: new Date(),
|
50
|
+
creationDate: new Date(),
|
51
|
+
balanceHistoryCache: {
|
52
|
+
HOUR: { balances: [], latestDate: null },
|
53
|
+
DAY: { balances: [], latestDate: null },
|
54
|
+
WEEK: { balances: [], latestDate: null },
|
55
|
+
},
|
56
|
+
};
|
57
|
+
const mockUSDCAccount = {
|
58
|
+
type: "TokenAccount",
|
59
|
+
id: "usdc-account-1",
|
60
|
+
token: mockUSDCToken,
|
61
|
+
parentId: "eth-account-1",
|
62
|
+
balance: new bignumber_js_1.default(1000000),
|
63
|
+
spendableBalance: new bignumber_js_1.default(1000000),
|
64
|
+
operations: [],
|
65
|
+
operationsCount: 0,
|
66
|
+
pendingOperations: [],
|
67
|
+
swapHistory: [],
|
68
|
+
creationDate: new Date(),
|
69
|
+
balanceHistoryCache: {
|
70
|
+
HOUR: { balances: [], latestDate: null },
|
71
|
+
DAY: { balances: [], latestDate: null },
|
72
|
+
WEEK: { balances: [], latestDate: null },
|
73
|
+
},
|
74
|
+
};
|
75
|
+
it("should group accounts by asset ID and aggregate balances", () => {
|
76
|
+
const accounts = [mockBTCAccount, mockUSDCAccount];
|
77
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
78
|
+
expect(result).toEqual({
|
79
|
+
[mockCurrency.id]: {
|
80
|
+
totalBalance: new bignumber_js_1.default(100000000),
|
81
|
+
totalFiatValue: new bignumber_js_1.default(100000000),
|
82
|
+
accounts: [mockBTCAccount],
|
83
|
+
referenceCurrency: mockCurrency,
|
84
|
+
},
|
85
|
+
[mockUSDCToken.id]: {
|
86
|
+
totalBalance: new bignumber_js_1.default(1000000),
|
87
|
+
totalFiatValue: new bignumber_js_1.default(1000000),
|
88
|
+
accounts: [mockUSDCAccount],
|
89
|
+
referenceCurrency: mockUSDCToken,
|
90
|
+
},
|
91
|
+
});
|
92
|
+
});
|
93
|
+
it("should aggregate multiple accounts with the same asset", () => {
|
94
|
+
const secondBTCAccount = {
|
95
|
+
...mockBTCAccount,
|
96
|
+
id: "btc-account-2",
|
97
|
+
balance: new bignumber_js_1.default(50000000), // 0.5 BTC
|
98
|
+
};
|
99
|
+
const accounts = [mockBTCAccount, secondBTCAccount];
|
100
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
101
|
+
expect(result[mockCurrency.id]).toEqual({
|
102
|
+
totalBalance: new bignumber_js_1.default(150000000),
|
103
|
+
totalFiatValue: new bignumber_js_1.default(150000000),
|
104
|
+
accounts: [mockBTCAccount, secondBTCAccount],
|
105
|
+
referenceCurrency: mockCurrency,
|
106
|
+
});
|
107
|
+
});
|
108
|
+
it("should handle empty accounts array", () => {
|
109
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)([], mockCounterValuesState, mockTargetCurrency);
|
110
|
+
expect(result).toEqual({});
|
111
|
+
});
|
112
|
+
it("should handle accounts with zero balance", () => {
|
113
|
+
const zeroBalanceAccount = {
|
114
|
+
...mockBTCAccount,
|
115
|
+
balance: new bignumber_js_1.default(0),
|
116
|
+
};
|
117
|
+
const accounts = [zeroBalanceAccount];
|
118
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
119
|
+
expect(result[mockCurrency.id]).toEqual({
|
120
|
+
totalBalance: new bignumber_js_1.default(0),
|
121
|
+
totalFiatValue: new bignumber_js_1.default(0),
|
122
|
+
accounts: [zeroBalanceAccount],
|
123
|
+
referenceCurrency: mockCurrency,
|
124
|
+
});
|
125
|
+
});
|
126
|
+
it("should set referenceCurrency to the first currency encountered for each asset group", () => {
|
127
|
+
const accounts = [mockBTCAccount, mockUSDCAccount];
|
128
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
129
|
+
expect(result[mockCurrency.id].referenceCurrency).toEqual(mockCurrency);
|
130
|
+
expect(result[mockUSDCToken.id].referenceCurrency).toEqual(mockUSDCToken);
|
131
|
+
});
|
132
|
+
it("should normalize balances when tokens have different magnitudes", () => {
|
133
|
+
// Create BSC USDC with different magnitude (18 decimals instead of 6)
|
134
|
+
const mockBscUSDCToken = {
|
135
|
+
...mockUSDCToken,
|
136
|
+
id: "bsc/bep20/usdc",
|
137
|
+
name: "USD Coin (BSC)",
|
138
|
+
ticker: "USDC",
|
139
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }], // 18 decimals
|
140
|
+
};
|
141
|
+
const mockEthUSDCAccount = {
|
142
|
+
...mockUSDCAccount,
|
143
|
+
id: "eth-usdc-account",
|
144
|
+
token: mockUSDCToken,
|
145
|
+
balance: new bignumber_js_1.default(1000000), // 1 USDC with 6 decimals
|
146
|
+
};
|
147
|
+
const mockBscUSDCAccount = {
|
148
|
+
...mockUSDCAccount,
|
149
|
+
id: "bsc-usdc-account",
|
150
|
+
token: mockBscUSDCToken,
|
151
|
+
balance: new bignumber_js_1.default("1000000000000000000"), // 1 USDC with 18 decimals
|
152
|
+
};
|
153
|
+
// Both should be grouped under the same token ID for this test
|
154
|
+
// First account (ETH USDC) becomes reference currency with 6 decimals
|
155
|
+
const accounts = [mockEthUSDCAccount, mockBscUSDCAccount];
|
156
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
157
|
+
const ethGroup = result[mockUSDCToken.id];
|
158
|
+
expect(ethGroup.referenceCurrency).toEqual(mockUSDCToken); // First currency is reference
|
159
|
+
expect(ethGroup.accounts).toHaveLength(1);
|
160
|
+
expect(ethGroup.totalBalance).toEqual(new bignumber_js_1.default(1000000)); // 1 USDC normalized to 6 decimals
|
161
|
+
const bscGroup = result[mockBscUSDCToken.id];
|
162
|
+
expect(bscGroup.referenceCurrency).toEqual(mockBscUSDCToken);
|
163
|
+
expect(bscGroup.accounts).toHaveLength(1);
|
164
|
+
expect(bscGroup.totalBalance).toEqual(new bignumber_js_1.default("1000000000000000000")); // 1 USDC with 18 decimals
|
165
|
+
});
|
166
|
+
it("should normalize balances correctly when adding accounts with different magnitudes to same asset group", () => {
|
167
|
+
// Create two USDC tokens with same ID but different magnitudes
|
168
|
+
const ethUSDCToken = {
|
169
|
+
...mockUSDCToken,
|
170
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }], // 6 decimals
|
171
|
+
};
|
172
|
+
const bscUSDCToken = {
|
173
|
+
...mockUSDCToken,
|
174
|
+
units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }], // 18 decimals
|
175
|
+
};
|
176
|
+
const ethAccount = {
|
177
|
+
...mockUSDCAccount,
|
178
|
+
id: "eth-usdc",
|
179
|
+
token: ethUSDCToken,
|
180
|
+
balance: new bignumber_js_1.default(1000000), // 1 USDC with 6 decimals
|
181
|
+
};
|
182
|
+
const bscAccount = {
|
183
|
+
...mockUSDCAccount,
|
184
|
+
id: "bsc-usdc",
|
185
|
+
token: bscUSDCToken,
|
186
|
+
balance: new bignumber_js_1.default("1000000000000000000"), // 1 USDC with 18 decimals
|
187
|
+
};
|
188
|
+
// Process ETH account first to make it the reference currency
|
189
|
+
const accounts = [ethAccount, bscAccount];
|
190
|
+
const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
|
191
|
+
const group = result[mockUSDCToken.id];
|
192
|
+
expect(group.referenceCurrency).toEqual(ethUSDCToken); // First currency is reference (6 decimals)
|
193
|
+
expect(group.accounts).toHaveLength(2);
|
194
|
+
// BSC balance should be normalized from 18 decimals to 6 decimals
|
195
|
+
// 1000000000000000000 (18 decimals) -> 1000000 (6 decimals)
|
196
|
+
// magnitudeDiff = 6 - 18 = -12
|
197
|
+
// normalized = 1000000000000000000 * 10^(-12) = 1000000
|
198
|
+
const expectedTotal = new bignumber_js_1.default(1000000).plus(new bignumber_js_1.default(1000000)); // 2 USDC total
|
199
|
+
expect(group.totalBalance).toEqual(expectedTotal);
|
200
|
+
});
|
201
|
+
});
|
202
|
+
//# sourceMappingURL=groupAccountsByAsset.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"groupAccountsByAsset.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts"],"names":[],"mappings":";;;;;AAAA,kEAA+D;AAC/D,8EAAsF;AACtF,gEAAqC;AAIrC,0BAA0B;AAC1B,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACtC,qEAAqE;QACrE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,YAAY,GAAG,IAAA,8CAA2B,EAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,IAAA,8CAA2B,EAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,sBAAsB,GAAG,EAAwB,CAAC;IACxD,MAAM,kBAAkB,GAAG,IAAA,8CAA2B,EAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,eAAwB;QAC9B,EAAE,EAAE,qBAAqB;QACzB,eAAe,EAAE,4CAA4C;QAC7D,cAAc,EAAE,eAAe;QAC/B,SAAS,EAAE,OAAgB;QAC3B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;KAC1D,CAAC;IAEF,MAAM,cAAc,GAAY;QAC9B,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,eAAe;QACnB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;QACjC,gBAAgB,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;QAC1C,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,aAAa;QAC3B,gBAAgB,EAAE,eAAe;QACjC,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,IAAI,IAAI,EAAE;QACxB,YAAY,EAAE,IAAI,IAAI,EAAE;QACxB,mBAAmB,EAAE;YACnB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACxC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACvC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SACzC;KACF,CAAC;IAEF,MAAM,eAAe,GAAiB;QACpC,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC;QAC/B,gBAAgB,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC;QACxC,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QACrB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,IAAI,IAAI,EAAE;QACxB,mBAAmB,EAAE;YACnB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACxC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACvC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SACzC;KACF,CAAC;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBACjB,YAAY,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;gBACtC,cAAc,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;gBACxC,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,iBAAiB,EAAE,YAAY;aAChC;YACD,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBAClB,YAAY,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC;gBACpC,cAAc,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC;gBACtC,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,iBAAiB,EAAE,aAAa;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,gBAAgB,GAAY;YAChC,GAAG,cAAc;YACjB,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,IAAI,sBAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;SAC7C,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACtC,YAAY,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;YACtC,cAAc,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;YACxC,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;YAC5C,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,EAAE,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,kBAAkB,GAAY;YAClC,GAAG,cAAc;YACjB,OAAO,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;SAC1B,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACtC,YAAY,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;YAC9B,cAAc,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;YAChC,QAAQ,EAAE,CAAC,kBAAkB,CAAC;YAC9B,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,sEAAsE;QACtE,MAAM,gBAAgB,GAAG;YACvB,GAAG,aAAa;YAChB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc;SAC3E,CAAC;QAEF,MAAM,kBAAkB,GAAiB;YACvC,GAAG,eAAe;YAClB,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC,EAAE,yBAAyB;SAC3D,CAAC;QAEF,MAAM,kBAAkB,GAAiB;YACvC,GAAG,eAAe;YAClB,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,IAAI,sBAAS,CAAC,qBAAqB,CAAC,EAAE,0BAA0B;SAC1E,CAAC;QAEF,+DAA+D;QAC/D,sEAAsE;QACtE,MAAM,QAAQ,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,8BAA8B;QACzF,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAEjG,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,sBAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,0BAA0B;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wGAAwG,EAAE,GAAG,EAAE;QAChH,+DAA+D;QAC/D,MAAM,YAAY,GAAG;YACnB,GAAG,aAAa;YAChB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa;SACzE,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,GAAG,aAAa;YAChB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc;SAC3E,CAAC;QAEF,MAAM,UAAU,GAAiB;YAC/B,GAAG,eAAe;YAClB,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC,EAAE,yBAAyB;SAC3D,CAAC;QAEF,MAAM,UAAU,GAAiB;YAC/B,GAAG,eAAe;YAClB,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,IAAI,sBAAS,CAAC,qBAAqB,CAAC,EAAE,0BAA0B;SAC1E,CAAC;QAEF,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,2CAA2C;QAClG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEvC,kEAAkE;QAClE,4DAA4D;QAC5D,+BAA+B;QAC/B,wDAAwD;QACxD,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe;QAC1F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -5,5 +5,6 @@ export declare const calculateProviderTotals: (currencies: CryptoOrTokenCurrency
|
|
5
5
|
totalBalance: BigNumber;
|
6
6
|
totalFiatValue: BigNumber;
|
7
7
|
hasAccounts: boolean;
|
8
|
+
referenceCurrency: CryptoOrTokenCurrency | null;
|
8
9
|
};
|
9
10
|
//# sourceMappingURL=calculateProviderTotal.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"calculateProviderTotal.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,uBAAuB,eACtB,qBAAqB,EAAE,0BACX,OAAO,MAAM,EAAE,cAAc,CAAC
|
1
|
+
{"version":3,"file":"calculateProviderTotal.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,uBAAuB,eACtB,qBAAqB,EAAE,0BACX,OAAO,MAAM,EAAE,cAAc,CAAC;;;;;CA2BvD,CAAC"}
|
@@ -9,15 +9,23 @@ const calculateProviderTotals = (currencies, groupedAccountsByAsset) => {
|
|
9
9
|
let totalBalance = new bignumber_js_1.default(0);
|
10
10
|
let totalFiatValue = new bignumber_js_1.default(0);
|
11
11
|
let hasAccounts = false;
|
12
|
+
let referenceCurrency = null;
|
12
13
|
for (const currency of currencies) {
|
13
14
|
const assetGroup = groupedAccountsByAsset[currency.id];
|
14
15
|
if (assetGroup?.accounts.length > 0) {
|
15
|
-
|
16
|
+
const refCurrency = referenceCurrency ?? assetGroup.referenceCurrency;
|
17
|
+
const magnitudeDiff = refCurrency.units[0].magnitude - assetGroup.referenceCurrency.units[0].magnitude;
|
18
|
+
const normalizedBalance = assetGroup.totalBalance.shiftedBy(magnitudeDiff);
|
19
|
+
totalBalance = totalBalance.plus(normalizedBalance);
|
16
20
|
totalFiatValue = totalFiatValue.plus(assetGroup.totalFiatValue);
|
17
21
|
hasAccounts = true;
|
22
|
+
// Use the referenceCurrency from the first asset group with accounts
|
23
|
+
if (!referenceCurrency) {
|
24
|
+
referenceCurrency = assetGroup.referenceCurrency;
|
25
|
+
}
|
18
26
|
}
|
19
27
|
}
|
20
|
-
return { totalBalance, totalFiatValue, hasAccounts };
|
28
|
+
return { totalBalance, totalFiatValue, hasAccounts, referenceCurrency };
|
21
29
|
};
|
22
30
|
exports.calculateProviderTotals = calculateProviderTotals;
|
23
31
|
//# sourceMappingURL=calculateProviderTotal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"calculateProviderTotal.js","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":";;;;;;AACA,gEAAqC;AAG9B,MAAM,uBAAuB,GAAG,CACrC,UAAmC,EACnC,sBAAsD,EACtD,EAAE;IACF,IAAI,YAAY,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,cAAc,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;
|
1
|
+
{"version":3,"file":"calculateProviderTotal.js","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":";;;;;;AACA,gEAAqC;AAG9B,MAAM,uBAAuB,GAAG,CACrC,UAAmC,EACnC,sBAAsD,EACtD,EAAE;IACF,IAAI,YAAY,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,cAAc,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,iBAAiB,GAAiC,IAAI,CAAC;IAE3D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;QACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,WAAW,GAAG,iBAAiB,IAAI,UAAU,CAAC,iBAAiB,CAAC;YACtE,MAAM,aAAa,GACjB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAE3E,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpD,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChE,WAAW,GAAG,IAAI,CAAC;YAEnB,qEAAqE;YACrE,IAAI,CAAC,iBAAiB,EAAE;gBACtB,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;aAClD;SACF;KACF;IAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC1E,CAAC,CAAC;AA7BW,QAAA,uBAAuB,2BA6BlC"}
|