@relayprotocol/relay-kit-ui 10.0.1 → 11.0.1

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.
Files changed (80) hide show
  1. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js +9 -9
  2. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  3. package/_cjs/src/components/common/TokenSelector/TokenSelector.js +8 -8
  4. package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  5. package/_cjs/src/components/widgets/SwapWidgetRenderer.js +6 -39
  6. package/_cjs/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  7. package/_cjs/src/constants/walletCompatibility.js +4 -1
  8. package/_cjs/src/constants/walletCompatibility.js.map +1 -1
  9. package/_cjs/src/hooks/index.js +5 -3
  10. package/_cjs/src/hooks/index.js.map +1 -1
  11. package/_cjs/src/hooks/useCodexBalances.js +305 -0
  12. package/_cjs/src/hooks/useCodexBalances.js.map +1 -0
  13. package/_cjs/src/hooks/useCurrencyBalance.js +18 -74
  14. package/_cjs/src/hooks/useCurrencyBalance.js.map +1 -1
  15. package/_cjs/src/hooks/useEnhancedTokensList.js.map +1 -1
  16. package/_cjs/src/hooks/useMultiWalletBalances.js +19 -37
  17. package/_cjs/src/hooks/useMultiWalletBalances.js.map +1 -1
  18. package/_cjs/src/hooks/useSolanaBalance.js +60 -0
  19. package/_cjs/src/hooks/useSolanaBalance.js.map +1 -0
  20. package/_cjs/src/providers/RelayKitProvider.js +1 -1
  21. package/_cjs/src/providers/RelayKitProvider.js.map +1 -1
  22. package/_cjs/src/version.js +1 -1
  23. package/_cjs/src/version.js.map +1 -1
  24. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  25. package/_esm/src/components/common/TokenSelector/PaymentMethod.js +9 -9
  26. package/_esm/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  27. package/_esm/src/components/common/TokenSelector/TokenSelector.js +10 -10
  28. package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  29. package/_esm/src/components/widgets/SwapWidgetRenderer.js +6 -41
  30. package/_esm/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  31. package/_esm/src/constants/walletCompatibility.js +4 -1
  32. package/_esm/src/constants/walletCompatibility.js.map +1 -1
  33. package/_esm/src/hooks/index.js +3 -2
  34. package/_esm/src/hooks/index.js.map +1 -1
  35. package/_esm/src/hooks/useCodexBalances.js +311 -0
  36. package/_esm/src/hooks/useCodexBalances.js.map +1 -0
  37. package/_esm/src/hooks/useCurrencyBalance.js +18 -74
  38. package/_esm/src/hooks/useCurrencyBalance.js.map +1 -1
  39. package/_esm/src/hooks/useEnhancedTokensList.js.map +1 -1
  40. package/_esm/src/hooks/useMultiWalletBalances.js +18 -39
  41. package/_esm/src/hooks/useMultiWalletBalances.js.map +1 -1
  42. package/_esm/src/hooks/useSolanaBalance.js +58 -0
  43. package/_esm/src/hooks/useSolanaBalance.js.map +1 -0
  44. package/_esm/src/providers/RelayKitProvider.js +1 -1
  45. package/_esm/src/providers/RelayKitProvider.js.map +1 -1
  46. package/_esm/src/version.js +1 -1
  47. package/_esm/src/version.js.map +1 -1
  48. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  49. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts.map +1 -1
  50. package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -1
  51. package/_types/src/components/widgets/SwapWidgetRenderer.d.ts.map +1 -1
  52. package/_types/src/constants/walletCompatibility.d.ts.map +1 -1
  53. package/_types/src/hooks/index.d.ts +3 -2
  54. package/_types/src/hooks/index.d.ts.map +1 -1
  55. package/_types/src/hooks/useCodexBalances.d.ts +45 -0
  56. package/_types/src/hooks/useCodexBalances.d.ts.map +1 -0
  57. package/_types/src/hooks/useCurrencyBalance.d.ts +0 -1
  58. package/_types/src/hooks/useCurrencyBalance.d.ts.map +1 -1
  59. package/_types/src/hooks/useEnhancedTokensList.d.ts +1 -1
  60. package/_types/src/hooks/useEnhancedTokensList.d.ts.map +1 -1
  61. package/_types/src/hooks/useMultiWalletBalances.d.ts +3 -12
  62. package/_types/src/hooks/useMultiWalletBalances.d.ts.map +1 -1
  63. package/_types/src/hooks/{useEclipseBalance.d.ts → useSolanaBalance.d.ts} +2 -2
  64. package/_types/src/hooks/useSolanaBalance.d.ts.map +1 -0
  65. package/_types/src/providers/RelayKitProvider.d.ts +3 -3
  66. package/_types/src/providers/RelayKitProvider.d.ts.map +1 -1
  67. package/_types/src/version.d.ts +1 -1
  68. package/_types/tsconfig.build.tsbuildinfo +1 -1
  69. package/package.json +1 -1
  70. package/_cjs/src/hooks/useDuneBalances.js +0 -100
  71. package/_cjs/src/hooks/useDuneBalances.js.map +0 -1
  72. package/_cjs/src/hooks/useEclipseBalance.js +0 -47
  73. package/_cjs/src/hooks/useEclipseBalance.js.map +0 -1
  74. package/_esm/src/hooks/useDuneBalances.js +0 -102
  75. package/_esm/src/hooks/useDuneBalances.js.map +0 -1
  76. package/_esm/src/hooks/useEclipseBalance.js +0 -44
  77. package/_esm/src/hooks/useEclipseBalance.js.map +0 -1
  78. package/_types/src/hooks/useDuneBalances.d.ts +0 -25
  79. package/_types/src/hooks/useDuneBalances.d.ts.map +0 -1
  80. package/_types/src/hooks/useEclipseBalance.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relayprotocol/relay-kit-ui",
