@0xsequence/hooks 5.0.9 → 5.1.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 (133) hide show
  1. package/dist/cjs/contexts/ConfigContext.d.ts +3 -0
  2. package/dist/cjs/contexts/ConfigContext.d.ts.map +1 -1
  3. package/dist/cjs/contexts/ConfigContext.js +4 -1
  4. package/dist/cjs/contexts/ConfigContext.js.map +1 -1
  5. package/dist/cjs/hooks/API/useAPIClient.d.ts +37 -0
  6. package/dist/cjs/hooks/API/useAPIClient.d.ts.map +1 -1
  7. package/dist/cjs/hooks/API/useAPIClient.js +40 -4
  8. package/dist/cjs/hooks/API/useAPIClient.js.map +1 -1
  9. package/dist/cjs/hooks/API/useGetCoinPrices.d.ts +43 -1
  10. package/dist/cjs/hooks/API/useGetCoinPrices.d.ts.map +1 -1
  11. package/dist/cjs/hooks/API/useGetCoinPrices.js +51 -1
  12. package/dist/cjs/hooks/API/useGetCoinPrices.js.map +1 -1
  13. package/dist/cjs/hooks/API/useGetCollectiblePrices.d.ts +48 -1
  14. package/dist/cjs/hooks/API/useGetCollectiblePrices.d.ts.map +1 -1
  15. package/dist/cjs/hooks/API/useGetCollectiblePrices.js +56 -1
  16. package/dist/cjs/hooks/API/useGetCollectiblePrices.js.map +1 -1
  17. package/dist/cjs/hooks/API/useGetExchangeRate.d.ts +37 -1
  18. package/dist/cjs/hooks/API/useGetExchangeRate.d.ts.map +1 -1
  19. package/dist/cjs/hooks/API/useGetExchangeRate.js +37 -1
  20. package/dist/cjs/hooks/API/useGetExchangeRate.js.map +1 -1
  21. package/dist/cjs/hooks/Combination/useGetSwapPrices.d.ts +69 -1
  22. package/dist/cjs/hooks/Combination/useGetSwapPrices.d.ts.map +1 -1
  23. package/dist/cjs/hooks/Combination/useGetSwapPrices.js +53 -1
  24. package/dist/cjs/hooks/Combination/useGetSwapPrices.js.map +1 -1
  25. package/dist/cjs/hooks/Combination/useGetSwapQuote.d.ts +74 -3
  26. package/dist/cjs/hooks/Combination/useGetSwapQuote.d.ts.map +1 -1
  27. package/dist/cjs/hooks/Combination/useGetSwapQuote.js +76 -5
  28. package/dist/cjs/hooks/Combination/useGetSwapQuote.js.map +1 -1
  29. package/dist/cjs/hooks/Indexer/useGetTransactionHistory.d.ts +1 -1
  30. package/dist/cjs/hooks/Indexer/useGetTransactionHistory.js +1 -1
  31. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.d.ts +66 -1
  32. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
  33. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js +66 -1
  34. package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
  35. package/dist/cjs/hooks/Indexer/useIndexerClient.d.ts +98 -0
  36. package/dist/cjs/hooks/Indexer/useIndexerClient.d.ts.map +1 -1
  37. package/dist/cjs/hooks/Indexer/useIndexerClient.js +104 -6
  38. package/dist/cjs/hooks/Indexer/useIndexerClient.js.map +1 -1
  39. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.d.ts.map +1 -1
  40. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.js +3 -4
  41. package/dist/cjs/hooks/IndexerGateway/useIndexerGatewayClient.js.map +1 -1
  42. package/dist/cjs/hooks/Metadata/useGetContractInfo.d.ts +61 -1
  43. package/dist/cjs/hooks/Metadata/useGetContractInfo.d.ts.map +1 -1
  44. package/dist/cjs/hooks/Metadata/useGetContractInfo.js +61 -1
  45. package/dist/cjs/hooks/Metadata/useGetContractInfo.js.map +1 -1
  46. package/dist/cjs/hooks/Metadata/useGetMultipleContractsInfo.d.ts +89 -1
  47. package/dist/cjs/hooks/Metadata/useGetMultipleContractsInfo.d.ts.map +1 -1
  48. package/dist/cjs/hooks/Metadata/useGetMultipleContractsInfo.js +89 -1
  49. package/dist/cjs/hooks/Metadata/useGetMultipleContractsInfo.js.map +1 -1
  50. package/dist/cjs/hooks/Metadata/useGetTokenMetadata.d.ts +83 -1
  51. package/dist/cjs/hooks/Metadata/useGetTokenMetadata.d.ts.map +1 -1
  52. package/dist/cjs/hooks/Metadata/useGetTokenMetadata.js +83 -1
  53. package/dist/cjs/hooks/Metadata/useGetTokenMetadata.js.map +1 -1
  54. package/dist/cjs/hooks/Metadata/useMetadataClient.d.ts +36 -0
  55. package/dist/cjs/hooks/Metadata/useMetadataClient.d.ts.map +1 -1
  56. package/dist/cjs/hooks/Metadata/useMetadataClient.js +39 -4
  57. package/dist/cjs/hooks/Metadata/useMetadataClient.js.map +1 -1
  58. package/dist/cjs/hooks/useConfig.d.ts +45 -0
  59. package/dist/cjs/hooks/useConfig.d.ts.map +1 -1
  60. package/dist/cjs/hooks/useConfig.js +45 -0
  61. package/dist/cjs/hooks/useConfig.js.map +1 -1
  62. package/dist/cjs/tests/Combination/useGetSwapQuote.test.js +3 -3
  63. package/dist/cjs/tests/Combination/useGetSwapQuote.test.js.map +1 -1
  64. package/dist/cjs/tests/handlers.d.ts.map +1 -1
  65. package/dist/cjs/tests/handlers.js +14 -0
  66. package/dist/cjs/tests/handlers.js.map +1 -1
  67. package/dist/esm/contexts/ConfigContext.d.ts +3 -0
  68. package/dist/esm/contexts/ConfigContext.d.ts.map +1 -1
  69. package/dist/esm/contexts/ConfigContext.js +5 -2
  70. package/dist/esm/contexts/ConfigContext.js.map +1 -1
  71. package/dist/esm/hooks/API/useAPIClient.d.ts +37 -0
  72. package/dist/esm/hooks/API/useAPIClient.d.ts.map +1 -1
  73. package/dist/esm/hooks/API/useAPIClient.js +40 -4
  74. package/dist/esm/hooks/API/useAPIClient.js.map +1 -1
  75. package/dist/esm/hooks/API/useGetCoinPrices.d.ts +43 -1
  76. package/dist/esm/hooks/API/useGetCoinPrices.d.ts.map +1 -1
  77. package/dist/esm/hooks/API/useGetCoinPrices.js +51 -1
  78. package/dist/esm/hooks/API/useGetCoinPrices.js.map +1 -1
  79. package/dist/esm/hooks/API/useGetCollectiblePrices.d.ts +48 -1
  80. package/dist/esm/hooks/API/useGetCollectiblePrices.d.ts.map +1 -1
  81. package/dist/esm/hooks/API/useGetCollectiblePrices.js +56 -1
  82. package/dist/esm/hooks/API/useGetCollectiblePrices.js.map +1 -1
  83. package/dist/esm/hooks/API/useGetExchangeRate.d.ts +37 -1
  84. package/dist/esm/hooks/API/useGetExchangeRate.d.ts.map +1 -1
  85. package/dist/esm/hooks/API/useGetExchangeRate.js +37 -1
  86. package/dist/esm/hooks/API/useGetExchangeRate.js.map +1 -1
  87. package/dist/esm/hooks/Combination/useGetSwapPrices.d.ts +69 -1
  88. package/dist/esm/hooks/Combination/useGetSwapPrices.d.ts.map +1 -1
  89. package/dist/esm/hooks/Combination/useGetSwapPrices.js +53 -1
  90. package/dist/esm/hooks/Combination/useGetSwapPrices.js.map +1 -1
  91. package/dist/esm/hooks/Combination/useGetSwapQuote.d.ts +74 -3
  92. package/dist/esm/hooks/Combination/useGetSwapQuote.d.ts.map +1 -1
  93. package/dist/esm/hooks/Combination/useGetSwapQuote.js +77 -6
  94. package/dist/esm/hooks/Combination/useGetSwapQuote.js.map +1 -1
  95. package/dist/esm/hooks/Indexer/useGetTransactionHistory.d.ts +1 -1
  96. package/dist/esm/hooks/Indexer/useGetTransactionHistory.js +1 -1
  97. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.d.ts +66 -1
  98. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
  99. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js +66 -1
  100. package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
  101. package/dist/esm/hooks/Indexer/useIndexerClient.d.ts +98 -0
  102. package/dist/esm/hooks/Indexer/useIndexerClient.d.ts.map +1 -1
  103. package/dist/esm/hooks/Indexer/useIndexerClient.js +104 -6
  104. package/dist/esm/hooks/Indexer/useIndexerClient.js.map +1 -1
  105. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.d.ts.map +1 -1
  106. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.js +3 -4
  107. package/dist/esm/hooks/IndexerGateway/useIndexerGatewayClient.js.map +1 -1
  108. package/dist/esm/hooks/Metadata/useGetContractInfo.d.ts +61 -1
  109. package/dist/esm/hooks/Metadata/useGetContractInfo.d.ts.map +1 -1
  110. package/dist/esm/hooks/Metadata/useGetContractInfo.js +61 -1
  111. package/dist/esm/hooks/Metadata/useGetContractInfo.js.map +1 -1
  112. package/dist/esm/hooks/Metadata/useGetMultipleContractsInfo.d.ts +89 -1
  113. package/dist/esm/hooks/Metadata/useGetMultipleContractsInfo.d.ts.map +1 -1
  114. package/dist/esm/hooks/Metadata/useGetMultipleContractsInfo.js +89 -1
  115. package/dist/esm/hooks/Metadata/useGetMultipleContractsInfo.js.map +1 -1
  116. package/dist/esm/hooks/Metadata/useGetTokenMetadata.d.ts +83 -1
  117. package/dist/esm/hooks/Metadata/useGetTokenMetadata.d.ts.map +1 -1
  118. package/dist/esm/hooks/Metadata/useGetTokenMetadata.js +83 -1
  119. package/dist/esm/hooks/Metadata/useGetTokenMetadata.js.map +1 -1
  120. package/dist/esm/hooks/Metadata/useMetadataClient.d.ts +36 -0
  121. package/dist/esm/hooks/Metadata/useMetadataClient.d.ts.map +1 -1
  122. package/dist/esm/hooks/Metadata/useMetadataClient.js +39 -4
  123. package/dist/esm/hooks/Metadata/useMetadataClient.js.map +1 -1
  124. package/dist/esm/hooks/useConfig.d.ts +45 -0
  125. package/dist/esm/hooks/useConfig.d.ts.map +1 -1
  126. package/dist/esm/hooks/useConfig.js +45 -0
  127. package/dist/esm/hooks/useConfig.js.map +1 -1
  128. package/dist/esm/tests/Combination/useGetSwapQuote.test.js +4 -4
  129. package/dist/esm/tests/Combination/useGetSwapQuote.test.js.map +1 -1
  130. package/dist/esm/tests/handlers.d.ts.map +1 -1
  131. package/dist/esm/tests/handlers.js +14 -0
  132. package/dist/esm/tests/handlers.js.map +1 -1
  133. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"useGetContractInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetContractInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAA;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1C;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,qBAAqB,mBAAmB,EACxC,UAAU,YAAY,KACrB,cAAc,CAAC,YAAY,CAyB7B,CAAA"}
