@coinbase/cdp-core 0.0.32 → 0.0.34

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 (292) hide show
  1. package/README.md +74 -8
  2. package/dist/esm/index.native.js +41 -36
  3. package/dist/esm/index.native10.js +115 -21
  4. package/dist/esm/index.native100.js +6 -9
  5. package/dist/esm/index.native101.js +11 -13
  6. package/dist/esm/index.native102.js +11 -8
  7. package/dist/esm/index.native103.js +7 -14
  8. package/dist/esm/index.native104.js +16 -80
  9. package/dist/esm/index.native105.js +79 -11
  10. package/dist/esm/index.native106.js +12 -35
  11. package/dist/esm/index.native107.js +35 -41
  12. package/dist/esm/index.native108.js +38 -75
  13. package/dist/esm/index.native109.js +81 -0
  14. package/dist/esm/index.native11.js +20 -30
  15. package/dist/esm/index.native12.js +30 -7
  16. package/dist/esm/index.native13.js +9 -15
  17. package/dist/esm/index.native14.js +15 -15
  18. package/dist/esm/index.native15.js +15 -116
  19. package/dist/esm/index.native16.js +116 -11
  20. package/dist/esm/index.native17.js +15 -42
  21. package/dist/esm/index.native18.js +42 -20
  22. package/dist/esm/index.native19.js +20 -172
  23. package/dist/esm/index.native2.js +3 -3
  24. package/dist/esm/index.native20.js +170 -39
  25. package/dist/esm/index.native21.js +41 -49
  26. package/dist/esm/index.native22.js +47 -70
  27. package/dist/esm/index.native23.js +69 -23
  28. package/dist/esm/index.native24.js +22 -156
  29. package/dist/esm/index.native25.js +157 -45
  30. package/dist/esm/index.native26.js +43 -245
  31. package/dist/esm/index.native27.js +247 -53
  32. package/dist/esm/index.native28.js +56 -17
  33. package/dist/esm/index.native29.js +15 -21
  34. package/dist/esm/index.native3.js +40 -30
  35. package/dist/esm/index.native30.js +21 -49
  36. package/dist/esm/index.native31.js +50 -8
  37. package/dist/esm/index.native32.js +8 -17
  38. package/dist/esm/index.native33.js +16 -44
  39. package/dist/esm/index.native34.js +45 -13
  40. package/dist/esm/index.native35.js +13 -55
  41. package/dist/esm/index.native36.js +55 -6
  42. package/dist/esm/index.native37.js +6 -21
  43. package/dist/esm/index.native38.js +21 -11
  44. package/dist/esm/index.native39.js +11 -3
  45. package/dist/esm/index.native4.js +67 -21
  46. package/dist/esm/index.native40.js +3 -3
  47. package/dist/esm/index.native41.js +3 -34
  48. package/dist/esm/index.native42.js +32 -10
  49. package/dist/esm/index.native43.js +12 -4
  50. package/dist/esm/index.native44.js +4 -28
  51. package/dist/esm/index.native45.js +28 -6
  52. package/dist/esm/index.native46.js +6 -24
  53. package/dist/esm/index.native47.js +24 -16
  54. package/dist/esm/index.native48.js +16 -54
  55. package/dist/esm/index.native49.js +53 -22
  56. package/dist/esm/index.native5.js +21 -254
  57. package/dist/esm/index.native50.js +23 -11
  58. package/dist/esm/index.native51.js +10 -26
  59. package/dist/esm/index.native52.js +26 -41
  60. package/dist/esm/index.native53.js +41 -54
  61. package/dist/esm/index.native54.js +54 -126
  62. package/dist/esm/index.native55.js +126 -11
  63. package/dist/esm/index.native56.js +9 -101
  64. package/dist/esm/index.native57.js +104 -6
  65. package/dist/esm/index.native58.js +7 -3
  66. package/dist/esm/index.native59.js +3 -15
  67. package/dist/esm/index.native6.js +314 -174
  68. package/dist/esm/index.native60.js +14 -42
  69. package/dist/esm/index.native61.js +38 -74
  70. package/dist/esm/index.native62.js +79 -2
  71. package/dist/esm/index.native63.js +2 -2
  72. package/dist/esm/index.native64.js +2 -13
  73. package/dist/esm/index.native65.js +8 -33
  74. package/dist/esm/index.native66.js +36 -5
  75. package/dist/esm/index.native67.js +5 -33
  76. package/dist/esm/index.native68.js +34 -8
  77. package/dist/esm/index.native69.js +8 -10
  78. package/dist/esm/index.native7.js +213 -115
  79. package/dist/esm/index.native70.js +10 -11
  80. package/dist/esm/index.native71.js +11 -13
  81. package/dist/esm/index.native72.js +13 -18
  82. package/dist/esm/index.native73.js +18 -5
  83. package/dist/esm/index.native74.js +6 -5
  84. package/dist/esm/index.native75.js +5 -11
  85. package/dist/esm/index.native76.js +10 -54
  86. package/dist/esm/index.native77.js +54 -10
  87. package/dist/esm/index.native78.js +11 -2
  88. package/dist/esm/index.native79.js +2 -45
  89. package/dist/esm/index.native8.js +115 -137
  90. package/dist/esm/index.native80.js +44 -13
  91. package/dist/esm/index.native81.js +14 -2
  92. package/dist/esm/index.native82.js +2 -21
  93. package/dist/esm/index.native83.js +18 -17
  94. package/dist/esm/index.native84.js +20 -80
  95. package/dist/esm/index.native85.js +79 -103
  96. package/dist/esm/index.native86.js +101 -30
  97. package/dist/esm/index.native87.js +32 -6
  98. package/dist/esm/index.native88.js +6 -78
  99. package/dist/esm/index.native89.js +2 -2
  100. package/dist/esm/index.native9.js +138 -113
  101. package/dist/esm/index.native90.js +3 -3
  102. package/dist/esm/index.native92.js +3 -3
  103. package/dist/esm/index.native93.js +1 -1
  104. package/dist/esm/index.native94.js +3 -3
  105. package/dist/esm/index.native95.js +79 -10
  106. package/dist/esm/index.native96.js +10 -5
  107. package/dist/esm/index.native97.js +5 -18
  108. package/dist/esm/index.native98.js +18 -28
  109. package/dist/esm/index.native99.js +26 -6
  110. package/dist/esm/index.web.js +41 -38
  111. package/dist/esm/index.web100.js +13 -28
  112. package/dist/esm/index.web101.js +10 -8
  113. package/dist/esm/index.web102.js +17 -11
  114. package/dist/esm/index.web103.js +80 -12
  115. package/dist/esm/index.web104.js +13 -10
  116. package/dist/esm/index.web105.js +36 -17
  117. package/dist/esm/index.web106.js +40 -79
  118. package/dist/esm/index.web12.js +6 -5
  119. package/dist/esm/index.web13.js +12 -10
  120. package/dist/esm/index.web15.js +1 -0
  121. package/dist/esm/index.web26.js +1 -1
  122. package/dist/esm/index.web5.js +217 -141
  123. package/dist/esm/index.web6.js +65 -38
  124. package/dist/esm/index.web75.js +6 -6
  125. package/dist/esm/index.web84.js +1 -1
  126. package/dist/esm/index.web87.js +21 -10
  127. package/dist/esm/index.web88.js +10 -79
  128. package/dist/esm/index.web89.js +19 -20
  129. package/dist/esm/index.web90.js +93 -9
  130. package/dist/esm/index.web91.js +19 -18
  131. package/dist/esm/index.web92.js +105 -81
  132. package/dist/esm/index.web93.js +9 -20
  133. package/dist/esm/index.web94.js +73 -112
  134. package/dist/esm/index.web96.js +18 -13
  135. package/dist/esm/index.web97.js +27 -35
  136. package/dist/esm/index.web98.js +7 -41
  137. package/dist/esm/index.web99.js +11 -18
  138. package/dist/native/index.native.js +41 -36
  139. package/dist/native/index.native10.js +115 -21
  140. package/dist/native/index.native100.js +6 -9
  141. package/dist/native/index.native101.js +11 -13
  142. package/dist/native/index.native102.js +11 -8
  143. package/dist/native/index.native103.js +7 -14
  144. package/dist/native/index.native104.js +16 -80
  145. package/dist/native/index.native105.js +79 -11
  146. package/dist/native/index.native106.js +12 -35
  147. package/dist/native/index.native107.js +35 -41
  148. package/dist/native/index.native108.js +38 -75
  149. package/dist/native/index.native109.js +81 -0
  150. package/dist/native/index.native11.js +20 -30
  151. package/dist/native/index.native12.js +30 -7
  152. package/dist/native/index.native13.js +9 -15
  153. package/dist/native/index.native14.js +15 -15
  154. package/dist/native/index.native15.js +15 -116
  155. package/dist/native/index.native16.js +116 -11
  156. package/dist/native/index.native17.js +15 -42
  157. package/dist/native/index.native18.js +42 -20
  158. package/dist/native/index.native19.js +20 -172
  159. package/dist/native/index.native2.js +3 -3
  160. package/dist/native/index.native20.js +170 -39
  161. package/dist/native/index.native21.js +41 -49
  162. package/dist/native/index.native22.js +47 -70
  163. package/dist/native/index.native23.js +69 -23
  164. package/dist/native/index.native24.js +22 -156
  165. package/dist/native/index.native25.js +157 -45
  166. package/dist/native/index.native26.js +43 -245
  167. package/dist/native/index.native27.js +247 -53
  168. package/dist/native/index.native28.js +56 -17
  169. package/dist/native/index.native29.js +15 -21
  170. package/dist/native/index.native3.js +40 -30
  171. package/dist/native/index.native30.js +21 -49
  172. package/dist/native/index.native31.js +50 -8
  173. package/dist/native/index.native32.js +8 -17
  174. package/dist/native/index.native33.js +16 -44
  175. package/dist/native/index.native34.js +45 -13
  176. package/dist/native/index.native35.js +13 -55
  177. package/dist/native/index.native36.js +55 -6
  178. package/dist/native/index.native37.js +6 -21
  179. package/dist/native/index.native38.js +21 -11
  180. package/dist/native/index.native39.js +11 -3
  181. package/dist/native/index.native4.js +67 -21
  182. package/dist/native/index.native40.js +3 -3
  183. package/dist/native/index.native41.js +3 -34
  184. package/dist/native/index.native42.js +32 -10
  185. package/dist/native/index.native43.js +12 -4
  186. package/dist/native/index.native44.js +4 -28
  187. package/dist/native/index.native45.js +28 -6
  188. package/dist/native/index.native46.js +6 -24
  189. package/dist/native/index.native47.js +24 -16
  190. package/dist/native/index.native48.js +16 -54
  191. package/dist/native/index.native49.js +53 -22
  192. package/dist/native/index.native5.js +21 -254
  193. package/dist/native/index.native50.js +23 -11
  194. package/dist/native/index.native51.js +10 -26
  195. package/dist/native/index.native52.js +26 -41
  196. package/dist/native/index.native53.js +41 -54
  197. package/dist/native/index.native54.js +54 -126
  198. package/dist/native/index.native55.js +126 -11
  199. package/dist/native/index.native56.js +9 -101
  200. package/dist/native/index.native57.js +104 -6
  201. package/dist/native/index.native58.js +7 -3
  202. package/dist/native/index.native59.js +3 -15
  203. package/dist/native/index.native6.js +314 -174
  204. package/dist/native/index.native60.js +14 -42
  205. package/dist/native/index.native61.js +38 -74
  206. package/dist/native/index.native62.js +79 -2
  207. package/dist/native/index.native63.js +2 -2
  208. package/dist/native/index.native64.js +2 -13
  209. package/dist/native/index.native65.js +8 -33
  210. package/dist/native/index.native66.js +36 -5
  211. package/dist/native/index.native67.js +5 -33
  212. package/dist/native/index.native68.js +34 -8
  213. package/dist/native/index.native69.js +8 -10
  214. package/dist/native/index.native7.js +213 -115
  215. package/dist/native/index.native70.js +10 -11
  216. package/dist/native/index.native71.js +11 -13
  217. package/dist/native/index.native72.js +13 -18
  218. package/dist/native/index.native73.js +18 -5
  219. package/dist/native/index.native74.js +6 -5
  220. package/dist/native/index.native75.js +5 -11
  221. package/dist/native/index.native76.js +10 -54
  222. package/dist/native/index.native77.js +54 -10
  223. package/dist/native/index.native78.js +11 -2
  224. package/dist/native/index.native79.js +2 -45
  225. package/dist/native/index.native8.js +115 -137
  226. package/dist/native/index.native80.js +44 -13
  227. package/dist/native/index.native81.js +14 -2
  228. package/dist/native/index.native82.js +2 -21
  229. package/dist/native/index.native83.js +18 -17
  230. package/dist/native/index.native84.js +20 -80
  231. package/dist/native/index.native85.js +79 -103
  232. package/dist/native/index.native86.js +101 -30
  233. package/dist/native/index.native87.js +32 -6
  234. package/dist/native/index.native88.js +6 -78
  235. package/dist/native/index.native89.js +2 -2
  236. package/dist/native/index.native9.js +138 -113
  237. package/dist/native/index.native90.js +3 -3
  238. package/dist/native/index.native92.js +3 -3
  239. package/dist/native/index.native93.js +1 -1
  240. package/dist/native/index.native94.js +3 -3
  241. package/dist/native/index.native95.js +79 -10
  242. package/dist/native/index.native96.js +10 -5
  243. package/dist/native/index.native97.js +5 -18
  244. package/dist/native/index.native98.js +18 -28
  245. package/dist/native/index.native99.js +26 -6
  246. package/dist/native-types/auth/authManager.d.ts +3 -0
  247. package/dist/native-types/auth/withAuth.d.ts +3 -1
  248. package/dist/native-types/core.d.ts +3 -1
  249. package/dist/native-types/platform/native/secureStorage.d.ts +2 -0
  250. package/dist/native-types/platform/types.d.ts +7 -0
  251. package/dist/native-types/types.d.ts +20 -3
  252. package/dist/types/auth/authManager.d.ts +3 -0
  253. package/dist/types/auth/withAuth.d.ts +3 -1
  254. package/dist/types/core.d.ts +3 -1
  255. package/dist/types/platform/native/secureStorage.d.ts +2 -0
  256. package/dist/types/platform/types.d.ts +7 -0
  257. package/dist/types/types.d.ts +20 -3
  258. package/dist/web/index.web.js +41 -38
  259. package/dist/web/index.web100.js +13 -28
  260. package/dist/web/index.web101.js +10 -8
  261. package/dist/web/index.web102.js +17 -11
  262. package/dist/web/index.web103.js +80 -12
  263. package/dist/web/index.web104.js +13 -10
  264. package/dist/web/index.web105.js +36 -17
  265. package/dist/web/index.web106.js +40 -79
  266. package/dist/web/index.web12.js +6 -5
  267. package/dist/web/index.web13.js +12 -10
  268. package/dist/web/index.web15.js +1 -0
  269. package/dist/web/index.web26.js +1 -1
  270. package/dist/web/index.web5.js +217 -141
  271. package/dist/web/index.web6.js +65 -38
  272. package/dist/web/index.web75.js +6 -6
  273. package/dist/web/index.web84.js +1 -1
  274. package/dist/web/index.web87.js +21 -10
  275. package/dist/web/index.web88.js +10 -79
  276. package/dist/web/index.web89.js +19 -20
  277. package/dist/web/index.web90.js +93 -9
  278. package/dist/web/index.web91.js +19 -18
  279. package/dist/web/index.web92.js +105 -81
  280. package/dist/web/index.web93.js +9 -20
  281. package/dist/web/index.web94.js +73 -112
  282. package/dist/web/index.web96.js +18 -13
  283. package/dist/web/index.web97.js +27 -35
  284. package/dist/web/index.web98.js +7 -41
  285. package/dist/web/index.web99.js +11 -18
  286. package/dist/web-types/auth/authManager.d.ts +3 -0
  287. package/dist/web-types/auth/withAuth.d.ts +3 -1
  288. package/dist/web-types/core.d.ts +3 -1
  289. package/dist/web-types/platform/native/secureStorage.d.ts +2 -0
  290. package/dist/web-types/platform/types.d.ts +7 -0
  291. package/dist/web-types/types.d.ts +20 -3
  292. package/package.json +8 -4
