@0xsequence/hooks 5.1.1 → 5.2.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.
Files changed (69) hide show
  1. package/dist/cjs/hooks/Combination/useGetSwapQuote.d.ts.map +1 -1
  2. package/dist/cjs/hooks/Combination/useGetSwapQuote.js +7 -1
  3. package/dist/cjs/hooks/Combination/useGetSwapQuote.js.map +1 -1
  4. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.d.ts +7 -2
  5. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
  6. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js +3 -3
  7. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
  8. package/dist/cjs/hooks/IndexerGateway/useGetNativeTokenBalance.d.ts +29 -1
  9. package/dist/cjs/hooks/IndexerGateway/useGetNativeTokenBalance.d.ts.map +1 -1
  10. package/dist/cjs/hooks/IndexerGateway/useGetNativeTokenBalance.js +29 -1
  11. package/dist/cjs/hooks/IndexerGateway/useGetNativeTokenBalance.js.map +1 -1
  12. package/dist/cjs/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.d.ts +38 -1
  13. package/dist/cjs/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.d.ts.map +1 -1
  14. package/dist/cjs/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.js +38 -1
  15. package/dist/cjs/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.js.map +1 -1
  16. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesByContract.d.ts +52 -1
  17. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesByContract.d.ts.map +1 -1
  18. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesByContract.js +52 -1
  19. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesByContract.js.map +1 -1
  20. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesDetails.d.ts +90 -1
  21. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesDetails.d.ts.map +1 -1
  22. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesDetails.js +90 -1
  23. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesDetails.js.map +1 -1
  24. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesSummary.d.ts +65 -1
  25. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesSummary.d.ts.map +1 -1
  26. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesSummary.js +65 -1
  27. package/dist/cjs/hooks/IndexerGateway/useGetTokenBalancesSummary.js.map +1 -1
  28. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.d.ts +26 -0
  29. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.d.ts.map +1 -1
  30. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.js +26 -0
  31. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.js.map +1 -1
  32. package/dist/cjs/tests/handlers.d.ts.map +1 -1
  33. package/dist/cjs/tests/handlers.js +20 -0
  34. package/dist/cjs/tests/handlers.js.map +1 -1
  35. package/dist/esm/hooks/Combination/useGetSwapQuote.d.ts.map +1 -1
  36. package/dist/esm/hooks/Combination/useGetSwapQuote.js +7 -1
  37. package/dist/esm/hooks/Combination/useGetSwapQuote.js.map +1 -1
  38. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.d.ts +7 -2
  39. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
  40. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js +3 -3
  41. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
  42. package/dist/esm/hooks/IndexerGateway/useGetNativeTokenBalance.d.ts +29 -1
  43. package/dist/esm/hooks/IndexerGateway/useGetNativeTokenBalance.d.ts.map +1 -1
  44. package/dist/esm/hooks/IndexerGateway/useGetNativeTokenBalance.js +29 -1
  45. package/dist/esm/hooks/IndexerGateway/useGetNativeTokenBalance.js.map +1 -1
  46. package/dist/esm/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.d.ts +38 -1
  47. package/dist/esm/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.d.ts.map +1 -1
  48. package/dist/esm/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.js +38 -1
  49. package/dist/esm/hooks/IndexerGateway/useGetSingleTokenBalanceSummary.js.map +1 -1
  50. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesByContract.d.ts +52 -1
  51. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesByContract.d.ts.map +1 -1
  52. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesByContract.js +52 -1
  53. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesByContract.js.map +1 -1
  54. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesDetails.d.ts +90 -1
  55. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesDetails.d.ts.map +1 -1
  56. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesDetails.js +90 -1
  57. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesDetails.js.map +1 -1
  58. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesSummary.d.ts +65 -1
  59. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesSummary.d.ts.map +1 -1
  60. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesSummary.js +65 -1
  61. package/dist/esm/hooks/IndexerGateway/useGetTokenBalancesSummary.js.map +1 -1
  62. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.d.ts +26 -0
  63. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.d.ts.map +1 -1
  64. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.js +26 -0
  65. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.js.map +1 -1
  66. package/dist/esm/tests/handlers.d.ts.map +1 -1
  67. package/dist/esm/tests/handlers.js +20 -0
  68. package/dist/esm/tests/handlers.js.map +1 -1
  69. package/package.json +9 -9
@@ -1,7 +1,58 @@
1
1
  import { IndexerGateway, TokenBalance } from '@0xsequence/indexer';
2
2
  import { BalanceHookOptions } from '../../types';
