@coinbase/cdp-hooks 0.0.66 → 0.0.68

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 (297) hide show
  1. package/README.md +151 -0
  2. package/dist/esm/index.js +24 -18
  3. package/dist/esm/index10.js +1 -1
  4. package/dist/esm/index100.js +29 -188
  5. package/dist/esm/index101.js +2 -32
  6. package/dist/esm/index102.js +7 -21
  7. package/dist/esm/index103.js +214 -5
  8. package/dist/esm/index104.js +30 -72
  9. package/dist/esm/index105.js +21 -5
  10. package/dist/esm/index106.js +5 -5
  11. package/dist/esm/index107.js +69 -31
  12. package/dist/esm/index108.js +5 -75
  13. package/dist/esm/index109.js +6 -3
  14. package/dist/esm/index11.js +1 -1
  15. package/dist/esm/index110.js +28 -16
  16. package/dist/esm/index111.js +57 -433
  17. package/dist/esm/index112.js +3 -31
  18. package/dist/esm/index113.js +17 -20
  19. package/dist/esm/index114.js +439 -21
  20. package/dist/esm/index115.js +28 -32
  21. package/dist/esm/index116.js +18 -185
  22. package/dist/esm/index117.js +31 -6
  23. package/dist/esm/index118.js +35 -2
  24. package/dist/esm/index119.js +189 -8
  25. package/dist/esm/index12.js +1 -1
  26. package/dist/esm/index120.js +7 -17
  27. package/dist/esm/index121.js +2 -28
  28. package/dist/esm/index122.js +12 -8
  29. package/dist/esm/index123.js +15 -52
  30. package/dist/esm/index124.js +23 -41
  31. package/dist/esm/index125.js +8 -8
  32. package/dist/esm/index126.js +55 -7
  33. package/dist/esm/index127.js +44 -15
  34. package/dist/esm/index128.js +8 -18
  35. package/dist/esm/index129.js +7 -24
  36. package/dist/esm/index13.js +1 -1
  37. package/dist/esm/index130.js +16 -16
  38. package/dist/esm/index131.js +17 -53
  39. package/dist/esm/index132.js +22 -9
  40. package/dist/esm/index133.js +15 -159
  41. package/dist/esm/index134.js +53 -20
  42. package/dist/esm/index135.js +11 -127
  43. package/dist/esm/index136.js +153 -31
  44. package/dist/esm/index137.js +21 -6
  45. package/dist/esm/index138.js +127 -27
  46. package/dist/esm/index139.js +31 -184
  47. package/dist/esm/index14.js +7 -4
  48. package/dist/esm/index140.js +7 -4
  49. package/dist/esm/index141.js +26 -63
  50. package/dist/esm/index142.js +192 -3
  51. package/dist/esm/index143.js +4 -21
  52. package/dist/esm/index144.js +61 -13
  53. package/dist/esm/index145.js +3 -24
  54. package/dist/esm/index146.js +20 -11
  55. package/dist/esm/index147.js +15 -33
  56. package/dist/esm/index148.js +24 -3
  57. package/dist/esm/index149.js +11 -18
  58. package/dist/esm/index15.js +7 -8
  59. package/dist/esm/index150.js +33 -26
  60. package/dist/esm/index151.js +3 -36
  61. package/dist/esm/index152.js +18 -7
  62. package/dist/esm/index153.js +26 -24
  63. package/dist/esm/index154.js +34 -27
  64. package/dist/esm/index155.js +7 -64
  65. package/dist/esm/index156.js +25 -9
  66. package/dist/esm/index157.js +28 -33
  67. package/dist/esm/index158.js +64 -27
  68. package/dist/esm/index159.js +9 -24
  69. package/dist/esm/index16.js +8 -34
  70. package/dist/esm/index160.js +33 -3
  71. package/dist/esm/index161.js +27 -14
  72. package/dist/esm/index162.js +24 -103
  73. package/dist/esm/index163.js +3 -64
  74. package/dist/esm/index164.js +14 -5
  75. package/dist/esm/index165.js +103 -6
  76. package/dist/esm/index166.js +62 -25
  77. package/dist/esm/index167.js +5 -38
  78. package/dist/esm/index168.js +6 -13
  79. package/dist/esm/index169.js +24 -39
  80. package/dist/esm/index17.js +5 -18
  81. package/dist/esm/index170.js +38 -5
  82. package/dist/esm/index171.js +13 -11
  83. package/dist/esm/index172.js +42 -19
  84. package/dist/esm/index173.js +5 -78
  85. package/dist/esm/index174.js +12 -2
  86. package/dist/esm/index175.js +19 -37
  87. package/dist/esm/index176.js +73 -105
  88. package/dist/esm/index177.js +2 -49
  89. package/dist/esm/index178.js +36 -31
  90. package/dist/esm/index179.js +110 -8
  91. package/dist/esm/index18.js +8 -11
  92. package/dist/esm/index180.js +48 -6
  93. package/dist/esm/index181.js +32 -6
  94. package/dist/esm/index182.js +8 -11
  95. package/dist/esm/index183.js +6 -10
  96. package/dist/esm/index184.js +6 -13
  97. package/dist/esm/index185.js +11 -32
  98. package/dist/esm/index186.js +11 -5
  99. package/dist/esm/index187.js +13 -8
  100. package/dist/esm/index188.js +30 -17
  101. package/dist/esm/index189.js +5 -32
  102. package/dist/esm/index19.js +34 -12
  103. package/dist/esm/index190.js +8 -20
  104. package/dist/esm/index191.js +19 -3
  105. package/dist/esm/index192.js +31 -17
  106. package/dist/esm/index193.js +20 -10
  107. package/dist/esm/index194.js +3 -21
  108. package/dist/esm/index195.js +16 -21
  109. package/dist/esm/index196.js +10 -5
  110. package/dist/esm/index197.js +21 -5
  111. package/dist/esm/index198.js +22 -8
  112. package/dist/esm/index199.js +5 -104
  113. package/dist/esm/index2.js +2 -2
  114. package/dist/esm/index20.js +18 -54
  115. package/dist/esm/index200.js +6 -3
  116. package/dist/esm/index201.js +8 -18
  117. package/dist/esm/index202.js +99 -166
  118. package/dist/esm/index203.js +3 -18
  119. package/dist/esm/index204.js +19 -10
  120. package/dist/esm/index205.js +171 -38
  121. package/dist/esm/index206.js +18 -2
  122. package/dist/esm/index207.js +10 -70
  123. package/dist/esm/index208.js +37 -33
  124. package/dist/esm/index209.js +2 -15
  125. package/dist/esm/index21.js +11 -57
  126. package/dist/esm/index210.js +69 -40
  127. package/dist/esm/index211.js +35 -2
  128. package/dist/esm/index212.js +14 -4
  129. package/dist/esm/index213.js +39 -9
  130. package/dist/esm/index214.js +2 -20
  131. package/dist/esm/index215.js +4 -7
  132. package/dist/esm/index216.js +9 -10
  133. package/dist/esm/index217.js +19 -66
  134. package/dist/esm/index218.js +7 -65
  135. package/dist/esm/index219.js +10 -184
  136. package/dist/esm/index22.js +12 -56
  137. package/dist/esm/index220.js +66 -22
  138. package/dist/esm/index221.js +61 -38
  139. package/dist/esm/index222.js +178 -69
  140. package/dist/esm/index223.js +21 -39
  141. package/dist/esm/index224.js +35 -9
  142. package/dist/esm/index225.js +70 -7
  143. package/dist/esm/index226.js +40 -7
  144. package/dist/esm/index227.js +16 -6
  145. package/dist/esm/index228.js +13 -36
  146. package/dist/esm/index229.js +35 -14
  147. package/dist/esm/index23.js +54 -5
  148. package/dist/esm/index230.js +15 -8
  149. package/dist/esm/index231.js +7 -11
  150. package/dist/esm/index232.js +7 -9
  151. package/dist/esm/index233.js +6 -16
  152. package/dist/esm/index234.js +12 -22
  153. package/dist/esm/index235.js +9 -30
  154. package/dist/esm/index236.js +17 -2
  155. package/dist/esm/index237.js +21 -12
  156. package/dist/esm/index238.js +30 -12
  157. package/dist/esm/index239.js +2 -48
  158. package/dist/esm/index24.js +57 -47
  159. package/dist/esm/index240.js +12 -8
  160. package/dist/esm/index241.js +12 -13
  161. package/dist/esm/index242.js +46 -13
  162. package/dist/esm/index243.js +9 -8
  163. package/dist/esm/index244.js +13 -15
  164. package/dist/esm/index245.js +14 -24
  165. package/dist/esm/index246.js +8 -11
  166. package/dist/esm/index247.js +14 -23
  167. package/dist/esm/index248.js +24 -51
  168. package/dist/esm/index249.js +11 -17
  169. package/dist/esm/index25.js +56 -33
  170. package/dist/esm/index250.js +24 -14
  171. package/dist/esm/index251.js +51 -11
  172. package/dist/esm/index252.js +17 -103
  173. package/dist/esm/index253.js +14 -5
  174. package/dist/esm/index254.js +11 -223
  175. package/dist/esm/index255.js +103 -6
  176. package/dist/esm/index256.js +6 -7
  177. package/dist/esm/index257.js +222 -25
  178. package/dist/esm/index258.js +6 -19
  179. package/dist/esm/index259.js +7 -146
  180. package/dist/esm/index26.js +5 -4
  181. package/dist/esm/index260.js +26 -12
  182. package/dist/esm/index261.js +20 -36
  183. package/dist/esm/index262.js +145 -41
  184. package/dist/esm/index263.js +13 -2
  185. package/dist/esm/index264.js +35 -68
  186. package/dist/esm/index265.js +41 -3
  187. package/dist/esm/index266.js +2 -137
  188. package/dist/esm/index267.js +69 -156
  189. package/dist/esm/index268.js +3 -9
  190. package/dist/esm/index269.js +136 -16
  191. package/dist/esm/index27.js +46 -8
  192. package/dist/esm/index270.js +140 -98
  193. package/dist/esm/index271.js +9 -134
  194. package/dist/esm/index272.js +16 -78
  195. package/dist/esm/index273.js +114 -2
  196. package/dist/esm/index274.js +124 -687
  197. package/dist/esm/index275.js +73 -133
  198. package/dist/esm/index276.js +2 -43
  199. package/dist/esm/index277.js +675 -178
  200. package/dist/esm/index278.js +138 -3
  201. package/dist/esm/index279.js +40 -63
  202. package/dist/esm/index28.js +31 -67
  203. package/dist/esm/index280.js +200 -4
  204. package/dist/esm/index281.js +3 -40
  205. package/dist/esm/index282.js +65 -7
  206. package/dist/esm/index283.js +4 -62
  207. package/dist/esm/index284.js +33 -70
  208. package/dist/esm/index285.js +8 -4
  209. package/dist/esm/index286.js +55 -187
  210. package/dist/esm/index287.js +61 -47
  211. package/dist/esm/index288.js +4 -45
  212. package/dist/esm/index289.js +194 -4
  213. package/dist/esm/index29.js +3 -9
  214. package/dist/esm/index290.js +64 -5
  215. package/dist/esm/index291.js +45 -2
  216. package/dist/esm/index292.js +4 -21
  217. package/dist/esm/index293.js +7 -0
  218. package/dist/esm/index294.js +4 -0
  219. package/dist/esm/index295.js +24 -0
  220. package/dist/esm/index3.js +1 -1
  221. package/dist/esm/index30.js +9 -28
  222. package/dist/esm/index31.js +68 -70
  223. package/dist/esm/index32.js +9 -19
  224. package/dist/esm/index33.js +26 -108
  225. package/dist/esm/index34.js +70 -60
  226. package/dist/esm/index35.js +19 -24
  227. package/dist/esm/index36.js +110 -40
  228. package/dist/esm/index37.js +57 -34
  229. package/dist/esm/index38.js +20 -54
  230. package/dist/esm/index39.js +37 -160
  231. package/dist/esm/index40.js +36 -38
  232. package/dist/esm/index41.js +58 -9
  233. package/dist/esm/index42.js +161 -29
  234. package/dist/esm/index43.js +39 -36
  235. package/dist/esm/index44.js +7 -7
  236. package/dist/esm/index45.js +30 -28
  237. package/dist/esm/index46.js +34 -44
  238. package/dist/esm/index47.js +9 -88
  239. package/dist/esm/index48.js +26 -37
  240. package/dist/esm/index49.js +46 -8
  241. package/dist/esm/index5.js +3 -3
  242. package/dist/esm/index50.js +88 -6
  243. package/dist/esm/index51.js +40 -16
  244. package/dist/esm/index52.js +8 -8
  245. package/dist/esm/index53.js +6 -13
  246. package/dist/esm/index54.js +16 -7
  247. package/dist/esm/index55.js +8 -9
  248. package/dist/esm/index56.js +13 -16
  249. package/dist/esm/index57.js +7 -46
  250. package/dist/esm/index58.js +9 -13
  251. package/dist/esm/index59.js +15 -15
  252. package/dist/esm/index6.js +2 -2
  253. package/dist/esm/index60.js +46 -13
  254. package/dist/esm/index61.js +13 -6
  255. package/dist/esm/index62.js +15 -34
  256. package/dist/esm/index63.js +13 -9
  257. package/dist/esm/index64.js +5 -7
  258. package/dist/esm/index65.js +35 -25
  259. package/dist/esm/index66.js +9 -10
  260. package/dist/esm/index67.js +7 -13
  261. package/dist/esm/index68.js +25 -11
  262. package/dist/esm/index69.js +10 -116
  263. package/dist/esm/index7.js +1 -1
  264. package/dist/esm/index70.js +13 -32
  265. package/dist/esm/index71.js +11 -79
  266. package/dist/esm/index72.js +108 -169
  267. package/dist/esm/index73.js +26 -37
  268. package/dist/esm/index74.js +79 -6
  269. package/dist/esm/index75.js +177 -13
  270. package/dist/esm/index76.js +44 -13
  271. package/dist/esm/index77.js +6 -99
  272. package/dist/esm/index78.js +13 -72
  273. package/dist/esm/index79.js +13 -87
  274. package/dist/esm/index8.js +2 -2
  275. package/dist/esm/index80.js +93 -142
  276. package/dist/esm/index81.js +65 -129
  277. package/dist/esm/index82.js +73 -54
  278. package/dist/esm/index83.js +148 -23
  279. package/dist/esm/index84.js +133 -102
  280. package/dist/esm/index85.js +68 -6
  281. package/dist/esm/index86.js +23 -131
  282. package/dist/esm/index87.js +101 -271
  283. package/dist/esm/index88.js +7 -3
  284. package/dist/esm/index89.js +132 -4
  285. package/dist/esm/index9.js +1 -1
  286. package/dist/esm/index90.js +276 -9
  287. package/dist/esm/index91.js +3 -2
  288. package/dist/esm/index92.js +4 -2
  289. package/dist/esm/index93.js +9 -3
  290. package/dist/esm/index94.js +2 -327
  291. package/dist/esm/index95.js +2 -14
  292. package/dist/esm/index96.js +3 -5
  293. package/dist/esm/index97.js +299 -28
  294. package/dist/esm/index98.js +14 -2
  295. package/dist/esm/index99.js +4 -7
  296. package/dist/types/index.d.ts +18 -0
  297. package/package.json +3 -3
