@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,7 +1,43 @@
1
- async function t() {
2
- const r = new Uint8Array(16);
3
- return window.crypto.getRandomValues(r), Array.from(r, (n) => n.toString(16).padStart(2, "0")).join("");
1
+ import { CompactSign as i } from "./index72.js";
2
+ import { JWTInvalid as r } from "./index73.js";
3
+ import { JWTClaimsBuilder as n } from "./index74.js";
4
+ class d {
5
+ #s;
6
+ #t;
7
+ constructor(t = {}) {
8
+ this.#t = new n(t);
9
+ }
10
+ setIssuer(t) {
11
+ return this.#t.iss = t, this;
12
+ }
13
+ setSubject(t) {
14
+ return this.#t.sub = t, this;
15
+ }
16
+ setAudience(t) {
17
+ return this.#t.aud = t, this;
18
+ }
19
+ setJti(t) {
20
+ return this.#t.jti = t, this;
21
+ }
22
+ setNotBefore(t) {
23
+ return this.#t.nbf = t, this;
24
+ }
25
+ setExpirationTime(t) {
26
+ return this.#t.exp = t, this;
27
+ }
28
+ setIssuedAt(t) {
29
+ return this.#t.iat = t, this;
30
+ }
31
+ setProtectedHeader(t) {
32
+ return this.#s = t, this;
33
+ }
34
+ async sign(t, e) {
35
+ const s = new i(this.#t.data());
36
+ if (s.setProtectedHeader(this.#s), Array.isArray(this.#s?.crit) && this.#s.crit.includes("b64") && this.#s.b64 === !1)
37
+ throw new r("JWTs MUST NOT use unencoded payload");
38
+ return s.sign(t, e);
39
+ }
4
40
  }
5
41
  export {
6
- t as generateRandomId
42
+ d as SignJWT
7
43
  };
@@ -1,7 +1,19 @@
1
- const h = async (t) => {
2
- const a = await window.crypto.subtle.digest("SHA-256", t), r = new Uint8Array(a);
3
- return Array.from(r).map((s) => s.toString(16).padStart(2, "0")).join("");
4
- };
1
+ async function n() {
2
+ const e = await window.crypto.subtle.generateKey(
3
+ {
4
+ name: "ECDSA",
5
+ namedCurve: "P-256"
6
+ // secp256r1
7
+ },
8
+ !1,
9
+ // Do not allow key export.
10
+ ["sign", "verify"]
11
+ // Key usages
12
+ ), r = await window.crypto.subtle.exportKey("spki", e.publicKey), t = new Uint8Array(r), a = btoa(
13
+ Array.from(t).map((i) => String.fromCharCode(i)).join("")
14
+ );
15
+ return { privateKey: e.privateKey, publicKeyBase64: a };
16
+ }
5
17
  export {
6
- h as hash
18
+ n as createKeyPair
7
19
  };
@@ -1,162 +1,7 @@
1
- const H = (m) => (h, n, r) => {
2
- const s = r.subscribe;
3
- return r.subscribe = (c, i, a) => {
4
- let l = c;
5
- if (i) {
6
- const g = a?.equalityFn || Object.is;
7
- let v = c(r.getState());
8
- l = (f) => {
9
- const u = c(f);
10
- if (!g(v, u)) {
11
- const y = v;
12
- i(v = u, y);
13
- }
14
- }, a?.fireImmediately && i(v, v);
15
- }
16
- return s(l);
17
- }, m(h, n, r);
18
- }, R = H;
19
- function F(m, h) {
20
- let n;
21
- try {
22
- n = m();
23
- } catch {
24
- return;
25
- }
26
- return {
27
- getItem: (s) => {
28
- var e;
29
- const c = (a) => a === null ? null : JSON.parse(a, void 0), i = (e = n.getItem(s)) != null ? e : null;
30
- return i instanceof Promise ? i.then(c) : c(i);
31
- },
32
- setItem: (s, e) => n.setItem(s, JSON.stringify(e, void 0)),
33
- removeItem: (s) => n.removeItem(s)
34
- };
1
+ async function t() {
2
+ const r = new Uint8Array(16);
3
+ return window.crypto.getRandomValues(r), Array.from(r, (n) => n.toString(16).padStart(2, "0")).join("");
35
4
  }
36
- const p = (m) => (h) => {
37
- try {
38
- const n = m(h);
39
- return n instanceof Promise ? n : {
40
- then(r) {
41
- return p(r)(n);
42
- },
43
- catch(r) {
44
- return this;
45
- }
46
- };
47
- } catch (n) {
48
- return {
49
- then(r) {
50
- return this;
51
- },
52
- catch(r) {
53
- return p(r)(n);
54
- }
55
- };
56
- }
57
- }, O = (m, h) => (n, r, s) => {
58
- let e = {
59
- storage: F(() => localStorage),
60
- partialize: (t) => t,
61
- version: 0,
62
- merge: (t, S) => ({
63
- ...S,
64
- ...t
65
- }),
66
- ...h
67
- }, c = !1;
68
- const i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
69
- let l = e.storage;
70
- if (!l)
71
- return m(
72
- (...t) => {
73
- console.warn(
74
- `[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`
75
- ), n(...t);
76
- },
77
- r,
78
- s
79
- );
80
- const g = () => {
81
- const t = e.partialize({ ...r() });
82
- return l.setItem(e.name, {
83
- state: t,
84
- version: e.version
85
- });
86
- }, v = s.setState;
87
- s.setState = (t, S) => {
88
- v(t, S), g();
89
- };
90
- const f = m(
91
- (...t) => {
92
- n(...t), g();
93
- },
94
- r,
95
- s
96
- );
97
- s.getInitialState = () => f;
98
- let u;
99
- const y = () => {
100
- var t, S;
101
- if (!l) return;
102
- c = !1, i.forEach((o) => {
103
- var d;
104
- return o((d = r()) != null ? d : f);
105
- });
106
- const b = ((S = e.onRehydrateStorage) == null ? void 0 : S.call(e, (t = r()) != null ? t : f)) || void 0;
107
- return p(l.getItem.bind(l))(e.name).then((o) => {
108
- if (o)
109
- if (typeof o.version == "number" && o.version !== e.version) {
110
- if (e.migrate) {
111
- const d = e.migrate(
112
- o.state,
113
- o.version
114
- );
115
- return d instanceof Promise ? d.then((I) => [!0, I]) : [!0, d];
116
- }
117
- console.error(
118
- "State loaded from storage couldn't be migrated since no migrate function was provided"
119
- );
120
- } else
121
- return [!1, o.state];
122
- return [!1, void 0];
123
- }).then((o) => {
124
- var d;
125
- const [I, _] = o;
126
- if (u = e.merge(
127
- _,
128
- (d = r()) != null ? d : f
129
- ), n(u, !0), I)
130
- return g();
131
- }).then(() => {
132
- b?.(u, void 0), u = r(), c = !0, a.forEach((o) => o(u));
133
- }).catch((o) => {
134
- b?.(void 0, o);
135
- });
136
- };
137
- return s.persist = {
138
- setOptions: (t) => {
139
- e = {
140
- ...e,
141
- ...t
142
- }, t.storage && (l = t.storage);
143
- },
144
- clearStorage: () => {
145
- l?.removeItem(e.name);
146
- },
147
- getOptions: () => e,
148
- rehydrate: () => y(),
149
- hasHydrated: () => c,
150
- onHydrate: (t) => (i.add(t), () => {
151
- i.delete(t);
152
- }),
153
- onFinishHydration: (t) => (a.add(t), () => {
154
- a.delete(t);
155
- })
156
- }, e.skipHydration || y(), u || f;
157
- }, w = O;
158
5
  export {
159
- F as createJSONStorage,
160
- w as persist,
161
- R as subscribeWithSelector
6
+ t as generateRandomId
162
7
  };
@@ -1,14 +1,14 @@
1
1
  import { configureCdpApiClient as p, setAuthManager as w, initiateAuthentication as h, verifyEmailAuthentication as y, createEndUserEvmAccount as f, signEvmHashWithEndUserAccount as I, signEvmTransactionWithEndUserAccount as l, sendEvmTransactionWithEndUserAccount as E, signEvmMessageWithEndUserAccount as v, signEvmTypedDataWithEndUserAccount as A, exportEndUserEvmAccount as k } from "@coinbase/cdp-api-client";
2
- import { AuthManager as M } from "./index5.js";
3
- import { toAuthState as u } from "./index6.js";
4
- import { withAuth as i } from "./index7.js";
5
- import { createExportKeyPair as S } from "./index8.js";
6
- import { decryptWithPrivateKey as U } from "./index9.js";
7
- import { MockAuthManager as C } from "./index10.js";
8
- import { mockUser as d } from "./index11.js";
9
- import { isChainSupportedForCDPSends as T } from "./index12.js";
10
- import { getConfig as r, setCoreAuthManager as g, getCoreAuthManager as n, setConfig as j } from "./index13.js";
11
- import { serializeTransaction as m } from "./index14.js";
2
+ import { AuthManager as M } from "./index6.js";
3
+ import { toAuthState as u } from "./index7.js";
4
+ import { withAuth as i } from "./index8.js";
5
+ import { createExportKeyPair as S } from "./index9.js";
6
+ import { decryptWithPrivateKey as U } from "./index10.js";
7
+ import { MockAuthManager as C } from "./index11.js";
8
+ import { mockUser as d } from "./index12.js";
9
+ import { isChainSupportedForCDPSends as T } from "./index13.js";
10
+ import { getConfig as r, setCoreAuthManager as g, getCoreAuthManager as n, setConfig as j } from "./index14.js";
11
+ import { serializeTransaction as m } from "./index15.js";
12
12
  const $ = async (e) => {
13
13
  if (!e.projectId)
14
14
  throw new Error("Project ID is required");
@@ -1,50 +1,7 @@
1
- class n {
2
- events = {};
3
- /**
4
- * Add an event listener.
5
- *
6
- * @param event - The name of the event to listen for.
7
- * @param listener - The function to call when the event is emitted.
8
- */
9
- on(e, s) {
10
- this.events[e] || (this.events[e] = []), this.events[e].push(s);
11
- }
12
- /**
13
- * Remove an event listener.
14
- *
15
- * @param event - The name of the event to remove the listener from.
16
- * @param listener - The function to remove from the event listeners.
17
- */
18
- removeListener(e, s) {
19
- if (!this.events[e])
20
- return;
21
- const t = this.events[e].indexOf(s);
22
- t > -1 && this.events[e].splice(t, 1);
23
- }
24
- /**
25
- * Emit an event.
26
- *
27
- * @param event - The name of the event to emit.
28
- * @param args - The arguments to pass to the event listeners.
29
- */
30
- emit(e, ...s) {
31
- this.events[e] && this.events[e].forEach((t) => {
32
- try {
33
- t(...s);
34
- } catch (i) {
35
- console.error(`Error in event listener for ${e}:`, i);
36
- }
37
- });
38
- }
39
- /**
40
- * Remove all listeners for an event.
41
- *
42
- * @param event - The name of the event to remove all listeners from. If not provided, removes all listeners for all events.
43
- */
44
- removeAllListeners(e) {
45
- e ? delete this.events[e] : this.events = {};
46
- }
47
- }
1
+ const h = async (t) => {
2
+ const a = await window.crypto.subtle.digest("SHA-256", t), r = new Uint8Array(a);
3
+ return Array.from(r).map((s) => s.toString(16).padStart(2, "0")).join("");
4
+ };
48
5
  export {
49
- n as EventEmitter
6
+ h as hash
50
7
  };
@@ -1,148 +1,162 @@
1
- import { Provider as y, Hex as I } from "ox";
2
- import { createWalletClient as E } from "viem";
3
- import { signEvmTypedData as S, signEvmHash as P, getCurrentUser as f, signOut as R, sendEvmTransaction as T, signEvmTransaction as A, signEvmMessage as x } from "./index2.js";
4
- import "./index3.js";
5
- import { validateUserOwnsAddress as m, EIP1193ProviderError as l, STANDARD_ERROR_CODES as s, RPCRequestError as c, validateUserHasEvmAccount as C, validateUserConnected as D } from "./index4.js";
6
- import { isChainIdSupportedForCDPSends as b, chainIdToNameMapping as j } from "./index12.js";
7
- function g(e) {
8
- return {
9
- to: e.to,
10
- data: e.data,
11
- value: e.value ? BigInt(e.value) : void 0,
12
- nonce: e.nonce ? Number(e.nonce) : void 0,
13
- gas: e.gas ? BigInt(e.gas) : void 0,
14
- maxFeePerGas: e.maxFeePerGas ? BigInt(e.maxFeePerGas) : void 0,
15
- maxPriorityFeePerGas: e.maxPriorityFeePerGas ? BigInt(e.maxPriorityFeePerGas) : void 0,
16
- type: "eip1559"
17
- };
18
- }
19
- async function U() {
20
- return (await f())?.evmAccounts || [];
21
- }
22
- async function M(e, n) {
23
- const a = await D();
24
- return e.emit("connect", {
25
- chainId: I.fromNumber(n.getState().chainId)
26
- }), a.evmAccounts;
27
- }
28
- async function _(e) {
29
- const [n, a] = e;
30
- await m(a);
31
- const t = Buffer.from(n.slice(2), "hex").toString();
1
+ const H = (m) => (h, n, r) => {
2
+ const s = r.subscribe;
3
+ return r.subscribe = (c, i, a) => {
4
+ let l = c;
5
+ if (i) {
6
+ const g = a?.equalityFn || Object.is;
7
+ let v = c(r.getState());
8
+ l = (f) => {
9
+ const u = c(f);
10
+ if (!g(v, u)) {
11
+ const y = v;
12
+ i(v = u, y);
13
+ }
14
+ }, a?.fireImmediately && i(v, v);
15
+ }
16
+ return s(l);
17
+ }, m(h, n, r);
18
+ }, R = H;
19
+ function F(m, h) {
20
+ let n;
32
21
  try {
33
- return (await x({
34
- evmAccount: a,
35
- message: t
36
- })).signature;
37
- } catch (o) {
38
- throw new l(
39
- s.provider.userRejectedRequest,
40
- o instanceof Error ? o.message : "Signing failed"
41
- );
22
+ n = m();
23
+ } catch {
24
+ return;
42
25
  }
26
+ return {
27
+ getItem: (s) => {
28
+ var e;
29
+ const c = (a) => a === null ? null : JSON.parse(a, void 0), i = (e = n.getItem(s)) != null ? e : null;
30
+ return i instanceof Promise ? i.then(c) : c(i);
31
+ },
32
+ setItem: (s, e) => n.setItem(s, JSON.stringify(e, void 0)),
33
+ removeItem: (s) => n.removeItem(s)
34
+ };
43
35
  }
44
- async function k(e) {
45
- const [n, a] = e;
46
- await m(n);
36
+ const p = (m) => (h) => {
47
37
  try {
48
- return (await S({
49
- evmAccount: n,
50
- typedData: JSON.parse(a)
51
- })).signature;
52
- } catch (t) {
53
- throw new l(
54
- s.provider.userRejectedRequest,
55
- t instanceof Error ? t.message : "Signing failed"
56
- );
38
+ const n = m(h);
39
+ return n instanceof Promise ? n : {
40
+ then(r) {
41
+ return p(r)(n);
42
+ },
43
+ catch(r) {
44
+ return this;
45
+ }
46
+ };
47
+ } catch (n) {
48
+ return {
49
+ then(r) {
50
+ return this;
51
+ },
52
+ catch(r) {
53
+ return p(r)(n);
54
+ }
55
+ };
57
56
  }
58
- }
59
- async function z(e, n, a) {
60
- const [t] = e;
61
- if (!t || typeof t != "object")
62
- throw new c(
63
- s.rpc.invalidParams,
64
- "Transaction parameter must be an object"
65
- );
66
- if (!t.to)
67
- throw new c(
68
- s.rpc.invalidParams,
69
- "Transaction must include 'to' field"
57
+ }, O = (m, h) => (n, r, s) => {
58
+ let e = {
59
+ storage: F(() => localStorage),
60
+ partialize: (t) => t,
61
+ version: 0,
62
+ merge: (t, S) => ({
63
+ ...S,
64
+ ...t
65
+ }),
66
+ ...h
67
+ }, c = !1;
68
+ const i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
69
+ let l = e.storage;
70
+ if (!l)
71
+ return m(
72
+ (...t) => {
73
+ console.warn(
74
+ `[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`
75
+ ), n(...t);
76
+ },
77
+ r,
78
+ s
70
79
  );
71
- const d = (await C()).evmAccounts[0], u = n.getState(), i = t.chainId ? Number(t.chainId) : u.chainId;
72
- if (b(i))
73
- try {
74
- return (await T({
75
- evmAccount: d,
76
- transaction: { ...g(t), chainId: i },
77
- network: j[i]
78
- })).transactionHash;
79
- } catch (r) {
80
- throw console.log("Transaction failed", r), new c(
81
- s.rpc.transactionRejected,
82
- r instanceof Error ? r.message : "Transaction failed"
83
- );
84
- }
85
- else
86
- try {
87
- const r = E({
88
- // Safe as we check before calling this handler that chainId is configured
89
- chain: u.chains.find((h) => h.id === i),
90
- transport: a[i],
91
- account: d
92
- }), p = u.chains.find((h) => h.id === i), w = await r.prepareTransactionRequest({
93
- ...g(t),
94
- chain: p
95
- }), v = await A({
96
- evmAccount: d,
97
- transaction: {
98
- ...w,
99
- type: "eip1559"
100
- }
101
- });
102
- return await r.sendRawTransaction({
103
- serializedTransaction: v.signedTransaction
104
- });
105
- } catch (r) {
106
- throw new c(
107
- s.rpc.transactionRejected,
108
- r instanceof Error ? r.message : "Transaction failed"
109
- );
110
- }
111
- }
112
- async function J(e) {
113
- const [n, a] = e;
114
- await m(a);
115
- try {
116
- return (await P({
117
- evmAccount: a,
118
- hash: n
119
- })).signature;
120
- } catch (t) {
121
- throw new l(
122
- s.provider.userRejectedRequest,
123
- t instanceof Error ? t.message : "Signing failed"
124
- );
125
- }
126
- }
127
- async function W(e) {
128
- return `0x${e.getState().chainId.toString(16)}`;
129
- }
130
- async function $(e) {
131
- await f() && await R(), e.emit("disconnect", new y.DisconnectedError());
132
- }
133
- function K(e, n) {
134
- const a = Number.parseInt(e[0].chainId, 16);
135
- n.getState().setChainId(a);
136
- }
80
+ const g = () => {
81
+ const t = e.partialize({ ...r() });
82
+ return l.setItem(e.name, {
83
+ state: t,
84
+ version: e.version
85
+ });
86
+ }, v = s.setState;
87
+ s.setState = (t, S) => {
88
+ v(t, S), g();
89
+ };
90
+ const f = m(
91
+ (...t) => {
92
+ n(...t), g();
93
+ },
94
+ r,
95
+ s
96
+ );
97
+ s.getInitialState = () => f;
98
+ let u;
99
+ const y = () => {
100
+ var t, S;
101
+ if (!l) return;
102
+ c = !1, i.forEach((o) => {
103
+ var d;
104
+ return o((d = r()) != null ? d : f);
105
+ });
106
+ const b = ((S = e.onRehydrateStorage) == null ? void 0 : S.call(e, (t = r()) != null ? t : f)) || void 0;
107
+ return p(l.getItem.bind(l))(e.name).then((o) => {
108
+ if (o)
109
+ if (typeof o.version == "number" && o.version !== e.version) {
110
+ if (e.migrate) {
111
+ const d = e.migrate(
112
+ o.state,
113
+ o.version
114
+ );
115
+ return d instanceof Promise ? d.then((I) => [!0, I]) : [!0, d];
116
+ }
117
+ console.error(
118
+ "State loaded from storage couldn't be migrated since no migrate function was provided"
119
+ );
120
+ } else
121
+ return [!1, o.state];
122
+ return [!1, void 0];
123
+ }).then((o) => {
124
+ var d;
125
+ const [I, _] = o;
126
+ if (u = e.merge(
127
+ _,
128
+ (d = r()) != null ? d : f
129
+ ), n(u, !0), I)
130
+ return g();
131
+ }).then(() => {
132
+ b?.(u, void 0), u = r(), c = !0, a.forEach((o) => o(u));
133
+ }).catch((o) => {
134
+ b?.(void 0, o);
135
+ });
136
+ };
137
+ return s.persist = {
138
+ setOptions: (t) => {
139
+ e = {
140
+ ...e,
141
+ ...t
142
+ }, t.storage && (l = t.storage);
143
+ },
144
+ clearStorage: () => {
145
+ l?.removeItem(e.name);
146
+ },
147
+ getOptions: () => e,
148
+ rehydrate: () => y(),
149
+ hasHydrated: () => c,
150
+ onHydrate: (t) => (i.add(t), () => {
151
+ i.delete(t);
152
+ }),
153
+ onFinishHydration: (t) => (a.add(t), () => {
154
+ a.delete(t);
155
+ })
156
+ }, e.skipHydration || y(), u || f;
157
+ }, w = O;
137
158
  export {
138
- U as handleAccounts,
139
- W as handleChainId,
140
- $ as handleDisconnect,
141
- J as handleEthSign,
142
- _ as handlePersonalSign,
143
- M as handleRequestAccounts,
144
- z as handleSendTransaction,
145
- k as handleSignTypedData,
146
- K as handleSwitchEthereumChain,
147
- g as shimProviderTxRequest
159
+ F as createJSONStorage,
160
+ w as persist,
161
+ R as subscribeWithSelector
148
162
  };