3
3
  /**
4
- * @description Gets the token balances for a given list of contractAddresses
4
+ * Hook to fetch token balances by contract address.
5
+ * Can be used to fetch multiple token balances in a single request.
6
+ *
7
+ * @param getTokenBalancesByContractArgs - Arguments for fetching token balances
8
+ * @param getTokenBalancesByContractArgs.chainIds - Array of chain IDs to fetch balances from
9
+ * @param getTokenBalancesByContractArgs.filter - Filter criteria for the query
10
+ * @param getTokenBalancesByContractArgs.filter.contractAddresses - List of token contract addresses to fetch balances for
11
+ * @param getTokenBalancesByContractArgs.filter.accountAddresses - Optional list of account addresses to fetch balances for
12
+ * @param getTokenBalancesByContractArgs.filter.contractStatus - Optional filter for contract verification status
13
+ * @param options - Optional configuration for the query behavior
14
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens from the results
15
+ * @param options.disabled - If true, disables the query from automatically running
16
+ * @param options.retry - If true, retries failed queries
17
+ *
18
+ * @returns Query result containing an array of TokenBalance objects with the following properties:
19
+ * - `contractType`: Type of the token contract (ERC20, ERC721, ERC1155)
20
+ * - `contractAddress`: Address of the token contract
21
+ * - `accountAddress`: Address of the account holding the tokens
22
+ * - `tokenID`: (for ERC721/ERC1155) ID of the token
23
+ * - `balance`: Token balance as a string
24
+ * - `blockHash`: Hash of the block where this balance was last updated
25
+ * - `blockNumber`: Block number where this balance was last updated
26
+ * - `chainId`: Chain ID where the token exists
27
+ * - `contractInfo`: (optional) Additional token contract information including:
28
+ * - `name`: Token name
29
+ * - `symbol`: Token symbol
30
+ * - `decimals`: Number of decimals (for ERC20)
31
+ * - `logoURI`: URL of the token logo
32
+ *
33
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesByContract} for more detailed documentation.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * function TokenBalances() {
38
+ * const { data: balances } = useGetTokenBalancesByContract({
39
+ * chainIds: [1], // Ethereum mainnet
40
+ * filter: {
41
+ * contractAddresses: [
42
+ * '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
43
+ * '0xdac17f958d2ee523a2206206994597c13d831ec7' // USDT
44
+ * ],
45
+ * accountAddresses: ['0x123...']
46
+ * }
47
+ * })
48
+ *
49
+ * return balances?.map(balance => (
50
+ * <div key={balance.contractAddress}>
51
+ * {balance.contractInfo?.symbol}: {balance.balance}
52
+ * </div>
53
+ * ))
54
+ * }
55
+ * ```
5
56
  */
6
57
  export declare const useGetTokenBalancesByContract: (getTokenBalancesByContractArgs: IndexerGateway.GetTokenBalancesByContractArgs, options?: BalanceHookOptions) => import("@tanstack/react-query").UseQueryResult<TokenBalance[], Error>;
7
58
  //# sourceMappingURL=useGetTokenBalancesByContract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesByContract.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesByContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAsBhD;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,gCAAgC,cAAc,CAAC,8BAA8B,EAC7E,UAAU,kBAAkB,0EAiB7B,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesByContract.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesByContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAsBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,6BAA6B,GACxC,gCAAgC,cAAc,CAAC,8BAA8B,EAC7E,UAAU,kBAAkB,0EAiB7B,CAAA"}
@@ -12,7 +12,58 @@ const getTokenBalancesByContract = async (indexerGatewayClient, getTokenBalances
12
12
  return res.balances.flatMap(balance => balance.results);
13
13
  };
