@coinbase/cdp-hooks 0.0.20 → 0.0.21

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 (270) hide show
  1. package/README.md +160 -2
  2. package/dist/esm/index.js +12 -10
  3. package/dist/esm/index10.js +32 -3
  4. package/dist/esm/index100.js +32 -191
  5. package/dist/esm/index101.js +191 -6
  6. package/dist/esm/index102.js +9 -2
  7. package/dist/esm/index103.js +2 -13
  8. package/dist/esm/index104.js +11 -17
  9. package/dist/esm/index105.js +13 -22
  10. package/dist/esm/index106.js +27 -8
  11. package/dist/esm/index107.js +8 -55
  12. package/dist/esm/index108.js +50 -40
  13. package/dist/esm/index109.js +45 -8
  14. package/dist/esm/index11.js +3 -9
  15. package/dist/esm/index110.js +8 -7
  16. package/dist/esm/index111.js +7 -16
  17. package/dist/esm/index112.js +16 -18
  18. package/dist/esm/index113.js +18 -24
  19. package/dist/esm/index114.js +24 -16
  20. package/dist/esm/index115.js +16 -54
  21. package/dist/esm/index116.js +53 -10
  22. package/dist/esm/index117.js +11 -160
  23. package/dist/esm/index118.js +160 -21
  24. package/dist/esm/index119.js +21 -127
  25. package/dist/esm/index12.js +8 -67
  26. package/dist/esm/index120.js +127 -38
  27. package/dist/esm/index121.js +38 -6
  28. package/dist/esm/index122.js +6 -27
  29. package/dist/esm/index123.js +27 -191
  30. package/dist/esm/index124.js +192 -4
  31. package/dist/esm/index125.js +4 -65
  32. package/dist/esm/index126.js +65 -3
  33. package/dist/esm/index127.js +3 -21
  34. package/dist/esm/index128.js +19 -15
  35. package/dist/esm/index129.js +16 -23
  36. package/dist/esm/index13.js +66 -7
  37. package/dist/esm/index130.js +23 -11
  38. package/dist/esm/index131.js +11 -34
  39. package/dist/esm/index132.js +35 -3
  40. package/dist/esm/index133.js +3 -19
  41. package/dist/esm/index134.js +18 -27
  42. package/dist/esm/index135.js +25 -33
  43. package/dist/esm/index136.js +35 -7
  44. package/dist/esm/index137.js +7 -25
  45. package/dist/esm/index138.js +20 -23
  46. package/dist/esm/index139.js +27 -63
  47. package/dist/esm/index14.js +8 -27
  48. package/dist/esm/index140.js +64 -9
  49. package/dist/esm/index141.js +9 -33
  50. package/dist/esm/index142.js +33 -27
  51. package/dist/esm/index143.js +26 -23
  52. package/dist/esm/index144.js +24 -3
  53. package/dist/esm/index145.js +3 -14
  54. package/dist/esm/index146.js +14 -103
  55. package/dist/esm/index147.js +99 -60
  56. package/dist/esm/index148.js +64 -5
  57. package/dist/esm/index149.js +5 -6
  58. package/dist/esm/index15.js +25 -67
  59. package/dist/esm/index150.js +6 -27
  60. package/dist/esm/index151.js +27 -39
  61. package/dist/esm/index152.js +39 -13
  62. package/dist/esm/index153.js +13 -42
  63. package/dist/esm/index154.js +42 -5
  64. package/dist/esm/index155.js +5 -11
  65. package/dist/esm/index156.js +11 -19
  66. package/dist/esm/index157.js +18 -77
  67. package/dist/esm/index158.js +79 -2
  68. package/dist/esm/index159.js +2 -38
  69. package/dist/esm/index16.js +68 -17
  70. package/dist/esm/index160.js +32 -105
  71. package/dist/esm/index161.js +105 -43
  72. package/dist/esm/index162.js +47 -31
  73. package/dist/esm/index163.js +32 -8
  74. package/dist/esm/index164.js +8 -6
  75. package/dist/esm/index165.js +6 -6
  76. package/dist/esm/index166.js +6 -11
  77. package/dist/esm/index167.js +11 -10
  78. package/dist/esm/index168.js +10 -13
  79. package/dist/esm/index169.js +12 -31
  80. package/dist/esm/index17.js +17 -108
  81. package/dist/esm/index170.js +33 -5
  82. package/dist/esm/index171.js +5 -9
  83. package/dist/esm/index172.js +8 -19
  84. package/dist/esm/index173.js +19 -31
  85. package/dist/esm/index174.js +31 -20
  86. package/dist/esm/index175.js +20 -3
  87. package/dist/esm/index176.js +3 -17
  88. package/dist/esm/index177.js +17 -10
  89. package/dist/esm/index178.js +10 -21
  90. package/dist/esm/index179.js +21 -22
  91. package/dist/esm/index18.js +110 -60
  92. package/dist/esm/index180.js +22 -5
  93. package/dist/esm/index181.js +5 -5
  94. package/dist/esm/index182.js +5 -8
  95. package/dist/esm/index183.js +8 -104
  96. package/dist/esm/index184.js +105 -3
  97. package/dist/esm/index185.js +3 -19
  98. package/dist/esm/index186.js +17 -170
  99. package/dist/esm/index187.js +170 -16
  100. package/dist/esm/index188.js +18 -10
  101. package/dist/esm/index189.js +10 -41
  102. package/dist/esm/index19.js +56 -20
  103. package/dist/esm/index190.js +41 -2
  104. package/dist/esm/index191.js +2 -5
  105. package/dist/esm/index192.js +4 -10
  106. package/dist/esm/index193.js +9 -18
  107. package/dist/esm/index194.js +19 -7
  108. package/dist/esm/index195.js +7 -11
  109. package/dist/esm/index196.js +11 -66
  110. package/dist/esm/index197.js +65 -64
  111. package/dist/esm/index198.js +60 -180
  112. package/dist/esm/index199.js +183 -20
  113. package/dist/esm/index20.js +22 -38
  114. package/dist/esm/index200.js +21 -41
  115. package/dist/esm/index201.js +20 -54
  116. package/dist/esm/index202.js +54 -18
  117. package/dist/esm/index203.js +34 -10
  118. package/dist/esm/index204.js +10 -7
  119. package/dist/esm/index205.js +13 -36
  120. package/dist/esm/index206.js +7 -15
  121. package/dist/esm/index207.js +6 -8
  122. package/dist/esm/index208.js +35 -11
  123. package/dist/esm/index209.js +15 -9
  124. package/dist/esm/index21.js +37 -34
  125. package/dist/esm/index210.js +8 -16
  126. package/dist/esm/index211.js +9 -7
  127. package/dist/esm/index212.js +15 -21
  128. package/dist/esm/index213.js +22 -30
  129. package/dist/esm/index214.js +31 -2
  130. package/dist/esm/index215.js +2 -14
  131. package/dist/esm/index216.js +13 -12
  132. package/dist/esm/index217.js +10 -45
  133. package/dist/esm/index218.js +46 -5
  134. package/dist/esm/index219.js +2 -2
  135. package/dist/esm/index22.js +34 -55
  136. package/dist/esm/index220.js +2 -2
  137. package/dist/esm/index221.js +1 -1
  138. package/dist/esm/index223.js +1 -1
  139. package/dist/esm/index224.js +2 -2
  140. package/dist/esm/index225.js +3 -3
  141. package/dist/esm/index226.js +3 -3
  142. package/dist/esm/index227.js +16 -16
  143. package/dist/esm/index229.js +2 -2
  144. package/dist/esm/index23.js +55 -160
  145. package/dist/esm/index230.js +1 -1
  146. package/dist/esm/index231.js +11 -102
  147. package/dist/esm/index232.js +103 -6
  148. package/dist/esm/index233.js +5 -223
  149. package/dist/esm/index234.js +224 -6
  150. package/dist/esm/index235.js +7 -7
  151. package/dist/esm/index236.js +7 -27
  152. package/dist/esm/index237.js +25 -18
  153. package/dist/esm/index238.js +18 -145
  154. package/dist/esm/index239.js +146 -12
  155. package/dist/esm/index24.js +156 -32
  156. package/dist/esm/index240.js +12 -35
  157. package/dist/esm/index241.js +35 -41
  158. package/dist/esm/index242.js +41 -68
  159. package/dist/esm/index243.js +68 -3
  160. package/dist/esm/index244.js +3 -136
  161. package/dist/esm/index245.js +125 -144
  162. package/dist/esm/index246.js +155 -9
  163. package/dist/esm/index247.js +9 -16
  164. package/dist/esm/index248.js +16 -113
  165. package/dist/esm/index249.js +95 -116
  166. package/dist/esm/index25.js +39 -9
  167. package/dist/esm/index250.js +126 -70
  168. package/dist/esm/index251.js +79 -2
  169. package/dist/esm/index252.js +2 -699
  170. package/dist/esm/index253.js +685 -126
  171. package/dist/esm/index254.js +138 -41
  172. package/dist/esm/index255.js +40 -199
  173. package/dist/esm/index256.js +198 -62
  174. package/dist/esm/index257.js +65 -4
  175. package/dist/esm/index258.js +4 -40
  176. package/dist/esm/index259.js +40 -7
  177. package/dist/esm/index26.js +8 -30
  178. package/dist/esm/index260.js +7 -62
  179. package/dist/esm/index261.js +57 -72
  180. package/dist/esm/index262.js +78 -4
  181. package/dist/esm/index263.js +4 -195
  182. package/dist/esm/index264.js +183 -52
  183. package/dist/esm/index265.js +59 -40
  184. package/dist/esm/index266.js +44 -4
  185. package/dist/esm/index267.js +5 -5
  186. package/dist/esm/index268.js +5 -2
  187. package/dist/esm/index269.js +2 -22
  188. package/dist/esm/index27.js +21 -26
  189. package/dist/esm/index270.js +24 -0
  190. package/dist/esm/index28.js +35 -8
  191. package/dist/esm/index29.js +8 -28
  192. package/dist/esm/index3.js +127 -65
  193. package/dist/esm/index30.js +27 -44
  194. package/dist/esm/index31.js +44 -86
  195. package/dist/esm/index32.js +83 -35
  196. package/dist/esm/index33.js +40 -8
  197. package/dist/esm/index34.js +7 -5
  198. package/dist/esm/index35.js +6 -16
  199. package/dist/esm/index36.js +16 -8
  200. package/dist/esm/index37.js +8 -13
  201. package/dist/esm/index38.js +13 -7
  202. package/dist/esm/index39.js +7 -9
  203. package/dist/esm/index4.js +33 -17
  204. package/dist/esm/index40.js +9 -16
  205. package/dist/esm/index41.js +16 -46
  206. package/dist/esm/index42.js +46 -13
  207. package/dist/esm/index43.js +13 -16
  208. package/dist/esm/index44.js +14 -11
  209. package/dist/esm/index45.js +13 -6
  210. package/dist/esm/index46.js +5 -34
  211. package/dist/esm/index47.js +34 -8
  212. package/dist/esm/index48.js +8 -7
  213. package/dist/esm/index49.js +8 -25
  214. package/dist/esm/index5.js +18 -12
  215. package/dist/esm/index50.js +25 -10
  216. package/dist/esm/index51.js +10 -14
  217. package/dist/esm/index52.js +14 -11
  218. package/dist/esm/index53.js +11 -116
  219. package/dist/esm/index54.js +114 -31
  220. package/dist/esm/index55.js +30 -76
  221. package/dist/esm/index56.js +78 -176
  222. package/dist/esm/index57.js +174 -41
  223. package/dist/esm/index58.js +44 -6
  224. package/dist/esm/index59.js +5 -12
  225. package/dist/esm/index6.js +12 -54
  226. package/dist/esm/index60.js +12 -12
  227. package/dist/esm/index61.js +13 -99
  228. package/dist/esm/index62.js +96 -69
  229. package/dist/esm/index63.js +61 -76
  230. package/dist/esm/index64.js +74 -135
  231. package/dist/esm/index65.js +108 -96
  232. package/dist/esm/index66.js +113 -45
  233. package/dist/esm/index67.js +68 -23
  234. package/dist/esm/index68.js +23 -105
  235. package/dist/esm/index69.js +105 -6
  236. package/dist/esm/index7.js +54 -58
  237. package/dist/esm/index70.js +6 -131
  238. package/dist/esm/index71.js +130 -274
  239. package/dist/esm/index72.js +276 -3
  240. package/dist/esm/index73.js +3 -4
  241. package/dist/esm/index74.js +4 -9
  242. package/dist/esm/index75.js +9 -2
  243. package/dist/esm/index76.js +2 -2
  244. package/dist/esm/index77.js +2 -3
  245. package/dist/esm/index78.js +3 -327
  246. package/dist/esm/index79.js +324 -11
  247. package/dist/esm/index8.js +58 -56
  248. package/dist/esm/index80.js +13 -4
  249. package/dist/esm/index81.js +4 -55
  250. package/dist/esm/index82.js +56 -2
  251. package/dist/esm/index83.js +2 -8
  252. package/dist/esm/index84.js +6 -213
  253. package/dist/esm/index85.js +215 -32
  254. package/dist/esm/index86.js +32 -22
  255. package/dist/esm/index87.js +21 -5
  256. package/dist/esm/index88.js +5 -73
  257. package/dist/esm/index89.js +73 -5
  258. package/dist/esm/index9.js +56 -33
  259. package/dist/esm/index90.js +4 -4
  260. package/dist/esm/index91.js +5 -35
  261. package/dist/esm/index92.js +29 -69
  262. package/dist/esm/index93.js +76 -3
  263. package/dist/esm/index94.js +3 -24
  264. package/dist/esm/index95.js +16 -444
  265. package/dist/esm/index96.js +444 -23
  266. package/dist/esm/index97.js +24 -20
  267. package/dist/esm/index98.js +18 -25
  268. package/dist/esm/index99.js +31 -32
  269. package/dist/types/index.d.ts +29 -0
  270. package/package.json +3 -3
