@explorins/pers-sdk-react-native 2.1.21 → 2.1.22

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.
@@ -7,7 +7,7 @@ export { useBusiness } from './useBusiness';
7
7
  export { useCampaigns } from './useCampaigns';
8
8
  export { useRedemptions } from './useRedemptions';
9
9
  export { useWeb3 } from './useWeb3';
10
- export { useResolvedUrl, useMetadata, useIPFSUrl } from './useIPFSUrl';
10
+ export { useResolvedUrl, useMetadata, useIPFSUrl, useTransactionMetadata } from './useIPFSUrl';
11
11
  export { usePurchases } from './usePurchases';
12
12
  export { useTenants } from './useTenants';
13
13
  export { useUsers } from './useUsers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,IAAI,iBAAiB,EACnC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrH,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGhI,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzE,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGlF,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,IAAI,iBAAiB,EACnC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrH,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGhI,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzE,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGlF,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -8,7 +8,7 @@ export { useBusiness } from './useBusiness';
8
8
  export { useCampaigns } from './useCampaigns';
9
9
  export { useRedemptions } from './useRedemptions';
10
10
  export { useWeb3 } from './useWeb3';
11
- export { useResolvedUrl, useMetadata, useIPFSUrl } from './useIPFSUrl';
11
+ export { useResolvedUrl, useMetadata, useIPFSUrl, useTransactionMetadata } from './useIPFSUrl';
12
12
  export { usePurchases } from './usePurchases';
13
13
  export { useTenants } from './useTenants';
14
14
  export { useUsers } from './useUsers';
@@ -1,10 +1,12 @@
1
- import type { TokenMetadata } from '@explorins/pers-sdk/web3';
1
+ import type { TokenMetadata } from '@explorins/pers-sdk';
2
2
  /**
3
3
  * React hook for resolving media URLs (IPFS or HTTPS).
4
4
  *
5
5
  * Automatically handles IPFS URLs by resolving them to HTTPS via tenant's gateway.
6
6
  * Non-IPFS URLs are returned as-is. Handles loading and error states.
7
7
  *
8
+ * Uses sdk.tenants for IPFS resolution (lightweight, no Web3 deps).
9
+ *
8
10
  * @param url - The URL to resolve (can be ipfs://, https://, or undefined)
9
11
  * @returns Object with resolved URL, loading state, and error
10
12
  *
@@ -32,6 +34,8 @@ export declare function useResolvedUrl(url: string | undefined | null): {
32
34
  * Handles IPFS resolution automatically and returns parsed metadata
33
35
  * with all nested IPFS URLs already resolved to HTTPS.
34
36
  *
37
+ * Uses sdk.tenants for metadata fetching (lightweight, no Web3 deps).
38
+ *
35
39
  * @param metadataUri - The metadata URI to fetch (can be ipfs:// or https://)
36
40
  * @returns Object with metadata, loading state, error, and refresh function
37
41
  *
@@ -65,4 +69,50 @@ export declare function useMetadata(metadataUri: string | undefined | null): {
65
69
  refresh: () => Promise<void>;
66
70
  };
67
71
  export { useResolvedUrl as useIPFSUrl };
72
+ /**
73
+ * React hook for loading transaction/token metadata.
74
+ *
75
+ * Convenience wrapper around useMetadata specifically for transaction items.
76
+ * Pass a transaction's metadataUri to get the NFT image, name, description, etc.
77
+ *
78
+ * @param transaction - Transaction object with optional metadataUri field
79
+ * @returns Object with metadata, loading state, and image URL
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * import { useTransactionMetadata } from '@explorins/pers-sdk-react-native';
84
+ *
85
+ * function TransactionItem({ tx }: { tx: TransactionDTO }) {
86
+ * const { metadata, isLoading, imageUrl } = useTransactionMetadata(tx);
87
+ *
88
+ * if (isLoading) return <ActivityIndicator />;
89
+ *
90
+ * return (
91
+ * <View>
92
+ * {imageUrl && <Image source={{ uri: imageUrl }} style={{ width: 60, height: 60 }} />}
93
+ * <Text>{metadata?.name || tx.type}</Text>
94
+ * <Text>{tx.amount} tokens</Text>
95
+ * </View>
96
+ * );
97
+ * }
98
+ * ```
99
+ */
100
+ export declare function useTransactionMetadata(transaction: {
101
+ metadataUri?: string | null;
102
+ } | null | undefined): {
103
+ /** Parsed metadata with resolved URLs */
104
+ metadata: TokenMetadata | null;
105
+ /** Whether metadata is loading */
106
+ isLoading: boolean;
107
+ /** Error message if fetch failed */
108
+ error: string | null;
109
+ /** Convenience: resolved image URL (or undefined) */
110
+ imageUrl: string | undefined;
111
+ /** Convenience: token/NFT name (or undefined) */
112
+ name: string | undefined;
113
+ /** Convenience: token/NFT description (or undefined) */
114
+ description: string | undefined;
115
+ /** Manually refresh metadata */
116
+ refresh: () => Promise<void>;
117
+ };
68
118
  //# sourceMappingURL=useIPFSUrl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIPFSUrl.d.ts","sourceRoot":"","sources":["../../src/hooks/useIPFSUrl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAmCzD,mDAAmD;;IAEnD,wCAAwC;;IAExC,yCAAyC;;EAG5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA+B9D,6EAA6E;;IAE7E,mCAAmC;;IAEnC,oCAAoC;;IAEpC,gCAAgC;;EAGnC;AAGD,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"useIPFSUrl.d.ts","sourceRoot":"","sources":["../../src/hooks/useIPFSUrl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAmCzD,mDAAmD;;IAEnD,wCAAwC;;IAExC,yCAAyC;;EAG5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA+B9D,6EAA6E;;IAE7E,mCAAmC;;IAEnC,oCAAoC;;IAEpC,gCAAgC;;EAGnC;AAGD,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS;IAIlG,yCAAyC;;IAEzC,kCAAkC;;IAElC,oCAAoC;;IAEpC,qDAAqD;;IAErD,iDAAiD;;IAEjD,wDAAwD;;IAExD,gCAAgC;;EAGnC"}