14
14
  /**
15
- * @description Gets the token balances for a given list of contractAddresses
15
+ * Hook to fetch token balances by contract address.
16
+ * Can be used to fetch multiple token balances in a single request.
17
+ *
18
+ * @param getTokenBalancesByContractArgs - Arguments for fetching token balances
19
+ * @param getTokenBalancesByContractArgs.chainIds - Array of chain IDs to fetch balances from
20
+ * @param getTokenBalancesByContractArgs.filter - Filter criteria for the query
21
+ * @param getTokenBalancesByContractArgs.filter.contractAddresses - List of token contract addresses to fetch balances for
22
+ * @param getTokenBalancesByContractArgs.filter.accountAddresses - Optional list of account addresses to fetch balances for
23
+ * @param getTokenBalancesByContractArgs.filter.contractStatus - Optional filter for contract verification status
24
+ * @param options - Optional configuration for the query behavior
25
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens from the results
26
+ * @param options.disabled - If true, disables the query from automatically running
27
+ * @param options.retry - If true, retries failed queries
28
+ *
29
+ * @returns Query result containing an array of TokenBalance objects with the following properties:
30
+ * - `contractType`: Type of the token contract (ERC20, ERC721, ERC1155)
31
+ * - `contractAddress`: Address of the token contract
32
+ * - `accountAddress`: Address of the account holding the tokens
33
+ * - `tokenID`: (for ERC721/ERC1155) ID of the token
34
+ * - `balance`: Token balance as a string
35
+ * - `blockHash`: Hash of the block where this balance was last updated
36
+ * - `blockNumber`: Block number where this balance was last updated
37
+ * - `chainId`: Chain ID where the token exists
38
+ * - `contractInfo`: (optional) Additional token contract information including:
39
+ * - `name`: Token name
40
+ * - `symbol`: Token symbol
41
+ * - `decimals`: Number of decimals (for ERC20)
42
+ * - `logoURI`: URL of the token logo
43
+ *
44
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesByContract} for more detailed documentation.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * function TokenBalances() {
49
+ * const { data: balances } = useGetTokenBalancesByContract({
50
+ * chainIds: [1], // Ethereum mainnet
51
+ * filter: {
52
+ * contractAddresses: [
53
+ * '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
54
+ * '0xdac17f958d2ee523a2206206994597c13d831ec7' // USDT
55
+ * ],
56
+ * accountAddresses: ['0x123...']
57
+ * }
58
+ * })
59
+ *
60
+ * return balances?.map(balance => (
61
+ * <div key={balance.contractAddress}>
62
+ * {balance.contractInfo?.symbol}: {balance.balance}
63
+ * </div>
64
+ * ))
65
+ * }
66
+ * ```
16
67
  */
