@talismn/balances-react 0.1.10 → 0.1.12

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,33 @@
1
1
  # @talismn/balances-react
2
2
 
3
+ ## 0.1.12
4
+
5
+ ### Patch Changes
6
+
7
+ - ca50757: feat: implemented token fiat rates in @talismn/balances
8
+ - Updated dependencies [ca50757]
9
+ - @talismn/balances@0.1.12
10
+ - @talismn/chaindata-provider@0.1.6
11
+ - @talismn/balances-evm-erc20@0.1.12
12
+ - @talismn/balances-evm-native@0.1.12
13
+ - @talismn/balances-example@0.1.12
14
+ - @talismn/balances-substrate-native@0.1.12
15
+ - @talismn/balances-substrate-orml@0.1.12
16
+ - @talismn/chain-connector@0.1.6
17
+ - @talismn/chaindata-provider-extension@0.1.6
18
+
19
+ ## 0.1.11
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [9cefc14]
24
+ - @talismn/balances-evm-erc20@0.1.11
25
+ - @talismn/balances@0.1.11
26
+ - @talismn/balances-evm-native@0.1.11
27
+ - @talismn/balances-example@0.1.11
28
+ - @talismn/balances-substrate-native@0.1.11
29
+ - @talismn/balances-substrate-orml@0.1.11
30
+
3
31
  ## 0.1.10
4
32
 
5
33
  ### Patch Changes
@@ -16,6 +16,7 @@ import { useEffect, useState } from "react";
16
16
  import { useDebounce } from "react-use";
17
17
  import log from "../log";
18
18
  import { useChains, useEvmNetworks, useTokens } from "./useChaindata";
19
+ import { useTokenRates } from "./useTokenRates";
19
20
  export function useBalances(
20
21
  // TODO: Make this array of BalanceModules more type-safe
21
22
  balanceModules, chaindataProvider, addressesByToken) {
@@ -23,6 +24,7 @@ balanceModules, chaindataProvider, addressesByToken) {
23
24
  const chains = useChains(chaindataProvider);
24
25
  const evmNetworks = useEvmNetworks(chaindataProvider);
25
26
  const tokens = useTokens(chaindataProvider);
27
+ const tokenRates = useTokenRates(tokens);
26
28
  const balances = useLiveQuery(() => __awaiter(this, void 0, void 0, function* () {
27
29
  return new Balances(yield db.balances
28
30
  .filter((balance) => {
@@ -36,8 +38,8 @@ balanceModules, chaindataProvider, addressesByToken) {
36
38
  return false;
37
39
  return true;
38
40
  })
39
- .toArray(), { chains, evmNetworks, tokens });
40
- }), [balanceModules, addressesByToken, chains, evmNetworks, tokens]);
41
+ .toArray(), { chains, evmNetworks, tokens, tokenRates });
42
+ }), [balanceModules, addressesByToken, chains, evmNetworks, tokens, tokenRates]);
41
43
  // debounce every 100ms to prevent hammering UI with updates
42
44
  const [debouncedBalances, setDebouncedBalances] = useState(balances);
43
45
  useDebounce(() => balances && setDebouncedBalances(balances), 100, [balances]);
@@ -0,0 +1,3 @@
1
+ import { TokenList } from "@talismn/chaindata-provider";
2
+ import { TokenRatesList } from "@talismn/token-rates";
3
+ export declare function useTokenRates(tokens?: TokenList): TokenRatesList;
@@ -0,0 +1,20 @@
1
+ import { fetchTokenRates } from "@talismn/token-rates";
2
+ import { useEffect, useRef, useState } from "react";
3
+ export function useTokenRates(tokens) {
4
+ const generation = useRef(0);
5
+ const [tokenRates, setTokenRates] = useState();
6
+ useEffect(() => {
7
+ if (!tokens)
8
+ return;
9
+ // when we make a new request, we want to ignore any old requests which haven't yet completed
10
+ // otherwise we risk replacing the most recent data with older data
11
+ generation.current = (generation.current + 1) % Number.MAX_SAFE_INTEGER;
12
+ const thisGeneration = generation.current;
13
+ fetchTokenRates(tokens).then((tokenRates) => {
14
+ if (thisGeneration !== generation.current)
15
+ return;
16
+ setTokenRates(tokenRates);
17
+ });
18
+ }, [tokens]);
19
+ return tokenRates || {};
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talismn/balances-react",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "author": "Talisman",
5
5
  "homepage": "https://talisman.xyz",
6
6
  "license": "UNLICENSED",
@@ -30,15 +30,15 @@
30
30
  "clean": "rm -rf dist && rm -rf .turbo rm -rf node_modules"
31
31
  },
32
32
  "dependencies": {
33
- "@talismn/balances": "^0.1.10",
34
- "@talismn/balances-evm-erc20": "^0.1.10",
35
- "@talismn/balances-evm-native": "^0.1.10",
36
- "@talismn/balances-example": "^0.1.10",
37
- "@talismn/balances-substrate-native": "^0.1.10",
38
- "@talismn/balances-substrate-orml": "^0.1.10",
39
- "@talismn/chain-connector": "^0.1.5",
40
- "@talismn/chaindata-provider": "^0.1.5",
41
- "@talismn/chaindata-provider-extension": "^0.1.5",
33
+ "@talismn/balances": "^0.1.12",
34
+ "@talismn/balances-evm-erc20": "^0.1.12",
35
+ "@talismn/balances-evm-native": "^0.1.12",
36
+ "@talismn/balances-example": "^0.1.12",
37
+ "@talismn/balances-substrate-native": "^0.1.12",
38
+ "@talismn/balances-substrate-orml": "^0.1.12",
39
+ "@talismn/chain-connector": "^0.1.6",
40
+ "@talismn/chaindata-provider": "^0.1.6",
41
+ "@talismn/chaindata-provider-extension": "^0.1.6",
42
42
  "anylogger": "^1.0.11",
43
43
  "dexie": "^3.2.2",
44
44
  "dexie-react-hooks": "^1.1.1",