@@ -1,11 +1,13 @@
1
- import { useState, useEffect } from 'react';
2
- import { useWeb3 } from './useWeb3';
1
+ import { useState, useEffect, useCallback } from 'react';
2
+ import { usePersSDK } from '../providers/PersSDKProvider';
3
3
  /**
4
4
  * React hook for resolving media URLs (IPFS or HTTPS).
5
5
  *
6
6
  * Automatically handles IPFS URLs by resolving them to HTTPS via tenant's gateway.
7
7
  * Non-IPFS URLs are returned as-is. Handles loading and error states.
8
8
  *
9
+ * Uses sdk.tenants for IPFS resolution (lightweight, no Web3 deps).
10
+ *
9
11
  * @param url - The URL to resolve (can be ipfs://, https://, or undefined)
10
12
  * @returns Object with resolved URL, loading state, and error
11
13
  *
@@ -20,12 +22,12 @@ import { useWeb3 } from './useWeb3';
20
22
  * ```
21
23
  */
22
24
  export function useResolvedUrl(url) {
23
- const { resolveIPFSUrl, isAvailable } = useWeb3();
25
+ const { sdk, isInitialized } = usePersSDK();
24
26
  const [resolvedUrl, setResolvedUrl] = useState(null);
25
27
  const [isLoading, setIsLoading] = useState(false);
26
28
  const [error, setError] = useState(null);
27
29
  useEffect(() => {
28
- if (!url || !isAvailable) {
30
+ if (!url || !isInitialized || !sdk) {
29
31
  setResolvedUrl(null);
30
32
  return;
31
33
  }
@@ -36,7 +38,7 @@ export function useResolvedUrl(url) {
36
38
  }
37
39
  setIsLoading(true);
38
40
  setError(null);
39
- resolveIPFSUrl(url)
41
+ sdk.tenants.resolveIpfsUrl(url)
40
42
  .then((resolved) => {
41
43
  setResolvedUrl(resolved);
42
44
  })
@@ -47,7 +49,7 @@ export function useResolvedUrl(url) {
47
49
  .finally(() => {
48
50
  setIsLoading(false);
49
51
  });
50
- }, [url, isAvailable, resolveIPFSUrl]);
52
+ }, [url, isInitialized, sdk]);
51
53
  return {
52
54
  /** Resolved HTTPS URL (or original if not IPFS) */
53
55
  url: resolvedUrl,
@@ -63,6 +65,8 @@ export function useResolvedUrl(url) {
63
65
  * Handles IPFS resolution automatically and returns parsed metadata
64
66
  * with all nested IPFS URLs already resolved to HTTPS.
65
67
  *
68
+ * Uses sdk.tenants for metadata fetching (lightweight, no Web3 deps).
69
+ *
66
70
  * @param metadataUri - The metadata URI to fetch (can be ipfs:// or https://)
67
71
  * @returns Object with metadata, loading state, error, and refresh function
68
72
  *
@@ -86,19 +90,19 @@ export function useResolvedUrl(url) {
86
90
  * ```
87
91
  */
88
92
  export function useMetadata(metadataUri) {
89
- const { fetchAndProcessMetadata, isAvailable } = useWeb3();
93
+ const { sdk, isInitialized } = usePersSDK();
90
94
  const [metadata, setMetadata] = useState(null);
91
95
  const [isLoading, setIsLoading] = useState(false);
92
96
  const [error, setError] = useState(null);
93
- const fetchMetadata = async () => {
94
- if (!metadataUri || !isAvailable) {
97
+ const fetchMetadata = useCallback(async () => {
98
+ if (!metadataUri || !isInitialized || !sdk) {
95
99
  setMetadata(null);
96
100
  return;
97
101
  }
98
102
  setIsLoading(true);
99
103
  setError(null);
100
104
  try {
101
- const result = await fetchAndProcessMetadata(metadataUri);
105
+ const result = await sdk.tenants.fetchAndProcessMetadata(metadataUri);
102
106
  setMetadata(result);
103
107
  }
104
108
  catch (err) {
@@ -108,10 +112,10 @@ export function useMetadata(metadataUri) {
108
112
  finally {
109
113
  setIsLoading(false);
110
114
  }
111
- };
115
+ }, [metadataUri, isInitialized, sdk]);
112
116
  useEffect(() => {
113
117
  fetchMetadata();
114
- }, [metadataUri, isAvailable]);
118
+ }, [fetchMetadata]);
115
119
  return {
116
120
  /** Parsed metadata with resolved IPFS URLs (imageUrl, animationUrl, etc.) */
117
121
  metadata,
@@ -125,3 +129,50 @@ export function useMetadata(metadataUri) {
125
129
  }
126
130
  // Re-export with descriptive aliases
127
131
  export { useResolvedUrl as useIPFSUrl };
132
+ /**
133
+ * React hook for loading transaction/token metadata.
134
+ *
135
+ * Convenience wrapper around useMetadata specifically for transaction items.
136
+ * Pass a transaction's metadataUri to get the NFT image, name, description, etc.
137
+ *
138
+ * @param transaction - Transaction object with optional metadataUri field
139
+ * @returns Object with metadata, loading state, and image URL
140
+ *
141
+ * @example
142
+ * ```tsx
143
+ * import { useTransactionMetadata } from '@explorins/pers-sdk-react-native';
144
+ *
145
+ * function TransactionItem({ tx }: { tx: TransactionDTO }) {
146
+ * const { metadata, isLoading, imageUrl } = useTransactionMetadata(tx);
147
+ *
148
+ * if (isLoading) return <ActivityIndicator />;
149
+ *
150
+ * return (
151
+ * <View>
152
+ * {imageUrl && <Image source={{ uri: imageUrl }} style={{ width: 60, height: 60 }} />}
153
+ * <Text>{metadata?.name || tx.type}</Text>
154
+ * <Text>{tx.amount} tokens</Text>
155
+ * </View>
156
+ * );
157
+ * }
158
+ * ```
159
+ */
160
+ export function useTransactionMetadata(transaction) {
161
+ const { metadata, isLoading, error, refresh } = useMetadata(transaction?.metadataUri);
162
+ return {
163
+ /** Parsed metadata with resolved URLs */
164
+ metadata,
165
+ /** Whether metadata is loading */
166
+ isLoading,
167
+ /** Error message if fetch failed */
168
+ error,
169
+ /** Convenience: resolved image URL (or undefined) */
170
+ imageUrl: metadata?.imageUrl,
171
+ /** Convenience: token/NFT name (or undefined) */
172
+ name: metadata?.name,
173
+ /** Convenience: token/NFT description (or undefined) */
174
+ description: metadata?.description,
175
+ /** Manually refresh metadata */
176
+ refresh,
177
+ };
178
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,KAAK,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAGtE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,OAAO;+BAmCkC,mBAAmB,KAAG,QAAQ,YAAY,CAAC;gCAiC1C,mBAAmB,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;kCAcjD,sBAAsB,KAAG,QAAQ,eAAe,CAAC;0BA8BzD,MAAM,KAAG,QAAQ,MAAM,CAAC;wCAoBV,MAAM,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;gCAc9C,MAAM,KAAG,QAAQ,SAAS,CAAC;8BAc7B,MAAM,WAAW,MAAM,QAAQ,SAAS,GAAG,IAAI,KAAG,QAAQ,MAAM,CAAC;6BAiCxE,QAAQ,KAAG,MAAM,EAAE,GAAG,SAAS;wDAuCzD,MAAM,SACf,QAAQ,cACJ,MAAM,KAChB,QAAQ,wBAAwB,CAAC;6CAqBlB,MAAM,SACf,QAAQ,cACJ,MAAM,KAChB,sBAAsB;;CAqB1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,KAAK,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAGtE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,OAAO;+BAmCkC,mBAAmB,KAAG,QAAQ,YAAY,CAAC;gCAiC1C,mBAAmB,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;kCAcjD,sBAAsB,KAAG,QAAQ,eAAe,CAAC;0BAgCzD,MAAM,KAAG,QAAQ,MAAM,CAAC;wCAsBV,MAAM,KAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;gCAc9C,MAAM,KAAG,QAAQ,SAAS,CAAC;8BAc7B,MAAM,WAAW,MAAM,QAAQ,SAAS,GAAG,IAAI,KAAG,QAAQ,MAAM,CAAC;6BAiCxE,QAAQ,KAAG,MAAM,EAAE,GAAG,SAAS;wDAuCzD,MAAM,SACf,QAAQ,cACJ,MAAM,KAChB,QAAQ,wBAAwB,CAAC;6CAqBlB,MAAM,SACf,QAAQ,cACJ,MAAM,KAChB,sBAAsB;;CAqB1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC"}
@@ -148,6 +148,8 @@ export const useWeb3 = () => {
148
148
  * Converts an ipfs:// URL to an HTTPS URL using the tenant's configured IPFS gateway.
149
149
  * Non-IPFS URLs are returned unchanged.
150
150
  *
151
+ * Note: Uses sdk.tenants for IPFS resolution (chain-agnostic).
152
+ *
151
153
  * @param url - IPFS URL to resolve (ipfs://...)
152
154
  * @returns Promise resolving to HTTP gateway URL
153
155
  *
@@ -159,37 +161,39 @@ export const useWeb3 = () => {
159
161
  * ```
160
162
  */
161
163
  const resolveIPFSUrl = useCallback(async (url) => {
162
- if (!isInitialized || !web3) {
164
+ if (!isInitialized || !sdk) {
163
165
  throw new Error('SDK not initialized. Call initialize() first.');
164
166
  }
165
167
  try {
166
- const result = await web3.resolveIPFSUrl(url);
168
+ const result = await sdk.tenants.resolveIpfsUrl(url);
167
169
  return result;
168
170
  }
169
171
  catch (error) {
170
172
  console.error('Failed to resolve IPFS URL:', error);
171
173
  throw error;
172
174
  }
173
- }, [web3, isInitialized]);
175
+ }, [sdk, isInitialized]);
174
176
  /**
175
177
  * Fetch and process token metadata from a URI
176
178
  *
179
+ * Note: Uses sdk.tenants for metadata fetching (chain-agnostic IPFS).
180
+ *
177
181
  * @param tokenUri - Token URI to fetch metadata from
178
182
  * @returns Promise resolving to processed metadata or null
179
183
  */
180
184
  const fetchAndProcessMetadata = useCallback(async (tokenUri) => {
181
- if (!isInitialized || !web3) {
185
+ if (!isInitialized || !sdk) {
182
186
  throw new Error('SDK not initialized. Call initialize() first.');
183
187
  }
184
188
  try {
185
- const result = await web3.fetchAndProcessMetadata(tokenUri);
189
+ const result = await sdk.tenants.fetchAndProcessMetadata(tokenUri);
186
190
  return result;
187
191
  }
188
192
  catch (error) {
189
193
  console.error('Failed to fetch and process metadata:', error);
190
194
  throw error;
191
195
  }
192
- }, [web3, isInitialized]);
196
+ }, [sdk, isInitialized]);
193
197
  const getChainDataById = useCallback(async (chainId) => {
194
198
  if (!isInitialized || !web3) {
195
199
  throw new Error('SDK not initialized. Call initialize() first.');
package/dist/index.d.ts CHANGED
@@ -206,7 +206,8 @@ export { PersSDKProvider, usePersSDK, type PersConfig, type PersSDKContext } fro
206
206
  * }
207
207
  * ```
208
208
  */
209
- export { useAuth, useTokens, useTokenBalances, useTransactions, useTransactionSigner, SigningStatus, useBusiness, useCampaigns, useRedemptions, useWeb3, usePurchases, useTenants, useUsers, useUserStatus, useFiles, useAnalytics, useDonations, useEvents, useTriggerSources } from './hooks';
209
+ export { useAuth, useTokens, useTokenBalances, useTransactions, useTransactionSigner, SigningStatus, useBusiness, useCampaigns, useRedemptions, useWeb3, usePurchases, useTenants, useUsers, useUserStatus, useFiles, useAnalytics, useDonations, useEvents, useTriggerSources, useResolvedUrl, useMetadata, useIPFSUrl, // alias for useResolvedUrl
210
+ useTransactionMetadata } from './hooks';
210
211
  export type { TransactionSignerHook, OnStatusUpdateFn, StatusUpdateData, SigningStatusType, TransactionSigningResult, SubmissionResult, AuthenticatedUser } from './hooks';
211
212
  export type { EventsHook, PersEvent, EventHandler, EventFilter, Unsubscribe } from './hooks';
212
213
  export type { TokenBalanceWithToken, UseTokenBalancesOptions, UseTokenBalancesResult } from './hooks';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}