@coinbase/cdp-hooks 0.0.19 → 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 (268) hide show
  1. package/README.md +173 -7
  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 -7
  120. package/dist/esm/index206.js +7 -6
  121. package/dist/esm/index207.js +6 -36
  122. package/dist/esm/index208.js +35 -14
  123. package/dist/esm/index209.js +15 -8
  124. package/dist/esm/index21.js +37 -34
  125. package/dist/esm/index210.js +7 -11
  126. package/dist/esm/index211.js +3 -3
  127. package/dist/esm/index212.js +3 -3
  128. package/dist/esm/index213.js +1 -1
  129. package/dist/esm/index214.js +2 -2
  130. package/dist/esm/index216.js +2 -2
  131. package/dist/esm/index218.js +5 -5
  132. package/dist/esm/index219.js +2 -2
  133. package/dist/esm/index22.js +34 -55
  134. package/dist/esm/index220.js +2 -2
  135. package/dist/esm/index221.js +1 -1
  136. package/dist/esm/index223.js +1 -1
  137. package/dist/esm/index224.js +2 -2
  138. package/dist/esm/index225.js +3 -3
  139. package/dist/esm/index226.js +3 -3
  140. package/dist/esm/index227.js +16 -16
  141. package/dist/esm/index229.js +2 -2
  142. package/dist/esm/index23.js +55 -160
  143. package/dist/esm/index230.js +1 -1
  144. package/dist/esm/index231.js +11 -102
  145. package/dist/esm/index232.js +103 -6
  146. package/dist/esm/index233.js +5 -223
  147. package/dist/esm/index234.js +224 -6
  148. package/dist/esm/index235.js +7 -7
  149. package/dist/esm/index236.js +7 -27
  150. package/dist/esm/index237.js +25 -18
  151. package/dist/esm/index238.js +18 -145
  152. package/dist/esm/index239.js +146 -12
  153. package/dist/esm/index24.js +156 -32
  154. package/dist/esm/index240.js +12 -35
  155. package/dist/esm/index241.js +35 -41
  156. package/dist/esm/index242.js +41 -68
  157. package/dist/esm/index243.js +68 -3
  158. package/dist/esm/index244.js +3 -155
  159. package/dist/esm/index245.js +134 -7
  160. package/dist/esm/index246.js +144 -125
  161. package/dist/esm/index247.js +9 -16
  162. package/dist/esm/index248.js +16 -113
  163. package/dist/esm/index249.js +95 -116
  164. package/dist/esm/index25.js +39 -9
  165. package/dist/esm/index250.js +126 -70
  166. package/dist/esm/index251.js +79 -2
  167. package/dist/esm/index252.js +2 -699
  168. package/dist/esm/index253.js +685 -126
  169. package/dist/esm/index254.js +138 -41
  170. package/dist/esm/index255.js +40 -199
  171. package/dist/esm/index256.js +198 -62
  172. package/dist/esm/index257.js +65 -4
  173. package/dist/esm/index258.js +4 -40
  174. package/dist/esm/index259.js +40 -7
  175. package/dist/esm/index26.js +8 -30
  176. package/dist/esm/index260.js +7 -62
  177. package/dist/esm/index261.js +57 -72
  178. package/dist/esm/index262.js +78 -4
  179. package/dist/esm/index263.js +4 -195
  180. package/dist/esm/index264.js +183 -52
  181. package/dist/esm/index265.js +59 -40
  182. package/dist/esm/index266.js +44 -4
  183. package/dist/esm/index267.js +5 -5
  184. package/dist/esm/index268.js +5 -2
  185. package/dist/esm/index269.js +2 -22
  186. package/dist/esm/index27.js +21 -26
  187. package/dist/esm/index270.js +24 -0
  188. package/dist/esm/index28.js +35 -8
  189. package/dist/esm/index29.js +8 -28
  190. package/dist/esm/index3.js +127 -65
  191. package/dist/esm/index30.js +27 -44
  192. package/dist/esm/index31.js +44 -86
  193. package/dist/esm/index32.js +83 -35
  194. package/dist/esm/index33.js +40 -8
  195. package/dist/esm/index34.js +7 -5
  196. package/dist/esm/index35.js +6 -16
  197. package/dist/esm/index36.js +16 -8
  198. package/dist/esm/index37.js +8 -13
  199. package/dist/esm/index38.js +13 -7
  200. package/dist/esm/index39.js +7 -9
  201. package/dist/esm/index4.js +33 -17
  202. package/dist/esm/index40.js +9 -16
  203. package/dist/esm/index41.js +16 -46
  204. package/dist/esm/index42.js +46 -13
  205. package/dist/esm/index43.js +13 -16
  206. package/dist/esm/index44.js +14 -11
  207. package/dist/esm/index45.js +13 -6
  208. package/dist/esm/index46.js +5 -34
  209. package/dist/esm/index47.js +34 -8
  210. package/dist/esm/index48.js +8 -7
  211. package/dist/esm/index49.js +8 -25
  212. package/dist/esm/index5.js +18 -12
  213. package/dist/esm/index50.js +25 -10
  214. package/dist/esm/index51.js +10 -14
  215. package/dist/esm/index52.js +14 -11
  216. package/dist/esm/index53.js +11 -116
  217. package/dist/esm/index54.js +114 -31
  218. package/dist/esm/index55.js +30 -76
  219. package/dist/esm/index56.js +78 -176
  220. package/dist/esm/index57.js +174 -41
  221. package/dist/esm/index58.js +44 -6
  222. package/dist/esm/index59.js +5 -12
  223. package/dist/esm/index6.js +12 -54
  224. package/dist/esm/index60.js +12 -12
  225. package/dist/esm/index61.js +13 -99
  226. package/dist/esm/index62.js +96 -69
  227. package/dist/esm/index63.js +61 -76
  228. package/dist/esm/index64.js +74 -135
  229. package/dist/esm/index65.js +108 -96
  230. package/dist/esm/index66.js +113 -45
  231. package/dist/esm/index67.js +68 -23
  232. package/dist/esm/index68.js +23 -105
  233. package/dist/esm/index69.js +105 -6
  234. package/dist/esm/index7.js +54 -58
  235. package/dist/esm/index70.js +6 -131
  236. package/dist/esm/index71.js +130 -274
  237. package/dist/esm/index72.js +276 -3
  238. package/dist/esm/index73.js +3 -4
  239. package/dist/esm/index74.js +4 -9
  240. package/dist/esm/index75.js +9 -2
  241. package/dist/esm/index76.js +2 -2
  242. package/dist/esm/index77.js +2 -3
  243. package/dist/esm/index78.js +3 -327
  244. package/dist/esm/index79.js +324 -11
  245. package/dist/esm/index8.js +58 -56
  246. package/dist/esm/index80.js +13 -4
  247. package/dist/esm/index81.js +4 -55
  248. package/dist/esm/index82.js +56 -2
  249. package/dist/esm/index83.js +2 -8
  250. package/dist/esm/index84.js +6 -213
  251. package/dist/esm/index85.js +215 -32
  252. package/dist/esm/index86.js +32 -22
  253. package/dist/esm/index87.js +21 -5
  254. package/dist/esm/index88.js +5 -73
  255. package/dist/esm/index89.js +73 -5
  256. package/dist/esm/index9.js +56 -33
  257. package/dist/esm/index90.js +4 -4
  258. package/dist/esm/index91.js +5 -35
  259. package/dist/esm/index92.js +29 -69
  260. package/dist/esm/index93.js +76 -3
  261. package/dist/esm/index94.js +3 -24
  262. package/dist/esm/index95.js +16 -444
  263. package/dist/esm/index96.js +444 -23
  264. package/dist/esm/index97.js +24 -20
  265. package/dist/esm/index98.js +18 -25
  266. package/dist/esm/index99.js +31 -32
  267. package/dist/types/index.d.ts +29 -0
  268. 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
  );
