@coinbase/cdp-core 0.0.11 → 0.0.13

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 (108) hide show
  1. package/README.md +24 -1
  2. package/dist/esm/index.js +19 -17
  3. package/dist/esm/index10.js +13 -115
  4. package/dist/esm/index100.js +11 -10
  5. package/dist/esm/index101.js +11 -15
  6. package/dist/esm/index102.js +9 -80
  7. package/dist/esm/index103.js +13 -75
  8. package/dist/esm/index104.js +83 -0
  9. package/dist/esm/index105.js +81 -0
  10. package/dist/esm/index11.js +117 -6
  11. package/dist/esm/index12.js +6 -16
  12. package/dist/esm/index13.js +16 -18
  13. package/dist/esm/index14.js +18 -172
  14. package/dist/esm/index15.js +170 -39
  15. package/dist/esm/index16.js +25 -16
  16. package/dist/esm/index17.js +40 -4
  17. package/dist/esm/index18.js +17 -5
  18. package/dist/esm/index19.js +4 -159
  19. package/dist/esm/index2.js +10 -10
  20. package/dist/esm/index20.js +5 -48
  21. package/dist/esm/index21.js +154 -140
  22. package/dist/esm/index22.js +47 -55
  23. package/dist/esm/index23.js +143 -6
  24. package/dist/esm/index24.js +56 -18
  25. package/dist/esm/index25.js +8 -45
  26. package/dist/esm/index26.js +17 -13
  27. package/dist/esm/index27.js +40 -50
  28. package/dist/esm/index28.js +13 -6
  29. package/dist/esm/index29.js +54 -20
  30. package/dist/esm/index3.js +4 -4
  31. package/dist/esm/index30.js +6 -11
  32. package/dist/esm/index31.js +21 -3
  33. package/dist/esm/index32.js +11 -3
  34. package/dist/esm/index33.js +3 -34
  35. package/dist/esm/index34.js +3 -12
  36. package/dist/esm/index35.js +34 -4
  37. package/dist/esm/index36.js +11 -27
  38. package/dist/esm/index37.js +4 -6
  39. package/dist/esm/index38.js +28 -24
  40. package/dist/esm/index39.js +6 -16
  41. package/dist/esm/index4.js +5 -4
  42. package/dist/esm/index40.js +22 -52
  43. package/dist/esm/index41.js +16 -23
  44. package/dist/esm/index42.js +53 -10
  45. package/dist/esm/index43.js +23 -27
  46. package/dist/esm/index44.js +9 -40
  47. package/dist/esm/index45.js +26 -54
  48. package/dist/esm/index46.js +42 -127
  49. package/dist/esm/index47.js +53 -10
  50. package/dist/esm/index48.js +125 -102
  51. package/dist/esm/index49.js +12 -6
  52. package/dist/esm/index5.js +92 -190
  53. package/dist/esm/index50.js +105 -3
  54. package/dist/esm/index51.js +6 -14
  55. package/dist/esm/index52.js +3 -43
  56. package/dist/esm/index53.js +14 -78
  57. package/dist/esm/index54.js +43 -2
  58. package/dist/esm/index55.js +79 -2
  59. package/dist/esm/index56.js +2 -13
  60. package/dist/esm/index57.js +2 -38
  61. package/dist/esm/index58.js +11 -5
  62. package/dist/esm/index59.js +32 -29
  63. package/dist/esm/index6.js +192 -12
  64. package/dist/esm/index60.js +6 -8
  65. package/dist/esm/index61.js +33 -9
  66. package/dist/esm/index62.js +8 -11
  67. package/dist/esm/index63.js +10 -13
  68. package/dist/esm/index64.js +11 -18
  69. package/dist/esm/index65.js +13 -5
  70. package/dist/esm/index66.js +19 -5
  71. package/dist/esm/index67.js +5 -10
  72. package/dist/esm/index68.js +5 -17
  73. package/dist/esm/index69.js +10 -22
  74. package/dist/esm/index7.js +12 -12
  75. package/dist/esm/index70.js +2 -51
  76. package/dist/esm/index71.js +21 -2
  77. package/dist/esm/index72.js +13 -17
  78. package/dist/esm/index73.js +21 -18
  79. package/dist/esm/index74.js +48 -77
  80. package/dist/esm/index75.js +18 -102
  81. package/dist/esm/index76.js +79 -32
  82. package/dist/esm/index77.js +103 -6
  83. package/dist/esm/index78.js +31 -53
  84. package/dist/esm/index79.js +6 -10
  85. package/dist/esm/index8.js +11 -20
  86. package/dist/esm/index80.js +79 -2
  87. package/dist/esm/index81.js +9 -44
  88. package/dist/esm/index82.js +54 -13
  89. package/dist/esm/index83.js +11 -10
  90. package/dist/esm/index84.js +2 -79
  91. package/dist/esm/index85.js +45 -5
  92. package/dist/esm/index86.js +13 -20
  93. package/dist/esm/index87.js +5 -10
  94. package/dist/esm/index88.js +11 -18
  95. package/dist/esm/index89.js +32 -90
  96. package/dist/esm/index9.js +20 -14
  97. package/dist/esm/index90.js +41 -20
  98. package/dist/esm/index91.js +20 -117
  99. package/dist/esm/index92.js +9 -12
  100. package/dist/esm/index93.js +17 -33
  101. package/dist/esm/index94.js +93 -41
  102. package/dist/esm/index95.js +21 -18
  103. package/dist/esm/index96.js +116 -26
  104. package/dist/esm/index97.js +18 -8
  105. package/dist/esm/index98.js +26 -9
  106. package/dist/esm/index99.js +8 -13
  107. package/dist/types/index.d.ts +4 -0
  108. package/package.json +2 -2