3
- "version": "10.0.1",
3
+ "version": "11.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/relayprotocol/relay-kit.git",
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const viem_1 = require("viem");
4
- const RelayKitProvider_js_1 = require("../providers/RelayKitProvider.js");
5
- const react_1 = require("react");
6
- const react_query_1 = require("@tanstack/react-query");
7
- const solana_js_1 = require("../utils/solana.js");
8
- exports.default = (address, evmChainIds = 'mainnet', queryOptions) => {
9
- const providerOptions = (0, react_1.useContext)(RelayKitProvider_js_1.ProviderOptionsContext);
10
- const queryKey = ['useDuneBalances', address];
11
- const isEvmAddress = (0, viem_1.isAddress)(address ?? '');
12
- const isSvmAddress = (0, solana_js_1.isSolanaAddress)(address ?? '');
13
- const response = react_query_1.useQuery({
14
- queryKey: ['useDuneBalances', address],
15
- queryFn: () => {
16
- let url = `${providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'}/v1/evm/balances/${address?.toLowerCase()}?chain_ids=${evmChainIds}&exclude_spam_tokens=true`;
17
- if (isSvmAddress) {
18
- url = `${providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'}/beta/svm/balances/${address}?chain_ids=all&exclude_spam_tokens=true`;
19
- }
20
- if (!isSvmAddress && !isEvmAddress) {
21
- return null;
22
- }
23
- return fetch(url, {
24
- headers: providerOptions.duneConfig?.apiKey
25
- ? {
26
- 'X-Sim-Api-Key': providerOptions.duneConfig?.apiKey
27
- }
28
- : {}
29
- })
30
- .then((response) => response.json())
31
- .then((response) => {
32
- if (response.balances) {
33
- const balances = response.balances;
34
- if (balances) {
35
- balances
36
- .filter((balance) => {
37
- try {
38
- BigInt(balance.amount);
39
- return true;
40
- }
41
- catch (e) {
42
- return false;
43
- }
44
- })
45
- .sort((a, b) => {
46
- if (a.value_usd !== undefined && b.value_usd !== undefined) {
47
- return a.value_usd - b.value_usd;
48
- }
49
- else if (a.value_usd !== undefined) {
50
- return -1;
51
- }
52
- else if (b.value_usd !== undefined) {
53
- return 1;
54
- }
55
- else {
56
- const amountA = parseFloat((0, viem_1.formatUnits)(BigInt(a.amount), a.decimals));
57
- const amountB = parseFloat((0, viem_1.formatUnits)(BigInt(b.amount), b.decimals));
58
- return amountA - amountB;
59
- }
60
- });
61
- }
62
- }
63
- return response;
64
- });
65
- },
66
- ...queryOptions,
67
- enabled: address !== undefined &&
68
- (providerOptions.duneConfig?.apiKey !== undefined ||
69
- providerOptions.duneConfig?.apiBaseUrl !== undefined) &&
70
- queryOptions?.enabled &&
71
- (isSvmAddress || isEvmAddress)
72
- });
73
- const balanceMap = response?.data?.balances?.reduce((balanceMap, balance) => {
74
- const normalizedBalance = { ...balance };
75
- if (!normalizedBalance.chain_id && normalizedBalance.chain === 'solana') {
76
- normalizedBalance.chain_id = solana_js_1.solana.id;
77
- }
78
- if (!normalizedBalance.chain_id && normalizedBalance.chain === 'eclipse') {
79
- normalizedBalance.chain_id = solana_js_1.eclipse.id;
80
- }
81
- if (normalizedBalance.address === 'native') {
82
- normalizedBalance.address =
83
- normalizedBalance.chain === 'solana' ||
84
- normalizedBalance.chain === 'eclipse'
85
- ? '11111111111111111111111111111111'
86
- : viem_1.zeroAddress;
87
- }
88
- let chainId = normalizedBalance.chain_id;
89
- if (!chainId && normalizedBalance.chain === 'solana') {
90
- chainId = solana_js_1.solana.id;
91
- }
92
- if (!chainId && normalizedBalance.chain === 'eclipse') {
93
- chainId = solana_js_1.eclipse.id;
94
- }
95
- balanceMap[`${chainId}:${normalizedBalance.address}`] = normalizedBalance;
96
- return balanceMap;
97
- }, {});
98
- return { ...response, balanceMap, queryKey };
99
- };
100
- //# sourceMappingURL=useDuneBalances.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDuneBalances.js","sourceRoot":"","sources":["../../../src/hooks/useDuneBalances.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatUnits, isAddress, zeroAddress } from 'viem'\nimport { ProviderOptionsContext } from '../providers/RelayKitProvider.js'\nimport { useContext } from 'react'\nimport {\n useQuery,\n type DefaultError,\n type QueryKey\n} from '@tanstack/react-query'\nimport { eclipse, isSolanaAddress, solana } from '../utils/solana.js'\n\nexport type DuneBalanceResponse = {\n request_time: string\n response_time: string\n wallet_address: string\n balances: Array<{\n chain: string\n chain_id: number\n address: string\n amount: string\n symbol: string\n decimals: number\n price_usd?: number\n value_usd?: number\n }>\n} | null\n\nexport type BalanceMap = Record<\n string,\n NonNullable<DuneBalanceResponse>['balances'][0]\n>\n\ntype QueryType = typeof useQuery<\n DuneBalanceResponse,\n DefaultError,\n DuneBalanceResponse,\n QueryKey\n>\ntype QueryOptions = Parameters<QueryType>['0']\n\nexport default (\n address?: string,\n evmChainIds: 'mainnet' | 'testnet' = 'mainnet',\n queryOptions?: Partial<QueryOptions>\n) => {\n const providerOptions = useContext(ProviderOptionsContext)\n const queryKey = ['useDuneBalances', address]\n const isEvmAddress = isAddress(address ?? '')\n const isSvmAddress = isSolanaAddress(address ?? '')\n\n const response = (useQuery as QueryType)({\n queryKey: ['useDuneBalances', address],\n queryFn: () => {\n let url = `${\n providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'\n }/v1/evm/balances/${address?.toLowerCase()}?chain_ids=${evmChainIds}&exclude_spam_tokens=true`\n if (isSvmAddress) {\n url = `${\n providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'\n }/beta/svm/balances/${address}?chain_ids=all&exclude_spam_tokens=true`\n }\n\n if (!isSvmAddress && !isEvmAddress) {\n return null\n }\n\n return fetch(url, {\n headers: providerOptions.duneConfig?.apiKey\n ? {\n 'X-Sim-Api-Key': providerOptions.duneConfig?.apiKey\n }\n : ({} as HeadersInit)\n })\n .then((response) => response.json())\n .then((response) => {\n if (response.balances) {\n const balances =\n response.balances as NonNullable<DuneBalanceResponse>['balances']\n if (balances) {\n balances\n .filter((balance) => {\n try {\n BigInt(balance.amount)\n return true\n } catch (e) {\n return false\n }\n })\n .sort((a, b) => {\n // Check if value_usd exists and use it for comparison if available\n if (a.value_usd !== undefined && b.value_usd !== undefined) {\n return a.value_usd - b.value_usd\n } else if (a.value_usd !== undefined) {\n return -1 // a should come before b as it has a value_usd\n } else if (b.value_usd !== undefined) {\n return 1 // b should come before a as it has a value_usd\n } else {\n const amountA = parseFloat(\n formatUnits(BigInt(a.amount), a.decimals)\n )\n const amountB = parseFloat(\n formatUnits(BigInt(b.amount), b.decimals)\n )\n return amountA - amountB\n }\n })\n }\n }\n return response\n })\n },\n ...queryOptions,\n enabled:\n address !== undefined &&\n (providerOptions.duneConfig?.apiKey !== undefined ||\n providerOptions.duneConfig?.apiBaseUrl !== undefined) &&\n queryOptions?.enabled &&\n (isSvmAddress || isEvmAddress)\n })\n\n const balanceMap = response?.data?.balances?.reduce((balanceMap, balance) => {\n // Create a new object instead of mutating the cached one\n const normalizedBalance = { ...balance }\n\n // Normalize chain_id\n if (!normalizedBalance.chain_id && normalizedBalance.chain === 'solana') {\n normalizedBalance.chain_id = solana.id\n }\n if (!normalizedBalance.chain_id && normalizedBalance.chain === 'eclipse') {\n normalizedBalance.chain_id = eclipse.id\n }\n\n // Normalize native address\n if (normalizedBalance.address === 'native') {\n normalizedBalance.address =\n normalizedBalance.chain === 'solana' ||\n normalizedBalance.chain === 'eclipse'\n ? '11111111111111111111111111111111'\n : zeroAddress\n }\n\n let chainId = normalizedBalance.chain_id\n if (!chainId && normalizedBalance.chain === 'solana') {\n chainId = solana.id\n }\n if (!chainId && normalizedBalance.chain === 'eclipse') {\n chainId = eclipse.id\n }\n\n balanceMap[`${chainId}:${normalizedBalance.address}`] = normalizedBalance\n return balanceMap\n }, {} as BalanceMap)\n\n return { ...response, balanceMap, queryKey } as ReturnType<QueryType> & {\n balanceMap: typeof balanceMap\n queryKey: (string | undefined)[]\n }\n}\n"]}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_query_1 = require("@tanstack/react-query");
5
- const useRelayClient_js_1 = tslib_1.__importDefault(require("./useRelayClient.js"));
6
- exports.default = (address, queryOptions) => {
7
- const client = (0, useRelayClient_js_1.default)();
8
- const eclipseChain = client?.chains?.find((chain) => chain.id === 9286185);
9
- const rpcUrl = eclipseChain && eclipseChain.httpRpcUrl
10
- ? eclipseChain.httpRpcUrl
11
- : 'https://mainnetbeta-rpc.eclipse.xyz';
12
- const queryKey = ['useEclipseBalance', address, rpcUrl];
13
- const response = react_query_1.useQuery({
14
- queryKey,
15
- queryFn: async () => {
16
- const payload = {
17
- jsonrpc: '2.0',
18
- id: 1,
19
- method: 'getBalance',
20
- params: [address]
21
- };
22
- const response = await fetch(rpcUrl, {
23
- method: 'POST',
24
- headers: {
25
- 'Content-Type': 'application/json'
26
- },
27
- body: JSON.stringify(payload)
28
- });
29
- const data = await response.json();
30
- if (data.error) {
31
- throw new Error(data.error.message);
32
- }
33
- const result = data.result;
34
- return {
35
- balance: BigInt(result.value)
36
- };
37
- },
38
- enabled: address !== undefined,
39
- ...queryOptions
40
- });
41
- return {
42
- ...response,
43
- balance: response.data?.balance,
44
- queryKey
45
- };
46
- };
47
- //# sourceMappingURL=useEclipseBalance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEclipseBalance.js","sourceRoot":"","sources":["../../../src/hooks/useEclipseBalance.ts"],"names":[],"mappings":";;;AAAA,uDAI8B;AAC9B,oFAAgD;AAkBhD,kBAAe,CAAC,OAAgB,EAAE,YAAoC,EAAE,EAAE;IACxE,MAAM,MAAM,GAAG,IAAA,2BAAc,GAAE,CAAA;IAC/B,MAAM,YAAY,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;IAC1E,MAAM,MAAM,GACV,YAAY,IAAI,YAAY,CAAC,UAAU;QACrC,CAAC,CAAC,YAAY,CAAC,UAAU;QACzB,CAAC,CAAC,qCAAqC,CAAA;IAC3C,MAAM,QAAQ,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAEvD,MAAM,QAAQ,GAAI,sBAAsB,CAAC;QACvC,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAElC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAA;YAEpD,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9B,CAAA;QACH,CAAC;QACD,OAAO,EAAE,OAAO,KAAK,SAAS;QAC9B,GAAG,YAAY;KAChB,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO;QAC/B,QAAQ;KAIT,CAAA;AACH,CAAC,CAAA","sourcesContent":["import {\n useQuery,\n type DefaultError,\n type QueryKey\n} from '@tanstack/react-query'\nimport useRelayClient from './useRelayClient.js'\n\ntype EclipseBalanceResponse = {\n value: number\n}\n\ntype BalanceResponse = {\n balance: bigint\n}\n\ntype QueryType = typeof useQuery<\n BalanceResponse | undefined,\n DefaultError,\n BalanceResponse | undefined,\n QueryKey\n>\ntype QueryOptions = Parameters<QueryType>['0']\n\nexport default (address?: string, queryOptions?: Partial<QueryOptions>) => {\n const client = useRelayClient()\n const eclipseChain = client?.chains?.find((chain) => chain.id === 9286185)\n const rpcUrl =\n eclipseChain && eclipseChain.httpRpcUrl\n ? eclipseChain.httpRpcUrl\n : 'https://mainnetbeta-rpc.eclipse.xyz'\n const queryKey = ['useEclipseBalance', address, rpcUrl]\n\n const response = (useQuery as QueryType)({\n queryKey,\n queryFn: async () => {\n const payload = {\n jsonrpc: '2.0',\n id: 1,\n method: 'getBalance',\n params: [address]\n }\n\n const response = await fetch(rpcUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n })\n\n const data = await response.json()\n\n if (data.error) {\n throw new Error(data.error.message)\n }\n\n const result = data.result as EclipseBalanceResponse\n\n return {\n balance: BigInt(result.value)\n }\n },\n enabled: address !== undefined,\n ...queryOptions\n })\n\n return {\n ...response,\n balance: response.data?.balance,\n queryKey\n } as ReturnType<QueryType> & {\n balance: bigint | undefined\n queryKey: (string | undefined)[]\n }\n}\n"]}
@@ -1,102 +0,0 @@
1
- import { formatUnits, isAddress, zeroAddress } from 'viem';
2
- import { ProviderOptionsContext } from '../providers/RelayKitProvider.js';
3
- import { useContext } from 'react';
4
- import { useQuery } from '@tanstack/react-query';
5
- import { eclipse, isSolanaAddress, solana } from '../utils/solana.js';
6
- export default (address, evmChainIds = 'mainnet', queryOptions) => {
7
- const providerOptions = useContext(ProviderOptionsContext);
8
- const queryKey = ['useDuneBalances', address];
9
- const isEvmAddress = isAddress(address ?? '');
10
- const isSvmAddress = isSolanaAddress(address ?? '');
11
- const response = useQuery({
12
- queryKey: ['useDuneBalances', address],
13
- queryFn: () => {
14
- let url = `${providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'}/v1/evm/balances/${address?.toLowerCase()}?chain_ids=${evmChainIds}&exclude_spam_tokens=true`;
15
- if (isSvmAddress) {
16
- url = `${providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'}/beta/svm/balances/${address}?chain_ids=all&exclude_spam_tokens=true`;
17
- }
18
- if (!isSvmAddress && !isEvmAddress) {
19
- return null;
20
- }
21
- return fetch(url, {
22
- headers: providerOptions.duneConfig?.apiKey
23
- ? {
24
- 'X-Sim-Api-Key': providerOptions.duneConfig?.apiKey
25
- }
26
- : {}
27
- })
28
- .then((response) => response.json())
29
- .then((response) => {
30
- if (response.balances) {
31
- const balances = response.balances;
32
- if (balances) {
33
- balances
34
- .filter((balance) => {
35
- try {
36
- BigInt(balance.amount);
37
- return true;
38
- }
39
- catch (e) {
40
- return false;
41
- }
42
- })
43
- .sort((a, b) => {
44
- // Check if value_usd exists and use it for comparison if available
45
- if (a.value_usd !== undefined && b.value_usd !== undefined) {
46
- return a.value_usd - b.value_usd;
47
- }
48
- else if (a.value_usd !== undefined) {
49
- return -1; // a should come before b as it has a value_usd
50
- }
51
- else if (b.value_usd !== undefined) {
52
- return 1; // b should come before a as it has a value_usd
53
- }
54
- else {
55
- const amountA = parseFloat(formatUnits(BigInt(a.amount), a.decimals));
56
- const amountB = parseFloat(formatUnits(BigInt(b.amount), b.decimals));
57
- return amountA - amountB;
58
- }
59
- });
60
- }
61
- }
62
- return response;
63
- });
64
- },
65
- ...queryOptions,
66
- enabled: address !== undefined &&
67
- (providerOptions.duneConfig?.apiKey !== undefined ||
68
- providerOptions.duneConfig?.apiBaseUrl !== undefined) &&
69
- queryOptions?.enabled &&
70
- (isSvmAddress || isEvmAddress)
71
- });
72
- const balanceMap = response?.data?.balances?.reduce((balanceMap, balance) => {
73
- // Create a new object instead of mutating the cached one
74
- const normalizedBalance = { ...balance };
75
- // Normalize chain_id
76
- if (!normalizedBalance.chain_id && normalizedBalance.chain === 'solana') {
77
- normalizedBalance.chain_id = solana.id;
78
- }
79
- if (!normalizedBalance.chain_id && normalizedBalance.chain === 'eclipse') {
80
- normalizedBalance.chain_id = eclipse.id;
81
- }
82
- // Normalize native address
83
- if (normalizedBalance.address === 'native') {
84
- normalizedBalance.address =
85
- normalizedBalance.chain === 'solana' ||
86
- normalizedBalance.chain === 'eclipse'
87
- ? '11111111111111111111111111111111'
88
- : zeroAddress;
89
- }
90
- let chainId = normalizedBalance.chain_id;
91
- if (!chainId && normalizedBalance.chain === 'solana') {
92
- chainId = solana.id;
93
- }
94
- if (!chainId && normalizedBalance.chain === 'eclipse') {
95
- chainId = eclipse.id;
96
- }
97
- balanceMap[`${chainId}:${normalizedBalance.address}`] = normalizedBalance;
98
- return balanceMap;
99
- }, {});
100
- return { ...response, balanceMap, queryKey };
101
- };
102
- //# sourceMappingURL=useDuneBalances.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDuneBalances.js","sourceRoot":"","sources":["../../../src/hooks/useDuneBalances.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatUnits, isAddress, zeroAddress } from 'viem'\nimport { ProviderOptionsContext } from '../providers/RelayKitProvider.js'\nimport { useContext } from 'react'\nimport {\n useQuery,\n type DefaultError,\n type QueryKey\n} from '@tanstack/react-query'\nimport { eclipse, isSolanaAddress, solana } from '../utils/solana.js'\n\nexport type DuneBalanceResponse = {\n request_time: string\n response_time: string\n wallet_address: string\n balances: Array<{\n chain: string\n chain_id: number\n address: string\n amount: string\n symbol: string\n decimals: number\n price_usd?: number\n value_usd?: number\n }>\n} | null\n\nexport type BalanceMap = Record<\n string,\n NonNullable<DuneBalanceResponse>['balances'][0]\n>\n\ntype QueryType = typeof useQuery<\n DuneBalanceResponse,\n DefaultError,\n DuneBalanceResponse,\n QueryKey\n>\ntype QueryOptions = Parameters<QueryType>['0']\n\nexport default (\n address?: string,\n evmChainIds: 'mainnet' | 'testnet' = 'mainnet',\n queryOptions?: Partial<QueryOptions>\n) => {\n const providerOptions = useContext(ProviderOptionsContext)\n const queryKey = ['useDuneBalances', address]\n const isEvmAddress = isAddress(address ?? '')\n const isSvmAddress = isSolanaAddress(address ?? '')\n\n const response = (useQuery as QueryType)({\n queryKey: ['useDuneBalances', address],\n queryFn: () => {\n let url = `${\n providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'\n }/v1/evm/balances/${address?.toLowerCase()}?chain_ids=${evmChainIds}&exclude_spam_tokens=true`\n if (isSvmAddress) {\n url = `${\n providerOptions.duneConfig?.apiBaseUrl ?? 'https://api.sim.dune.com'\n }/beta/svm/balances/${address}?chain_ids=all&exclude_spam_tokens=true`\n }\n\n if (!isSvmAddress && !isEvmAddress) {\n return null\n }\n\n return fetch(url, {\n headers: providerOptions.duneConfig?.apiKey\n ? {\n 'X-Sim-Api-Key': providerOptions.duneConfig?.apiKey\n }\n : ({} as HeadersInit)\n })\n .then((response) => response.json())\n .then((response) => {\n if (response.balances) {\n const balances =\n response.balances as NonNullable<DuneBalanceResponse>['balances']\n if (balances) {\n balances\n .filter((balance) => {\n try {\n BigInt(balance.amount)\n return true\n } catch (e) {\n return false\n }\n })\n .sort((a, b) => {\n // Check if value_usd exists and use it for comparison if available\n if (a.value_usd !== undefined && b.value_usd !== undefined) {\n return a.value_usd - b.value_usd\n } else if (a.value_usd !== undefined) {\n return -1 // a should come before b as it has a value_usd\n } else if (b.value_usd !== undefined) {\n return 1 // b should come before a as it has a value_usd\n } else {\n const amountA = parseFloat(\n formatUnits(BigInt(a.amount), a.decimals)\n )\n const amountB = parseFloat(\n formatUnits(BigInt(b.amount), b.decimals)\n )\n return amountA - amountB\n }\n })\n }\n }\n return response\n })\n },\n ...queryOptions,\n enabled:\n address !== undefined &&\n (providerOptions.duneConfig?.apiKey !== undefined ||\n providerOptions.duneConfig?.apiBaseUrl !== undefined) &&\n queryOptions?.enabled &&\n (isSvmAddress || isEvmAddress)\n })\n\n const balanceMap = response?.data?.balances?.reduce((balanceMap, balance) => {\n // Create a new object instead of mutating the cached one\n const normalizedBalance = { ...balance }\n\n // Normalize chain_id\n if (!normalizedBalance.chain_id && normalizedBalance.chain === 'solana') {\n normalizedBalance.chain_id = solana.id\n }\n if (!normalizedBalance.chain_id && normalizedBalance.chain === 'eclipse') {\n normalizedBalance.chain_id = eclipse.id\n }\n\n // Normalize native address\n if (normalizedBalance.address === 'native') {\n normalizedBalance.address =\n normalizedBalance.chain === 'solana' ||\n normalizedBalance.chain === 'eclipse'\n ? '11111111111111111111111111111111'\n : zeroAddress\n }\n\n let chainId = normalizedBalance.chain_id\n if (!chainId && normalizedBalance.chain === 'solana') {\n chainId = solana.id\n }\n if (!chainId && normalizedBalance.chain === 'eclipse') {\n chainId = eclipse.id\n }\n\n balanceMap[`${chainId}:${normalizedBalance.address}`] = normalizedBalance\n return balanceMap\n }, {} as BalanceMap)\n\n return { ...response, balanceMap, queryKey } as ReturnType<QueryType> & {\n balanceMap: typeof balanceMap\n queryKey: (string | undefined)[]\n }\n}\n"]}
@@ -1,44 +0,0 @@
1
- import { useQuery } from '@tanstack/react-query';
2
- import useRelayClient from './useRelayClient.js';
3
- export default (address, queryOptions) => {
4
- const client = useRelayClient();
5
- const eclipseChain = client?.chains?.find((chain) => chain.id === 9286185);
6
- const rpcUrl = eclipseChain && eclipseChain.httpRpcUrl
7
- ? eclipseChain.httpRpcUrl
8
- : 'https://mainnetbeta-rpc.eclipse.xyz';
9
- const queryKey = ['useEclipseBalance', address, rpcUrl];
10
- const response = useQuery({
11
- queryKey,
12
- queryFn: async () => {
13
- const payload = {
14
- jsonrpc: '2.0',
15
- id: 1,
16
- method: 'getBalance',
17
- params: [address]
18
- };
19
- const response = await fetch(rpcUrl, {
20
- method: 'POST',
21
- headers: {
22
- 'Content-Type': 'application/json'
23
- },
24
- body: JSON.stringify(payload)
25
- });
26
- const data = await response.json();
27
- if (data.error) {
28
- throw new Error(data.error.message);
29
- }
30
- const result = data.result;
31
- return {
32
- balance: BigInt(result.value)
33
- };
34
- },
35
- enabled: address !== undefined,
36
- ...queryOptions
37
- });
38
- return {
39
- ...response,
40
- balance: response.data?.balance,
41
- queryKey
42
- };
43
- };
44
- //# sourceMappingURL=useEclipseBalance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEclipseBalance.js","sourceRoot":"","sources":["../../../src/hooks/useEclipseBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAGT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAkBhD,eAAe,CAAC,OAAgB,EAAE,YAAoC,EAAE,EAAE;IACxE,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,YAAY,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;IAC1E,MAAM,MAAM,GACV,YAAY,IAAI,YAAY,CAAC,UAAU;QACrC,CAAC,CAAC,YAAY,CAAC,UAAU;QACzB,CAAC,CAAC,qCAAqC,CAAA;IAC3C,MAAM,QAAQ,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAEvD,MAAM,QAAQ,GAAI,QAAsB,CAAC;QACvC,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAElC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAA;YAEpD,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9B,CAAA;QACH,CAAC;QACD,OAAO,EAAE,OAAO,KAAK,SAAS;QAC9B,GAAG,YAAY;KAChB,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO;QAC/B,QAAQ;KAIT,CAAA;AACH,CAAC,CAAA","sourcesContent":["import {\n useQuery,\n type DefaultError,\n type QueryKey\n} from '@tanstack/react-query'\nimport useRelayClient from './useRelayClient.js'\n\ntype EclipseBalanceResponse = {\n value: number\n}\n\ntype BalanceResponse = {\n balance: bigint\n}\n\ntype QueryType = typeof useQuery<\n BalanceResponse | undefined,\n DefaultError,\n BalanceResponse | undefined,\n QueryKey\n>\ntype QueryOptions = Parameters<QueryType>['0']\n\nexport default (address?: string, queryOptions?: Partial<QueryOptions>) => {\n const client = useRelayClient()\n const eclipseChain = client?.chains?.find((chain) => chain.id === 9286185)\n const rpcUrl =\n eclipseChain && eclipseChain.httpRpcUrl\n ? eclipseChain.httpRpcUrl\n : 'https://mainnetbeta-rpc.eclipse.xyz'\n const queryKey = ['useEclipseBalance', address, rpcUrl]\n\n const response = (useQuery as QueryType)({\n queryKey,\n queryFn: async () => {\n const payload = {\n jsonrpc: '2.0',\n id: 1,\n method: 'getBalance',\n params: [address]\n }\n\n const response = await fetch(rpcUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n })\n\n const data = await response.json()\n\n if (data.error) {\n throw new Error(data.error.message)\n }\n\n const result = data.result as EclipseBalanceResponse\n\n return {\n balance: BigInt(result.value)\n }\n },\n enabled: address !== undefined,\n ...queryOptions\n })\n\n return {\n ...response,\n balance: response.data?.balance,\n queryKey\n } as ReturnType<QueryType> & {\n balance: bigint | undefined\n queryKey: (string | undefined)[]\n }\n}\n"]}
@@ -1,25 +0,0 @@
1
- import { useQuery, type DefaultError, type QueryKey } from '@tanstack/react-query';
2
- export type DuneBalanceResponse = {
3
- request_time: string;
4
- response_time: string;
5
- wallet_address: string;
6
- balances: Array<{
7
- chain: string;
8
- chain_id: number;
9
- address: string;
10
- amount: string;
11
- symbol: string;
12
- decimals: number;
13
- price_usd?: number;
14
- value_usd?: number;
15
- }>;
16
- } | null;
17
- export type BalanceMap = Record<string, NonNullable<DuneBalanceResponse>['balances'][0]>;
18
- type QueryType = typeof useQuery<DuneBalanceResponse, DefaultError, DuneBalanceResponse, QueryKey>;
19
- type QueryOptions = Parameters<QueryType>['0'];
20
- declare const _default: (address?: string, evmChainIds?: 'mainnet' | 'testnet', queryOptions?: Partial<QueryOptions>) => import("@tanstack/react-query").UseQueryResult<DuneBalanceResponse, Error> & {
21
- balanceMap: BalanceMap | undefined;
22
- queryKey: (string | undefined)[];
23
- };
24
- export default _default;
25
- //# sourceMappingURL=useDuneBalances.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDuneBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDuneBalances.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAA;AAG9B,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;CACH,GAAG,IAAI,CAAA;AAER,MAAM,MAAM,UAAU,GAAG,MAAM,CAC7B,MAAM,EACN,WAAW,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAChD,CAAA;AAED,KAAK,SAAS,GAAG,OAAO,QAAQ,CAC9B,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,QAAQ,CACT,CAAA;AACD,KAAK,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAA;mCAGlC,MAAM,gBACH,SAAS,GAAG,SAAS,iBACnB,QAAQ,YAAY,CAAC;;cAgHxB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;;AAnHpC,wBAqHC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEclipseBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useEclipseBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAA;AAO9B,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,SAAS,GAAG,OAAO,QAAQ,CAC9B,eAAe,GAAG,SAAS,EAC3B,YAAY,EACZ,eAAe,GAAG,SAAS,EAC3B,QAAQ,CACT,CAAA;AACD,KAAK,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAA;mCAEpB,MAAM,iBAAiB,QAAQ,YAAY,CAAC;aAgDzD,MAAM,GAAG,SAAS;cACjB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;;AAjDpC,wBAmDC"}