web3bio-profile-kit 0.1.3 → 0.1.4

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 (74) hide show
  1. package/dist/hooks/index.cjs +21 -0
  2. package/dist/hooks/index.js +8 -0
  3. package/dist/hooks/useBaseQuery.cjs +129 -0
  4. package/dist/{types/hooks → hooks}/useBaseQuery.d.ts +1 -2
  5. package/dist/hooks/useBaseQuery.js +127 -0
  6. package/dist/hooks/useBatchNS.cjs +25 -0
  7. package/dist/{types/hooks → hooks}/useBatchNS.d.ts +1 -1
  8. package/dist/hooks/useBatchNS.js +23 -0
  9. package/dist/hooks/useBatchProfile.cjs +25 -0
  10. package/dist/{types/hooks → hooks}/useBatchProfile.d.ts +1 -1
  11. package/dist/hooks/useBatchProfile.js +23 -0
  12. package/dist/hooks/useDomain.cjs +28 -0
  13. package/dist/{types/hooks → hooks}/useDomain.d.ts +1 -1
  14. package/dist/hooks/useDomain.js +26 -0
  15. package/dist/hooks/useNS.cjs +28 -0
  16. package/dist/{types/hooks → hooks}/useNS.d.ts +1 -1
  17. package/dist/hooks/useNS.js +26 -0
  18. package/dist/hooks/useProfile.cjs +28 -0
  19. package/dist/{types/hooks → hooks}/useProfile.d.ts +1 -1
  20. package/dist/hooks/useProfile.js +26 -0
  21. package/dist/hooks/useUniversalNS.cjs +28 -0
  22. package/dist/{types/hooks → hooks}/useUniversalNS.d.ts +1 -1
  23. package/dist/hooks/useUniversalNS.js +26 -0
  24. package/dist/hooks/useUniversalProfile.cjs +28 -0
  25. package/dist/{types/hooks → hooks}/useUniversalProfile.d.ts +1 -1
  26. package/dist/hooks/useUniversalProfile.js +26 -0
  27. package/dist/index.cjs +71 -0
  28. package/dist/index.d.ts +3 -441
  29. package/dist/index.js +18 -2038
  30. package/dist/types/cointype.cjs +29 -0
  31. package/dist/types/cointype.d.ts +26 -0
  32. package/dist/types/cointype.js +29 -0
  33. package/dist/types/hook.cjs +38 -0
  34. package/dist/types/hook.d.ts +195 -0
  35. package/dist/types/hook.js +38 -0
  36. package/dist/types/index.cjs +38 -0
  37. package/dist/types/index.d.ts +5 -7
  38. package/dist/types/index.js +5 -0
  39. package/dist/types/network.cjs +41 -0
  40. package/dist/types/{utils/network.d.ts → network.d.ts} +9 -4
  41. package/dist/types/network.js +41 -0
  42. package/dist/types/platform.cjs +110 -0
  43. package/dist/types/{utils/platform.d.ts → platform.d.ts} +19 -5
  44. package/dist/types/platform.js +110 -0
  45. package/dist/types/source.cjs +44 -0
  46. package/dist/types/{utils/source.d.ts → source.d.ts} +11 -3
  47. package/dist/types/source.js +44 -0
  48. package/dist/utils/helpers.cjs +119 -0
  49. package/dist/{types/utils → utils}/helpers.d.ts +4 -3
  50. package/dist/utils/helpers.js +112 -0
  51. package/dist/utils/index.cjs +27 -0
  52. package/dist/utils/index.d.ts +6 -0
  53. package/dist/utils/index.js +6 -0
  54. package/dist/utils/network.cjs +355 -0
  55. package/dist/utils/network.d.ts +4 -0
  56. package/dist/utils/network.js +353 -0
  57. package/dist/utils/platform.cjs +983 -0
  58. package/dist/utils/platform.d.ts +18 -0
  59. package/dist/utils/platform.js +979 -0
  60. package/dist/utils/regex.cjs +34 -0
  61. package/dist/utils/regex.d.ts +30 -0
  62. package/dist/utils/regex.js +32 -0
  63. package/dist/utils/source.cjs +144 -0
  64. package/dist/utils/source.d.ts +2 -0
  65. package/dist/utils/source.js +142 -0
  66. package/package.json +32 -12
  67. package/dist/index.esm.js +0 -2023
  68. package/dist/index.esm.js.map +0 -1
  69. package/dist/index.js.map +0 -1
  70. package/dist/types/utils/cointype.d.ts +0 -22
  71. package/dist/types/utils/constants.d.ts +0 -36
  72. package/dist/types/utils/types.d.ts +0 -74
  73. /package/dist/{types/hooks → hooks}/index.d.ts +0 -0
  74. /package/dist/{types/setupTests.d.ts → setupTests.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,2038 +1,18 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
-
5
- const API_ENDPOINT = "https://api.web3.bio";
6
- exports.ErrorMessages = void 0;
7
- (function (ErrorMessages) {
8
- ErrorMessages["NOT_FOUND"] = "Not Found";
9
- ErrorMessages["INVALID_RESOLVER"] = "Invalid Resolver Address";
10
- ErrorMessages["INVALID_RESOLVED"] = "Invalid Resolved Address";
11
- ErrorMessages["NOT_EXIST"] = "Does Not Exist";
12
- ErrorMessages["INVALID_IDENTITY"] = "Invalid Identity or Domain";
13
- ErrorMessages["INVALID_ADDRESS"] = "Invalid Address";
14
- ErrorMessages["UNKNOWN_ERROR"] = "Unknown Error Occurred";
15
- ErrorMessages["NETWORK_ERROR"] = "Network Error";
16
- })(exports.ErrorMessages || (exports.ErrorMessages = {}));
17
- exports.QueryEndpoint = void 0;
18
- (function (QueryEndpoint) {
19
- QueryEndpoint["NS"] = "ns";
20
- QueryEndpoint["PROFILE"] = "profile";
21
- QueryEndpoint["DOMAIN"] = "domain";
22
- })(exports.QueryEndpoint || (exports.QueryEndpoint = {}));
23
- // Regular expressions for identity detection
24
- const REGEX = {
25
- ENS: /^.+\.(?:eth|xyz|bio|app|luxe|kred|art|ceo|club|box|uni\.eth|cb\.id)$/i,
26
- BASENAMES: /^.+\.base(?:\.eth)?$/i,
27
- LINEA: /^.+\.linea(?:\.eth)?$/i,
28
- FARCASTER: /^(?:[A-Za-z0-9_-]{1,61}(?:\.(?:eth|farcaster|fcast\.id|farcaster\.eth))?|farcaster,#\d+)$/i,
29
- LENS: /^.+\.lens$/i,
30
- CLUSTER: /^[\w-]+\/[\w-]+$/,
31
- SPACE_ID: /^.+\.(?:bnb|arb)$/i,
32
- GENOME: /^.+\.gno$/i,
33
- UNSTOPPABLE_DOMAINS: /^.+\.(?:crypto|888|nft|blockchain|bitcoin|dao|x|klever|hi|zil|kresus|polygon|wallet|binanceus|anime|go|manga|eth)$/i,
34
- CROSSBELL: /^.+\.csb$/i,
35
- DOTBIT: /^.+\.bit$/i,
36
- SNS: /^.+\.sol$/i,
37
- ETH_ADDRESS: /^0x[a-fA-F0-9]{40}$/,
38
- BTC_ADDRESS: /^(?:[13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[qp][a-z0-9]{11,71})$/,
39
- SOLANA_ADDRESS: /^[1-9A-HJ-NP-Za-km-z]{32,44}$/,
40
- LOWERCASE_EXEMPT: /^(?:[13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[qp][a-z0-9]{11,71}|[1-9A-HJ-NP-Za-km-z]{32,44})$/,
41
- TWITTER: /^[A-Za-z0-9_]{1,15}(?:\.twitter)?$/i,
42
- NEXT_ID: /^0x[a-f0-9]{66}(?:\.nextid)?$/i,
43
- };
44
-
45
- exports.PlatformType = void 0;
46
- (function (PlatformType) {
47
- PlatformType["ens"] = "ens";
48
- PlatformType["dotbit"] = "dotbit";
49
- PlatformType["lens"] = "lens";
50
- PlatformType["box"] = "box";
51
- PlatformType["ethereum"] = "ethereum";
52
- PlatformType["twitter"] = "twitter";
53
- PlatformType["nextid"] = "nextid";
54
- PlatformType["bitcoin"] = "bitcoin";
55
- PlatformType["keybase"] = "keybase";
56
- PlatformType["reddit"] = "reddit";
57
- PlatformType["github"] = "github";
58
- PlatformType["unstoppableDomains"] = "unstoppabledomains";
59
- PlatformType["basenames"] = "basenames";
60
- PlatformType["linea"] = "linea";
61
- PlatformType["ckb"] = "ckb";
62
- PlatformType["farcaster"] = "farcaster";
63
- PlatformType["space_id"] = "space_id";
64
- PlatformType["telegram"] = "telegram";
65
- PlatformType["instagram"] = "instagram";
66
- PlatformType["cyberconnect"] = "cyberconnect";
67
- PlatformType["opensea"] = "opensea";
68
- PlatformType["discord"] = "discord";
69
- PlatformType["calendly"] = "calendly";
70
- PlatformType["url"] = "url";
71
- PlatformType["website"] = "website";
72
- PlatformType["linkedin"] = "linkedin";
73
- PlatformType["dns"] = "dns";
74
- PlatformType["tron"] = "tron";
75
- PlatformType["hey"] = "hey";
76
- PlatformType["facebook"] = "facebook";
77
- PlatformType["threads"] = "threads";
78
- PlatformType["whatsapp"] = "whatsapp";
79
- PlatformType["weibo"] = "weibo";
80
- PlatformType["youtube"] = "youtube";
81
- PlatformType["tiktok"] = "tiktok";
82
- PlatformType["bilibili"] = "bilibili";
83
- PlatformType["medium"] = "medium";
84
- PlatformType["mirror"] = "mirror";
85
- PlatformType["zerion"] = "zerion";
86
- PlatformType["aave"] = "aave";
87
- PlatformType["rainbow"] = "rainbow";
88
- PlatformType["bluesky"] = "bluesky";
89
- PlatformType["nostr"] = "nostr";
90
- PlatformType["poap"] = "poap";
91
- PlatformType["uniswap"] = "uniswap";
92
- PlatformType["degenscore"] = "degenscore";
93
- PlatformType["firefly"] = "firefly";
94
- PlatformType["solana"] = "solana";
95
- PlatformType["sns"] = "sns";
96
- PlatformType["mstdnjp"] = "mstdnjp";
97
- PlatformType["lobsters"] = "lobsters";
98
- PlatformType["hackernews"] = "hackernews";
99
- PlatformType["crossbell"] = "crossbell";
100
- PlatformType["minds"] = "minds";
101
- PlatformType["paragraph"] = "paragraph";
102
- PlatformType["genome"] = "genome";
103
- PlatformType["gnosis"] = "gnosis";
104
- PlatformType["webacy"] = "webacy";
105
- PlatformType["clusters"] = "clusters";
106
- PlatformType["guild"] = "guild";
107
- PlatformType["ton"] = "ton";
108
- PlatformType["snapshot"] = "snapshot";
109
- PlatformType["coingecko"] = "coingecko";
110
- PlatformType["gitcoin"] = "gitcoin";
111
- PlatformType["humanpassport"] = "humanpassport";
112
- PlatformType["talent"] = "talentprotocol";
113
- PlatformType["doge"] = "doge";
114
- PlatformType["bsc"] = "bsc";
115
- PlatformType["aptos"] = "aptos";
116
- PlatformType["near"] = "near";
117
- PlatformType["stacks"] = "stacks";
118
- PlatformType["cosmos"] = "cosmos";
119
- PlatformType["zeta"] = "zeta";
120
- PlatformType["mode"] = "mode";
121
- PlatformType["arbitrum"] = "arbitrum";
122
- PlatformType["scroll"] = "scroll";
123
- PlatformType["taiko"] = "taiko";
124
- PlatformType["mint"] = "mint";
125
- PlatformType["zkfair"] = "zkfair";
126
- PlatformType["manta"] = "manta";
127
- PlatformType["lightlink"] = "lightlink";
128
- PlatformType["merlin"] = "merlin";
129
- PlatformType["alienx"] = "alienx";
130
- PlatformType["edgeless"] = "edgeless";
131
- PlatformType["tomo"] = "tomo";
132
- PlatformType["ailayer"] = "ailayer";
133
- PlatformType["philand"] = "philand";
134
- PlatformType["efp"] = "efp";
135
- PlatformType["gravity"] = "gravity";
136
- })(exports.PlatformType || (exports.PlatformType = {}));
137
- exports.PlatformSystem = void 0;
138
- (function (PlatformSystem) {
139
- PlatformSystem[PlatformSystem["web2"] = 0] = "web2";
140
- PlatformSystem[PlatformSystem["web3"] = 1] = "web3";
141
- })(exports.PlatformSystem || (exports.PlatformSystem = {}));
142
- const DEFAULT_PLATFORM = {
143
- color: "#000000",
144
- icon: "",
145
- label: "",
146
- description: "",
147
- urlPrefix: "",
148
- ensText: [],
149
- registerlink: "",
150
- editUrlPrefix: "",
151
- system: exports.PlatformSystem.web3,
152
- };
153
- const PLATFORM_DATA = new Map([
154
- [
155
- exports.PlatformType.twitter,
156
- {
157
- color: "#000000",
158
- icon: "icons/icon-x.svg",
159
- label: "Twitter (X)",
160
- urlPrefix: "https://x.com/",
161
- ensText: ["com.twitter", "com.x", "vnd.twitter", "twitter"],
162
- system: exports.PlatformSystem.web2,
163
- },
164
- ],
165
- [
166
- exports.PlatformType.ens,
167
- {
168
- color: "#0080bc",
169
- icon: "icons/icon-ens.svg",
170
- label: "ENS",
171
- description: "Ethereum Name Service (ENS and .eth domain)",
172
- urlPrefix: "https://app.ens.domains/",
173
- registerlink: "https://app.ens.domains/{name}",
174
- editUrlPrefix: "https://app.ens.domains/{name}",
175
- system: exports.PlatformSystem.web3,
176
- },
177
- ],
178
- [
179
- exports.PlatformType.ethereum,
180
- {
181
- color: "#3741ba",
182
- icon: "icons/icon-ethereum.svg",
183
- label: "Ethereum",
184
- urlPrefix: "https://etherscan.io/address/",
185
- editUrlPrefix: "https://app.ens.domains/{name}",
186
- system: exports.PlatformSystem.web3,
187
- },
188
- ],
189
- [
190
- exports.PlatformType.farcaster,
191
- {
192
- color: "#432C8D",
193
- icon: "icons/icon-farcaster.svg",
194
- label: "Farcaster",
195
- description: "Farcaster social identity (Fname handle)",
196
- urlPrefix: "https://farcaster.xyz/",
197
- editUrlPrefix: "https://farcaster.xyz/~/settings",
198
- ensText: ["farcaster", "xyz.farcaster"],
199
- registerlink: "https://farcaster.xyz/~/invite-page/1000?id=8ebad588&name={name}",
200
- system: exports.PlatformSystem.web2,
201
- },
202
- ],
203
- [
204
- exports.PlatformType.github,
205
- {
206
- color: "#000000",
207
- icon: "icons/icon-github.svg",
208
- label: "GitHub",
209
- urlPrefix: "https://github.com/",
210
- ensText: ["com.github", "vnd.github", "github"],
211
- system: exports.PlatformSystem.web2,
212
- },
213
- ],
214
- [
215
- exports.PlatformType.keybase,
216
- {
217
- color: "#4162E2",
218
- icon: "icons/icon-keybase.svg",
219
- label: "Keybase",
220
- urlPrefix: "https://keybase.io/",
221
- ensText: ["io.keybase", "keybase"],
222
- system: exports.PlatformSystem.web2,
223
- },
224
- ],
225
- [
226
- exports.PlatformType.lens,
227
- {
228
- color: "#2CC256",
229
- icon: "icons/icon-lens.svg",
230
- label: "Lens",
231
- description: "Lens social identity (.lens handle)",
232
- urlPrefix: "https://hey.xyz/u/",
233
- editUrlPrefix: "https://hey.xyz/settings",
234
- ensText: ["lens"],
235
- registerlink: "https://www.lens.xyz/mint?name={name}",
236
- system: exports.PlatformSystem.web2,
237
- },
238
- ],
239
- [
240
- exports.PlatformType.box,
241
- {
242
- color: "#1a1a1a",
243
- icon: "icons/icon-box.svg",
244
- label: "Box",
245
- registerlink: "https://my.box/buy/configure?domain={name}&ref=web3bio",
246
- system: exports.PlatformSystem.web3,
247
- },
248
- ],
249
- [
250
- exports.PlatformType.nextid,
251
- {
252
- color: "#000000",
253
- icon: "icons/icon-nextid.svg",
254
- label: "Next.ID",
255
- urlPrefix: "https://web3.bio/",
256
- system: exports.PlatformSystem.web3,
257
- },
258
- ],
259
- [
260
- exports.PlatformType.bitcoin,
261
- {
262
- color: "#F7931A",
263
- icon: "icons/icon-bitcoin.svg",
264
- label: "Bitcoin",
265
- urlPrefix: "https://explorer.cloverpool.com/btc/address/",
266
- system: exports.PlatformSystem.web3,
267
- },
268
- ],
269
- [
270
- exports.PlatformType.reddit,
271
- {
272
- color: "#ff4500",
273
- icon: "icons/icon-reddit.svg",
274
- label: "Reddit",
275
- urlPrefix: "https://www.reddit.com/user/",
276
- ensText: ["com.reddit"],
277
- system: exports.PlatformSystem.web2,
278
- },
279
- ],
280
- [
281
- exports.PlatformType.space_id,
282
- {
283
- color: "#71EBAA",
284
- icon: "icons/icon-spaceid.svg",
285
- label: "SPACE ID",
286
- registerlink: "https://space.id/search?query={name}",
287
- urlPrefix: "https://web3.bio/?s=",
288
- system: exports.PlatformSystem.web3,
289
- },
290
- ],
291
- [
292
- exports.PlatformType.unstoppableDomains,
293
- {
294
- color: "#2E65F5",
295
- icon: "icons/icon-unstoppabledomains.svg",
296
- label: "Unstoppable Domains",
297
- description: "Unstoppable Domains (.x, .crypto and other Web3 domains), and ud.me Unstoppable Profiles",
298
- urlPrefix: "https://web3.bio/",
299
- editUrlPrefix: "https://unstoppabledomains.com/d/{name}",
300
- registerlink: "https://unstoppabledomains.com/search?searchTerm={name}",
301
- system: exports.PlatformSystem.web3,
302
- },
303
- ],
304
- [
305
- exports.PlatformType.basenames,
306
- {
307
- color: "#0052ff",
308
- icon: "icons/icon-base.svg",
309
- label: "Basenames",
310
- description: "Basenames (.base.eth domains) based on ENS",
311
- urlPrefix: "https://www.base.org/name/",
312
- editUrlPrefix: "https://www.base.org/name/{name}",
313
- registerlink: "https://www.base.org/names?claim={name}",
314
- system: exports.PlatformSystem.web3,
315
- },
316
- ],
317
- [
318
- exports.PlatformType.linea,
319
- {
320
- color: "#591FE6",
321
- icon: "icons/icon-linea.svg",
322
- label: "Linea Name Service",
323
- description: "Linea Name Service (.linea.eth domains) based on ENS",
324
- urlPrefix: "https://names.linea.build/",
325
- editUrlPrefix: "https://names.linea.build/{name}",
326
- registerlink: "https://names.linea.build/{name}/register",
327
- system: exports.PlatformSystem.web3,
328
- },
329
- ],
330
- [
331
- exports.PlatformType.ckb,
332
- {
333
- color: "#000000",
334
- icon: "icons/icon-ckb.svg",
335
- label: "Nervos",
336
- urlPrefix: "https://explorer.nervos.org/address/",
337
- system: exports.PlatformSystem.web3,
338
- },
339
- ],
340
- [
341
- exports.PlatformType.telegram,
342
- {
343
- color: "#0088cc",
344
- icon: "icons/icon-telegram.svg",
345
- label: "Telegram",
346
- ensText: ["org.telegram", "vnd.telegram", "telegram"],
347
- urlPrefix: "https://t.me/",
348
- system: exports.PlatformSystem.web2,
349
- },
350
- ],
351
- [
352
- exports.PlatformType.instagram,
353
- {
354
- color: "#E1306C",
355
- icon: "icons/icon-instagram.svg",
356
- label: "Instagram",
357
- ensText: ["com.instagram", "instagram"],
358
- urlPrefix: "https://www.instagram.com/",
359
- system: exports.PlatformSystem.web2,
360
- },
361
- ],
362
- [
363
- exports.PlatformType.weibo,
364
- {
365
- color: "#df2029",
366
- label: "Weibo",
367
- urlPrefix: "https://weibo.com/",
368
- system: exports.PlatformSystem.web2,
369
- },
370
- ],
371
- [
372
- exports.PlatformType.dotbit,
373
- {
374
- color: "#0e7dff",
375
- icon: "icons/icon-dotbit.svg",
376
- label: ".bit",
377
- urlPrefix: "https://d.id/",
378
- registerlink: "https://d.id/bit/account/create/{name}",
379
- system: exports.PlatformSystem.web3,
380
- },
381
- ],
382
- [
383
- exports.PlatformType.cyberconnect,
384
- {
385
- color: "#000000",
386
- icon: "icons/icon-cyberconnect.svg",
387
- label: "CyberConnect",
388
- urlPrefix: "https://link3.to/",
389
- registerlink: "",
390
- system: exports.PlatformSystem.web3,
391
- },
392
- ],
393
- [
394
- exports.PlatformType.opensea,
395
- {
396
- color: "#407FDB",
397
- icon: "icons/icon-opensea.svg",
398
- label: "OpenSea",
399
- urlPrefix: "https://opensea.io/",
400
- system: exports.PlatformSystem.web3,
401
- },
402
- ],
403
- [
404
- exports.PlatformType.discord,
405
- {
406
- color: "#5865f2",
407
- icon: "icons/icon-discord.svg",
408
- label: "Discord",
409
- urlPrefix: "",
410
- ensText: ["discord", "com.discord"],
411
- system: exports.PlatformSystem.web2,
412
- },
413
- ],
414
- [
415
- exports.PlatformType.calendly,
416
- {
417
- color: "#2F69F6",
418
- icon: "icons/icon-calendly.svg",
419
- label: "Calendly",
420
- urlPrefix: "https://calendly.com/",
421
- ensText: ["calendly", "com.calendly"],
422
- system: exports.PlatformSystem.web2,
423
- },
424
- ],
425
- [
426
- exports.PlatformType.url,
427
- {
428
- color: "#121212",
429
- icon: "icons/icon-web.svg",
430
- label: "Website",
431
- urlPrefix: "",
432
- system: exports.PlatformSystem.web2,
433
- },
434
- ],
435
- [
436
- exports.PlatformType.website,
437
- {
438
- color: "#121212",
439
- icon: "icons/icon-web.svg",
440
- label: "Website",
441
- urlPrefix: "",
442
- ensText: ["url", "website"],
443
- system: exports.PlatformSystem.web2,
444
- },
445
- ],
446
- [
447
- exports.PlatformType.linkedin,
448
- {
449
- color: "#195DB4",
450
- icon: "icons/icon-linkedin.svg",
451
- label: "LinkedIn",
452
- ensText: ["com.linkedin", "linkedin"],
453
- urlPrefix: "https://www.linkedin.com/in/",
454
- system: exports.PlatformSystem.web2,
455
- },
456
- ],
457
- [
458
- exports.PlatformType.dns,
459
- {
460
- color: "#000000",
461
- icon: "icons/icon-web.svg",
462
- label: "DNS",
463
- urlPrefix: "https://",
464
- system: exports.PlatformSystem.web2,
465
- },
466
- ],
467
- [
468
- exports.PlatformType.tron,
469
- {
470
- color: "#EB0029",
471
- icon: "icons/icon-tron.svg",
472
- label: "Tron",
473
- urlPrefix: "https://tronscan.org/#/address/",
474
- system: exports.PlatformSystem.web3,
475
- },
476
- ],
477
- [
478
- exports.PlatformType.hey,
479
- {
480
- color: "#E84F64",
481
- icon: "icons/icon-hey.svg",
482
- label: "Hey",
483
- urlPrefix: "https://hey.xyz/u/",
484
- system: exports.PlatformSystem.web3,
485
- },
486
- ],
487
- [
488
- exports.PlatformType.facebook,
489
- {
490
- color: "#385898",
491
- icon: "icons/icon-facebook.svg",
492
- label: "Facebook",
493
- urlPrefix: "https://www.facebook.com/",
494
- ensText: ["com.facebook", "facebook"],
495
- system: exports.PlatformSystem.web2,
496
- },
497
- ],
498
- [
499
- exports.PlatformType.threads,
500
- {
501
- color: "#000000",
502
- icon: "icons/icon-threads.svg",
503
- label: "Threads",
504
- urlPrefix: "https://www.threads.net/",
505
- system: exports.PlatformSystem.web2,
506
- },
507
- ],
508
- [
509
- exports.PlatformType.whatsapp,
510
- {
511
- color: "#25d366",
512
- icon: "icons/icon-whatsapp.svg",
513
- label: "WhatsApp",
514
- urlPrefix: "https://wa.me/",
515
- ensText: ["com.whatsapp", "whatsapp"],
516
- system: exports.PlatformSystem.web2,
517
- },
518
- ],
519
- [
520
- exports.PlatformType.youtube,
521
- {
522
- color: "#FF0000",
523
- icon: "icons/icon-youtube.svg",
524
- label: "Youtube",
525
- urlPrefix: "https://www.youtube.com/",
526
- ensText: ["com.youtube", "youtube"],
527
- system: exports.PlatformSystem.web2,
528
- },
529
- ],
530
- [
531
- exports.PlatformType.tiktok,
532
- {
533
- color: "#000000",
534
- icon: "icons/icon-tiktok.svg",
535
- label: "TikTok",
536
- urlPrefix: "https://www.tiktok.com/@",
537
- system: exports.PlatformSystem.web2,
538
- },
539
- ],
540
- [
541
- exports.PlatformType.bilibili,
542
- {
543
- color: "#00aeec",
544
- icon: "icons/icon-bilibili.svg",
545
- label: "Bilibili",
546
- urlPrefix: "https://www.bilibili.com/",
547
- system: exports.PlatformSystem.web2,
548
- },
549
- ],
550
- [
551
- exports.PlatformType.medium,
552
- {
553
- color: "#000000",
554
- icon: "icons/icon-medium.svg",
555
- label: "Medium",
556
- urlPrefix: "https://medium.com/",
557
- system: exports.PlatformSystem.web2,
558
- },
559
- ],
560
- [
561
- exports.PlatformType.mirror,
562
- {
563
- color: "#007aff",
564
- icon: "icons/icon-mirror.svg",
565
- label: "Mirror",
566
- urlPrefix: "https://mirror.xyz/",
567
- system: exports.PlatformSystem.web3,
568
- },
569
- ],
570
- [
571
- exports.PlatformType.zerion,
572
- {
573
- color: "#3560E5",
574
- icon: "icons/icon-zerion.svg",
575
- label: "Zerion",
576
- system: exports.PlatformSystem.web3,
577
- },
578
- ],
579
- [
580
- exports.PlatformType.aave,
581
- {
582
- color: "#9896FF",
583
- icon: "icons/icon-aave.svg",
584
- label: "AAVE",
585
- system: exports.PlatformSystem.web3,
586
- },
587
- ],
588
- [
589
- exports.PlatformType.rainbow,
590
- {
591
- color: "#000000",
592
- icon: "icons/icon-rainbow.svg",
593
- label: "Rainbow",
594
- system: exports.PlatformSystem.web3,
595
- },
596
- ],
597
- [
598
- exports.PlatformType.bluesky,
599
- {
600
- color: "#0085ff",
601
- icon: "icons/icon-bluesky.svg",
602
- label: "Bluesky",
603
- urlPrefix: "https://bsky.app/profile/",
604
- ensText: ["app.bsky", "bluesky"],
605
- system: exports.PlatformSystem.web3,
606
- },
607
- ],
608
- [
609
- exports.PlatformType.nostr,
610
- {
611
- color: "#5E287D",
612
- icon: "icons/icon-nostr.svg",
613
- label: "Nostr",
614
- urlPrefix: "https://app.coracle.social/",
615
- ensText: ["nostr"],
616
- system: exports.PlatformSystem.web2,
617
- },
618
- ],
619
- [
620
- exports.PlatformType.poap,
621
- {
622
- color: "#5E58A5",
623
- icon: "icons/icon-poap.svg",
624
- label: "POAP",
625
- urlPrefix: "https://app.poap.xyz/scan/",
626
- system: exports.PlatformSystem.web3,
627
- },
628
- ],
629
- [
630
- exports.PlatformType.uniswap,
631
- {
632
- color: "#ff007a",
633
- icon: "icons/icon-uniswap.svg",
634
- label: "Uniswap",
635
- urlPrefix: "https://uniswap.org/",
636
- system: exports.PlatformSystem.web3,
637
- },
638
- ],
639
- [
640
- exports.PlatformType.degenscore,
641
- {
642
- color: "#a855f7",
643
- icon: "icons/icon-degenscore.svg",
644
- label: "DegenScore",
645
- urlPrefix: "https://degenscore.com/beacon/",
646
- system: exports.PlatformSystem.web3,
647
- },
648
- ],
649
- [
650
- exports.PlatformType.webacy,
651
- {
652
- color: "#000000",
653
- icon: "icons/icon-webacy.svg",
654
- label: "Webacy",
655
- urlPrefix: "https://dapp.webacy.com/",
656
- system: exports.PlatformSystem.web3,
657
- },
658
- ],
659
- [
660
- exports.PlatformType.firefly,
661
- {
662
- color: "#1A183D",
663
- icon: "icons/icon-firefly.svg",
664
- label: "Firefly",
665
- urlPrefix: "https://firefly.social/",
666
- system: exports.PlatformSystem.web3,
667
- },
668
- ],
669
- [
670
- exports.PlatformType.solana,
671
- {
672
- color: "#9945FF",
673
- icon: "icons/icon-solana.svg",
674
- label: "Solana",
675
- urlPrefix: "https://solscan.io/address/",
676
- editUrlPrefix: "https://www.sns.id/domain?domain={name}",
677
- system: exports.PlatformSystem.web3,
678
- },
679
- ],
680
- [
681
- exports.PlatformType.sns,
682
- {
683
- color: "#6363E1",
684
- icon: "icons/icon-sns.svg",
685
- label: "SNS",
686
- description: "Solana Name Service (SNS and .sol domain)",
687
- urlPrefix: "https://www.sns.id/search?search=",
688
- registerlink: "https://www.sns.id/search?search={name}",
689
- editUrlPrefix: "https://www.sns.id/domain?domain={name}",
690
- system: exports.PlatformSystem.web3,
691
- },
692
- ],
693
- [
694
- exports.PlatformType.mstdnjp,
695
- {
696
- color: "#595aff",
697
- icon: "icons/icon-mastodon.svg",
698
- label: "mstdn.jp",
699
- urlPrefix: "https://mstdn.jp/@",
700
- system: exports.PlatformSystem.web3,
701
- },
702
- ],
703
- [
704
- exports.PlatformType.lobsters,
705
- {
706
- color: "#ac130d",
707
- icon: "icons/icon-lobsters.svg",
708
- label: "Lobsters",
709
- urlPrefix: "https://lobste.rs/~",
710
- system: exports.PlatformSystem.web2,
711
- },
712
- ],
713
- [
714
- exports.PlatformType.hackernews,
715
- {
716
- color: "#ff6600",
717
- icon: "icons/icon-hackernews.svg",
718
- label: "Hacker News",
719
- urlPrefix: "https://news.ycombinator.com/user?id=",
720
- system: exports.PlatformSystem.web2,
721
- },
722
- ],
723
- [
724
- exports.PlatformType.crossbell,
725
- {
726
- color: "#FFCF55",
727
- icon: "icons/icon-crossbell.svg",
728
- label: "Crossbell",
729
- urlPrefix: "https://crossbell.io/@",
730
- registerlink: "https://crossbell.io",
731
- system: exports.PlatformSystem.web3,
732
- },
733
- ],
734
- [
735
- exports.PlatformType.minds,
736
- {
737
- color: "#f7d354",
738
- icon: "icons/icon-minds.svg",
739
- label: "Minds",
740
- urlPrefix: "https://www.minds.com/",
741
- system: exports.PlatformSystem.web2,
742
- },
743
- ],
744
- [
745
- exports.PlatformType.paragraph,
746
- {
747
- color: "#2563eb",
748
- icon: "icons/icon-paragraph.svg",
749
- label: "Paragraph",
750
- urlPrefix: "https://paragraph.xyz/",
751
- system: exports.PlatformSystem.web3,
752
- },
753
- ],
754
- [
755
- exports.PlatformType.genome,
756
- {
757
- color: "#6DD85D",
758
- icon: "icons/icon-gnosis.svg",
759
- label: "Genome",
760
- urlPrefix: "https://genomedomains.com/name/",
761
- registerlink: "https://space.id/tld/14/domains?query={name}",
762
- system: exports.PlatformSystem.web3,
763
- },
764
- ],
765
- [
766
- exports.PlatformType.gnosis,
767
- {
768
- color: "#1c352a",
769
- icon: "icons/icon-gnosis.svg",
770
- label: "Gnosis",
771
- urlPrefix: "https://gnosisscan.io/address/",
772
- system: exports.PlatformSystem.web3,
773
- },
774
- ],
775
- [
776
- exports.PlatformType.clusters,
777
- {
778
- color: "#f0555d",
779
- icon: "icons/icon-clusters.svg",
780
- label: "Clusters",
781
- urlPrefix: "https://clusters.xyz/",
782
- registerlink: "https://clusters.xyz/register/{name}",
783
- system: exports.PlatformSystem.web3,
784
- },
785
- ],
786
- [
787
- exports.PlatformType.guild,
788
- {
789
- color: "#6062eb",
790
- icon: "icons/icon-guild.svg",
791
- label: "Guild",
792
- urlPrefix: "https://guild.xyz/",
793
- system: exports.PlatformSystem.web2,
794
- },
795
- ],
796
- [
797
- exports.PlatformType.ton,
798
- {
799
- color: "#0098EA",
800
- icon: "icons/icon-ton.svg",
801
- label: "TON",
802
- urlPrefix: "https://tonscan.org/address/",
803
- system: exports.PlatformSystem.web3,
804
- },
805
- ],
806
- [
807
- exports.PlatformType.snapshot,
808
- {
809
- color: "#ffb503",
810
- icon: "icons/icon-snapshot.svg",
811
- label: "Snapshot",
812
- urlPrefix: "https://snapshot.org/",
813
- system: exports.PlatformSystem.web3,
814
- },
815
- ],
816
- [
817
- exports.PlatformType.coingecko,
818
- {
819
- color: "#4BCC00",
820
- icon: "icons/icon-coingecko.svg",
821
- label: "CoinGecko",
822
- urlPrefix: "https://www.coingecko.com/en/coins/",
823
- system: exports.PlatformSystem.web2,
824
- },
825
- ],
826
- [
827
- exports.PlatformType.gitcoin,
828
- {
829
- color: "#4A47D3",
830
- icon: "icons/icon-gitcoin.svg",
831
- label: "Gitcoin Passport",
832
- urlPrefix: "https://passport.gitcoin.co/",
833
- system: exports.PlatformSystem.web3,
834
- },
835
- ],
836
- [
837
- exports.PlatformType.humanpassport,
838
- {
839
- color: "#006b57",
840
- icon: "icons/icon-humanpassport.svg",
841
- label: "Human Passport",
842
- urlPrefix: "https://passport.human.tech/",
843
- system: exports.PlatformSystem.web3,
844
- },
845
- ],
846
- [
847
- exports.PlatformType.talent,
848
- {
849
- color: "#715AE4",
850
- icon: "icons/icon-talent.svg",
851
- label: "Talent",
852
- urlPrefix: "https://passport.talentprotocol.com/profile/",
853
- system: exports.PlatformSystem.web3,
854
- },
855
- ],
856
- [
857
- exports.PlatformType.doge,
858
- {
859
- color: "#dfc66d",
860
- icon: "icons/icon-doge.svg",
861
- label: "Dogecoin",
862
- urlPrefix: "https://dogechain.info/address/",
863
- system: exports.PlatformSystem.web3,
864
- },
865
- ],
866
- [
867
- exports.PlatformType.bsc,
868
- {
869
- color: "#f0b90b",
870
- icon: "icons/icon-bsc.svg",
871
- label: "Binance Smart Chain",
872
- urlPrefix: "https://bscscan.com/address/",
873
- system: exports.PlatformSystem.web3,
874
- },
875
- ],
876
- [
877
- exports.PlatformType.aptos,
878
- {
879
- color: "#6fe0b2",
880
- icon: "icons/icon-aptos.svg",
881
- label: "Aptos",
882
- urlPrefix: "https://explorer.aptoslabs.com/account/",
883
- system: exports.PlatformSystem.web3,
884
- },
885
- ],
886
- [
887
- exports.PlatformType.near,
888
- {
889
- color: "#000000",
890
- icon: "icons/icon-near.svg",
891
- label: "NEAR Protocol",
892
- urlPrefix: "https://nearblocks.io/address/",
893
- registerlink: "https://app.mynearwallet.com/create/?name={name}",
894
- system: exports.PlatformSystem.web3,
895
- },
896
- ],
897
- [
898
- exports.PlatformType.stacks,
899
- {
900
- color: "#725DF6",
901
- icon: "icons/icon-stacks.svg",
902
- label: "Stacks",
903
- urlPrefix: "https://explorer.hiro.so/address/",
904
- system: exports.PlatformSystem.web3,
905
- },
906
- ],
907
- [
908
- exports.PlatformType.cosmos,
909
- {
910
- color: "#000000",
911
- icon: "icons/icon-cosmos.svg",
912
- label: "Cosmos",
913
- urlPrefix: "https://www.mintscan.io/cosmos/account/",
914
- system: exports.PlatformSystem.web3,
915
- },
916
- ],
917
- [
918
- exports.PlatformType.zeta,
919
- {
920
- color: "#005741",
921
- icon: "icons/icon-zeta.svg",
922
- label: "Zeta Name Service",
923
- urlPrefix: "https://explorer.zetachain.com/address/",
924
- registerlink: "https://space.id/tld/11/domains?query={name}",
925
- system: exports.PlatformSystem.web3,
926
- },
927
- ],
928
- [
929
- exports.PlatformType.mode,
930
- {
931
- color: "#E5FD52",
932
- icon: "icons/icon-mode.svg",
933
- label: "Mode Name Service",
934
- urlPrefix: "https://explorer.mode.network/address/",
935
- registerlink: "https://space.id/tld/6/domains?query={name}",
936
- system: exports.PlatformSystem.web3,
937
- },
938
- ],
939
- [
940
- exports.PlatformType.arbitrum,
941
- {
942
- color: "#2949d4",
943
- icon: "icons/icon-arbitrum.svg",
944
- label: ".arb Name Service",
945
- urlPrefix: "https://arbiscan.io/address/",
946
- registerlink: "https://space.id/tld/2/domains?query={name}",
947
- system: exports.PlatformSystem.web3,
948
- },
949
- ],
950
- [
951
- exports.PlatformType.scroll,
952
- {
953
- color: "#b78544",
954
- icon: "icons/icon-scroll.svg",
955
- label: "Scroll",
956
- urlPrefix: "https://scrollscan.com/address/",
957
- system: exports.PlatformSystem.web3,
958
- },
959
- ],
960
- [
961
- exports.PlatformType.taiko,
962
- {
963
- color: "#E81899",
964
- icon: "icons/icon-taiko.svg",
965
- label: "DotTaiko Name Service",
966
- urlPrefix: "https://taikoscan.io/address/",
967
- registerlink: "https://space.id/tld/16/domains?query={name}",
968
- system: exports.PlatformSystem.web3,
969
- },
970
- ],
971
- [
972
- exports.PlatformType.mint,
973
- {
974
- color: "#00A57C",
975
- icon: "icons/icon-mint.svg",
976
- label: "Mint Name Service",
977
- urlPrefix: "https://explorer.mintchain.io/address/",
978
- registerlink: "https://space.id/tld/18/domains?query={name}",
979
- system: exports.PlatformSystem.web3,
980
- },
981
- ],
982
- [
983
- exports.PlatformType.zkfair,
984
- {
985
- color: "#D43F36",
986
- icon: "icons/icon-zkfair.svg",
987
- label: "zkFair",
988
- urlPrefix: "https://scan.zkfair.io/address/",
989
- registerlink: "https://space.id/tld/8/domains?query={name}",
990
- system: exports.PlatformSystem.web3,
991
- },
992
- ],
993
- [
994
- exports.PlatformType.manta,
995
- {
996
- color: "#0091ff",
997
- icon: "icons/icon-manta.svg",
998
- label: "Manta Name Service",
999
- urlPrefix: "https://pacific-explorer.manta.network/address/",
1000
- registerlink: "https://space.id/tld/3/domains?query={name}",
1001
- system: exports.PlatformSystem.web3,
1002
- },
1003
- ],
1004
- [
1005
- exports.PlatformType.lightlink,
1006
- {
1007
- color: "#00BFFF",
1008
- icon: "icons/icon-lightlink.svg",
1009
- label: "LightLink Name Service",
1010
- urlPrefix: "https://phoenix.lightlink.io/address/",
1011
- registerlink: "https://space.id/tld/9/domains?query={name}",
1012
- system: exports.PlatformSystem.web3,
1013
- },
1014
- ],
1015
- [
1016
- exports.PlatformType.merlin,
1017
- {
1018
- color: "#5A32A3",
1019
- icon: "icons/icon-merlin.svg",
1020
- label: "Merlin Name Service",
1021
- urlPrefix: "https://scan.merlinchain.io/address/",
1022
- registerlink: "https://space.id/tld/12/domains?query={name}",
1023
- system: exports.PlatformSystem.web3,
1024
- },
1025
- ],
1026
- [
1027
- exports.PlatformType.alienx,
1028
- {
1029
- color: "#D5F462",
1030
- icon: "icons/icon-alienx.svg",
1031
- label: "AlienX Name Service",
1032
- urlPrefix: "https://explorer.alienxchain.io/address/",
1033
- registerlink: "https://space.id/tld/17/domains?query={name}",
1034
- system: exports.PlatformSystem.web3,
1035
- },
1036
- ],
1037
- [
1038
- exports.PlatformType.edgeless,
1039
- {
1040
- color: "#a0eb67",
1041
- icon: "icons/icon-edgeless.svg",
1042
- label: "Edgeless",
1043
- urlPrefix: "https://explorer.edgeless.network/address/",
1044
- registerlink: "",
1045
- system: exports.PlatformSystem.web3,
1046
- },
1047
- ],
1048
- [
1049
- exports.PlatformType.tomo,
1050
- {
1051
- color: "#DE3A7E",
1052
- icon: "icons/icon-tomo.svg",
1053
- label: "Tomo Name Service",
1054
- registerlink: "https://space.id/tld/10/domains?query={name}",
1055
- system: exports.PlatformSystem.web3,
1056
- },
1057
- ],
1058
- [
1059
- exports.PlatformType.ailayer,
1060
- {
1061
- color: "#A283FF",
1062
- icon: "icons/icon-ailayer.svg",
1063
- label: "AILayer Name Service",
1064
- urlPrefix: "https://mainnet-explorer.ailayer.xyz/address/",
1065
- registerlink: "https://space.id/tld/19/domains?query={name}",
1066
- system: exports.PlatformSystem.web3,
1067
- },
1068
- ],
1069
- [
1070
- exports.PlatformType.philand,
1071
- {
1072
- color: "#8080F7",
1073
- icon: "icons/icon-phi.svg",
1074
- label: "Phi",
1075
- urlPrefix: "https://land.philand.xyz/",
1076
- system: exports.PlatformSystem.web3,
1077
- },
1078
- ],
1079
- [
1080
- exports.PlatformType.efp,
1081
- {
1082
- color: "#FFE067",
1083
- icon: "icons/icon-efp.svg",
1084
- label: "Ethereum Follow Protocol",
1085
- urlPrefix: "https://ethfollow.xyz/",
1086
- system: exports.PlatformSystem.web3,
1087
- },
1088
- ],
1089
- [
1090
- exports.PlatformType.gravity,
1091
- {
1092
- color: "#FFAC43",
1093
- icon: "icons/icon-gravity.svg",
1094
- label: "Gravity Name Service",
1095
- registerlink: "https://space.id/tld/23/domains?query={name}",
1096
- system: exports.PlatformSystem.web3,
1097
- },
1098
- ],
1099
- ]);
1100
-
1101
- /**
1102
- * Resolves an identity string to a platform and identifier
1103
- * @param input The identity to resolve
1104
- * @returns A formatted identity string or null if invalid
1105
- */
1106
- const resolveIdentity = (input) => {
1107
- if (!input)
1108
- return null;
1109
- const parts = input.split(",");
1110
- let platform;
1111
- let identity;
1112
- if (parts.length === 2) {
1113
- // Format is already "platform,identity"
1114
- platform = parts[0];
1115
- identity = prettify(parts[1]);
1116
- }
1117
- else if (parts.length === 1) {
1118
- // Auto-detect platform from the identity string
1119
- platform = detectPlatform(input);
1120
- identity = prettify(input);
1121
- }
1122
- else {
1123
- return null;
1124
- }
1125
- if (!isSupportedPlatform(platform) || !identity)
1126
- return null;
1127
- // Normalize case except for case-sensitive identities
1128
- const normalizedIdentity = REGEX.LOWERCASE_EXEMPT.test(identity)
1129
- ? identity
1130
- : identity.toLowerCase();
1131
- return `${platform},${normalizedIdentity}`;
1132
- };
1133
- /**
1134
- * Clean up and standardize identity format
1135
- */
1136
- const prettify = (input) => {
1137
- if (!input)
1138
- return "";
1139
- if (input.endsWith(".twitter"))
1140
- return input.replace(".twitter", "");
1141
- if (input.endsWith(".nextid"))
1142
- return input.replace(".nextid", "");
1143
- if (input.startsWith("farcaster,#"))
1144
- return input.replace(/^(farcaster),/, "");
1145
- if (input.endsWith(".farcaster") ||
1146
- input.endsWith(".fcast.id") ||
1147
- input.endsWith(".farcaster.eth")) {
1148
- return input.replace(/(\.farcaster|\.fcast\.id|\.farcaster\.eth)$/, "");
1149
- }
1150
- if (input.endsWith(".base") || input.endsWith(".linea")) {
1151
- return input.split(".")[0] + "." + input.split(".").pop() + ".eth";
1152
- }
1153
- return input;
1154
- };
1155
- /**
1156
- * Check if the platform is supported for API queries
1157
- */
1158
- const isSupportedPlatform = (platform) => {
1159
- if (!platform)
1160
- return false;
1161
- return Object.values(exports.PlatformType).includes(platform);
1162
- };
1163
- /**
1164
- * Detect platform from identity string based on regex patterns
1165
- */
1166
- const detectPlatform = (term) => {
1167
- if (term.endsWith(".farcaster.eth"))
1168
- return exports.PlatformType.farcaster;
1169
- const platformMap = [
1170
- [REGEX.BASENAMES, exports.PlatformType.basenames],
1171
- [REGEX.LINEA, exports.PlatformType.linea],
1172
- [REGEX.ENS, exports.PlatformType.ens],
1173
- [REGEX.ETH_ADDRESS, exports.PlatformType.ethereum],
1174
- [REGEX.LENS, exports.PlatformType.lens],
1175
- [REGEX.UNSTOPPABLE_DOMAINS, exports.PlatformType.unstoppableDomains],
1176
- [REGEX.SPACE_ID, exports.PlatformType.space_id],
1177
- [REGEX.DOTBIT, exports.PlatformType.dotbit],
1178
- [REGEX.SNS, exports.PlatformType.sns],
1179
- [REGEX.BTC_ADDRESS, exports.PlatformType.bitcoin],
1180
- [REGEX.SOLANA_ADDRESS, exports.PlatformType.solana],
1181
- [REGEX.FARCASTER, exports.PlatformType.farcaster],
1182
- [REGEX.TWITTER, exports.PlatformType.twitter],
1183
- [REGEX.NEXT_ID, exports.PlatformType.nextid],
1184
- ];
1185
- for (const [regex, platformType] of platformMap) {
1186
- if (regex.test(term)) {
1187
- return platformType;
1188
- }
1189
- }
1190
- // Default fallback
1191
- return term.includes(".") ? exports.PlatformType.ens : exports.PlatformType.farcaster;
1192
- };
1193
- /**
1194
- * Get API key from various environment sources or user provided value
1195
- */
1196
- const getApiKey = (userProvidedKey) => {
1197
- return (userProvidedKey ||
1198
- process.env.WEB3BIO_API_KEY ||
1199
- process.env.REACT_APP_WEB3BIO_API_KEY ||
1200
- process.env.NEXT_PUBLIC_WEB3BIO_API_KEY ||
1201
- process.env.VITE_WEB3BIO_API_KEY);
1202
- };
1203
-
1204
- /**
1205
- * Constructs the API URL based on query parameters
1206
- */
1207
- const buildApiUrl = (identity, endpoint, universal) => {
1208
- // Handle batch requests
1209
- if (Array.isArray(identity)) {
1210
- return `${API_ENDPOINT}/${endpoint}/batch/${encodeURIComponent(JSON.stringify(identity))}`;
1211
- }
1212
- // Handle universal queries
1213
- if (universal) {
1214
- return `${API_ENDPOINT}/${endpoint}/${identity}`;
1215
- }
1216
- // Handle platform-specific queries
1217
- const resolvedId = resolveIdentity(identity);
1218
- if (!resolvedId)
1219
- return null;
1220
- // Domain endpoint uses resolved ID directly
1221
- if (endpoint === exports.QueryEndpoint.DOMAIN) {
1222
- return `${API_ENDPOINT}/${endpoint}/${resolvedId}`;
1223
- }
1224
- // Other endpoints need platform/handle split
1225
- const [platform, handle] = resolvedId.split(",");
1226
- return `${API_ENDPOINT}/${endpoint}/${platform}/${handle}`;
1227
- };
1228
- // Generate a stable cache key for this request
1229
- const getCacheKey = (identity, endpoint, universal) => {
1230
- return JSON.stringify({
1231
- identity,
1232
- endpoint,
1233
- universal,
1234
- });
1235
- };
1236
- // Create a cache to store results across component instances and re-renders
1237
- const globalRequestCache = new Map();
1238
- /**
1239
- * Core hook for querying Web3.bio Profile API
1240
- */
1241
- function useBaseQuery(identity, endpoint, universal = false, options = {}) {
1242
- const { apiKey: userApiKey, enabled = true } = options;
1243
- const apiKey = getApiKey(userApiKey);
1244
- const [data, setData] = react.useState(() => {
1245
- // Initialize state from cache if available
1246
- const cacheKey = getCacheKey(identity, endpoint, universal);
1247
- return globalRequestCache.get(cacheKey) || null;
1248
- });
1249
- const [isLoading, setIsLoading] = react.useState(false);
1250
- const [error, setError] = react.useState(null);
1251
- // Use ref to track in-flight requests and prevent race conditions
1252
- const requestIdRef = react.useRef(0);
1253
- const prevParamsRef = react.useRef("");
1254
- // Current request parameters as a string for comparison
1255
- const currentParams = JSON.stringify({
1256
- identity,
1257
- endpoint,
1258
- universal,
1259
- });
1260
- react.useEffect(() => {
1261
- // Don't run the query if disabled or no identity
1262
- if (!enabled || !identity)
1263
- return;
1264
- // Skip if parameters haven't changed
1265
- if (currentParams === prevParamsRef.current && data !== null) {
1266
- return;
1267
- }
1268
- // Update previous parameters
1269
- prevParamsRef.current = currentParams;
1270
- // Generate cache key
1271
- const cacheKey = getCacheKey(identity, endpoint, universal);
1272
- // Check if we already have cached data
1273
- const cachedData = globalRequestCache.get(cacheKey);
1274
- if (cachedData) {
1275
- setData(cachedData);
1276
- return;
1277
- }
1278
- // Increment request ID to track the latest request
1279
- const requestId = ++requestIdRef.current;
1280
- setIsLoading(true);
1281
- setError(null);
1282
- const fetchData = async () => {
1283
- try {
1284
- const url = buildApiUrl(identity, endpoint, universal);
1285
- if (!url) {
1286
- throw new Error(exports.ErrorMessages.INVALID_IDENTITY);
1287
- }
1288
- const headers = apiKey ? { "x-api-key": apiKey } : {};
1289
- const fetchOptions = {
1290
- method: "GET",
1291
- headers,
1292
- };
1293
- const response = await fetch(url, fetchOptions);
1294
- if (!response.ok) {
1295
- throw new Error(`API error: ${response.status}`);
1296
- }
1297
- const responseData = await response.json();
1298
- if (responseData === null || responseData === void 0 ? void 0 : responseData.error) {
1299
- throw new Error(responseData.error);
1300
- }
1301
- if (requestId === requestIdRef.current) {
1302
- globalRequestCache.set(cacheKey, responseData);
1303
- setData(responseData);
1304
- setIsLoading(false);
1305
- }
1306
- }
1307
- catch (err) {
1308
- if (requestId === requestIdRef.current) {
1309
- setError(err instanceof Error ? err : new Error(String(err)));
1310
- setIsLoading(false);
1311
- }
1312
- }
1313
- };
1314
- fetchData();
1315
- }, [currentParams, enabled]);
1316
- return { data, isLoading, error };
1317
- }
1318
-
1319
- /**
1320
- * Hook to query Web3.bio profile data by identity
1321
- *
1322
- * @param identity - Identity string
1323
- * @param options - Optional configuration options
1324
- * @returns Object containing profile data, loading state, and any errors
1325
- *
1326
- * @example
1327
- * // Query by ENS name
1328
- * const { data, isLoading, error } = useProfile("vitalik.eth");
1329
- *
1330
- * // Query with platform specification
1331
- * const { data } = useProfile("farcaster,dwr");
1332
- */
1333
- function useProfile(identity, options = {}) {
1334
- return useBaseQuery(identity, exports.QueryEndpoint.PROFILE, false, options);
1335
- }
1336
-
1337
- /**
1338
- * Hook to query Web3.bio name service (NS) data by identity
1339
- *
1340
- * @param identity - Identity string
1341
- * @param options - Optional configuration options
1342
- * @returns Object containing NS data, loading state, and any errors
1343
- *
1344
- * @example
1345
- * // Query by ENS name
1346
- * const { data, isLoading, error } = useNS("vitalik.eth");
1347
- *
1348
- * // Query by Ethereum address
1349
- * const { data } = useNS("0x123...");
1350
- */
1351
- function useNS(identity, options = {}) {
1352
- return useBaseQuery(identity, exports.QueryEndpoint.NS, false, options);
1353
- }
1354
-
1355
- /**
1356
- * Hook to query Web3.bio profile data using universal identity lookup
1357
- *
1358
- * @param identity - Identity string
1359
- * @param options - Optional configuration options
1360
- * @returns Object containing profile data, loading state, and any errors
1361
- *
1362
- * @example
1363
- * // Query by ENS name with universal lookup
1364
- * const { data, isLoading, error } = useUniversalProfile("vitalik.eth");
1365
- *
1366
- * // Query by any identity type with universal lookup
1367
- * const { data } = useUniversalProfile("dwr.farcaster");
1368
- */
1369
- function useUniversalProfile(identity, options = {}) {
1370
- return useBaseQuery(identity, exports.QueryEndpoint.PROFILE, true, options);
1371
- }
1372
-
1373
- /**
1374
- * Hook to query Web3.bio name service (NS) data using universal identity lookup
1375
- *
1376
- * @param identity - Identity string
1377
- * @param options - Optional configuration options
1378
- * @returns Object containing NS data, loading state, and any errors
1379
- *
1380
- * @example
1381
- * // Query by ENS name with universal lookup
1382
- * const { data, isLoading, error } = useUniversalNS("vitalik.eth");
1383
- *
1384
- * // Query by any identity type with universal lookup
1385
- * const { data } = useUniversalNS("dwr.farcaster");
1386
- */
1387
- function useUniversalNS(identity, options = {}) {
1388
- return useBaseQuery(identity, exports.QueryEndpoint.NS, true, options);
1389
- }
1390
-
1391
- /**
1392
- * Hook to query Web3.bio profile data using batch identity lookup
1393
- *
1394
- * @param identity - array of Identity string
1395
- * @param options - Optional configuration options
1396
- * @returns Object containing profile data, loading state, and any errors
1397
- *
1398
- * @example
1399
- * // Query by any identity type with batch lookup
1400
- * const { data } = useBatchProfile(["dwr.farcaster","ens,vitalik.eth","sujiyan.eth","stani.lens"]);
1401
- */
1402
- function useBatchProfile(identity, options = {}) {
1403
- return useBaseQuery(identity, exports.QueryEndpoint.PROFILE, false, options);
1404
- }
1405
-
1406
- /**
1407
- * Hook to query Web3.bio profile data using batch(NS) identity lookup
1408
- *
1409
- * @param identity - array of Identity string
1410
- * @param options - Optional configuration options
1411
- * @returns Object containing profile data, loading state, and any errors
1412
- *
1413
- * @example
1414
- * // Query by any identity type with batch lookup
1415
- * const { data } = useBatchNS(["dwr.farcaster","ens,vitalik.eth","sujiyan.eth","stani.lens"]);
1416
- */
1417
- function useBatchNS(identity, options = {}) {
1418
- return useBaseQuery(identity, exports.QueryEndpoint.NS, false, options);
1419
- }
1420
-
1421
- /**
1422
- * Hook to query Web3.bio domain data by identity
1423
- *
1424
- * @param identity - Identity string
1425
- * @param options - Optional configuration options
1426
- * @returns Object containing domain data, loading state, and any errors
1427
- *
1428
- * @example
1429
- * // Query by ENS name
1430
- * const { data, isLoading, error } = useDomain("vitalik.eth");
1431
- *
1432
- * // Query by domain name with platform
1433
- * const { data } = useDomain("ens,vitalik.eth");
1434
- */
1435
- function useDomain(identity, options = {}) {
1436
- return useBaseQuery(identity, exports.QueryEndpoint.DOMAIN, false, options);
1437
- }
1438
-
1439
- exports.SourceType = void 0;
1440
- (function (SourceType) {
1441
- SourceType["ethereum"] = "ethereum";
1442
- SourceType["ens"] = "ens";
1443
- SourceType["twitter"] = "twitter";
1444
- SourceType["keybase"] = "keybase";
1445
- SourceType["nextid"] = "nextid";
1446
- SourceType["rss3"] = "rss3";
1447
- SourceType["dotbit"] = "dotbit";
1448
- SourceType["unstoppabledomains"] = "unstoppabledomains";
1449
- SourceType["lens"] = "lens";
1450
- SourceType["farcaster"] = "farcaster";
1451
- SourceType["space_id"] = "space_id";
1452
- SourceType["crossbell"] = "crossbell";
1453
- SourceType["clusters"] = "clusters";
1454
- SourceType["solana"] = "solana";
1455
- SourceType["sns"] = "sns";
1456
- SourceType["opensea"] = "opensea";
1457
- SourceType["firefly"] = "firefly";
1458
- SourceType["basenames"] = "basenames";
1459
- SourceType["dentity"] = "dentity";
1460
- SourceType["nftd"] = "nftd";
1461
- SourceType["mirror"] = "mirror";
1462
- SourceType["paragraph"] = "paragraph";
1463
- SourceType["foundation"] = "foundation";
1464
- SourceType["rarible"] = "rarible";
1465
- SourceType["soundxyz"] = "soundxyz";
1466
- SourceType["gravity"] = "gravity";
1467
- SourceType["linea"] = "linea";
1468
- SourceType["gmgn"] = "gmgn";
1469
- SourceType["nostr"] = "nostr";
1470
- SourceType["talentprotocol"] = "talentprotocol";
1471
- SourceType["crowdsourcing"] = "crowdsourcing";
1472
- SourceType["particle"] = "particle";
1473
- SourceType["tally"] = "tally";
1474
- SourceType["icebreaker"] = "icebreaker";
1475
- })(exports.SourceType || (exports.SourceType = {}));
1476
- const SOURCE_DATA = {
1477
- [exports.SourceType.ethereum]: {
1478
- name: "Ethereum",
1479
- description: "Ethereum",
1480
- },
1481
- [exports.SourceType.ens]: {
1482
- name: "ENS",
1483
- description: "Ethereum Name Service",
1484
- },
1485
- [exports.SourceType.twitter]: {
1486
- name: "Twitter (X)",
1487
- description: "Twitter (X) social platform",
1488
- },
1489
- [exports.SourceType.keybase]: {
1490
- name: "Keybase",
1491
- description: "Secure messaging and file-sharing",
1492
- },
1493
- [exports.SourceType.nextid]: {
1494
- name: "Next.ID",
1495
- description: "Decentralized identity protocol",
1496
- },
1497
- [exports.SourceType.rss3]: {
1498
- name: "RSS3",
1499
- description: "Open information syndication protocol",
1500
- },
1501
- [exports.SourceType.dotbit]: {
1502
- name: ".bit",
1503
- description: "Decentralized cross-chain identity system",
1504
- },
1505
- [exports.SourceType.unstoppabledomains]: {
1506
- name: "Unstoppable Domains",
1507
- description: "Blockchain domain name provider",
1508
- },
1509
- [exports.SourceType.lens]: {
1510
- name: "Lens",
1511
- description: "Web3 social graph protocol",
1512
- },
1513
- [exports.SourceType.farcaster]: {
1514
- name: "Farcaster",
1515
- description: "Decentralized social network protocol",
1516
- },
1517
- [exports.SourceType.space_id]: {
1518
- name: "SpaceID",
1519
- description: "Multi-chain name service",
1520
- },
1521
- [exports.SourceType.gravity]: {
1522
- name: "Gravity",
1523
- description: "Gravity alpha mainnet name service",
1524
- },
1525
- [exports.SourceType.crossbell]: {
1526
- name: "Crossbell",
1527
- description: "Decentralized publishing protocol",
1528
- },
1529
- [exports.SourceType.clusters]: {
1530
- name: "Clusters",
1531
- description: "On-chain social protocol",
1532
- },
1533
- [exports.SourceType.solana]: {
1534
- name: "Solana",
1535
- description: "High-performance blockchain",
1536
- },
1537
- [exports.SourceType.sns]: {
1538
- name: "SNS",
1539
- description: "Solana Name Service",
1540
- },
1541
- [exports.SourceType.opensea]: {
1542
- name: "OpenSea",
1543
- description: "NFT marketplace",
1544
- },
1545
- [exports.SourceType.firefly]: {
1546
- name: "Firefly",
1547
- description: "Web3 social platform",
1548
- },
1549
- [exports.SourceType.basenames]: {
1550
- name: "Basenames",
1551
- description: "The domain system on Base",
1552
- },
1553
- [exports.SourceType.dentity]: {
1554
- name: "Dentity",
1555
- description: "Digital Credentials",
1556
- },
1557
- [exports.SourceType.nftd]: {
1558
- name: "NF.TD",
1559
- description: "Be your own checkmark",
1560
- },
1561
- [exports.SourceType.mirror]: {
1562
- name: "Mirror",
1563
- description: "Decentralized publishing protocol",
1564
- },
1565
- [exports.SourceType.paragraph]: {
1566
- name: "Paragraph",
1567
- description: "Decentralized publishing protocol",
1568
- },
1569
- [exports.SourceType.foundation]: {
1570
- name: "Foundation",
1571
- description: "NFT marketplace",
1572
- },
1573
- [exports.SourceType.rarible]: {
1574
- name: "Rarible",
1575
- description: "NFT marketplace",
1576
- },
1577
- [exports.SourceType.soundxyz]: {
1578
- name: "Sound.xyz",
1579
- description: "Decentralized audio platform",
1580
- },
1581
- [exports.SourceType.linea]: {
1582
- name: "Linea",
1583
- description: "L2 based on ZK",
1584
- },
1585
- [exports.SourceType.gmgn]: {
1586
- name: "GMGN",
1587
- description: "Web3 social platform",
1588
- },
1589
- [exports.SourceType.nostr]: {
1590
- name: "Nostr",
1591
- description: "Web3 social platform",
1592
- },
1593
- [exports.SourceType.talentprotocol]: {
1594
- name: "Talent",
1595
- description: "Decentralized onchain passport",
1596
- },
1597
- [exports.SourceType.crowdsourcing]: {
1598
- name: "Crowdsourcing",
1599
- description: "Crowdsourcing",
1600
- },
1601
- [exports.SourceType.particle]: {
1602
- name: "Particle",
1603
- description: "Particle",
1604
- },
1605
- [exports.SourceType.tally]: {
1606
- name: "Tally",
1607
- description: "Launch, manage, and grow the value of your token",
1608
- },
1609
- [exports.SourceType.icebreaker]: {
1610
- name: "Icebreaker",
1611
- description: "Open professional network",
1612
- },
1613
- };
1614
-
1615
- // referer SLIP-0044: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
1616
- const CoinType = {
1617
- btc: 0,
1618
- ltc: 2,
1619
- doge: 3,
1620
- dash: 5,
1621
- monacoin: 22,
1622
- eth: 60,
1623
- etc: 61,
1624
- xrp: 145,
1625
- atom: 118,
1626
- rootstock: 137,
1627
- ripple: 144,
1628
- bch: 145,
1629
- bnb: 714,
1630
- xlm: 148,
1631
- rsk: 137,
1632
- eos: 194,
1633
- xem: 43,
1634
- trx: 195,
1635
- xdai: 700,
1636
- matic: 2147483785,
1637
- };
1638
-
1639
- exports.Network = void 0;
1640
- (function (Network) {
1641
- Network["aptos"] = "aptos";
1642
- Network["arbitrum"] = "arbitrum";
1643
- Network["arbitrum_nova"] = "arbitrum_nova";
1644
- Network["arbitrum_one"] = "arbitrum_one";
1645
- Network["apechain"] = "apechain";
1646
- Network["arweave"] = "arweave";
1647
- Network["avalanche"] = "avalanche";
1648
- Network["base"] = "base";
1649
- Network["bitcoin"] = "bitcoin";
1650
- Network["binanceSmartChain"] = "binance-smart-chain";
1651
- Network["bsc"] = "bsc";
1652
- Network["conflux"] = "conflux";
1653
- Network["crossbell"] = "crossbell";
1654
- Network["erc1577"] = "erc1577";
1655
- Network["ethereum"] = "ethereum";
1656
- Network["fantom"] = "fantom";
1657
- Network["farcaster"] = "farcaster";
1658
- Network["flow"] = "flow";
1659
- Network["gnosis"] = "gnosis";
1660
- Network["lens"] = "lens";
1661
- Network["linea"] = "linea";
1662
- Network["mastodon"] = "mastodon";
1663
- Network["optimism"] = "optimism";
1664
- Network["polygon"] = "polygon";
1665
- Network["scroll"] = "scroll";
1666
- Network["snapshot"] = "snapshot";
1667
- Network["solana"] = "solana";
1668
- Network["vsl"] = "vsl";
1669
- Network["xLayer"] = "x-layer";
1670
- Network["zksync_era"] = "zksync_era";
1671
- Network["zora"] = "zora";
1672
- Network["unichain"] = "unichain";
1673
- })(exports.Network || (exports.Network = {}));
1674
- const NETWORK_DATA = {
1675
- [exports.Network.ethereum]: {
1676
- assetPrefix: "https://app.zerion.io/",
1677
- bgColor: "#ebecf8",
1678
- chainId: 1,
1679
- icon: "icons/icon-ethereum.svg",
1680
- key: exports.Network.ethereum,
1681
- label: "Ethereum",
1682
- primaryColor: "#3741ba",
1683
- scanLabel: "Etherscan",
1684
- scanPrefix: "https://etherscan.io/address/",
1685
- scanPrefixTx: "https://etherscan.io/tx/",
1686
- short: "eth",
1687
- },
1688
- [exports.Network.polygon]: {
1689
- bgColor: "#ece5fa",
1690
- chainId: 137,
1691
- icon: "icons/icon-polygon.svg",
1692
- key: exports.Network.polygon,
1693
- label: "Polygon",
1694
- primaryColor: "#7a4add",
1695
- scanLabel: "Polygonscan",
1696
- scanPrefix: "https://polygonscan.com/address/",
1697
- scanPrefixTx: "https://polygonscan.com/tx/",
1698
- short: "matic",
1699
- },
1700
- [exports.Network.avalanche]: {
1701
- bgColor: "#ffefef",
1702
- chainId: 43114,
1703
- icon: "icons/icon-avalanche.svg",
1704
- key: exports.Network.avalanche,
1705
- label: "Avalanche",
1706
- primaryColor: "#e84142",
1707
- scanLabel: "AVASCAN",
1708
- scanPrefix: "https://avascan.info/blockchain/dfk/address/",
1709
- scanPrefixTx: "https://avascan.info/blockchain/x/tx/",
1710
- short: "avax",
1711
- },
1712
- [exports.Network.aptos]: {
1713
- bgColor: "#e9faf3",
1714
- icon: "icons/icon-aptos.svg",
1715
- key: exports.Network.aptos,
1716
- label: "Aptos",
1717
- primaryColor: "#6fe0b2",
1718
- scanLabel: "Aptoscan",
1719
- scanPrefix: "https://aptoscan.com/account/",
1720
- scanPrefixTx: "https://aptoscan.com/transaction/",
1721
- },
1722
- [exports.Network.arbitrum]: {
1723
- bgColor: "#eaedfb",
1724
- chainId: 42161,
1725
- icon: "icons/icon-arbitrum.svg",
1726
- key: exports.Network.arbitrum,
1727
- label: "Arbitrum",
1728
- primaryColor: "#2949d4",
1729
- scanLabel: "Arbitrum One Explorer",
1730
- scanPrefix: "https://arbiscan.io/address/",
1731
- scanPrefixTx: "https://arbiscan.io/tx/",
1732
- short: "arb",
1733
- },
1734
- [exports.Network.arbitrum_one]: {
1735
- bgColor: "#eaedfb",
1736
- chainId: 42161,
1737
- icon: "icons/icon-arbitrum.svg",
1738
- key: exports.Network.arbitrum_one,
1739
- label: "Arbitrum One",
1740
- primaryColor: "#2949d4",
1741
- scanLabel: "Arbitrum One Explorer",
1742
- scanPrefix: "https://arbiscan.io/address/",
1743
- scanPrefixTx: "https://arbiscan.io/tx/",
1744
- short: "arb",
1745
- },
1746
- [exports.Network.arbitrum_nova]: {
1747
- bgColor: "#fdf2ea",
1748
- chainId: 42170,
1749
- icon: "icons/icon-arbitrum.svg",
1750
- key: exports.Network.arbitrum_nova,
1751
- label: "Arbitrum Nova",
1752
- primaryColor: "#ee7c31",
1753
- scanLabel: "Arbitrum Nova Explorer",
1754
- scanPrefix: "https://nova.arbiscan.io/address/",
1755
- scanPrefixTx: "https://nova.arbiscan.io/tx/",
1756
- short: "arb",
1757
- },
1758
- [exports.Network.apechain]: {
1759
- bgColor: "#DEE5FD",
1760
- icon: "icons/icon-apechain.svg",
1761
- key: exports.Network.apechain,
1762
- label: "ApeChain",
1763
- primaryColor: "#2253F1",
1764
- scanLabel: "ApeChain Explorer",
1765
- scanPrefix: "https://apescan.io/address/",
1766
- scanPrefixTx: "https://apescan.io/tx/",
1767
- short: "apechain-mainnet",
1768
- },
1769
- [exports.Network.arweave]: {
1770
- bgColor: "#e1e1e1",
1771
- icon: "icons/icon-arweave.svg",
1772
- key: exports.Network.arweave,
1773
- label: "Arweave",
1774
- primaryColor: "#222326",
1775
- scanLabel: "Arweave Explorer",
1776
- scanPrefix: "https://viewblock.io/arweave/address/",
1777
- scanPrefixTx: "https://viewblock.io/arweave/tx/",
1778
- },
1779
- [exports.Network.bsc]: {
1780
- bgColor: "#fdf3d4",
1781
- chainId: 56,
1782
- icon: "icons/icon-bsc.svg",
1783
- key: exports.Network.bsc,
1784
- label: "BNB Chain",
1785
- primaryColor: "#f0b90b",
1786
- scanLabel: "BscScan",
1787
- scanPrefix: "https://bscscan.com/address/",
1788
- scanPrefixTx: "https://bscscan.com/tx/",
1789
- short: "bsc",
1790
- },
1791
- [exports.Network.binanceSmartChain]: {
1792
- bgColor: "#fdf3d4",
1793
- chainId: 56,
1794
- icon: "icons/icon-bsc.svg",
1795
- key: exports.Network.binanceSmartChain,
1796
- label: "BNB Chain",
1797
- primaryColor: "#f0b90b",
1798
- scanLabel: "BscScan",
1799
- scanPrefix: "https://bscscan.com/address/",
1800
- scanPrefixTx: "https://bscscan.com/tx/",
1801
- short: "bsc",
1802
- },
1803
- [exports.Network.base]: {
1804
- bgColor: "#e9eefe",
1805
- chainId: 8453,
1806
- icon: "icons/icon-base.svg",
1807
- key: exports.Network.base,
1808
- label: "Base",
1809
- primaryColor: "#2151f5",
1810
- scanLabel: "BaseScan",
1811
- scanPrefix: "https://basescan.org/address/",
1812
- scanPrefixTx: "https://basescan.org/tx/",
1813
- short: "base",
1814
- },
1815
- [exports.Network.flow]: {
1816
- bgColor: "#e5fdf3",
1817
- icon: "icons/icon-flow.svg",
1818
- key: exports.Network.flow,
1819
- label: "Flow",
1820
- primaryColor: "#00ef8b",
1821
- scanLabel: "Flow Explorer",
1822
- scanPrefix: "https://evm.flowscan.io/address/",
1823
- scanPrefixTx: "https://evm.flowscan.io/tx/",
1824
- },
1825
- [exports.Network.conflux]: {
1826
- bgColor: "#e8e8ea",
1827
- chainId: 1030,
1828
- icon: "icons/icon-conflux.svg",
1829
- key: exports.Network.conflux,
1830
- label: "Conflux",
1831
- primaryColor: "#1e1e2b",
1832
- scanLabel: "ConfluxScan",
1833
- scanPrefix: "https://www.confluxscan.io/address/cfx:",
1834
- scanPrefixTx: "https://www.confluxscan.io/transaction/",
1835
- },
1836
- [exports.Network.crossbell]: {
1837
- bgColor: "#fef8e9",
1838
- chainId: 3737,
1839
- icon: "icons/icon-crossbell.svg",
1840
- key: exports.Network.crossbell,
1841
- label: "Crossbell",
1842
- primaryColor: "#f7d16a",
1843
- scanLabel: "Crossbell Explorer",
1844
- scanPrefix: "https://scan.crossbell.io/address/",
1845
- scanPrefixTx: "https://scan.crossbell.io/tx/",
1846
- },
1847
- [exports.Network.fantom]: {
1848
- bgColor: "#e6e7fd",
1849
- chainId: 250,
1850
- icon: "icons/icon-fantom.svg",
1851
- key: exports.Network.fantom,
1852
- label: "Fantom",
1853
- primaryColor: "#0810ef",
1854
- scanLabel: "FTMScan",
1855
- scanPrefix: "https://ftmscan.com/address/",
1856
- scanPrefixTx: "https://ftmscan.com/tx/",
1857
- },
1858
- [exports.Network.farcaster]: {
1859
- bgColor: "#efeaf8",
1860
- icon: "icons/icon-farcaster.svg",
1861
- key: exports.Network.farcaster,
1862
- label: "Farcaster",
1863
- primaryColor: "#432C8D",
1864
- scanPrefix: "",
1865
- },
1866
- [exports.Network.optimism]: {
1867
- bgColor: "#fdebea",
1868
- chainId: 10,
1869
- icon: "icons/icon-optimism.svg",
1870
- key: exports.Network.optimism,
1871
- label: "Optimism",
1872
- primaryColor: "#ea3431",
1873
- scanLabel: "OP Explorer",
1874
- scanPrefix: "https://optimistic.etherscan.io/address/",
1875
- scanPrefixTx: "https://optimistic.etherscan.io/tx/",
1876
- short: "op",
1877
- },
1878
- [exports.Network.zksync_era]: {
1879
- bgColor: "#ebf0fe",
1880
- chainId: 324,
1881
- icon: "icons/icon-zksync.svg",
1882
- key: exports.Network.zksync_era,
1883
- label: "zkSync Era",
1884
- primaryColor: "#3567f6",
1885
- scanLabel: "zkSync Era Explorer",
1886
- scanPrefix: "https://explorer.zksync.io/address/",
1887
- scanPrefixTx: "https://explorer.zksync.io/tx/",
1888
- },
1889
- [exports.Network.gnosis]: {
1890
- bgColor: "#e8ebea",
1891
- chainId: 100,
1892
- icon: "icons/icon-gnosis.svg",
1893
- key: exports.Network.gnosis,
1894
- label: "Gnosis",
1895
- primaryColor: "#1c352a",
1896
- scanLabel: "GnosisScan",
1897
- scanPrefix: "https://gnosisscan.io/address/",
1898
- scanPrefixTx: "https://gnosisscan.io/tx/",
1899
- short: "xdai",
1900
- },
1901
- [exports.Network.scroll]: {
1902
- bgColor: "#f1e7db",
1903
- chainId: 534352,
1904
- icon: "icons/icon-scroll.svg",
1905
- key: exports.Network.scroll,
1906
- label: "Scroll",
1907
- primaryColor: "#b78544",
1908
- scanLabel: "Scrollscan",
1909
- scanPrefix: "https://scrollscan.com/address/",
1910
- scanPrefixTx: "https://scrollscan.com/tx/",
1911
- },
1912
- [exports.Network.solana]: {
1913
- assetPrefix: "https://portfolio.jup.ag/portfolio/",
1914
- bgColor: "#F0E3FF",
1915
- chainId: 534352,
1916
- icon: "icons/icon-solana.svg",
1917
- key: exports.Network.solana,
1918
- label: "Solana",
1919
- primaryColor: "#9945FF",
1920
- scanLabel: "Solscan",
1921
- scanPrefix: "https://solscan.io/account/",
1922
- scanPrefixTx: "https://solscan.io/tx/",
1923
- },
1924
- [exports.Network.zora]: {
1925
- bgColor: "#efefef",
1926
- chainId: 7777777,
1927
- icon: "icons/icon-zora.svg",
1928
- key: exports.Network.zora,
1929
- label: "Zora",
1930
- primaryColor: "#141414",
1931
- scanLabel: "Zora Explorer",
1932
- scanPrefix: "https://explorer.zora.energy/address/",
1933
- scanPrefixTx: "https://explorer.zora.energy/tx/",
1934
- short: "zora",
1935
- },
1936
- [exports.Network.mastodon]: {
1937
- bgColor: "#e8e8fe",
1938
- icon: "icons/icon-mastodon.svg",
1939
- key: exports.Network.mastodon,
1940
- label: "Mastodon",
1941
- primaryColor: "#6364f6",
1942
- scanPrefix: "",
1943
- },
1944
- [exports.Network.lens]: {
1945
- bgColor: "#d9f1dc",
1946
- chainId: 137,
1947
- icon: "icons/icon-lens.svg",
1948
- key: exports.Network.lens,
1949
- label: "Lens",
1950
- primaryColor: "#2CC256",
1951
- scanPrefix: "https://momoka.lens.xyz/",
1952
- },
1953
- [exports.Network.linea]: {
1954
- bgColor: "#efefef",
1955
- icon: "icons/icon-linea.svg",
1956
- key: exports.Network.linea,
1957
- label: "Linea",
1958
- primaryColor: "#000000",
1959
- scanLabel: "Linea Explorer",
1960
- scanPrefix: "https://lineascan.build/address/",
1961
- scanPrefixTx: "https://lineascan.build/tx/",
1962
- },
1963
- [exports.Network.snapshot]: {
1964
- bgColor: "#fef7ed",
1965
- icon: "icons/icon-snapshot.svg",
1966
- key: exports.Network.snapshot,
1967
- label: "Snapshot",
1968
- primaryColor: "#f3b04e",
1969
- scanPrefix: "",
1970
- },
1971
- [exports.Network.erc1577]: {
1972
- bgColor: "#ebecf8",
1973
- icon: "icons/icon-ethereum.svg",
1974
- key: exports.Network.erc1577,
1975
- label: "ERC-1577",
1976
- primaryColor: "#3741ba",
1977
- scanPrefix: "",
1978
- },
1979
- [exports.Network.bitcoin]: {
1980
- bgColor: "#FDE9D1",
1981
- icon: "icons/icon-bitcoin.svg",
1982
- key: exports.Network.bitcoin,
1983
- label: "Bitcoin",
1984
- primaryColor: "#F7931A",
1985
- scanLabel: "Bitcoin Explorer",
1986
- scanPrefix: "https://www.blockchain.com/explorer/addresses/btc/",
1987
- scanPrefixTx: "https://www.blockchain.com/explorer/transactions/btc/",
1988
- },
1989
- [exports.Network.vsl]: {
1990
- bgColor: "#ebecf8",
1991
- chainId: 12553,
1992
- icon: "icons/icon-vsl.svg",
1993
- key: exports.Network.vsl,
1994
- label: "RSS3 VSL Mainnet",
1995
- primaryColor: "#1477F9",
1996
- scanLabel: "VSL Scan",
1997
- scanPrefix: "https://scan.rss3.io/address/",
1998
- scanPrefixTx: "https://scan.rss3.io/tx/",
1999
- },
2000
- [exports.Network.xLayer]: {
2001
- bgColor: "#efefef",
2002
- chainId: 196,
2003
- icon: "icons/icon-xlayer.svg",
2004
- key: exports.Network.xLayer,
2005
- label: "X Layer",
2006
- primaryColor: "#000000",
2007
- scanLabel: "X Layer Explorer",
2008
- scanPrefix: "https://www.okx.com/web3/explorer/xlayer/address/",
2009
- scanPrefixTx: "https://www.okx.com/web3/explorer/xlayer/tx/",
2010
- },
2011
- [exports.Network.unichain]: {
2012
- bgColor: "#FEAFF0",
2013
- chainId: 130,
2014
- icon: "icons/icon-unichain.svg",
2015
- key: exports.Network.unichain,
2016
- label: "Unichain",
2017
- primaryColor: "#F50DB4",
2018
- scanLabel: "Unichain Explorer",
2019
- scanPrefix: "https://uniscan.xyz/address/",
2020
- scanPrefixTx: "https://uniscan.xyz/tx/",
2021
- },
2022
- };
2023
-
2024
- exports.API_ENDPOINT = API_ENDPOINT;
2025
- exports.CoinType = CoinType;
2026
- exports.DEFAULT_PLATFORM = DEFAULT_PLATFORM;
2027
- exports.NETWORK_DATA = NETWORK_DATA;
2028
- exports.PLATFORM_DATA = PLATFORM_DATA;
2029
- exports.REGEX = REGEX;
2030
- exports.SOURCE_DATA = SOURCE_DATA;
2031
- exports.useBatchNS = useBatchNS;
2032
- exports.useBatchProfile = useBatchProfile;
2033
- exports.useDomain = useDomain;
2034
- exports.useNS = useNS;
2035
- exports.useProfile = useProfile;
2036
- exports.useUniversalNS = useUniversalNS;
2037
- exports.useUniversalProfile = useUniversalProfile;
2038
- //# sourceMappingURL=index.js.map
1
+ export { useProfile } from './hooks/useProfile.js';
2
+ export { useNS } from './hooks/useNS.js';
3
+ export { useUniversalProfile } from './hooks/useUniversalProfile.js';
4
+ export { useUniversalNS } from './hooks/useUniversalNS.js';
5
+ export { useBatchProfile } from './hooks/useBatchProfile.js';
6
+ export { useBatchNS } from './hooks/useBatchNS.js';
7
+ export { useDomain } from './hooks/useDomain.js';
8
+ export { useBaseQuery } from './hooks/useBaseQuery.js';
9
+ export { CoinType } from './types/cointype.js';
10
+ export { REGEX } from './utils/regex.js';
11
+ export { API_ENDPOINT, detectPlatform, getApiKey, isSupportedPlatform, prettify, resolveIdentity } from './utils/helpers.js';
12
+ export { NETWORK_DATA } from './utils/network.js';
13
+ export { DEFAULT_PLATFORM, PLATFORM_DATA, getPlatformData } from './utils/platform.js';
14
+ export { SOURCE_DATA } from './utils/source.js';
15
+ export { Platform, PlatformSystem } from './types/platform.js';
16
+ export { Network } from './types/network.js';
17
+ export { ErrorMessages, QueryEndpoint } from './types/hook.js';
18
+ export { Source } from './types/source.js';