@coinbase/cdp-core 0.0.32 → 0.0.33
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.
- package/dist/esm/index.native.js +40 -38
- package/dist/esm/index.native10.js +115 -21
- package/dist/esm/index.native100.js +6 -9
- package/dist/esm/index.native101.js +11 -13
- package/dist/esm/index.native102.js +11 -8
- package/dist/esm/index.native103.js +7 -14
- package/dist/esm/index.native104.js +16 -80
- package/dist/esm/index.native105.js +79 -11
- package/dist/esm/index.native106.js +12 -35
- package/dist/esm/index.native107.js +35 -41
- package/dist/esm/index.native108.js +38 -75
- package/dist/esm/index.native109.js +81 -0
- package/dist/esm/index.native11.js +20 -30
- package/dist/esm/index.native12.js +30 -7
- package/dist/esm/index.native13.js +9 -15
- package/dist/esm/index.native14.js +14 -15
- package/dist/esm/index.native15.js +13 -116
- package/dist/esm/index.native16.js +116 -11
- package/dist/esm/index.native17.js +14 -42
- package/dist/esm/index.native18.js +42 -20
- package/dist/esm/index.native19.js +20 -172
- package/dist/esm/index.native2.js +3 -3
- package/dist/esm/index.native20.js +170 -39
- package/dist/esm/index.native21.js +41 -49
- package/dist/esm/index.native22.js +47 -70
- package/dist/esm/index.native23.js +69 -23
- package/dist/esm/index.native24.js +22 -156
- package/dist/esm/index.native25.js +157 -45
- package/dist/esm/index.native26.js +43 -245
- package/dist/esm/index.native27.js +247 -53
- package/dist/esm/index.native28.js +56 -17
- package/dist/esm/index.native29.js +15 -21
- package/dist/esm/index.native3.js +40 -30
- package/dist/esm/index.native30.js +21 -49
- package/dist/esm/index.native31.js +50 -8
- package/dist/esm/index.native32.js +8 -17
- package/dist/esm/index.native33.js +16 -44
- package/dist/esm/index.native34.js +45 -13
- package/dist/esm/index.native35.js +13 -55
- package/dist/esm/index.native36.js +55 -6
- package/dist/esm/index.native37.js +6 -21
- package/dist/esm/index.native38.js +21 -11
- package/dist/esm/index.native39.js +11 -3
- package/dist/esm/index.native4.js +67 -21
- package/dist/esm/index.native40.js +3 -3
- package/dist/esm/index.native41.js +3 -34
- package/dist/esm/index.native42.js +32 -10
- package/dist/esm/index.native43.js +12 -4
- package/dist/esm/index.native44.js +4 -28
- package/dist/esm/index.native45.js +28 -6
- package/dist/esm/index.native46.js +6 -24
- package/dist/esm/index.native47.js +24 -16
- package/dist/esm/index.native48.js +16 -54
- package/dist/esm/index.native49.js +53 -22
- package/dist/esm/index.native5.js +21 -254
- package/dist/esm/index.native50.js +23 -11
- package/dist/esm/index.native51.js +10 -26
- package/dist/esm/index.native52.js +26 -41
- package/dist/esm/index.native53.js +41 -54
- package/dist/esm/index.native54.js +54 -126
- package/dist/esm/index.native55.js +126 -11
- package/dist/esm/index.native56.js +9 -101
- package/dist/esm/index.native57.js +104 -6
- package/dist/esm/index.native58.js +7 -3
- package/dist/esm/index.native59.js +3 -15
- package/dist/esm/index.native6.js +262 -176
- package/dist/esm/index.native60.js +14 -42
- package/dist/esm/index.native61.js +38 -74
- package/dist/esm/index.native62.js +79 -2
- package/dist/esm/index.native63.js +2 -2
- package/dist/esm/index.native64.js +2 -13
- package/dist/esm/index.native65.js +8 -33
- package/dist/esm/index.native66.js +36 -5
- package/dist/esm/index.native67.js +5 -33
- package/dist/esm/index.native68.js +34 -8
- package/dist/esm/index.native69.js +8 -10
- package/dist/esm/index.native7.js +213 -115
- package/dist/esm/index.native70.js +10 -11
- package/dist/esm/index.native71.js +11 -13
- package/dist/esm/index.native72.js +13 -18
- package/dist/esm/index.native73.js +18 -5
- package/dist/esm/index.native74.js +6 -5
- package/dist/esm/index.native75.js +5 -11
- package/dist/esm/index.native76.js +10 -54
- package/dist/esm/index.native77.js +54 -10
- package/dist/esm/index.native78.js +11 -2
- package/dist/esm/index.native79.js +2 -45
- package/dist/esm/index.native8.js +115 -137
- package/dist/esm/index.native80.js +44 -13
- package/dist/esm/index.native81.js +14 -2
- package/dist/esm/index.native82.js +1 -1
- package/dist/esm/index.native83.js +2 -20
- package/dist/esm/index.native84.js +103 -79
- package/dist/esm/index.native85.js +18 -102
- package/dist/esm/index.native86.js +79 -32
- package/dist/esm/index.native87.js +32 -6
- package/dist/esm/index.native88.js +6 -78
- package/dist/esm/index.native89.js +2 -2
- package/dist/esm/index.native9.js +138 -113
- package/dist/esm/index.native90.js +3 -3
- package/dist/esm/index.native92.js +3 -3
- package/dist/esm/index.native93.js +1 -1
- package/dist/esm/index.native94.js +3 -3
- package/dist/esm/index.native95.js +79 -10
- package/dist/esm/index.native96.js +10 -5
- package/dist/esm/index.native97.js +5 -18
- package/dist/esm/index.native98.js +18 -28
- package/dist/esm/index.native99.js +26 -6
- package/dist/esm/index.web100.js +13 -28
- package/dist/esm/index.web101.js +10 -8
- package/dist/esm/index.web102.js +17 -11
- package/dist/esm/index.web103.js +80 -12
- package/dist/esm/index.web104.js +13 -10
- package/dist/esm/index.web105.js +36 -17
- package/dist/esm/index.web106.js +40 -79
- package/dist/esm/index.web26.js +1 -1
- package/dist/esm/index.web5.js +131 -109
- package/dist/esm/index.web6.js +65 -38
- package/dist/esm/index.web75.js +6 -6
- package/dist/esm/index.web84.js +1 -1
- package/dist/esm/index.web87.js +21 -10
- package/dist/esm/index.web88.js +10 -79
- package/dist/esm/index.web89.js +19 -20
- package/dist/esm/index.web90.js +93 -9
- package/dist/esm/index.web91.js +19 -18
- package/dist/esm/index.web92.js +105 -81
- package/dist/esm/index.web93.js +78 -20
- package/dist/esm/index.web94.js +9 -117
- package/dist/esm/index.web96.js +18 -13
- package/dist/esm/index.web97.js +27 -35
- package/dist/esm/index.web98.js +7 -41
- package/dist/esm/index.web99.js +11 -18
- package/dist/native/index.native.js +40 -38
- package/dist/native/index.native10.js +115 -21
- package/dist/native/index.native100.js +6 -9
- package/dist/native/index.native101.js +11 -13
- package/dist/native/index.native102.js +11 -8
- package/dist/native/index.native103.js +7 -14
- package/dist/native/index.native104.js +16 -80
- package/dist/native/index.native105.js +79 -11
- package/dist/native/index.native106.js +12 -35
- package/dist/native/index.native107.js +35 -41
- package/dist/native/index.native108.js +38 -75
- package/dist/native/index.native109.js +81 -0
- package/dist/native/index.native11.js +20 -30
- package/dist/native/index.native12.js +30 -7
- package/dist/native/index.native13.js +9 -15
- package/dist/native/index.native14.js +14 -15
- package/dist/native/index.native15.js +13 -116
- package/dist/native/index.native16.js +116 -11
- package/dist/native/index.native17.js +14 -42
- package/dist/native/index.native18.js +42 -20
- package/dist/native/index.native19.js +20 -172
- package/dist/native/index.native2.js +3 -3
- package/dist/native/index.native20.js +170 -39
- package/dist/native/index.native21.js +41 -49
- package/dist/native/index.native22.js +47 -70
- package/dist/native/index.native23.js +69 -23
- package/dist/native/index.native24.js +22 -156
- package/dist/native/index.native25.js +157 -45
- package/dist/native/index.native26.js +43 -245
- package/dist/native/index.native27.js +247 -53
- package/dist/native/index.native28.js +56 -17
- package/dist/native/index.native29.js +15 -21
- package/dist/native/index.native3.js +40 -30
- package/dist/native/index.native30.js +21 -49
- package/dist/native/index.native31.js +50 -8
- package/dist/native/index.native32.js +8 -17
- package/dist/native/index.native33.js +16 -44
- package/dist/native/index.native34.js +45 -13
- package/dist/native/index.native35.js +13 -55
- package/dist/native/index.native36.js +55 -6
- package/dist/native/index.native37.js +6 -21
- package/dist/native/index.native38.js +21 -11
- package/dist/native/index.native39.js +11 -3
- package/dist/native/index.native4.js +67 -21
- package/dist/native/index.native40.js +3 -3
- package/dist/native/index.native41.js +3 -34
- package/dist/native/index.native42.js +32 -10
- package/dist/native/index.native43.js +12 -4
- package/dist/native/index.native44.js +4 -28
- package/dist/native/index.native45.js +28 -6
- package/dist/native/index.native46.js +6 -24
- package/dist/native/index.native47.js +24 -16
- package/dist/native/index.native48.js +16 -54
- package/dist/native/index.native49.js +53 -22
- package/dist/native/index.native5.js +21 -254
- package/dist/native/index.native50.js +23 -11
- package/dist/native/index.native51.js +10 -26
- package/dist/native/index.native52.js +26 -41
- package/dist/native/index.native53.js +41 -54
- package/dist/native/index.native54.js +54 -126
- package/dist/native/index.native55.js +126 -11
- package/dist/native/index.native56.js +9 -101
- package/dist/native/index.native57.js +104 -6
- package/dist/native/index.native58.js +7 -3
- package/dist/native/index.native59.js +3 -15
- package/dist/native/index.native6.js +262 -176
- package/dist/native/index.native60.js +14 -42
- package/dist/native/index.native61.js +38 -74
- package/dist/native/index.native62.js +79 -2
- package/dist/native/index.native63.js +2 -2
- package/dist/native/index.native64.js +2 -13
- package/dist/native/index.native65.js +8 -33
- package/dist/native/index.native66.js +36 -5
- package/dist/native/index.native67.js +5 -33
- package/dist/native/index.native68.js +34 -8
- package/dist/native/index.native69.js +8 -10
- package/dist/native/index.native7.js +213 -115
- package/dist/native/index.native70.js +10 -11
- package/dist/native/index.native71.js +11 -13
- package/dist/native/index.native72.js +13 -18
- package/dist/native/index.native73.js +18 -5
- package/dist/native/index.native74.js +6 -5
- package/dist/native/index.native75.js +5 -11
- package/dist/native/index.native76.js +10 -54
- package/dist/native/index.native77.js +54 -10
- package/dist/native/index.native78.js +11 -2
- package/dist/native/index.native79.js +2 -45
- package/dist/native/index.native8.js +115 -137
- package/dist/native/index.native80.js +44 -13
- package/dist/native/index.native81.js +14 -2
- package/dist/native/index.native82.js +1 -1
- package/dist/native/index.native83.js +2 -20
- package/dist/native/index.native84.js +103 -79
- package/dist/native/index.native85.js +18 -102
- package/dist/native/index.native86.js +79 -32
- package/dist/native/index.native87.js +32 -6
- package/dist/native/index.native88.js +6 -78
- package/dist/native/index.native89.js +2 -2
- package/dist/native/index.native9.js +138 -113
- package/dist/native/index.native90.js +3 -3
- package/dist/native/index.native92.js +3 -3
- package/dist/native/index.native93.js +1 -1
- package/dist/native/index.native94.js +3 -3
- package/dist/native/index.native95.js +79 -10
- package/dist/native/index.native96.js +10 -5
- package/dist/native/index.native97.js +5 -18
- package/dist/native/index.native98.js +18 -28
- package/dist/native/index.native99.js +26 -6
- package/dist/native-types/auth/authManager.d.ts +3 -0
- package/dist/native-types/platform/native/secureStorage.d.ts +2 -0
- package/dist/native-types/platform/types.d.ts +7 -0
- package/dist/types/auth/authManager.d.ts +3 -0
- package/dist/types/platform/native/secureStorage.d.ts +2 -0
- package/dist/types/platform/types.d.ts +7 -0
- package/dist/web/index.web100.js +13 -28
- package/dist/web/index.web101.js +10 -8
- package/dist/web/index.web102.js +17 -11
- package/dist/web/index.web103.js +80 -12
- package/dist/web/index.web104.js +13 -10
- package/dist/web/index.web105.js +36 -17
- package/dist/web/index.web106.js +40 -79
- package/dist/web/index.web26.js +1 -1
- package/dist/web/index.web5.js +131 -109
- package/dist/web/index.web6.js +65 -38
- package/dist/web/index.web75.js +6 -6
- package/dist/web/index.web84.js +1 -1
- package/dist/web/index.web87.js +21 -10
- package/dist/web/index.web88.js +10 -79
- package/dist/web/index.web89.js +19 -20
- package/dist/web/index.web90.js +93 -9
- package/dist/web/index.web91.js +19 -18
- package/dist/web/index.web92.js +105 -81
- package/dist/web/index.web93.js +78 -20
- package/dist/web/index.web94.js +9 -117
- package/dist/web/index.web96.js +18 -13
- package/dist/web/index.web97.js +27 -35
- package/dist/web/index.web98.js +7 -41
- package/dist/web/index.web99.js +11 -18
- package/dist/web-types/auth/authManager.d.ts +3 -0
- package/dist/web-types/platform/native/secureStorage.d.ts +2 -0
- package/dist/web-types/platform/types.d.ts +7 -0
- package/package.json +8 -4
package/dist/esm/index.web5.js
CHANGED
|
@@ -1,123 +1,145 @@
|
|
|
1
|
-
import { configureCdpApiClient as A, setAuthManager as
|
|
2
|
-
import { AuthManager as
|
|
1
|
+
import { configureCdpApiClient as A, setAuthManager as S, initiateAuthentication as k, createEndUserEvmAccount as E, createEndUserEvmSmartAccount as h, verifyEmailAuthentication as U, verifySmsAuthentication as M, signEvmHashWithEndUserAccount as T, signEvmTransactionWithEndUserAccount as P, sendEvmTransactionWithEndUserAccount as j, signEvmMessageWithEndUserAccount as C, signEvmTypedDataWithEndUserAccount as O, sendUserOperationWithEndUserAccount as x, getUserOperationWithEndUserAccount as H, exportEndUserEvmAccount as W } from "@coinbase/cdp-api-client";
|
|
2
|
+
import { AuthManager as b } from "./index.web6.js";
|
|
3
3
|
import { toAuthState as m } from "./index.web12.js";
|
|
4
|
-
import { withAuth as
|
|
5
|
-
import { MockAuthManager as
|
|
6
|
-
import { mockUser as
|
|
7
|
-
import { getPlatformCrypto as
|
|
8
|
-
import { isChainSupportedForCDPSends as
|
|
9
|
-
import { getConfig as t, setCoreAuthManager as w, getCoreAuthManager as
|
|
4
|
+
import { withAuth as i } from "./index.web13.js";
|
|
5
|
+
import { MockAuthManager as K } from "./index.web14.js";
|
|
6
|
+
import { mockUser as p } from "./index.web15.js";
|
|
7
|
+
import { getPlatformServices as f, getPlatformCrypto as D } from "./index.web2.js";
|
|
8
|
+
import { isChainSupportedForCDPSends as _ } from "./index.web16.js";
|
|
9
|
+
import { getConfig as t, setCoreAuthManager as w, getCoreAuthManager as n, setConfig as z } from "./index.web17.js";
|
|
10
10
|
import "viem";
|
|
11
11
|
import { serializeTransaction as y } from "./index.web18.js";
|
|
12
12
|
const Y = async (e) => {
|
|
13
13
|
if (!e.projectId)
|
|
14
14
|
throw new Error("Project ID is required");
|
|
15
|
-
let
|
|
15
|
+
let r;
|
|
16
16
|
try {
|
|
17
|
-
|
|
17
|
+
r = t().projectId !== e.projectId;
|
|
18
18
|
} catch {
|
|
19
|
-
|
|
19
|
+
r = !0;
|
|
20
20
|
}
|
|
21
21
|
if (z(e), t().useMock) {
|
|
22
|
-
w(new
|
|
22
|
+
w(new K(t().projectId));
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
+
let s;
|
|
26
|
+
try {
|
|
27
|
+
const a = f();
|
|
28
|
+
s = a.secureStorage ? {
|
|
29
|
+
getRefreshToken: () => a.secureStorage.getItem("cdp_refresh_token"),
|
|
30
|
+
setRefreshToken: (c) => a.secureStorage.setItem("cdp_refresh_token", c),
|
|
31
|
+
removeRefreshToken: () => a.secureStorage.removeItem("cdp_refresh_token")
|
|
32
|
+
} : void 0;
|
|
33
|
+
} catch {
|
|
34
|
+
s = void 0;
|
|
35
|
+
}
|
|
25
36
|
if (A({
|
|
26
37
|
debugging: t().debugging,
|
|
27
|
-
basePath: t().basePath
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
38
|
+
basePath: t().basePath,
|
|
39
|
+
refreshTokenStorage: s
|
|
40
|
+
}), r) {
|
|
41
|
+
const a = new b(t().projectId);
|
|
42
|
+
w(a), S(a);
|
|
31
43
|
}
|
|
32
|
-
await
|
|
44
|
+
await n().ensureInitialized();
|
|
33
45
|
}, Z = async (e) => l({
|
|
34
46
|
email: e.email,
|
|
35
47
|
type: "email"
|
|
36
|
-
}),
|
|
48
|
+
}), ee = async (e) => l({
|
|
37
49
|
phoneNumber: e.phoneNumber,
|
|
38
50
|
type: "sms"
|
|
39
|
-
}),
|
|
51
|
+
}), te = async (e) => v(
|
|
40
52
|
e,
|
|
41
53
|
"Mock email OTP verified",
|
|
42
|
-
(
|
|
43
|
-
),
|
|
54
|
+
(r, s) => U(r, s)
|
|
55
|
+
), re = async (e) => v(
|
|
44
56
|
e,
|
|
45
57
|
"Mock SMS OTP verified",
|
|
46
|
-
(
|
|
47
|
-
),
|
|
58
|
+
(r, s) => M(r, s)
|
|
59
|
+
), se = async () => n().getUser(), ne = async () => n().isSignedIn(), ae = async () => {
|
|
48
60
|
if (t().useMock) {
|
|
49
|
-
await
|
|
61
|
+
await n().signOut();
|
|
50
62
|
return;
|
|
51
63
|
}
|
|
52
|
-
if (!await
|
|
64
|
+
if (!await n().isSignedIn())
|
|
53
65
|
throw new Error("User not signed in");
|
|
54
|
-
await
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
66
|
+
await n().signOut();
|
|
67
|
+
try {
|
|
68
|
+
const r = f();
|
|
69
|
+
if (r.secureStorage)
|
|
70
|
+
try {
|
|
71
|
+
await r.secureStorage.removeItem("cdp_refresh_token");
|
|
72
|
+
} catch (s) {
|
|
73
|
+
console.warn("Failed to clear stored refresh token:", s);
|
|
74
|
+
}
|
|
75
|
+
} catch {
|
|
76
|
+
}
|
|
77
|
+
}, ce = async () => n().getToken(), oe = (e) => {
|
|
78
|
+
n().addAuthStateChangeCallback(e);
|
|
79
|
+
}, ie = async (e) => t().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: r, walletSecretId: s }) => ({
|
|
80
|
+
signature: (await T(t().projectId, r.userId, {
|
|
59
81
|
hash: e.hash,
|
|
60
82
|
address: e.evmAccount,
|
|
61
|
-
walletSecretId:
|
|
83
|
+
walletSecretId: s
|
|
62
84
|
})).signature
|
|
63
|
-
})),
|
|
64
|
-
const
|
|
85
|
+
})), ue = async (e) => t().useMock ? { signedTransaction: "0x0" } : i(e, n(), async ({ user: r, walletSecretId: s }) => {
|
|
86
|
+
const a = y(e.transaction);
|
|
65
87
|
return {
|
|
66
|
-
signedTransaction: (await
|
|
88
|
+
signedTransaction: (await P(
|
|
67
89
|
t().projectId,
|
|
68
|
-
|
|
90
|
+
r.userId,
|
|
69
91
|
{
|
|
70
|
-
transaction:
|
|
92
|
+
transaction: a,
|
|
71
93
|
address: e.evmAccount,
|
|
72
|
-
walletSecretId:
|
|
94
|
+
walletSecretId: s
|
|
73
95
|
}
|
|
74
96
|
)).signedTransaction
|
|
75
97
|
};
|
|
76
|
-
}),
|
|
77
|
-
if (!
|
|
98
|
+
}), de = async (e) => {
|
|
99
|
+
if (!_(e.network))
|
|
78
100
|
throw new Error(`Chain ${e.network} is not supported by the CDP Apis`);
|
|
79
101
|
if (t().useMock)
|
|
80
102
|
return { transactionHash: "0x0" };
|
|
81
|
-
const
|
|
82
|
-
return
|
|
83
|
-
transactionHash: (await
|
|
103
|
+
const r = y(e.transaction);
|
|
104
|
+
return i(e, n(), async ({ user: s, walletSecretId: a }) => ({
|
|
105
|
+
transactionHash: (await j(
|
|
84
106
|
t().projectId,
|
|
85
|
-
|
|
107
|
+
s.userId,
|
|
86
108
|
{
|
|
87
|
-
transaction:
|
|
109
|
+
transaction: r,
|
|
88
110
|
address: e.evmAccount,
|
|
89
|
-
walletSecretId:
|
|
111
|
+
walletSecretId: a,
|
|
90
112
|
network: e.network
|
|
91
113
|
}
|
|
92
114
|
)).transactionHash
|
|
93
115
|
}));
|
|
94
|
-
},
|
|
95
|
-
signature: (await
|
|
116
|
+
}, me = async (e) => t().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: r, walletSecretId: s }) => ({
|
|
117
|
+
signature: (await C(t().projectId, r.userId, {
|
|
96
118
|
message: e.message,
|
|
97
119
|
address: e.evmAccount,
|
|
98
|
-
walletSecretId:
|
|
120
|
+
walletSecretId: s
|
|
99
121
|
})).signature
|
|
100
|
-
})),
|
|
101
|
-
signature: (await
|
|
122
|
+
})), ge = async (e) => t().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: r, walletSecretId: s }) => ({
|
|
123
|
+
signature: (await O(t().projectId, r.userId, {
|
|
102
124
|
typedData: e.typedData,
|
|
103
125
|
address: e.evmAccount,
|
|
104
|
-
walletSecretId:
|
|
126
|
+
walletSecretId: s
|
|
105
127
|
})).signature
|
|
106
|
-
})),
|
|
128
|
+
})), he = async (e) => t().useMock ? {
|
|
107
129
|
userOperationHash: "0x1234567890123456789012345678901234567890123456789012345678901234"
|
|
108
|
-
} :
|
|
109
|
-
userOperationHash: (await
|
|
130
|
+
} : i(e, n(), async ({ user: r, walletSecretId: s }) => ({
|
|
131
|
+
userOperationHash: (await x(
|
|
110
132
|
t().projectId,
|
|
111
|
-
|
|
133
|
+
r.userId,
|
|
112
134
|
e.evmSmartAccount,
|
|
113
135
|
{
|
|
114
136
|
network: e.network,
|
|
115
|
-
calls: e.calls.map((
|
|
116
|
-
to:
|
|
117
|
-
value: String(
|
|
118
|
-
data:
|
|
137
|
+
calls: e.calls.map((c) => ({
|
|
138
|
+
to: c.to,
|
|
139
|
+
value: String(c.value ?? 0n),
|
|
140
|
+
data: c.data ?? "0x"
|
|
119
141
|
})),
|
|
120
|
-
walletSecretId:
|
|
142
|
+
walletSecretId: s,
|
|
121
143
|
useCdpPaymaster: e.useCdpPaymaster ?? !1,
|
|
122
144
|
paymasterUrl: e.paymasterUrl
|
|
123
145
|
}
|
|
@@ -135,27 +157,27 @@ const Y = async (e) => {
|
|
|
135
157
|
status: "complete",
|
|
136
158
|
transactionHash: "0x9876543210987654321098765432109876543210987654321098765432109876",
|
|
137
159
|
receipts: []
|
|
138
|
-
} :
|
|
160
|
+
} : i(e, n(), async ({ user: r }) => await H(
|
|
139
161
|
t().projectId,
|
|
140
|
-
|
|
162
|
+
r.userId,
|
|
141
163
|
e.evmSmartAccount,
|
|
142
164
|
e.userOperationHash
|
|
143
|
-
)),
|
|
165
|
+
)), we = async (e) => {
|
|
144
166
|
if (t().useMock)
|
|
145
167
|
return {
|
|
146
168
|
privateKey: "mock-private-key"
|
|
147
169
|
};
|
|
148
|
-
const
|
|
149
|
-
return
|
|
150
|
-
const
|
|
170
|
+
const r = D(), s = await r.createExportKeyPair();
|
|
171
|
+
return i(e, n(), async ({ user: a, walletSecretId: c }) => {
|
|
172
|
+
const o = await W(t().projectId, a.userId, {
|
|
151
173
|
address: e.evmAccount,
|
|
152
|
-
walletSecretId:
|
|
153
|
-
exportEncryptionKey:
|
|
174
|
+
walletSecretId: c,
|
|
175
|
+
exportEncryptionKey: s.publicKeyBase64
|
|
154
176
|
});
|
|
155
177
|
return {
|
|
156
|
-
privateKey: await
|
|
157
|
-
|
|
158
|
-
|
|
178
|
+
privateKey: await r.decryptWithPrivateKey(
|
|
179
|
+
s.privateKey,
|
|
180
|
+
o.encryptedPrivateKey
|
|
159
181
|
)
|
|
160
182
|
};
|
|
161
183
|
});
|
|
@@ -165,42 +187,42 @@ const Y = async (e) => {
|
|
|
165
187
|
message: "Mock sign in initiated",
|
|
166
188
|
flowId: "mock-flow-id"
|
|
167
189
|
};
|
|
168
|
-
if (await
|
|
190
|
+
if (await n().isSignedIn())
|
|
169
191
|
throw new Error("User is already authenticated. Please sign out first.");
|
|
170
|
-
const
|
|
192
|
+
const s = await k(t().projectId, e);
|
|
171
193
|
return {
|
|
172
|
-
flowId:
|
|
173
|
-
message:
|
|
194
|
+
flowId: s.flowId,
|
|
195
|
+
message: s.message
|
|
174
196
|
};
|
|
175
|
-
},
|
|
197
|
+
}, v = async (e, r, s) => {
|
|
176
198
|
if (t().useMock)
|
|
177
|
-
return await
|
|
199
|
+
return await n().setAuthState({
|
|
178
200
|
accessToken: "mock-access-token",
|
|
179
201
|
expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
|
|
180
|
-
user:
|
|
202
|
+
user: p
|
|
181
203
|
}), {
|
|
182
|
-
message:
|
|
183
|
-
user:
|
|
204
|
+
message: r,
|
|
205
|
+
user: p,
|
|
184
206
|
isNewUser: !1
|
|
185
207
|
};
|
|
186
|
-
if (await
|
|
208
|
+
if (await n().isSignedIn())
|
|
187
209
|
throw new Error("User is already authenticated. Please sign out first.");
|
|
188
|
-
const
|
|
210
|
+
const c = await s(t().projectId, {
|
|
189
211
|
flowId: e.flowId,
|
|
190
212
|
otp: e.otp
|
|
191
213
|
});
|
|
192
|
-
let
|
|
193
|
-
if (await
|
|
214
|
+
let o = m(c.accessToken, c.validUntil, c.endUser);
|
|
215
|
+
if (await n().setAuthState(o), !o.user.evmAccounts || o.user.evmAccounts.length === 0)
|
|
194
216
|
try {
|
|
195
|
-
const u = await
|
|
196
|
-
let d = await E(t().projectId,
|
|
217
|
+
const u = await n().getWalletSecretId();
|
|
218
|
+
let d = await E(t().projectId, o.user.userId, {
|
|
197
219
|
walletSecretId: u
|
|
198
220
|
});
|
|
199
221
|
if (t().createAccountOnLogin === "evm-smart") {
|
|
200
222
|
const [I] = d.evmAccounts;
|
|
201
|
-
d = await
|
|
223
|
+
d = await h(
|
|
202
224
|
t().projectId,
|
|
203
|
-
|
|
225
|
+
o.user.userId,
|
|
204
226
|
{
|
|
205
227
|
owner: I,
|
|
206
228
|
enableSpendPermissions: !1
|
|
@@ -208,49 +230,49 @@ const Y = async (e) => {
|
|
|
208
230
|
}
|
|
209
231
|
);
|
|
210
232
|
}
|
|
211
|
-
|
|
233
|
+
o = m(c.accessToken, c.validUntil, d), await n().setAuthState(o);
|
|
212
234
|
} catch (u) {
|
|
213
235
|
throw new Error(`Failed to create EVM account: ${u}`);
|
|
214
236
|
}
|
|
215
|
-
if (t().createAccountOnLogin === "evm-smart" && (!
|
|
237
|
+
if (t().createAccountOnLogin === "evm-smart" && (!o.user.evmSmartAccounts || o.user.evmSmartAccounts.length === 0))
|
|
216
238
|
try {
|
|
217
|
-
const [u] =
|
|
239
|
+
const [u] = o.user.evmAccounts, d = await h(
|
|
218
240
|
t().projectId,
|
|
219
|
-
|
|
241
|
+
o.user.userId,
|
|
220
242
|
{
|
|
221
243
|
owner: u,
|
|
222
244
|
enableSpendPermissions: !1
|
|
223
245
|
// Defaulting to false until the feature is ready.
|
|
224
246
|
}
|
|
225
247
|
);
|
|
226
|
-
|
|
248
|
+
o = m(c.accessToken, c.validUntil, d), await n().setAuthState(o);
|
|
227
249
|
} catch (u) {
|
|
228
250
|
throw new Error(`Failed to create EVM Smart Account: ${u}`);
|
|
229
251
|
}
|
|
230
|
-
const g = await
|
|
252
|
+
const g = await n().getUser();
|
|
231
253
|
return {
|
|
232
|
-
message:
|
|
254
|
+
message: c.message,
|
|
233
255
|
user: g,
|
|
234
|
-
isNewUser:
|
|
256
|
+
isNewUser: c.isNewEndUser
|
|
235
257
|
};
|
|
236
258
|
};
|
|
237
259
|
export {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
260
|
+
we as exportEvmAccount,
|
|
261
|
+
ce as getAccessToken,
|
|
262
|
+
se as getCurrentUser,
|
|
241
263
|
pe as getUserOperation,
|
|
242
264
|
Y as initialize,
|
|
243
265
|
ne as isSignedIn,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
266
|
+
oe as onAuthStateChange,
|
|
267
|
+
de as sendEvmTransaction,
|
|
268
|
+
he as sendUserOperation,
|
|
247
269
|
ie as signEvmHash,
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
270
|
+
me as signEvmMessage,
|
|
271
|
+
ue as signEvmTransaction,
|
|
272
|
+
ge as signEvmTypedData,
|
|
251
273
|
Z as signInWithEmail,
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
274
|
+
ee as signInWithSms,
|
|
275
|
+
ae as signOut,
|
|
276
|
+
te as verifyEmailOTP,
|
|
277
|
+
re as verifySmsOTP
|
|
256
278
|
};
|
package/dist/esm/index.web6.js
CHANGED
|
@@ -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
|
|
4
|
+
import { toAuthState as f } from "./index.web12.js";
|
|
5
5
|
import { getPlatformCrypto as n } from "./index.web2.js";
|
|
6
|
-
import { sortKeys as
|
|
7
|
-
const
|
|
8
|
-
class
|
|
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(
|
|
20
|
-
this.projectId =
|
|
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
|
-
|
|
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(
|
|
56
|
-
this.authStateChangeCallbacks.push(
|
|
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(
|
|
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
|
|
92
|
-
uris: [
|
|
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 (
|
|
95
|
-
const
|
|
96
|
-
|
|
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(
|
|
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(
|
|
106
|
-
this.authState =
|
|
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((
|
|
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 (
|
|
132
|
-
console.warn("Failed to refresh access token during initialization:",
|
|
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() +
|
|
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
|
|
160
|
+
const e = await c(this.projectId, {
|
|
152
161
|
grantType: "refresh_token"
|
|
153
|
-
}),
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
}), t = f(
|
|
163
|
+
e.accessToken,
|
|
164
|
+
e.validUntil,
|
|
165
|
+
e.endUser
|
|
157
166
|
);
|
|
158
|
-
await this.setAuthState(
|
|
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() +
|
|
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
|
|
178
|
-
this.walletSecret = { walletSecretId:
|
|
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:
|
|
182
|
-
publicKey:
|
|
183
|
-
validUntil:
|
|
190
|
+
walletSecretId: t,
|
|
191
|
+
publicKey: r.publicKeyBase64,
|
|
192
|
+
validUntil: a
|
|
184
193
|
});
|
|
185
|
-
} catch (
|
|
186
|
-
throw this.walletSecret = null,
|
|
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
|
-
|
|
218
|
+
p as AuthManager
|
|
192
219
|
};
|
package/dist/esm/index.web75.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { encode as d } from "./index.
|
|
2
|
-
import y from "./index.
|
|
3
|
-
import b from "./index.
|
|
1
|
+
import { encode as d } from "./index.web87.js";
|
|
2
|
+
import y from "./index.web88.js";
|
|
3
|
+
import b from "./index.web89.js";
|
|
4
4
|
import { JWSInvalid as r } from "./index.web28.js";
|
|
5
5
|
import { encoder as s, concat as u, decoder as h } from "./index.web76.js";
|
|
6
|
-
import g from "./index.
|
|
7
|
-
import H from "./index.
|
|
8
|
-
import P from "./index.
|
|
6
|
+
import g from "./index.web90.js";
|
|
7
|
+
import H from "./index.web91.js";
|
|
8
|
+
import P from "./index.web92.js";
|
|
9
9
|
class x {
|
|
10
10
|
#r;
|
|
11
11
|
#e;
|
package/dist/esm/index.web84.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HashMD as D, SHA256_IV as b, Chi as g, Maj as p } from "./index.
|
|
1
|
+
import { HashMD as D, SHA256_IV as b, Chi as g, Maj as p } from "./index.web93.js";
|
|
2
2
|
import { createHasher as u, clean as C, rotr as i } from "./index.web83.js";
|
|
3
3
|
const B = /* @__PURE__ */ Uint32Array.from([
|
|
4
4
|
1116352408,
|
package/dist/esm/index.web87.js
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { encoder as t, decoder as o } from "./index.web76.js";
|
|
2
|
+
import { encodeBase64 as c, decodeBase64 as a } from "./index.web96.js";
|
|
3
|
+
function i(r) {
|
|
4
|
+
if (Uint8Array.fromBase64)
|
|
5
|
+
return Uint8Array.fromBase64(typeof r == "string" ? r : o.decode(r), {
|
|
6
|
+
alphabet: "base64url"
|
|
7
|
+
});
|
|
8
|
+
let e = r;
|
|
9
|
+
e instanceof Uint8Array && (e = o.decode(e)), e = e.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
|
|
10
|
+
try {
|
|
11
|
+
return a(e);
|
|
12
|
+
} catch {
|
|
13
|
+
throw new TypeError("The input to be decoded is not correctly encoded.");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function p(r) {
|
|
17
|
+
let e = r;
|
|
18
|
+
return typeof e == "string" && (e = t.encode(e)), Uint8Array.prototype.toBase64 ? e.toBase64({ alphabet: "base64url", omitPadding: !0 }) : c(e).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
19
|
+
}
|
|
10
20
|
export {
|
|
11
|
-
|
|
21
|
+
i as decode,
|
|
22
|
+
p as encode
|
|
12
23
|
};
|