@coinbase/cdp-hooks 0.0.44 → 0.0.46

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 (275) hide show
  1. package/README.md +92 -0
  2. package/dist/esm/index.js +38 -31
  3. package/dist/esm/index10.js +12 -56
  4. package/dist/esm/index100.js +439 -21
  5. package/dist/esm/index101.js +28 -32
  6. package/dist/esm/index102.js +18 -185
  7. package/dist/esm/index103.js +31 -6
  8. package/dist/esm/index104.js +35 -2
  9. package/dist/esm/index105.js +189 -8
  10. package/dist/esm/index106.js +7 -17
  11. package/dist/esm/index107.js +2 -28
  12. package/dist/esm/index108.js +12 -8
  13. package/dist/esm/index109.js +15 -52
  14. package/dist/esm/index11.js +54 -33
  15. package/dist/esm/index110.js +23 -41
  16. package/dist/esm/index111.js +8 -8
  17. package/dist/esm/index112.js +55 -7
  18. package/dist/esm/index113.js +44 -15
  19. package/dist/esm/index114.js +8 -18
  20. package/dist/esm/index115.js +7 -24
  21. package/dist/esm/index116.js +16 -16
  22. package/dist/esm/index117.js +17 -53
  23. package/dist/esm/index118.js +22 -9
  24. package/dist/esm/index119.js +15 -159
  25. package/dist/esm/index12.js +57 -3
  26. package/dist/esm/index120.js +53 -20
  27. package/dist/esm/index121.js +11 -127
  28. package/dist/esm/index122.js +153 -31
  29. package/dist/esm/index123.js +21 -6
  30. package/dist/esm/index124.js +127 -27
  31. package/dist/esm/index125.js +31 -184
  32. package/dist/esm/index126.js +7 -4
  33. package/dist/esm/index127.js +26 -63
  34. package/dist/esm/index128.js +192 -3
  35. package/dist/esm/index129.js +4 -21
  36. package/dist/esm/index13.js +56 -10
  37. package/dist/esm/index130.js +61 -13
  38. package/dist/esm/index131.js +3 -24
  39. package/dist/esm/index132.js +20 -11
  40. package/dist/esm/index133.js +15 -33
  41. package/dist/esm/index134.js +24 -3
  42. package/dist/esm/index135.js +11 -18
  43. package/dist/esm/index136.js +33 -26
  44. package/dist/esm/index137.js +3 -36
  45. package/dist/esm/index138.js +18 -7
  46. package/dist/esm/index139.js +26 -24
  47. package/dist/esm/index14.js +31 -67
  48. package/dist/esm/index140.js +34 -27
  49. package/dist/esm/index141.js +7 -64
  50. package/dist/esm/index142.js +25 -9
  51. package/dist/esm/index143.js +28 -33
  52. package/dist/esm/index144.js +64 -27
  53. package/dist/esm/index145.js +9 -24
  54. package/dist/esm/index146.js +33 -3
  55. package/dist/esm/index147.js +27 -14
  56. package/dist/esm/index148.js +24 -103
  57. package/dist/esm/index149.js +3 -64
  58. package/dist/esm/index15.js +3 -9
  59. package/dist/esm/index150.js +14 -5
  60. package/dist/esm/index151.js +103 -6
  61. package/dist/esm/index152.js +62 -25
  62. package/dist/esm/index153.js +5 -39
  63. package/dist/esm/index154.js +6 -13
  64. package/dist/esm/index155.js +24 -39
  65. package/dist/esm/index156.js +39 -5
  66. package/dist/esm/index157.js +13 -11
  67. package/dist/esm/index158.js +42 -19
  68. package/dist/esm/index159.js +5 -78
  69. package/dist/esm/index16.js +9 -28
  70. package/dist/esm/index160.js +12 -2
  71. package/dist/esm/index161.js +19 -37
  72. package/dist/esm/index162.js +73 -105
  73. package/dist/esm/index163.js +2 -49
  74. package/dist/esm/index164.js +36 -31
  75. package/dist/esm/index165.js +110 -8
  76. package/dist/esm/index166.js +48 -6
  77. package/dist/esm/index167.js +32 -6
  78. package/dist/esm/index168.js +8 -11
  79. package/dist/esm/index169.js +6 -10
  80. package/dist/esm/index17.js +68 -70
  81. package/dist/esm/index170.js +6 -13
  82. package/dist/esm/index171.js +11 -32
  83. package/dist/esm/index172.js +11 -5
  84. package/dist/esm/index173.js +13 -8
  85. package/dist/esm/index174.js +30 -17
  86. package/dist/esm/index175.js +5 -32
  87. package/dist/esm/index176.js +8 -20
  88. package/dist/esm/index177.js +19 -3
  89. package/dist/esm/index178.js +31 -17
  90. package/dist/esm/index179.js +20 -10
  91. package/dist/esm/index18.js +9 -19
  92. package/dist/esm/index180.js +3 -21
  93. package/dist/esm/index181.js +16 -21
  94. package/dist/esm/index182.js +10 -5
  95. package/dist/esm/index183.js +21 -5
  96. package/dist/esm/index184.js +22 -8
  97. package/dist/esm/index185.js +5 -104
  98. package/dist/esm/index186.js +6 -3
  99. package/dist/esm/index187.js +8 -18
  100. package/dist/esm/index188.js +99 -166
  101. package/dist/esm/index189.js +3 -18
  102. package/dist/esm/index19.js +26 -108
  103. package/dist/esm/index190.js +19 -10
  104. package/dist/esm/index191.js +170 -39
  105. package/dist/esm/index192.js +18 -2
  106. package/dist/esm/index193.js +10 -5
  107. package/dist/esm/index194.js +39 -9
  108. package/dist/esm/index195.js +2 -20
  109. package/dist/esm/index196.js +4 -7
  110. package/dist/esm/index197.js +9 -10
  111. package/dist/esm/index198.js +19 -66
  112. package/dist/esm/index199.js +7 -65
  113. package/dist/esm/index2.js +24 -21
  114. package/dist/esm/index20.js +70 -60
  115. package/dist/esm/index200.js +10 -184
  116. package/dist/esm/index201.js +66 -22
  117. package/dist/esm/index202.js +61 -38
  118. package/dist/esm/index203.js +178 -69
  119. package/dist/esm/index204.js +21 -39
  120. package/dist/esm/index205.js +35 -9
  121. package/dist/esm/index206.js +70 -7
  122. package/dist/esm/index207.js +40 -36
  123. package/dist/esm/index208.js +16 -15
  124. package/dist/esm/index209.js +13 -8
  125. package/dist/esm/index21.js +19 -24
  126. package/dist/esm/index212.js +35 -11
  127. package/dist/esm/index213.js +15 -9
  128. package/dist/esm/index214.js +8 -16
  129. package/dist/esm/index215.js +12 -22
  130. package/dist/esm/index216.js +9 -30
  131. package/dist/esm/index217.js +17 -2
  132. package/dist/esm/index218.js +21 -12
  133. package/dist/esm/index219.js +30 -12
  134. package/dist/esm/index22.js +110 -40
  135. package/dist/esm/index220.js +2 -48
  136. package/dist/esm/index221.js +12 -8
  137. package/dist/esm/index222.js +12 -13
  138. package/dist/esm/index223.js +46 -13
  139. package/dist/esm/index224.js +9 -8
  140. package/dist/esm/index225.js +13 -15
  141. package/dist/esm/index226.js +14 -24
  142. package/dist/esm/index227.js +8 -11
  143. package/dist/esm/index228.js +14 -23
  144. package/dist/esm/index229.js +24 -51
  145. package/dist/esm/index23.js +57 -34
  146. package/dist/esm/index230.js +11 -17
  147. package/dist/esm/index231.js +24 -14
  148. package/dist/esm/index232.js +51 -11
  149. package/dist/esm/index233.js +17 -103
  150. package/dist/esm/index234.js +14 -6
  151. package/dist/esm/index235.js +11 -224
  152. package/dist/esm/index236.js +103 -6
  153. package/dist/esm/index237.js +7 -7
  154. package/dist/esm/index238.js +223 -25
  155. package/dist/esm/index239.js +6 -19
  156. package/dist/esm/index24.js +20 -54
  157. package/dist/esm/index240.js +7 -147
  158. package/dist/esm/index241.js +26 -12
  159. package/dist/esm/index242.js +20 -36
  160. package/dist/esm/index243.js +146 -41
  161. package/dist/esm/index244.js +13 -69
  162. package/dist/esm/index245.js +36 -4
  163. package/dist/esm/index246.js +41 -136
  164. package/dist/esm/index247.js +69 -156
  165. package/dist/esm/index248.js +16 -9
  166. package/dist/esm/index249.js +3 -16
  167. package/dist/esm/index25.js +37 -160
  168. package/dist/esm/index250.js +126 -103
  169. package/dist/esm/index251.js +123 -102
  170. package/dist/esm/index252.js +9 -78
  171. package/dist/esm/index253.js +114 -2
  172. package/dist/esm/index254.js +124 -688
  173. package/dist/esm/index255.js +73 -134
  174. package/dist/esm/index256.js +2 -43
  175. package/dist/esm/index257.js +675 -178
  176. package/dist/esm/index258.js +137 -63
  177. package/dist/esm/index259.js +42 -4
  178. package/dist/esm/index26.js +36 -38
  179. package/dist/esm/index260.js +201 -40
  180. package/dist/esm/index261.js +65 -7
  181. package/dist/esm/index262.js +4 -62
  182. package/dist/esm/index263.js +33 -70
  183. package/dist/esm/index264.js +8 -4
  184. package/dist/esm/index265.js +55 -187
  185. package/dist/esm/index266.js +61 -47
  186. package/dist/esm/index267.js +4 -45
  187. package/dist/esm/index268.js +194 -4
  188. package/dist/esm/index269.js +64 -5
  189. package/dist/esm/index27.js +58 -9
  190. package/dist/esm/index270.js +45 -2
  191. package/dist/esm/index271.js +4 -21
  192. package/dist/esm/index272.js +7 -0
  193. package/dist/esm/index273.js +4 -0
  194. package/dist/esm/index274.js +24 -0
  195. package/dist/esm/index28.js +161 -29
  196. package/dist/esm/index29.js +39 -36
  197. package/dist/esm/index3.js +100 -92
  198. package/dist/esm/index30.js +6 -6
  199. package/dist/esm/index31.js +30 -28
  200. package/dist/esm/index32.js +34 -44
  201. package/dist/esm/index33.js +9 -88
  202. package/dist/esm/index34.js +26 -37
  203. package/dist/esm/index35.js +46 -8
  204. package/dist/esm/index36.js +88 -6
  205. package/dist/esm/index37.js +40 -16
  206. package/dist/esm/index38.js +8 -8
  207. package/dist/esm/index39.js +6 -13
  208. package/dist/esm/index4.js +14 -16
  209. package/dist/esm/index40.js +16 -7
  210. package/dist/esm/index41.js +8 -9
  211. package/dist/esm/index42.js +13 -16
  212. package/dist/esm/index43.js +7 -46
  213. package/dist/esm/index44.js +9 -13
  214. package/dist/esm/index45.js +15 -15
  215. package/dist/esm/index46.js +46 -13
  216. package/dist/esm/index47.js +13 -6
  217. package/dist/esm/index48.js +15 -34
  218. package/dist/esm/index49.js +13 -9
  219. package/dist/esm/index5.js +46 -29
  220. package/dist/esm/index50.js +5 -7
  221. package/dist/esm/index51.js +35 -25
  222. package/dist/esm/index52.js +9 -10
  223. package/dist/esm/index53.js +7 -13
  224. package/dist/esm/index54.js +25 -11
  225. package/dist/esm/index55.js +10 -116
  226. package/dist/esm/index56.js +13 -32
  227. package/dist/esm/index57.js +11 -79
  228. package/dist/esm/index58.js +108 -169
  229. package/dist/esm/index59.js +26 -37
  230. package/dist/esm/index6.js +20 -17
  231. package/dist/esm/index60.js +79 -6
  232. package/dist/esm/index61.js +177 -13
  233. package/dist/esm/index62.js +44 -13
  234. package/dist/esm/index63.js +6 -99
  235. package/dist/esm/index64.js +13 -72
  236. package/dist/esm/index65.js +13 -87
  237. package/dist/esm/index66.js +93 -142
  238. package/dist/esm/index67.js +65 -129
  239. package/dist/esm/index68.js +73 -54
  240. package/dist/esm/index69.js +148 -23
  241. package/dist/esm/index7.js +34 -12
  242. package/dist/esm/index70.js +133 -102
  243. package/dist/esm/index71.js +68 -6
  244. package/dist/esm/index72.js +23 -131
  245. package/dist/esm/index73.js +101 -271
  246. package/dist/esm/index74.js +7 -3
  247. package/dist/esm/index75.js +132 -4
  248. package/dist/esm/index76.js +276 -9
  249. package/dist/esm/index77.js +3 -2
  250. package/dist/esm/index78.js +4 -2
  251. package/dist/esm/index79.js +9 -3
  252. package/dist/esm/index8.js +18 -54
  253. package/dist/esm/index80.js +2 -327
  254. package/dist/esm/index81.js +2 -14
  255. package/dist/esm/index82.js +3 -5
  256. package/dist/esm/index83.js +299 -28
  257. package/dist/esm/index84.js +14 -2
  258. package/dist/esm/index85.js +4 -7
  259. package/dist/esm/index86.js +29 -188
  260. package/dist/esm/index87.js +2 -32
  261. package/dist/esm/index88.js +7 -21
  262. package/dist/esm/index89.js +214 -5
  263. package/dist/esm/index9.js +11 -57
  264. package/dist/esm/index90.js +30 -72
  265. package/dist/esm/index91.js +21 -5
  266. package/dist/esm/index92.js +5 -5
  267. package/dist/esm/index93.js +69 -31
  268. package/dist/esm/index94.js +5 -75
  269. package/dist/esm/index95.js +6 -3
  270. package/dist/esm/index96.js +28 -16
  271. package/dist/esm/index97.js +57 -433
  272. package/dist/esm/index98.js +3 -31
  273. package/dist/esm/index99.js +17 -20
  274. package/dist/types/index.d.ts +52 -0
  275. package/package.json +3 -3