17
68
  export const useGetTokenBalancesByContract = (getTokenBalancesByContractArgs, options) => {
18
69
  const indexerGatewayClient = useIndexerGatewayClient();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesByContract.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesByContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,0BAA0B,GAAG,KAAK,EACtC,oBAA4C,EAC5C,8BAA6E,EAC7E,gBAAyB,EACA,EAAE;IAC3B,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,0BAA0B,CAAC,8BAA8B,CAAC,CAAA;IAEjG,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACzD,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,8BAA6E,EAC7E,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,6BAA6B,EAAE,8BAA8B,EAAE,OAAO,CAAC;QAC7F,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,0BAA0B,CACrC,oBAAoB,EACpB,8BAA8B,EAC9B,OAAO,EAAE,gBAAgB,IAAI,KAAK,CACnC,CAAA;QACH,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,8BAA8B,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KAC7F,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesByContract.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesByContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,0BAA0B,GAAG,KAAK,EACtC,oBAA4C,EAC5C,8BAA6E,EAC7E,gBAAyB,EACA,EAAE;IAC3B,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,0BAA0B,CAAC,8BAA8B,CAAC,CAAA;IAEjG,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACzD,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,8BAA6E,EAC7E,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,6BAA6B,EAAE,8BAA8B,EAAE,OAAO,CAAC;QAC7F,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,0BAA0B,CACrC,oBAAoB,EACpB,8BAA8B,EAC9B,OAAO,EAAE,gBAAgB,IAAI,KAAK,CACnC,CAAA;QACH,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,8BAA8B,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KAC7F,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,7 +1,96 @@
1
1
  import { IndexerGateway, TokenBalance } from '@0xsequence/indexer';
2
2
  import { BalanceHookOptions } from '../../types';
3
3
  /**
4
- * @description Gets token balances, with individual token details
4
+ * Hook to fetch detailed token balances including individual token metadata.
5
+ *
6
+ * Key differences from other balance hooks:
7
+ * - useGetTokenBalancesSummary: Returns basic token info, faster but less detailed
8
+ * - useGetTokenBalancesByContract: Only fetches specific contracts
9
+ * - useGetSingleTokenBalanceSummary: Fetches a single token balance
10
+ *
11
+ * This hook is best used when you need full token details, especially for NFTs and collectibles
12
+ * where metadata is important (images, attributes, etc).
13
+ * Results are sorted by type: native tokens first, then ERC20s, then collectibles.
14
+ *
15
+ * @param getTokenBalancesDetailsArgs - Arguments for fetching token balances
16
+ * @param getTokenBalancesDetailsArgs.chainIds - Array of chain IDs to fetch balances from
17
+ * @param getTokenBalancesDetailsArgs.filter - Filter criteria for the query
18
+ * @param getTokenBalancesDetailsArgs.filter.accountAddresses - List of account addresses to fetch balances for
19
+ * @param getTokenBalancesDetailsArgs.filter.contractWhitelist - Optional list of contracts to include
20
+ * @param getTokenBalancesDetailsArgs.filter.contractBlacklist - Optional list of contracts to exclude
21
+ * @param getTokenBalancesDetailsArgs.filter.omitNativeBalances - If true, excludes native token balances
22
+ * @param getTokenBalancesDetailsArgs.filter.contractStatus - Optional filter for contract verification status
23
+ * @param options - Optional configuration for the query behavior
24
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens
25
+ * @param options.disabled - If true, disables the query from automatically running
26
+ * @param options.retry - If true (default), retries failed queries
27
+ *
28
+ * Query configuration:
29
+ * - Marks data as stale after 30 seconds
30
+ * - Retries failed requests by default
31
+ * - Only enabled when account address is present and not explicitly disabled
32
+ *
33
+ * @returns Query result containing an array of TokenBalance objects with detailed information:
34
+ * - `contractType`: Type of the token contract (NATIVE, ERC20, ERC721, ERC1155)
35
+ * - `contractAddress`: Address of the token contract
36
+ * - `accountAddress`: Address of the account holding the tokens
37
+ * - `tokenID`: (for NFTs) ID of the token
38
+ * - `balance`: Token balance as a string
39
+ * - `blockHash`: Hash of the block where this balance was last updated
40
+ * - `blockNumber`: Block number where this balance was last updated
41
+ * - `chainId`: Chain ID where the token exists
42
+ * - `contractInfo`: Additional token contract information including:
43
+ * - `name`: Token name
44
+ * - `symbol`: Token symbol
45
+ * - `decimals`: Number of decimals
46
+ * - `logoURI`: URL of the token logo
47
+ * - `tokenMetadata`: (for NFTs) Detailed token metadata including:
48
+ * - `name`: Token name
49
+ * - `description`: Token description
50
+ * - `image`: Token image URL
51
+ * - `attributes`: Array of token attributes
52
+ *
53
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesDetails} for more detailed documentation.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * import { useGetTokenBalancesDetails } from '@0xsequence/hooks'
58
+ *
59
+ * // Fetch all token balances with full details
60
+ * function TokenList() {
61
+ * const { data: tokens } = useGetTokenBalancesDetails({
62
+ * chainIds: [1], // Ethereum mainnet
63
+ * filter: {
64
+ * accountAddresses: ['0x123...'],
65
+ * omitNativeBalances: false,
66
+ * // Optional: only include specific tokens
67
+ * contractWhitelist: ['0x...', '0x...'],
68
+ * // Optional: exclude specific tokens
69
+ * contractBlacklist: ['0x...']
70
+ * }
71
+ * })
72
+ *
73
+ * return tokens?.map(token => (
74
+ * <div key={`${token.chainId}-${token.contractAddress}-${token.tokenID}`}>
75
+ * {token.contractType === 'ERC721' ? (
76
+ * // NFT display with metadata
77
+ * <NFTCard
78
+ * name={token.tokenMetadata?.name}
79
+ * image={token.tokenMetadata?.image}
80
+ * attributes={token.tokenMetadata?.attributes}
81
+ * />
82
+ * ) : (
83
+ * // Regular token display
84
+ * <TokenRow
85
+ * symbol={token.contractInfo?.symbol}
86
+ * balance={token.balance}
87
+ * decimals={token.contractInfo?.decimals}
88
+ * />
89
+ * )}
90
+ * </div>
91
+ * ))
92
+ * }
93
+ * ```
5
94
  */
6
95
  export declare const useGetTokenBalancesDetails: (getTokenBalancesDetailsArgs: IndexerGateway.GetTokenBalancesDetailsArgs, options?: BalanceHookOptions) => import("@tanstack/react-query").UseQueryResult<TokenBalance[], Error>;
7
96
  //# sourceMappingURL=useGetTokenBalancesDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesDetails.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqChD;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,6BAA6B,cAAc,CAAC,2BAA2B,EACvE,UAAU,kBAAkB,0EAa7B,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesDetails.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,eAAO,MAAM,0BAA0B,GACrC,6BAA6B,cAAc,CAAC,2BAA2B,EACvE,UAAU,kBAAkB,0EAa7B,CAAA"}
@@ -21,7 +21,96 @@ const getTokenBalancesDetails = async (getTokenBalancesDetailsArgs, indexerGatew
21
21
  }
22
22
  };
