@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,9 +1,107 @@
1
- import { sha256 as o } from "./index.native58.js";
2
- import { isHex as s } from "./index.native40.js";
3
- import { toBytes as r } from "./index.native35.js";
4
- function p(t, i) {
5
- return o(s(t, { strict: !1 }) ? r(t) : t);
1
+ import { split as L, rotlSH as T, rotlSL as S, rotlBH as m, rotlBL as F } from "./index.native84.js";
2
+ import { createHasher as X, Hash as E, anumber as d, u32 as U, swap32IfBE as I, aexists as x, toBytes as P, abytes as k, aoutput as M, clean as y } from "./index.native85.js";
3
+ const R = BigInt(0), f = BigInt(1), j = BigInt(2), q = BigInt(7), v = BigInt(256), z = BigInt(113), _ = [], g = [], B = [];
4
+ for (let n = 0, t = f, s = 1, i = 0; n < 24; n++) {
5
+ [s, i] = [i, (2 * s + 3 * i) % 5], _.push(2 * (5 * i + s)), g.push((n + 1) * (n + 2) / 2 % 64);
6
+ let o = R;
7
+ for (let r = 0; r < 7; r++)
8
+ t = (t << f ^ (t >> q) * z) % v, t & j && (o ^= f << (f << /* @__PURE__ */ BigInt(r)) - f);
9
+ B.push(o);
6
10
  }
11
+ const A = L(B, !0), C = A[0], D = A[1], O = (n, t, s) => s > 32 ? m(n, t, s) : T(n, t, s), w = (n, t, s) => s > 32 ? F(n, t, s) : S(n, t, s);
12
+ function G(n, t = 24) {
13
+ const s = new Uint32Array(10);
14
+ for (let i = 24 - t; i < 24; i++) {
15
+ for (let e = 0; e < 10; e++)
16
+ s[e] = n[e] ^ n[e + 10] ^ n[e + 20] ^ n[e + 30] ^ n[e + 40];
17
+ for (let e = 0; e < 10; e += 2) {
18
+ const h = (e + 8) % 10, l = (e + 2) % 10, u = s[l], c = s[l + 1], b = O(u, c, 1) ^ s[h], H = w(u, c, 1) ^ s[h + 1];
19
+ for (let a = 0; a < 50; a += 10)
20
+ n[e + a] ^= b, n[e + a + 1] ^= H;
21
+ }
22
+ let o = n[2], r = n[3];
23
+ for (let e = 0; e < 24; e++) {
24
+ const h = g[e], l = O(o, r, h), u = w(o, r, h), c = _[e];
25
+ o = n[c], r = n[c + 1], n[c] = l, n[c + 1] = u;
26
+ }
27
+ for (let e = 0; e < 50; e += 10) {
28
+ for (let h = 0; h < 10; h++)
29
+ s[h] = n[e + h];
30
+ for (let h = 0; h < 10; h++)
31
+ n[e + h] ^= ~s[(h + 2) % 10] & s[(h + 4) % 10];
32
+ }
33
+ n[0] ^= C[i], n[1] ^= D[i];
34
+ }
35
+ y(s);
36
+ }
37
+ class p extends E {
38
+ // NOTE: we accept arguments in bytes instead of bits here.
39
+ constructor(t, s, i, o = !1, r = 24) {
40
+ if (super(), this.pos = 0, this.posOut = 0, this.finished = !1, this.destroyed = !1, this.enableXOF = !1, this.blockLen = t, this.suffix = s, this.outputLen = i, this.enableXOF = o, this.rounds = r, d(i), !(0 < t && t < 200))
41
+ throw new Error("only keccak-f1600 function is supported");
42
+ this.state = new Uint8Array(200), this.state32 = U(this.state);
43
+ }
44
+ clone() {
45
+ return this._cloneInto();
46
+ }
47
+ keccak() {
48
+ I(this.state32), G(this.state32, this.rounds), I(this.state32), this.posOut = 0, this.pos = 0;
49
+ }
50
+ update(t) {
51
+ x(this), t = P(t), k(t);
52
+ const { blockLen: s, state: i } = this, o = t.length;
53
+ for (let r = 0; r < o; ) {
54
+ const e = Math.min(s - this.pos, o - r);
55
+ for (let h = 0; h < e; h++)
56
+ i[this.pos++] ^= t[r++];
57
+ this.pos === s && this.keccak();
58
+ }
59
+ return this;
60
+ }
61
+ finish() {
62
+ if (this.finished)
63
+ return;
64
+ this.finished = !0;
65
+ const { state: t, suffix: s, pos: i, blockLen: o } = this;
66
+ t[i] ^= s, (s & 128) !== 0 && i === o - 1 && this.keccak(), t[o - 1] ^= 128, this.keccak();
67
+ }
68
+ writeInto(t) {
69
+ x(this, !1), k(t), this.finish();
70
+ const s = this.state, { blockLen: i } = this;
71
+ for (let o = 0, r = t.length; o < r; ) {
72
+ this.posOut >= i && this.keccak();
73
+ const e = Math.min(i - this.posOut, r - o);
74
+ t.set(s.subarray(this.posOut, this.posOut + e), o), this.posOut += e, o += e;
75
+ }
76
+ return t;
77
+ }
78
+ xofInto(t) {
79
+ if (!this.enableXOF)
80
+ throw new Error("XOF is not possible for this instance");
81
+ return this.writeInto(t);
82
+ }
83
+ xof(t) {
84
+ return d(t), this.xofInto(new Uint8Array(t));
85
+ }
86
+ digestInto(t) {
87
+ if (M(t, this), this.finished)
88
+ throw new Error("digest() was already called");
89
+ return this.writeInto(t), this.destroy(), t;
90
+ }
91
+ digest() {
92
+ return this.digestInto(new Uint8Array(this.outputLen));
93
+ }
94
+ destroy() {
95
+ this.destroyed = !0, y(this.state);
96
+ }
97
+ _cloneInto(t) {
98
+ const { blockLen: s, suffix: i, outputLen: o, rounds: r, enableXOF: e } = this;
99
+ return t || (t = new p(s, i, o, e, r)), t.state32.set(this.state32), t.pos = this.pos, t.posOut = this.posOut, t.finished = this.finished, t.rounds = r, t.suffix = i, t.outputLen = o, t.enableXOF = e, t.destroyed = this.destroyed, t;
100
+ }
101
+ }
102
+ const J = (n, t, s) => X(() => new p(t, n, s)), Q = J(1, 136, 256 / 8);
7
103
  export {
8
- p as sha256
104
+ p as Keccak,
105
+ G as keccakP,
106
+ Q as keccak_256
9
107
  };
@@ -1,5 +1,9 @@
1
- import { sha256 as s } from "./index.native85.js";
2
- const o = s;
1
+ import { sha256 as o } from "./index.native59.js";
2
+ import { isHex as s } from "./index.native41.js";
3
+ import { toBytes as r } from "./index.native36.js";
4
+ function p(t, i) {
5
+ return o(s(t, { strict: !1 }) ? r(t) : t);
6
+ }
3
7
  export {
4
- o as sha256
8
+ p as sha256
5
9
  };
@@ -1,17 +1,5 @@
1
- import { InvalidSerializableTransactionError as f } from "./index.native60.js";
2
- function d(e) {
3
- if (e.type)
4
- return e.type;
5
- if (typeof e.authorizationList < "u")
6
- return "eip7702";
7
- if (typeof e.blobs < "u" || typeof e.blobVersionedHashes < "u" || typeof e.maxFeePerBlobGas < "u" || typeof e.sidecars < "u")
8
- return "eip4844";
9
- if (typeof e.maxFeePerGas < "u" || typeof e.maxPriorityFeePerGas < "u")
10
- return "eip1559";
11
- if (typeof e.gasPrice < "u")
12
- return typeof e.accessList < "u" ? "eip2930" : "legacy";
13
- throw new f({ transaction: e });
14
- }
1
+ import { sha256 as s } from "./index.native86.js";
2
+ const o = s;
15
3
  export {
16
- d as getTransactionType
4
+ o as sha256
17
5
  };
@@ -1,192 +1,332 @@
1
- import { logOutEndUser as l, refreshAccessToken as c, registerTemporaryWalletSecret as o } from "@coinbase/cdp-api-client";
2
- import { SignJWT as u } from "./index.native20.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.native7.js";
3
+ import { toAuthState as u } from "./index.native14.js";
4
+ import { withAuth as o } from "./index.native15.js";
5
+ import { MockAuthManager as K } from "./index.native16.js";
6
+ import { mockUser as g } from "./index.native17.js";
7
+ import { getPlatformServices as l, getPlatformCrypto as D } from "./index.native5.js";
8
+ import { isChainSupportedForCDPSends as _ } from "./index.native18.js";
9
+ import { getConfig as n, setCoreAuthManager as m, getCoreAuthManager as a, setConfig as N } from "./index.native19.js";
3
10
  import "viem";
4
- import { toAuthState as S } from "./index.native13.js";
5
- import { getPlatformCrypto as n } from "./index.native4.js";
6
- import { sortKeys as w } from "./index.native17.js";
7
- const h = 60 * 1e3;
8
- class A {
9
- projectId;
10
- authState = null;
11
- walletSecret = null;
12
- authStateChangeCallbacks = [];
13
- initPromise = null;
14
- /**
15
- * Initializes the token manager.
16
- *
17
- * @param projectId - The project ID.
18
- */
19
- constructor(t) {
20
- this.projectId = t, this.initPromise = this._doInitialize();
11
+ import { serializeTransaction as w } from "./index.native20.js";
12
+ const R = async (e) => {
13
+ if (!e.projectId)
14
+ throw new Error("Project ID is required");
15
+ let r;
16
+ try {
17
+ r = n().projectId !== e.projectId;
18
+ } catch {
19
+ r = !0;
21
20
  }
22
- /**
23
- * Gets the current user, or null if there is no user signed in.
24
- *
25
- * @returns The current user.
26
- */
27
- async getUser() {
28
- return this.authState?.user ?? null;
21
+ if (N(e), n().useMock) {
22
+ m(new K(n().projectId));
23
+ return;
29
24
  }
30
- /**
31
- * Returns whether the user is signed in - i.e., whether there is an unexpired
32
- * access token and user.
33
- *
34
- * @returns True if the user is signed in, false otherwise.
35
- */
36
- async isSignedIn() {
37
- return this.authState ? Promise.resolve(this.authState.expiresAt > Date.now()) : Promise.resolve(!1);
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;
38
35
  }
39
- /**
40
- * Signs out the user, clearing all authentication state.
41
- */
42
- async signOut() {
43
- try {
44
- await l(this.projectId);
45
- } catch {
46
- } finally {
47
- await this.clearAuthState();
48
- }
49
- }
50
- /**
51
- * Adds a callback to be called when the auth state changes.
52
- *
53
- * @param callback - The function to call when the auth state changes.
54
- */
55
- addAuthStateChangeCallback(t) {
56
- this.authStateChangeCallbacks.push(t), t(this.authState?.user ?? null);
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);
57
43
  }
58
- /**
59
- * Gets the access token, refreshing it if it is expired. Returns null if the user is not
60
- * signed in.
61
- *
62
- * @returns The access token.
63
- */
64
- async getToken() {
65
- return this.shouldRefreshToken() && await this.refreshAccessToken(), this.authState?.accessToken ?? null;
44
+ await a().ensureInitialized();
45
+ }, ee = async (e) => p({
46
+ email: e.email,
47
+ type: "email"
48
+ }), re = async (e) => p({
49
+ phoneNumber: e.phoneNumber,
50
+ type: "sms"
51
+ }), te = async (e) => y(
52
+ e,
53
+ "Mock email OTP verified",
54
+ (r, t) => S(r, t)
55
+ ), ne = async (e) => y(
56
+ e,
57
+ "Mock SMS OTP verified",
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();
62
+ return;
66
63
  }
67
- /**
68
- * Gets the currently registered wallet secret ID. Rejects if the user is not signed in.
69
- *
70
- * @returns The wallet secret ID.
71
- */
72
- async getWalletSecretId() {
73
- if (!await this.isSignedIn())
74
- throw new Error("Cannot get wallet secret ID if the user is not signed in");
75
- return this.shouldRefreshWalletSecret() && await this.refreshWalletSecret(), this.walletSecret.walletSecretId;
64
+ if (!await a().isSignedIn())
65
+ throw new Error("User not signed in");
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
76
  }
77
- /**
78
- * Gets the X-Wallet-Auth header. Rejects if the user is not signed in.
79
- *
80
- * @param options - The options for the request.
81
- * @param options.requestMethod - The HTTP method of the request.
82
- * @param options.requestHost - The host of the request.
83
- * @param options.requestPath - The path of the request.
84
- * @param options.requestData - The data of the request.
85
- * @returns The X-Wallet-Auth header.
86
- */
87
- async getXWalletAuth(t) {
88
- if (!await this.isSignedIn())
89
- throw new Error("Cannot get X-Wallet-Auth header if the user is not signed in");
90
- 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]
93
- };
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)));
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, {
81
+ hash: e.hash,
82
+ address: e.evmAccount,
83
+ walletSecretId: t
84
+ })).signature
85
+ })), de = async (e) => n().useMock ? { signedTransaction: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => {
86
+ const s = w(e.transaction);
87
+ return {
88
+ signedTransaction: (await T(
89
+ n().projectId,
90
+ r.userId,
91
+ {
92
+ transaction: s,
93
+ address: e.evmAccount,
94
+ walletSecretId: t
95
+ }
96
+ )).signedTransaction
97
+ };
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
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);
99
- }
100
- /**
101
- * Sets the authentication state.
102
- *
103
- * @param authState - The authentication state.
104
- */
105
- async setAuthState(t) {
106
- this.authState = t, this.authStateChangeCallbacks.forEach((e) => e(this.authState?.user ?? null));
107
- }
108
- /**
109
- * Clears the authentication state.
110
- */
111
- async clearAuthState() {
112
- this.authState = null, this.walletSecret = null, this.authStateChangeCallbacks.forEach((t) => t(null));
113
- }
114
- /**
115
- * Ensures the AuthManager is initialized before proceeding.
116
- * If initialization is already in progress, waits for it to complete.
117
- */
118
- async ensureInitialized() {
119
- if (this.initPromise) {
120
- await this.initPromise;
121
- return;
107
+ )).signedTransaction
108
+ })), me = async (e) => {
109
+ if (!_(e.network))
110
+ throw new Error(`Chain ${e.network} is not supported by the CDP Apis`);
111
+ if (n().useMock)
112
+ return { transactionHash: "0x0" };
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,
118
+ {
119
+ transaction: r,
120
+ address: e.evmAccount,
121
+ walletSecretId: s,
122
+ network: e.network
123
+ }
124
+ )).transactionHash
125
+ }));
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
122
135
  }