1
+ {"version":3,"file":"useGetContractInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetContractInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAA;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,eAAO,MAAM,kBAAkB,GAC7B,qBAAqB,mBAAmB,EACxC,UAAU,YAAY,KACrB,cAAc,CAAC,YAAY,CAyB7B,CAAA"}
@@ -4,7 +4,67 @@ import { QUERY_KEYS, ZERO_ADDRESS, time } from '../../constants';
4
4
  import { compareAddress } from '../../utils/helpers';
5
5
  import { useMetadataClient } from './useMetadataClient';
6
6
  /**
7
- * @description Gets the contract info for a given chainId and contractAddress
7
+ * Hook to fetch contract information.
8
+ * Handles ERC20/ERC721/ERC1155 contracts and native tokens (using ZERO_ADDRESS).
9
+ *
10
+ * For native tokens (like ETH, POL), it enriches the response with network-specific
11
+ * information like the native token symbol and network logo.
12
+ *
13
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetContractInfo} for more detailed documentation.
14
+ *
15
+ * @param getContractInfoArgs - Arguments for fetching contract info
16
+ * @param getContractInfoArgs.chainID - Chain ID as string (e.g., "1" for Ethereum mainnet)
17
+ * @param getContractInfoArgs.contractAddress - Contract address or ZERO_ADDRESS for native token
18
+ * @param options - Optional configuration for the query behavior
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 10 minutes
24
+ * - Retries failed requests by default
25
+ * - Only enabled when chainID and contractAddress are present and not explicitly disabled
26
+ *
27
+ * @returns Query result containing contract information:
28
+ * - `name`: Contract/token name
29
+ * - `symbol`: Token symbol
30
+ * - `decimals`: Token decimals (if applicable)
31
+ * - `logoURI`: URL of the contract/token logo
32
+ * - `type`: Contract type (e.g., "ERC721", "ERC20")
33
+ * - Additional metadata from the contract
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Fetch NFT collection info
38
+ * function CollectionDetails() {
39
+ * const { data: contractInfo } = useGetContractInfo({
40
+ * chainID: "1",
41
+ * contractAddress: "0x123..."
42
+ * })
43
+ *
44
+ * return (
45
+ * <div>
46
+ * <img src={contractInfo?.logoURI} />
47
+ * <h1>{contractInfo?.name}</h1>
48
+ * <span>Type: {contractInfo?.type}</span>
49
+ * </div>
50
+ * )
51
+ * }
52
+ *
53
+ * // Used in checkout for displaying collection info
54
+ * function OrderSummaryItem() {
55
+ * const { data: contractInfo } = useGetContractInfo({
56
+ * chainID: String(chainId),
57
+ * contractAddress
58
+ * })
59
+ *
60
+ * return (
61
+ * <div>
62
+ * <TokenImage src={contractInfo?.logoURI} />
63
+ * <Text>{contractInfo?.name || 'Unknown Collection'}</Text>
64
+ * </div>
65
+ * )
66
+ * }
67
+ * ```
8
68
  */