23
23
  /**
24
- * @description Gets token balances, with individual token details
24
+ * Hook to fetch detailed token balances including individual token metadata.
25
+ *
26
+ * Key differences from other balance hooks:
27
+ * - useGetTokenBalancesSummary: Returns basic token info, faster but less detailed
28
+ * - useGetTokenBalancesByContract: Only fetches specific contracts
29
+ * - useGetSingleTokenBalanceSummary: Fetches a single token balance
30
+ *
31
+ * This hook is best used when you need full token details, especially for NFTs and collectibles
32
+ * where metadata is important (images, attributes, etc).
33
+ * Results are sorted by type: native tokens first, then ERC20s, then collectibles.
34
+ *
35
+ * @param getTokenBalancesDetailsArgs - Arguments for fetching token balances
36
+ * @param getTokenBalancesDetailsArgs.chainIds - Array of chain IDs to fetch balances from
37
+ * @param getTokenBalancesDetailsArgs.filter - Filter criteria for the query
38
+ * @param getTokenBalancesDetailsArgs.filter.accountAddresses - List of account addresses to fetch balances for
39
+ * @param getTokenBalancesDetailsArgs.filter.contractWhitelist - Optional list of contracts to include
40
+ * @param getTokenBalancesDetailsArgs.filter.contractBlacklist - Optional list of contracts to exclude
41
+ * @param getTokenBalancesDetailsArgs.filter.omitNativeBalances - If true, excludes native token balances
42
+ * @param getTokenBalancesDetailsArgs.filter.contractStatus - Optional filter for contract verification status
43
+ * @param options - Optional configuration for the query behavior
44
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens
45
+ * @param options.disabled - If true, disables the query from automatically running
46
+ * @param options.retry - If true (default), retries failed queries
47
+ *
48
+ * Query configuration:
49
+ * - Marks data as stale after 30 seconds
50
+ * - Retries failed requests by default
51
+ * - Only enabled when account address is present and not explicitly disabled
52
+ *
53
+ * @returns Query result containing an array of TokenBalance objects with detailed information:
54
+ * - `contractType`: Type of the token contract (NATIVE, ERC20, ERC721, ERC1155)
55
+ * - `contractAddress`: Address of the token contract
56
+ * - `accountAddress`: Address of the account holding the tokens
57
+ * - `tokenID`: (for NFTs) ID of the token
58
+ * - `balance`: Token balance as a string
59
+ * - `blockHash`: Hash of the block where this balance was last updated
60
+ * - `blockNumber`: Block number where this balance was last updated
61
+ * - `chainId`: Chain ID where the token exists
62
+ * - `contractInfo`: Additional token contract information including:
63
+ * - `name`: Token name
64
+ * - `symbol`: Token symbol
65
+ * - `decimals`: Number of decimals
66
+ * - `logoURI`: URL of the token logo
67
+ * - `tokenMetadata`: (for NFTs) Detailed token metadata including:
68
+ * - `name`: Token name
69
+ * - `description`: Token description
70
+ * - `image`: Token image URL
71
+ * - `attributes`: Array of token attributes
72
+ *
73
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesDetails} for more detailed documentation.
74
+ *
75
+ * @example
76
+ * ```tsx
77
+ * import { useGetTokenBalancesDetails } from '@0xsequence/hooks'
78
+ *
79
+ * // Fetch all token balances with full details
80
+ * function TokenList() {
81
+ * const { data: tokens } = useGetTokenBalancesDetails({
82
+ * chainIds: [1], // Ethereum mainnet
83
+ * filter: {
84
+ * accountAddresses: ['0x123...'],
85
+ * omitNativeBalances: false,
86
+ * // Optional: only include specific tokens
87
+ * contractWhitelist: ['0x...', '0x...'],
88
+ * // Optional: exclude specific tokens
89
+ * contractBlacklist: ['0x...']
90
+ * }
91
+ * })
92
+ *
93
+ * return tokens?.map(token => (
94
+ * <div key={`${token.chainId}-${token.contractAddress}-${token.tokenID}`}>
95
+ * {token.contractType === 'ERC721' ? (
96
+ * // NFT display with metadata
97
+ * <NFTCard
98
+ * name={token.tokenMetadata?.name}
99
+ * image={token.tokenMetadata?.image}
100
+ * attributes={token.tokenMetadata?.attributes}
101
+ * />
102
+ * ) : (
103
+ * // Regular token display
104
+ * <TokenRow
105
+ * symbol={token.contractInfo?.symbol}
106
+ * balance={token.balance}
107
+ * decimals={token.contractInfo?.decimals}
108
+ * />
109
+ * )}
110
+ * </div>
111
+ * ))
112
+ * }
113
+ * ```
25
114
  */
