@talismn/balances-react 0.9.0 → 0.9.2

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.
@@ -1,11 +1,12 @@
1
1
  import { AnyBalanceModule, Hydrate } from "@talismn/balances";
2
+ import { CoinsApiConfig } from "@talismn/token-rates";
2
3
  export declare const balanceModuleCreatorsAtom: import("jotai").PrimitiveAtom<((hydrate: Hydrate) => AnyBalanceModule)[]> & {
3
4
  init: ((hydrate: Hydrate) => AnyBalanceModule)[];
4
5
  };
5
6
  export declare const onfinalityApiKeyAtom: import("jotai").PrimitiveAtom<string | undefined> & {
6
7
  init: string | undefined;
7
8
  };
8
- export declare const coingeckoConfigAtom: import("jotai").WritableAtom<CoingeckoConfig, [CoingeckoConfig], void>;
9
+ export declare const coinsApiConfigAtom: import("jotai").WritableAtom<CoinsApiConfig, [Partial<CoinsApiConfig>], void>;
9
10
  export declare const enableTestnetsAtom: import("jotai").PrimitiveAtom<boolean> & {
10
11
  init: boolean;
11
12
  };
@@ -23,9 +23,7 @@ export type BalancesConfig = {
23
23
  * This key will be used in place of any public onfinality RPCs
24
24
  */
25
25
  onfinalityApiKey?: string;
26
- coingeckoApiUrl?: string;
27
- coingeckoApiKeyName?: string;
28
- coingeckoApiKeyValue?: string;
26
+ coinsApiUrl?: string;
29
27
  /** Enables balances fetching for tokens on testnet chains. */
30
28
  withTestnets?: boolean;
31
29
  /**
@@ -77,4 +75,4 @@ export type BalancesConfig = {
77
75
  enabledTokens?: string[];
78
76
  children?: ReactNode;
79
77
  };
80
- export declare const BalancesProvider: ({ balanceModules, onfinalityApiKey, coingeckoApiUrl, coingeckoApiKeyName, coingeckoApiKeyValue, withTestnets, enabledChains, enabledTokens, children, }: BalancesConfig) => import("react/jsx-runtime").JSX.Element;
78
+ export declare const BalancesProvider: ({ balanceModules, onfinalityApiKey, coinsApiUrl, withTestnets, enabledChains, enabledTokens, children, }: BalancesConfig) => import("react/jsx-runtime").JSX.Element;
@@ -26,17 +26,10 @@ var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
26
26
 
27
27
  const balanceModuleCreatorsAtom = jotai.atom(balances.defaultBalanceModules);
28
28
  const onfinalityApiKeyAtom = jotai.atom(undefined);
29
- const innerCoingeckoConfigAtom = jotai.atom(tokenRates.DEFAULT_COINGECKO_CONFIG);
30
- const coingeckoConfigAtom = jotai.atom(get => get(innerCoingeckoConfigAtom), (_get, set, options) => {
31
- const apiUrl = options.apiUrl ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiUrl;
32
- const apiKeyName = options.apiKeyName ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiKeyName;
33
- const apiKeyValue = options.apiKeyValue ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiKeyValue;
34
- set(innerCoingeckoConfigAtom, {
35
- apiUrl,
36
- apiKeyName,
37
- apiKeyValue
38
- });
39
- });
29
+ const innerCoinsApiConfigAtom = jotai.atom(tokenRates.DEFAULT_COINSAPI_CONFIG);
30
+ const coinsApiConfigAtom = jotai.atom(get => get(innerCoinsApiConfigAtom), (_get, set, options) => set(innerCoinsApiConfigAtom, {
31
+ apiUrl: options.apiUrl ?? tokenRates.DEFAULT_COINSAPI_CONFIG.apiUrl
32
+ }));
40
33
  const enableTestnetsAtom = jotai.atom(false);
41
34
  const enabledChainsAtom = jotai.atom(undefined);
42
35
  const enabledTokensAtom = jotai.atom(undefined);
@@ -249,7 +242,7 @@ const tokenRatesFetcherAtomEffect = jotaiEffect.atomEffect(get => {
249
242
  const abort = new AbortController();
250
243
 
251
244
  // we have to get these synchronously so that jotai knows to restart our timer when they change
252
- const coingeckoConfig = get(coingeckoConfigAtom);
245
+ const coinsApiConfig = get(coinsApiConfigAtom);
253
246
  const tokensByIdPromise = get(tokensByIdAtom);
254
247
  (async () => {
255
248
  const tokensById = await tokensByIdPromise;
@@ -260,7 +253,7 @@ const tokenRatesFetcherAtomEffect = jotaiEffect.atomEffect(get => {
260
253
  const hydrate = async () => {
261
254
  try {
262
255
  if (abort.signal.aborted) return; // don't fetch if aborted
263
- const tokenRates$1 = await tokenRates.fetchTokenRates(tokensById, coingeckoConfig);
256
+ const tokenRates$1 = await tokenRates.fetchTokenRates(tokensById, tokenRates.ALL_CURRENCY_IDS, coinsApiConfig);
264
257
  const putTokenRates = Object.entries(tokenRates$1).map(([tokenId, rates]) => ({
265
258
  tokenId,
266
259
  rates
@@ -576,9 +569,7 @@ const useTokenRate = tokenId => useTokenRates()[tokenId ?? ""] ?? undefined;
576
569
  const BalancesProvider = ({
577
570
  balanceModules,
578
571
  onfinalityApiKey,
579
- coingeckoApiUrl,
580
- coingeckoApiKeyName,
581
- coingeckoApiKeyValue,
572
+ coinsApiUrl,
582
573
  withTestnets,
583
574
  enabledChains,
584
575
  enabledTokens,
@@ -592,14 +583,12 @@ const BalancesProvider = ({
592
583
  react.useEffect(() => {
593
584
  setOnfinalityApiKey(onfinalityApiKey);
594
585
  }, [onfinalityApiKey, setOnfinalityApiKey]);
595
- const setCoingeckoConfig = jotai.useSetAtom(coingeckoConfigAtom);
586
+ const setCoinsApiConfig = jotai.useSetAtom(coinsApiConfigAtom);
596
587
  react.useEffect(() => {
597
- setCoingeckoConfig({
598
- apiUrl: coingeckoApiUrl,
599
- apiKeyName: coingeckoApiKeyName,
600
- apiKeyValue: coingeckoApiKeyValue
588
+ setCoinsApiConfig({
589
+ apiUrl: coinsApiUrl
601
590
  });
602
- }, [coingeckoApiKeyName, coingeckoApiKeyValue, coingeckoApiUrl, setCoingeckoConfig]);
591
+ }, [coinsApiUrl, setCoinsApiConfig]);
603
592
  const setEnableTestnets = jotai.useSetAtom(enableTestnetsAtom);
604
593
  react.useEffect(() => {
605
594
  setEnableTestnets(withTestnets ?? false);
@@ -657,7 +646,7 @@ exports.chaindataProviderAtom = chaindataProviderAtom;
657
646
  exports.chainsAtom = chainsAtom;
658
647
  exports.chainsByGenesisHashAtom = chainsByGenesisHashAtom;
659
648
  exports.chainsByIdAtom = chainsByIdAtom;
660
- exports.coingeckoConfigAtom = coingeckoConfigAtom;
649
+ exports.coinsApiConfigAtom = coinsApiConfigAtom;
661
650
  exports.cryptoWaitReadyAtom = cryptoWaitReadyAtom;
662
651
  exports.enableTestnetsAtom = enableTestnetsAtom;
663
652
  exports.enabledChainsAtom = enabledChainsAtom;
@@ -26,17 +26,10 @@ var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
26
26
 
27
27
  const balanceModuleCreatorsAtom = jotai.atom(balances.defaultBalanceModules);
28
28
  const onfinalityApiKeyAtom = jotai.atom(undefined);
29
- const innerCoingeckoConfigAtom = jotai.atom(tokenRates.DEFAULT_COINGECKO_CONFIG);
30
- const coingeckoConfigAtom = jotai.atom(get => get(innerCoingeckoConfigAtom), (_get, set, options) => {
31
- const apiUrl = options.apiUrl ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiUrl;
32
- const apiKeyName = options.apiKeyName ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiKeyName;
33
- const apiKeyValue = options.apiKeyValue ?? tokenRates.DEFAULT_COINGECKO_CONFIG.apiKeyValue;
34
- set(innerCoingeckoConfigAtom, {
35
- apiUrl,
36
- apiKeyName,
37
- apiKeyValue
38
- });
39
- });
29
+ const innerCoinsApiConfigAtom = jotai.atom(tokenRates.DEFAULT_COINSAPI_CONFIG);
30
+ const coinsApiConfigAtom = jotai.atom(get => get(innerCoinsApiConfigAtom), (_get, set, options) => set(innerCoinsApiConfigAtom, {
31
+ apiUrl: options.apiUrl ?? tokenRates.DEFAULT_COINSAPI_CONFIG.apiUrl
32
+ }));
40
33
  const enableTestnetsAtom = jotai.atom(false);
41
34
  const enabledChainsAtom = jotai.atom(undefined);
42
35
  const enabledTokensAtom = jotai.atom(undefined);
@@ -249,7 +242,7 @@ const tokenRatesFetcherAtomEffect = jotaiEffect.atomEffect(get => {
249
242
  const abort = new AbortController();
250
243
 
251
244
  // we have to get these synchronously so that jotai knows to restart our timer when they change
252
- const coingeckoConfig = get(coingeckoConfigAtom);
245
+ const coinsApiConfig = get(coinsApiConfigAtom);
253
246
  const tokensByIdPromise = get(tokensByIdAtom);
254
247
  (async () => {
255
248
  const tokensById = await tokensByIdPromise;
@@ -260,7 +253,7 @@ const tokenRatesFetcherAtomEffect = jotaiEffect.atomEffect(get => {
260
253
  const hydrate = async () => {
261
254
  try {
262
255
  if (abort.signal.aborted) return; // don't fetch if aborted
263
- const tokenRates$1 = await tokenRates.fetchTokenRates(tokensById, coingeckoConfig);
256
+ const tokenRates$1 = await tokenRates.fetchTokenRates(tokensById, tokenRates.ALL_CURRENCY_IDS, coinsApiConfig);
264
257
  const putTokenRates = Object.entries(tokenRates$1).map(([tokenId, rates]) => ({
265
258
  tokenId,
266
259
  rates
@@ -576,9 +569,7 @@ const useTokenRate = tokenId => useTokenRates()[tokenId ?? ""] ?? undefined;
576
569
  const BalancesProvider = ({
577
570
  balanceModules,
578
571
  onfinalityApiKey,
579
- coingeckoApiUrl,
580
- coingeckoApiKeyName,
581
- coingeckoApiKeyValue,
572
+ coinsApiUrl,
582
573
  withTestnets,
583
574
  enabledChains,
584
575
  enabledTokens,
@@ -592,14 +583,12 @@ const BalancesProvider = ({
592
583
  react.useEffect(() => {
593
584
  setOnfinalityApiKey(onfinalityApiKey);
594
585
  }, [onfinalityApiKey, setOnfinalityApiKey]);
595
- const setCoingeckoConfig = jotai.useSetAtom(coingeckoConfigAtom);
586
+ const setCoinsApiConfig = jotai.useSetAtom(coinsApiConfigAtom);
596
587
  react.useEffect(() => {
597
- setCoingeckoConfig({
598
- apiUrl: coingeckoApiUrl,
599
- apiKeyName: coingeckoApiKeyName,
600
- apiKeyValue: coingeckoApiKeyValue
588
+ setCoinsApiConfig({
589
+ apiUrl: coinsApiUrl
601
590
  });
602
- }, [coingeckoApiKeyName, coingeckoApiKeyValue, coingeckoApiUrl, setCoingeckoConfig]);
591
+ }, [coinsApiUrl, setCoinsApiConfig]);
603
592
  const setEnableTestnets = jotai.useSetAtom(enableTestnetsAtom);
604
593
  react.useEffect(() => {
605
594
  setEnableTestnets(withTestnets ?? false);
@@ -657,7 +646,7 @@ exports.chaindataProviderAtom = chaindataProviderAtom;
657
646
  exports.chainsAtom = chainsAtom;
658
647
  exports.chainsByGenesisHashAtom = chainsByGenesisHashAtom;
659
648
  exports.chainsByIdAtom = chainsByIdAtom;
660
- exports.coingeckoConfigAtom = coingeckoConfigAtom;
649
+ exports.coinsApiConfigAtom = coinsApiConfigAtom;
661
650
  exports.cryptoWaitReadyAtom = cryptoWaitReadyAtom;
662
651
  exports.enableTestnetsAtom = enableTestnetsAtom;
663
652
  exports.enabledChainsAtom = enabledChainsAtom;
@@ -2,7 +2,7 @@ import { atom, useSetAtom, useAtom, useAtomValue } from 'jotai';
2
2
  import { useMemo, useEffect } from 'react';
3
3
  import { defaultBalanceModules, configureStore, decompress, compress, MiniMetadataUpdater, EvmTokenFetcher, hydrateChaindataAndMiniMetadata, updateCustomMiniMetadata, updateEvmTokens, db, Balances, getBalanceId, balances } from '@talismn/balances';
4
4
  export { evmErc20TokenId, evmNativeTokenId, subAssetTokenId, subEquilibriumTokenId, subNativeTokenId, subPsp22TokenId, subTokensTokenId } from '@talismn/balances';
5
- import { DEFAULT_COINGECKO_CONFIG, db as db$1, fetchTokenRates } from '@talismn/token-rates';
5
+ import { DEFAULT_COINSAPI_CONFIG, db as db$1, fetchTokenRates, ALL_CURRENCY_IDS } from '@talismn/token-rates';
6
6
  import { jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { firstThenDebounce, isTruthy, isEthereumAddress } from '@talismn/util';
8
8
  import { atomEffect } from 'jotai-effect';
@@ -20,17 +20,10 @@ import isEqual from 'lodash/isEqual';
20
20
 
21
21
  const balanceModuleCreatorsAtom = atom(defaultBalanceModules);
22
22
  const onfinalityApiKeyAtom = atom(undefined);
23
- const innerCoingeckoConfigAtom = atom(DEFAULT_COINGECKO_CONFIG);
24
- const coingeckoConfigAtom = atom(get => get(innerCoingeckoConfigAtom), (_get, set, options) => {
25
- const apiUrl = options.apiUrl ?? DEFAULT_COINGECKO_CONFIG.apiUrl;
26
- const apiKeyName = options.apiKeyName ?? DEFAULT_COINGECKO_CONFIG.apiKeyName;
27
- const apiKeyValue = options.apiKeyValue ?? DEFAULT_COINGECKO_CONFIG.apiKeyValue;
28
- set(innerCoingeckoConfigAtom, {
29
- apiUrl,
30
- apiKeyName,
31
- apiKeyValue
32
- });
33
- });
23
+ const innerCoinsApiConfigAtom = atom(DEFAULT_COINSAPI_CONFIG);
24
+ const coinsApiConfigAtom = atom(get => get(innerCoinsApiConfigAtom), (_get, set, options) => set(innerCoinsApiConfigAtom, {
25
+ apiUrl: options.apiUrl ?? DEFAULT_COINSAPI_CONFIG.apiUrl
26
+ }));
34
27
  const enableTestnetsAtom = atom(false);
35
28
  const enabledChainsAtom = atom(undefined);
36
29
  const enabledTokensAtom = atom(undefined);
@@ -243,7 +236,7 @@ const tokenRatesFetcherAtomEffect = atomEffect(get => {
243
236
  const abort = new AbortController();
244
237
 
245
238
  // we have to get these synchronously so that jotai knows to restart our timer when they change
246
- const coingeckoConfig = get(coingeckoConfigAtom);
239
+ const coinsApiConfig = get(coinsApiConfigAtom);
247
240
  const tokensByIdPromise = get(tokensByIdAtom);
248
241
  (async () => {
249
242
  const tokensById = await tokensByIdPromise;
@@ -254,7 +247,7 @@ const tokenRatesFetcherAtomEffect = atomEffect(get => {
254
247
  const hydrate = async () => {
255
248
  try {
256
249
  if (abort.signal.aborted) return; // don't fetch if aborted
257
- const tokenRates = await fetchTokenRates(tokensById, coingeckoConfig);
250
+ const tokenRates = await fetchTokenRates(tokensById, ALL_CURRENCY_IDS, coinsApiConfig);
258
251
  const putTokenRates = Object.entries(tokenRates).map(([tokenId, rates]) => ({
259
252
  tokenId,
260
253
  rates
@@ -570,9 +563,7 @@ const useTokenRate = tokenId => useTokenRates()[tokenId ?? ""] ?? undefined;
570
563
  const BalancesProvider = ({
571
564
  balanceModules,
572
565
  onfinalityApiKey,
573
- coingeckoApiUrl,
574
- coingeckoApiKeyName,
575
- coingeckoApiKeyValue,
566
+ coinsApiUrl,
576
567
  withTestnets,
577
568
  enabledChains,
578
569
  enabledTokens,
@@ -586,14 +577,12 @@ const BalancesProvider = ({
586
577
  useEffect(() => {
587
578
  setOnfinalityApiKey(onfinalityApiKey);
588
579
  }, [onfinalityApiKey, setOnfinalityApiKey]);
589
- const setCoingeckoConfig = useSetAtom(coingeckoConfigAtom);
580
+ const setCoinsApiConfig = useSetAtom(coinsApiConfigAtom);
590
581
  useEffect(() => {
591
- setCoingeckoConfig({
592
- apiUrl: coingeckoApiUrl,
593
- apiKeyName: coingeckoApiKeyName,
594
- apiKeyValue: coingeckoApiKeyValue
582
+ setCoinsApiConfig({
583
+ apiUrl: coinsApiUrl
595
584
  });
596
- }, [coingeckoApiKeyName, coingeckoApiKeyValue, coingeckoApiUrl, setCoingeckoConfig]);
585
+ }, [coinsApiUrl, setCoinsApiConfig]);
597
586
  const setEnableTestnets = useSetAtom(enableTestnetsAtom);
598
587
  useEffect(() => {
599
588
  setEnableTestnets(withTestnets ?? false);
@@ -611,4 +600,4 @@ const BalancesProvider = ({
611
600
  });
612
601
  };
613
602
 
614
- export { BalancesProvider, allAddressesAtom, allBalancesAtom, balanceModuleCreatorsAtom, balanceModulesAtom, balancesPersistBackendAtom, chainConnectorsAtom, chaindataAtom, chaindataProviderAtom, chainsAtom, chainsByGenesisHashAtom, chainsByIdAtom, coingeckoConfigAtom, cryptoWaitReadyAtom, enableTestnetsAtom, enabledChainsAtom, enabledTokensAtom, evmNetworksAtom, evmNetworksByIdAtom, getStaleChains, miniMetadataHydratedAtom, miniMetadatasAtom, onfinalityApiKeyAtom, tokenRatesAtom, tokensAtom, tokensByIdAtom, useBalances, useBalancesStatus, useChain, useChainConnectors, useChaindata, useChaindataProvider, useChains, useChainsByGenesisHash, useEvmNetwork, useEvmNetworks, useMiniMetadatas, useSetBalancesAddresses, useToken, useTokenRate, useTokenRates, useTokens };
603
+ export { BalancesProvider, allAddressesAtom, allBalancesAtom, balanceModuleCreatorsAtom, balanceModulesAtom, balancesPersistBackendAtom, chainConnectorsAtom, chaindataAtom, chaindataProviderAtom, chainsAtom, chainsByGenesisHashAtom, chainsByIdAtom, coinsApiConfigAtom, cryptoWaitReadyAtom, enableTestnetsAtom, enabledChainsAtom, enabledTokensAtom, evmNetworksAtom, evmNetworksByIdAtom, getStaleChains, miniMetadataHydratedAtom, miniMetadatasAtom, onfinalityApiKeyAtom, tokenRatesAtom, tokensAtom, tokensByIdAtom, useBalances, useBalancesStatus, useChain, useChainConnectors, useChaindata, useChaindataProvider, useChains, useChainsByGenesisHash, useEvmNetwork, useEvmNetworks, useMiniMetadatas, useSetBalancesAddresses, useToken, useTokenRate, useTokenRates, useTokens };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talismn/balances-react",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "author": "Talisman",
5
5
  "homepage": "https://talisman.xyz",
6
6
  "license": "GPL-3.0-or-later",
@@ -30,14 +30,14 @@
30
30
  "lodash": "4.17.21",
31
31
  "react-use": "^17.5.1",
32
32
  "rxjs": "^7.8.1",
33
- "@talismn/balances": "0.9.0",
34
- "@talismn/chain-connector": "0.9.0",
35
- "@talismn/chaindata-provider": "0.9.0",
36
- "@talismn/chain-connector-evm": "0.9.0",
37
- "@talismn/connection-meta": "0.2.5",
33
+ "@talismn/balances": "0.9.2",
34
+ "@talismn/chain-connector": "0.10.1",
35
+ "@talismn/chain-connector-evm": "0.10.1",
36
+ "@talismn/connection-meta": "0.2.7",
37
+ "@talismn/util": "0.4.0",
38
38
  "@talismn/scale": "0.1.1",
39
- "@talismn/token-rates": "2.0.0",
40
- "@talismn/util": "0.3.2"
39
+ "@talismn/token-rates": "2.0.2",
40
+ "@talismn/chaindata-provider": "0.10.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/jest": "^29.5.14",