9
69
  export const useGetContractInfo = (getContractInfoArgs, options) => {
10
70
  const metadataClient = useMetadataClient();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetContractInfo.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetContractInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,mBAAwC,EACxC,OAAsB,EACQ,EAAE;IAChC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC;QACvE,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAA;YAEvF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEjE,OAAO;gBACL,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,CAAC,aAAa,IAAI,OAAO;oBAC1B,CAAC,CAAC;wBACE,GAAG,OAAO,CAAC,WAAW;wBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAA;QACH,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC,mBAAmB,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,QAAQ;KACtG,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetContractInfo.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetContractInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,mBAAwC,EACxC,OAAsB,EACQ,EAAE;IAChC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC;QACvE,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAA;YAEvF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEjE,OAAO;gBACL,GAAG,GAAG,CAAC,YAAY;gBACnB,GAAG,CAAC,aAAa,IAAI,OAAO;oBAC1B,CAAC,CAAC;wBACE,GAAG,OAAO,CAAC,WAAW;wBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAA;QACH,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC,mBAAmB,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,QAAQ;KACtG,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,7 +1,95 @@
1
1
  import { ContractInfo, GetContractInfoArgs } from '@0xsequence/metadata';
2
2
  import { HooksOptions } from '../../types';
3
3
  /**
4
- * @description Gets a list of contract info for a list of chainId and contractAddress pairs
4
+ * Hook to fetch contract information for multiple contracts in parallel.
5
+ * This is a batch version of {@link useGetContractInfo} that optimizes fetching metadata
6
+ * for multiple contracts in a single hook.
7
+ *
8
+ * Supports fetching contracts from different chains in a single query, making it ideal
9
+ * for cross-chain applications. Can fetch any combination of NFTs (ERC721/ERC1155) and
10
+ * tokens (ERC20) across different chains simultaneously.
11
+ *
12
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetMultipleContractsInfo} for more detailed documentation.
13
+ *
14
+ * @param useGetMultipleContractsInfoArgs - Array of contract info arguments
15
+ * @param useGetMultipleContractsInfoArgs[].chainID - Chain ID as string (e.g., "1" for Ethereum mainnet)
16
+ * @param useGetMultipleContractsInfoArgs[].contractAddress - Contract address to fetch info for
17
+ * @param options - Optional configuration for the query behavior
18
+ * @param options.disabled - If true, disables the query from automatically running
19
+ * @param options.retry - If true (default), retries failed queries
20
+ *
21
+ * Query configuration:
22
+ * - Uses a 1 hour stale time (compared to 10 minutes for single contract info)
23
+ * - Retries failed requests by default
24
+ * - Enabled by default unless explicitly disabled
25
+ * - Fetches all contracts in parallel regardless of chain
26
+ *
27
+ * @returns Query result containing an array of contract information objects, each containing:
28
+ * - `name`: Contract/token name
29
+ * - `symbol`: Token symbol
30
+ * - `decimals`: Token decimals (if applicable)
31
+ * - `logoURI`: URL of the contract/token logo
32
+ * - `type`: Contract type (e.g., "ERC721", "ERC20", "ERC1155")
33
+ * - Additional metadata from each contract
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Cross-chain NFT and Token Portfolio
38
+ * function CrossChainPortfolio() {
39
+ * const { data: contractsInfo, isLoading } = useGetMultipleContractsInfo([
40
+ * // NFTs
41
+ * { chainID: "1", contractAddress: "0xbc4ca0..." },
42
+ * { chainID: "1", contractAddress: "0x60e4d7..." },
43
+ * { chainID: "137", contractAddress: "0x631998..." },
44
+ * // Tokens
45
+ * { chainID: "1", contractAddress: "0xa0b86991..." },
46
+ * { chainID: "137", contractAddress: "0x2791bca..." }
47
+ * ])
48
+ *
49
+ * if (isLoading) return <div>Loading portfolio...</div>
50
+ *
51
+ * const nfts = contractsInfo?.filter(info =>
52
+ * info.type === 'ERC721' || info.type === 'ERC1155'
53
+ * ) || []
54
+ *
55
+ * const tokens = contractsInfo?.filter(info =>
56
+ * info.type === 'ERC20'
57
+ * ) || []
58
+ *
59
+ * return (
60
+ * <div className="portfolio">
61
+ * <div className="nft-section">
62
+ * <h2>NFT Collections</h2>
63
+ * {nfts.map((nft, index) => (
64
+ * <div key={index} className="nft-card">
65
+ * <img src={nft.logoURI} alt={nft.name} />
66
+ * <div className="nft-info">
67
+ * <Text variant="title">{nft.name}</Text>
68
+ * <Text>Collection Type: {nft.type}</Text>
69
+ * <Text>Chain: {nft.chainID}</Text>
70
+ * </div>
71
+ * </div>
72
+ * ))}
73
+ * </div>
74
+ *
75
+ * <div className="token-section">
76
+ * <h2>Tokens</h2>
77
+ * {tokens.map((token, index) => (
78
+ * <div key={index} className="token-card">
79
+ * <TokenImage src={token.logoURI} />
80
+ * <div className="token-info">
81
+ * <Text>{token.name}</Text>
82
+ * <Text>Symbol: {token.symbol}</Text>
83
+ * <Text>Chain: {token.chainID}</Text>
84
+ * <Text>Decimals: {token.decimals}</Text>
85
+ * </div>
86
+ * </div>
87
+ * ))}
88
+ * </div>
89
+ * </div>
90
+ * )
91
+ * }
92
+ * ```
5
93
  */
6
94
  export declare const useGetMultipleContractsInfo: (useGetMultipleContractsInfoArgs: GetContractInfoArgs[], options?: HooksOptions) => import("@tanstack/react-query").UseQueryResult<ContractInfo[], Error>;
7
95
  //# sourceMappingURL=useGetMultipleContractsInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetMultipleContractsInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetMultipleContractsInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAiB1C;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,iCAAiC,mBAAmB,EAAE,EAAE,UAAU,YAAY,0EAUzH,CAAA"}
1
+ {"version":3,"file":"useGetMultipleContractsInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetMultipleContractsInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAiB1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,eAAO,MAAM,2BAA2B,GAAI,iCAAiC,mBAAmB,EAAE,EAAE,UAAU,YAAY,0EAUzH,CAAA"}
@@ -11,7 +11,95 @@ const getMultipleContractsInfo = async (metadataClient, arg) => {
11
11
  }
12
12
  };