@@ -1,128 +1,171 @@
1
- import { configureCdpApiClient as A, setAuthManager as v, initiateAuthentication as S, createEndUserEvmAccount as E, createEndUserEvmSmartAccount as p, verifyEmailAuthentication as k, verifySmsAuthentication as U, signEvmHashWithEndUserAccount as M, signEvmTransactionWithEndUserAccount as T, sendEvmTransactionWithEndUserAccount as P, signEvmMessageWithEndUserAccount as j, signEvmTypedDataWithEndUserAccount as C, sendUserOperationWithEndUserAccount as O, getUserOperationWithEndUserAccount as x, exportEndUserEvmAccount as H } from "@coinbase/cdp-api-client";
2
- import { AuthManager as W } from "./index.web6.js";
3
- import { toAuthState as m } from "./index.web12.js";
1
+ import { configureCdpApiClient as h, setAuthManager as I, initiateAuthentication as A, createEndUserSolanaAccount as v, createEndUserEvmAccount as k, createEndUserEvmSmartAccount as d, verifyEmailAuthentication as S, verifySmsAuthentication as E, signEvmHashWithEndUserAccount as U, signEvmTransactionWithEndUserAccount as T, signSolanaTransactionWithEndUserAccount as M, sendEvmTransactionWithEndUserAccount as j, sendSolanaTransactionWithEndUserAccount as P, signEvmMessageWithEndUserAccount as O, signEvmTypedDataWithEndUserAccount as C, sendUserOperationWithEndUserAccount as x, getUserOperationWithEndUserAccount as W, exportEndUserEvmAccount as H } from "@coinbase/cdp-api-client";
2
+ import { AuthManager as b } from "./index.web6.js";
3
+ import { toAuthState as u } from "./index.web12.js";
4
4
  import { withAuth as o } from "./index.web13.js";
