@coinbase/cdp-hooks 0.0.42 → 0.0.44

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 (273) hide show
  1. package/README.md +71 -0
  2. package/dist/esm/index.js +18 -16
  3. package/dist/esm/index10.js +56 -33
  4. package/dist/esm/index100.js +31 -32
  5. package/dist/esm/index101.js +32 -191
  6. package/dist/esm/index102.js +191 -6
  7. package/dist/esm/index103.js +9 -2
  8. package/dist/esm/index104.js +2 -13
  9. package/dist/esm/index105.js +11 -17
  10. package/dist/esm/index106.js +13 -22
  11. package/dist/esm/index107.js +27 -8
  12. package/dist/esm/index108.js +8 -55
  13. package/dist/esm/index109.js +50 -40
  14. package/dist/esm/index11.js +32 -3
  15. package/dist/esm/index110.js +45 -8
  16. package/dist/esm/index111.js +8 -7
  17. package/dist/esm/index112.js +7 -16
  18. package/dist/esm/index113.js +16 -18
  19. package/dist/esm/index114.js +18 -24
  20. package/dist/esm/index115.js +24 -16
  21. package/dist/esm/index116.js +16 -54
  22. package/dist/esm/index117.js +53 -10
  23. package/dist/esm/index118.js +11 -160
  24. package/dist/esm/index119.js +160 -21
  25. package/dist/esm/index12.js +3 -9
  26. package/dist/esm/index120.js +21 -127
  27. package/dist/esm/index121.js +127 -38
  28. package/dist/esm/index122.js +38 -6
  29. package/dist/esm/index123.js +6 -27
  30. package/dist/esm/index124.js +27 -191
  31. package/dist/esm/index125.js +192 -4
  32. package/dist/esm/index126.js +4 -65
  33. package/dist/esm/index127.js +65 -3
  34. package/dist/esm/index128.js +3 -21
  35. package/dist/esm/index129.js +19 -15
  36. package/dist/esm/index13.js +8 -67
  37. package/dist/esm/index130.js +16 -23
  38. package/dist/esm/index131.js +23 -11
  39. package/dist/esm/index132.js +11 -34
  40. package/dist/esm/index133.js +35 -3
  41. package/dist/esm/index134.js +3 -19
  42. package/dist/esm/index135.js +18 -27
  43. package/dist/esm/index136.js +25 -33
  44. package/dist/esm/index137.js +35 -7
  45. package/dist/esm/index138.js +7 -25
  46. package/dist/esm/index139.js +20 -23
  47. package/dist/esm/index14.js +66 -7
  48. package/dist/esm/index140.js +27 -63
  49. package/dist/esm/index141.js +64 -9
  50. package/dist/esm/index142.js +9 -33
  51. package/dist/esm/index143.js +33 -27
  52. package/dist/esm/index144.js +26 -23
  53. package/dist/esm/index145.js +24 -3
  54. package/dist/esm/index146.js +3 -14
  55. package/dist/esm/index147.js +14 -103
  56. package/dist/esm/index148.js +99 -60
  57. package/dist/esm/index149.js +64 -5
  58. package/dist/esm/index15.js +8 -27
  59. package/dist/esm/index150.js +5 -6
  60. package/dist/esm/index151.js +6 -27
  61. package/dist/esm/index152.js +27 -39
  62. package/dist/esm/index153.js +39 -13
  63. package/dist/esm/index154.js +13 -42
  64. package/dist/esm/index155.js +42 -5
  65. package/dist/esm/index156.js +5 -11
  66. package/dist/esm/index157.js +11 -19
  67. package/dist/esm/index158.js +18 -77
  68. package/dist/esm/index159.js +79 -2
  69. package/dist/esm/index16.js +25 -67
  70. package/dist/esm/index160.js +2 -38
  71. package/dist/esm/index161.js +32 -105
  72. package/dist/esm/index162.js +105 -43
  73. package/dist/esm/index163.js +47 -31
  74. package/dist/esm/index164.js +32 -8
  75. package/dist/esm/index165.js +8 -6
  76. package/dist/esm/index166.js +6 -6
  77. package/dist/esm/index167.js +6 -11
  78. package/dist/esm/index168.js +11 -10
  79. package/dist/esm/index169.js +10 -13
  80. package/dist/esm/index17.js +68 -17
  81. package/dist/esm/index170.js +12 -31
  82. package/dist/esm/index171.js +33 -5
  83. package/dist/esm/index172.js +5 -9
  84. package/dist/esm/index173.js +8 -19
  85. package/dist/esm/index174.js +19 -31
  86. package/dist/esm/index175.js +31 -20
  87. package/dist/esm/index176.js +20 -3
  88. package/dist/esm/index177.js +3 -17
  89. package/dist/esm/index178.js +17 -10
  90. package/dist/esm/index179.js +10 -21
  91. package/dist/esm/index18.js +17 -108
  92. package/dist/esm/index180.js +21 -22
  93. package/dist/esm/index181.js +22 -5
  94. package/dist/esm/index182.js +5 -5
  95. package/dist/esm/index183.js +5 -8
  96. package/dist/esm/index184.js +8 -104
  97. package/dist/esm/index185.js +105 -3
  98. package/dist/esm/index186.js +3 -19
  99. package/dist/esm/index187.js +17 -170
  100. package/dist/esm/index188.js +170 -16
  101. package/dist/esm/index189.js +18 -10
  102. package/dist/esm/index19.js +110 -60
  103. package/dist/esm/index190.js +10 -41
  104. package/dist/esm/index191.js +41 -2
  105. package/dist/esm/index192.js +2 -5
  106. package/dist/esm/index193.js +4 -10
  107. package/dist/esm/index194.js +9 -18
  108. package/dist/esm/index195.js +19 -7
  109. package/dist/esm/index196.js +7 -11
  110. package/dist/esm/index197.js +11 -66
  111. package/dist/esm/index198.js +65 -64
  112. package/dist/esm/index199.js +60 -180
  113. package/dist/esm/index20.js +56 -20
  114. package/dist/esm/index200.js +183 -20
  115. package/dist/esm/index201.js +21 -41
  116. package/dist/esm/index202.js +20 -54
  117. package/dist/esm/index203.js +54 -18
  118. package/dist/esm/index204.js +34 -10
  119. package/dist/esm/index205.js +10 -7
  120. package/dist/esm/index206.js +13 -36
  121. package/dist/esm/index207.js +35 -14
  122. package/dist/esm/index208.js +15 -8
  123. package/dist/esm/index209.js +8 -7
  124. package/dist/esm/index21.js +22 -38
  125. package/dist/esm/index210.js +7 -6
  126. package/dist/esm/index211.js +6 -12
  127. package/dist/esm/index212.js +12 -9
  128. package/dist/esm/index213.js +9 -16
  129. package/dist/esm/index214.js +15 -21
  130. package/dist/esm/index215.js +22 -30
  131. package/dist/esm/index216.js +31 -2
  132. package/dist/esm/index217.js +2 -14
  133. package/dist/esm/index218.js +13 -12
  134. package/dist/esm/index219.js +10 -45
  135. package/dist/esm/index22.js +37 -34
  136. package/dist/esm/index220.js +47 -9
  137. package/dist/esm/index221.js +8 -12
  138. package/dist/esm/index222.js +13 -14
  139. package/dist/esm/index223.js +14 -8
  140. package/dist/esm/index224.js +6 -13
  141. package/dist/esm/index225.js +15 -24
  142. package/dist/esm/index226.js +24 -11
  143. package/dist/esm/index227.js +10 -23
  144. package/dist/esm/index228.js +24 -51
  145. package/dist/esm/index229.js +51 -17
  146. package/dist/esm/index23.js +34 -55
  147. package/dist/esm/index230.js +17 -14
  148. package/dist/esm/index231.js +14 -11
  149. package/dist/esm/index232.js +11 -103
  150. package/dist/esm/index233.js +103 -6
  151. package/dist/esm/index234.js +5 -223
  152. package/dist/esm/index235.js +224 -6
  153. package/dist/esm/index236.js +7 -7
  154. package/dist/esm/index237.js +7 -27
  155. package/dist/esm/index238.js +25 -18
  156. package/dist/esm/index239.js +18 -145
  157. package/dist/esm/index24.js +55 -160
  158. package/dist/esm/index240.js +146 -12
  159. package/dist/esm/index241.js +12 -35
  160. package/dist/esm/index242.js +35 -41
  161. package/dist/esm/index243.js +41 -68
  162. package/dist/esm/index244.js +68 -3
  163. package/dist/esm/index245.js +3 -136
  164. package/dist/esm/index246.js +125 -144
  165. package/dist/esm/index247.js +155 -9
  166. package/dist/esm/index248.js +9 -16
  167. package/dist/esm/index249.js +16 -113
  168. package/dist/esm/index25.js +156 -32
  169. package/dist/esm/index250.js +95 -116
  170. package/dist/esm/index251.js +126 -70
  171. package/dist/esm/index252.js +79 -2
  172. package/dist/esm/index253.js +2 -699
  173. package/dist/esm/index254.js +685 -126
  174. package/dist/esm/index255.js +138 -41
  175. package/dist/esm/index256.js +40 -199
  176. package/dist/esm/index257.js +198 -62
  177. package/dist/esm/index258.js +65 -4
  178. package/dist/esm/index259.js +4 -40
  179. package/dist/esm/index26.js +39 -9
  180. package/dist/esm/index260.js +40 -7
  181. package/dist/esm/index261.js +7 -62
  182. package/dist/esm/index262.js +57 -72
  183. package/dist/esm/index263.js +78 -4
  184. package/dist/esm/index264.js +4 -195
  185. package/dist/esm/index265.js +183 -52
  186. package/dist/esm/index266.js +59 -40
  187. package/dist/esm/index267.js +44 -4
  188. package/dist/esm/index268.js +5 -5
  189. package/dist/esm/index269.js +5 -2
  190. package/dist/esm/index27.js +8 -30
  191. package/dist/esm/index270.js +2 -22
  192. package/dist/esm/index271.js +24 -0
  193. package/dist/esm/index28.js +21 -26
  194. package/dist/esm/index29.js +35 -8
  195. package/dist/esm/index3.js +2 -2
  196. package/dist/esm/index30.js +8 -28
  197. package/dist/esm/index31.js +27 -44
  198. package/dist/esm/index32.js +44 -86
  199. package/dist/esm/index33.js +83 -35
  200. package/dist/esm/index34.js +40 -8
  201. package/dist/esm/index35.js +7 -5
  202. package/dist/esm/index36.js +6 -16
  203. package/dist/esm/index37.js +16 -8
  204. package/dist/esm/index38.js +8 -13
  205. package/dist/esm/index39.js +13 -7
  206. package/dist/esm/index4.js +22 -33
  207. package/dist/esm/index40.js +7 -9
  208. package/dist/esm/index41.js +9 -16
  209. package/dist/esm/index42.js +16 -46
  210. package/dist/esm/index43.js +46 -13
  211. package/dist/esm/index44.js +13 -16
  212. package/dist/esm/index45.js +14 -11
  213. package/dist/esm/index46.js +13 -6
  214. package/dist/esm/index47.js +5 -34
  215. package/dist/esm/index48.js +34 -8
  216. package/dist/esm/index49.js +8 -7
  217. package/dist/esm/index5.js +33 -17
  218. package/dist/esm/index50.js +8 -25
  219. package/dist/esm/index51.js +25 -10
  220. package/dist/esm/index52.js +10 -14
  221. package/dist/esm/index53.js +14 -11
  222. package/dist/esm/index54.js +11 -116
  223. package/dist/esm/index55.js +114 -31
  224. package/dist/esm/index56.js +30 -76
  225. package/dist/esm/index57.js +78 -176
  226. package/dist/esm/index58.js +174 -41
  227. package/dist/esm/index59.js +44 -6
  228. package/dist/esm/index6.js +18 -12
  229. package/dist/esm/index60.js +5 -12
  230. package/dist/esm/index61.js +12 -12
  231. package/dist/esm/index62.js +13 -99
  232. package/dist/esm/index63.js +96 -69
  233. package/dist/esm/index64.js +61 -76
  234. package/dist/esm/index65.js +74 -135
  235. package/dist/esm/index66.js +108 -96
  236. package/dist/esm/index67.js +113 -45
  237. package/dist/esm/index68.js +68 -23
  238. package/dist/esm/index69.js +23 -105
  239. package/dist/esm/index7.js +12 -54
  240. package/dist/esm/index70.js +105 -6
  241. package/dist/esm/index71.js +6 -131
  242. package/dist/esm/index72.js +130 -274
  243. package/dist/esm/index73.js +276 -3
  244. package/dist/esm/index74.js +3 -4
  245. package/dist/esm/index75.js +4 -9
  246. package/dist/esm/index76.js +9 -2
  247. package/dist/esm/index77.js +2 -2
  248. package/dist/esm/index78.js +2 -3
  249. package/dist/esm/index79.js +3 -327
  250. package/dist/esm/index8.js +54 -58
  251. package/dist/esm/index80.js +324 -11
  252. package/dist/esm/index81.js +13 -4
  253. package/dist/esm/index82.js +4 -55
  254. package/dist/esm/index83.js +56 -2
  255. package/dist/esm/index84.js +2 -8
  256. package/dist/esm/index85.js +6 -213
  257. package/dist/esm/index86.js +215 -32
  258. package/dist/esm/index87.js +32 -22
  259. package/dist/esm/index88.js +21 -5
  260. package/dist/esm/index89.js +5 -73
  261. package/dist/esm/index9.js +58 -56
  262. package/dist/esm/index90.js +73 -5
  263. package/dist/esm/index91.js +4 -4
  264. package/dist/esm/index92.js +5 -35
  265. package/dist/esm/index93.js +29 -69
  266. package/dist/esm/index94.js +76 -3
  267. package/dist/esm/index95.js +3 -24
  268. package/dist/esm/index96.js +16 -444
  269. package/dist/esm/index97.js +444 -23
  270. package/dist/esm/index98.js +24 -20
  271. package/dist/esm/index99.js +18 -25
  272. package/dist/types/index.d.ts +18 -0
  273. package/package.json +5 -4