26
115
  export const useGetTokenBalancesDetails = (getTokenBalancesDetailsArgs, options) => {
27
116
  const indexerGatewayClient = useIndexerGatewayClient();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesDetails.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,uBAAuB,GAAG,KAAK,EACnC,2BAAuE,EACvE,oBAA4C,EAC5C,gBAAyB,EACA,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAE3F,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAmB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CACnF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAClD,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,CACpH,CACF,CAAA;QAED,MAAM,MAAM,GAAmB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;QAEvE,OAAO,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACxG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,2BAAuE,EACvE,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,2BAA2B,EAAE,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,uBAAuB,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC,CAAA;QAC7H,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesDetails.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,uBAAuB,GAAG,KAAK,EACnC,2BAAuE,EACvE,oBAA4C,EAC5C,gBAAyB,EACA,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAE3F,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAmB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CACnF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAClD,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,CACpH,CACF,CAAA;QAED,MAAM,MAAM,GAAmB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;QAEvE,OAAO,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACxG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,2BAAuE,EACvE,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,2BAA2B,EAAE,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,uBAAuB,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC,CAAA;QAC7H,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,7 +1,71 @@
1
1
  import { IndexerGateway, TokenBalance } from '@0xsequence/indexer';
2
2
  import { BalanceHookOptions } from '../../types';
3
3
  /**
4
- * @description Gets the token balances, with summarized contract info but not individual token details for non-native contracts
4
+ * Hook to fetch token balances with summarized contract information.
5
+ * This is a lighter version of useGetTokenBalancesDetails - it returns basic token information
6
+ * without detailed metadata, making it faster and more suitable for token lists and balances display.
7
+ * Results are sorted by type: native tokens first, then ERC20s, then collectibles.
8
+ *
9
+ * @param getTokenBalancesSummaryArgs - Arguments for fetching token balances
10
+ * @param getTokenBalancesSummaryArgs.chainIds - Array of chain IDs to fetch balances from
11
+ * @param getTokenBalancesSummaryArgs.filter - Filter criteria for the query
12
+ * @param getTokenBalancesSummaryArgs.filter.accountAddresses - List of account addresses to fetch balances for
13
+ * @param getTokenBalancesSummaryArgs.filter.contractWhitelist - Optional list of contracts to include
14
+ * @param getTokenBalancesSummaryArgs.filter.contractBlacklist - Optional list of contracts to exclude
15
+ * @param getTokenBalancesSummaryArgs.filter.omitNativeBalances - If true, excludes native token balances
16
+ * @param getTokenBalancesSummaryArgs.filter.contractStatus - Optional filter for contract verification status
17
+ * @param options - Optional configuration for the query behavior
18
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens
19
+ * @param options.disabled - If true, disables the query from automatically running
20
+ * @param options.retry - If true (default), retries failed queries
21
+ *
22
+ * Query configuration:
23
+ * - Marks data as stale after 30 seconds
24
+ * - Retries failed requests by default
25
+ * - Only enabled when account address is present and not explicitly disabled
26
+ *
27
+ * @returns Query result containing an array of TokenBalance objects with basic information:
28
+ * - `contractType`: Type of the token contract (NATIVE, ERC20, ERC721, ERC1155)
29
+ * - `contractAddress`: Address of the token contract
30
+ * - `accountAddress`: Address of the account holding the tokens
31
+ * - `balance`: Token balance as a string
32
+ * - `chainId`: Chain ID where the token exists
33
+ * - `contractInfo`: Basic token contract information including:
34
+ * - `name`: Token name
35
+ * - `symbol`: Token symbol
36
+ * - `decimals`: Number of decimals
37
+ * - `logoURI`: URL of the token logo
38
+ *
39
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesSummary} for more detailed documentation.
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * import { useGetTokenBalancesSummary } from '@0xsequence/hooks'
44
+ *
45
+ * // Fetch token balances for a wallet
46
+ * function TokenBalances() {
47
+ * const { data: tokens } = useGetTokenBalancesSummary({
48
+ * chainIds: [1, 137], // Ethereum and Polygon
49
+ * filter: {
50
+ * accountAddresses: ['0x123...'],
51
+ * omitNativeBalances: false,
52
+ * // Optional: filter specific tokens
53
+ * contractWhitelist: ['0x...', '0x...']
54
+ * }
55
+ * })
56
+ *
57
+ * return tokens?.map(token => (
58
+ * <div key={`${token.chainId}-${token.contractAddress}`}>
59
+ * <TokenRow
60
+ * symbol={token.contractInfo?.symbol}
61
+ * balance={token.balance}
62
+ * decimals={token.contractInfo?.decimals}
63
+ * logoURI={token.contractInfo?.logoURI}
64
+ * />
65
+ * </div>
66
+ * ))
67
+ * }
68
+ * ```
5
69
  */
6
70
  export declare const useGetTokenBalancesSummary: (getTokenBalancesSummaryArgs: IndexerGateway.GetTokenBalancesSummaryArgs, options?: BalanceHookOptions) => import("@tanstack/react-query").UseQueryResult<TokenBalance[], Error>;
7
71
  //# sourceMappingURL=useGetTokenBalancesSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesSummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqChD;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,6BAA6B,cAAc,CAAC,2BAA2B,EACvE,UAAU,kBAAkB,0EAa7B,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesSummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAA0B,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,eAAO,MAAM,0BAA0B,GACrC,6BAA6B,cAAc,CAAC,2BAA2B,EACvE,UAAU,kBAAkB,0EAa7B,CAAA"}
@@ -21,7 +21,71 @@ const getTokenBalancesSummary = async (getTokenBalancesSummaryArgs, indexerGatew
21
21
  }
22
22
  };