13
13
  /**
14
- * @description Gets a list of contract info for a list of chainId and contractAddress pairs
14
+ * Hook to fetch contract information for multiple contracts in parallel.
15
+ * This is a batch version of {@link useGetContractInfo} that optimizes fetching metadata
16
+ * for multiple contracts in a single hook.
17
+ *
18
+ * Supports fetching contracts from different chains in a single query, making it ideal
19
+ * for cross-chain applications. Can fetch any combination of NFTs (ERC721/ERC1155) and
20
+ * tokens (ERC20) across different chains simultaneously.
21
+ *
22
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetMultipleContractsInfo} for more detailed documentation.
23
+ *
24
+ * @param useGetMultipleContractsInfoArgs - Array of contract info arguments
25
+ * @param useGetMultipleContractsInfoArgs[].chainID - Chain ID as string (e.g., "1" for Ethereum mainnet)
26
+ * @param useGetMultipleContractsInfoArgs[].contractAddress - Contract address to fetch info for
27
+ * @param options - Optional configuration for the query behavior
28
+ * @param options.disabled - If true, disables the query from automatically running
29
+ * @param options.retry - If true (default), retries failed queries
30
+ *
31
+ * Query configuration:
32
+ * - Uses a 1 hour stale time (compared to 10 minutes for single contract info)
33
+ * - Retries failed requests by default
34
+ * - Enabled by default unless explicitly disabled
35
+ * - Fetches all contracts in parallel regardless of chain
36
+ *
37
+ * @returns Query result containing an array of contract information objects, each containing:
38
+ * - `name`: Contract/token name
39
+ * - `symbol`: Token symbol
40
+ * - `decimals`: Token decimals (if applicable)
41
+ * - `logoURI`: URL of the contract/token logo
42
+ * - `type`: Contract type (e.g., "ERC721", "ERC20", "ERC1155")
43
+ * - Additional metadata from each contract
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * // Cross-chain NFT and Token Portfolio
48
+ * function CrossChainPortfolio() {
49
+ * const { data: contractsInfo, isLoading } = useGetMultipleContractsInfo([
50
+ * // NFTs
51
+ * { chainID: "1", contractAddress: "0xbc4ca0..." },
52
+ * { chainID: "1", contractAddress: "0x60e4d7..." },
53
+ * { chainID: "137", contractAddress: "0x631998..." },
54
+ * // Tokens
55
+ * { chainID: "1", contractAddress: "0xa0b86991..." },
56
+ * { chainID: "137", contractAddress: "0x2791bca..." }
57
+ * ])
58
+ *
59
+ * if (isLoading) return <div>Loading portfolio...</div>
60
+ *
61
+ * const nfts = contractsInfo?.filter(info =>
62
+ * info.type === 'ERC721' || info.type === 'ERC1155'
63
+ * ) || []
64
+ *
65
+ * const tokens = contractsInfo?.filter(info =>
66
+ * info.type === 'ERC20'
67
+ * ) || []
68
+ *
69
+ * return (
70
+ * <div className="portfolio">
71
+ * <div className="nft-section">
72
+ * <h2>NFT Collections</h2>
73
+ * {nfts.map((nft, index) => (
74
+ * <div key={index} className="nft-card">
75
+ * <img src={nft.logoURI} alt={nft.name} />
76
+ * <div className="nft-info">
77
+ * <Text variant="title">{nft.name}</Text>
78
+ * <Text>Collection Type: {nft.type}</Text>
79
+ * <Text>Chain: {nft.chainID}</Text>
80
+ * </div>
81
+ * </div>
82
+ * ))}
83
+ * </div>
84
+ *
85
+ * <div className="token-section">
86
+ * <h2>Tokens</h2>
87
+ * {tokens.map((token, index) => (
88
+ * <div key={index} className="token-card">
89
+ * <TokenImage src={token.logoURI} />
90
+ * <div className="token-info">
91
+ * <Text>{token.name}</Text>
92
+ * <Text>Symbol: {token.symbol}</Text>
93
+ * <Text>Chain: {token.chainID}</Text>
94
+ * <Text>Decimals: {token.decimals}</Text>
95
+ * </div>
96
+ * </div>
97
+ * ))}
98
+ * </div>
99
+ * </div>
100
+ * )
101
+ * }
102
+ * ```
15
103
  */
