@coinbase/cdp-core 0.0.67 → 0.0.69

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 (160) hide show
  1. package/README.md +149 -1
  2. package/dist/esm/index.native113.js +1 -1
  3. package/dist/esm/index.native137.js +2 -2
  4. package/dist/esm/index.native151.js +2 -4
  5. package/dist/esm/index.native152.js +109 -2
  6. package/dist/esm/index.native153.js +2 -109
  7. package/dist/esm/index.native154.js +4 -2
  8. package/dist/esm/index.native155.js +1 -1
  9. package/dist/esm/index.native156.js +7 -38
  10. package/dist/esm/index.native158.js +375 -67
  11. package/dist/esm/index.native159.js +832 -34
  12. package/dist/esm/index.native160.js +38 -20
  13. package/dist/esm/index.native161.js +2 -8
  14. package/dist/esm/index.native162.js +70 -2
  15. package/dist/esm/index.native163.js +30 -373
  16. package/dist/esm/index.native164.js +20 -832
  17. package/dist/esm/index.native175.js +2 -2
  18. package/dist/esm/index.native176.js +2 -2
  19. package/dist/esm/index.native177.js +2 -2
  20. package/dist/esm/index.native21.js +4 -2
  21. package/dist/esm/index.native31.js +1 -1
  22. package/dist/esm/index.native35.js +13 -12
  23. package/dist/esm/index.native37.js +4 -2
  24. package/dist/esm/index.native51.js +1 -1
  25. package/dist/esm/index.native52.js +3 -3
  26. package/dist/esm/index.native60.js +377 -2
  27. package/dist/esm/index.native61.js +2 -379
  28. package/dist/esm/index.native62.js +65 -28
  29. package/dist/esm/index.native63.js +364 -28
  30. package/dist/esm/index.native64.js +4 -2
  31. package/dist/esm/index.native65.js +28 -65
  32. package/dist/esm/index.native66.js +28 -364
  33. package/dist/esm/index.native7.js +6 -10
  34. package/dist/esm/index.web104.js +1 -1
  35. package/dist/esm/index.web107.js +6 -6
  36. package/dist/esm/index.web114.js +2 -2
  37. package/dist/esm/index.web118.js +1 -1
  38. package/dist/esm/index.web122.js +3 -20
  39. package/dist/esm/index.web123.js +21 -10
  40. package/dist/esm/index.web124.js +9 -19
  41. package/dist/esm/index.web125.js +15 -89
  42. package/dist/esm/index.web126.js +92 -19
  43. package/dist/esm/index.web127.js +18 -115
  44. package/dist/esm/index.web128.js +112 -73
  45. package/dist/esm/index.web150.js +7 -3
  46. package/dist/esm/index.web151.js +2 -39
  47. package/dist/esm/index.web152.js +378 -2
  48. package/dist/esm/index.web153.js +832 -69
  49. package/dist/esm/index.web154.js +37 -33
  50. package/dist/esm/index.web155.js +2 -21
  51. package/dist/esm/index.web156.js +69 -7
  52. package/dist/esm/index.web157.js +35 -2
  53. package/dist/esm/index.web158.js +17 -374
  54. package/dist/esm/index.web159.js +78 -832
  55. package/dist/esm/index.web20.js +4 -2
  56. package/dist/esm/index.web29.js +1 -1
  57. package/dist/esm/index.web33.js +13 -12
  58. package/dist/esm/index.web35.js +4 -2
  59. package/dist/esm/index.web6.js +6 -10
  60. package/dist/native/index.native113.js +1 -1
  61. package/dist/native/index.native137.js +2 -2
  62. package/dist/native/index.native151.js +2 -4
  63. package/dist/native/index.native152.js +109 -2
  64. package/dist/native/index.native153.js +2 -109
  65. package/dist/native/index.native154.js +4 -2
  66. package/dist/native/index.native155.js +1 -1
  67. package/dist/native/index.native156.js +7 -38
  68. package/dist/native/index.native158.js +375 -67
  69. package/dist/native/index.native159.js +832 -34
  70. package/dist/native/index.native160.js +38 -20
  71. package/dist/native/index.native161.js +2 -8
  72. package/dist/native/index.native162.js +70 -2
  73. package/dist/native/index.native163.js +30 -373
  74. package/dist/native/index.native164.js +20 -832
  75. package/dist/native/index.native175.js +2 -2
  76. package/dist/native/index.native176.js +2 -2
  77. package/dist/native/index.native177.js +2 -2
  78. package/dist/native/index.native21.js +4 -2
  79. package/dist/native/index.native31.js +1 -1
  80. package/dist/native/index.native35.js +13 -12
  81. package/dist/native/index.native37.js +4 -2
  82. package/dist/native/index.native51.js +1 -1
  83. package/dist/native/index.native52.js +3 -3
  84. package/dist/native/index.native60.js +377 -2
  85. package/dist/native/index.native61.js +2 -379
  86. package/dist/native/index.native62.js +65 -28
  87. package/dist/native/index.native63.js +364 -28
  88. package/dist/native/index.native64.js +4 -2
  89. package/dist/native/index.native65.js +28 -65
  90. package/dist/native/index.native66.js +28 -364
  91. package/dist/native/index.native7.js +6 -10
  92. package/dist/native-types/actions/initiateMfaEnrollment.d.ts +9 -0
  93. package/dist/native-types/actions/initiateMfaVerification.d.ts +2 -0
  94. package/dist/native-types/actions/submitMfaEnrollment.d.ts +10 -0
  95. package/dist/native-types/actions/submitMfaVerification.d.ts +6 -0
  96. package/dist/native-types/auth/authManager.d.ts +3 -1
  97. package/dist/native-types/auth/toAuthState.d.ts +10 -3
  98. package/dist/native-types/auth/types.d.ts +3 -1
  99. package/dist/native-types/auth/withAuth.d.ts +1 -1
  100. package/dist/native-types/core.d.ts +3 -1
  101. package/dist/native-types/index.d.ts +4 -0
  102. package/dist/native-types/mocks/mockAuthManager.d.ts +3 -1
  103. package/dist/native-types/shared/validators.d.ts +4 -0
  104. package/dist/native-types/types.d.ts +2 -1
  105. package/dist/native-types/version.d.ts +1 -1
  106. package/dist/types/actions/initiateMfaEnrollment.d.ts +9 -0
  107. package/dist/types/actions/initiateMfaVerification.d.ts +2 -0
  108. package/dist/types/actions/submitMfaEnrollment.d.ts +10 -0
  109. package/dist/types/actions/submitMfaVerification.d.ts +6 -0
  110. package/dist/types/auth/authManager.d.ts +3 -1
  111. package/dist/types/auth/toAuthState.d.ts +10 -3
  112. package/dist/types/auth/types.d.ts +3 -1
  113. package/dist/types/auth/withAuth.d.ts +1 -1
  114. package/dist/types/core.d.ts +3 -1
  115. package/dist/types/index.d.ts +4 -0
  116. package/dist/types/mocks/mockAuthManager.d.ts +3 -1
  117. package/dist/types/shared/validators.d.ts +4 -0
  118. package/dist/types/types.d.ts +2 -1
  119. package/dist/types/version.d.ts +1 -1
  120. package/dist/web/index.web104.js +1 -1
  121. package/dist/web/index.web107.js +6 -6
  122. package/dist/web/index.web114.js +2 -2
  123. package/dist/web/index.web118.js +1 -1
  124. package/dist/web/index.web122.js +3 -20
  125. package/dist/web/index.web123.js +21 -10
  126. package/dist/web/index.web124.js +9 -19
  127. package/dist/web/index.web125.js +15 -89
  128. package/dist/web/index.web126.js +92 -19
  129. package/dist/web/index.web127.js +18 -115
  130. package/dist/web/index.web128.js +112 -73
  131. package/dist/web/index.web150.js +7 -3
  132. package/dist/web/index.web151.js +2 -39
  133. package/dist/web/index.web152.js +378 -2
  134. package/dist/web/index.web153.js +832 -69
  135. package/dist/web/index.web154.js +37 -33
  136. package/dist/web/index.web155.js +2 -21
  137. package/dist/web/index.web156.js +69 -7
  138. package/dist/web/index.web157.js +35 -2
  139. package/dist/web/index.web158.js +17 -374
  140. package/dist/web/index.web159.js +78 -832
  141. package/dist/web/index.web20.js +4 -2
  142. package/dist/web/index.web29.js +1 -1
  143. package/dist/web/index.web33.js +13 -12
  144. package/dist/web/index.web35.js +4 -2
  145. package/dist/web/index.web6.js +6 -10
  146. package/dist/web-types/actions/initiateMfaEnrollment.d.ts +9 -0
  147. package/dist/web-types/actions/initiateMfaVerification.d.ts +2 -0
  148. package/dist/web-types/actions/submitMfaEnrollment.d.ts +10 -0
  149. package/dist/web-types/actions/submitMfaVerification.d.ts +6 -0
  150. package/dist/web-types/auth/authManager.d.ts +3 -1
  151. package/dist/web-types/auth/toAuthState.d.ts +10 -3
  152. package/dist/web-types/auth/types.d.ts +3 -1
  153. package/dist/web-types/auth/withAuth.d.ts +1 -1
  154. package/dist/web-types/core.d.ts +3 -1
  155. package/dist/web-types/index.d.ts +4 -0
  156. package/dist/web-types/mocks/mockAuthManager.d.ts +3 -1
  157. package/dist/web-types/shared/validators.d.ts +4 -0
  158. package/dist/web-types/types.d.ts +2 -1
  159. package/dist/web-types/version.d.ts +1 -1
  160. package/package.json +3 -3