23
23
  /**
24
- * @description Gets the token balances, with summarized contract info but not individual token details for non-native contracts
24
+ * Hook to fetch token balances with summarized contract information.
25
+ * This is a lighter version of useGetTokenBalancesDetails - it returns basic token information
26
+ * without detailed metadata, making it faster and more suitable for token lists and balances display.
27
+ * Results are sorted by type: native tokens first, then ERC20s, then collectibles.
28
+ *
29
+ * @param getTokenBalancesSummaryArgs - Arguments for fetching token balances
30
+ * @param getTokenBalancesSummaryArgs.chainIds - Array of chain IDs to fetch balances from
31
+ * @param getTokenBalancesSummaryArgs.filter - Filter criteria for the query
32
+ * @param getTokenBalancesSummaryArgs.filter.accountAddresses - List of account addresses to fetch balances for
33
+ * @param getTokenBalancesSummaryArgs.filter.contractWhitelist - Optional list of contracts to include
34
+ * @param getTokenBalancesSummaryArgs.filter.contractBlacklist - Optional list of contracts to exclude
35
+ * @param getTokenBalancesSummaryArgs.filter.omitNativeBalances - If true, excludes native token balances
36
+ * @param getTokenBalancesSummaryArgs.filter.contractStatus - Optional filter for contract verification status
37
+ * @param options - Optional configuration for the query behavior
38
+ * @param options.hideCollectibles - If true, filters out ERC721 and ERC1155 tokens
39
+ * @param options.disabled - If true, disables the query from automatically running
40
+ * @param options.retry - If true (default), retries failed queries
41
+ *
42
+ * Query configuration:
43
+ * - Marks data as stale after 30 seconds
44
+ * - Retries failed requests by default
45
+ * - Only enabled when account address is present and not explicitly disabled
46
+ *
47
+ * @returns Query result containing an array of TokenBalance objects with basic information:
48
+ * - `contractType`: Type of the token contract (NATIVE, ERC20, ERC721, ERC1155)
49
+ * - `contractAddress`: Address of the token contract
50
+ * - `accountAddress`: Address of the account holding the tokens
51
+ * - `balance`: Token balance as a string
52
+ * - `chainId`: Chain ID where the token exists
53
+ * - `contractInfo`: Basic token contract information including:
54
+ * - `name`: Token name
55
+ * - `symbol`: Token symbol
56
+ * - `decimals`: Number of decimals
57
+ * - `logoURI`: URL of the token logo
58
+ *
59
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenBalancesSummary} for more detailed documentation.
60
+ *
61
+ * @example
62
+ * ```tsx
63
+ * import { useGetTokenBalancesSummary } from '@0xsequence/hooks'
64
+ *
65
+ * // Fetch token balances for a wallet
66
+ * function TokenBalances() {
67
+ * const { data: tokens } = useGetTokenBalancesSummary({
68
+ * chainIds: [1, 137], // Ethereum and Polygon
69
+ * filter: {
70
+ * accountAddresses: ['0x123...'],
71
+ * omitNativeBalances: false,
72
+ * // Optional: filter specific tokens
73
+ * contractWhitelist: ['0x...', '0x...']
74
+ * }
75
+ * })
76
+ *
77
+ * return tokens?.map(token => (
78
+ * <div key={`${token.chainId}-${token.contractAddress}`}>
79
+ * <TokenRow
80
+ * symbol={token.contractInfo?.symbol}
81
+ * balance={token.balance}
82
+ * decimals={token.contractInfo?.decimals}
83
+ * logoURI={token.contractInfo?.logoURI}
84
+ * />
85
+ * </div>
86
+ * ))
87
+ * }
88
+ * ```
25
89
  */