16
104
  export const useGetMultipleContractsInfo = (useGetMultipleContractsInfoArgs, options) => {
17
105
  const metadataClient = useMetadataClient();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetMultipleContractsInfo.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetMultipleContractsInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,wBAAwB,GAAG,KAAK,EACpC,cAAgC,EAChC,GAA0B,EACD,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9E,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,+BAAsD,EAAE,OAAsB,EAAE,EAAE;IAC5H,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,+BAA+B,EAAE,OAAO,CAAC;QAC3F,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,wBAAwB,CAAC,cAAc,EAAE,+BAA+B,CAAC;QACpG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetMultipleContractsInfo.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetMultipleContractsInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,wBAAwB,GAAG,KAAK,EACpC,cAAgC,EAChC,GAA0B,EACD,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9E,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,+BAAsD,EAAE,OAAsB,EAAE,EAAE;IAC5H,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,+BAA+B,EAAE,OAAO,CAAC;QAC3F,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,wBAAwB,CAAC,cAAc,EAAE,+BAA+B,CAAC;QACpG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ;KAC5B,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,7 +1,89 @@
1
1
  import { GetTokenMetadataArgs } from '@0xsequence/metadata';
2
2
  import { HooksOptions } from '../../types';
3
3
  /**
4
- * @description Gets the token metadata for a given chainId and contractAddress (optional tokenIds for a more granular search)
4
+ * Hook to fetch token-specific metadata for individual tokens within a contract.
5
+ * This differs from {@link useGetContractInfo} which returns contract-level information.
6
+ * This hook is specifically for getting metadata about individual token IDs (like NFT attributes,
7
+ * images, etc).
8
+ *
9
+ * Optimized for batch fetching with automatic chunking of token IDs to respect
10
+ * rate limits (50 tokens per request).
11
+ *
12
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenMetadata} for more detailed documentation.
13
+ *
14
+ * @param getTokenMetadataArgs - Arguments for fetching token metadata
15
+ * @param getTokenMetadataArgs.chainID - Chain ID as string (e.g., "1" for Ethereum mainnet)
16
+ * @param getTokenMetadataArgs.contractAddress - Contract address of the token/NFT
17
+ * @param getTokenMetadataArgs.tokenIDs - Array of token IDs to fetch metadata for. Each ID represents a specific token
18
+ * @param options - Optional configuration for the query behavior
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 1 hour
24
+ * - Retries failed requests by default
25
+ * - Only enabled when chainID and contractAddress are present and not explicitly disabled
26
+ * - Automatically chunks requests into batches of 50 tokens to respect API limits
27
+ *
28
+ * @returns Query result containing an array of token metadata objects, each containing:
29
+ * - `name`: Name of the specific token (e.g., "Bored Ape #1234")
30
+ * - `description`: Description of the specific token
31
+ * - `image`: Token-specific image URL (proxied through image service)
32
+ * - `attributes`: Token-specific attributes/traits (for NFTs)
33
+ * - `decimals`: Token decimals (for ERC1155 tokens)
34
+ * - Additional token-specific metadata
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * // Fetch metadata for a specific NFT
39
+ * function NFTDetails() {
40
+ * const { data: tokensMetadata } = useGetTokenMetadata({
41
+ * chainID: "1",
42
+ * contractAddress: "0xbc4ca0...",
43
+ * tokenIDs: ["1234"]
44
+ * })
45
+ *
46
+ * const nft = tokensMetadata?.[0]
47
+ *
48
+ * return (
49
+ * <div>
50
+ * <img src={nft?.image} alt={nft?.name} />
51
+ * <h2>{nft?.name}</h2>
52
+ * <p>{nft?.description}</p>
53
+ * {nft?.attributes?.map(attr => (
54
+ * <div key={attr.trait_type}>
55
+ * {attr.trait_type}: {attr.value}
56
+ * </div>
57
+ * ))}
58
+ * </div>
59
+ * )
60
+ * }
61
+ *
62
+ * // Fetch metadata for multiple tokens in a transaction
63
+ * function TransactionDetails() {
64
+ * const { data: tokenMetadata } = useGetTokenMetadata({
65
+ * chainID: String(chainId),
66
+ * contractAddress,
67
+ * tokenIDs: transferProps.tokenIds // Array of transferred token IDs
68
+ * })
69
+ *
70
+ * return (
71
+ * <div>
72
+ * {tokenMetadata?.map(token => (
73
+ * <div key={token.id} className="token-transfer">
74
+ * <CollectibleTileImage imageUrl={token.image} />
75
+ * <Text>{token.name}</Text>
76
+ * {token.attributes && (
77
+ * <div className="attributes">
78
+ * Token attributes here
79
+ * </div>
80
+ * )}
81
+ * </div>
82
+ * ))}
83
+ * </div>
84
+ * )
85
+ * }
86
+ * ```
5
87
  */
6
88
  export declare const useGetTokenMetadata: (getTokenMetadataArgs: GetTokenMetadataArgs, options?: HooksOptions) => import("@tanstack/react-query").UseQueryResult<import("@0xsequence/metadata").TokenMetadata[], Error>;
7
89
  //# sourceMappingURL=useGetTokenMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenMetadata.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,sBAAsB,CAAA;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAiC1C;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,sBAAsB,oBAAoB,EAAE,UAAU,YAAY,0GAWrG,CAAA"}
1
+ {"version":3,"file":"useGetTokenMetadata.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,sBAAsB,CAAA;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAiC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,eAAO,MAAM,mBAAmB,GAAI,sBAAsB,oBAAoB,EAAE,UAAU,YAAY,0GAWrG,CAAA"}
@@ -21,7 +21,89 @@ const getTokenMetadata = async (metadataClient, args, imageProxyUrl) => {
21
21
  return data;
22
22
  };
23
23
  /**
24
- * @description Gets the token metadata for a given chainId and contractAddress (optional tokenIds for a more granular search)
24
+ * Hook to fetch token-specific metadata for individual tokens within a contract.
25
+ * This differs from {@link useGetContractInfo} which returns contract-level information.
26
+ * This hook is specifically for getting metadata about individual token IDs (like NFT attributes,
27
+ * images, etc).
28
+ *
29
+ * Optimized for batch fetching with automatic chunking of token IDs to respect
30
+ * rate limits (50 tokens per request).
31
+ *
32
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTokenMetadata} for more detailed documentation.
33
+ *
34
+ * @param getTokenMetadataArgs - Arguments for fetching token metadata
35
+ * @param getTokenMetadataArgs.chainID - Chain ID as string (e.g., "1" for Ethereum mainnet)
36
+ * @param getTokenMetadataArgs.contractAddress - Contract address of the token/NFT
37
+ * @param getTokenMetadataArgs.tokenIDs - Array of token IDs to fetch metadata for. Each ID represents a specific token
38
+ * @param options - Optional configuration for the query behavior
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 1 hour
44
+ * - Retries failed requests by default
45
+ * - Only enabled when chainID and contractAddress are present and not explicitly disabled
46
+ * - Automatically chunks requests into batches of 50 tokens to respect API limits
47
+ *
48
+ * @returns Query result containing an array of token metadata objects, each containing:
49
+ * - `name`: Name of the specific token (e.g., "Bored Ape #1234")
50
+ * - `description`: Description of the specific token
51
+ * - `image`: Token-specific image URL (proxied through image service)
52
+ * - `attributes`: Token-specific attributes/traits (for NFTs)
53
+ * - `decimals`: Token decimals (for ERC1155 tokens)
54
+ * - Additional token-specific metadata
55
+ *
56
+ * @example
57
+ * ```tsx
58
+ * // Fetch metadata for a specific NFT
59
+ * function NFTDetails() {
60
+ * const { data: tokensMetadata } = useGetTokenMetadata({
61
+ * chainID: "1",
62
+ * contractAddress: "0xbc4ca0...",
63
+ * tokenIDs: ["1234"]
64
+ * })
65
+ *
66
+ * const nft = tokensMetadata?.[0]
67
+ *
68
+ * return (
69
+ * <div>
70
+ * <img src={nft?.image} alt={nft?.name} />
71
+ * <h2>{nft?.name}</h2>
72
+ * <p>{nft?.description}</p>
73
+ * {nft?.attributes?.map(attr => (
74
+ * <div key={attr.trait_type}>
75
+ * {attr.trait_type}: {attr.value}
76
+ * </div>
77
+ * ))}
78
+ * </div>
79
+ * )
80
+ * }
81
+ *
82
+ * // Fetch metadata for multiple tokens in a transaction
83
+ * function TransactionDetails() {
84
+ * const { data: tokenMetadata } = useGetTokenMetadata({
85
+ * chainID: String(chainId),
86
+ * contractAddress,
87
+ * tokenIDs: transferProps.tokenIds // Array of transferred token IDs
88
+ * })
89
+ *
90
+ * return (
91
+ * <div>
92
+ * {tokenMetadata?.map(token => (
93
+ * <div key={token.id} className="token-transfer">
94
+ * <CollectibleTileImage imageUrl={token.image} />
95
+ * <Text>{token.name}</Text>
96
+ * {token.attributes && (
97
+ * <div className="attributes">
98
+ * Token attributes here
99
+ * </div>
100
+ * )}
101
+ * </div>
102
+ * ))}
103
+ * </div>
104
+ * )
105
+ * }
106
+ * ```
25
107
  */
26
108
  export const useGetTokenMetadata = (getTokenMetadataArgs, options) => {
27
109
  const { env } = useConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTokenMetadata.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetTokenMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,gBAAgB,GAAG,KAAK,EAAE,cAAgC,EAAE,IAA0B,EAAE,aAAqB,EAAE,EAAE;IACrH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAEnD,wEAAwE;IACxE,MAAM,aAAa,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAE9C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC3B,cAAc,CAAC,gBAAgB,CAAC;QAC9B,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,eAAe;QAChC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CACH,CACF,CAAA;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;IAE/D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,KAAK,GAAG,GAAG,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,oBAA0C,EAAE,OAAsB,EAAE,EAAE;IACxG,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,CAAC;QACzE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC;QACxF,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxG,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useGetTokenMetadata.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useGetTokenMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,gBAAgB,GAAG,KAAK,EAAE,cAAgC,EAAE,IAA0B,EAAE,aAAqB,EAAE,EAAE;IACrH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAEnD,wEAAwE;IACxE,MAAM,aAAa,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAE9C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC3B,cAAc,CAAC,gBAAgB,CAAC;QAC9B,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,eAAe;QAChC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CACH,CACF,CAAA;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;IAE/D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,KAAK,GAAG,GAAG,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,oBAA0C,EAAE,OAAsB,EAAE,EAAE;IACxG,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,CAAC;QACzE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC;QACxF,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,QAAQ;KACxG,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,3 +1,39 @@
1
1
  import { SequenceMetadata } from '@0xsequence/metadata';
2
+ /**
3
+ * Hook that provides a memoized instance of the Sequence Metadata client.
4
+ * This client is used to fetch token and contract metadata
5
+ * from Sequence's metadata service.
6
+ *
7
+ * Provides access to many other methods in the Sequence Metadata API.
8
+ *
9
+ * The client is configured using the project's environment settings and access key.
10
+ * It's memoized to prevent unnecessary re-instantiation when dependencies haven't changed.
11
+ *
12
+ * Used internally in {@link @0xsequence/hooks} by hooks such as:
13
+ * - {@link useGetTokenMetadata} for fetching token-specific metadata
14
+ * - {@link useGetContractInfo} for fetching contract information
15
+ * - {@link useGetMultipleContractsInfo} for batch fetching contract information
16
+ *
17
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useMetadataClient} for more detailed documentation.
18
+ *
19
+ * @returns A configured instance of SequenceMetadata client
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * function CustomMetadataFetch() {
24
+ * const metadataClient = useMetadataClient()
25
+ *
26
+ * const fetchCustomMetadata = async () => {
27
+ * const response = await metadataClient.getContractInfo({
28
+ * chainID: "1",
29
+ * contractAddress: "0x123..."
30
+ * })
31
+ * // Handle response
32
+ * }
33
+ *
34
+ * return <button onClick={fetchCustomMetadata}>Fetch Metadata</button>
35
+ * }
36
+ * ```
37
+ */
2
38
  export declare const useMetadataClient: () => SequenceMetadata;
3
39
  //# sourceMappingURL=useMetadataClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMetadataClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useMetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAKvD,eAAO,MAAM,iBAAiB,wBAU7B,CAAA"}
1
+ {"version":3,"file":"useMetadataClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useMetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAKvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,iBAAiB,wBAQ7B,CAAA"}
@@ -1,12 +1,47 @@
1
1
  import { SequenceMetadata } from '@0xsequence/metadata';
2
2
  import { useMemo } from 'react';
3
3
  import { useConfig } from '../useConfig';
4
+ /**
5
+ * Hook that provides a memoized instance of the Sequence Metadata client.
6
+ * This client is used to fetch token and contract metadata
7
+ * from Sequence's metadata service.
8
+ *
9
+ * Provides access to many other methods in the Sequence Metadata API.
10
+ *
11
+ * The client is configured using the project's environment settings and access key.
12
+ * It's memoized to prevent unnecessary re-instantiation when dependencies haven't changed.
13
+ *
14
+ * Used internally in {@link @0xsequence/hooks} by hooks such as:
15
+ * - {@link useGetTokenMetadata} for fetching token-specific metadata
16
+ * - {@link useGetContractInfo} for fetching contract information
17
+ * - {@link useGetMultipleContractsInfo} for batch fetching contract information
18
+ *
19
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useMetadataClient} for more detailed documentation.
20
+ *
21
+ * @returns A configured instance of SequenceMetadata client
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * function CustomMetadataFetch() {
26
+ * const metadataClient = useMetadataClient()
27
+ *
28
+ * const fetchCustomMetadata = async () => {
29
+ * const response = await metadataClient.getContractInfo({
30
+ * chainID: "1",
31
+ * contractAddress: "0x123..."
32
+ * })
33
+ * // Handle response
34
+ * }
35
+ *
36
+ * return <button onClick={fetchCustomMetadata}>Fetch Metadata</button>
37
+ * }
38
+ * ```
39
+ */
4
40
  export const useMetadataClient = () => {
5
- const { projectAccessKey, env } = useConfig();
41
+ const { env, projectAccessKey, jwt } = useConfig();
6
42
  const metadataClient = useMemo(() => {
7
- const clientUrl = env.metadataUrl;
8
- return new SequenceMetadata(clientUrl, projectAccessKey);
9
- }, [projectAccessKey]);
43
+ return new SequenceMetadata(env.metadataUrl, projectAccessKey);
44
+ }, [projectAccessKey, jwt]);
10
45
  return metadataClient;
11
46
  };