package/README.md CHANGED
@@ -195,6 +195,30 @@ function App() {
195
195
 
196
196
  * When `solana.createOnLogin` is set to `true`, new users will automatically get a Solana account instead of EVM accounts.
197
197
 
198
+ #### Deferred Account Creation
199
+
200
+ You can omit `createOnLogin` entirely to prevent automatic account creation and instead create accounts manually when needed:
201
+
202
+ ```tsx lines
203
+ function App() {
204
+ return (
205
+ <CDPHooksProvider
206
+ config={{
207
+ projectId: "your-project-id",
208
+ // No ethereum or solana createOnLogin configuration
209
+ }}
210
+ >
211
+ <App />
212
+ </CDPHooksProvider>
213
+ );
214
+ }
215
+ ```
216
+
217
+ When `createOnLogin` is omitted, the SDK will:
218
+ 1. Not create any accounts automatically upon user login
219
+ 2. Require manual account creation using the account creation hooks (see below)
220
+ 3. Give you full control over when and what types of accounts to create
221
+
198
222
  ### Sign In a User
199
223
 
200
224
  End user authentication proceeds in two steps:
@@ -699,6 +723,133 @@ function UserInformation() {
699
723
  }
700
724
  ```
701
725
 
726
+ ### Create Accounts Manually
727
+
728
+ If you configured your provider without `createOnLogin`, you can manually create accounts for authenticated users when needed using these hooks.
729
+
730
+ #### Create an EOA Account
731
+
732
+ Use the `useCreateEoaAccount` hook to create an EOA (Externally Owned Account) for the current user:
733
+
734
+ ```tsx lines
735
+ import { useCreateEoaAccount, useCurrentUser } from "@coinbase/cdp-hooks";
736
+
737
+ function CreateEoaAccount() {
738
+ const { createEoaAccount } = useCreateEoaAccount();
739
+ const { currentUser } = useCurrentUser();
740
+
741
+ const handleCreateAccount = async () => {
742
+ try {
743
+ const evmAddress = await createEoaAccount();
744
+ console.log("Created EOA:", evmAddress);
745
+ // The user object is automatically updated
746
+ } catch (error) {
747
+ console.error("Failed to create EOA:", error);
748
+ }
749
+ };
750
+
751
+ return (
752
+ <button
753
+ onClick={handleCreateAccount}
754
+ disabled={!currentUser || currentUser.evmAccounts?.length > 0}
755
+ >
756
+ Create EOA Account
757
+ </button>
758
+ );
759
+ }
760
+ ```
761
+
762
+ **Note:** This will throw an error if the user already has an EOA account.
763
+
764
+ #### Create a Smart Account
765
+
766
+ Use the `useCreateSmartAccount` hook to create a Smart Account for the current user:
767
+
768
+ ```tsx lines
769
+ import { useCreateSmartAccount, useCurrentUser } from "@coinbase/cdp-hooks";
770
+
771
+ function CreateSmartAccount() {
772
+ const { createSmartAccount } = useCreateSmartAccount();
773
+ const { currentUser } = useCurrentUser();
774
+
775
+ const handleCreateAccount = async () => {
776
+ try {
777
+ // Create Smart Account (will automatically create EOA first if needed)
778
+ const smartAccountAddress = await createSmartAccount();
779
+ console.log("Created Smart Account:", smartAccountAddress);
780
+ // The user object is automatically updated
781
+ } catch (error) {
782
+ console.error("Failed to create Smart Account:", error);
783
+ }
784
+ };
785
+
786
+ const handleCreateWithSpendPermissions = async () => {
787
+ try {
788
+ // Create Smart Account with spend permissions enabled
789
+ const smartAccountAddress = await createSmartAccount({
790
+ enableSpendPermissions: true
791
+ });
792
+ console.log("Created Smart Account with spend permissions:", smartAccountAddress);
793
+ } catch (error) {
794
+ console.error("Failed to create Smart Account:", error);
795
+ }
796
+ };
797
+
798
+ return (
799
+ <div>
800
+ <button
801
+ onClick={handleCreateAccount}
802
+ disabled={!currentUser || currentUser.evmSmartAccounts?.length > 0}
803
+ >
804
+ Create Smart Account
805
+ </button>
806
+ <button
807
+ onClick={handleCreateWithSpendPermissions}
808
+ disabled={!currentUser || currentUser.evmSmartAccounts?.length > 0}
809
+ >
810
+ Create Smart Account with Spend Permissions
811
+ </button>
812
+ </div>
813
+ );
814
+ }
815
+ ```
816
+
817
+ **Note:** This will throw an error if the user already has a Smart Account. If the user doesn't have an EOA, one will be automatically created first to serve as the Smart Account owner.
818
+
819
+ #### Create a Solana Account
820
+
821
+ Use the `useCreateSolanaAccount` hook to create a Solana account for the current user:
822
+
823
+ ```tsx lines
824
+ import { useCreateSolanaAccount, useCurrentUser } from "@coinbase/cdp-hooks";
825
+
826
+ function CreateSolanaAccount() {
827
+ const { createSolanaAccount } = useCreateSolanaAccount();
828
+ const { currentUser } = useCurrentUser();
829
+
830
+ const handleCreateAccount = async () => {
831
+ try {
832
+ const solanaAddress = await createSolanaAccount();
833
+ console.log("Created Solana account:", solanaAddress);
834
+ // The user object is automatically updated
835
+ } catch (error) {
836
+ console.error("Failed to create Solana account:", error);
837
+ }
838
+ };
839
+
840
+ return (
841
+ <button
842
+ onClick={handleCreateAccount}
843
+ disabled={!currentUser || currentUser.solanaAccounts?.length > 0}
844
+ >
845
+ Create Solana Account
846
+ </button>
847
+ );
848
+ }
849
+ ```
850
+
851
+ **Note:** This will throw an error if the user already has a Solana account.
852
+
702
853
  ### Working with Solana
703
854
 
704
855
  When your application is configured with `solana: { createOnLogin: true }`, you can use Solana-specific hooks to interact with Solana accounts.
package/dist/esm/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { APIError as u, OAuth2ProviderType as a } from "@coinbase/cdp-core";
1
+ import { APIError as i, OAuth2ProviderType as a } from "@coinbase/cdp-core";
2
2
  import { Analytics as e } from "./index2.js";
3
3
  import "react";
4
4
  import { VERSION as s } from "./index3.js";
5
- import { CDPContext as S, CDPHooksProvider as p } from "./index4.js";
6
- import { useAuthenticateWithJWT as c, useConfig as d, useCurrentUser as g, useEnforceAuthenticated as E, useEnforceUnauthenticated as x, useEvmAddress as A, useExportEvmAccount as h, useExportSolanaAccount as l, useGetAccessToken as P, useIsInitialized as k, useIsSignedIn as v, useOAuthState as O, useSendEvmTransaction as T, useSendSolanaTransaction as I, useSendUserOperation as C, useSignEvmHash as L, useSignEvmMessage as W, useSignEvmTransaction as y, useSignEvmTypedData as U, useSignInWithEmail as V, useSignInWithOAuth as D, useSignInWithSms as G, useSignOut as H, useSignSolanaMessage as M, useSignSolanaTransaction as R, useSolanaAddress as z, useVerifyEmailOTP as F, useVerifySmsOTP as J, useWaitForUserOperation as N } from "./index5.js";
5
+ import { CDPContext as p, CDPHooksProvider as S } from "./index4.js";
6
+ import { useAuthenticateWithJWT as f, useConfig as E, useCurrentUser as x, useEnforceAuthenticated as d, useEnforceUnauthenticated as g, useEvmAddress as A, useExportEvmAccount as h, useExportSolanaAccount as l, useGetAccessToken as v, useIsInitialized as P, useIsSignedIn as k, useOAuthState as O, useSendEvmTransaction as T, useSendSolanaTransaction as C, useSendUserOperation as I, useSignEvmHash as L, useSignEvmMessage as W, useSignEvmTransaction as y, useSignEvmTypedData as U, useSignInWithEmail as V, useSignInWithOAuth as D, useSignInWithSms as G, useSignOut as H, useSignSolanaMessage as M, useSignSolanaTransaction as R, useSolanaAddress as z, useVerifyEmailOTP as F, useVerifySmsOTP as J, useWaitForUserOperation as N } from "./index5.js";
7
7
  import { useCreateSpendPermission as b } from "./index6.js";
8
8
  import { useListSpendPermissions as q } from "./index7.js";
9
9
  import { useRevokeSpendPermission as B } from "./index8.js";
@@ -12,25 +12,31 @@ import { useLinkApple as Z } from "./index10.js";
12
12
  import { useLinkSms as $ } from "./index11.js";
13
13
  import { useLinkEmail as se } from "./index12.js";
14
14
  import { useLinkOAuth as re } from "./index13.js";
15
- import { useX402 as te } from "./index14.js";
15
+ import { useCreateEvmEoaAccount as ne } from "./index14.js";
16
+ import { useCreateEvmSmartAccount as ie } from "./index15.js";
17
+ import { useCreateSolanaAccount as me } from "./index16.js";
18
+ import { useX402 as Se } from "./index17.js";
16
19
  e.registerPackageVersion("hooks", s);
17
20
  export {
18
- u as APIError,
19
- S as CDPContext,
20
- p as CDPHooksProvider,
21
+ i as APIError,
22
+ p as CDPContext,
23
+ S as CDPHooksProvider,
21
24
  a as OAuth2ProviderType,
22
- c as useAuthenticateWithJWT,
23
- d as useConfig,
25
+ f as useAuthenticateWithJWT,
26
+ E as useConfig,
27
+ ne as useCreateEvmEoaAccount,
28
+ ie as useCreateEvmSmartAccount,
29
+ me as useCreateSolanaAccount,
24
30
  b as useCreateSpendPermission,
25
- g as useCurrentUser,
26
- E as useEnforceAuthenticated,
27
- x as useEnforceUnauthenticated,
31
+ x as useCurrentUser,
32
+ d as useEnforceAuthenticated,
33
+ g as useEnforceUnauthenticated,
28
34
  A as useEvmAddress,
29
35
  h as useExportEvmAccount,
30
36
  l as useExportSolanaAccount,
31
- P as useGetAccessToken,
32
- k as useIsInitialized,
33
- v as useIsSignedIn,
37
+ v as useGetAccessToken,
38
+ P as useIsInitialized,
39
+ k as useIsSignedIn,
34
40
  Z as useLinkApple,
35
41
  se as useLinkEmail,
36
42
  Q as useLinkGoogle,
@@ -40,8 +46,8 @@ export {
40
46
  O as useOAuthState,
41
47
  B as useRevokeSpendPermission,
42
48
  T as useSendEvmTransaction,
43
- I as useSendSolanaTransaction,
44
- C as useSendUserOperation,
49
+ C as useSendSolanaTransaction,
50
+ I as useSendUserOperation,
45
51
  L as useSignEvmHash,
46
52
  W as useSignEvmMessage,
47
53
  y as useSignEvmTransaction,
@@ -56,5 +62,5 @@ export {
56
62
  F as useVerifyEmailOTP,
57
63
  J as useVerifySmsOTP,
58
64
  N as useWaitForUserOperation,
59
- te as useX402
65
+ Se as useX402
60
66
  };
@@ -1,5 +1,5 @@
1
1
  import "./index2.js";
2
- import { useSendHookCallOnce as t } from "./index15.js";
2
+ import { useSendHookCallOnce as t } from "./index18.js";
3
3
  import "react";
4
4
  import { useLinkOAuth as o } from "./index13.js";
5
5
  function u() {
@@ -1,217 +1,58 @@
1
- import { parseAccount as E } from "./index26.js";
2
- import { panicReasons as $ } from "./index101.js";
3
- import { decodeErrorResult as A } from "./index102.js";
4
- import { formatAbiItem as y } from "./index95.js";
5
- import { formatAbiItemWithArgs as v } from "./index103.js";
6
- import { getAbiItem as C } from "./index104.js";
7
- import { formatEther as P } from "./index105.js";
8
- import { formatGwei as p } from "./index106.js";
9
- import { AbiErrorSignatureNotFoundError as j } from "./index94.js";
10
- import { BaseError as m } from "./index97.js";
11
- import { prettyStateOverride as x } from "./index107.js";
12
- import { prettyPrint as w } from "./index108.js";
13
- import { getContractAddress as O } from "./index109.js";
14
- class z extends m {
15
- constructor(e, { account: o, docsPath: u, chain: s, data: c, gas: a, gasPrice: i, maxFeePerGas: r, maxPriorityFeePerGas: t, nonce: n, to: l, value: d, stateOverride: f }) {
16
- const h = o ? E(o) : void 0;
17
- let g = w({
18
- from: h?.address,
19
- to: l,
20
- value: typeof d < "u" && `${P(d)} ${s?.nativeCurrency?.symbol || "ETH"}`,
21
- data: c,
22
- gas: a,
23
- gasPrice: typeof i < "u" && `${p(i)} gwei`,
24
- maxFeePerGas: typeof r < "u" && `${p(r)} gwei`,
25
- maxPriorityFeePerGas: typeof t < "u" && `${p(t)} gwei`,
26
- nonce: n
27
- });
28
- f && (g += `
29
- ${x(f)}`), super(e.shortMessage, {
30
- cause: e,
31
- docsPath: u,
32
- metaMessages: [
33
- ...e.metaMessages ? [...e.metaMessages, " "] : [],
34
- "Raw Call Arguments:",
35
- g
36
- ].filter(Boolean),
37
- name: "CallExecutionError"
38
- }), Object.defineProperty(this, "cause", {
39
- enumerable: !0,
40
- configurable: !0,
41
- writable: !0,
42
- value: void 0
43
- }), this.cause = e;
44
- }
45
- }
46
- class G extends m {
47
- constructor(e, { abi: o, args: u, contractAddress: s, docsPath: c, functionName: a, sender: i }) {
48
- const r = C({ abi: o, args: u, name: a }), t = r ? v({
49
- abiItem: r,
50
- args: u,
51
- includeFunctionName: !1,
52
- includeName: !1
53
- }) : void 0, n = r ? y(r, { includeName: !0 }) : void 0, l = w({
54
- address: s && O(s),
55
- function: n,
56
- args: t && t !== "()" && `${[...Array(a?.length ?? 0).keys()].map(() => " ").join("")}${t}`,
57
- sender: i
58
- });
59
- super(e.shortMessage || `An unknown error occurred while executing the contract function "${a}".`, {
60
- cause: e,
61
- docsPath: c,
62
- metaMessages: [
63
- ...e.metaMessages ? [...e.metaMessages, " "] : [],
64
- l && "Contract Call:",
65
- l
66
- ].filter(Boolean),
67
- name: "ContractFunctionExecutionError"
68
- }), Object.defineProperty(this, "abi", {
69
- enumerable: !0,
70
- configurable: !0,
71
- writable: !0,
72
- value: void 0
73
- }), Object.defineProperty(this, "args", {
74
- enumerable: !0,
75
- configurable: !0,
76
- writable: !0,
77
- value: void 0
78
- }), Object.defineProperty(this, "cause", {
79
- enumerable: !0,
80
- configurable: !0,
81
- writable: !0,
82
- value: void 0
83
- }), Object.defineProperty(this, "contractAddress", {
84
- enumerable: !0,
85
- configurable: !0,
86
- writable: !0,
87
- value: void 0
88
- }), Object.defineProperty(this, "formattedArgs", {
1
+ import { version as o } from "./index101.js";
2
+ let r = {
3
+ getDocsUrl: ({ docsBaseUrl: s, docsPath: t = "", docsSlug: e }) => t ? `${s ?? "https://viem.sh"}${t}${e ? `#${e}` : ""}` : void 0,
4
+ version: `viem@${o}`
5
+ };
6
+ class u extends Error {
7
+ constructor(t, e = {}) {
8
+ const i = e.cause instanceof u ? e.cause.details : e.cause?.message ? e.cause.message : e.details, n = e.cause instanceof u && e.cause.docsPath || e.docsPath, a = r.getDocsUrl?.({ ...e, docsPath: n }), l = [
9
+ t || "An error occurred.",
10
+ "",
11
+ ...e.metaMessages ? [...e.metaMessages, ""] : [],
12
+ ...a ? [`Docs: ${a}`] : [],
13
+ ...i ? [`Details: ${i}`] : [],
14
+ ...r.version ? [`Version: ${r.version}`] : []
15
+ ].join(`
16
+ `);
17
+ super(l, e.cause ? { cause: e.cause } : void 0), Object.defineProperty(this, "details", {
89
18
  enumerable: !0,
90
19
  configurable: !0,
91
20
  writable: !0,
92
21
  value: void 0
93
- }), Object.defineProperty(this, "functionName", {
22
+ }), Object.defineProperty(this, "docsPath", {
94
23
  enumerable: !0,
95
24
  configurable: !0,
96
25
  writable: !0,
97
26
  value: void 0
98
- }), Object.defineProperty(this, "sender", {
27
+ }), Object.defineProperty(this, "metaMessages", {
99
28
  enumerable: !0,
100
29
  configurable: !0,
101
30
  writable: !0,
102
31
  value: void 0
103
- }), this.abi = o, this.args = u, this.cause = e, this.contractAddress = s, this.functionName = a, this.sender = i;
104
- }
105
- }
106
- class H extends m {
107
- constructor({ abi: e, data: o, functionName: u, message: s }) {
108
- let c, a, i, r;
109
- if (o && o !== "0x")
110
- try {
111
- a = A({ abi: e, data: o });
112
- const { abiItem: n, errorName: l, args: d } = a;
113
- if (l === "Error")
114
- r = d[0];
115
- else if (l === "Panic") {
116
- const [f] = d;
117
- r = $[f];
118
- } else {
119
- const f = n ? y(n, { includeName: !0 }) : void 0, h = n && d ? v({
120
- abiItem: n,
121
- args: d,
122
- includeFunctionName: !1,
123
- includeName: !1
124
- }) : void 0;
125
- i = [
126
- f ? `Error: ${f}` : "",
127
- h && h !== "()" ? ` ${[...Array(l?.length ?? 0).keys()].map(() => " ").join("")}${h}` : ""
128
- ];
129
- }
130
- } catch (n) {
131
- c = n;
132
- }
133
- else s && (r = s);
134
- let t;
135
- c instanceof j && (t = c.signature, i = [
136
- `Unable to decode signature "${t}" as it was not found on the provided ABI.`,
137
- "Make sure you are using the correct ABI and that the error exists on it.",
138
- `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`
139
- ]), super(r && r !== "execution reverted" || t ? [
140
- `The contract function "${u}" reverted with the following ${t ? "signature" : "reason"}:`,
141
- r || t
142
- ].join(`
143
- `) : `The contract function "${u}" reverted.`, {
144
- cause: c,
145
- metaMessages: i,
146
- name: "ContractFunctionRevertedError"
147
- }), Object.defineProperty(this, "data", {
32
+ }), Object.defineProperty(this, "shortMessage", {
148
33
  enumerable: !0,
149
34
  configurable: !0,
150
35
  writable: !0,
151
36
  value: void 0
152
- }), Object.defineProperty(this, "raw", {
37
+ }), Object.defineProperty(this, "version", {
153
38
  enumerable: !0,
154
39
  configurable: !0,
155
40
  writable: !0,
156
41
  value: void 0
157
- }), Object.defineProperty(this, "reason", {
42
+ }), Object.defineProperty(this, "name", {
158
43
  enumerable: !0,
159
44
  configurable: !0,
160
45
  writable: !0,
161
- value: void 0
162
- }), Object.defineProperty(this, "signature", {
163
- enumerable: !0,
164
- configurable: !0,
165
- writable: !0,
166
- value: void 0
167
- }), this.data = a, this.raw = o, this.reason = r, this.signature = t;
46
+ value: "BaseError"
47
+ }), this.details = i, this.docsPath = n, this.metaMessages = e.metaMessages, this.name = e.name ?? this.name, this.shortMessage = t, this.version = o;
168
48
  }
169
- }
170
- class U extends m {
171
- constructor({ functionName: e }) {
172
- super(`The contract function "${e}" returned no data ("0x").`, {
173
- metaMessages: [
174
- "This could be due to any of the following:",
175
- ` - The contract does not have the function "${e}",`,
176
- " - The parameters passed to the contract function may be invalid, or",
177
- " - The address is not a contract."
178
- ],
179
- name: "ContractFunctionZeroDataError"
180
- });
49
+ walk(t) {
50
+ return c(this, t);
181
51
  }
182
52
  }
183
- class Y extends m {
184
- constructor({ factory: e }) {
185
- super(`Deployment for counterfactual contract call failed${e ? ` for factory "${e}".` : ""}`, {
186
- metaMessages: [
187
- "Please ensure:",
188
- "- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).",
189
- "- The `factoryData` is a valid encoded function call for contract deployment function on the factory."
190
- ],
191
- name: "CounterfactualDeploymentFailedError"
192
- });
193
- }
194
- }
195
- class J extends m {
196
- constructor({ data: e, message: o }) {
197
- super(o || "", { name: "RawContractError" }), Object.defineProperty(this, "code", {
198
- enumerable: !0,
199
- configurable: !0,
200
- writable: !0,
201
- value: 3
202
- }), Object.defineProperty(this, "data", {
203
- enumerable: !0,
204
- configurable: !0,
205
- writable: !0,
206
- value: void 0
207
- }), this.data = e;
208
- }
53
+ function c(s, t) {
54
+ return t?.(s) ? s : s && typeof s == "object" && "cause" in s && s.cause !== void 0 ? c(s.cause, t) : t ? null : s;
209
55
  }
210
56
  export {
211
- z as CallExecutionError,
212
- G as ContractFunctionExecutionError,
213
- H as ContractFunctionRevertedError,
214
- U as ContractFunctionZeroDataError,
215
- Y as CounterfactualDeploymentFailedError,
216
- J as RawContractError
57
+ u as BaseError
217
58
  };
@@ -1,34 +1,4 @@
1
- const e = {
2
- 1: "An `assert` condition failed.",
3
- 17: "Arithmetic operation resulted in underflow or overflow.",
4
- 18: "Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",
5
- 33: "Attempted to convert to an invalid type.",
6
- 34: "Attempted to access a storage byte array that is incorrectly encoded.",
7
- 49: "Performed `.pop()` on an empty array",
8
- 50: "Array index is out of bounds.",
9
- 65: "Allocated too much memory or created an array which is too large.",
10
- 81: "Attempted to call a zero-initialized variable of internal function type."
11
- }, o = {
12
- inputs: [
13
- {
14
- name: "message",
15
- type: "string"
16
- }
17
- ],
18
- name: "Error",
19
- type: "error"
20
- }, t = {
21
- inputs: [
22
- {
23
- name: "reason",
24
- type: "uint256"
25
- }
26
- ],
27
- name: "Panic",
28
- type: "error"
29
- };
1
+ const o = "2.33.0";
30
2
  export {
31
- e as panicReasons,
32
- o as solidityError,
33
- t as solidityPanic
3
+ o as version
34
4
  };
@@ -1,24 +1,10 @@
1
- import { solidityError as m, solidityPanic as s } from "./index101.js";
2
- import { AbiDecodingZeroDataError as c, AbiErrorSignatureNotFoundError as d } from "./index94.js";
3
- import { slice as e } from "./index136.js";
4
- import { toFunctionSelector as u } from "./index140.js";
5
- import { decodeAbiParameters as f } from "./index133.js";
6
- import { formatAbiItem as p } from "./index95.js";
7
- function y(n) {
8
- const { abi: a, data: t } = n, o = e(t, 0, 4);
9
- if (o === "0x")
10
- throw new c();
11
- const r = [...a || [], m, s].find((i) => i.type === "error" && o === u(p(i)));
12
- if (!r)
13
- throw new d(o, {
14
- docsPath: "/docs/contract/decodeErrorResult"
15
- });
16
- return {
17
- abiItem: r,
18
- args: "inputs" in r && r.inputs && r.inputs.length > 0 ? f(r.inputs, e(t, 4)) : void 0,
19
- errorName: r.name
20
- };
1
+ import { BaseError as e } from "./index100.js";
2
+ class d extends e {
3
+ constructor({ blockHash: r, blockNumber: t }) {
4
+ let o = "Block";
5
+ r && (o = `Block at hash "${r}"`), t && (o = `Block at number "${t}"`), super(`${o} could not be found.`, { name: "BlockNotFoundError" });
6
+ }
21
7
  }
22
8
  export {
23
- y as decodeErrorResult
9
+ d as BlockNotFoundError
24
10
  };