@ledgerhq/live-countervalues 0.4.6 → 0.5.0-next.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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @ledgerhq/live-countervalues
2
2
 
3
+ ## 0.5.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9691](https://github.com/LedgerHQ/ledger-live/pull/9691) [`a7b1969`](https://github.com/LedgerHQ/ledger-live/commit/a7b19697ff6d4db1e5da365a02db91498a17332c) Thanks [@thesan](https://github.com/thesan)! - Fix trend on range predating owning an asset
8
+
9
+ - [#9669](https://github.com/LedgerHQ/ledger-live/pull/9669) [`b9defcd`](https://github.com/LedgerHQ/ledger-live/commit/b9defcdcb44c6be2c141801a4e0dd27e72f83024) Thanks [@LucasWerey](https://github.com/LucasWerey)! - Add the display of token accounts with the new accounts list UI
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [[`44ae74c`](https://github.com/LedgerHQ/ledger-live/commit/44ae74c272ba803bed7c9f4fc3351e3ce8a15531), [`71bb6a9`](https://github.com/LedgerHQ/ledger-live/commit/71bb6a9adb4ac83172be5def5b25d2836380df1d), [`8ce7b0a`](https://github.com/LedgerHQ/ledger-live/commit/8ce7b0ab2d1d73ef071102f795e7c868c676b1f4), [`46a9620`](https://github.com/LedgerHQ/ledger-live/commit/46a9620b4ea6343efc28792d3b57bf84ee2a23e8), [`1e7d454`](https://github.com/LedgerHQ/ledger-live/commit/1e7d454d99f1f39880f39a120c59020725d26475), [`f1732a7`](https://github.com/LedgerHQ/ledger-live/commit/f1732a795e54f666b67e7686d59926037412caca), [`32d46cc`](https://github.com/LedgerHQ/ledger-live/commit/32d46cc77debe059ae0bcd848a21065dec7ee091), [`d694069`](https://github.com/LedgerHQ/ledger-live/commit/d6940698a49b7a0ed48f84d6e8184d80760cca4f)]:
14
+ - @ledgerhq/coin-framework@2.6.0-next.0
15
+ - @ledgerhq/types-live@6.66.0-next.0
16
+ - @ledgerhq/live-env@2.8.0-next.0
17
+ - @ledgerhq/cryptoassets@13.14.1-next.0
18
+ - @ledgerhq/live-network@2.0.7-next.0
19
+
3
20
  ## 0.4.6
4
21
 
5
22
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import type { CounterValuesState } from "./types";
2
- import type { Account, TokenAccount, AccountLike, BalanceHistory, PortfolioRange, PortfolioRangeConfig, AccountPortfolio, Portfolio, CurrencyPortfolio, AssetsDistribution } from "@ledgerhq/types-live";
2
+ import type { Account, AccountLike, BalanceHistory, PortfolioRange, PortfolioRangeConfig, AccountPortfolio, Portfolio, CurrencyPortfolio, AssetsDistribution } from "@ledgerhq/types-live";
3
3
  import type { Currency } from "@ledgerhq/types-cryptoassets";
4
4
  export declare const defaultAssetsDistribution: {
5
5
  minShowFirst: number;
@@ -18,7 +18,27 @@ export declare function getPortfolioRangeConfig(r: PortfolioRange): PortfolioRan
18
18
  export declare function getPortfolioCount(accounts: AccountLike[], range: PortfolioRange): number;
19
19
  export declare function getPortfolioCountByDate(start: Date, range: PortfolioRange): number;
20
20
  export declare function getBalanceHistory(account: AccountLike, range: PortfolioRange, count: number): BalanceHistory;
21
- export declare function getBalanceHistoryWithCountervalue(account: AccountLike, range: PortfolioRange, count: number, cvState: CounterValuesState, cvCurrency: Currency): AccountPortfolio;
21
+ export declare function getBalanceHistoryWithCountervalue(...args: Parameters<typeof getBalanceHistoryWithChanges>): AccountPortfolio;
22
+ declare function getBalanceHistoryWithChanges(account: AccountLike, range: PortfolioRange, count: number, cvState: CounterValuesState, cvCurrency: Currency): {
23
+ history: {
24
+ date: Date;
25
+ value: number;
26
+ countervalue: number | null | undefined;
27
+ }[];
28
+ countervalueAvailable: boolean;
29
+ changes: (start?: number) => {
30
+ countervalueReceiveSum: number;
31
+ countervalueSendSum: number;
32
+ cryptoChange: {
33
+ value: number;
34
+ percentage: null;
35
+ };
36
+ countervalueChange: {
37
+ value: number;
38
+ percentage: number | null | undefined;
39
+ };
40
+ };
41
+ };
22
42
  export type GetPortfolioOptionsType = {
23
43
  flattenSourceAccounts?: boolean;
24
44
  };
@@ -31,5 +51,6 @@ export type GetPortfolioOptionsType = {
31
51
  export declare function getPortfolio(topAccounts: AccountLike[], range: PortfolioRange, cvState: CounterValuesState, cvCurrency: Currency, options?: GetPortfolioOptionsType): Portfolio;
32
52
  export declare function getCurrencyPortfolio(accounts: AccountLike[], range: PortfolioRange, cvState: CounterValuesState, cvCurrency: Currency): CurrencyPortfolio;
33
53
  export declare function getAssetsDistribution(topAccounts: Account[], cvState: CounterValuesState, cvCurrency: Currency, opts?: AssetsDistributionOpts): AssetsDistribution;
34
- export declare const orderAccountsByFiatValue: (accounts: Account[] | TokenAccount[], counterValueState: CounterValuesState, to: Currency, fullBalance?: boolean) => (Account | TokenAccount)[];
54
+ export declare const orderAccountsByFiatValue: (accounts: AccountLike[], counterValueState: CounterValuesState, to: Currency, fullBalance?: boolean) => AccountLike[];
55
+ export {};
35
56
  //# sourceMappingURL=portfolio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EAEpB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAkB,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAE5F,eAAO,MAAM,yBAAyB;;;;;;CAMrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,yBAAyB,CAAC;AAMtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAmCD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAexF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAOlF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GACZ,cAAc,CAmBhB;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,gBAAgB,CAqDlB;AAoBD,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,OAAO,CAAC,EAAE,uBAAuB,GAChC,SAAS,CA6DX;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EAAE,EACtB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,kBAAkB,CAuGpB;AAQD,eAAO,MAAM,wBAAwB,aACzB,OAAO,EAAE,GAAG,YAAY,EAAE,qBACjB,kBAAkB,MACjC,QAAQ,gBACC,OAAO,+BAgBrB,CAAC"}
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAkB,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAE5F,eAAO,MAAM,yBAAyB;;;;;;CAMrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,yBAAyB,CAAC;AAMtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAmCD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAexF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAOlF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GACZ,cAAc,CAmBhB;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GACvD,gBAAgB,CAGlB;AAED,iBAAS,4BAA4B,CACnC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ;;cAUZ,IAAI;eACH,MAAM;sBACC,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;EA0C1C;AAoBD,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,OAAO,CAAC,EAAE,uBAAuB,GAChC,SAAS,CAkEX;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EAAE,EACtB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,kBAAkB,CAuGpB;AAQD,eAAO,MAAM,wBAAwB,aACzB,WAAW,EAAE,qBACJ,kBAAkB,MACjC,QAAQ,gBACC,OAAO,kBAgBrB,CAAC"}
package/lib/portfolio.js CHANGED
@@ -123,7 +123,12 @@ function getBalanceHistory(account, range, count) {
123
123
  return history;
124
124
  }
125
125
  exports.getBalanceHistory = getBalanceHistory;
126
- function getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCurrency) {
126
+ function getBalanceHistoryWithCountervalue(...args) {
127
+ const { history, countervalueAvailable, changes } = getBalanceHistoryWithChanges(...args);
128
+ return { history, countervalueAvailable, ...changes() };
129
+ }
130
+ exports.getBalanceHistoryWithCountervalue = getBalanceHistoryWithCountervalue;
131
+ function getBalanceHistoryWithChanges(account, range, count, cvState, cvCurrency) {
127
132
  const balanceHistory = getBalanceHistory(account, range, count);
128
133
  const currency = (0, index_1.getAccountCurrency)(account);
129
134
  const counterValues = (0, logic_1.calculateMany)(cvState, balanceHistory, {
@@ -144,9 +149,9 @@ function getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCur
144
149
  countervalue,
145
150
  });
146
151
  }
147
- function calcChanges(h) {
148
- const from = h[0];
149
- const to = h[h.length - 1];
152
+ function calcChanges(start = 0) {
153
+ const from = history.at(start) ?? { value: 0, countervalue: 0 };
154
+ const to = history.at(-1) ?? { value: 0, countervalue: 0 };
150
155
  return {
151
156
  countervalueReceiveSum: 0,
152
157
  // not available here
@@ -164,10 +169,9 @@ function getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCur
164
169
  return {
165
170
  history,
166
171
  countervalueAvailable,
167
- ...calcChanges(history),
172
+ changes: calcChanges,
168
173
  };
169
174
  }
170
- exports.getBalanceHistoryWithCountervalue = getBalanceHistoryWithCountervalue;
171
175
  function meaningfulPercentage(deltaChange, balanceDivider, percentageHighThreshold = 100000) {
172
176
  if (deltaChange && balanceDivider && balanceDivider !== 0) {
173
177
  const percent = deltaChange / balanceDivider;
@@ -195,15 +199,9 @@ function getPortfolio(topAccounts, range, cvState, cvCurrency, options) {
195
199
  const availables = [];
196
200
  const unavailableAccounts = [];
197
201
  for (const account of accounts) {
198
- const p = getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCurrency);
202
+ const p = getBalanceHistoryWithChanges(account, range, count, cvState, cvCurrency);
199
203
  if (p.countervalueAvailable) {
200
- availables.push({
201
- account,
202
- history: p.history,
203
- change: p.countervalueChange,
204
- countervalueReceiveSum: p.countervalueReceiveSum,
205
- countervalueSendSum: p.countervalueSendSum,
206
- });
204
+ availables.push({ account, history: p.history, changes: p.changes });
207
205
  }
208
206
  else {
209
207
  unavailableAccounts.push(account);
@@ -214,18 +212,23 @@ function getPortfolio(topAccounts, range, cvState, cvCurrency, options) {
214
212
  date,
215
213
  value: histories.reduce((sum, h) => sum + (h[i]?.countervalue ?? 0), 0),
216
214
  }));
217
- const [countervalueChangeValue, countervalueReceiveSum, countervalueSendSum] = availables.reduce((prev, a) => [
218
- prev[0] + a.change.value, // TODO Portfolio: it'll always be 0, no? 🤔
219
- prev[1] + a.countervalueReceiveSum,
220
- prev[2] + a.countervalueSendSum,
221
- ], [0, 0, 0]);
215
+ const firstSignificantHistoryIndex = balanceHistory.findIndex(balance => balance.value !== 0);
216
+ const firstSignificantHistoryValue = balanceHistory.at(firstSignificantHistoryIndex)?.value ?? 0;
217
+ const [countervalueChangeValue, countervalueReceiveSum, countervalueSendSum] = availables.reduce((sums, { changes }) => {
218
+ const { countervalueChange, countervalueReceiveSum, countervalueSendSum } = changes(firstSignificantHistoryIndex);
219
+ return [
220
+ sums[0] + countervalueChange.value,
221
+ sums[1] + countervalueReceiveSum,
222
+ sums[2] + countervalueSendSum,
223
+ ];
224
+ }, [0, 0, 0]);
222
225
  // in case there were no receive, we just track the market change
223
226
  // weighted by the current balances
224
227
  const balanceDivider = (0, live_env_1.getEnv)("EXPERIMENTAL_ROI_CALCULATION")
225
228
  ? countervalueReceiveSum === 0
226
- ? balanceHistory[0].value + countervalueSendSum
229
+ ? firstSignificantHistoryValue + countervalueSendSum
227
230
  : countervalueReceiveSum
228
- : balanceHistory[0].value;
231
+ : firstSignificantHistoryValue;
229
232
  return {
230
233
  balanceHistory,
231
234
  balanceAvailable: accounts.length === 0 || availables.length > 0,
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CounterValuesState } from "./types";
2
- import type { Account, TokenAccount, AccountLike, BalanceHistory, PortfolioRange, PortfolioRangeConfig, AccountPortfolio, Portfolio, CurrencyPortfolio, AssetsDistribution } from "@ledgerhq/types-live";
2
+ import type { Account, AccountLike, BalanceHistory, PortfolioRange, PortfolioRangeConfig, AccountPortfolio, Portfolio, CurrencyPortfolio, AssetsDistribution } from "@ledgerhq/types-live";
3
3
  import type { Currency } from "@ledgerhq/types-cryptoassets";
4
4
  export declare const defaultAssetsDistribution: {
5
5
  minShowFirst: number;
@@ -18,7 +18,27 @@ export declare function getPortfolioRangeConfig(r: PortfolioRange): PortfolioRan
18
18
  export declare function getPortfolioCount(accounts: AccountLike[], range: PortfolioRange): number;
19
19
  export declare function getPortfolioCountByDate(start: Date, range: PortfolioRange): number;
20
20
  export declare function getBalanceHistory(account: AccountLike, range: PortfolioRange, count: number): BalanceHistory;
21
- export declare function getBalanceHistoryWithCountervalue(account: AccountLike, range: PortfolioRange, count: number, cvState: CounterValuesState, cvCurrency: Currency): AccountPortfolio;
21
+ export declare function getBalanceHistoryWithCountervalue(...args: Parameters<typeof getBalanceHistoryWithChanges>): AccountPortfolio;
22
+ declare function getBalanceHistoryWithChanges(account: AccountLike, range: PortfolioRange, count: number, cvState: CounterValuesState, cvCurrency: Currency): {
23
+ history: {
24
+ date: Date;
25
+ value: number;
26
+ countervalue: number | null | undefined;
27
+ }[];
28
+ countervalueAvailable: boolean;
29
+ changes: (start?: number) => {
30
+ countervalueReceiveSum: number;
31
+ countervalueSendSum: number;
32
+ cryptoChange: {
33
+ value: number;
34
+ percentage: null;
35
+ };
36
+ countervalueChange: {
37
+ value: number;
38
+ percentage: number | null | undefined;
39
+ };
40
+ };
41
+ };
22
42
  export type GetPortfolioOptionsType = {
23
43
  flattenSourceAccounts?: boolean;
24
44
  };
@@ -31,5 +51,6 @@ export type GetPortfolioOptionsType = {
31
51
  export declare function getPortfolio(topAccounts: AccountLike[], range: PortfolioRange, cvState: CounterValuesState, cvCurrency: Currency, options?: GetPortfolioOptionsType): Portfolio;
32
52
  export declare function getCurrencyPortfolio(accounts: AccountLike[], range: PortfolioRange, cvState: CounterValuesState, cvCurrency: Currency): CurrencyPortfolio;
33
53
  export declare function getAssetsDistribution(topAccounts: Account[], cvState: CounterValuesState, cvCurrency: Currency, opts?: AssetsDistributionOpts): AssetsDistribution;
34
- export declare const orderAccountsByFiatValue: (accounts: Account[] | TokenAccount[], counterValueState: CounterValuesState, to: Currency, fullBalance?: boolean) => (Account | TokenAccount)[];
54
+ export declare const orderAccountsByFiatValue: (accounts: AccountLike[], counterValueState: CounterValuesState, to: Currency, fullBalance?: boolean) => AccountLike[];
55
+ export {};
35
56
  //# sourceMappingURL=portfolio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EAEpB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAkB,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAE5F,eAAO,MAAM,yBAAyB;;;;;;CAMrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,yBAAyB,CAAC;AAMtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAmCD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAexF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAOlF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GACZ,cAAc,CAmBhB;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,gBAAgB,CAqDlB;AAoBD,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,OAAO,CAAC,EAAE,uBAAuB,GAChC,SAAS,CA6DX;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EAAE,EACtB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,kBAAkB,CAuGpB;AAQD,eAAO,MAAM,wBAAwB,aACzB,OAAO,EAAE,GAAG,YAAY,EAAE,qBACjB,kBAAkB,MACjC,QAAQ,gBACC,OAAO,+BAgBrB,CAAC"}
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAkB,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAE5F,eAAO,MAAM,yBAAyB;;;;;;CAMrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,yBAAyB,CAAC;AAMtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAmCD,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAexF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAOlF;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GACZ,cAAc,CAmBhB;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GACvD,gBAAgB,CAGlB;AAED,iBAAS,4BAA4B,CACnC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ;;cAUZ,IAAI;eACH,MAAM;sBACC,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;EA0C1C;AAoBD,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,OAAO,CAAC,EAAE,uBAAuB,GAChC,SAAS,CAkEX;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,GACnB,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,OAAO,EAAE,EACtB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,QAAQ,EACpB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,kBAAkB,CAuGpB;AAQD,eAAO,MAAM,wBAAwB,aACzB,WAAW,EAAE,qBACJ,kBAAkB,MACjC,QAAQ,gBACC,OAAO,kBAgBrB,CAAC"}
@@ -111,7 +111,11 @@ export function getBalanceHistory(account, range, count) {
111
111
  }
112
112
  return history;
113
113
  }
114
- export function getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCurrency) {
114
+ export function getBalanceHistoryWithCountervalue(...args) {
115
+ const { history, countervalueAvailable, changes } = getBalanceHistoryWithChanges(...args);
116
+ return { history, countervalueAvailable, ...changes() };
117
+ }
118
+ function getBalanceHistoryWithChanges(account, range, count, cvState, cvCurrency) {
115
119
  const balanceHistory = getBalanceHistory(account, range, count);
116
120
  const currency = getAccountCurrency(account);
117
121
  const counterValues = calculateMany(cvState, balanceHistory, {
@@ -132,9 +136,9 @@ export function getBalanceHistoryWithCountervalue(account, range, count, cvState
132
136
  countervalue,
133
137
  });
134
138
  }
135
- function calcChanges(h) {
136
- const from = h[0];
137
- const to = h[h.length - 1];
139
+ function calcChanges(start = 0) {
140
+ const from = history.at(start) ?? { value: 0, countervalue: 0 };
141
+ const to = history.at(-1) ?? { value: 0, countervalue: 0 };
138
142
  return {
139
143
  countervalueReceiveSum: 0,
140
144
  // not available here
@@ -152,7 +156,7 @@ export function getBalanceHistoryWithCountervalue(account, range, count, cvState
152
156
  return {
153
157
  history,
154
158
  countervalueAvailable,
155
- ...calcChanges(history),
159
+ changes: calcChanges,
156
160
  };
157
161
  }
158
162
  function meaningfulPercentage(deltaChange, balanceDivider, percentageHighThreshold = 100000) {
@@ -182,15 +186,9 @@ export function getPortfolio(topAccounts, range, cvState, cvCurrency, options) {
182
186
  const availables = [];
183
187
  const unavailableAccounts = [];
184
188
  for (const account of accounts) {
185
- const p = getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCurrency);
189
+ const p = getBalanceHistoryWithChanges(account, range, count, cvState, cvCurrency);
186
190
  if (p.countervalueAvailable) {
187
- availables.push({
188
- account,
189
- history: p.history,
190
- change: p.countervalueChange,
191
- countervalueReceiveSum: p.countervalueReceiveSum,
192
- countervalueSendSum: p.countervalueSendSum,
193
- });
191
+ availables.push({ account, history: p.history, changes: p.changes });
194
192
  }
195
193
  else {
196
194
  unavailableAccounts.push(account);
@@ -201,18 +199,23 @@ export function getPortfolio(topAccounts, range, cvState, cvCurrency, options) {
201
199
  date,
202
200
  value: histories.reduce((sum, h) => sum + (h[i]?.countervalue ?? 0), 0),
203
201
  }));
204
- const [countervalueChangeValue, countervalueReceiveSum, countervalueSendSum] = availables.reduce((prev, a) => [
205
- prev[0] + a.change.value, // TODO Portfolio: it'll always be 0, no? 🤔
206
- prev[1] + a.countervalueReceiveSum,
207
- prev[2] + a.countervalueSendSum,
208
- ], [0, 0, 0]);
202
+ const firstSignificantHistoryIndex = balanceHistory.findIndex(balance => balance.value !== 0);
203
+ const firstSignificantHistoryValue = balanceHistory.at(firstSignificantHistoryIndex)?.value ?? 0;
204
+ const [countervalueChangeValue, countervalueReceiveSum, countervalueSendSum] = availables.reduce((sums, { changes }) => {
205
+ const { countervalueChange, countervalueReceiveSum, countervalueSendSum } = changes(firstSignificantHistoryIndex);
206
+ return [
207
+ sums[0] + countervalueChange.value,
208
+ sums[1] + countervalueReceiveSum,
209
+ sums[2] + countervalueSendSum,
210
+ ];
211
+ }, [0, 0, 0]);
209
212
  // in case there were no receive, we just track the market change
210
213
  // weighted by the current balances
211
214
  const balanceDivider = getEnv("EXPERIMENTAL_ROI_CALCULATION")
212
215
  ? countervalueReceiveSum === 0
213
- ? balanceHistory[0].value + countervalueSendSum
216
+ ? firstSignificantHistoryValue + countervalueSendSum
214
217
  : countervalueReceiveSum
215
- : balanceHistory[0].value;
218
+ : firstSignificantHistoryValue;
216
219
  return {
217
220
  balanceHistory,
218
221
  balanceAvailable: accounts.length === 0 || availables.length > 0,
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAc5C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,KAAK;IACxB,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AAGF,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,MAAM,YAAY,GAAG,EAAE,GAAG,aAAa,CAAC;AACxC,MAAM,aAAa,GAAG,CAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,CAAO;IACjC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,CAAO;IAChC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9D,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,CAAO;IACjC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,6EAA6E;AAC7E,MAAM,MAAM,GAAiD;IAC3D,GAAG,EAAE;QACH,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,UAAU;QACnB,aAAa,EAAE,KAAK;KACrB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,GAAG,EAAE;QACb,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,MAAM;KACtB;IACD,GAAG,EAAE;QACH,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,MAAM;KACtB;CACF,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAiB,EAAE,KAAa;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAiB;IACvD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAuB,EAAE,KAAqB;IAC9E,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEnC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;YACnB,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,uBAAuB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAW,EAAE,KAAqB;IACxE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB;IAE7F,OAAO,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAoB,EACpB,KAAqB,EACrB,KAAa;IAEb,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,CAAC,OAAO,CAAC;QACd,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB;IAElF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACtC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,GAAG,IAAqD;IAExD,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1F,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAoB,EACpB,KAAqB,EACrB,KAAa,EACb,OAA2B,EAC3B,UAAoB;IAEpB,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE;QAC3D,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,UAAU;KACf,CAAC,CAAC;IACH,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,MAAM,OAAO,GAIR,EAAE,CAAC;IAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACxD,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,KAAK;YACL,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,SAAS,WAAW,CAAC,KAAK,GAAG,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC3D,OAAO;YACL,sBAAsB,EAAE,CAAC;YACzB,qBAAqB;YACrB,mBAAmB,EAAE,CAAC;YACtB,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;gBAC5B,UAAU,EAAE,IAAI;aACjB;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACxD,UAAU,EAAE,oBAAoB,CAC9B,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EACjD,IAAI,CAAC,YAAY,CAClB;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,qBAAqB;QACrB,OAAO,EAAE,WAAW;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAsC,EACtC,cAAyC,EACzC,uBAAuB,GAAG,MAAM;IAEhC,IAAI,WAAW,IAAI,cAAc,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC;QAE7C,IAAI,OAAO,GAAG,uBAAuB,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,0BAA0B,GAAG;IACjC,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAMF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,WAA0B,EAC1B,KAAqB,EACrB,OAA2B,EAC3B,UAAoB,EACpB,OAAiC;IAEjC,MAAM,EAAE,qBAAqB,EAAE,GAAG;QAChC,GAAG,0BAA0B;QAC7B,GAAG,OAAO;KACX,CAAC;IACF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACpF,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,4BAA4B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACnF,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI;QACJ,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KACxE,CAAC,CAAC,CAAC;IAEJ,MAAM,4BAA4B,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IAC9F,MAAM,4BAA4B,GAAG,cAAc,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAEjG,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,GAAG,UAAU,CAAC,MAAM,CAC9F,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CACjF,4BAA4B,CAC7B,CAAC;QACF,OAAO;YACL,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK;YAClC,IAAI,CAAC,CAAC,CAAC,GAAG,sBAAsB;YAChC,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB;SAC9B,CAAC;IACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACV,CAAC;IAEF,iEAAiE;IACjE,mCAAmC;IACnC,MAAM,cAAc,GAAG,MAAM,CAAC,8BAA8B,CAAC;QAC3D,CAAC,CAAC,sBAAsB,KAAK,CAAC;YAC5B,CAAC,CAAC,4BAA4B,GAAG,mBAAmB;YACpD,CAAC,CAAC,sBAAsB;QAC1B,CAAC,CAAC,4BAA4B,CAAC;IAEjC,OAAO;QACL,cAAc;QACd,gBAAgB,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAChE,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACjD,qBAAqB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChF,QAAQ;QACR,KAAK;QACL,SAAS;QACT,sBAAsB;QACtB,mBAAmB;QACnB,kBAAkB,EAAE;YAClB,UAAU,EAAE,oBAAoB,CAAC,uBAAuB,EAAE,cAAc,CAAC;YACzE,KAAK,EAAE,uBAAuB;SAC/B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAuB,EACvB,KAAqB,EACrB,OAA2B,EAC3B,UAAoB;IAEpB,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClC,iCAAiC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CACxE,CAAC;IACF,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnC,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC5B,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI;QACJ,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KAC/E,CAAC,CAAC,CAAC;IACJ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,KAAK,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACxD,UAAU,EAAE,oBAAoB,CAC9B,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EACjD,IAAI,CAAC,YAAY,CAClB;KACF,CAAC;IACF,OAAO;QACL,OAAO;QACP,qBAAqB;QACrB,QAAQ;QACR,KAAK;QACL,SAAS;QACT,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,WAAsB,EACtB,OAA2B,EAC3B,UAAoB,EACpB,IAA6B;IAE7B,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GACtB,GAAG;QACF,GAAG,yBAAyB;QAC5B,GAAG,IAAI;KACR,CAAC;IACF,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAmD,EAAE,CAAC;IACxE,MAAM,kBAAkB,GAAkC,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QAElB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,YAAY,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACvB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,YAAY,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACvB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAuC,EAAE,CAAC;IAC/D,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACtB,EAAE,EAAE,UAAU;SACf,CAAC,CAAC;QACH,IAAI,EAAE,EAAE,CAAC;YACP,GAAG,IAAI,EAAE,CAAC;YACV,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEnD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,IAAI,iBAAiB,CAAC;IACnD,MAAM,IAAI,GAAG,gBAAgB;SAC1B,GAAG,CAAC,EAAE,CAAC,EAAE;QACR,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAChD,OAAO;YACL,QAAQ;YACR,YAAY;YACZ,MAAM;YACN,YAAY,EAAE,WAAW;gBACvB,CAAC,CAAC,GAAG,KAAK,CAAC;oBACT,CAAC,CAAC,YAAY,GAAG,GAAG;oBACpB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM;gBAC/B,CAAC,CAAC,CAAC;YACL,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;QAC7C,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC,CAAC,CAAC;IACL,IAAI,CAAC,CAAC;IACN,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,GAAG,GAAG,kBAAkB,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QAED,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG;QACX,WAAW;QACX,IAAI;QACJ,SAAS;QACT,GAAG;KACJ,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,8BAA8B,GAAuB;IACzD,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC;IACZ,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,QAAuB,EACvB,iBAAqC,EACrC,EAAY,EACZ,cAAuB,IAAI,EAC3B,EAAE;IACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,iBAAiB,EAAE;YACzC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;YAC5E,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;YACjC,EAAE;YACF,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-countervalues",
3
- "version": "0.4.6",
3
+ "version": "0.5.0-next.0",
4
4
  "description": "Ledger Live countervalues module",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -21,14 +21,14 @@
21
21
  "types": "lib/index.d.ts",
22
22
  "license": "Apache-2.0",
23
23
  "dependencies": {
24
- "@ledgerhq/types-live": "6.65.0",
24
+ "@ledgerhq/types-live": "6.66.0-next.0",
25
25
  "@ledgerhq/types-cryptoassets": "7.21.0",
26
- "@ledgerhq/cryptoassets": "13.14.0",
27
- "@ledgerhq/coin-framework": "2.5.0",
26
+ "@ledgerhq/cryptoassets": "13.14.1-next.0",
27
+ "@ledgerhq/coin-framework": "2.6.0-next.0",
28
28
  "@ledgerhq/logs": "6.12.0",
29
+ "@ledgerhq/live-network": "2.0.7-next.0",
29
30
  "@ledgerhq/live-promise": "0.1.0",
30
- "@ledgerhq/live-env": "2.7.0",
31
- "@ledgerhq/live-network": "2.0.6"
31
+ "@ledgerhq/live-env": "2.8.0-next.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/jest": "^29.5.10",
@@ -6554,8 +6554,8 @@ exports[`Portfolio getPortfolio snapshot 1`] = `
6554
6554
  },
6555
6555
  ],
6556
6556
  "countervalueChange": {
6557
- "percentage": undefined,
6558
- "value": 16232,
6557
+ "percentage": 323.64,
6558
+ "value": 16182,
6559
6559
  },
6560
6560
  "countervalueReceiveSum": 0,
6561
6561
  "countervalueSendSum": 0,
package/src/portfolio.ts CHANGED
@@ -8,12 +8,10 @@ import {
8
8
  import { getEnv } from "@ledgerhq/live-env";
9
9
  import type {
10
10
  Account,
11
- TokenAccount,
12
11
  AccountLike,
13
12
  BalanceHistory,
14
13
  PortfolioRange,
15
14
  PortfolioRangeConfig,
16
- BalanceHistoryWithCountervalue,
17
15
  AccountPortfolio,
18
16
  Portfolio,
19
17
  CurrencyPortfolio,
@@ -152,12 +150,19 @@ export function getBalanceHistory(
152
150
  }
153
151
 
154
152
  export function getBalanceHistoryWithCountervalue(
153
+ ...args: Parameters<typeof getBalanceHistoryWithChanges>
154
+ ): AccountPortfolio {
155
+ const { history, countervalueAvailable, changes } = getBalanceHistoryWithChanges(...args);
156
+ return { history, countervalueAvailable, ...changes() };
157
+ }
158
+
159
+ function getBalanceHistoryWithChanges(
155
160
  account: AccountLike,
156
161
  range: PortfolioRange,
157
162
  count: number,
158
163
  cvState: CounterValuesState,
159
164
  cvCurrency: Currency,
160
- ): AccountPortfolio {
165
+ ) {
161
166
  const balanceHistory = getBalanceHistory(account, range, count);
162
167
  const currency = getAccountCurrency(account);
163
168
  const counterValues = calculateMany(cvState, balanceHistory, {
@@ -184,9 +189,9 @@ export function getBalanceHistoryWithCountervalue(
184
189
  });
185
190
  }
186
191
 
187
- function calcChanges(h: BalanceHistoryWithCountervalue) {
188
- const from = h[0];
189
- const to = h[h.length - 1];
192
+ function calcChanges(start = 0) {
193
+ const from = history.at(start) ?? { value: 0, countervalue: 0 };
194
+ const to = history.at(-1) ?? { value: 0, countervalue: 0 };
190
195
  return {
191
196
  countervalueReceiveSum: 0,
192
197
  // not available here
@@ -208,7 +213,7 @@ export function getBalanceHistoryWithCountervalue(
208
213
  return {
209
214
  history,
210
215
  countervalueAvailable,
211
- ...calcChanges(history),
216
+ changes: calcChanges,
212
217
  };
213
218
  }
214
219
 
@@ -258,15 +263,9 @@ export function getPortfolio(
258
263
  const unavailableAccounts = [];
259
264
 
260
265
  for (const account of accounts) {
261
- const p = getBalanceHistoryWithCountervalue(account, range, count, cvState, cvCurrency);
266
+ const p = getBalanceHistoryWithChanges(account, range, count, cvState, cvCurrency);
262
267
  if (p.countervalueAvailable) {
263
- availables.push({
264
- account,
265
- history: p.history,
266
- change: p.countervalueChange,
267
- countervalueReceiveSum: p.countervalueReceiveSum,
268
- countervalueSendSum: p.countervalueSendSum,
269
- });
268
+ availables.push({ account, history: p.history, changes: p.changes });
270
269
  } else {
271
270
  unavailableAccounts.push(account);
272
271
  }
@@ -277,21 +276,32 @@ export function getPortfolio(
277
276
  date,
278
277
  value: histories.reduce((sum, h) => sum + (h[i]?.countervalue ?? 0), 0),
279
278
  }));
279
+
280
+ const firstSignificantHistoryIndex = balanceHistory.findIndex(balance => balance.value !== 0);
281
+ const firstSignificantHistoryValue = balanceHistory.at(firstSignificantHistoryIndex)?.value ?? 0;
282
+
280
283
  const [countervalueChangeValue, countervalueReceiveSum, countervalueSendSum] = availables.reduce(
281
- (prev, a) => [
282
- prev[0] + a.change.value, // TODO Portfolio: it'll always be 0, no? 🤔
283
- prev[1] + a.countervalueReceiveSum,
284
- prev[2] + a.countervalueSendSum,
285
- ],
284
+ (sums, { changes }) => {
285
+ const { countervalueChange, countervalueReceiveSum, countervalueSendSum } = changes(
286
+ firstSignificantHistoryIndex,
287
+ );
288
+ return [
289
+ sums[0] + countervalueChange.value,
290
+ sums[1] + countervalueReceiveSum,
291
+ sums[2] + countervalueSendSum,
292
+ ];
293
+ },
286
294
  [0, 0, 0],
287
295
  );
296
+
288
297
  // in case there were no receive, we just track the market change
289
298
  // weighted by the current balances
290
299
  const balanceDivider = getEnv("EXPERIMENTAL_ROI_CALCULATION")
291
300
  ? countervalueReceiveSum === 0
292
- ? balanceHistory[0].value + countervalueSendSum
301
+ ? firstSignificantHistoryValue + countervalueSendSum
293
302
  : countervalueReceiveSum
294
- : balanceHistory[0].value;
303
+ : firstSignificantHistoryValue;
304
+
295
305
  return {
296
306
  balanceHistory,
297
307
  balanceAvailable: accounts.length === 0 || availables.length > 0,
@@ -473,7 +483,7 @@ const assetsDistributionNotAvailable: AssetsDistribution = {
473
483
  };
474
484
 
475
485
  export const orderAccountsByFiatValue = (
476
- accounts: Account[] | TokenAccount[],
486
+ accounts: AccountLike[],
477
487
  counterValueState: CounterValuesState,
478
488
  to: Currency,
479
489
  fullBalance: boolean = true,