package/README.md CHANGED
@@ -58,6 +58,27 @@ function App() {
58
58
  }
59
59
  ```
60
60
 
61
+ #### Smart Account Configuration
62
+
63
+ You can configure the provider to automatically create Smart Accounts for new users:
64
+
65
+ ```tsx
66
+ function App() {
67
+ return (
68
+ <CDPHooksProvider
69
+ config={{
70
+ projectId: "your-project-id",
71
+ createAccountOnLogin: "evm-smart", // Creates Smart Accounts instead of EOAs
72
+ }}
73
+ >
74
+ <App />
75
+ </CDPHooksProvider>
76
+ );
77
+ }
78
+ ```
79
+
80
+ * When `createAccountOnLogin` is set to `"evm-smart"`, new users will automatically get both an EOA and a Smart Account.
81
+
61
82
  ### Sign In a User
62
83
 
63
84
  End user authentication proceeds in two steps:
@@ -89,7 +110,8 @@ function SignIn() {
89
110
  });
90
111
 
91
112
  console.log("Signed in user:", user);
92
- console.log("User EVM address", user.evmAccounts[0]);
113
+ console.log("User EVM address (EOA):", user.evmAccounts[0]);
114
+ console.log("User Smart Account:", user.evmSmartAccounts?.[0]);
93
115
  } catch (error) {
94
116
  console.error("Sign in failed:", error);
95
117
  }
@@ -120,7 +142,10 @@ function UserInformation() {
120
142
  <div>
121
143
  <h2>User Information</h2>
122
144
  <p>User ID: {user.userId}</p>
123
- <p>EVM Address: {evmAddress}</p>
145
+ <p>EVM Address (EOA): {evmAddress}</p>
146
+ {user.evmSmartAccounts?.[0] && (
147
+ <p>Smart Account: {user.evmSmartAccounts[0]}</p>
148
+ )}
124
149
  { email && <p>EmailAddress: {emailAddress}</p>}
125
150
  </div>
126
151
  );
@@ -327,3 +352,136 @@ function ExportKey() {
327
352
  return <button onClick={handleExport}>Export Private Key</button>;
328
353
  }
329
354
  ```