12
47
  //# sourceMappingURL=useMetadataClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMetadataClient.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useMetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAE7C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAA;QAEjC,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IAC1D,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"useMetadataClient.js","sourceRoot":"","sources":["../../../../src/hooks/Metadata/useMetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;IAElD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IAChE,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAA;IAE3B,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -1,2 +1,47 @@
1
+ /**
2
+ * Hook to access the Sequence configuration context.
3
+ * Must be used within a {@link SequenceHooksProvider} component.
4
+ *
5
+ * Provides access to global configuration values used across Sequence hooks, including:
6
+ * - `env`: Environment configuration (API URLs, metadata URLs, etc.)
7
+ * - `projectAccessKey`: Project-specific access key
8
+ * - `jwt`: JSON Web Token for authentication
9
+ *
10
+ * @see {@link https://docs.sequence.xyz/sdk/web/hooks/useConfig} for more detailed documentation.
11
+ *
12
+ * @throws {Error} If used outside of a SequenceHooksProvider
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * function MyComponent() {
17
+ * const { env, projectAccessKey } = useConfig()
18
+ *
19
+ * return (
20
+ * <div>
21
+ * <div>API URL: {env.apiUrl}</div>
22
+ * <div>Project Key: {projectAccessKey}</div>
23
+ * </div>
24
+ * )
25
+ * }
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * // Usage with provider
31
+ * function App() {
32
+ * return (
33
+ * <SequenceHooksProvider config={{
34
+ * env: {
35
+ * apiUrl: '...',
36
+ * metadataUrl: '...',
37
+ * imageProxyUrl: '...'
38
+ * },
39
+ * projectAccessKey: 'your-project-key'
40
+ * }}>
41
+ * <MyComponent />
42
+ * </SequenceHooksProvider>
43
+ * )
44
+ * }
45
+ */
1
46
  export declare const useConfig: () => import("../contexts/ConfigContext").SequenceHooksConfig;
2
47
  //# sourceMappingURL=useConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,+DAQrB,CAAA"}
1
+ {"version":3,"file":"useConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,SAAS,+DAQrB,CAAA"}