@provable-games/metagame-sdk 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts CHANGED
@@ -24,6 +24,16 @@ interface UseMerkleTreesReturn {
24
24
  }
25
25
  declare function useMerkleTrees(options?: UseMerkleTreesOptions): UseMerkleTreesReturn;
26
26
 
27
+ interface UseMerkleTreeReturn {
28
+ tree: MerkleTree | null;
29
+ isLoading: boolean;
30
+ }
31
+ /**
32
+ * Fetch a single merkle tree by ID.
33
+ * Returns null when treeId is falsy (skips the fetch).
34
+ */
35
+ declare function useMerkleTree(treeId: string | number | undefined): UseMerkleTreeReturn;
36
+
27
37
  interface UseMerkleProofReturn {
28
38
  proof: MerkleProofResponse | null;
29
39
  isLoading: boolean;
@@ -332,4 +342,4 @@ declare const useOpusTrovesBannableEntries: (provider: StarknetCallProvider | nu
332
342
  owner?: string;
333
343
  }>, config: OpusTrovesValidatorConfig | undefined, enabled: boolean) => UseOpusTrovesBannableEntriesResult;
334
344
 
335
- export { type CheckedExtensionQualification, type ExtensionQualification, type ExtensionQualificationResult, MetagameProvider, type MetagameProviderProps, type QualificationInput, type QualificationMethod, type UseEntryFeePreviewOptions, type UseEntryFeePreviewReturn, type UseEntryQualificationOptions, type UseEntryQualificationReturn, type UseMerkleProofReturn, type UseMerkleTreesOptions, type UseMerkleTreesReturn, type UseOpusTrovesBannableEntriesResult, type UsePaginationOptions, type UsePaginationReturn, type UsePrizeTableOptions, type UsePrizeTableReturn, type UseScoreTableOptions, type UseScoreTableReturn, type UseSearchFilterOptions, type UseSearchFilterReturn, type UseTokenSelectorOptions, type UseTokenSelectorReturn, useDebounce, useEntryFeePreview, useEntryQualification, useExtensionQualification, useMerkleProof, useMerkleTrees, useMetagameClient, useOpusTrovesBannableEntries, usePagination, usePrizeTable, useScoreTable, useSearchFilter, useStatusIndicator, useTokenSelector };
345
+ export { type CheckedExtensionQualification, type ExtensionQualification, type ExtensionQualificationResult, MetagameProvider, type MetagameProviderProps, type QualificationInput, type QualificationMethod, type UseEntryFeePreviewOptions, type UseEntryFeePreviewReturn, type UseEntryQualificationOptions, type UseEntryQualificationReturn, type UseMerkleProofReturn, type UseMerkleTreeReturn, type UseMerkleTreesOptions, type UseMerkleTreesReturn, type UseOpusTrovesBannableEntriesResult, type UsePaginationOptions, type UsePaginationReturn, type UsePrizeTableOptions, type UsePrizeTableReturn, type UseScoreTableOptions, type UseScoreTableReturn, type UseSearchFilterOptions, type UseSearchFilterReturn, type UseTokenSelectorOptions, type UseTokenSelectorReturn, useDebounce, useEntryFeePreview, useEntryQualification, useExtensionQualification, useMerkleProof, useMerkleTree, useMerkleTrees, useMetagameClient, useOpusTrovesBannableEntries, usePagination, usePrizeTable, useScoreTable, useSearchFilter, useStatusIndicator, useTokenSelector };
package/dist/react.js CHANGED
@@ -63,6 +63,16 @@ var MerkleClient = class {
63
63
  return empty2;
64
64
  }
65
65
  }
66
+ /** Fetch a single merkle tree by ID. */
67
+ async getTree(treeId) {
68
+ try {
69
+ const res = await fetch(`${this.apiUrl}/trees/${treeId}`);
70
+ if (!res.ok) return null;
71
+ return await res.json();
72
+ } catch {
73
+ return null;
74
+ }
75
+ }
66
76
  /** Fetch entries for a specific merkle tree. */
67
77
  async getTreeEntries(treeId, options) {
68
78
  const empty2 = {
@@ -219,6 +229,20 @@ function useMerkleTrees(options) {
219
229
  isLoading
220
230
  };
221
231
  }
232
+ function useMerkleTree(treeId) {
233
+ const client = useMetagameClient();
234
+ const [tree, setTree] = useState(null);
235
+ const [isLoading, setIsLoading] = useState(false);
236
+ useEffect(() => {
237
+ if (!treeId) {
238
+ setTree(null);
239
+ return;
240
+ }
241
+ setIsLoading(true);
242
+ client.merkle.getTree(treeId).then(setTree).finally(() => setIsLoading(false));
243
+ }, [client, treeId]);
244
+ return { tree, isLoading };
245
+ }
222
246
  function useMerkleProof(treeId, playerAddress) {
223
247
  const client = useMetagameClient();
224
248
  const [proof, setProof] = useState(null);
@@ -1118,6 +1142,6 @@ var useOpusTrovesBannableEntries = (provider, games, config, enabled) => {
1118
1142
  };
1119
1143
  };
1120
1144
 
1121
- export { MetagameProvider, useDebounce, useEntryFeePreview, useEntryQualification, useExtensionQualification, useMerkleProof, useMerkleTrees, useMetagameClient, useOpusTrovesBannableEntries, usePagination, usePrizeTable, useScoreTable, useSearchFilter, useStatusIndicator, useTokenSelector };
1145
+ export { MetagameProvider, useDebounce, useEntryFeePreview, useEntryQualification, useExtensionQualification, useMerkleProof, useMerkleTree, useMerkleTrees, useMetagameClient, useOpusTrovesBannableEntries, usePagination, usePrizeTable, useScoreTable, useSearchFilter, useStatusIndicator, useTokenSelector };
1122
1146
  //# sourceMappingURL=react.js.map
1123
1147
  //# sourceMappingURL=react.js.map