@ledgerhq/live-countervalues-react 0.2.44 → 0.2.45-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/CHANGELOG.md +8 -0
- package/lib/index.d.ts +29 -13
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +90 -121
- package/lib/index.js.map +1 -1
- package/lib-es/index.d.ts +29 -13
- package/lib-es/index.d.ts.map +1 -1
- package/lib-es/index.js +83 -114
- package/lib-es/index.js.map +1 -1
- package/package.json +5 -5
- package/src/index.tsx +137 -174
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @ledgerhq/live-countervalues-react
|
|
2
2
|
|
|
3
|
+
## 0.2.45-nightly.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`9c63d6b`](https://github.com/LedgerHQ/ledger-live/commit/9c63d6b8d5fb629a19514ec36396c35eeefb96aa), [`8b0b4ef`](https://github.com/LedgerHQ/ledger-live/commit/8b0b4efaf2c0968cfb60c0cecebca9c575b00748)]:
|
|
8
|
+
- @ledgerhq/live-countervalues@0.6.0-nightly.0
|
|
9
|
+
- @ledgerhq/coin-framework@5.9.0-nightly.0
|
|
10
|
+
|
|
3
11
|
## 0.2.44
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import { BigNumber } from "bignumber.js";
|
|
2
|
-
import React, { ReactElement } from "react";
|
|
3
1
|
import type { CounterValuesState, CounterValuesStateRaw, CountervaluesSettings, TrackingPair } from "@ledgerhq/live-countervalues/types";
|
|
4
|
-
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
5
2
|
import type { Currency, Unit } from "@ledgerhq/types-cryptoassets";
|
|
3
|
+
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
4
|
+
import { BigNumber } from "bignumber.js";
|
|
5
|
+
import React, { ReactElement } from "react";
|
|
6
|
+
/** Bridge enabling platform-specific persistence of market-cap ids. */
|
|
7
|
+
export interface CountervaluesMarketcapBridge {
|
|
8
|
+
useIds(): string[];
|
|
9
|
+
useLastUpdated(): number | undefined;
|
|
10
|
+
setLoading(loading: boolean): void;
|
|
11
|
+
setIds(ids: string[]): void;
|
|
12
|
+
setError(message: string): void;
|
|
13
|
+
}
|
|
6
14
|
export type Polling = {
|
|
7
15
|
wipe: () => void;
|
|
8
16
|
poll: () => void;
|
|
@@ -19,20 +27,21 @@ export type Props = {
|
|
|
19
27
|
debounceDelay?: number;
|
|
20
28
|
savedState?: CounterValuesStateRaw;
|
|
21
29
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
to: Currency;
|
|
25
|
-
startDate: Date;
|
|
26
|
-
}[];
|
|
27
|
-
export declare function useTrackingPairForAccounts(accounts: Account[], countervalue: Currency): TrackingPair[];
|
|
28
|
-
export declare function CountervaluesMarketcap({ children }: {
|
|
30
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
31
|
+
export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
|
|
29
32
|
children: React.ReactNode;
|
|
33
|
+
bridge: CountervaluesMarketcapBridge;
|
|
30
34
|
}): ReactElement;
|
|
31
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Root countervalues provider (polling + calculation).
|
|
37
|
+
*/
|
|
38
|
+
export declare function CountervaluesProvider({ children, userSettings, pollInitDelay, debounceDelay, savedState, }: Props): ReactElement;
|
|
39
|
+
/** Returns market-cap ids. */
|
|
40
|
+
export declare function useMarketcapIds(): string[];
|
|
41
|
+
/** Returns the full countervalues state. */
|
|
42
|
+
export declare function useCountervaluesState(): CounterValuesState;
|
|
32
43
|
export declare function useCountervaluesPolling(): Polling;
|
|
33
44
|
export declare function useCountervaluesUserSettingsContext(): CountervaluesSettings;
|
|
34
|
-
export declare function useCountervaluesState(): CounterValuesState;
|
|
35
|
-
export declare function useMarketcapIds(): string[];
|
|
36
45
|
export declare function useCountervaluesExport(): CounterValuesStateRaw;
|
|
37
46
|
export declare function useCalculate(query: {
|
|
38
47
|
value: number;
|
|
@@ -45,6 +54,7 @@ export declare function useCalculate(query: {
|
|
|
45
54
|
export declare function useCalculateCountervalueCallback({ to, }: {
|
|
46
55
|
to: Currency;
|
|
47
56
|
}): (from: Currency, value: BigNumber) => BigNumber | null | undefined;
|
|
57
|
+
/** Helper for send-flow: returns fiat amount and reverse calculation. */
|
|
48
58
|
export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }: {
|
|
49
59
|
account: AccountLike;
|
|
50
60
|
fiatCurrency: Currency;
|
|
@@ -54,4 +64,10 @@ export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }:
|
|
|
54
64
|
fiatUnit: Unit;
|
|
55
65
|
calculateCryptoAmount: (fiatAmount: BigNumber) => BigNumber;
|
|
56
66
|
};
|
|
67
|
+
export declare function useTrackingPairsForTopCoins(marketcapIds: string[], countervalue: Currency, size: number, startDate: Date | undefined): {
|
|
68
|
+
from: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
|
|
69
|
+
to: Currency;
|
|
70
|
+
startDate: Date;
|
|
71
|
+
}[];
|
|
72
|
+
export declare function useTrackingPairForAccounts(accounts: Account[], countervalue: Currency): TrackingPair[];
|
|
57
73
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -26,14 +26,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
const bignumber_js_1 = require("bignumber.js");
|
|
31
|
-
const react_1 = __importStar(require("react"));
|
|
29
|
+
exports.useTrackingPairForAccounts = exports.useTrackingPairsForTopCoins = exports.useSendAmount = exports.useCalculateCountervalueCallback = exports.useCalculate = exports.useCountervaluesExport = exports.useCountervaluesUserSettingsContext = exports.useCountervaluesPolling = exports.useCountervaluesState = exports.useMarketcapIds = exports.CountervaluesProvider = exports.CountervaluesMarketcapProvider = void 0;
|
|
32
30
|
const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
|
|
33
|
-
const logic_1 = require("@ledgerhq/live-countervalues/logic");
|
|
34
31
|
const index_1 = __importDefault(require("@ledgerhq/live-countervalues/api/index"));
|
|
32
|
+
const logic_1 = require("@ledgerhq/live-countervalues/logic");
|
|
35
33
|
const useDebounce_1 = require("@ledgerhq/live-hooks/useDebounce");
|
|
36
34
|
const logs_1 = require("@ledgerhq/logs");
|
|
35
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
36
|
+
const react_1 = __importStar(require("react"));
|
|
37
37
|
const CountervaluesPollingContext = (0, react_1.createContext)({
|
|
38
38
|
wipe: () => { },
|
|
39
39
|
poll: () => { },
|
|
@@ -59,73 +59,54 @@ function trackingPairsHash(a) {
|
|
|
59
59
|
}
|
|
60
60
|
const marketcapRefresh = 30 * 60000;
|
|
61
61
|
const marketcapRefreshOnError = 60000;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
function useMarketcap() {
|
|
68
|
-
const [ids, setIds] = (0, react_1.useState)(initialIds);
|
|
69
|
-
const [fetchNonce, setFetchNonce] = (0, react_1.useState)(0);
|
|
62
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
63
|
+
function CountervaluesMarketcapProvider({ children, bridge, }) {
|
|
64
|
+
const ids = bridge.useIds();
|
|
65
|
+
const lastUpdated = bridge.useLastUpdated();
|
|
66
|
+
const [, forceUpdate] = (0, react_1.useReducer)(x => x + 1, 0);
|
|
70
67
|
(0, react_1.useEffect)(() => {
|
|
71
68
|
let timeout = null;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
69
|
+
const now = Date.now();
|
|
70
|
+
if (!lastUpdated || now - lastUpdated > marketcapRefresh) {
|
|
71
|
+
bridge.setLoading(true);
|
|
72
|
+
index_1.default.fetchIdsSortedByMarketcap().then(fetchedIds => {
|
|
73
|
+
bridge.setIds(fetchedIds);
|
|
74
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefresh);
|
|
75
|
+
}, error => {
|
|
76
|
+
(0, logs_1.log)("countervalues", "error fetching marketcap ids " + error);
|
|
77
|
+
bridge.setError(error.message);
|
|
78
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefreshOnError);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefresh - (now - lastUpdated));
|
|
83
|
+
}
|
|
79
84
|
return () => {
|
|
80
|
-
if (timeout)
|
|
85
|
+
if (timeout)
|
|
81
86
|
clearTimeout(timeout);
|
|
82
|
-
}
|
|
83
87
|
};
|
|
84
|
-
}, [
|
|
85
|
-
return ids;
|
|
86
|
-
}
|
|
87
|
-
// infer the tracking pairs for the top coins that the portfolio needs to display itself
|
|
88
|
-
// if startDate is undefined, the feature is disabled
|
|
89
|
-
function useTrackingPairsForTopCoins(marketcapIds, countervalue, size, startDate) {
|
|
90
|
-
const dateTimestamp = startDate?.getTime();
|
|
91
|
-
return (0, react_1.useMemo)(() => dateTimestamp
|
|
92
|
-
? (0, logic_1.trackingPairForTopCoins)(marketcapIds, size, countervalue, new Date(dateTimestamp))
|
|
93
|
-
: [], [marketcapIds, countervalue, dateTimestamp, size]);
|
|
94
|
-
}
|
|
95
|
-
exports.useTrackingPairsForTopCoins = useTrackingPairsForTopCoins;
|
|
96
|
-
function useTrackingPairForAccounts(accounts, countervalue) {
|
|
97
|
-
// first we cache the tracking pairs with its hash
|
|
98
|
-
const c = (0, react_1.useMemo)(() => {
|
|
99
|
-
const pairs = (0, logic_1.inferTrackingPairForAccounts)(accounts, countervalue);
|
|
100
|
-
return { pairs, hash: trackingPairsHash(pairs) };
|
|
101
|
-
}, [accounts, countervalue]);
|
|
102
|
-
// we only want to return the pairs when the hash changes
|
|
103
|
-
// to not recalculate pairs as fast as accounts resynchronizes
|
|
104
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
|
-
return (0, react_1.useMemo)(() => c.pairs, [c.hash]);
|
|
106
|
-
}
|
|
107
|
-
exports.useTrackingPairForAccounts = useTrackingPairForAccounts;
|
|
108
|
-
function CountervaluesMarketcap({ children }) {
|
|
109
|
-
const marketcapIds = useMarketcap();
|
|
110
|
-
return (react_1.default.createElement(CountervaluesMarketcapIdsContext.Provider, { value: marketcapIds }, children));
|
|
88
|
+
}, [lastUpdated, bridge]);
|
|
89
|
+
return (react_1.default.createElement(CountervaluesMarketcapIdsContext.Provider, { value: ids }, children));
|
|
111
90
|
}
|
|
112
|
-
exports.
|
|
113
|
-
|
|
91
|
+
exports.CountervaluesMarketcapProvider = CountervaluesMarketcapProvider;
|
|
92
|
+
/**
|
|
93
|
+
* Root countervalues provider (polling + calculation).
|
|
94
|
+
*/
|
|
95
|
+
function CountervaluesProvider({ children, userSettings, pollInitDelay = 3 * 1000, debounceDelay = 1000, savedState, }) {
|
|
114
96
|
const autopollInterval = userSettings.refreshRate;
|
|
115
97
|
const debouncedUserSettings = (0, useDebounce_1.useDebounce)(userSettings, debounceDelay);
|
|
116
98
|
const [{ state, pending, error }, dispatch] = (0, react_1.useReducer)(fetchReducer, initialFetchState);
|
|
99
|
+
// TODO this is always using the initial value, doesn't react to changes.
|
|
117
100
|
const marketcapIds = (0, react_1.useContext)(CountervaluesMarketcapIdsContext);
|
|
118
101
|
const { marketCapBatchingAfterRank } = userSettings;
|
|
119
|
-
const batchStrategySolver = (0, react_1.useMemo)(() => {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
};
|
|
128
|
-
}, [marketCapBatchingAfterRank, marketcapIds]);
|
|
102
|
+
const batchStrategySolver = (0, react_1.useMemo)(() => ({
|
|
103
|
+
shouldBatchCurrencyFrom: (currency) => {
|
|
104
|
+
if (currency.type === "FiatCurrency")
|
|
105
|
+
return false;
|
|
106
|
+
const i = marketcapIds.indexOf(currency.id);
|
|
107
|
+
return i === -1 || i > marketCapBatchingAfterRank;
|
|
108
|
+
},
|
|
109
|
+
}), [marketCapBatchingAfterRank, marketcapIds]);
|
|
129
110
|
// flag used to trigger a loadCountervalues
|
|
130
111
|
const [triggerLoad, setTriggerLoad] = (0, react_1.useState)(false);
|
|
131
112
|
// trigger poll only when userSettings changes. in a debounced way.
|
|
@@ -137,20 +118,8 @@ function Countervalues({ children, userSettings, pollInitDelay = 3 * 1000, debou
|
|
|
137
118
|
if (pending || !triggerLoad)
|
|
138
119
|
return;
|
|
139
120
|
setTriggerLoad(false);
|
|
140
|
-
dispatch({
|
|
141
|
-
|
|
142
|
-
});
|
|
143
|
-
(0, logic_1.loadCountervalues)(state, userSettings, batchStrategySolver, userSettings.granularitiesRates).then(state => {
|
|
144
|
-
dispatch({
|
|
145
|
-
type: "success",
|
|
146
|
-
payload: state,
|
|
147
|
-
});
|
|
148
|
-
}, error => {
|
|
149
|
-
dispatch({
|
|
150
|
-
type: "error",
|
|
151
|
-
payload: error,
|
|
152
|
-
});
|
|
153
|
-
});
|
|
121
|
+
dispatch({ type: "pending" });
|
|
122
|
+
(0, logic_1.loadCountervalues)(state, userSettings, batchStrategySolver, userSettings.granularitiesRates).then(newState => dispatch({ type: "success", payload: newState }), e => dispatch({ type: "error", payload: e }));
|
|
154
123
|
}, [pending, state, userSettings, triggerLoad, batchStrategySolver]);
|
|
155
124
|
// save the state when it changes
|
|
156
125
|
(0, react_1.useEffect)(() => {
|
|
@@ -159,8 +128,8 @@ function Countervalues({ children, userSettings, pollInitDelay = 3 * 1000, debou
|
|
|
159
128
|
dispatch({
|
|
160
129
|
type: "setCounterValueState",
|
|
161
130
|
payload: (0, logic_1.importCountervalues)(savedState, userSettings),
|
|
162
|
-
});
|
|
163
|
-
}, [savedState]);
|
|
131
|
+
});
|
|
132
|
+
}, [savedState, userSettings]);
|
|
164
133
|
// manage the auto polling loop and the interface for user land to trigger a reload
|
|
165
134
|
const [isPolling, setIsPolling] = (0, react_1.useState)(true);
|
|
166
135
|
(0, react_1.useEffect)(() => {
|
|
@@ -175,11 +144,7 @@ function Countervalues({ children, userSettings, pollInitDelay = 3 * 1000, debou
|
|
|
175
144
|
return () => clearTimeout(pollingTimeout);
|
|
176
145
|
}, [autopollInterval, pollInitDelay, isPolling]);
|
|
177
146
|
const polling = (0, react_1.useMemo)(() => ({
|
|
178
|
-
wipe: () => {
|
|
179
|
-
dispatch({
|
|
180
|
-
type: "wipe",
|
|
181
|
-
});
|
|
182
|
-
},
|
|
147
|
+
wipe: () => dispatch({ type: "wipe" }),
|
|
183
148
|
poll: () => setTriggerLoad(true),
|
|
184
149
|
start: () => setIsPolling(true),
|
|
185
150
|
stop: () => setIsPolling(false),
|
|
@@ -190,35 +155,34 @@ function Countervalues({ children, userSettings, pollInitDelay = 3 * 1000, debou
|
|
|
190
155
|
react_1.default.createElement(CountervaluesUserSettingsContext.Provider, { value: userSettings },
|
|
191
156
|
react_1.default.createElement(CountervaluesContext.Provider, { value: state }, children))));
|
|
192
157
|
}
|
|
193
|
-
exports.
|
|
194
|
-
const initialFetchState = {
|
|
195
|
-
state: logic_1.initialState,
|
|
196
|
-
pending: false,
|
|
197
|
-
};
|
|
158
|
+
exports.CountervaluesProvider = CountervaluesProvider;
|
|
159
|
+
const initialFetchState = { state: logic_1.initialState, pending: false };
|
|
198
160
|
function fetchReducer(state, action) {
|
|
199
161
|
switch (action.type) {
|
|
200
162
|
case "success":
|
|
201
|
-
return {
|
|
202
|
-
state: action.payload,
|
|
203
|
-
pending: false,
|
|
204
|
-
error: undefined,
|
|
205
|
-
};
|
|
163
|
+
return { state: action.payload, pending: false, error: undefined };
|
|
206
164
|
case "error":
|
|
207
165
|
return { ...state, pending: false, error: action.payload };
|
|
208
166
|
case "pending":
|
|
209
167
|
return { ...state, pending: true, error: undefined };
|
|
210
168
|
case "wipe":
|
|
211
|
-
return {
|
|
212
|
-
state: logic_1.initialState,
|
|
213
|
-
pending: false,
|
|
214
|
-
error: undefined,
|
|
215
|
-
};
|
|
169
|
+
return { state: logic_1.initialState, pending: false, error: undefined };
|
|
216
170
|
case "setCounterValueState":
|
|
217
171
|
return { ...state, state: action.payload };
|
|
218
172
|
default:
|
|
219
173
|
return state;
|
|
220
174
|
}
|
|
221
175
|
}
|
|
176
|
+
/** Returns market-cap ids. */
|
|
177
|
+
function useMarketcapIds() {
|
|
178
|
+
return (0, react_1.useContext)(CountervaluesMarketcapIdsContext);
|
|
179
|
+
}
|
|
180
|
+
exports.useMarketcapIds = useMarketcapIds;
|
|
181
|
+
/** Returns the full countervalues state. */
|
|
182
|
+
function useCountervaluesState() {
|
|
183
|
+
return (0, react_1.useContext)(CountervaluesContext);
|
|
184
|
+
}
|
|
185
|
+
exports.useCountervaluesState = useCountervaluesState;
|
|
222
186
|
// allows consumer to access the countervalues polling control object
|
|
223
187
|
function useCountervaluesPolling() {
|
|
224
188
|
return (0, react_1.useContext)(CountervaluesPollingContext);
|
|
@@ -229,19 +193,9 @@ function useCountervaluesUserSettingsContext() {
|
|
|
229
193
|
return (0, react_1.useContext)(CountervaluesUserSettingsContext);
|
|
230
194
|
}
|
|
231
195
|
exports.useCountervaluesUserSettingsContext = useCountervaluesUserSettingsContext;
|
|
232
|
-
// allows consumer to access the countervalues state
|
|
233
|
-
function useCountervaluesState() {
|
|
234
|
-
return (0, react_1.useContext)(CountervaluesContext);
|
|
235
|
-
}
|
|
236
|
-
exports.useCountervaluesState = useCountervaluesState;
|
|
237
|
-
// allows consumer to access the coins ids sorted by marketcap. It's basically all the coins that the API supports.
|
|
238
|
-
function useMarketcapIds() {
|
|
239
|
-
return (0, react_1.useContext)(CountervaluesMarketcapIdsContext);
|
|
240
|
-
}
|
|
241
|
-
exports.useMarketcapIds = useMarketcapIds;
|
|
242
196
|
// provides an export of the countervalues state
|
|
243
197
|
function useCountervaluesExport() {
|
|
244
|
-
const state = (
|
|
198
|
+
const state = useCountervaluesState();
|
|
245
199
|
return (0, react_1.useMemo)(() => (0, logic_1.exportCountervalues)(state), [state]);
|
|
246
200
|
}
|
|
247
201
|
exports.useCountervaluesExport = useCountervaluesExport;
|
|
@@ -265,6 +219,7 @@ function useCalculateCountervalueCallback({ to, }) {
|
|
|
265
219
|
}, [to, state]);
|
|
266
220
|
}
|
|
267
221
|
exports.useCalculateCountervalueCallback = useCalculateCountervalueCallback;
|
|
222
|
+
/** Helper for send-flow: returns fiat amount and reverse calculation. */
|
|
268
223
|
function useSendAmount({ account, fiatCurrency, cryptoAmount, }) {
|
|
269
224
|
const cryptoCurrency = (0, helpers_1.getAccountCurrency)(account);
|
|
270
225
|
const fiatCountervalue = useCalculate({
|
|
@@ -276,20 +231,34 @@ function useSendAmount({ account, fiatCurrency, cryptoAmount, }) {
|
|
|
276
231
|
const fiatAmount = new bignumber_js_1.BigNumber(fiatCountervalue ?? 0);
|
|
277
232
|
const fiatUnit = fiatCurrency.units[0];
|
|
278
233
|
const state = useCountervaluesState();
|
|
279
|
-
const calculateCryptoAmount = (0, react_1.useCallback)((fiatAmount) => {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
return cryptoAmount;
|
|
287
|
-
}, [state, cryptoCurrency, fiatCurrency]);
|
|
288
|
-
return {
|
|
289
|
-
fiatAmount,
|
|
290
|
-
fiatUnit,
|
|
291
|
-
calculateCryptoAmount,
|
|
292
|
-
};
|
|
234
|
+
const calculateCryptoAmount = (0, react_1.useCallback)((fiatAmount) => new bignumber_js_1.BigNumber((0, logic_1.calculate)(state, {
|
|
235
|
+
from: cryptoCurrency,
|
|
236
|
+
to: fiatCurrency,
|
|
237
|
+
value: fiatAmount.toNumber(),
|
|
238
|
+
reverse: true,
|
|
239
|
+
}) ?? 0), [state, cryptoCurrency, fiatCurrency]);
|
|
240
|
+
return { fiatAmount, fiatUnit, calculateCryptoAmount };
|
|
293
241
|
}
|
|
294
242
|
exports.useSendAmount = useSendAmount;
|
|
243
|
+
// infer the tracking pairs for the top coins that the portfolio needs to display itself
|
|
244
|
+
// if startDate is undefined, the feature is disabled
|
|
245
|
+
function useTrackingPairsForTopCoins(marketcapIds, countervalue, size, startDate) {
|
|
246
|
+
const dateTimestamp = startDate?.getTime();
|
|
247
|
+
return (0, react_1.useMemo)(() => dateTimestamp
|
|
248
|
+
? (0, logic_1.trackingPairForTopCoins)(marketcapIds, size, countervalue, new Date(dateTimestamp))
|
|
249
|
+
: [], [marketcapIds, countervalue, dateTimestamp, size]);
|
|
250
|
+
}
|
|
251
|
+
exports.useTrackingPairsForTopCoins = useTrackingPairsForTopCoins;
|
|
252
|
+
function useTrackingPairForAccounts(accounts, countervalue) {
|
|
253
|
+
// first we cache the tracking pairs with its hash
|
|
254
|
+
const c = (0, react_1.useMemo)(() => {
|
|
255
|
+
const pairs = (0, logic_1.inferTrackingPairForAccounts)(accounts, countervalue);
|
|
256
|
+
return { pairs, hash: trackingPairsHash(pairs) };
|
|
257
|
+
}, [accounts, countervalue]);
|
|
258
|
+
// we only want to return the pairs when the hash changes
|
|
259
|
+
// to not recalculate pairs as fast as accounts resynchronizes
|
|
260
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
261
|
+
return (0, react_1.useMemo)(() => c.pairs, [c.hash]);
|
|
262
|
+
}
|
|
263
|
+
exports.useTrackingPairForAccounts = useTrackingPairForAccounts;
|
|
295
264
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/lib-es/index.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import { BigNumber } from "bignumber.js";
|
|
2
|
-
import React, { ReactElement } from "react";
|
|
3
1
|
import type { CounterValuesState, CounterValuesStateRaw, CountervaluesSettings, TrackingPair } from "@ledgerhq/live-countervalues/types";
|
|
4
|
-
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
5
2
|
import type { Currency, Unit } from "@ledgerhq/types-cryptoassets";
|
|
3
|
+
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
4
|
+
import { BigNumber } from "bignumber.js";
|
|
5
|
+
import React, { ReactElement } from "react";
|
|
6
|
+
/** Bridge enabling platform-specific persistence of market-cap ids. */
|
|
7
|
+
export interface CountervaluesMarketcapBridge {
|
|
8
|
+
useIds(): string[];
|
|
9
|
+
useLastUpdated(): number | undefined;
|
|
10
|
+
setLoading(loading: boolean): void;
|
|
11
|
+
setIds(ids: string[]): void;
|
|
12
|
+
setError(message: string): void;
|
|
13
|
+
}
|
|
6
14
|
export type Polling = {
|
|
7
15
|
wipe: () => void;
|
|
8
16
|
poll: () => void;
|
|
@@ -19,20 +27,21 @@ export type Props = {
|
|
|
19
27
|
debounceDelay?: number;
|
|
20
28
|
savedState?: CounterValuesStateRaw;
|
|
21
29
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
to: Currency;
|
|
25
|
-
startDate: Date;
|
|
26
|
-
}[];
|
|
27
|
-
export declare function useTrackingPairForAccounts(accounts: Account[], countervalue: Currency): TrackingPair[];
|
|
28
|
-
export declare function CountervaluesMarketcap({ children }: {
|
|
30
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
31
|
+
export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
|
|
29
32
|
children: React.ReactNode;
|
|
33
|
+
bridge: CountervaluesMarketcapBridge;
|
|
30
34
|
}): ReactElement;
|
|
31
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Root countervalues provider (polling + calculation).
|
|
37
|
+
*/
|
|
38
|
+
export declare function CountervaluesProvider({ children, userSettings, pollInitDelay, debounceDelay, savedState, }: Props): ReactElement;
|
|
39
|
+
/** Returns market-cap ids. */
|
|
40
|
+
export declare function useMarketcapIds(): string[];
|
|
41
|
+
/** Returns the full countervalues state. */
|
|
42
|
+
export declare function useCountervaluesState(): CounterValuesState;
|
|
32
43
|
export declare function useCountervaluesPolling(): Polling;
|
|
33
44
|
export declare function useCountervaluesUserSettingsContext(): CountervaluesSettings;
|
|
34
|
-
export declare function useCountervaluesState(): CounterValuesState;
|
|
35
|
-
export declare function useMarketcapIds(): string[];
|
|
36
45
|
export declare function useCountervaluesExport(): CounterValuesStateRaw;
|
|
37
46
|
export declare function useCalculate(query: {
|
|
38
47
|
value: number;
|
|
@@ -45,6 +54,7 @@ export declare function useCalculate(query: {
|
|
|
45
54
|
export declare function useCalculateCountervalueCallback({ to, }: {
|
|
46
55
|
to: Currency;
|
|
47
56
|
}): (from: Currency, value: BigNumber) => BigNumber | null | undefined;
|
|
57
|
+
/** Helper for send-flow: returns fiat amount and reverse calculation. */
|
|
48
58
|
export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }: {
|
|
49
59
|
account: AccountLike;
|
|
50
60
|
fiatCurrency: Currency;
|
|
@@ -54,4 +64,10 @@ export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }:
|
|
|
54
64
|
fiatUnit: Unit;
|
|
55
65
|
calculateCryptoAmount: (fiatAmount: BigNumber) => BigNumber;
|
|
56
66
|
};
|
|
67
|
+
export declare function useTrackingPairsForTopCoins(marketcapIds: string[], countervalue: Currency, size: number, startDate: Date | undefined): {
|
|
68
|
+
from: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
|
|
69
|
+
to: Currency;
|
|
70
|
+
startDate: Date;
|
|
71
|
+
}[];
|
|
72
|
+
export declare function useTrackingPairForAccounts(accounts: Account[], countervalue: Currency): TrackingPair[];
|
|
57
73
|
//# sourceMappingURL=index.d.ts.map
|
package/lib-es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|