@@ -1,166 +1,43 @@
1
- import { toRpc as $ } from "./index216.js";
2
- import { parseAccount as W } from "./index12.js";
3
- import { multicall3Abi as O } from "./index73.js";
4
- import { aggregate3Signature as I } from "./index217.js";
5
- import { deploylessCallViaBytecodeBytecode as J, deploylessCallViaFactoryBytecode as K } from "./index75.js";
6
- import { BaseError as N } from "./index83.js";
7
- import { ClientChainNotConfiguredError as P, ChainDoesNotSupportContract as Q } from "./index98.js";
8
- import { CounterfactualDeploymentFailedError as U, RawContractError as X } from "./index86.js";
9
- import { decodeFunctionResult as Y } from "./index131.js";
10
- import { encodeDeployData as T } from "./index135.js";
11
- import { encodeFunctionData as Z } from "./index138.js";
12
- import { getChainContractAddress as tt } from "./index174.js";
13
- import { numberToHex as V } from "./index110.js";
14
- import { getCallError as at } from "./index218.js";
15
- import { extract as et } from "./index219.js";
16
- import { formatTransactionRequest as rt } from "./index145.js";
17
- import { createBatchScheduler as ot } from "./index16.js";
18
- import { serializeStateOverride as ct } from "./index220.js";
19
- import { assertRequest as nt } from "./index158.js";
20
- import { parseAbi as z } from "./index197.js";
21
- async function Et(t, a) {
22
- const { account: e = t.account, authorizationList: n, batch: r = !!t.batch?.multicall, blockNumber: m, blockTag: C = t.experimental_blockTag ?? "latest", accessList: x, blobs: D, blockOverrides: d, code: p, data: o, factory: u, factoryData: s, gas: B, gasPrice: b, maxFeePerBlobGas: h, maxFeePerGas: y, maxPriorityFeePerGas: g, nonce: k, to: f, value: H, stateOverride: L, ...j } = a, R = e ? W(e) : void 0;
23
- if (p && (u || s))
24
- throw new N("Cannot provide both `code` & `factory`/`factoryData` as parameters.");
25
- if (p && f)
26
- throw new N("Cannot provide both `code` & `to` as parameters.");
27
- const S = p && o, _ = u && s && f && o, A = S || _, G = S ? lt({
28
- code: p,
29
- data: o
30
- }) : _ ? dt({
31
- data: o,
32
- factory: u,
33
- factoryData: s,
34
- to: f
35
- }) : o;
36
- try {
37
- nt(a);
38
- const w = (typeof m == "bigint" ? V(m) : void 0) || C, i = d ? $(d) : void 0, l = ct(L), q = t.chain?.formatters?.transactionRequest?.format, v = (q || rt)({
39
- // Pick out extra data that might exist on the chain's transaction request type.
40
- ...et(j, { format: q }),
41
- from: R?.address,
42
- accessList: x,
43
- authorizationList: n,
44
- blobs: D,
45
- data: G,
46
- gas: B,
47
- gasPrice: b,
48
- maxFeePerBlobGas: h,
49
- maxFeePerGas: y,
50
- maxPriorityFeePerGas: g,
51
- nonce: k,
52
- to: A ? void 0 : f,
53
- value: H
54
- });
55
- if (r && st({ request: v }) && !l && !i)
56
- try {
57
- return await it(t, {
58
- ...v,
59
- blockNumber: m,
60
- blockTag: C
61
- });
62
- } catch (c) {
63
- if (!(c instanceof P) && !(c instanceof Q))
64
- throw c;
65
- }
66
- const M = (() => {
67
- const c = [
68
- v,
69
- w
70
- ];
71
- return l && i ? [...c, l, i] : l ? [...c, l] : i ? [...c, {}, i] : c;
72
- })(), E = await t.request({
73
- method: "eth_call",
74
- params: M
75
- });
76
- return E === "0x" ? { data: void 0 } : { data: E };
77
- } catch (F) {
78
- const w = ut(F), { offchainLookup: i, offchainLookupSignature: l } = await import("./index162.js");
79
- if (t.ccipRead !== !1 && w?.slice(0, 10) === l && f)
80
- return { data: await i(t, { data: w, to: f }) };
81
- throw A && w?.slice(0, 10) === "0x101bb98d" ? new U({ factory: u }) : at(F, {
82
- ...a,
83
- account: R,
84
- chain: t.chain
1
+ import { universalResolverReverseAbi as f } from "./index76.js";
2
+ import { getChainContractAddress as u } from "./index177.js";
3
+ import { toHex as h } from "./index113.js";
4
+ import { isNullUniversalResolverError as p } from "./index216.js";
5
+ import { packetToBytes as C } from "./index217.js";
6
+ import { getAction as w } from "./index210.js";
7
+ import { readContract as A } from "./index59.js";
8
+ async function b(e, { address: t, blockNumber: s, blockTag: i, gatewayUrls: a, strict: c, universalResolverAddress: d }) {
9
+ let o = d;
10
+ if (!o) {
11
+ if (!e.chain)
12
+ throw new Error("client chain not configured. universalResolverAddress is required.");
13
+ o = u({
14
+ blockNumber: s,
15
+ chain: e.chain,
16
+ contract: "ensUniversalResolver"
85
17
  });
86
18
  }
87
- }
88
- function st({ request: t }) {
89
- const { data: a, to: e, ...n } = t;
90
- return !(!a || a.startsWith(I) || !e || Object.values(n).filter((r) => typeof r < "u").length > 0);
91
- }
92
- async function it(t, a) {
93
- const { batchSize: e = 1024, wait: n = 0 } = typeof t.batch?.multicall == "object" ? t.batch.multicall : {}, { blockNumber: r, blockTag: m = t.experimental_blockTag ?? "latest", data: C, multicallAddress: x, to: D } = a;
94
- let d = x;
95
- if (!d) {
96
- if (!t.chain)
97
- throw new P();
98
- d = tt({
99
- blockNumber: r,
100
- chain: t.chain,
101
- contract: "multicall3"
102
- });
19
+ const v = `${t.toLowerCase().substring(2)}.addr.reverse`;
20
+ try {
21
+ const r = {
22
+ address: o,
23
+ abi: f,
24
+ functionName: "reverse",
25
+ args: [h(C(v))],
26
+ blockNumber: s,
27
+ blockTag: i
28
+ }, n = w(e, A, "readContract"), [l, m] = a ? await n({
29
+ ...r,
30
+ args: [...r.args, a]
31
+ }) : await n(r);
32
+ return t.toLowerCase() !== m.toLowerCase() ? null : l;
33
+ } catch (r) {
34
+ if (c)
35
+ throw r;
36
+ if (p(r, "reverse"))
37
+ return null;
38
+ throw r;
103
39
  }
104
- const o = (typeof r == "bigint" ? V(r) : void 0) || m, { schedule: u } = ot({
105
- id: `${t.uid}.${o}`,
106
- wait: n,
107
- shouldSplitBatch(b) {
108
- return b.reduce((y, { data: g }) => y + (g.length - 2), 0) > e * 2;
109
- },
110
- fn: async (b) => {
111
- const h = b.map((k) => ({
112
- allowFailure: !0,
113
- callData: k.data,
114
- target: k.to
115
- })), y = Z({
116
- abi: O,
117
- args: [h],
118
- functionName: "aggregate3"
119
- }), g = await t.request({
120
- method: "eth_call",
121
- params: [
122
- {
123
- data: y,
124
- to: d
125
- },
126
- o
127
- ]
128
- });
129
- return Y({
130
- abi: O,
131
- args: [h],
132
- functionName: "aggregate3",
133
- data: g || "0x"
134
- });
135
- }
136
- }), [{ returnData: s, success: B }] = await u({ data: C, to: D });
137
- if (!B)
138
- throw new X({ data: s });
139
- return s === "0x" ? { data: void 0 } : { data: s };
140
- }
141
- function lt(t) {
142
- const { code: a, data: e } = t;
143
- return T({
144
- abi: z(["constructor(bytes, bytes)"]),
145
- bytecode: J,
146
- args: [a, e]
147
- });
148
- }
149
- function dt(t) {
150
- const { data: a, factory: e, factoryData: n, to: r } = t;
151
- return T({
152
- abi: z(["constructor(address, bytes, address, bytes)"]),
153
- bytecode: K,
154
- args: [r, a, e, n]
155
- });
156
- }
157
- function ut(t) {
158
- if (!(t instanceof N))
159
- return;
160
- const a = t.walk();
161
- return typeof a?.data == "object" ? a.data?.data : a.data;
162
40
  }
163
41
  export {
164
- Et as call,
165
- ut as getRevertErrorData
42
+ b as getEnsName
166
43
  };
@@ -1,116 +1,139 @@
1
- import { BaseError as y } from "./index258.js";
2
- import { keccak256 as v } from "./index261.js";
3
- import { validate as $, slice as A, fromString as S } from "./index247.js";
4
- import { isArgOfType as E, normalizeSignature as p, getAmbiguousTypes as B } from "./index262.js";
5
- import { parseAbiItem as l } from "./index201.js";
6
- import { formatAbiItem as h } from "./index193.js";
7
- function H(e, r = {}) {
8
- const { prepare: i = !0 } = r, n = Array.isArray(e) ? l(e) : typeof e == "string" ? l(e) : e;
9
- return {
10
- ...n,
11
- ...i ? { hash: s(n) } : {}
12
- };
1
+ import { readContract as w } from "./index59.js";
2
+ import { EnsAvatarUriResolutionError as d, EnsAvatarInvalidNftUriError as p, EnsAvatarUnsupportedNamespaceError as I, EnsAvatarInvalidMetadataError as y } from "./index103.js";
3
+ const v = /(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/, A = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/, b = /^data:([a-zA-Z\-/+]*);base64,([^"].*)/, E = /^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;
4
+ async function k(e) {
5
+ try {
6
+ const t = await fetch(e, { method: "HEAD" });
7
+ return t.status === 200 ? t.headers.get("content-type")?.startsWith("image/") : !1;
8
+ } catch (t) {
9
+ return typeof t == "object" && typeof t.response < "u" || !globalThis.hasOwnProperty("Image") ? !1 : new Promise((n) => {
10
+ const a = new Image();
11
+ a.onload = () => {
12
+ n(!0);
13
+ }, a.onerror = () => {
14
+ n(!1);
15
+ }, a.src = e;
16
+ });
17
+ }
18
+ }
19
+ function l(e, t) {
20
+ return e ? e.endsWith("/") ? e.slice(0, -1) : e : t;
13
21
  }
14
- function M(e, r, i) {
15
- const { args: n = [], prepare: f = !0 } = i ?? {}, b = $(r, { strict: !1 }), u = e.filter((t) => b ? t.type === "function" || t.type === "error" ? T(t) === A(r, 0, 4) : t.type === "event" ? s(t) === r : !1 : "name" in t && t.name === r);
16
- if (u.length === 0)
17
- throw new d({ name: r });
18
- if (u.length === 1)
22
+ function C({ uri: e, gatewayUrls: t }) {
23
+ const n = b.test(e);
24
+ if (n)
25
+ return { uri: e, isOnChain: !0, isEncoded: n };
26
+ const a = l(t?.ipfs, "https://ipfs.io"), r = l(t?.arweave, "https://arweave.net"), f = e.match(v), { protocol: i, subpath: c, target: s, subtarget: h = "" } = f?.groups || {}, u = i === "ipns:/" || c === "ipns/", m = i === "ipfs:/" || c === "ipfs/" || A.test(e);
27
+ if (e.startsWith("http") && !u && !m) {
28
+ let g = e;
29
+ return t?.arweave && (g = e.replace(/https:\/\/arweave.net/g, t?.arweave)), { uri: g, isOnChain: !1, isEncoded: !1 };
30
+ }
31
+ if ((u || m) && s)
19
32
  return {
20
- ...u[0],
21
- ...f ? { hash: s(u[0]) } : {}
33
+ uri: `${a}/${u ? "ipns" : "ipfs"}/${s}${h}`,
34
+ isOnChain: !1,
35
+ isEncoded: !1
22
36
  };
23
- let o;
24
- for (const t of u) {
25
- if (!("inputs" in t))
26
- continue;
27
- if (!n || n.length === 0) {
28
- if (!t.inputs || t.inputs.length === 0)
29
- return {
30
- ...t,
31
- ...f ? { hash: s(t) } : {}
32
- };
33
- continue;
34
- }
35
- if (!t.inputs || t.inputs.length === 0 || t.inputs.length !== n.length)
36
- continue;
37
- if (n.every((a, w) => {
38
- const g = "inputs" in t && t.inputs[w];
39
- return g ? E(a, g) : !1;
40
- })) {
41
- if (o && "inputs" in o && o.inputs) {
42
- const a = B(t.inputs, o.inputs, n);
43
- if (a)
44
- throw new O({
45
- abiItem: t,
46
- type: a[0]
47
- }, {
48
- abiItem: o,
49
- type: a[1]
50
- });
51
- }
52
- o = t;
53
- }
54
- }
55
- const c = (() => {
56
- if (o)
57
- return o;
58
- const [t, ...m] = u;
59
- return { ...t, overloads: m };
60
- })();
61
- if (!c)
62
- throw new d({ name: r });
63
- return {
64
- ...c,
65
- ...f ? { hash: s(c) } : {}
66
- };
37
+ if (i === "ar:/" && s)
38
+ return {
39
+ uri: `${r}/${s}${h || ""}`,
40
+ isOnChain: !1,
41
+ isEncoded: !1
42
+ };
43
+ let o = e.replace(E, "");
44
+ if (o.startsWith("<svg") && (o = `data:image/svg+xml;base64,${btoa(o)}`), o.startsWith("data:") || o.startsWith("{"))
45
+ return {
46
+ uri: o,
47
+ isOnChain: !0,
48
+ isEncoded: !1
49
+ };
50
+ throw new d({ uri: e });
67
51
  }
68
- function T(e) {
69
- return A(s(e), 0, 4);
52
+ function U(e) {
53
+ if (typeof e != "object" || !("image" in e) && !("image_url" in e) && !("image_data" in e))
54
+ throw new y({ data: e });
55
+ return e.image || e.image_url || e.image_data;
70
56
  }
71
- function F(e) {
72
- const r = typeof e == "string" ? e : h(e);
73
- return p(r);
57
+ async function $({ gatewayUrls: e, uri: t }) {
58
+ try {
59
+ const n = await fetch(t).then((r) => r.json());
60
+ return await R({
61
+ gatewayUrls: e,
62
+ uri: U(n)
63
+ });
64
+ } catch {
65
+ throw new d({ uri: t });
66
+ }
74
67
  }
75
- function s(e) {
76
- return typeof e != "string" && "hash" in e && e.hash ? e.hash : v(S(F(e)));
68
+ async function R({ gatewayUrls: e, uri: t }) {
69
+ const { uri: n, isOnChain: a } = C({ uri: t, gatewayUrls: e });
70
+ if (a || await k(n))
71
+ return n;
72
+ throw new d({ uri: t });
77
73
  }
78
- class O extends y {
79
- constructor(r, i) {
80
- super("Found ambiguous types in overloaded ABI Items.", {
81
- metaMessages: [
82
- // TODO: abitype to add support for signature-formatted ABI items.
83
- `\`${r.type}\` in \`${p(h(r.abiItem))}\`, and`,
84
- `\`${i.type}\` in \`${p(h(i.abiItem))}\``,
85
- "",
86
- "These types encode differently and cannot be distinguished at runtime.",
87
- "Remove one of the ambiguous items in the ABI."
88
- ]
89
- }), Object.defineProperty(this, "name", {
90
- enumerable: !0,
91
- configurable: !0,
92
- writable: !0,
93
- value: "AbiItem.AmbiguityError"
74
+ function D(e) {
75
+ let t = e;
76
+ t.startsWith("did:nft:") && (t = t.replace("did:nft:", "").replace(/_/g, "/"));
77
+ const [n, a, r] = t.split("/"), [f, i] = n.split(":"), [c, s] = a.split(":");
78
+ if (!f || f.toLowerCase() !== "eip155")
79
+ throw new p({ reason: "Only EIP-155 supported" });
80
+ if (!i)
81
+ throw new p({ reason: "Chain ID not found" });
82
+ if (!s)
83
+ throw new p({
84
+ reason: "Contract address not found"
94
85
  });
95
- }
86
+ if (!r)
87
+ throw new p({ reason: "Token ID not found" });
88
+ if (!c)
89
+ throw new p({ reason: "ERC namespace not found" });
90
+ return {
91
+ chainID: Number.parseInt(i),
92
+ namespace: c.toLowerCase(),
93
+ contractAddress: s,
94
+ tokenID: r
95
+ };
96
96
  }
97
- class d extends y {
98
- constructor({ name: r, data: i, type: n = "item" }) {
99
- const f = r ? ` with name "${r}"` : i ? ` with data "${i}"` : "";
100
- super(`ABI ${n}${f} not found.`), Object.defineProperty(this, "name", {
101
- enumerable: !0,
102
- configurable: !0,
103
- writable: !0,
104
- value: "AbiItem.NotFoundError"
97
+ async function O(e, { nft: t }) {
98
+ if (t.namespace === "erc721")
99
+ return w(e, {
100
+ address: t.contractAddress,
101
+ abi: [
102
+ {
103
+ name: "tokenURI",
104
+ type: "function",
105
+ stateMutability: "view",
106
+ inputs: [{ name: "tokenId", type: "uint256" }],
107
+ outputs: [{ name: "", type: "string" }]
108
+ }
109
+ ],
110
+ functionName: "tokenURI",
111
+ args: [BigInt(t.tokenID)]
105
112
  });
106
- }
113
+ if (t.namespace === "erc1155")
114
+ return w(e, {
115
+ address: t.contractAddress,
116
+ abi: [
117
+ {
118
+ name: "uri",
119
+ type: "function",
120
+ stateMutability: "view",
121
+ inputs: [{ name: "_id", type: "uint256" }],
122
+ outputs: [{ name: "", type: "string" }]
123
+ }
124
+ ],
125
+ functionName: "uri",
126
+ args: [BigInt(t.tokenID)]
127
+ });
128
+ throw new I({ namespace: t.namespace });
107
129
  }
108
130
  export {
109
- O as AmbiguityError,
110
- d as NotFoundError,
111
- H as from,
112
- M as fromAbi,
113
- T as getSelector,
114
- F as getSignature,
115
- s as getSignatureHash
131
+ l as getGateway,
132
+ U as getJsonImage,
133
+ $ as getMetadataAvatarUri,
134
+ O as getNftTokenUri,
135
+ k as isImageUri,
136
+ R as parseAvatarUri,
137
+ D as parseNftUri,
138
+ C as resolveAvatarUri
116
139
  };