355
+
356
+ ### Smart Account Operations
357
+
358
+ Smart Accounts provide advanced account abstraction features with React hooks.
359
+
360
+ #### Send User Operations
361
+
362
+ Send user operations from Smart Accounts with support for multiple calls and paymaster sponsorship:
363
+
364
+ ```tsx
365
+ import { useSendUserOperation, useCurrentUser } from "@coinbase/cdp-hooks";
366
+
367
+ function SendUserOperation() {
368
+ const { sendUserOperation, data } = useSendUserOperation();
369
+ const { currentUser } = useCurrentUser();
370
+
371
+ const handleSendUserOperation = async () => {
372
+ const smartAccount = currentUser?.evmSmartAccounts?.[0];
373
+ if (!smartAccount) return;
374
+
375
+ try {
376
+ // This will automatically start tracking the user operation status
377
+ const result = await sendUserOperation({
378
+ evmSmartAccount: smartAccount,
379
+ network: "base-sepolia",
380
+ calls: [{
381
+ to: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
382
+ value: 1000000000000000000n,
383
+ data: "0x",
384
+ }],
385
+ });
386
+
387
+ console.log("User Operation Hash:", result.userOperationHash);
388
+ } catch (error) {
389
+ console.error("Failed to send user operation:", error);
390
+ }
391
+ };
392
+
393
+ return (
394
+ <div>
395
+ {(() => {
396
+ switch (data.status) {
397
+ case "idle":
398
+ return <p>Ready to send user operation</p>;
399
+ case "pending":
400
+ return (
401
+ <div>
402
+ <p>User operation pending...</p>
403
+ <p>Hash: {data.hash}</p>
404
+ </div>
405
+ );
406
+ case "success":
407
+ return (
408
+ <div>
409
+ <p>User operation successful!</p>
410
+ <p>Transaction Hash: {data.result.transactionHash}</p>
411
+ </div>
412
+ );
413
+ case "error":
414
+ return (
415
+ <div>
416
+ <p>User operation failed</p>
417
+ <p>Error: {data.error.message}</p>
418
+ </div>
419
+ );
420
+ }
421
+ })()}
422
+
423
+ <button onClick={handleSendUserOperation}>
424
+ Send User Operation
425
+ </button>
426
+ </div>
427
+ );
428
+ }
429
+ ```
430
+
431
+ #### Track User Operation Status
432
+
433
+ Use the `useWaitForUserOperation` hook to poll for user operation status and provide real-time updates:
434
+
435
+ ```tsx
436
+ import { useWaitForUserOperation, useCurrentUser } from "@coinbase/cdp-hooks";
437
+
438
+ function WaitForUserOperation() {
439
+ const { waitForUserOperation, data } = useWaitForUserOperation();
440
+
441
+ const handleWaitForOperation = () => {
442
+ // Start waiting for a specific user operation
443
+ waitForUserOperation({
444
+ userOperationHash: "0x1234...",
445
+ evmSmartAccount: "0x1234567890123456789012345678901234567890",
446
+ network: "base-sepolia"
447
+ });
448
+ };
449
+
450
+ return (
451
+ <div>
452
+ <button onClick={handleWaitForOperation}>
453
+ Wait for User Operation
454
+ </button>
455
+
456
+ {(() => {
457
+ switch (data.status) {
458
+ case "idle":
459
+ return <p>No user operation being tracked</p>;
460
+ case "pending":
461
+ return (
462
+ <div>
463
+ <p>User operation pending...</p>
464
+ <p>Hash: {data.hash}</p>
465
+ </div>
466
+ );
467
+ case "success":
468
+ return (
469
+ <div>
470
+ <p>User operation successful!</p>
471
+ <p>Transaction Hash: {data.result.transactionHash}</p>
472
+ <p>Status: {data.result.status}</p>
473
+ </div>
474
+ );
475
+ case "error":
476
+ return (
477
+ <div>
478
+ <p>User operation failed</p>
479
+ <p>Error: {data.error.message}</p>
480
+ </div>
481
+ );
482
+ }
483
+ })()}
484
+ </div>
485
+ );
486
+ }
487
+ ```
package/dist/esm/index.js CHANGED
@@ -1,27 +1,29 @@
1
1
  import { APIError as n } from "@coinbase/cdp-core";