123
- throw new Error("AuthManager not initialized");
124
- }
125
- /**
126
- * Internal async initialization logic.
127
- */
128
- async _doInitialize() {
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, {
139
+ message: e.message,
140
+ address: e.evmAccount,
141
+ walletSecretId: t
142
+ })).signature
143
+ })), pe = async (e) => n().useMock ? { signature: "0x0" } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
144
+ signature: (await C(n().projectId, r.userId, {
145
+ typedData: e.typedData,
146
+ address: e.evmAccount,
147
+ walletSecretId: t
148
+ })).signature
149
+ })), ye = async (e) => n().useMock ? {
150
+ userOperationHash: "0x1234567890123456789012345678901234567890123456789012345678901234"
151
+ } : o(e, a(), async ({ user: r, walletSecretId: t }) => ({
152
+ userOperationHash: (await x(
153
+ n().projectId,
154
+ r.userId,
155
+ e.evmSmartAccount,
156
+ {
157
+ network: e.network,
158
+ calls: e.calls.map((c) => ({
159
+ to: c.to,
160
+ value: String(c.value ?? 0n),
161
+ data: c.data ?? "0x"
162
+ })),
163
+ walletSecretId: t,
164
+ useCdpPaymaster: e.useCdpPaymaster ?? !1,
165
+ paymasterUrl: e.paymasterUrl
166
+ }
167
+ )).userOpHash
168
+ })), fe = async (e) => n().useMock ? {
169
+ userOpHash: e.userOperationHash,
170
+ network: e.network,
171
+ calls: [
172
+ {
173
+ to: "0x1234567890123456789012345678901234567890",
174
+ value: "0",
175
+ data: "0x"
176
+ }
177
+ ],
178
+ status: "complete",
179
+ transactionHash: "0x9876543210987654321098765432109876543210987654321098765432109876",
180
+ receipts: []
181
+ } : o(e, a(), async ({ user: r }) => await W(
182
+ n().projectId,
183
+ r.userId,
184
+ e.evmSmartAccount,
185
+ e.userOperationHash
186
+ )), he = async (e) => {
187
+ if (n().useMock)
188
+ return {
189
+ privateKey: "mock-private-key"
190
+ };
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, {
194
+ address: e.evmAccount,
195
+ walletSecretId: c,
196
+ exportEncryptionKey: t.publicKeyBase64
197
+ });
198
+ return {
199
+ privateKey: await r.decryptWithPrivateKey(
200
+ t.privateKey,
201
+ i.encryptedPrivateKey
202
+ )
203
+ };
204
+ });
205
+ }, p = async (e) => {
206
+ if (n().useMock)
207
+ return {
208
+ message: "Mock sign in initiated",
209
+ flowId: "mock-flow-id"
210
+ };
211
+ if (await a().isSignedIn())
212
+ throw new Error("User is already authenticated. Please sign out first.");
213
+ const t = await A(n().projectId, e);
214
+ return {
215
+ flowId: t.flowId,
216
+ message: t.message
217
+ };
218
+ }, y = async (e, r, t) => {
219
+ if (n().useMock)
220
+ return await a().setAuthState({
221
+ accessToken: "mock-access-token",
222
+ expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
223
+ user: g
224
+ }), {
225
+ message: r,
226
+ user: g,
227
+ isNewUser: !1
228
+ };
229
+ if (await a().isSignedIn())
230
+ throw new Error("User is already authenticated. Please sign out first.");
231
+ const c = await t(n().projectId, {
232
+ flowId: e.flowId,
233
+ otp: e.otp
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)
129
245
  try {
130
- await this.refreshAccessToken();
131
- } catch (t) {
132
- console.warn("Failed to refresh access token during initialization:", t);
246
+ const s = await a().getWalletSecretId();
247
+ let c = await k(n().projectId, r.user.userId, {
248
+ walletSecretId: s
249
+ });
250
+ if (n().createAccountOnLogin === "evm-smart") {
251
+ const [i] = c.evmAccounts;
252
+ c = await d(
253
+ n().projectId,
254
+ r.user.userId,
255
+ {
256
+ owner: i,
257
+ enableSpendPermissions: !1
258
+ // Defaulting to false until the feature is ready.
259
+ }
260
+ );
261
+ }
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}`);
133
265
  }
134
- }
135
- /**
136
- * Returns whether the token should be refreshed.
137
- *
138
- * @returns True if the token should be refreshed, false otherwise.
139
- */
140
- shouldRefreshToken() {
141
- return !(this.authState && this.authState.expiresAt > Date.now() + h);
142
- }
143
- /**
144
- * Refreshes the access token and transitions the auth state accordingly.
145
- * If a refresh is already in progress, it will wait for that refresh to complete.
146
- *
147
- * @returns The new access token.
148
- */
149
- async refreshAccessToken() {
266
+ if (n().createAccountOnLogin === "evm-smart" && (!r.user.evmSmartAccounts || r.user.evmSmartAccounts.length === 0))
150
267
  try {
151
- const t = await c(this.projectId, {
152
- grantType: "refresh_token"
153
- }), e = S(
154
- t.accessToken,
155
- t.validUntil,
156
- t.endUser
268
+ const [s] = r.user.evmAccounts, c = await d(
269
+ n().projectId,
270
+ r.user.userId,
271
+ {
272
+ owner: s,
273
+ enableSpendPermissions: !1
274
+ // Defaulting to false until the feature is ready.
275
+ }
157
276
  );
158
- await this.setAuthState(e);
159
- } catch {
160
- await this.signOut();
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}`);
161
280
  }
162
- }
163
- /**
164
- * Returns whether the wallet secret should be refreshed.
165
- *
166
- * @returns True if the wallet secret should be refreshed, false otherwise.
167
- */
168
- shouldRefreshWalletSecret() {
169
- return !(this.walletSecret && this.walletSecret.expiresAt > Date.now() + h);
170
- }
171
- /**
172
- * Refreshes the wallet secret. Assumes the user is signed in.
173
- *
174
- * @returns The wallet secret.
175
- */
176
- 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 };
281
+ const t = await a().getUser();
282
+ return {
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)
179
292
  try {
180
- await o(this.projectId, this.authState.user.userId, {
181
- walletSecretId: e,
182
- publicKey: a.publicKeyBase64,
183
- validUntil: s
184
- });
185
- } catch (i) {
186
- throw this.walletSecret = null, i;
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}`);
187
303
  }
188
- }
189
- }
304
+ const t = await a().getUser();
305
+ return {
306
+ message: e.message,
307
+ user: t,
308
+ isNewUser: e.isNewEndUser
309
+ };
310
+ };
190
311
  export {
191
- A as AuthManager
312
+ he as exportEvmAccount,
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
192
332
  };