@coinbase/cdp-hooks 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +174 -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 +35 -14
  121. package/dist/esm/index207.js +15 -8
  122. package/dist/esm/index208.js +7 -11
  123. package/dist/esm/index209.js +12 -9
  124. package/dist/esm/index21.js +37 -34
  125. package/dist/esm/index210.js +9 -16
  126. package/dist/esm/index211.js +16 -7
  127. package/dist/esm/index212.js +7 -22
  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 +6 -9
  135. package/dist/esm/index22.js +34 -55
  136. package/dist/esm/index220.js +8 -12
  137. package/dist/esm/index221.js +13 -14
  138. package/dist/esm/index222.js +14 -8
  139. package/dist/esm/index223.js +6 -13
  140. package/dist/esm/index224.js +15 -24
  141. package/dist/esm/index225.js +24 -11
  142. package/dist/esm/index226.js +10 -23
  143. package/dist/esm/index227.js +24 -51
  144. package/dist/esm/index228.js +51 -17
  145. package/dist/esm/index229.js +17 -14
  146. package/dist/esm/index23.js +55 -160
  147. package/dist/esm/index230.js +14 -11
  148. package/dist/esm/index231.js +11 -103
  149. package/dist/esm/index232.js +103 -6
  150. package/dist/esm/index233.js +5 -223
  151. package/dist/esm/index234.js +224 -6
  152. package/dist/esm/index235.js +7 -7
  153. package/dist/esm/index236.js +7 -27
  154. package/dist/esm/index237.js +25 -18
  155. package/dist/esm/index238.js +18 -145
  156. package/dist/esm/index239.js +146 -12
  157. package/dist/esm/index24.js +156 -32
  158. package/dist/esm/index240.js +12 -35
  159. package/dist/esm/index241.js +35 -41
  160. package/dist/esm/index242.js +41 -68
  161. package/dist/esm/index243.js +68 -3
  162. package/dist/esm/index244.js +3 -136
  163. package/dist/esm/index245.js +125 -144
  164. package/dist/esm/index246.js +155 -9
  165. package/dist/esm/index247.js +9 -16
  166. package/dist/esm/index248.js +16 -113
  167. package/dist/esm/index249.js +95 -116
  168. package/dist/esm/index25.js +39 -9
  169. package/dist/esm/index250.js +126 -70
  170. package/dist/esm/index251.js +79 -2
  171. package/dist/esm/index252.js +2 -699
  172. package/dist/esm/index253.js +685 -126
  173. package/dist/esm/index254.js +138 -41
  174. package/dist/esm/index255.js +40 -199
  175. package/dist/esm/index256.js +198 -62
  176. package/dist/esm/index257.js +65 -4
  177. package/dist/esm/index258.js +4 -40
  178. package/dist/esm/index259.js +40 -7
  179. package/dist/esm/index26.js +8 -30
  180. package/dist/esm/index260.js +7 -62
  181. package/dist/esm/index261.js +57 -72
  182. package/dist/esm/index262.js +78 -4
  183. package/dist/esm/index263.js +4 -195
  184. package/dist/esm/index264.js +183 -52
  185. package/dist/esm/index265.js +59 -40
  186. package/dist/esm/index266.js +44 -4
  187. package/dist/esm/index267.js +5 -5
  188. package/dist/esm/index268.js +5 -2
  189. package/dist/esm/index269.js +2 -22
  190. package/dist/esm/index27.js +21 -26
  191. package/dist/esm/index270.js +24 -0
  192. package/dist/esm/index28.js +35 -8
  193. package/dist/esm/index29.js +8 -28
  194. package/dist/esm/index3.js +127 -65
  195. package/dist/esm/index30.js +27 -44
  196. package/dist/esm/index31.js +44 -86
  197. package/dist/esm/index32.js +83 -35
  198. package/dist/esm/index33.js +40 -8
  199. package/dist/esm/index34.js +7 -5
  200. package/dist/esm/index35.js +6 -16
  201. package/dist/esm/index36.js +16 -8
  202. package/dist/esm/index37.js +8 -13
  203. package/dist/esm/index38.js +13 -7
  204. package/dist/esm/index39.js +7 -9
  205. package/dist/esm/index4.js +33 -17
  206. package/dist/esm/index40.js +9 -16
  207. package/dist/esm/index41.js +16 -46
  208. package/dist/esm/index42.js +46 -13
  209. package/dist/esm/index43.js +13 -16
  210. package/dist/esm/index44.js +14 -11
  211. package/dist/esm/index45.js +13 -6
  212. package/dist/esm/index46.js +5 -34
  213. package/dist/esm/index47.js +34 -8
  214. package/dist/esm/index48.js +8 -7
  215. package/dist/esm/index49.js +8 -25
  216. package/dist/esm/index5.js +18 -12
  217. package/dist/esm/index50.js +25 -10
  218. package/dist/esm/index51.js +10 -14
  219. package/dist/esm/index52.js +14 -11
  220. package/dist/esm/index53.js +11 -116
  221. package/dist/esm/index54.js +114 -31
  222. package/dist/esm/index55.js +30 -76
  223. package/dist/esm/index56.js +78 -176
  224. package/dist/esm/index57.js +174 -41
  225. package/dist/esm/index58.js +44 -6
  226. package/dist/esm/index59.js +5 -12
  227. package/dist/esm/index6.js +12 -54
  228. package/dist/esm/index60.js +12 -12
  229. package/dist/esm/index61.js +13 -99
  230. package/dist/esm/index62.js +96 -69
  231. package/dist/esm/index63.js +61 -76
  232. package/dist/esm/index64.js +74 -135
  233. package/dist/esm/index65.js +108 -96
  234. package/dist/esm/index66.js +113 -45
  235. package/dist/esm/index67.js +68 -23
  236. package/dist/esm/index68.js +23 -105
  237. package/dist/esm/index69.js +105 -6
  238. package/dist/esm/index7.js +54 -58
  239. package/dist/esm/index70.js +6 -131
  240. package/dist/esm/index71.js +130 -274
  241. package/dist/esm/index72.js +276 -3
  242. package/dist/esm/index73.js +3 -4
  243. package/dist/esm/index74.js +4 -9
  244. package/dist/esm/index75.js +9 -2
  245. package/dist/esm/index76.js +2 -2
  246. package/dist/esm/index77.js +2 -3
  247. package/dist/esm/index78.js +3 -327
  248. package/dist/esm/index79.js +324 -11
  249. package/dist/esm/index8.js +58 -56
  250. package/dist/esm/index80.js +13 -4
  251. package/dist/esm/index81.js +4 -55
  252. package/dist/esm/index82.js +56 -2
  253. package/dist/esm/index83.js +2 -8
  254. package/dist/esm/index84.js +6 -213
  255. package/dist/esm/index85.js +215 -32
  256. package/dist/esm/index86.js +32 -22
  257. package/dist/esm/index87.js +21 -5
  258. package/dist/esm/index88.js +5 -73
  259. package/dist/esm/index89.js +73 -5
  260. package/dist/esm/index9.js +56 -33
  261. package/dist/esm/index90.js +4 -4
  262. package/dist/esm/index91.js +5 -35
  263. package/dist/esm/index92.js +29 -69
  264. package/dist/esm/index93.js +76 -3
  265. package/dist/esm/index94.js +3 -24
  266. package/dist/esm/index95.js +16 -444
  267. package/dist/esm/index96.js +444 -23
  268. package/dist/esm/index97.js +24 -20
  269. package/dist/esm/index98.js +18 -25
  270. package/dist/esm/index99.js +31 -32
  271. package/dist/types/index.d.ts +32 -0
  272. 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,150 @@ 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. The hook returns a method to execute the user operation and `status`, `data`, and `error` properties to read the result of the user operation:
363
+
364
+ ```tsx
365
+ import { useSendUserOperation, useCurrentUser } from "@coinbase/cdp-hooks";
366
+
367
+ function SendUserOperation() {
368
+ const { sendUserOperation, status, data, error } = 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
+ {status === "idle" && <p>Ready to send user operation</p>}
396
+
397
+ {status === "pending" && (
398
+ <div>
399
+ <p>User operation pending...</p>
400
+ {data && <p>User Op Hash: {data.userOpHash}</p>}
401
+ </div>
402
+ )}
403
+
404
+ {status === "success" && data && (
405
+ <div>
406
+ <p>User operation successful!</p>
407
+ <p>Transaction Hash: {data.transactionHash}</p>
408
+ <p>Status: {data.status}</p>
409
+ </div>
410
+ )}
411
+
412
+ {status === "error" && (
413
+ <div>
414
+ <p>User operation failed</p>
415
+ <p>Error: {error?.message}</p>
416
+ </div>
417
+ )}
418
+
419
+ <button onClick={handleSendUserOperation} disabled={status === "pending"}>
420
+ {status === "pending" ? "Sending..." : "Send User Operation"}
421
+ </button>
422
+ </div>
423
+ );
424
+ }
425
+ ```
426
+
427
+ #### Track User Operation Status
428
+
429
+ Use the `useWaitForUserOperation` hook to poll for user operation status and provide real-time updates. This hook immediately fires off a query to get the result of the user operation:
430
+
431
+ ```tsx
432
+ import { useWaitForUserOperation, useState } from "react";
433
+
434
+ function WaitForUserOperation() {
435
+ const { status, data, error } = useWaitForUserOperation({
436
+ userOperationHash: "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
437
+ evmSmartAccount: "0x1234567890123456789012345678901234567890",
438
+ network: "base-sepolia"
439
+ });
440
+
441
+ return (
442
+ <div>
443
+ {status === "idle" && <p>No user operation being tracked</p>}
444
+
445
+ {status === "pending" && (
446
+ <div>
447
+ <p>User operation pending...</p>
448
+ {data && <p>User Op Hash: {data.userOpHash}</p>}
449
+ </div>
450
+ )}
451
+
452
+ {status === "success" && data && (
453
+ <div>
454
+ <p>User operation successful!</p>
455
+ <p>Transaction Hash: {data.transactionHash}</p>
456
+ <p>Status: {data.status}</p>
457
+ </div>
458
+ )}
459
+
460
+ {status === "error" && (
461
+ <div>
462
+ <p>User operation failed</p>
463
+ <p>Error: {error?.message}</p>
464
+ </div>
465
+ )}
466
+ </div>
467
+ );
468
+ }
469
+ ```
470
+
471
+ #### Conditional Polling
472
+
473
+ You can control when the `useWaitForUserOperation` hook should start polling using the `enabled` parameter:
474
+
475
+ ```tsx
476
+ function ConditionalWaitForUserOperation() {
477
+ const [shouldPoll, setShouldPoll] = useState(false);
478
+
479
+ const { status, data, error } = useWaitForUserOperation({
480
+ userOperationHash: "0x1234...",
481
+ evmSmartAccount: "0x5678...",
482
+ network: "base-sepolia",
483
+ enabled: shouldPoll // Only poll when this is true
484
+ });
485
+
486
+ return (
487
+ <div>
488
+ <button onClick={() => setShouldPoll(true)}>
489
+ Start Polling
490
+ </button>
491
+ <button onClick={() => setShouldPoll(false)}>
492
+ Stop Polling
493
+ </button>
494
+
495
+ <p>Status: {status}</p>
496
+ {data && <p>User Operation Status: {data.status}</p>}
497
+ {error && <p>Error: {error.message}</p>}
498
+ </div>
499
+ );
500
+ }
501
+ ```
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
  };