2
- import { CDPContext as i, CDPHooksProvider as r } from "./index2.js";
3
- import { useConfig as o, useCurrentUser as a, useEnforceAuthenticated as m, useEnforceUnauthenticated as E, useEvmAddress as S, useExportEvmAccount as c, useGetAccessToken as g, useIsInitialized as d, useIsSignedIn as f, useSendEvmTransaction as v, useSignEvmHash as I, useSignEvmMessage as P, useSignEvmTransaction as T, useSignEvmTypedData as h, useSignInWithEmail as p, useSignInWithSms as x, useSignOut as A, useVerifyEmailOTP as C, useVerifySmsOTP as l } from "./index3.js";
2
+ import { CDPContext as i, CDPHooksProvider as u } from "./index2.js";
3
+ import { useConfig as o, useCurrentUser as a, useEnforceAuthenticated as m, useEnforceUnauthenticated as E, useEvmAddress as S, useExportEvmAccount as c, useGetAccessToken as d, useIsInitialized as g, useIsSignedIn as f, useSendEvmTransaction as v, useSendUserOperation as p, useSignEvmHash as I, useSignEvmMessage as P, useSignEvmTransaction as T, useSignEvmTypedData as h, useSignInWithEmail as x, useSignInWithSms as A, useSignOut as C, useVerifyEmailOTP as O, useVerifySmsOTP as U, useWaitForUserOperation as l } from "./index3.js";
4
4
  export {
5
5
  n as APIError,
6
6
  i as CDPContext,
7
- r as CDPHooksProvider,
7
+ u as CDPHooksProvider,
8
8
  o as useConfig,
9
9
  a as useCurrentUser,
10
10
  m as useEnforceAuthenticated,
11
11
  E as useEnforceUnauthenticated,
12
12
  S as useEvmAddress,
13
13
  c as useExportEvmAccount,
14
- g as useGetAccessToken,
15
- d as useIsInitialized,
14
+ d as useGetAccessToken,
15
+ g as useIsInitialized,
16
16
  f as useIsSignedIn,
17
17
  v as useSendEvmTransaction,
18
+ p as useSendUserOperation,
18
19
  I as useSignEvmHash,
19
20
  P as useSignEvmMessage,
20
21
  T as useSignEvmTransaction,
21
22
  h as useSignEvmTypedData,
22
- p as useSignInWithEmail,
23
- x as useSignInWithSms,
24
- A as useSignOut,
25
- C as useVerifyEmailOTP,
26
- l as useVerifySmsOTP
23
+ x as useSignInWithEmail,
24
+ A as useSignInWithSms,
25
+ C as useSignOut,
26
+ O as useVerifyEmailOTP,
27
+ U as useVerifySmsOTP,
28
+ l as useWaitForUserOperation
27
29
  };
@@ -1,6 +1,35 @@
1
- function e(r) {
2
- return typeof r == "string" ? { address: r, type: "json-rpc" } : r;
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) });
3
32
  }
4
33
  export {
5
- e as parseAccount
34
+ O as createClient
6
35
  };
@@ -1,196 +1,37 @@
1
- import { formatGwei as a } from "./index90.js";
2
- import { BaseError as t } from "./index81.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 "./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,
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
  };
@@ -1,11 +1,196 @@
1
- import { BaseError as e } from "./index81.js";
2
- class p extends e {
3
- constructor(r) {
4
- super(`Filter type "${r}" is not supported.`, {
5
- name: "FilterTypeNotSupportedError"
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,
96
+ 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"
6
180
  });
7
181
  }
8
182
  }
9
183
  export {
10
- p as FilterTypeNotSupportedError
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
11
196
  };