package/README.md CHANGED
@@ -780,6 +780,77 @@ function ExportSolanaKey() {
780
780
 
781
781
  Smart Accounts provide advanced account abstraction features with React hooks.
782
782
 
783
+ #### Create Spend Permissions
784
+
785
+ Spend permissions allow Smart Accounts to delegate spending authority to other accounts within specified limits and time periods. The `useCreateSpendPermission` hook provides an easy way to create spend permissions with automatic user operation tracking.
786
+
787
+ ```tsx lines
788
+ import { useCreateSpendPermission, useCurrentUser } from "@coinbase/cdp-hooks";
789
+
790
+ function CreateSpendPermission() {
791
+ const { createSpendPermission, status, data, error } = useCreateSpendPermission();
792
+ const { currentUser } = useCurrentUser();
793
+
794
+ const handleCreateSpendPermission = async () => {
795
+ try {
796
+ const result = await createSpendPermission({
797
+ network: "base-sepolia",
798
+ spender: "0x742D35Cc6634C0532925a3b8D6Ec6F1C2b9c1E46", // Address that can spend tokens
799
+ token: "usdc", // Token symbol ("eth", "usdc") or contract address
800
+ allowance: "10000000", // 10 USDC (6 decimals)
801
+ periodInDays: 7, // Weekly recurring allowance
802
+ useCdpPaymaster: true, // Use CDP paymaster for gas sponsorship
803
+ });
804
+
805
+ console.log("User Operation Hash:", result.userOperationHash);
806
+ } catch (error) {
807
+ console.error("Failed to create spend permission:", error);
808
+ }
809
+ };
810
+
811
+ return (
812
+ <div>
813
+ {status === "idle" && <p>Ready to create spend permission</p>}
814
+
815
+ {status === "pending" && (
816
+ <div>
817
+ <p>Creating spend permission...</p>
818
+ {data && <p>User Op Hash: {data.userOpHash}</p>}
819
+ </div>
820
+ )}
821
+
822
+ {status === "success" && data && (
823
+ <div>
824
+ <p>Spend permission created successfully!</p>
825
+ <p>Transaction Hash: {data.transactionHash}</p>
826
+ <p>Status: {data.status}</p>
827
+ </div>
828
+ )}
829
+
830
+ {status === "error" && (
831
+ <div>
832
+ <p>Failed to create spend permission</p>
833
+ <p>Error: {error?.message}</p>
834
+ </div>
835
+ )}
836
+
837
+ <button
838
+ onClick={handleCreateSpendPermission}
839
+ disabled={status === "pending" || !currentUser?.evmSmartAccounts?.[0]}
840
+ >
841
+ {status === "pending" ? "Creating..." : "Create Spend Permission"}
842
+ </button>
843
+ </div>
844
+ );
845
+ }
846
+ ```
847
+
848
+ The hook automatically:
849
+ - Detects the user's Smart Account (or allows you to specify `evmSmartAccount`)
850
+ - Converts `periodInDays` to seconds
851
+ - Resolves token symbols like "eth" and "usdc" to contract addresses
852
+ - Tracks the user operation status and provides real-time updates
853
+
783
854
  #### Send User Operations
784
855
 
785
856
  Send user operations from Smart Accounts with support for multiple calls and paymaster sponsorship. The hook returns a method to execute the user operation and `status`, `data`, and `error` properties to read the result of the user operation:
package/dist/esm/index.js CHANGED
@@ -1,29 +1,31 @@
1
1
  import { APIError as n } from "@coinbase/cdp-core";
2
- import { CDPContext as u, CDPHooksProvider as o } from "./index2.js";
3
- import { useConfig as i, useCurrentUser as t, useEnforceAuthenticated as S, useEnforceUnauthenticated as c, useEvmAddress as m, useExportEvmAccount as E, useExportSolanaAccount as d, useGetAccessToken as g, useIsInitialized as f, useIsSignedIn as l, useSendEvmTransaction as p, useSendSolanaTransaction as v, useSendUserOperation as T, useSignEvmHash as A, useSignEvmMessage as I, useSignEvmTransaction as x, useSignEvmTypedData as P, useSignInWithEmail as h, useSignInWithSms as C, useSignOut as O, useSignSolanaMessage as U, useSignSolanaTransaction as y, useSolanaAddress as D, useVerifyEmailOTP as W, useVerifySmsOTP as k, useWaitForUserOperation as H } from "./index3.js";
2
+ import { CDPContext as o, CDPHooksProvider as a } from "./index2.js";
3
+ import { useConfig as i, useCurrentUser as t, useEnforceAuthenticated as S, useEnforceUnauthenticated as m, useEvmAddress as c, useExportEvmAccount as d, useExportSolanaAccount as E, useGetAccessToken as g, useIsInitialized as p, useIsSignedIn as f, useSendEvmTransaction as l, useSendSolanaTransaction as v, useSendUserOperation as T, useSignEvmHash as x, useSignEvmMessage as A, useSignEvmTransaction as I, useSignEvmTypedData as P, useSignInWithEmail as C, useSignInWithSms as h, useSignOut as O, useSignSolanaMessage as U, useSignSolanaTransaction as y, useSolanaAddress as D, useVerifyEmailOTP as W, useVerifySmsOTP as k, useWaitForUserOperation as H } from "./index3.js";
4
+ import { useCreateSpendPermission as V } from "./index4.js";
4
5
  export {
5
6
  n as APIError,
6
- u as CDPContext,
7
- o as CDPHooksProvider,
7
+ o as CDPContext,
8
+ a as CDPHooksProvider,
8
9
  i as useConfig,
10
+ V as useCreateSpendPermission,
9
11
  t as useCurrentUser,
10
12
  S as useEnforceAuthenticated,
11
- c as useEnforceUnauthenticated,
12
- m as useEvmAddress,
13
- E as useExportEvmAccount,
14
- d as useExportSolanaAccount,
13
+ m as useEnforceUnauthenticated,
14
+ c as useEvmAddress,
15
+ d as useExportEvmAccount,
16
+ E as useExportSolanaAccount,
15
17
  g as useGetAccessToken,
16
- f as useIsInitialized,
17
- l as useIsSignedIn,
18
- p as useSendEvmTransaction,
18
+ p as useIsInitialized,
19
+ f as useIsSignedIn,
20
+ l as useSendEvmTransaction,
19
21
  v as useSendSolanaTransaction,
20
22
  T as useSendUserOperation,
21
- A as useSignEvmHash,
22
- I as useSignEvmMessage,
23
- x as useSignEvmTransaction,
23
+ x as useSignEvmHash,
24
+ A as useSignEvmMessage,
25
+ I as useSignEvmTransaction,
24
26
  P as useSignEvmTypedData,
25
- h as useSignInWithEmail,
26
- C as useSignInWithSms,
27
+ C as useSignInWithEmail,
28
+ h as useSignInWithSms,
27
29
  O as useSignOut,
28
30
  U as useSignSolanaMessage,
29
31
  y as useSignSolanaTransaction,
@@ -1,35 +1,58 @@
1
- import { parseAccount as I } from "./index11.js";
2
- import { uid as M } from "./index12.js";
3
- function O(n) {
4
- const { batch: s, chain: e, ccipRead: u, key: d = "base", name: f = "Base Client", type: m = "base" } = n, o = n.experimental_blockTag ?? (typeof e?.experimental_preconfirmationTime == "number" ? "pending" : void 0), b = e?.blockTime ?? 12e3, p = Math.min(Math.max(Math.floor(b / 2), 500), 4e3), t = n.pollingInterval ?? p, g = n.cacheTime ?? t, x = n.account ? I(n.account) : void 0, { config: h, request: T, value: k } = n.transport({
5
- chain: e,
6
- pollingInterval: t
7
- }), _ = { ...h, ...k }, c = {
8
- account: x,
9
- batch: s,
10
- cacheTime: g,
11
- ccipRead: u,
12
- chain: e,
13
- key: d,
14
- name: f,
15
- pollingInterval: t,
16
- request: T,
17
- transport: _,
18
- type: m,
19
- uid: M(),
20
- ...o ? { experimental_blockTag: o } : {}
21
- };
22
- function i(l) {
23
- return (v) => {
24
- const a = v(l);
25
- for (const y in c)
26
- delete a[y];
27
- const r = { ...l, ...a };
28
- return Object.assign(r, { extend: i(r) });
29
- };
30
- }
31
- return Object.assign(c, { extend: i(c) });
32
- }
1
+ import { chainConfig as a } from "./index190.js";
2
+ import { defineChain as t } from "./index173.js";
3
+ const e = 11155111, r = /* @__PURE__ */ t({
4
+ ...a,
5
+ id: 84532,
6
+ network: "base-sepolia",
7
+ name: "Base Sepolia",
8
+ nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
9
+ rpcUrls: {
10
+ default: {
11
+ http: ["https://sepolia.base.org"]
12
+ }
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: "Basescan",
17
+ url: "https://sepolia.basescan.org",
18
+ apiUrl: "https://api-sepolia.basescan.org/api"
19
+ }
20
+ },
21
+ contracts: {
22
+ ...a.contracts,
23
+ disputeGameFactory: {
24
+ [e]: {
25
+ address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"
26
+ }
27
+ },
28
+ l2OutputOracle: {
29
+ [e]: {
30
+ address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"
31
+ }
32
+ },
33
+ portal: {
34
+ [e]: {
35
+ address: "0x49f53e41452c74589e85ca1677426ba426459e85",
36
+ blockCreated: 4446677
37
+ }
38
+ },
39
+ l1StandardBridge: {
40
+ [e]: {
41
+ address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120",
42
+ blockCreated: 4446677
43
+ }
44
+ },
45
+ multicall3: {
46
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
47
+ blockCreated: 1059647
48
+ }
49
+ },
50
+ testnet: !0,
51
+ sourceId: e
52
+ });
53
+ ({
54
+ ...r
55
+ });
33
56
  export {
34
- O as createClient
57
+ r as baseSepolia
35
58
  };
@@ -1,37 +1,36 @@
1
- import { formatEther as E } from "./index90.js";
2
- import { formatGwei as t } from "./index91.js";
3
- import { BaseError as y } from "./index82.js";
4
- import { prettyPrint as l } from "./index93.js";
5
- class x extends y {
6
- constructor(e, { account: a, docsPath: n, chain: m, data: f, gas: u, gasPrice: r, maxFeePerGas: o, maxPriorityFeePerGas: s, nonce: d, to: p, value: i }) {
7
- const g = l({
8
- from: a?.address,
9
- to: p,
10
- value: typeof i < "u" && `${E(i)} ${m?.nativeCurrency?.symbol || "ETH"}`,
11
- data: f,
12
- gas: u,
13
- gasPrice: typeof r < "u" && `${t(r)} gwei`,
14
- maxFeePerGas: typeof o < "u" && `${t(o)} gwei`,
15
- maxPriorityFeePerGas: typeof s < "u" && `${t(s)} gwei`,
16
- nonce: d
17
- });
18
- super(e.shortMessage, {
19
- cause: e,
20
- docsPath: n,
1
+ import { BaseError as r } from "./index83.js";
2
+ class s extends r {
3
+ constructor({ data: a }) {
4
+ super("Unable to extract image from metadata. The metadata may be malformed or invalid.", {
21
5
  metaMessages: [
22
- ...e.metaMessages ? [...e.metaMessages, " "] : [],
23
- "Estimate Gas Arguments:",
24
- g
25
- ].filter(Boolean),
26
- name: "EstimateGasExecutionError"
27
- }), Object.defineProperty(this, "cause", {
28
- enumerable: !0,
29
- configurable: !0,
30
- writable: !0,
31
- value: void 0
32
- }), this.cause = e;
6
+ "- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.",
7
+ "",
8
+ `Provided data: ${JSON.stringify(a)}`
9
+ ],
10
+ name: "EnsAvatarInvalidMetadataError"
11
+ });
12
+ }
13
+ }
14
+ class o extends r {
15
+ constructor({ reason: a }) {
16
+ super(`ENS NFT avatar URI is invalid. ${a}`, {
17
+ name: "EnsAvatarInvalidNftUriError"
18
+ });
19
+ }
20
+ }
21
+ class n extends r {
22
+ constructor({ uri: a }) {
23
+ super(`Unable to resolve ENS avatar URI "${a}". The URI may be malformed, invalid, or does not respond with a valid image.`, { name: "EnsAvatarUriResolutionError" });
24
+ }
25
+ }
26
+ class i extends r {
27
+ constructor({ namespace: a }) {
28
+ super(`ENS NFT avatar namespace "${a}" is not supported. Must be "erc721" or "erc1155".`, { name: "EnsAvatarUnsupportedNamespaceError" });
33
29
  }
34
30
  }
35
31
  export {
36
- x as EstimateGasExecutionError
32
+ s as EnsAvatarInvalidMetadataError,
33
+ o as EnsAvatarInvalidNftUriError,
34
+ i as EnsAvatarUnsupportedNamespaceError,
35
+ n as EnsAvatarUriResolutionError
37
36
  };
@@ -1,196 +1,37 @@
1
- import { formatGwei as a } from "./index91.js";
2
- import { BaseError as t } from "./index82.js";
3
- class s extends t {
4
- constructor({ cause: r, message: e } = {}) {
5
- const n = e?.replace("execution reverted: ", "")?.replace("execution reverted", "");
6
- super(`Execution reverted ${n ? `with reason: ${n}` : "for an unknown reason"}.`, {
7
- cause: r,
8
- name: "ExecutionRevertedError"
9
- });
10
- }
11
- }
12
- Object.defineProperty(s, "code", {
13
- enumerable: !0,
14
- configurable: !0,
15
- writable: !0,
16
- value: 3
17
- });
18
- Object.defineProperty(s, "nodeMessage", {
19
- enumerable: !0,
20
- configurable: !0,
21
- writable: !0,
22
- value: /execution reverted/
23
- });
24
- class c extends t {
25
- constructor({ cause: r, maxFeePerGas: e } = {}) {
26
- super(`The fee cap (\`maxFeePerGas\`${e ? ` = ${a(e)} gwei` : ""}) cannot be higher than the maximum allowed value (2^256-1).`, {
27
- cause: r,
28
- name: "FeeCapTooHighError"
29
- });
30
- }
31
- }
32
- Object.defineProperty(c, "nodeMessage", {
33
- enumerable: !0,
34
- configurable: !0,
35
- writable: !0,
36
- value: /max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/
37
- });
38
- class i extends t {
39
- constructor({ cause: r, maxFeePerGas: e } = {}) {
40
- super(`The fee cap (\`maxFeePerGas\`${e ? ` = ${a(e)}` : ""} gwei) cannot be lower than the block base fee.`, {
41
- cause: r,
42
- name: "FeeCapTooLowError"
43
- });
44
- }
45
- }
46
- Object.defineProperty(i, "nodeMessage", {
47
- enumerable: !0,
48
- configurable: !0,
49
- writable: !0,
50
- value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/
51
- });
52
- class u extends t {
53
- constructor({ cause: r, nonce: e } = {}) {
54
- super(`Nonce provided for the transaction ${e ? `(${e}) ` : ""}is higher than the next one expected.`, { cause: r, name: "NonceTooHighError" });
55
- }
56
- }
57
- Object.defineProperty(u, "nodeMessage", {
58
- enumerable: !0,
59
- configurable: !0,
60
- writable: !0,
61
- value: /nonce too high/
62
- });
63
- class l extends t {
64
- constructor({ cause: r, nonce: e } = {}) {
65
- super([
66
- `Nonce provided for the transaction ${e ? `(${e}) ` : ""}is lower than the current nonce of the account.`,
67
- "Try increasing the nonce or find the latest nonce with `getTransactionCount`."
68
- ].join(`
69
- `), { cause: r, name: "NonceTooLowError" });
70
- }
71
- }
72
- Object.defineProperty(l, "nodeMessage", {
73
- enumerable: !0,
74
- configurable: !0,
75
- writable: !0,
76
- value: /nonce too low|transaction already imported|already known/
77
- });
78
- class d extends t {
79
- constructor({ cause: r, nonce: e } = {}) {
80
- super(`Nonce provided for the transaction ${e ? `(${e}) ` : ""}exceeds the maximum allowed nonce.`, { cause: r, name: "NonceMaxValueError" });
81
- }
82
- }
83
- Object.defineProperty(d, "nodeMessage", {
84
- enumerable: !0,
85
- configurable: !0,
86
- writable: !0,
87
- value: /nonce has max value/
88
- });
89
- class h extends t {
90
- constructor({ cause: r } = {}) {
91
- super([
92
- "The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."
93
- ].join(`
94
- `), {
95
- cause: r,
1
+ import { formatEther as E } from "./index91.js";
2
+ import { formatGwei as t } from "./index92.js";
3
+ import { BaseError as y } from "./index83.js";
4
+ import { prettyPrint as l } from "./index94.js";
5
+ class x extends y {
6
+ constructor(e, { account: a, docsPath: n, chain: m, data: f, gas: u, gasPrice: r, maxFeePerGas: o, maxPriorityFeePerGas: s, nonce: d, to: p, value: i }) {
7
+ const g = l({
8
+ from: a?.address,
9
+ to: p,
10
+ value: typeof i < "u" && `${E(i)} ${m?.nativeCurrency?.symbol || "ETH"}`,
11
+ data: f,
12
+ gas: u,
13
+ gasPrice: typeof r < "u" && `${t(r)} gwei`,
14
+ maxFeePerGas: typeof o < "u" && `${t(o)} gwei`,
15
+ maxPriorityFeePerGas: typeof s < "u" && `${t(s)} gwei`,
16
+ nonce: d
17
+ });
18
+ super(e.shortMessage, {
19
+ cause: e,
20
+ docsPath: n,
96
21
  metaMessages: [
97
- "This error could arise when the account does not have enough funds to:",
98
- " - pay for the total gas fee,",
99
- " - pay for the value to send.",
100
- " ",
101
- "The cost of the transaction is calculated as `gas * gas fee + value`, where:",
102
- " - `gas` is the amount of gas needed for transaction to execute,",
103
- " - `gas fee` is the gas fee,",
104
- " - `value` is the amount of ether to send to the recipient."
105
- ],
106
- name: "InsufficientFundsError"
107
- });
108
- }
109
- }
110
- Object.defineProperty(h, "nodeMessage", {
111
- enumerable: !0,
112
- configurable: !0,
113
- writable: !0,
114
- value: /insufficient funds|exceeds transaction sender account balance/
115
- });
116
- class f extends t {
117
- constructor({ cause: r, gas: e } = {}) {
118
- super(`The amount of gas ${e ? `(${e}) ` : ""}provided for the transaction exceeds the limit allowed for the block.`, {
119
- cause: r,
120
- name: "IntrinsicGasTooHighError"
121
- });
122
- }
123
- }
124
- Object.defineProperty(f, "nodeMessage", {
125
- enumerable: !0,
126
- configurable: !0,
127
- writable: !0,
128
- value: /intrinsic gas too high|gas limit reached/
129
- });
130
- class p extends t {
131
- constructor({ cause: r, gas: e } = {}) {
132
- super(`The amount of gas ${e ? `(${e}) ` : ""}provided for the transaction is too low.`, {
133
- cause: r,
134
- name: "IntrinsicGasTooLowError"
135
- });
136
- }
137
- }
138
- Object.defineProperty(p, "nodeMessage", {
139
- enumerable: !0,
140
- configurable: !0,
141
- writable: !0,
142
- value: /intrinsic gas too low/
143
- });
144
- class g extends t {
145
- constructor({ cause: r }) {
146
- super("The transaction type is not supported for this chain.", {
147
- cause: r,
148
- name: "TransactionTypeNotSupportedError"
149
- });
150
- }
151
- }
152
- Object.defineProperty(g, "nodeMessage", {
153
- enumerable: !0,
154
- configurable: !0,
155
- writable: !0,
156
- value: /transaction type not valid/
157
- });
158
- class b extends t {
159
- constructor({ cause: r, maxPriorityFeePerGas: e, maxFeePerGas: n } = {}) {
160
- super([
161
- `The provided tip (\`maxPriorityFeePerGas\`${e ? ` = ${a(e)} gwei` : ""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n ? ` = ${a(n)} gwei` : ""}).`
162
- ].join(`
163
- `), {
164
- cause: r,
165
- name: "TipAboveFeeCapError"
166
- });
167
- }
168
- }
169
- Object.defineProperty(b, "nodeMessage", {
170
- enumerable: !0,
171
- configurable: !0,
172
- writable: !0,
173
- value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/
174
- });
175
- class x extends t {
176
- constructor({ cause: r }) {
177
- super(`An error occurred while executing: ${r?.shortMessage}`, {
178
- cause: r,
179
- name: "UnknownNodeError"
180
- });
22
+ ...e.metaMessages ? [...e.metaMessages, " "] : [],
23
+ "Estimate Gas Arguments:",
24
+ g
25
+ ].filter(Boolean),
26
+ name: "EstimateGasExecutionError"
27
+ }), Object.defineProperty(this, "cause", {
28
+ enumerable: !0,
29
+ configurable: !0,
30
+ writable: !0,
31
+ value: void 0
32
+ }), this.cause = e;
181
33
  }
182
34
  }
183
35
  export {
184
- s as ExecutionRevertedError,
185
- c as FeeCapTooHighError,
186
- i as FeeCapTooLowError,
187
- h as InsufficientFundsError,
188
- f as IntrinsicGasTooHighError,
189
- p as IntrinsicGasTooLowError,
190
- d as NonceMaxValueError,
191
- u as NonceTooHighError,
192
- l as NonceTooLowError,
193
- b as TipAboveFeeCapError,
194
- g as TransactionTypeNotSupportedError,
195
- x as UnknownNodeError
36
+ x as EstimateGasExecutionError
196
37
  };