@dynamic-labs-sdk/client 0.18.0 → 0.19.0
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/{InvalidParamError-Bxg4p9zQ.cjs.js → InvalidParamError-6MugNXi3.cjs.js} +4 -4
- package/dist/{InvalidParamError-Bxg4p9zQ.cjs.js.map → InvalidParamError-6MugNXi3.cjs.js.map} +1 -1
- package/dist/{InvalidParamError-ByAOflE2.esm.js → InvalidParamError-CnPeSjBW.esm.js} +3 -3
- package/dist/{InvalidParamError-ByAOflE2.esm.js.map → InvalidParamError-CnPeSjBW.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-DMFf5i7j.esm.js → NotWaasWalletAccountError-B5QkZWrs.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-DMFf5i7j.esm.js.map → NotWaasWalletAccountError-B5QkZWrs.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-2CU35ult.cjs.js → NotWaasWalletAccountError-C204z_SH.cjs.js} +3 -3
- package/dist/{NotWaasWalletAccountError-2CU35ult.cjs.js.map → NotWaasWalletAccountError-C204z_SH.cjs.js.map} +1 -1
- package/dist/core.cjs.js +5 -5
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.esm.js +5 -5
- package/dist/core.esm.js.map +1 -1
- package/dist/exports/core.d.ts +1 -1
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/index.d.ts +11 -1
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-BXH2tfrn.cjs.js → getNetworkProviderFromNetworkId-CoAKJyXQ.cjs.js} +23 -14
- package/dist/getNetworkProviderFromNetworkId-CoAKJyXQ.cjs.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-6QbuR0_i.esm.js → getNetworkProviderFromNetworkId-VEDzpV8Z.esm.js} +23 -14
- package/dist/getNetworkProviderFromNetworkId-VEDzpV8Z.esm.js.map +1 -0
- package/dist/{getSignedSessionId-KSSnmfwN.cjs.js → getSignedSessionId-BZL8lFjp.cjs.js} +5 -7
- package/dist/getSignedSessionId-BZL8lFjp.cjs.js.map +1 -0
- package/dist/{getSignedSessionId-yWd9_5u4.esm.js → getSignedSessionId-CgoBQlYG.esm.js} +5 -7
- package/dist/{getSignedSessionId-yWd9_5u4.esm.js.map → getSignedSessionId-CgoBQlYG.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-DbfbxLr9.esm.js → getVerifiedCredentialForWalletAccount-B58hODrW.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-DbfbxLr9.esm.js.map → getVerifiedCredentialForWalletAccount-B58hODrW.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-CJAgL4AJ.cjs.js → getVerifiedCredentialForWalletAccount-Zu778J_y.cjs.js} +3 -3
- package/dist/{getVerifiedCredentialForWalletAccount-CJAgL4AJ.cjs.js.map → getVerifiedCredentialForWalletAccount-Zu778J_y.cjs.js.map} +1 -1
- package/dist/index.cjs.js +235 -39
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +232 -40
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-DnZ2ZWUB.cjs.js → isMfaRequiredForAction-D7amEpqp.cjs.js} +2 -2
- package/dist/{isMfaRequiredForAction-DnZ2ZWUB.cjs.js.map → isMfaRequiredForAction-D7amEpqp.cjs.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-CG5JbTh1.esm.js → isMfaRequiredForAction-Dkj_caxl.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CG5JbTh1.esm.js.map → isMfaRequiredForAction-Dkj_caxl.esm.js.map} +1 -1
- package/dist/modules/auth/checkStepUpAuth/checkStepUpAuth.d.ts +35 -0
- package/dist/modules/auth/checkStepUpAuth/checkStepUpAuth.d.ts.map +1 -0
- package/dist/modules/auth/checkStepUpAuth/index.d.ts +2 -0
- package/dist/modules/auth/checkStepUpAuth/index.d.ts.map +1 -0
- package/dist/modules/auth/events.d.ts +6 -2
- package/dist/modules/auth/events.d.ts.map +1 -1
- package/dist/modules/auth/handleSessionExpiration/handleSessionExpiration.d.ts +11 -0
- package/dist/modules/auth/handleSessionExpiration/handleSessionExpiration.d.ts.map +1 -0
- package/dist/modules/auth/handleSessionExpiration/index.d.ts +2 -0
- package/dist/modules/auth/handleSessionExpiration/index.d.ts.map +1 -0
- package/dist/modules/auth/logout/logout.d.ts +1 -1
- package/dist/modules/auth/logout/logout.d.ts.map +1 -1
- package/dist/modules/auth/logoutReason.d.ts +11 -0
- package/dist/modules/auth/logoutReason.d.ts.map +1 -0
- package/dist/modules/auth/performLogout/index.d.ts +2 -0
- package/dist/modules/auth/performLogout/index.d.ts.map +1 -0
- package/dist/modules/auth/performLogout/performLogout.d.ts +12 -0
- package/dist/modules/auth/performLogout/performLogout.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts +4 -1
- package/dist/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -1
- package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts +2 -2
- package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts.map +1 -1
- package/dist/modules/sessionKeys/getSignedSessionId/getSignedSessionId.d.ts.map +1 -1
- package/dist/modules/swap/constants.d.ts +2 -0
- package/dist/modules/swap/constants.d.ts.map +1 -0
- package/dist/modules/swap/executeSwapTransaction/executeSwapTransaction.d.ts +32 -0
- package/dist/modules/swap/executeSwapTransaction/executeSwapTransaction.d.ts.map +1 -0
- package/dist/modules/swap/executeSwapTransaction/index.d.ts +3 -0
- package/dist/modules/swap/executeSwapTransaction/index.d.ts.map +1 -0
- package/dist/modules/swap/getSwapQuote/getSwapQuote.d.ts +53 -0
- package/dist/modules/swap/getSwapQuote/getSwapQuote.d.ts.map +1 -0
- package/dist/modules/swap/getSwapQuote/index.d.ts +3 -0
- package/dist/modules/swap/getSwapQuote/index.d.ts.map +1 -0
- package/dist/modules/swap/getSwapStatus/getSwapStatus.d.ts +23 -0
- package/dist/modules/swap/getSwapStatus/getSwapStatus.d.ts.map +1 -0
- package/dist/modules/swap/getSwapStatus/index.d.ts +3 -0
- package/dist/modules/swap/getSwapStatus/index.d.ts.map +1 -0
- package/dist/modules/swap/swap.types.d.ts +14 -0
- package/dist/modules/swap/swap.types.d.ts.map +1 -0
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/waas.types.d.ts +4 -1
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/disconnectAndTerminateWalletProviders.d.ts +5 -2
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/disconnectAndTerminateWalletProviders.d.ts.map +1 -1
- package/dist/modules/wallets/walletProvider/index.d.ts +1 -1
- package/dist/modules/wallets/walletProvider/index.d.ts.map +1 -1
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts +17 -8
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
- package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs.js +4 -4
- package/dist/waas.esm.js +3 -3
- package/dist/waasCore.cjs.js +7 -6
- package/dist/waasCore.cjs.js.map +1 -1
- package/dist/waasCore.esm.js +6 -5
- package/dist/waasCore.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/getNetworkProviderFromNetworkId-6QbuR0_i.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-BXH2tfrn.cjs.js.map +0 -1
- package/dist/getSignedSessionId-KSSnmfwN.cjs.js.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as NONCE_POOL_SIZE, D as randomString, E as ValueMustBeDefinedError, F as getCore, I as name, L as version, M as setDefaultClient, O as CLIENT_SDK_NAME, P as BaseError, S as getElevatedAccessToken, T as assertDefined, _ as MfaRateLimitedError, a as DYNAMIC_ICONIC_SPRITE_URL, b as InvalidExternalAuthError, c as CHAINS_INFO_MAP, d as UnauthorizedError, g as SandboxMaximumThresholdReachedError, h as getNonce, j as getDefaultClient, l as fetchAndStoreNonces, o as SDK_API_CORE_VERSION, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as createApiClient, v as MfaInvalidOtpError, w as isCookieEnabled, x as APIError, y as LinkCredentialError } from "./InvalidParamError-
|
|
2
|
-
import { A as getBuffer, C as CannotTrackError, D as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as GENERATE_SESSION_KEYS_TRACKER_KEY, F as createLocalStorageAdapter, I as subscribeWithSelector, L as isEqualShallow, M as createStorageKeySchema, N as createStorage, O as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, T as FETCH_PROJECT_SETTINGS_TRACKER_KEY, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createLogger, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, j as generateSessionKeys, k as isServerSideRendering, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createRealtimeService, w as createDeferredPromise, x as createCrossTabBroadcast, y as createIndexedDBKeychainService } from "./getNetworkProviderFromNetworkId-
|
|
3
|
-
import { A as setCookie, C as normalizeAddress, D as offEvent, E as emitEvent, O as onEvent, S as formatWalletAccountId, a as parseElevatedAccessToken, d as checkAndRaiseWalletAccountsChangedEvent, f as emitWalletAccountsChangedEvent, i as upsertElevatedAccessToken, k as onceEvent, m as getWalletProviderFromWalletAccount, n as getWalletProviderByKey, o as restoreUserSharesForAllWalletAccounts, p as DYNAMIC_AUTH_COOKIE_NAME, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as getWalletProviders, v as NoWalletProviderFoundError, w as splitWalletProviderKey, y as getWalletAccounts } from "./getVerifiedCredentialForWalletAccount-
|
|
4
|
-
import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-
|
|
5
|
-
import { n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-
|
|
1
|
+
import { A as NONCE_POOL_SIZE, D as randomString, E as ValueMustBeDefinedError, F as getCore, I as name, L as version, M as setDefaultClient, O as CLIENT_SDK_NAME, P as BaseError, S as getElevatedAccessToken, T as assertDefined, _ as MfaRateLimitedError, a as DYNAMIC_ICONIC_SPRITE_URL, b as InvalidExternalAuthError, c as CHAINS_INFO_MAP, d as UnauthorizedError, g as SandboxMaximumThresholdReachedError, h as getNonce, j as getDefaultClient, l as fetchAndStoreNonces, o as SDK_API_CORE_VERSION, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as createApiClient, v as MfaInvalidOtpError, w as isCookieEnabled, x as APIError, y as LinkCredentialError } from "./InvalidParamError-CnPeSjBW.esm.js";
|
|
2
|
+
import { A as getBuffer, C as CannotTrackError, D as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as GENERATE_SESSION_KEYS_TRACKER_KEY, F as createLocalStorageAdapter, I as subscribeWithSelector, L as isEqualShallow, M as createStorageKeySchema, N as createStorage, O as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, T as FETCH_PROJECT_SETTINGS_TRACKER_KEY, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createLogger, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, j as generateSessionKeys, k as isServerSideRendering, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createRealtimeService, w as createDeferredPromise, x as createCrossTabBroadcast, y as createIndexedDBKeychainService } from "./getNetworkProviderFromNetworkId-VEDzpV8Z.esm.js";
|
|
3
|
+
import { A as setCookie, C as normalizeAddress, D as offEvent, E as emitEvent, O as onEvent, S as formatWalletAccountId, a as parseElevatedAccessToken, d as checkAndRaiseWalletAccountsChangedEvent, f as emitWalletAccountsChangedEvent, i as upsertElevatedAccessToken, k as onceEvent, m as getWalletProviderFromWalletAccount, n as getWalletProviderByKey, o as restoreUserSharesForAllWalletAccounts, p as DYNAMIC_AUTH_COOKIE_NAME, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as getWalletProviders, v as NoWalletProviderFoundError, w as splitWalletProviderKey, y as getWalletAccounts } from "./getVerifiedCredentialForWalletAccount-B58hODrW.esm.js";
|
|
4
|
+
import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-B5QkZWrs.esm.js";
|
|
5
|
+
import { n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-Dkj_caxl.esm.js";
|
|
6
6
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
7
7
|
import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, TokenScope, WaasBackupOptionsEnum, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
8
8
|
import * as z from "zod/mini";
|
|
@@ -173,11 +173,11 @@ const getAvailableWalletProvidersFromWalletAccounts = (client) => {
|
|
|
173
173
|
* Disconnect and terminate each wallet provider, if available.
|
|
174
174
|
* @not-instrumented
|
|
175
175
|
*/
|
|
176
|
-
const disconnectAndTerminateWalletProviders = async (client) => {
|
|
176
|
+
const disconnectAndTerminateWalletProviders = async ({ reason }, client) => {
|
|
177
177
|
const core = getCore(client);
|
|
178
178
|
const walletProviders = getAvailableWalletProvidersFromWalletAccounts(client);
|
|
179
179
|
await Promise.all(walletProviders.map(async (walletProvider) => {
|
|
180
|
-
if (walletProvider.terminate) await walletProvider.terminate();
|
|
180
|
+
if (walletProvider.terminate) await walletProvider.terminate({ reason });
|
|
181
181
|
if (walletProvider.disconnect) try {
|
|
182
182
|
await walletProvider.disconnect();
|
|
183
183
|
} catch (err) {
|
|
@@ -187,18 +187,17 @@ const disconnectAndTerminateWalletProviders = async (client) => {
|
|
|
187
187
|
};
|
|
188
188
|
|
|
189
189
|
//#endregion
|
|
190
|
-
//#region src/modules/auth/
|
|
190
|
+
//#region src/modules/auth/performLogout/performLogout.ts
|
|
191
191
|
/**
|
|
192
|
-
*
|
|
192
|
+
* Shared logout implementation that revokes the session, clears auth state,
|
|
193
|
+
* terminates wallet providers, and emits the logout event with the given reason.
|
|
193
194
|
*
|
|
194
|
-
* @
|
|
195
|
-
* @returns A promise that resolves when the logout process is complete.
|
|
196
|
-
* @instrumented
|
|
195
|
+
* @not-instrumented
|
|
197
196
|
*/
|
|
198
|
-
const
|
|
197
|
+
const performLogout = async ({ reason }, client) => {
|
|
199
198
|
const core = getCore(client);
|
|
200
199
|
core.logger.debug("[logout] Logging out...");
|
|
201
|
-
await disconnectAndTerminateWalletProviders(client);
|
|
200
|
+
await disconnectAndTerminateWalletProviders({ reason }, client);
|
|
202
201
|
if (client.user !== null) {
|
|
203
202
|
const apiClient = createApiClient({}, client);
|
|
204
203
|
try {
|
|
@@ -224,11 +223,28 @@ const logout = async (client = getDefaultClient()) => {
|
|
|
224
223
|
unverifiedWalletAccounts: [],
|
|
225
224
|
user: null
|
|
226
225
|
});
|
|
227
|
-
emitEvent({
|
|
226
|
+
emitEvent({
|
|
227
|
+
args: { reason },
|
|
228
|
+
event: "logout"
|
|
229
|
+
}, client);
|
|
228
230
|
fetchProjectSettings(client);
|
|
229
231
|
generateSessionKeys(client);
|
|
230
232
|
};
|
|
231
233
|
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/modules/auth/handleSessionExpiration/handleSessionExpiration.ts
|
|
236
|
+
/**
|
|
237
|
+
* Logs out due to session expiry with a token-expired reason,
|
|
238
|
+
* allowing downstream providers to decide their own cleanup behavior.
|
|
239
|
+
*
|
|
240
|
+
* @param client - The Dynamic client instance.
|
|
241
|
+
* @returns A promise that resolves when the logout process is complete.
|
|
242
|
+
* @instrumented
|
|
243
|
+
*/
|
|
244
|
+
const handleSessionExpiration = async (client) => {
|
|
245
|
+
return performLogout({ reason: "token-expired" }, client);
|
|
246
|
+
};
|
|
247
|
+
|
|
232
248
|
//#endregion
|
|
233
249
|
//#region src/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.ts
|
|
234
250
|
/**
|
|
@@ -269,7 +285,7 @@ const initializeAuth = (client) => {
|
|
|
269
285
|
const now = /* @__PURE__ */ new Date();
|
|
270
286
|
const timeUntilExpiration = expiration.getTime() - now.getTime();
|
|
271
287
|
if (timeUntilExpiration <= 0) {
|
|
272
|
-
|
|
288
|
+
handleSessionExpiration(client);
|
|
273
289
|
return;
|
|
274
290
|
}
|
|
275
291
|
clearExpirationTimeout = setLongTimeout(checkExpiration, timeUntilExpiration);
|
|
@@ -278,6 +294,19 @@ const initializeAuth = (client) => {
|
|
|
278
294
|
checkExpiration();
|
|
279
295
|
};
|
|
280
296
|
|
|
297
|
+
//#endregion
|
|
298
|
+
//#region src/modules/auth/logout/logout.ts
|
|
299
|
+
/**
|
|
300
|
+
* Logs out the current user and clears all authentication data.
|
|
301
|
+
*
|
|
302
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
303
|
+
* @returns A promise that resolves when the logout process is complete.
|
|
304
|
+
* @instrumented
|
|
305
|
+
*/
|
|
306
|
+
const logout = async (client = getDefaultClient()) => {
|
|
307
|
+
return performLogout({ reason: "user-intent" }, client);
|
|
308
|
+
};
|
|
309
|
+
|
|
281
310
|
//#endregion
|
|
282
311
|
//#region src/modules/crossTabEventSync/setupCrossTabEventSync/setupCrossTabEventSync.ts
|
|
283
312
|
/**
|
|
@@ -1557,6 +1586,65 @@ var WalletProviderMethodUnavailableError = class extends BaseError {
|
|
|
1557
1586
|
}
|
|
1558
1587
|
};
|
|
1559
1588
|
|
|
1589
|
+
//#endregion
|
|
1590
|
+
//#region src/modules/auth/checkStepUpAuth/checkStepUpAuth.ts
|
|
1591
|
+
const STEP_UP_REQUIRED_DEFAULT = {
|
|
1592
|
+
credentials: [],
|
|
1593
|
+
isRequired: true
|
|
1594
|
+
};
|
|
1595
|
+
/**
|
|
1596
|
+
* Checks whether step-up authentication is required for a given scope
|
|
1597
|
+
* and returns the available credentials to satisfy it.
|
|
1598
|
+
*
|
|
1599
|
+
* First performs a fast local check — if a valid elevated access token already
|
|
1600
|
+
* exists for the scope, returns `{ isRequired: false }` immediately without
|
|
1601
|
+
* an API call.
|
|
1602
|
+
*
|
|
1603
|
+
* Otherwise, calls the backend `stepUp/check` endpoint which evaluates
|
|
1604
|
+
* feature flags, SDK version, MFA settings, and action-based requirements
|
|
1605
|
+
* to determine if step-up is needed. The response includes the available
|
|
1606
|
+
* credentials and a recommended default credential.
|
|
1607
|
+
*
|
|
1608
|
+
* If the request fails for any reason, defaults to `{ isRequired: true }`
|
|
1609
|
+
* as a safety measure.
|
|
1610
|
+
*
|
|
1611
|
+
* @param params.scope - The scope to check (e.g., 'wallet:export').
|
|
1612
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1613
|
+
* @returns The step-up check result with `isRequired`, `credentials`, and `defaultCredentialId`.
|
|
1614
|
+
*
|
|
1615
|
+
* @example
|
|
1616
|
+
* ```typescript
|
|
1617
|
+
* const result = await checkStepUpAuth({ scope: TokenScope.Walletexport });
|
|
1618
|
+
* if (result.isRequired) {
|
|
1619
|
+
* // Show step-up auth UI using result.credentials
|
|
1620
|
+
* }
|
|
1621
|
+
* ```
|
|
1622
|
+
* @instrumented
|
|
1623
|
+
*/
|
|
1624
|
+
const checkStepUpAuth = async ({ scope }, client = getDefaultClient()) => {
|
|
1625
|
+
if (getElevatedAccessToken({
|
|
1626
|
+
consume: false,
|
|
1627
|
+
scope
|
|
1628
|
+
}, client)) return {
|
|
1629
|
+
credentials: [],
|
|
1630
|
+
isRequired: false
|
|
1631
|
+
};
|
|
1632
|
+
try {
|
|
1633
|
+
const core = getCore(client);
|
|
1634
|
+
const response = await createApiClient({}, client).stepUpCheck({
|
|
1635
|
+
environmentId: core.environmentId,
|
|
1636
|
+
stepUpCheckRequest: { scope }
|
|
1637
|
+
});
|
|
1638
|
+
return {
|
|
1639
|
+
credentials: response.credentials ?? [],
|
|
1640
|
+
defaultCredentialId: response.defaultCredentialId,
|
|
1641
|
+
isRequired: response.isRequired
|
|
1642
|
+
};
|
|
1643
|
+
} catch {
|
|
1644
|
+
return STEP_UP_REQUIRED_DEFAULT;
|
|
1645
|
+
}
|
|
1646
|
+
};
|
|
1647
|
+
|
|
1560
1648
|
//#endregion
|
|
1561
1649
|
//#region src/modules/auth/externalAuth/requestExternalAuthElevatedToken/requestExternalAuthElevatedToken.ts
|
|
1562
1650
|
/**
|
|
@@ -1957,13 +2045,14 @@ const authenticateWithSocial = async ({ provider, redirectUrl }, client = getDef
|
|
|
1957
2045
|
* and completes the user authentication with the social provider.
|
|
1958
2046
|
*
|
|
1959
2047
|
* @param params.url - The callback URL containing OAuth response parameters.
|
|
2048
|
+
* @param [params.requestedScopes] - Optional scopes to request an elevated access token when verifying (linking) a social account.
|
|
1960
2049
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1961
2050
|
* @returns A promise that resolves to the authenticated user or null.
|
|
1962
2051
|
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1963
2052
|
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
1964
2053
|
* @instrumented
|
|
1965
2054
|
*/
|
|
1966
|
-
const completeSocialAuthentication = async ({ url }, client = getDefaultClient()) => {
|
|
2055
|
+
const completeSocialAuthentication = async ({ url, requestedScopes }, client = getDefaultClient()) => {
|
|
1967
2056
|
const core = getCore(client);
|
|
1968
2057
|
const apiClient = createApiClient({}, client);
|
|
1969
2058
|
await core.initTrack.waitForAll();
|
|
@@ -1982,6 +2071,7 @@ const completeSocialAuthentication = async ({ url }, client = getDefaultClient()
|
|
|
1982
2071
|
oauthRequest: {
|
|
1983
2072
|
code: dynamicOauthCode,
|
|
1984
2073
|
codeVerifier,
|
|
2074
|
+
requestedScopes,
|
|
1985
2075
|
state: dynamicOauthState
|
|
1986
2076
|
},
|
|
1987
2077
|
providerType: provider
|
|
@@ -2335,6 +2425,43 @@ function assertWalletProviderMethodDefined(walletProvider, methodName) {
|
|
|
2335
2425
|
});
|
|
2336
2426
|
}
|
|
2337
2427
|
|
|
2428
|
+
//#endregion
|
|
2429
|
+
//#region src/modules/swap/constants.ts
|
|
2430
|
+
const SWAP_SUPPORTED_CHAINS = [
|
|
2431
|
+
"BTC",
|
|
2432
|
+
"EVM",
|
|
2433
|
+
"SOL",
|
|
2434
|
+
"SUI",
|
|
2435
|
+
"TRON"
|
|
2436
|
+
];
|
|
2437
|
+
|
|
2438
|
+
//#endregion
|
|
2439
|
+
//#region src/modules/swap/executeSwapTransaction/executeSwapTransaction.ts
|
|
2440
|
+
/**
|
|
2441
|
+
* Executes a swap transaction
|
|
2442
|
+
*
|
|
2443
|
+
* @param params ExecuteSwapTransactionParams - The parameters for the swap transaction.
|
|
2444
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2445
|
+
* @returns The transaction hash.
|
|
2446
|
+
* @instrumented
|
|
2447
|
+
*/
|
|
2448
|
+
const executeSwapTransaction = async ({ walletAccount, signingPayload, onStepChange }, client = getDefaultClient()) => {
|
|
2449
|
+
if (!SWAP_SUPPORTED_CHAINS.includes(walletAccount.chain)) throw new InvalidParamError(`Chain ${walletAccount.chain} is not supported for swap transactions`);
|
|
2450
|
+
const walletProvider = getWalletProviderFromWalletAccount({ walletAccount }, client);
|
|
2451
|
+
assertWalletProviderMethodDefined(walletProvider, "executeSwapTransaction");
|
|
2452
|
+
const requiredNetworkId = signingPayload.chainId;
|
|
2453
|
+
if (requiredNetworkId && walletProvider.switchActiveNetwork) {
|
|
2454
|
+
const { networkId: activeNetworkId } = await walletProvider.getActiveNetworkId();
|
|
2455
|
+
if (activeNetworkId !== requiredNetworkId) await walletProvider.switchActiveNetwork({ networkId: requiredNetworkId });
|
|
2456
|
+
}
|
|
2457
|
+
const { transactionHash } = await walletProvider.executeSwapTransaction({
|
|
2458
|
+
onStepChange,
|
|
2459
|
+
signingPayload,
|
|
2460
|
+
walletAccount
|
|
2461
|
+
});
|
|
2462
|
+
return { transactionHash };
|
|
2463
|
+
};
|
|
2464
|
+
|
|
2338
2465
|
//#endregion
|
|
2339
2466
|
//#region src/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.ts
|
|
2340
2467
|
/**
|
|
@@ -2343,7 +2470,7 @@ function assertWalletProviderMethodDefined(walletProvider, methodName) {
|
|
|
2343
2470
|
* Orchestrates the full submission flow:
|
|
2344
2471
|
* 1. Calls prepareCheckoutTransaction to advance to signing state and lock the quote
|
|
2345
2472
|
* 2. Ensures the wallet is on the correct network for the transaction
|
|
2346
|
-
* 3. Delegates on-chain signing to the wallet provider's
|
|
2473
|
+
* 3. Delegates on-chain signing to the wallet provider's executeSwapTransaction method
|
|
2347
2474
|
* 4. Calls broadcastCheckoutTransaction with the resulting txHash
|
|
2348
2475
|
*
|
|
2349
2476
|
* @param params SubmitCheckoutTransactionParams - The transaction ID, wallet account, and optional step callback.
|
|
@@ -2354,14 +2481,7 @@ function assertWalletProviderMethodDefined(walletProvider, methodName) {
|
|
|
2354
2481
|
const submitCheckoutTransaction = async ({ onStepChange, transactionId, walletAccount }, client = getDefaultClient()) => {
|
|
2355
2482
|
const prepared = await prepareCheckoutTransaction({ transactionId }, client);
|
|
2356
2483
|
assertDefined(prepared.signingPayload, "No signing payload returned from prepare — quote may be missing transaction data");
|
|
2357
|
-
const
|
|
2358
|
-
assertWalletProviderMethodDefined(walletProvider, "executeCheckoutTransaction");
|
|
2359
|
-
const requiredNetworkId = prepared.signingPayload.chainId;
|
|
2360
|
-
if (requiredNetworkId && walletProvider.switchActiveNetwork) {
|
|
2361
|
-
const { networkId: activeNetworkId } = await walletProvider.getActiveNetworkId();
|
|
2362
|
-
if (activeNetworkId !== requiredNetworkId) await walletProvider.switchActiveNetwork({ networkId: requiredNetworkId });
|
|
2363
|
-
}
|
|
2364
|
-
const { transactionHash } = await walletProvider.executeCheckoutTransaction({
|
|
2484
|
+
const { transactionHash } = await executeSwapTransaction({
|
|
2365
2485
|
onStepChange,
|
|
2366
2486
|
signingPayload: prepared.signingPayload,
|
|
2367
2487
|
walletAccount
|
|
@@ -2725,30 +2845,30 @@ const getKrakenWhitelistedAddresses = async (client = getDefaultClient()) => {
|
|
|
2725
2845
|
};
|
|
2726
2846
|
|
|
2727
2847
|
//#endregion
|
|
2728
|
-
//#region src/modules/
|
|
2848
|
+
//#region src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.ts
|
|
2729
2849
|
/**
|
|
2730
|
-
*
|
|
2850
|
+
* Allows waiting until all modules of the client have been properly initialized
|
|
2851
|
+
* and are ready for use.
|
|
2731
2852
|
*
|
|
2732
|
-
*
|
|
2733
|
-
* instrumented function call. When disabled, instrumented functions run
|
|
2734
|
-
* normally but emit no telemetry.
|
|
2853
|
+
* @returns a promise that resolves once the client is fully initialized.
|
|
2735
2854
|
* @instrumented
|
|
2736
2855
|
*/
|
|
2737
|
-
const
|
|
2738
|
-
getCore(client).
|
|
2856
|
+
const waitForClientInitialized = async (client = getDefaultClient()) => {
|
|
2857
|
+
await getCore(client).initTrack.waitForAll();
|
|
2739
2858
|
};
|
|
2740
2859
|
|
|
2741
2860
|
//#endregion
|
|
2742
|
-
//#region src/modules/
|
|
2861
|
+
//#region src/modules/instrumentation/setInstrumentationEnabled/setInstrumentationEnabled.ts
|
|
2743
2862
|
/**
|
|
2744
|
-
*
|
|
2745
|
-
* and are ready for use.
|
|
2863
|
+
* Enables or disables event collection for the client's instrumentation service.
|
|
2746
2864
|
*
|
|
2747
|
-
*
|
|
2865
|
+
* When enabled, events are forwarded to the configured transport on every
|
|
2866
|
+
* instrumented function call. When disabled, instrumented functions run
|
|
2867
|
+
* normally but emit no telemetry.
|
|
2748
2868
|
* @instrumented
|
|
2749
2869
|
*/
|
|
2750
|
-
const
|
|
2751
|
-
|
|
2870
|
+
const setInstrumentationEnabled = (enabled, client = getDefaultClient()) => {
|
|
2871
|
+
getCore(client).instrumentation.setEnabled(enabled);
|
|
2752
2872
|
};
|
|
2753
2873
|
|
|
2754
2874
|
//#endregion
|
|
@@ -4619,6 +4739,78 @@ const verifyOTP = async ({ otpVerification, verificationToken, requestedScopes }
|
|
|
4619
4739
|
return response;
|
|
4620
4740
|
};
|
|
4621
4741
|
|
|
4742
|
+
//#endregion
|
|
4743
|
+
//#region src/modules/swap/getSwapQuote/getSwapQuote.ts
|
|
4744
|
+
/**
|
|
4745
|
+
* Gets a swap quote
|
|
4746
|
+
*
|
|
4747
|
+
* @param params GetSwapQuoteParams - The parameters for the swap quote.
|
|
4748
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4749
|
+
* @returns The swap quote details. Use the `signingPayload` field to get the transaction data for the wallet to sign.
|
|
4750
|
+
* @instrumented
|
|
4751
|
+
*/
|
|
4752
|
+
const getSwapQuote = async (params, client = getDefaultClient()) => {
|
|
4753
|
+
const core = getCore(client);
|
|
4754
|
+
const apiClient = createApiClient({}, client);
|
|
4755
|
+
if (!params.from.amount && !params.to.amount) throw new InvalidParamError("Either from.amount or to.amount is required");
|
|
4756
|
+
if (params.from.amount && params.to.amount) throw new InvalidParamError("Only one of from.amount or to.amount is allowed");
|
|
4757
|
+
return await apiClient.swapQuote({
|
|
4758
|
+
environmentId: core.environmentId,
|
|
4759
|
+
swapQuoteRequest: {
|
|
4760
|
+
from: {
|
|
4761
|
+
...params.from,
|
|
4762
|
+
chainId: params.from.networkId,
|
|
4763
|
+
chainName: params.from.chain
|
|
4764
|
+
},
|
|
4765
|
+
maxPriceImpact: params.maxPriceImpact,
|
|
4766
|
+
order: params.order,
|
|
4767
|
+
slippage: params.slippage,
|
|
4768
|
+
to: {
|
|
4769
|
+
...params.to,
|
|
4770
|
+
chainId: params.to.networkId,
|
|
4771
|
+
chainName: params.to.chain
|
|
4772
|
+
}
|
|
4773
|
+
}
|
|
4774
|
+
});
|
|
4775
|
+
};
|
|
4776
|
+
|
|
4777
|
+
//#endregion
|
|
4778
|
+
//#region src/modules/swap/getSwapStatus/getSwapStatus.ts
|
|
4779
|
+
/**
|
|
4780
|
+
* Gets the status of a swap
|
|
4781
|
+
*
|
|
4782
|
+
* @param params GetSwapStatusParams - The parameters for the swap status.
|
|
4783
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4784
|
+
* @returns The swap status.
|
|
4785
|
+
* @instrumented
|
|
4786
|
+
*/
|
|
4787
|
+
const getSwapStatus = async (params, client = getDefaultClient()) => {
|
|
4788
|
+
const core = getCore(client);
|
|
4789
|
+
const apiClient = createApiClient({}, client);
|
|
4790
|
+
let from;
|
|
4791
|
+
if (params.from) from = {
|
|
4792
|
+
chainId: params.from.networkId,
|
|
4793
|
+
chainName: params.from.chain
|
|
4794
|
+
};
|
|
4795
|
+
let to;
|
|
4796
|
+
if (params.to) to = {
|
|
4797
|
+
chainId: params.to.networkId,
|
|
4798
|
+
chainName: params.to.chain
|
|
4799
|
+
};
|
|
4800
|
+
const response = await apiClient.swapStatus({
|
|
4801
|
+
environmentId: core.environmentId,
|
|
4802
|
+
swapStatusRequest: {
|
|
4803
|
+
from,
|
|
4804
|
+
to,
|
|
4805
|
+
txHash: params.txHash
|
|
4806
|
+
}
|
|
4807
|
+
});
|
|
4808
|
+
return {
|
|
4809
|
+
status: response.status,
|
|
4810
|
+
substatus: response.substatus
|
|
4811
|
+
};
|
|
4812
|
+
};
|
|
4813
|
+
|
|
4622
4814
|
//#endregion
|
|
4623
4815
|
//#region src/modules/user/deleteUser/deleteUser.ts
|
|
4624
4816
|
/**
|
|
@@ -5568,5 +5760,5 @@ const parseUserAgent = ({ userAgent }) => {
|
|
|
5568
5760
|
assertPackageVersion(name, version);
|
|
5569
5761
|
|
|
5570
5762
|
//#endregion
|
|
5571
|
-
export { BaseError, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, FeeEstimationFailedError, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, SimulationFailedError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, attachCheckoutTransactionSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, broadcastCheckoutTransaction, canConnectWithHardwareWallet, cancelCheckoutTransaction, completeDeviceRegistration, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCheckoutTransaction, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getBalances, getCheckoutTransaction, getCheckoutTransactionQuote, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, getElevatedAccessToken, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getRegisteredDevices, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isDeeplinkWalletProvider, isDeviceRegistrationRequired, isHardwareWalletAccount, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, parseUserAgent, prepareCheckoutTransaction, proveWalletAccountOwnership, refreshAuth, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, setInstrumentationEnabled, signInWithExternalJwt, signInWithPasskey, signMessage, submitCheckoutTransaction, supportedCountries, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
|
|
5763
|
+
export { BaseError, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, FeeEstimationFailedError, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, SimulationFailedError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, attachCheckoutTransactionSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, broadcastCheckoutTransaction, canConnectWithHardwareWallet, cancelCheckoutTransaction, checkStepUpAuth, completeDeviceRegistration, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCheckoutTransaction, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, executeSwapTransaction, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getBalances, getCheckoutTransaction, getCheckoutTransactionQuote, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, getElevatedAccessToken, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getRegisteredDevices, getSwapQuote, getSwapStatus, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isDeeplinkWalletProvider, isDeviceRegistrationRequired, isHardwareWalletAccount, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, parseUserAgent, prepareCheckoutTransaction, proveWalletAccountOwnership, refreshAuth, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, requestExternalAuthElevatedToken, revokeAllRegisteredDevices, revokeRegisteredDevice, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, setInstrumentationEnabled, signInWithExternalJwt, signInWithPasskey, signMessage, submitCheckoutTransaction, supportedCountries, switchActiveNetwork, transferAmount, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
|
|
5572
5764
|
//# sourceMappingURL=index.esm.js.map
|