@@ -1,20 +1,23 @@
1
- function o(t) {
2
- if (Uint8Array.prototype.toBase64)
3
- return t.toBase64();
4
- const e = 32768, n = [];
5
- for (let r = 0; r < t.length; r += e)
6
- n.push(String.fromCharCode.apply(null, t.subarray(r, r + e)));
7
- return btoa(n.join(""));
8
- }
9
- function a(t) {
10
- if (Uint8Array.fromBase64)
11
- return Uint8Array.fromBase64(t);
12
- const e = atob(t), n = new Uint8Array(e.length);
13
- for (let r = 0; r < e.length; r++)
14
- n[r] = e.charCodeAt(r);
15
- return n;
16
- }
1
+ import { JOSENotSupported as f } from "./index73.js";
2
+ const w = (n, r, a, e, s) => {
3
+ if (s.crit !== void 0 && e?.crit === void 0)
4
+ throw new n('"crit" (Critical) Header Parameter MUST be integrity protected');
5
+ if (!e || e.crit === void 0)
6
+ return /* @__PURE__ */ new Set();
7
+ if (!Array.isArray(e.crit) || e.crit.length === 0 || e.crit.some((i) => typeof i != "string" || i.length === 0))
8
+ throw new n('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
9
+ let t;
10
+ a !== void 0 ? t = new Map([...Object.entries(a), ...r.entries()]) : t = r;
11
+ for (const i of e.crit) {
12
+ if (!t.has(i))
13
+ throw new f(`Extension Header Parameter "${i}" is not recognized`);
14
+ if (s[i] === void 0)
15
+ throw new n(`Extension Header Parameter "${i}" is missing`);
16
+ if (t.get(i) && e[i] === void 0)
17
+ throw new n(`Extension Header Parameter "${i}" MUST be integrity protected`);
18
+ }
19
+ return new Set(e.crit);
20
+ };
17
21
  export {
18
- a as decodeBase64,
19
- o as encodeBase64
22
+ w as default
20
23
  };
@@ -1,30 +1,120 @@
1
- import { JOSENotSupported as r } from "./index69.js";
2
- const S = (e, s) => {
3
- const a = `SHA-${e.slice(-3)}`;
4
- switch (e) {
5
- case "HS256":
6
- case "HS384":
7
- case "HS512":
8
- return { hash: a, name: "HMAC" };
9
- case "PS256":
10
- case "PS384":
11
- case "PS512":
12
- return { hash: a, name: "RSA-PSS", saltLength: parseInt(e.slice(-3), 10) >> 3 };
13
- case "RS256":
14
- case "RS384":
15
- case "RS512":
16
- return { hash: a, name: "RSASSA-PKCS1-v1_5" };
17
- case "ES256":
18
- case "ES384":
19
- case "ES512":
20
- return { hash: a, name: "ECDSA", namedCurve: s.namedCurve };
21
- case "Ed25519":
22
- case "EdDSA":
23
- return { name: "Ed25519" };
24
- default:
25
- throw new r(`alg ${e} is not supported either by JOSE or your javascript runtime`);
1
+ import { isJWK as p } from "./index103.js";
2
+ import { decode as m } from "./index91.js";
3
+ import y from "./index104.js";
4
+ import { isCryptoKey as S, isKeyObject as K } from "./index102.js";
5
+ let c;
6
+ const f = async (e, r, s, i = !1) => {
7
+ c ||= /* @__PURE__ */ new WeakMap();
8
+ let n = c.get(e);
9
+ if (n?.[s])
10
+ return n[s];
11
+ const t = await y({ ...r, alg: s });
12
+ return i && Object.freeze(e), n ? n[s] = t : c.set(e, { [s]: t }), t;
13
+ }, E = (e, r) => {
14
+ c ||= /* @__PURE__ */ new WeakMap();
15
+ let s = c.get(e);
16
+ if (s?.[r])
17
+ return s[r];
18
+ const i = e.type === "public", n = !!i;
19
+ let t;
20
+ if (e.asymmetricKeyType === "x25519") {
21
+ switch (r) {
22
+ case "ECDH-ES":
23
+ case "ECDH-ES+A128KW":
24
+ case "ECDH-ES+A192KW":
25
+ case "ECDH-ES+A256KW":
26
+ break;
27
+ default:
28
+ throw new TypeError("given KeyObject instance cannot be used for this algorithm");
29
+ }
30
+ t = e.toCryptoKey(e.asymmetricKeyType, n, i ? [] : ["deriveBits"]);
26
31
  }
32
+ if (e.asymmetricKeyType === "ed25519") {
33
+ if (r !== "EdDSA" && r !== "Ed25519")
34
+ throw new TypeError("given KeyObject instance cannot be used for this algorithm");
35
+ t = e.toCryptoKey(e.asymmetricKeyType, n, [
36
+ i ? "verify" : "sign"
37
+ ]);
38
+ }
39
+ if (e.asymmetricKeyType === "rsa") {
40
+ let a;
41
+ switch (r) {
42
+ case "RSA-OAEP":
43
+ a = "SHA-1";
44
+ break;
45
+ case "RS256":
46
+ case "PS256":
47
+ case "RSA-OAEP-256":
48
+ a = "SHA-256";
49
+ break;
50
+ case "RS384":
51
+ case "PS384":
52
+ case "RSA-OAEP-384":
53
+ a = "SHA-384";
54
+ break;
55
+ case "RS512":
56
+ case "PS512":
57
+ case "RSA-OAEP-512":
58
+ a = "SHA-512";
59
+ break;
60
+ default:
61
+ throw new TypeError("given KeyObject instance cannot be used for this algorithm");
62
+ }
63
+ if (r.startsWith("RSA-OAEP"))
64
+ return e.toCryptoKey({
65
+ name: "RSA-OAEP",
66
+ hash: a
67
+ }, n, i ? ["encrypt"] : ["decrypt"]);
68
+ t = e.toCryptoKey({
69
+ name: r.startsWith("PS") ? "RSA-PSS" : "RSASSA-PKCS1-v1_5",
70
+ hash: a
71
+ }, n, [i ? "verify" : "sign"]);
72
+ }
73
+ if (e.asymmetricKeyType === "ec") {
74
+ const o = (/* @__PURE__ */ new Map([
75
+ ["prime256v1", "P-256"],
76
+ ["secp384r1", "P-384"],
77
+ ["secp521r1", "P-521"]
78
+ ])).get(e.asymmetricKeyDetails?.namedCurve);
79
+ if (!o)
80
+ throw new TypeError("given KeyObject instance cannot be used for this algorithm");
81
+ r === "ES256" && o === "P-256" && (t = e.toCryptoKey({
82
+ name: "ECDSA",
83
+ namedCurve: o
84
+ }, n, [i ? "verify" : "sign"])), r === "ES384" && o === "P-384" && (t = e.toCryptoKey({
85
+ name: "ECDSA",
86
+ namedCurve: o
87
+ }, n, [i ? "verify" : "sign"])), r === "ES512" && o === "P-521" && (t = e.toCryptoKey({
88
+ name: "ECDSA",
89
+ namedCurve: o
90
+ }, n, [i ? "verify" : "sign"])), r.startsWith("ECDH-ES") && (t = e.toCryptoKey({
91
+ name: "ECDH",
92
+ namedCurve: o
93
+ }, n, i ? [] : ["deriveBits"]));
94
+ }
95
+ if (!t)
96
+ throw new TypeError("given KeyObject instance cannot be used for this algorithm");
97
+ return s ? s[r] = t : c.set(e, { [r]: t }), t;
98
+ }, d = async (e, r) => {
99
+ if (e instanceof Uint8Array || S(e))
100
+ return e;
101
+ if (K(e)) {
102
+ if (e.type === "secret")
103
+ return e.export();
104
+ if ("toCryptoKey" in e && typeof e.toCryptoKey == "function")
105
+ try {
106
+ return E(e, r);
107
+ } catch (i) {
108
+ if (i instanceof TypeError)
109
+ throw i;
110
+ }
111
+ let s = e.export({ format: "jwk" });
112
+ return f(e, s, r);
113
+ }
114
+ if (p(e))
115
+ return e.k ? m(e.k) : f(e, e, r, !0);
116
+ throw new Error("unreachable");
27
117
  };
28
118
  export {
29
- S as default
119
+ d as default
30
120
  };
@@ -1,10 +1,20 @@
1
- const o = (t, r) => {
2
- if (t.startsWith("RS") || t.startsWith("PS")) {
3
- const { modulusLength: e } = r.algorithm;
4
- if (typeof e != "number" || e < 2048)
5
- throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`);
6
- }
7
- };
1
+ function o(t) {
2
+ if (Uint8Array.prototype.toBase64)
3
+ return t.toBase64();
4
+ const e = 32768, n = [];
5
+ for (let r = 0; r < t.length; r += e)
6
+ n.push(String.fromCharCode.apply(null, t.subarray(r, r + e)));
7
+ return btoa(n.join(""));
8
+ }
9
+ function a(t) {
10
+ if (Uint8Array.fromBase64)
11
+ return Uint8Array.fromBase64(t);
12
+ const e = atob(t), n = new Uint8Array(e.length);
13
+ for (let r = 0; r < e.length; r++)
14
+ n[r] = e.charCodeAt(r);
15
+ return n;
16
+ }
8
17
  export {
9
- o as default
18
+ a as decodeBase64,
19
+ o as encodeBase64
10
20
  };
@@ -1,13 +1,30 @@
1
- import { checkSigCryptoKey as i } from "./index103.js";
2
- import o from "./index99.js";
3
- const s = async (t, r, e) => {
4
- if (r instanceof Uint8Array) {
5
- if (!t.startsWith("HS"))
6
- throw new TypeError(o(r, "CryptoKey", "KeyObject", "JSON Web Key"));
7
- return crypto.subtle.importKey("raw", r, { hash: `SHA-${t.slice(-3)}`, name: "HMAC" }, !1, [e]);
1
+ import { JOSENotSupported as r } from "./index73.js";
2
+ const S = (e, s) => {
3
+ const a = `SHA-${e.slice(-3)}`;
4
+ switch (e) {
5
+ case "HS256":
6
+ case "HS384":
7
+ case "HS512":
8
+ return { hash: a, name: "HMAC" };
9
+ case "PS256":
10
+ case "PS384":
11
+ case "PS512":
12
+ return { hash: a, name: "RSA-PSS", saltLength: parseInt(e.slice(-3), 10) >> 3 };
13
+ case "RS256":
14
+ case "RS384":
15
+ case "RS512":
16
+ return { hash: a, name: "RSASSA-PKCS1-v1_5" };
17
+ case "ES256":
18
+ case "ES384":
19
+ case "ES512":
20
+ return { hash: a, name: "ECDSA", namedCurve: s.namedCurve };
21
+ case "Ed25519":
22
+ case "EdDSA":
23
+ return { name: "Ed25519" };
24
+ default:
25
+ throw new r(`alg ${e} is not supported either by JOSE or your javascript runtime`);
8
26
  }
9
- return i(r, t, e), r;
10
27
  };
11
28
  export {
12
- s as default
29
+ S as default
13
30
  };
@@ -1,15 +1,10 @@
1
- function i(n, e, ...o) {
2
- if (o = o.filter(Boolean), o.length > 2) {
3
- const f = o.pop();
4
- n += `one of type ${o.join(", ")}, or ${f}.`;
5
- } else o.length === 2 ? n += `one of type ${o[0]} or ${o[1]}.` : n += `of type ${o[0]}.`;
6
- return e == null ? n += ` Received ${e}` : typeof e == "function" && e.name ? n += ` Received function ${e.name}` : typeof e == "object" && e != null && e.constructor?.name && (n += ` Received an instance of ${e.constructor.name}`), n;
7
- }
8
- const r = (n, ...e) => i("Key must be ", n, ...e);
9
- function t(n, e, ...o) {
10
- return i(`Key for the ${n} algorithm must be `, e, ...o);
11
- }
1
+ const o = (t, r) => {
2
+ if (t.startsWith("RS") || t.startsWith("PS")) {
3
+ const { modulusLength: e } = r.algorithm;
4
+ if (typeof e != "number" || e < 2048)
5
+ throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`);
6
+ }
7
+ };
12
8
  export {
13
- r as default,
14
- t as withAlg
9
+ o as default
15
10
  };
@@ -1,5 +1,7 @@
1
+ import { Address } from 'viem';
1
2
  import { Chain } from 'viem/chains';
2
3
  import { Chain as Chain_2 } from 'viem';
4
+ import { LocalAccount } from 'viem';
3
5
  import { Mutate } from 'zustand';
4
6
  import { Provider } from 'ox';
5
7
  import { SendEvmTransactionWithEndUserAccountBodyNetwork } from '@coinbase/cdp-api-client';
@@ -256,6 +258,8 @@ export declare type SwitchEthereumChainRequest = {
256
258
  }];
257
259
  };
258
260
 
261
+ export declare function toViemAccount(address: Address): Promise<LocalAccount>;
262
+
259
263
  export declare type UnknownRequest = {
260
264
  method: string;
261
265
  params: unknown[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cdp-core",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist/**",
@@ -17,7 +17,7 @@
17
17
  "ox": "0.8.1",
18
18
  "viem": "^2.33.0",
19
19
  "zustand": "^5.0.6",
20
- "@coinbase/cdp-api-client": "^0.0.11"
20
+ "@coinbase/cdp-api-client": "^0.0.13"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@size-limit/preset-big-lib": "^11.2.0",