@@ -70,10 +70,12 @@ class R {
70
70
  * Gets the access token, refreshing it if it is expired. Returns null if the user is not
71
71
  * signed in.
72
72
  *
73
+ * @param options - The options for getting the token.
74
+ * @param options.forceRefresh - Whether to force a refresh of the token.
73
75
  * @returns The access token.
74
76
  */
75
- async getToken() {
76
- return this.shouldRefreshToken() && await this.refreshAccessToken(), this.authState?.accessToken ?? null;
77
+ async getToken(e) {
78
+ return (e?.forceRefresh || this.shouldRefreshToken()) && await this.refreshAccessToken(), this.authState?.accessToken ?? null;
77
79
  }
78
80
  /**
79
81
  * Gets the expiration time of the access token, or null if the user is not signed in.
@@ -1,2 +1,2 @@
1
- import { __require as r } from "./index.web156.js";
1
+ import { __require as r } from "./index.web150.js";
2
2
  r();
@@ -1,19 +1,20 @@
1
1
  import "@coinbase/cdp-api-client";
2
- const n = (e, t, o) => {
3
- const c = new Date(t).getTime(), s = u(o);
4
- return {
5
- accessToken: e,
6
- expiresAt: c,
7
- user: s
8
- };
9
- }, u = (e) => ({
2
+ const s = (e) => ({
10
3
  userId: e.userId,
11
4
  evmAccounts: e.evmAccounts?.map((t) => t) ?? [],
12
5
  evmSmartAccounts: e.evmSmartAccounts?.map((t) => t) ?? [],
13
6
  solanaAccounts: e.solanaAccounts?.map((t) => t) ?? [],
14
- authenticationMethods: e.authenticationMethods.reduce((t, o) => (t[o.type] = o, t), {})
15
- });
7
+ authenticationMethods: e.authenticationMethods.reduce((t, o) => (t[o.type] = o, t), {}),
8
+ mfaMethods: e.mfaMethods
9
+ }), c = (e, t, o) => {
10
+ const a = new Date(t).getTime();
11
+ return {
12
+ accessToken: e,
13
+ expiresAt: a,
14
+ user: s(o)
15
+ };
16
+ };
16
17
  export {
17
- n as toAuthState,
18
- u as toAuthStateUser
18
+ c as toAuthState,
19
+ s as toAuthStateUser
19
20
  };
@@ -57,10 +57,12 @@ class n {
57
57
  * Gets the access token. For mock, this always returns a valid token if signed in.
58
58
  * If the current token is expired, it will be refreshed automatically.
59
59
  *
60
+ * @param options - The options for getting the token.
61
+ * @param options.forceRefresh - Whether to force a refresh of the token.
60
62
  * @returns The mock access token if signed in, null otherwise.
61
63
  */
62
- async getToken() {
63
- return this.authState ? (this.authState.expiresAt <= Date.now() && await this.refreshToken(), this.authState?.accessToken ?? null) : null;
64
+ async getToken(t) {
65
+ return this.authState ? ((t?.forceRefresh || this.authState.expiresAt <= Date.now()) && await this.refreshToken(), this.authState?.accessToken ?? null) : null;
64
66
  }
65
67
  /**
66
68
  * Gets the expiration time of the access token, or null if the user is not signed in.
@@ -138,7 +138,7 @@ const _e = async (e) => {
138
138
  if (!await o().isSignedIn())
139
139
  throw new Error("User not signed in");
140
140
  await o().signOut();
141
- }, We = async () => (c.sendActionCallEvent({ name: "get_access_token" }), o().getToken()), He = async () => (c.sendActionCallEvent({ name: "get_access_token_expiration" }), o().getTokenExpiration()), Re = (e) => {
141
+ }, We = async (e = { forceRefresh: !1 }) => (c.sendActionCallEvent({ name: "get_access_token" }), o().getToken(e)), He = async () => (c.sendActionCallEvent({ name: "get_access_token_expiration" }), o().getTokenExpiration()), Re = (e) => {
142
142
  o().addAuthStateChangeCallback(e);
143
143
  }, Be = (e) => {
144
144
  re().addOAuthStateChangeCallback(e);
@@ -207,15 +207,11 @@ const _e = async (e) => {
207
207
  walletSecretId: t
208
208
  })).signature
209
209
  }))), $e = async (e) => (c.sendActionCallEvent({ name: "sign_solana_message" }), a().useMock ? { signature: "mockSignature" } : d(e, o(), async ({ user: n, walletSecretId: t }) => ({
210
- signature: (await z(
211
- a().projectId,
212
- n.userId,
213
- {
214
- message: e.message,
215
- address: e.solanaAccount,
216
- walletSecretId: t
217
- }
218
- )).signature
210
+ signature: (await z(a().projectId, n.userId, {
211
+ message: e.message,
212
+ address: e.solanaAccount,
213
+ walletSecretId: t
214
+ })).signature
219
215
  }))), Ve = async (e) => (c.sendActionCallEvent({ name: "sign_evm_typed_data" }), a().useMock ? { signature: "0x0" } : d(e, o(), async ({ user: n, walletSecretId: t }) => ({
220
216
  signature: (await $(a().projectId, n.userId, {
221
217
  typedData: e.typedData,
@@ -0,0 +1,9 @@
1
+ import { MfaMethod } from '@coinbase/cdp-api-client';
2
+ export type InitiateMfaOptions = {
3
+ mfaMethod: MfaMethod;
4
+ };
5
+ export type InitiateMfaEnrollmentResult = {
6
+ authUrl: string;
7
+ secret: string;
8
+ };
9
+ export declare const initiateMfaEnrollment: (options: InitiateMfaOptions) => Promise<InitiateMfaEnrollmentResult>;
@@ -0,0 +1,2 @@
1
+ import { InitiateMfaOptions } from './initiateMfaEnrollment.js';
2
+ export declare const initiateMfaVerification: (options: InitiateMfaOptions) => Promise<void>;
@@ -0,0 +1,10 @@
1
+ import { MfaMethod } from '@coinbase/cdp-api-client';
2
+ import { User } from '../types.js';
3
+ export type SubmitMfaEnrollmentOptions = {
4
+ mfaMethod: MfaMethod;
5
+ mfaCode: string;
6
+ };
7
+ export type SubmitMfaEnrollmentResult = {
8
+ user: User;
9
+ };
10
+ export declare const submitMfaEnrollment: (options: SubmitMfaEnrollmentOptions) => Promise<SubmitMfaEnrollmentResult>;
@@ -0,0 +1,6 @@
1
+ import { MfaMethod } from '@coinbase/cdp-api-client';
2
+ export type SubmitMfaVerificationOptions = {
3
+ mfaMethod: MfaMethod;
4
+ mfaCode: string;
5
+ };
6
+ export declare const submitMfaVerification: (options: SubmitMfaVerificationOptions) => Promise<void>;
@@ -12,7 +12,9 @@ export declare class AuthManager implements IAuthManager {
12
12
  isSignedIn(): Promise<boolean>;
13
13
  signOut(): Promise<void>;
14
14
  addAuthStateChangeCallback(callback: OnAuthStateChangeFn): void;
15
- getToken(): Promise<string | null>;
15
+ getToken(options?: {
16
+ forceRefresh?: boolean;
17
+ }): Promise<string | null>;
16
18
  getTokenExpiration(): Promise<number | null>;
17
19
  getWalletSecretId(): Promise<string>;
18
20
  getXWalletAuth(options: {
@@ -1,5 +1,12 @@
1
- import { EndUser } from '@coinbase/cdp-api-client';
1
+ import { EndUser, MFAMethods } from '@coinbase/cdp-api-client';
2
2
  import { AuthState } from './types.js';
3
- import { User } from '../types.js';
3
+ import { AuthenticationMethods } from '../types.js';
4
+ export declare const toAuthStateUser: (endUser: EndUser) => {
5
+ userId: string;
6
+ evmAccounts: `0x${string}`[];
7
+ evmSmartAccounts: `0x${string}`[];
8
+ solanaAccounts: string[];
9
+ authenticationMethods: AuthenticationMethods;
10
+ mfaMethods: MFAMethods | undefined;
11
+ };
4
12
  export declare const toAuthState: (accessToken: string, expiresAt: string, endUser: EndUser) => AuthState;
5
- export declare const toAuthStateUser: (endUser: EndUser) => User;
@@ -22,7 +22,9 @@ export interface IAuthManager {
22
22
  isSignedIn(): Promise<boolean>;
23
23
  signOut(): Promise<void>;
24
24
  addAuthStateChangeCallback(callback: OnAuthStateChangeFn): void;
25
- getToken(): Promise<string | null>;
25
+ getToken(options?: {
26
+ forceRefresh?: boolean;
27
+ }): Promise<string | null>;
26
28
  getTokenExpiration(): Promise<number | null>;
27
29
  getWalletSecretId(): Promise<string>;
28
30
  getXWalletAuth(options: {
@@ -11,5 +11,5 @@ export declare function withAuth<T, R>(options: T & ({
11
11
  evmSmartAccount: EvmAddress;
12
12
  } | {
13
13
  solanaAccount: SolanaAddress;
14
- }), authManager: IAuthManager, fn: AuthenticatedFunction<T, R>): Promise<R>;
14
+ } | Record<string, unknown>), authManager: IAuthManager, fn: AuthenticatedFunction<T, R>): Promise<R>;
15
15
  export {};
@@ -11,7 +11,9 @@ export declare const authenticateWithJWT: () => Promise<AuthenticateWithJWTResul
11
11
  export declare const getCurrentUser: () => Promise<User | null>;
12
12
  export declare const isSignedIn: () => Promise<boolean>;
13
13
  export declare const signOut: () => Promise<void>;
14
- export declare const getAccessToken: () => Promise<string | null>;
14
+ export declare const getAccessToken: (options?: {
15
+ forceRefresh: boolean;
16
+ }) => Promise<string | null>;
15
17
  export declare const getAccessTokenExpiration: () => Promise<number | null>;
16
18
  export declare const onAuthStateChange: (callback: OnAuthStateChangeFn) => void;
17
19
  export declare const onOAuthStateChange: (callback: OnOAuthStateChangeFn) => void;
@@ -13,6 +13,10 @@ export { linkApple } from './actions/linkApple.js';
13
13
  export { createEvmEoaAccount } from './actions/createEvmEoaAccount.js';
14
14
  export { createEvmSmartAccount, type CreateEvmSmartAccountOptions, } from './actions/createEvmSmartAccount.js';
15
15
  export { createSolanaAccount } from './actions/createSolanaAccount.js';
16
+ export { initiateMfaEnrollment, type InitiateMfaEnrollmentResult, type InitiateMfaOptions, } from './actions/initiateMfaEnrollment.js';
17
+ export { submitMfaEnrollment, type SubmitMfaEnrollmentOptions, type SubmitMfaEnrollmentResult, } from './actions/submitMfaEnrollment.js';
18
+ export { initiateMfaVerification } from './actions/initiateMfaVerification.js';
19
+ export { submitMfaVerification, type SubmitMfaVerificationOptions, } from './actions/submitMfaVerification.js';
16
20
  export * from './types.js';
17
21
  export * from './viem/toViemAccount.js';
18
22
  export * from './errors.js';
@@ -9,7 +9,9 @@ export declare class MockAuthManager implements IAuthManager {
9
9
  isSignedIn(): Promise<boolean>;
10
10
  signOut(): Promise<void>;
11
11
  addAuthStateChangeCallback(callback: OnAuthStateChangeFn): void;
12
- getToken(): Promise<string | null>;
12
+ getToken(options?: {
13
+ forceRefresh?: boolean;
14
+ }): Promise<string | null>;
13
15
  getTokenExpiration(): Promise<number | null>;
14
16
  getWalletSecretId(): Promise<string>;
15
17
  getXWalletAuth(_options: {
@@ -4,3 +4,7 @@ export declare function validateUserCanCreateAccount(user: User | null, authStat
4
4
  user: User;
5
5
  authState: AuthState;
6
6
  };
7
+ export declare function validateUserAuthState(user: User | null, authState: AuthState | null): {
8
+ user: User;
9
+ authState: AuthState;
10
+ };
@@ -1,4 +1,4 @@
1
- import { SendEvmTransactionWithEndUserAccountBodyNetwork, SendSolanaTransactionWithEndUserAccountBodyNetwork, APIError, APIErrorType, ErrorType, HttpErrorType, EvmUserOperation, OAuth2ProviderType, OAuth2Authentication } from '@coinbase/cdp-api-client';
1
+ import { SendEvmTransactionWithEndUserAccountBodyNetwork, SendSolanaTransactionWithEndUserAccountBodyNetwork, APIError, APIErrorType, ErrorType, HttpErrorType, EvmUserOperation, OAuth2ProviderType, OAuth2Authentication, MFAMethods } from '@coinbase/cdp-api-client';
2
2
  import { TransactionSerializableEIP1559 } from 'viem';
3
3
  export { APIError, type APIErrorType, ErrorType, HttpErrorType, SendEvmTransactionWithEndUserAccountBodyNetwork, SendSolanaTransactionWithEndUserAccountBodyNetwork, OAuth2ProviderType, };
4
4
  export declare class CustomAuthError extends Error {
@@ -51,6 +51,7 @@ export type User = {
51
51
  evmAccounts?: EvmAddress[];
52
52
  evmSmartAccounts?: EvmAddress[];
53
53
  solanaAccounts?: SolanaAddress[];
54
+ mfaMethods?: MFAMethods;
54
55
  };
55
56
  export type EmailAuthentication = {
56
57
  type: "email";
@@ -1 +1 @@
1
- export declare const VERSION = "0.0.67";
1
+ export declare const VERSION = "0.0.69";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cdp-core",
3
- "version": "0.0.67",
3
+ "version": "0.0.69",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist/**",
@@ -29,7 +29,7 @@
29
29
  "ox": "0.8.1",
30
30
  "viem": "^2.33.0",
31
31
  "zustand": "^5.0.6",
32
- "@coinbase/cdp-api-client": "^0.0.67"
32
+ "@coinbase/cdp-api-client": "^0.0.69"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "@react-native-async-storage/async-storage": "^2.0.0",
@@ -63,7 +63,7 @@
63
63
  "path": "./dist/esm/index.web.js",
64
64
  "running": false,
65
65
  "import": "*",
66
- "limit": "115 KB"
66
+ "limit": "116 KB"
67
67
  },
68
68
  {
69
69
  "name": "auth-only",