26
90
  export const useGetTokenBalancesSummary = (getTokenBalancesSummaryArgs, options) => {
27
91
  const indexerGatewayClient = useIndexerGatewayClient();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenBalancesSummary.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,uBAAuB,GAAG,KAAK,EACnC,2BAAuE,EACvE,oBAA4C,EAC5C,gBAAyB,EACA,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAE3F,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAmB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CACnF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAClD,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,CACpH,CACF,CAAA;QAED,MAAM,MAAM,GAAmB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;QAEvE,OAAO,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACxG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,2BAAuE,EACvE,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,2BAA2B,EAAE,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,uBAAuB,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC,CAAA;QAC7H,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetTokenBalancesSummary.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useGetTokenBalancesSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAA;AACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,uBAAuB,GAAG,KAAK,EACnC,2BAAuE,EACvE,oBAA4C,EAC5C,gBAAyB,EACA,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAE3F,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CACtG,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAmB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CACnF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAClD,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,CACpH,CACF,CAAA;QAED,MAAM,MAAM,GAAmB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAEzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;QAEvE,OAAO,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACxG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,2BAAuE,EACvE,OAA4B,EAC5B,EAAE;IACF,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,2BAA2B,EAAE,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,uBAAuB,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC,CAAA;QAC7H,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,3 +1,29 @@
1
1
  import { SequenceIndexerGateway } from '@0xsequence/indexer';
2
+ /**
3
+ * Hook that provides an indexer gateway client for querying token balances across multiple chains.
4
+ * Unlike the regular indexer client, the gateway client can fetch token data from multiple
5
+ * chains in a single request.
6
+ *
7
+ * @returns A SequenceIndexerGateway instance
8
+ *
9
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useIndexerGatewayClient} for more detailed documentation.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { useIndexerGatewayClient } from '@0xsequence/hooks'
14
+ *
15
+ * const TokenBalances = () => {
16
+ * const indexerGatewayClient = useIndexerGatewayClient()
17
+ *
18
+ * // Get balances across multiple chains in one call
19
+ * const { data } = useGetTokenBalancesSummary({
20
+ * filter: {
21
+ * accountAddresses: [address],
22
+ * omitNativeBalances: false
23
+ * }
24
+ * })
25
+ * }
26
+ * ```
27
+ */
2
28
  export declare const useIndexerGatewayClient: () => SequenceIndexerGateway;
3
29
  //# sourceMappingURL=useIndexerGatewayClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIndexerGatewayClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useIndexerGatewayClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAK5D,eAAO,MAAM,uBAAuB,8BAQnC,CAAA"}
1
+ {"version":3,"file":"useIndexerGatewayClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useIndexerGatewayClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAK5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,uBAAuB,8BAQnC,CAAA"}
@@ -1,6 +1,32 @@
1
1
  import { SequenceIndexerGateway } from '@0xsequence/indexer';
2
2
  import { useMemo } from 'react';
3
3
  import { useConfig } from '../useConfig';
4
+ /**
5
+ * Hook that provides an indexer gateway client for querying token balances across multiple chains.
6
+ * Unlike the regular indexer client, the gateway client can fetch token data from multiple
7
+ * chains in a single request.
8
+ *
9
+ * @returns A SequenceIndexerGateway instance
10
+ *
11
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useIndexerGatewayClient} for more detailed documentation.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { useIndexerGatewayClient } from '@0xsequence/hooks'
16
+ *
17
+ * const TokenBalances = () => {
18
+ * const indexerGatewayClient = useIndexerGatewayClient()
19
+ *
20
+ * // Get balances across multiple chains in one call
21
+ * const { data } = useGetTokenBalancesSummary({
22
+ * filter: {
23
+ * accountAddresses: [address],
24
+ * omitNativeBalances: false
25
+ * }
26
+ * })
27
+ * }
28
+ * ```
29
+ */
4
30
  export const useIndexerGatewayClient = () => {
5
31
  const { env, projectAccessKey, jwt } = useConfig();
6
32
  const indexerGatewayClient = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIndexerGatewayClient.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useIndexerGatewayClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAElD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;IACjF,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAA;IAE3B,OAAO,oBAAoB,CAAA;AAC7B,CAAC,CAAA"}
1
+ {"version":3,"file":"useIndexerGatewayClient.js","sourceRoot":"","sources":["../../../../src/hooks/IndexerGateway/useIndexerGatewayClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAElD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;IACjF,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAA;IAE3B,OAAO,oBAAoB,CAAA;AAC7B,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/tests/handlers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,6BA+UpB,CAAA"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/tests/handlers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,6BAuWpB,CAAA"}
@@ -255,6 +255,26 @@ export const handlers = [
255
255
  ]
256
256
  }, { status: 200 });
257
257
  }),
258
+ http.post('*/GetSwapPermit2Prices', async () => {
259
+ return HttpResponse.json({
260
+ swapPermit2Prices: [
261
+ {
262
+ currencyAddress: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
263
+ currencyBalance: '180000000000000',
264
+ price: '7351402238115',
265
+ maxPrice: '7718972350021',
266
+ transactionValue: '0'
267
+ },
268
+ {
269
+ currencyAddress: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
270
+ currencyBalance: '1478702455538610019',
271
+ price: '64490918485610659',
272
+ maxPrice: '67715464409891192',
273
+ transactionValue: '67715464409891192'
274
+ }
275
+ ]
276
+ }, { status: 200 });
277
+ }),
258
278
  http.post('*/GetSwapQuote', async () => {
259
279
  return HttpResponse.json({
260
280
  swapQuote: {