5
- import { MockAuthManager as b } from "./index.web14.js";
6
- import { mockUser as h } from "./index.web15.js";
7
- import { getPlatformCrypto as K } from "./index.web2.js";
8
- import { isChainSupportedForCDPSends as D } from "./index.web16.js";
9
- import { getConfig as t, setCoreAuthManager as w, getCoreAuthManager as s, setConfig as z } from "./index.web17.js";
5
+ import { MockAuthManager as K } from "./index.web14.js";
6
+ import { mockUser as g } from "./index.web15.js";
7
+ import { getPlatformServices as l, getPlatformCrypto as D } from "./index.web2.js";
8
+ import { isChainSupportedForCDPSends as _ } from "./index.web16.js";
9
+ import { getConfig as n, setCoreAuthManager as m, getCoreAuthManager as a, setConfig as N } from "./index.web17.js";
10
10
  import "viem";
11
- import { serializeTransaction as y } from "./index.web18.js";
12
- const Y = async (e) => {
11
+ import { serializeTransaction as w } from "./index.web18.js";
12
+ const R = async (e) => {
13
13
  if (!e.projectId)
14
14
  throw new Error("Project ID is required");
15
- let n;
15
+ let r;
16
16
  try {
17
- n = t().projectId !== e.projectId;
17
+ r = n().projectId !== e.projectId;
18
18
  } catch {
19
- n = !0;
19
+ r = !0;
20
20
  }
21
- if (z(e), t().useMock) {
22
- w(new b(t().projectId));
21
+ if (N(e), n().useMock) {
22
+ m(new K(n().projectId));
23
23
  return;
24
24
  }
25
- if (A({
26
- debugging: t().debugging,
27
- basePath: t().basePath
28
- }), n) {
29
- const r = new W(t().projectId);
30
- w(r), v(r);
25
+ let t;
26
+ try {
27
+ const s = l();
28
+ t = s.secureStorage ? {
29
+ getRefreshToken: () => s.secureStorage.getItem("cdp_refresh_token"),
30
+ setRefreshToken: (c) => s.secureStorage.setItem("cdp_refresh_token", c),
31
+ removeRefreshToken: () => s.secureStorage.removeItem("cdp_refresh_token")
32
+ } : void 0;
33
+ } catch {
34
+ t = void 0;
35
+ }
36
+ if (h({
37
+ debugging: n().debugging,
38
+ basePath: n().basePath,
39
+ refreshTokenStorage: t
40
+ }), r) {
41
+ const s = new b(n().projectId);
42
+ m(s), I(s);
31
43
  }
32
- await s().ensureInitialized();
33
- }, Z = async (e) => l({
44
+ await a().ensureInitialized();
45
+ }, ee = async (e) => p({
34
46
  email: e.email,
35
47
  type: "email"
36
- }), _ = async (e) => l({
48
+ }), re = async (e) => p({
37
49
  phoneNumber: e.phoneNumber,
38
50
  type: "sms"
39
- }), ee = async (e) => f(
51
+ }), te = async (e) => y(
40
52
  e,
41
53
  "Mock email OTP verified",
42
- (n, r) => k(n, r)
43
- ), te = async (e) => f(
54
+ (r, t) => S(r, t)
55
+ ), ne = async (e) => y(
44
56
  e,
45
57
  "Mock SMS OTP verified",
46
- (n, r) => U(n, r)
47
- ), re = async () => s().getUser(), ne = async () => s().isSignedIn(), se = async () => {
48
- if (t().useMock) {
49
- await s().signOut();
58
+ (r, t) => E(r, t)
59
+ ), se = async () => a().getUser(), ae = async () => a().isSignedIn(), ce = async () => {
60
+ if (n().useMock) {
61
+ await a().signOut();
50
62
  return;
51
63
  }
52
- if (!await s().isSignedIn())
64
+ if (!await a().isSignedIn())
53
65
  throw new Error("User not signed in");
54
- await s().signOut();
55
- }, ae = async () => s().getToken(), ce = (e) => {
56
- s().addAuthStateChangeCallback(e);
57
- }, ie = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: n, walletSecretId: r }) => ({
58
- signature: (await M(t().projectId, n.userId, {
66
+ await a().signOut();
67
+ try {
68
+ const r = l();
69
+ if (r.secureStorage)
70
+ try {
71
+ await r.secureStorage.removeItem("cdp_refresh_token");
72
+ } catch (t) {
73
+ console.warn("Failed to clear stored refresh token:", t);
74
+ }
75
+ } catch {
76
+ }
77
+ }, oe = async () => a().getToken(), ie = (e) => {
78
+ a().addAuthStateChangeCallback(e);
79
+ }, ue = async (e) => n().useMock ? { signature: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
80
+ signature: (await U(n().projectId, r.userId, {
59
81
  hash: e.hash,
60
82
  address: e.evmAccount,
61
- walletSecretId: r
83
+ walletSecretId: t
62
84
  })).signature
63
- })), oe = async (e) => t().useMock ? { signedTransaction: "0x0" } : o(e, s(), async ({ user: n, walletSecretId: r }) => {
64
- const i = y(e.transaction);
85
+ })), de = async (e) => n().useMock ? { signedTransaction: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => {
86
+ const s = w(e.transaction);
65
87
  return {
66
88
  signedTransaction: (await T(
67
- t().projectId,
68
- n.userId,
89
+ n().projectId,
90
+ r.userId,
69
91
  {
70
- transaction: i,
92
+ transaction: s,
71
93
  address: e.evmAccount,
72
- walletSecretId: r
94
+ walletSecretId: t
73
95
  }
74
96
  )).signedTransaction
75
97
  };
76
- }), ue = async (e) => {
77
- if (!D(e.network))
98
+ }), ge = async (e) => n().useMock ? { signedTransaction: "mock-signed-transaction" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
99
+ signedTransaction: (await M(
100
+ n().projectId,
101
+ r.userId,
102
+ {
103
+ transaction: e.transaction,
104
+ address: e.solanaAccount,
105
+ walletSecretId: t
106
+ }
107
+ )).signedTransaction
108
+ })), me = async (e) => {
109
+ if (!_(e.network))
78
110
  throw new Error(`Chain ${e.network} is not supported by the CDP Apis`);
79
- if (t().useMock)
111
+ if (n().useMock)
80
112
  return { transactionHash: "0x0" };
81
- const n = y(e.transaction);
82
- return o(e, s(), async ({ user: r, walletSecretId: i }) => ({
83
- transactionHash: (await P(
84
- t().projectId,
85
- r.userId,
113
+ const r = w(e.transaction);
114
+ return o(e, a(), async ({ user: t, walletSecretId: s }) => ({
115
+ transactionHash: (await j(
116
+ n().projectId,
117
+ t.userId,
86
118
  {
87
- transaction: n,
119
+ transaction: r,
88
120
  address: e.evmAccount,
89
- walletSecretId: i,
121
+ walletSecretId: s,
90
122
  network: e.network
91
123
  }
92
124
  )).transactionHash
93
125
  }));
94
- }, de = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: n, walletSecretId: r }) => ({
95
- signature: (await j(t().projectId, n.userId, {
126
+ }, le = async (e) => n().useMock ? { transactionSignature: "mock-signature" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
127
+ transactionSignature: (await P(
128
+ n().projectId,
129
+ r.userId,
130
+ {
131
+ transaction: e.transaction,
132
+ address: e.solanaAccount,
133
+ walletSecretId: t,
134
+ network: e.network
135
+ }
136
+ )).transactionSignature
137
+ })), we = async (e) => n().useMock ? { signature: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
138
+ signature: (await O(n().projectId, r.userId, {
96
139
  message: e.message,
97
140
  address: e.evmAccount,
98
- walletSecretId: r
141
+ walletSecretId: t
99
142
  })).signature
100
- })), me = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: n, walletSecretId: r }) => ({
101
- signature: (await C(t().projectId, n.userId, {
143
+ })), pe = async (e) => n().useMock ? { signature: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
144
+ signature: (await C(n().projectId, r.userId, {
102
145
  typedData: e.typedData,
103
146
  address: e.evmAccount,
104
- walletSecretId: r
147
+ walletSecretId: t
105
148
  })).signature
106
- })), ge = async (e) => t().useMock ? {
149
+ })), ye = async (e) => n().useMock ? {
107
150
  userOperationHash: "0x1234567890123456789012345678901234567890123456789012345678901234"
108
- } : o(e, s(), async ({ user: n, walletSecretId: r }) => ({
109
- userOperationHash: (await O(
110
- t().projectId,
111
- n.userId,
151
+ } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
152
+ userOperationHash: (await x(
153
+ n().projectId,
154
+ r.userId,
112
155
  e.evmSmartAccount,
113
156
  {
114
157
  network: e.network,
115
- calls: e.calls.map((a) => ({
116
- to: a.to,
117
- value: String(a.value ?? 0n),
118
- data: a.data ?? "0x"
158
+ calls: e.calls.map((c) => ({
159
+ to: c.to,
160
+ value: String(c.value ?? 0n),
161
+ data: c.data ?? "0x"
119
162
  })),
120
- walletSecretId: r,
163
+ walletSecretId: t,
121
164
  useCdpPaymaster: e.useCdpPaymaster ?? !1,
122
165
  paymasterUrl: e.paymasterUrl
123
166
  }
124
167
  )).userOpHash
125
- })), pe = async (e) => t().useMock ? {
168
+ })), fe = async (e) => n().useMock ? {
126
169
  userOpHash: e.userOperationHash,
127
170
  network: e.network,
128
171
  calls: [
@@ -135,122 +178,155 @@ const Y = async (e) => {
135
178
  status: "complete",
136
179
  transactionHash: "0x9876543210987654321098765432109876543210987654321098765432109876",
137
180
  receipts: []
138
- } : o(e, s(), async ({ user: n }) => await x(
139
- t().projectId,
140
- n.userId,
181
+ } : o(e, a(), async ({ user: r }) => await W(
182
+ n().projectId,
183
+ r.userId,
141
184
  e.evmSmartAccount,
142
185
  e.userOperationHash
143
186
  )), he = async (e) => {
144
- if (t().useMock)
187
+ if (n().useMock)
145
188
  return {
146
189
  privateKey: "mock-private-key"
147
190
  };
148
- const n = K(), r = await n.createExportKeyPair();
149
- return o(e, s(), async ({ user: i, walletSecretId: a }) => {
150
- const c = await H(t().projectId, i.userId, {
191
+ const r = D(), t = await r.createExportKeyPair();
192
+ return o(e, a(), async ({ user: s, walletSecretId: c }) => {
193
+ const i = await H(n().projectId, s.userId, {
151
194
  address: e.evmAccount,
152
- walletSecretId: a,
153
- exportEncryptionKey: r.publicKeyBase64
195
+ walletSecretId: c,
196
+ exportEncryptionKey: t.publicKeyBase64
154
197
  });
155
198
  return {
156
- privateKey: await n.decryptWithPrivateKey(
157
- r.privateKey,
158
- c.encryptedPrivateKey
199
+ privateKey: await r.decryptWithPrivateKey(
200
+ t.privateKey,
201
+ i.encryptedPrivateKey
159
202
  )
160
203
  };
161
204
  });
162
- }, l = async (e) => {
163
- if (t().useMock)
205
+ }, p = async (e) => {
206
+ if (n().useMock)
164
207
  return {
165
208
  message: "Mock sign in initiated",
166
209
  flowId: "mock-flow-id"
167
210
  };
168
- if (await s().isSignedIn())
211
+ if (await a().isSignedIn())
169
212
  throw new Error("User is already authenticated. Please sign out first.");
170
- const r = await S(t().projectId, e);
213
+ const t = await A(n().projectId, e);
171
214
  return {
172
- flowId: r.flowId,
173
- message: r.message
215
+ flowId: t.flowId,
216
+ message: t.message
174
217
  };
175
- }, f = async (e, n, r) => {
176
- if (t().useMock)
177
- return await s().setAuthState({
218
+ }, y = async (e, r, t) => {
219
+ if (n().useMock)
220
+ return await a().setAuthState({
178
221
  accessToken: "mock-access-token",
179
222
  expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
180
- user: h
223
+ user: g
181
224
  }), {
182
- message: n,
183
- user: h,
225
+ message: r,
226
+ user: g,
184
227
  isNewUser: !1
185
228
  };
186
- if (await s().isSignedIn())
229
+ if (await a().isSignedIn())
187
230
  throw new Error("User is already authenticated. Please sign out first.");
188
- const a = await r(t().projectId, {
231
+ const c = await t(n().projectId, {
189
232
  flowId: e.flowId,
190
233
  otp: e.otp
191
- });
192
- let c = m(a.accessToken, a.validUntil, a.endUser);
193
- if (await s().setAuthState(c), !c.user.evmAccounts || c.user.evmAccounts.length === 0)
234
+ }), i = u(
235
+ c.accessToken,
236
+ c.validUntil,
237
+ c.endUser
238
+ );
239
+ return await a().setAuthState(i), n().createAccountOnLogin === "solana" ? F({ authResponse: c, authState: i }) : z({ authResponse: c, authState: i });
240
+ }, z = async ({
241
+ authResponse: e,
242
+ authState: r
243
+ }) => {
244
+ if (!r.user.evmAccounts || r.user.evmAccounts.length === 0)
194
245
  try {
195
- const u = await s().getWalletSecretId();
196
- let d = await E(t().projectId, c.user.userId, {
197
- walletSecretId: u
246
+ const s = await a().getWalletSecretId();
247
+ let c = await k(n().projectId, r.user.userId, {
248
+ walletSecretId: s
198
249
  });
199
- if (t().createAccountOnLogin === "evm-smart") {
200
- const [I] = d.evmAccounts;
201
- d = await p(
202
- t().projectId,
203
- c.user.userId,
250
+ if (n().createAccountOnLogin === "evm-smart") {
251
+ const [i] = c.evmAccounts;
252
+ c = await d(
253
+ n().projectId,
254
+ r.user.userId,
204
255
  {
205
- owner: I,
256
+ owner: i,
206
257
  enableSpendPermissions: !1
207
258
  // Defaulting to false until the feature is ready.
208
259
  }
209
260
  );
210
261
  }
211
- c = m(a.accessToken, a.validUntil, d), await s().setAuthState(c);
212
- } catch (u) {
213
- throw new Error(`Failed to create EVM account: ${u}`);
262
+ r = u(e.accessToken, e.validUntil, c), await a().setAuthState(r);
263
+ } catch (s) {
264
+ throw new Error(`Failed to create EVM account: ${s}`);
214
265
  }
215
- if (t().createAccountOnLogin === "evm-smart" && (!c.user.evmSmartAccounts || c.user.evmSmartAccounts.length === 0))
266
+ if (n().createAccountOnLogin === "evm-smart" && (!r.user.evmSmartAccounts || r.user.evmSmartAccounts.length === 0))
216
267
  try {
217
- const [u] = c.user.evmAccounts, d = await p(
218
- t().projectId,
219
- c.user.userId,
268
+ const [s] = r.user.evmAccounts, c = await d(
269
+ n().projectId,
270
+ r.user.userId,
220
271
  {
221
- owner: u,
272
+ owner: s,
222
273
  enableSpendPermissions: !1
223
274
  // Defaulting to false until the feature is ready.
224
275
  }
225
276
  );
226
- c = m(a.accessToken, a.validUntil, d), await s().setAuthState(c);
227
- } catch (u) {
228
- throw new Error(`Failed to create EVM Smart Account: ${u}`);
277
+ r = u(e.accessToken, e.validUntil, c), await a().setAuthState(r);
278
+ } catch (s) {
279
+ throw new Error(`Failed to create EVM Smart Account: ${s}`);
229
280
  }
230
- const g = await s().getUser();
281
+ const t = await a().getUser();
231
282
  return {
232
- message: a.message,
233
- user: g,
234
- isNewUser: a.isNewEndUser
283
+ message: e.message,
284
+ user: t,
285
+ isNewUser: e.isNewEndUser
286
+ };
287
+ }, F = async ({
288
+ authResponse: e,
289
+ authState: r
290
+ }) => {
291
+ if (!r.user.solanaAccounts || r.user.solanaAccounts.length === 0)
292
+ try {
293
+ const s = await a().getWalletSecretId(), c = await v(
294
+ n().projectId,
295
+ r.user.userId,
296
+ {
297
+ walletSecretId: s
298
+ }
299
+ );
300
+ r = u(e.accessToken, e.validUntil, c), await a().setAuthState(r);
301
+ } catch (s) {
302
+ throw new Error(`Failed to create Solana account: ${s}`);
303
+ }
304
+ const t = await a().getUser();
305
+ return {
306
+ message: e.message,
307
+ user: t,
308
+ isNewUser: e.isNewEndUser
235
309
  };
236
310
  };
237
311
  export {
238
312
  he as exportEvmAccount,
239
- ae as getAccessToken,
240
- re as getCurrentUser,
241
- pe as getUserOperation,
242
- Y as initialize,
243
- ne as isSignedIn,
244
- ce as onAuthStateChange,
245
- ue as sendEvmTransaction,
246
- ge as sendUserOperation,
247
- ie as signEvmHash,
248
- de as signEvmMessage,
249
- oe as signEvmTransaction,
250
- me as signEvmTypedData,
251
- Z as signInWithEmail,
252
- _ as signInWithSms,
253
- se as signOut,
254
- ee as verifyEmailOTP,
255
- te as verifySmsOTP
313
+ oe as getAccessToken,
314
+ se as getCurrentUser,
315
+ fe as getUserOperation,
316
+ R as initialize,
317
+ ae as isSignedIn,
318
+ ie as onAuthStateChange,
319
+ me as sendEvmTransaction,
320
+ le as sendSolanaTransaction,
321
+ ye as sendUserOperation,
322
+ ue as signEvmHash,
323
+ we as signEvmMessage,
324
+ de as signEvmTransaction,
325
+ pe as signEvmTypedData,
326
+ ee as signInWithEmail,
327
+ re as signInWithSms,
328
+ ce as signOut,
329
+ ge as signSolanaTransaction,
330
+ te as verifyEmailOTP,
331
+ ne as verifySmsOTP
256
332
  };
@@ -1,23 +1,24 @@
1
1
  import { logOutEndUser as l, refreshAccessToken as c, registerTemporaryWalletSecret as o } from "@coinbase/cdp-api-client";
2
2
  import { SignJWT as u } from "./index.web19.js";
3
3
  import "viem";
4
- import { toAuthState as S } from "./index.web12.js";
4
+ import { toAuthState as f } from "./index.web12.js";
5
5
  import { getPlatformCrypto as n } from "./index.web2.js";
6
- import { sortKeys as w } from "./index.web16.js";
7
- const h = 60 * 1e3;
8
- class A {
6
+ import { sortKeys as S } from "./index.web16.js";
7
+ const i = 60 * 1e3;
8
+ class p {
9
9
  projectId;
10
10
  authState = null;
11
11
  walletSecret = null;
12
12
  authStateChangeCallbacks = [];
13
13
  initPromise = null;
14
+ refreshTimeout = null;
14
15
  /**
15
16
  * Initializes the token manager.
16
17
  *
17
18
  * @param projectId - The project ID.
18
19
  */
19
- constructor(t) {
20
- this.projectId = t, this.initPromise = this._doInitialize();
20
+ constructor(e) {
21
+ this.projectId = e, this.initPromise = this._doInitialize();
21
22
  }
22
23
  /**
23
24
  * Gets the current user, or null if there is no user signed in.
@@ -29,12 +30,20 @@ class A {
29
30
  }
30
31
  /**
31
32
  * Returns whether the user is signed in - i.e., whether there is an unexpired
32
- * access token and user.
33
+ * access token and user. Attempts to refresh the token if it's expired.
33
34
  *
34
35
  * @returns True if the user is signed in, false otherwise.
35
36
  */
36
37
  async isSignedIn() {
37
- return this.authState ? Promise.resolve(this.authState.expiresAt > Date.now()) : Promise.resolve(!1);
38
+ if (!this.authState)
39
+ return !1;
40
+ if (this.authState.expiresAt > Date.now() + i)
41
+ return !0;
42
+ try {
43
+ return await this.getToken() !== null;
44
+ } catch {
45
+ return !1;
46
+ }
38
47
  }
39
48
  /**
40
49
  * Signs out the user, clearing all authentication state.
@@ -52,8 +61,8 @@ class A {
52
61
  *
53
62
  * @param callback - The function to call when the auth state changes.
54
63
  */
55
- addAuthStateChangeCallback(t) {
56
- this.authStateChangeCallbacks.push(t), t(this.authState?.user ?? null);
64
+ addAuthStateChangeCallback(e) {
65
+ this.authStateChangeCallbacks.push(e), e(this.authState?.user ?? null);
57
66
  }
58
67
  /**
59
68
  * Gets the access token, refreshing it if it is expired. Returns null if the user is not
@@ -84,32 +93,32 @@ class A {
84
93
  * @param options.requestData - The data of the request.
85
94
  * @returns The X-Wallet-Auth header.
86
95
  */
87
- async getXWalletAuth(t) {
96
+ async getXWalletAuth(e) {
88
97
  if (!await this.isSignedIn())
89
98
  throw new Error("Cannot get X-Wallet-Auth header if the user is not signed in");
90
99
  this.shouldRefreshWalletSecret() && await this.refreshWalletSecret();
91
- const e = `${t.requestMethod} ${t.requestHost}${t.requestPath}`, a = Math.floor(Date.now() / 1e3), r = n(), s = {
92
- uris: [e]
100
+ const t = `${e.requestMethod} ${e.requestHost}${e.requestPath}`, r = Math.floor(Date.now() / 1e3), s = n(), a = {
101
+ uris: [t]
93
102
  };
94
- if (t.requestData && Object.keys(t.requestData).length > 0) {
95
- const i = w(t.requestData);
96
- s.reqHash = await r.hash(new TextEncoder().encode(JSON.stringify(i)));
103
+ if (e.requestData && Object.keys(e.requestData).length > 0) {
104
+ const h = S(e.requestData);
105
+ a.reqHash = await s.hash(new TextEncoder().encode(JSON.stringify(h)));
97
106
  }
98
- return await new u(s).setProtectedHeader({ alg: "ES256", typ: "JWT" }).setIssuedAt(a).setNotBefore(a).setJti(r.generateRandomId()).sign(this.walletSecret.keyPair.privateKey);
107
+ return await new u(a).setProtectedHeader({ alg: "ES256", typ: "JWT" }).setIssuedAt(r).setNotBefore(r).setJti(s.generateRandomId()).sign(this.walletSecret.keyPair.privateKey);
99
108
  }
100
109
  /**
101
110
  * Sets the authentication state.
102
111
  *
103
112
  * @param authState - The authentication state.
104
113
  */
105
- async setAuthState(t) {
106
- this.authState = t, this.authStateChangeCallbacks.forEach((e) => e(this.authState?.user ?? null));
114
+ async setAuthState(e) {
115
+ this.authState = e, this.authStateChangeCallbacks.forEach((t) => t(this.authState?.user ?? null)), this.scheduleTokenRefresh();
107
116
  }
108
117
  /**
109
118
  * Clears the authentication state.
110
119
  */
111
120
  async clearAuthState() {
112
- this.authState = null, this.walletSecret = null, this.authStateChangeCallbacks.forEach((t) => t(null));
121
+ this.authState = null, this.walletSecret = null, this.cancelTokenRefresh(), this.authStateChangeCallbacks.forEach((e) => e(null));
113
122
  }
114
123
  /**
115
124
  * Ensures the AuthManager is initialized before proceeding.
@@ -128,8 +137,8 @@ class A {
128
137
  async _doInitialize() {
129
138
  try {
130
139
  await this.refreshAccessToken();
131
- } catch (t) {
132
- console.warn("Failed to refresh access token during initialization:", t);
140
+ } catch (e) {
141
+ console.warn("Failed to refresh access token during initialization:", e);
133
142
  }
134
143
  }
135
144
  /**
@@ -138,7 +147,7 @@ class A {
138
147
  * @returns True if the token should be refreshed, false otherwise.
139
148
  */
140
149
  shouldRefreshToken() {
141
- return !(this.authState && this.authState.expiresAt > Date.now() + h);
150
+ return !(this.authState && this.authState.expiresAt > Date.now() + i);
142
151
  }
143
152
  /**
144
153
  * Refreshes the access token and transitions the auth state accordingly.
@@ -148,14 +157,14 @@ class A {
148
157
  */
149
158
  async refreshAccessToken() {
150
159
  try {
151
- const t = await c(this.projectId, {
160
+ const e = await c(this.projectId, {
152
161
  grantType: "refresh_token"
153
- }), e = S(
154
- t.accessToken,
155
- t.validUntil,
156
- t.endUser
162
+ }), t = f(
163
+ e.accessToken,
164
+ e.validUntil,
165
+ e.endUser
157
166
  );
158
- await this.setAuthState(e);
167
+ await this.setAuthState(t);
159
168
  } catch {
160
169
  await this.signOut();
161
170
  }
@@ -166,7 +175,7 @@ class A {
166
175
  * @returns True if the wallet secret should be refreshed, false otherwise.
167
176
  */
168
177
  shouldRefreshWalletSecret() {
169
- return !(this.walletSecret && this.walletSecret.expiresAt > Date.now() + h);
178
+ return !(this.walletSecret && this.walletSecret.expiresAt > Date.now() + i);
170
179
  }
171
180
  /**
172
181
  * Refreshes the wallet secret. Assumes the user is signed in.
@@ -174,19 +183,37 @@ class A {
174
183
  * @returns The wallet secret.
175
184
  */
176
185
  async refreshWalletSecret() {
177
- const t = n(), e = this.walletSecret?.walletSecretId ?? t.generateRandomId(), a = this.walletSecret?.keyPair ?? await t.createKeyPair(), r = this.authState.expiresAt, s = new Date(r).toISOString();
178
- this.walletSecret = { walletSecretId: e, keyPair: a, expiresAt: r };
186
+ const e = n(), t = this.walletSecret?.walletSecretId ?? e.generateRandomId(), r = this.walletSecret?.keyPair ?? await e.createKeyPair(), s = this.authState.expiresAt, a = new Date(s).toISOString();
187
+ this.walletSecret = { walletSecretId: t, keyPair: r, expiresAt: s };
179
188
  try {
180
189
  await o(this.projectId, this.authState.user.userId, {
181
- walletSecretId: e,
182
- publicKey: a.publicKeyBase64,
183
- validUntil: s
190
+ walletSecretId: t,
191
+ publicKey: r.publicKeyBase64,
192
+ validUntil: a
184
193
  });
185
- } catch (i) {
186
- throw this.walletSecret = null, i;
194
+ } catch (h) {
195
+ throw this.walletSecret = null, h;
187
196
  }
188
197
  }
198
+ /**
199
+ * Schedules a token refresh to occur exactly when shouldRefreshToken() would return true.
200
+ * Uses the same REFRESH_CREDENTIALS_BUFFER_MS timing as the rest of the auth system.
201
+ */
202
+ scheduleTokenRefresh() {
203
+ if (this.cancelTokenRefresh(), !this.authState)
204
+ return;
205
+ const t = this.authState.expiresAt - i - Date.now();
206
+ t <= 0 || (this.refreshTimeout = setTimeout(async () => {
207
+ await this.refreshAccessToken(), this.scheduleTokenRefresh();
208
+ }, t));
209
+ }
210
+ /**
211
+ * Cancels any scheduled token refresh.
212
+ */
213
+ cancelTokenRefresh() {
214
+ this.refreshTimeout && (clearTimeout(this.refreshTimeout), this.refreshTimeout = null);
215
+ }
189
216
  }
190
217
  export {
191
- A as AuthManager
218
+ p as AuthManager
192
219
  };