@@ -129,7 +154,15 @@ function UserInformation() {
129
154
 
130
155
  ### Send a Transaction
131
156
 
132
- We support signing and sending a Blockchain transaction in a single action on Base or Base Sepolia:
157
+ We support signing and sending a Blockchain transaction in a single action on the following networks:
158
+ - Base
159
+ - Base Sepolia
160
+ - Ethereum
161
+ - Ethereum Sepolia
162
+ - Avalanche
163
+ - Arbitrum
164
+ - Optimism
165
+ - Polygon
133
166
 
134
167
  ```tsx
135
168
  import { useSendEvmTransaction, useEvmAddress } from "@coinbase/cdp-hooks";
@@ -166,13 +199,13 @@ function SendTransaction() {
166
199
  }
167
200
  ```
168
201
 
169
- For networks other than Base or Base Sepolia, your end user must sign the transaction, and then
202
+ For networks other than those supported by the CDP APIs, your end user must sign the transaction, and then
170
203
  you must broadcast the transaction yourself. This example uses the public client from `viem` to broadcast the transaction.
171
204
 
172
205
  ```tsx
173
206
  import { useSignEvmTransaction, useEvmAddress } from "@coinbase/cdp-hooks";
174
207
  import { http, createPublicClient } from "viem";
175
- import { sepolia } from "viem/chains";
208
+ import { tron } from "viem/chains";
176
209
 
177
210
  function CrossChainTransaction() {
178
211
  const { signEvmTransaction: signTransaction } = useSignEvmTransaction();
@@ -192,14 +225,14 @@ function CrossChainTransaction() {
192
225
  gas: 21000n,
193
226
  maxFeePerGas: 30000000000n,
194
227
  maxPriorityFeePerGas: 1000000000n,
195
- chainId: 11155111, // Sepolia
228
+ chainId: 728126428, // Tron
196
229
  type: "eip1559",
197
230
  }
198
231
  });
199
232
 
200
233
  // Broadcast using a different client
201
234
  const client = createPublicClient({
202
- chain: sepolia,
235
+ chain: tron,
203
236
  transport: http()
204
237
  });
205
238
 
@@ -319,3 +352,136 @@ function ExportKey() {
319
352
  return <button onClick={handleExport}>Export Private Key</button>;
320
353
  }
321
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
  };