@dynamic-labs-sdk/client 0.14.0 → 0.15.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-DQn49mNB.esm.js → InvalidParamError-Dyk0GfyN.esm.js} +257 -6
- package/dist/InvalidParamError-Dyk0GfyN.esm.js.map +1 -0
- package/dist/{InvalidParamError-DVzrk97b.cjs.js → InvalidParamError-DzSZbHE5.cjs.js} +343 -5
- package/dist/InvalidParamError-DzSZbHE5.cjs.js.map +1 -0
- package/dist/{NotWaasWalletAccountError-IxbdRVGy.cjs.js → NotWaasWalletAccountError-DFTloI8C.cjs.js} +3 -3
- package/dist/{NotWaasWalletAccountError-IxbdRVGy.cjs.js.map → NotWaasWalletAccountError-DFTloI8C.cjs.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-D0BXVuKy.esm.js → NotWaasWalletAccountError-kNpOqccC.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-D0BXVuKy.esm.js.map → NotWaasWalletAccountError-kNpOqccC.esm.js.map} +1 -1
- package/dist/client/core/createCore/getInitialState.d.ts.map +1 -1
- package/dist/core.cjs.js +33 -65
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.esm.js +24 -60
- package/dist/core.esm.js.map +1 -1
- package/dist/errors/DeeplinkConnectAndVerifyUnsupportedError.d.ts +9 -0
- package/dist/errors/DeeplinkConnectAndVerifyUnsupportedError.d.ts.map +1 -0
- package/dist/errors/UnauthorizedError.d.ts +5 -0
- package/dist/errors/UnauthorizedError.d.ts.map +1 -0
- package/dist/exports/core.d.ts +9 -1
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/index.d.ts +13 -2
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-z8WEapnj.cjs.js → getNetworkProviderFromNetworkId-BD1iGcEg.cjs.js} +66 -148
- package/dist/getNetworkProviderFromNetworkId-BD1iGcEg.cjs.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-DMMnYrfG.esm.js → getNetworkProviderFromNetworkId-ySZUpmOr.esm.js} +59 -96
- package/dist/getNetworkProviderFromNetworkId-ySZUpmOr.esm.js.map +1 -0
- package/dist/{getSignedSessionId-BKKO2mqj.esm.js → getSignedSessionId-BxhxGkA4.esm.js} +4 -17
- package/dist/getSignedSessionId-BxhxGkA4.esm.js.map +1 -0
- package/dist/{getSignedSessionId-BdGOv_TA.cjs.js → getSignedSessionId-s45HpP3W.cjs.js} +5 -24
- package/dist/getSignedSessionId-s45HpP3W.cjs.js.map +1 -0
- package/dist/{getVerifiedCredentialForWalletAccount-Ck7DNGPJ.cjs.js → getVerifiedCredentialForWalletAccount-BxrgouFz.cjs.js} +2 -3
- package/dist/{getVerifiedCredentialForWalletAccount-Ck7DNGPJ.cjs.js.map → getVerifiedCredentialForWalletAccount-BxrgouFz.cjs.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-DQ7g6O7y.esm.js → getVerifiedCredentialForWalletAccount-Ch8h_J_W.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-DQ7g6O7y.esm.js.map → getVerifiedCredentialForWalletAccount-Ch8h_J_W.esm.js.map} +1 -1
- package/dist/index.cjs.js +291 -79
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +273 -70
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-MvVGc7k3.esm.js → isMfaRequiredForAction-D1sFhYH1.esm.js} +3 -10
- package/dist/isMfaRequiredForAction-D1sFhYH1.esm.js.map +1 -0
- package/dist/{isMfaRequiredForAction-BINs954q.cjs.js → isMfaRequiredForAction-DaJSsq8Z.cjs.js} +2 -15
- package/dist/isMfaRequiredForAction-DaJSsq8Z.cjs.js.map +1 -0
- package/dist/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts +4 -0
- package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts.map +1 -0
- package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/index.d.ts +2 -0
- package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/index.d.ts.map +1 -0
- package/dist/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.d.ts +3 -0
- package/dist/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.d.ts.map +1 -0
- package/dist/modules/checkout/submitCheckoutTransaction/index.d.ts +3 -0
- package/dist/modules/checkout/submitCheckoutTransaction/index.d.ts.map +1 -0
- package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts +22 -0
- package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.d.ts.map +1 -1
- package/dist/modules/deviceRegistration/getDeviceSigner/{getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.d.ts → getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.d.ts} +2 -2
- package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts +3 -0
- package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts +3 -0
- package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getRegisteredDevices/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/getRegisteredDevices/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/revokeAllRegisteredDevices.d.ts +2 -0
- package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/revokeAllRegisteredDevices.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/revokeRegisteredDevice/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/revokeRegisteredDevice/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/revokeRegisteredDevice/revokeRegisteredDevice.d.ts +6 -0
- package/dist/modules/deviceRegistration/revokeRegisteredDevice/revokeRegisteredDevice.d.ts.map +1 -0
- package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts +10 -0
- package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts.map +1 -1
- package/dist/modules/wallets/transferAmount/index.d.ts +2 -0
- package/dist/modules/wallets/transferAmount/index.d.ts.map +1 -0
- package/dist/modules/wallets/transferAmount/transferAmount.d.ts +19 -0
- package/dist/modules/wallets/transferAmount/transferAmount.d.ts.map +1 -0
- 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/isDeeplinkWalletProvider/index.d.ts +2 -0
- package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/index.d.ts.map +1 -0
- package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/isDeeplinkWalletProvider.d.ts +10 -0
- package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/isDeeplinkWalletProvider.d.ts.map +1 -0
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts +17 -0
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
- package/dist/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts +11 -1
- package/dist/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/getDeviceNameFromUserAgent/getDeviceNameFromUserAgent.d.ts +6 -0
- package/dist/utils/getDeviceNameFromUserAgent/getDeviceNameFromUserAgent.d.ts.map +1 -0
- package/dist/utils/getDeviceNameFromUserAgent/index.d.ts +2 -0
- package/dist/utils/getDeviceNameFromUserAgent/index.d.ts.map +1 -0
- package/dist/utils/getNonce/constants.d.ts +2 -0
- package/dist/utils/getNonce/constants.d.ts.map +1 -0
- package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts +13 -0
- package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts.map +1 -0
- package/dist/utils/getNonce/fetchAndStoreNonces/index.d.ts +2 -0
- package/dist/utils/getNonce/fetchAndStoreNonces/index.d.ts.map +1 -0
- package/dist/utils/getNonce/getNonce.d.ts +7 -0
- package/dist/utils/getNonce/getNonce.d.ts.map +1 -1
- package/dist/utils/getNonce/state.d.ts +11 -0
- package/dist/utils/getNonce/state.d.ts.map +1 -0
- package/dist/utils/parseAmountToSmallestUnit/index.d.ts +2 -0
- package/dist/utils/parseAmountToSmallestUnit/index.d.ts.map +1 -0
- package/dist/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.d.ts +22 -0
- package/dist/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.d.ts.map +1 -0
- package/dist/waas.cjs.js +3 -4
- package/dist/waas.cjs.js.map +1 -1
- package/dist/waas.esm.js +3 -3
- package/dist/waasCore.cjs.js +3 -4
- package/dist/waasCore.cjs.js.map +1 -1
- package/dist/waasCore.esm.js +3 -3
- package/package.json +3 -3
- package/dist/InvalidParamError-DQn49mNB.esm.js.map +0 -1
- package/dist/InvalidParamError-DVzrk97b.cjs.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-DMMnYrfG.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-z8WEapnj.cjs.js.map +0 -1
- package/dist/getSignedSessionId-BKKO2mqj.esm.js.map +0 -1
- package/dist/getSignedSessionId-BdGOv_TA.cjs.js.map +0 -1
- package/dist/isMfaRequiredForAction-BINs954q.cjs.js.map +0 -1
- package/dist/isMfaRequiredForAction-MvVGc7k3.esm.js.map +0 -1
- package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.d.ts.map +0 -1
package/dist/core.cjs.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-
|
|
4
|
-
require('./isMfaRequiredForAction-
|
|
5
|
-
const require_getSignedSessionId = require('./getSignedSessionId-
|
|
1
|
+
const require_InvalidParamError = require('./InvalidParamError-DzSZbHE5.cjs.js');
|
|
2
|
+
const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-BD1iGcEg.cjs.js');
|
|
3
|
+
const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-BxrgouFz.cjs.js');
|
|
4
|
+
require('./isMfaRequiredForAction-DaJSsq8Z.cjs.js');
|
|
5
|
+
const require_getSignedSessionId = require('./getSignedSessionId-s45HpP3W.cjs.js');
|
|
6
6
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
7
7
|
let zod_mini = require("zod/mini");
|
|
8
|
-
zod_mini =
|
|
8
|
+
zod_mini = require_InvalidParamError.__toESM(zod_mini);
|
|
9
9
|
let eventemitter3 = require("eventemitter3");
|
|
10
|
-
eventemitter3 =
|
|
10
|
+
eventemitter3 = require_InvalidParamError.__toESM(eventemitter3);
|
|
11
11
|
|
|
12
12
|
//#region src/errors/ClientsDoNotMatchError.ts
|
|
13
13
|
var ClientsDoNotMatchError = class extends require_InvalidParamError.BaseError {
|
|
@@ -98,7 +98,7 @@ const getNetworkDataForNetworkId = ({ networkId, chain }, client) => {
|
|
|
98
98
|
|
|
99
99
|
//#endregion
|
|
100
100
|
//#region src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.ts
|
|
101
|
-
const networkRegistryStorageKeySchema =
|
|
101
|
+
const networkRegistryStorageKeySchema = require_InvalidParamError.createStorageKeySchema({
|
|
102
102
|
key: "lastKnownNetworkRegistry",
|
|
103
103
|
schema: zod_mini.record(zod_mini.string(), zod_mini.string())
|
|
104
104
|
});
|
|
@@ -273,62 +273,26 @@ const bufferToBase64 = (buf) => {
|
|
|
273
273
|
const filterDuplicates = (array) => Array.from(new Set(array));
|
|
274
274
|
|
|
275
275
|
//#endregion
|
|
276
|
-
//#region src/
|
|
277
|
-
const deviceSigningKeysSchema = zod_mini.object({
|
|
278
|
-
privateJwk: zod_mini.custom(),
|
|
279
|
-
privateKey: zod_mini.string(),
|
|
280
|
-
publicKey: zod_mini.string()
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
//#endregion
|
|
284
|
-
//#region src/modules/deviceRegistration/getDeviceSigner/getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.ts
|
|
276
|
+
//#region src/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.ts
|
|
285
277
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
278
|
+
* Converts a human-readable decimal amount string to the smallest unit
|
|
279
|
+
* representation as a bigint, using string-based arithmetic to avoid
|
|
280
|
+
* floating-point precision loss.
|
|
281
|
+
*
|
|
282
|
+
* @example
|
|
283
|
+
* parseAmountToSmallestUnit({ amount: '1.5', decimals: 9 }) // 1500000000n (1.5 SOL in lamports)
|
|
284
|
+
* parseAmountToSmallestUnit({ amount: '1.5', decimals: 8 }) // 150000000n (1.5 BTC in satoshis)
|
|
285
|
+
* parseAmountToSmallestUnit({ amount: '10.5', decimals: 6 }) // 10500000n (10.5 USDC)
|
|
286
|
+
* parseAmountToSmallestUnit({ amount: '0.1', decimals: 9 }) // 100000000n (no float error)
|
|
287
|
+
*
|
|
288
|
+
* @param params.amount - The amount as a decimal string (e.g. "1.5").
|
|
289
|
+
* @param params.decimals - The number of decimal places for the token.
|
|
290
|
+
* @returns The amount in smallest units as a bigint.
|
|
288
291
|
*/
|
|
289
|
-
const
|
|
290
|
-
const
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
const userDeviceSigningKeysStorageKeySchema = require_getNetworkProviderFromNetworkId.createStorageKeySchema({
|
|
294
|
-
key: `user_device_signing_keys_${user.id}`,
|
|
295
|
-
schema: deviceSigningKeysSchema
|
|
296
|
-
});
|
|
297
|
-
const deviceSigningKeys = await storage.getItem(userDeviceSigningKeysStorageKeySchema);
|
|
298
|
-
if (deviceSigningKeys) return deviceSigningKeys;
|
|
299
|
-
const { public: publicKey, private: privateKey, privateJwk } = await require_getNetworkProviderFromNetworkId.p256Keygen();
|
|
300
|
-
await storage.setItem(userDeviceSigningKeysStorageKeySchema, {
|
|
301
|
-
privateJwk,
|
|
302
|
-
privateKey,
|
|
303
|
-
publicKey
|
|
304
|
-
});
|
|
305
|
-
return {
|
|
306
|
-
privateJwk,
|
|
307
|
-
privateKey,
|
|
308
|
-
publicKey
|
|
309
|
-
};
|
|
310
|
-
};
|
|
311
|
-
|
|
312
|
-
//#endregion
|
|
313
|
-
//#region src/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.ts
|
|
314
|
-
const getDeviceSigner = async (client) => {
|
|
315
|
-
const { deviceSigner } = require_InvalidParamError.getCore(client);
|
|
316
|
-
/**
|
|
317
|
-
* If the device signer is available, it should handle the device signing
|
|
318
|
-
* This is used for mobile devices with secure enclave.
|
|
319
|
-
*/
|
|
320
|
-
if (deviceSigner) return deviceSigner;
|
|
321
|
-
/**
|
|
322
|
-
* For web devices we want to auto create one PK per user id.
|
|
323
|
-
*/
|
|
324
|
-
const userDeviceSigningKeys = await getOrCreateUserDeviceSigningKeys(client);
|
|
325
|
-
return {
|
|
326
|
-
getPublicKey: async () => userDeviceSigningKeys.publicKey,
|
|
327
|
-
sign: (payload) => require_getSignedSessionId.p256Sign({
|
|
328
|
-
message: payload,
|
|
329
|
-
privateKeyJwk: userDeviceSigningKeys.privateJwk
|
|
330
|
-
})
|
|
331
|
-
};
|
|
292
|
+
const parseAmountToSmallestUnit = ({ amount, decimals }) => {
|
|
293
|
+
const [whole = "0", fraction = ""] = amount.split(".");
|
|
294
|
+
const paddedFraction = fraction.padEnd(decimals, "0").slice(0, decimals);
|
|
295
|
+
return BigInt(whole + paddedFraction);
|
|
332
296
|
};
|
|
333
297
|
|
|
334
298
|
//#endregion
|
|
@@ -359,12 +323,13 @@ exports.createApiClient = require_InvalidParamError.createApiClient;
|
|
|
359
323
|
exports.createBaseNetworkProvider = createBaseNetworkProvider;
|
|
360
324
|
exports.createCrossTabBroadcast = require_getNetworkProviderFromNetworkId.createCrossTabBroadcast;
|
|
361
325
|
exports.createDeferredPromise = require_getNetworkProviderFromNetworkId.createDeferredPromise;
|
|
326
|
+
exports.createDeviceSignatureHeadersMiddleware = require_InvalidParamError.createDeviceSignatureHeadersMiddleware;
|
|
362
327
|
exports.createLocalStorageAdapter = require_getNetworkProviderFromNetworkId.createLocalStorageAdapter;
|
|
363
328
|
exports.createLogger = require_getNetworkProviderFromNetworkId.createLogger;
|
|
364
329
|
exports.createRuntimeServiceAccessKey = require_getVerifiedCredentialForWalletAccount.createRuntimeServiceAccessKey;
|
|
365
330
|
exports.createSignInMessageStatement = require_getNetworkProviderFromNetworkId.createSignInMessageStatement;
|
|
366
331
|
exports.createStorage = require_getNetworkProviderFromNetworkId.createStorage;
|
|
367
|
-
exports.createStorageKeySchema =
|
|
332
|
+
exports.createStorageKeySchema = require_InvalidParamError.createStorageKeySchema;
|
|
368
333
|
exports.createVisit = require_getNetworkProviderFromNetworkId.createVisit;
|
|
369
334
|
exports.createWalletProviderEventEmitter = createWalletProviderEventEmitter;
|
|
370
335
|
exports.emitEvent = require_getVerifiedCredentialForWalletAccount.emitEvent;
|
|
@@ -374,20 +339,22 @@ exports.formatSignInMessage = require_getNetworkProviderFromNetworkId.formatSign
|
|
|
374
339
|
exports.formatWalletAccountId = require_getVerifiedCredentialForWalletAccount.formatWalletAccountId;
|
|
375
340
|
exports.formatWalletProviderGroupKey = formatWalletProviderGroupKey;
|
|
376
341
|
exports.formatWalletProviderKey = require_getVerifiedCredentialForWalletAccount.formatWalletProviderKey;
|
|
342
|
+
exports.generateSessionKeys = require_getNetworkProviderFromNetworkId.generateSessionKeys;
|
|
377
343
|
exports.getActiveNetworkIdFromLastKnownRegistry = getActiveNetworkIdFromLastKnownRegistry;
|
|
378
344
|
exports.getAllProvidersFromWindow = getAllProvidersFromWindow;
|
|
379
345
|
exports.getBuffer = require_InvalidParamError.getBuffer;
|
|
380
346
|
exports.getChainFromVerifiedCredentialChain = require_InvalidParamError.getChainFromVerifiedCredentialChain;
|
|
381
347
|
exports.getCore = require_InvalidParamError.getCore;
|
|
382
348
|
exports.getDefaultClient = require_InvalidParamError.getDefaultClient;
|
|
383
|
-
exports.getDeviceSigner = getDeviceSigner;
|
|
349
|
+
exports.getDeviceSigner = require_InvalidParamError.getDeviceSigner;
|
|
350
|
+
exports.getHeadersForNonceSignedByDeviceSigners = require_InvalidParamError.getHeadersForNonceSignedByDeviceSigners;
|
|
384
351
|
exports.getInjectedProviderFromWindow = getInjectedProviderFromWindow;
|
|
385
352
|
exports.getLastKnownNetworkRegistry = getLastKnownNetworkRegistry;
|
|
386
353
|
exports.getNetworkDataForNetworkId = getNetworkDataForNetworkId;
|
|
387
354
|
exports.getNetworkProviderBuilderRegistry = require_getNetworkProviderFromNetworkId.getNetworkProviderBuilderRegistry;
|
|
388
355
|
exports.getNetworkProviderFromNetworkId = require_getNetworkProviderFromNetworkId.getNetworkProviderFromNetworkId;
|
|
389
356
|
exports.getNetworkProviders = require_getNetworkProviderFromNetworkId.getNetworkProviders;
|
|
390
|
-
exports.getNonce =
|
|
357
|
+
exports.getNonce = require_InvalidParamError.getNonce;
|
|
391
358
|
exports.getSessionKeys = require_InvalidParamError.getSessionKeys;
|
|
392
359
|
exports.getSignedSessionId = require_getSignedSessionId.getSignedSessionId;
|
|
393
360
|
exports.getVerifiedCredentialForWalletAccount = require_getVerifiedCredentialForWalletAccount.getVerifiedCredentialForWalletAccount;
|
|
@@ -397,6 +364,7 @@ exports.getWalletProviders = require_getVerifiedCredentialForWalletAccount.getWa
|
|
|
397
364
|
exports.hasExtension = require_getNetworkProviderFromNetworkId.hasExtension;
|
|
398
365
|
exports.isCookieEnabled = require_InvalidParamError.isCookieEnabled;
|
|
399
366
|
exports.normalizeWalletNameWithChain = require_getVerifiedCredentialForWalletAccount.normalizeWalletNameWithChain;
|
|
367
|
+
exports.parseAmountToSmallestUnit = parseAmountToSmallestUnit;
|
|
400
368
|
exports.registerExtension = registerExtension;
|
|
401
369
|
exports.removeUnverifiedWalletAccount = require_getNetworkProviderFromNetworkId.removeUnverifiedWalletAccount;
|
|
402
370
|
exports.setCaptchaToken = require_getNetworkProviderFromNetworkId.setCaptchaToken;
|
package/dist/core.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.cjs.js","names":["BaseError","BaseError","BaseError","getCore","getCore","FETCH_PROJECT_SETTINGS_TRACKER_KEY","getNetworksData","createStorageKeySchema","z","getCore","getNetworkId: LastKnownNetworkRegistry['getNetworkId']","getWalletProviderByKey","getNetworkProviders","NoNetworkProvidersError","setNetworkId: LastKnownNetworkRegistry['setNetworkId']","createRuntimeServiceAccessKey","target: unknown","providers: T[]","target: unknown","getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry","switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry","eventEmitter: EventEmitter<WalletProviderEvents> | undefined","setupReturnValue: R","EventEmitter","getBuffer","z","getCore","createStorageKeySchema","p256Keygen","getCore","p256Sign","packageName","packageVersion"],"sources":["../src/errors/ClientsDoNotMatchError.ts","../src/errors/MethodNotImplementedError.ts","../src/errors/MultipleClientsFoundError.ts","../src/modules/extension/registerExtension/registerExtension.ts","../src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.ts","../src/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.ts","../src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry.ts","../src/modules/wallets/utils/formatWalletProviderGroupKey/formatWalletProviderGroupKey.ts","../src/modules/wallets/utils/getAllProvidersFromWindow/getAllProvidersFromWindow.ts","../src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.ts","../src/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.ts","../src/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.ts","../src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.ts","../src/utils/bufferToBase64/bufferToBase64.ts","../src/utils/filterDuplicates/filterDuplicates.ts","../src/modules/deviceRegistration/getDeviceSigner/deviceSigningKeys.schema.ts","../src/modules/deviceRegistration/getDeviceSigner/getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.ts","../src/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.ts","../src/exports/core.ts"],"sourcesContent":["import { BaseError } from './base';\n\nexport class ClientsDoNotMatchError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'clients_do_not_match_error',\n docsUrl: null,\n name: 'ClientsDoNotMatchError',\n shortMessage: 'Clients do not match',\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MethodNotImplementedError extends BaseError {\n constructor(methodName: string) {\n super({\n cause: null,\n code: 'method_not_implemented_error',\n docsUrl: null,\n name: 'MethodNotImplementedError',\n shortMessage: `This method is not implemented: ${methodName}`,\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MultipleClientsFoundError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'multiple_clients_found_error',\n docsUrl: null,\n name: 'MultipleClientsFoundError',\n shortMessage:\n 'Multiple Dynamic clients have been initialized. Please provide the intended client for this action explicitly',\n });\n }\n}\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\n\ntype RegisterExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Registers an extension to the client.\n *\n * Other extensions can be aware of which extensions are present,\n * and allows creating dependencies between extensions.\n *\n * @param client - The client instance.\n * @param extensionKey - The key of the extension to register.\n * @returns The client instance.\n */\nexport const registerExtension = (\n { extensionKey }: RegisterExtensionParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.extensions.add(extensionKey);\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { FETCH_PROJECT_SETTINGS_TRACKER_KEY } from '../consts';\n\nexport const waitForProjectSettings = async (client: DynamicClient) => {\n const core = getCore(client);\n\n const projectSettingsTracker = core.initTrack.getTracker<void>(\n FETCH_PROJECT_SETTINGS_TRACKER_KEY\n );\n\n assertDefined(projectSettingsTracker, 'Project settings tracker not found');\n\n await projectSettingsTracker.promise;\n\n assertDefined(\n client.projectSettings,\n 'Project settings still not available after awaiting its tracker'\n );\n\n return client.projectSettings;\n};\n","import type { Chain } from '../../../chain';\nimport type {\n BaseNetworkProvider,\n NetworkData,\n} from '../networkProvider/networkProvider.types';\n\nexport const createBaseNetworkProvider = <TChain extends Chain = Chain>(\n chain: TChain,\n networkData: NetworkData\n): Omit<BaseNetworkProvider<TChain>, 'getBalance'> => ({\n blockExplorerUrls: networkData.blockExplorerUrls,\n chain,\n displayName: networkData.displayName,\n iconUrl: networkData.iconUrl,\n id: `${chain}-${networkData.networkId}`,\n nativeCurrency: networkData.nativeCurrency,\n networkId: networkData.networkId,\n rpcUrls: networkData.rpcUrls,\n testnet: networkData.testnet,\n});\n","import type { DynamicClient } from '../../../../client/types';\nimport type { Chain } from '../../../chain';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkDataForNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkDataForNetworkId = (\n { networkId, chain }: GetNetworkDataForNetworkIdProps,\n client: DynamicClient\n): NetworkData | undefined => {\n const networksData = getNetworksData(client);\n\n const networkData = networksData.find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === chain\n );\n\n return networkData;\n};\n","import * as z from 'zod/mini';\n\nimport { createStorageKeySchema } from '../../../../../services/storage';\n\nexport const networkRegistryStorageKeySchema = createStorageKeySchema({\n key: 'lastKnownNetworkRegistry',\n schema: z.record(z.string(), z.string()),\n});\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport { getWalletProviderByKey } from '../../../getWalletProviderByKey';\nimport { getNetworkProviders } from '../../getNetworkProviders';\nimport type { LastKnownNetworkRegistry } from '../LastKnownNetworkRegistry.types';\nimport { networkRegistryStorageKeySchema } from './schema';\n\n/**\n * Creates the registry that keeps tabs on which wallet provider is\n * connected to which network.\n *\n * Reminder that this will not be used for chains that have an internal way to\n * switch networks (ex EVM).\n */\nexport const createLastKnownNetworkRegistry = (\n client: DynamicClient\n): LastKnownNetworkRegistry => {\n const core = getCore(client);\n\n const walletProviderKeyToNetworkId = new Map<string, string>();\n\n const getNetworkId: LastKnownNetworkRegistry['getNetworkId'] = async ({\n walletProviderKey,\n }) => {\n // Priorities:\n // 1. In memory\n // 2. Storage\n // 3. First available network for this wallet's chain\n\n if (walletProviderKeyToNetworkId.has(walletProviderKey)) {\n return {\n networkId: walletProviderKeyToNetworkId.get(\n walletProviderKey\n ) as string,\n };\n }\n\n const storageRecords = await core.storage.getItem(\n networkRegistryStorageKeySchema\n );\n\n if (storageRecords && storageRecords[walletProviderKey]) {\n const networkId = storageRecords[walletProviderKey];\n\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n return { networkId };\n }\n\n const walletProvider = getWalletProviderByKey(\n { walletProviderKey },\n client\n );\n\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const defaultNetworkProvider = networkProviders.find(\n (networkProvider) => networkProvider.chain === walletProvider.chain\n );\n\n assertDefined(\n defaultNetworkProvider,\n `No networks found for chain ${walletProvider.chain}`\n );\n\n walletProviderKeyToNetworkId.set(\n walletProviderKey,\n defaultNetworkProvider.networkId\n );\n\n // No need to set in storage, as we're just falling back to the default\n return { networkId: defaultNetworkProvider.networkId };\n };\n\n const setNetworkId: LastKnownNetworkRegistry['setNetworkId'] = async ({\n networkId,\n walletProviderKey,\n }) => {\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n await core.storage.setItem(\n networkRegistryStorageKeySchema,\n Object.fromEntries(walletProviderKeyToNetworkId.entries())\n );\n };\n\n return { getNetworkId, setNetworkId };\n};\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createLastKnownNetworkRegistry } from '../createLastKnownNetworkRegistry';\n\nexport const getLastKnownNetworkRegistry = createRuntimeServiceAccessKey(\n 'last-known-network-registry',\n (client) => createLastKnownNetworkRegistry(client)\n);\n","export const formatWalletProviderGroupKey = (walletName: string): string =>\n walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\n","/* eslint-disable no-restricted-globals */\n\n/**\n * Retrieves all providers from a window path.\n *\n * Unlike getInjectedProviderFromWindow which returns only the first provider,\n * this function returns ALL providers found at the path, including those\n * in a .providers array if present.\n *\n * This is particularly useful for detecting wallet providers in wallet app\n * in-app browsers, where wallets inject their provider into the window object.\n *\n * @param path - Dot-separated path to traverse (e.g., \"ethereum\")\n * @returns Array of all providers found, or empty array if none\n */\nexport const getAllProvidersFromWindow = <T = unknown>(path: string): T[] => {\n if (typeof window === 'undefined') {\n return [];\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return [];\n }\n\n if (Array.isArray(target)) {\n return target as T[];\n }\n\n const providers: T[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n // If target has a .providers array, return all providers from it\n if (providersArray && Array.isArray(providersArray)) {\n providers.push(...(providersArray as T[]));\n }\n\n // Always include the target itself as a provider (if it's not just a container)\n // This handles the case where window.ethereum is both a provider AND has a providers array\n providers.push(target as T);\n\n return providers;\n};\n","/* eslint-disable no-restricted-globals */\nexport const getInjectedProviderFromWindow = <T = unknown>(\n path: string\n): T | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return null;\n }\n\n if (Array.isArray(target)) {\n return target.length > 0 ? (target[0] as T) : null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n if (providersArray && Array.isArray(providersArray)) {\n return providersArray.length > 0 ? (providersArray[0] as T) : null;\n }\n\n return target as T;\n};\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype GetActiveNetworkIdFromLastKnownRegistry = (args: {\n client: DynamicClient;\n walletProviderKey: string;\n}) => ReturnType<WalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry =\n async ({ client, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n return networkRegistry.getNetworkId({ walletProviderKey });\n };\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype SwitchActiveNetworkInLastKnownRegistry = (args: {\n client: DynamicClient;\n networkId: string;\n walletProviderKey: string;\n}) => ReturnType<NonNullable<WalletProvider['switchActiveNetwork']>>;\n\nexport const switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry =\n async ({ client, networkId, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n await networkRegistry.setNetworkId({\n networkId,\n walletProviderKey,\n });\n };\n","import EventEmitter from 'eventemitter3';\n\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport type { WalletProvider } from '../../walletProvider.types';\nimport type { WalletProviderEvents } from '../walletProviderEvents.types';\n\ntype CreateWalletProviderEventEmitterParams<R = void> = {\n /**\n * Callback responsible for removing the listeners from the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n */\n removeEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n /**\n * Value returned by setupEventListeners, particularly useful for cleaning up the event listeners\n */\n setupReturnValue: R;\n }) => void;\n /**\n * Callback responsible for connecting the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n *\n * @returns May return a value that will be later passed to removeEventListeners as `setupReturnValue`\n */\n setupEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n }) => R;\n /**\n * List of events that the wallet provider supports listening to.\n * Defaults to all events.\n */\n supportedEvents?: (keyof WalletProviderEvents)[];\n};\n\n/**\n * Takes a callback that registers handlers for the external wallet provider.\n * Returns both a getter of an eventEmitter that can be exposed via the wallet provider\n * and a callback that will be used to destroy the listeners.\n */\nexport const createWalletProviderEventEmitter = <R = void>({\n removeEventListeners,\n setupEventListeners,\n supportedEvents = ['accountsChanged', 'disconnected', 'networkChanged'],\n}: CreateWalletProviderEventEmitterParams<R>) => {\n let eventEmitter: EventEmitter<WalletProviderEvents> | undefined;\n\n /** Value returned by setupEventListeners */\n let setupReturnValue: R;\n\n const handleAccountsChanged = (params: { addresses: string[] }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('accountsChanged', params);\n };\n\n const handleDisconnected = () => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('disconnected');\n };\n\n const handleNetworkChanged = (params: { networkId: string }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('networkChanged', params);\n };\n\n const cleanupEventEmitter = () => {\n if (!eventEmitter) {\n return;\n }\n\n removeEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n setupReturnValue,\n });\n\n eventEmitter = undefined;\n };\n\n const getEventEmitter = (): WalletProvider['events'] => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter<WalletProviderEvents>();\n\n setupReturnValue = setupEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n });\n }\n\n return Object.assign(eventEmitter, { supportedEvents });\n };\n\n return {\n cleanupEventEmitter,\n getEventEmitter,\n };\n};\n","import { getBuffer } from \"../getBuffer\";\n\nexport const bufferToBase64 = (buf: Uint8Array): string => {\n const binstr = Array.prototype.map\n .call(buf, (ch: number) => String.fromCharCode(ch))\n .join('');\n return getBuffer().from(binstr, 'binary').toString('base64');\n};\n","/**\n * Filter duplicates from an array by equality.\n * Uses a Set internally.\n */\nexport const filterDuplicates = <T>(array: T[]): T[] =>\n Array.from(new Set(array));\n","import * as z from 'zod/mini';\n\nexport const deviceSigningKeysSchema = z.object({\n privateJwk: z.custom<JsonWebKey>(),\n privateKey: z.string(),\n publicKey: z.string(),\n});\n","import type * as z from 'zod/mini';\n\nimport { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { createStorageKeySchema } from '../../../../services/storage';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { p256Keygen } from '../../../../utils/p256Keygen';\nimport { deviceSigningKeysSchema } from '../deviceSigningKeys.schema';\n\n/**\n * On web we want to auto create the device signing keys for each user.\n * And the user device signing keys should never be deleted.\n */\nexport const getOrCreateUserDeviceSigningKeys = async (\n client: DynamicClient\n): Promise<z.infer<typeof deviceSigningKeysSchema>> => {\n const { storage } = getCore(client);\n\n const user = client.user;\n\n assertDefined(user, 'User not found');\n\n const userDeviceSigningKeysStorageKeySchema = createStorageKeySchema({\n key: `user_device_signing_keys_${user.id}`,\n schema: deviceSigningKeysSchema,\n });\n\n const deviceSigningKeys = await storage.getItem(\n userDeviceSigningKeysStorageKeySchema\n );\n\n if (deviceSigningKeys) {\n return deviceSigningKeys;\n }\n\n const {\n public: publicKey,\n private: privateKey,\n privateJwk,\n } = await p256Keygen();\n\n await storage.setItem(userDeviceSigningKeysStorageKeySchema, {\n privateJwk,\n privateKey,\n publicKey,\n });\n\n return {\n privateJwk,\n privateKey,\n publicKey,\n };\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport type { DeviceSigner } from '../../../services/deviceSigner';\nimport { p256Sign } from '../../../utils/p256Sign';\nimport { getOrCreateUserDeviceSigningKeys } from './getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys';\n\nexport const getDeviceSigner = async (\n client: DynamicClient\n): Promise<DeviceSigner> => {\n const { deviceSigner } = getCore(client);\n\n /**\n * If the device signer is available, it should handle the device signing\n * This is used for mobile devices with secure enclave.\n */\n if (deviceSigner) {\n return deviceSigner;\n }\n\n /**\n * For web devices we want to auto create one PK per user id.\n */\n const userDeviceSigningKeys = await getOrCreateUserDeviceSigningKeys(client);\n\n return {\n getPublicKey: async () => userDeviceSigningKeys.publicKey,\n sign: (payload: string) =>\n p256Sign({\n message: payload,\n privateKeyJwk: userDeviceSigningKeys.privateJwk,\n }),\n };\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\n/**\n * @categoryDescription Extension Development\n * Core utilities and functions for building Dynamic SDK extensions.\n * These APIs provide low-level access to the SDK internals and are intended\n * for advanced use cases and extension development. Most applications should\n * use the higher-level APIs exported from the main SDK package instead.\n */\n\n/** @category Extension Development */\nexport { getCore } from '../client/core/getCore';\n/** @category Extension Development */\nexport type { DynamicCore, DynamicCoreState } from '../client/core/types';\n/** @category Extension Development */\nexport { getDefaultClient } from '../client/defaultClient';\n/** @category Extension Development */\nexport { APIError } from '../errors/APIError';\n/** @category Extension Development */\nexport { CannotTrackError } from '../errors/CannotTrackError';\n/** @category Extension Development */\nexport { ClientNotFoundError } from '../errors/ClientNotFoundError';\n/** @category Extension Development */\nexport { ClientsDoNotMatchError } from '../errors/ClientsDoNotMatchError';\n/** @category Extension Development */\nexport { InvalidStorageSet } from '../errors/InvalidStorageSet';\n/** @category Extension Development */\nexport { InvalidWalletProviderKeyError } from '../errors/InvalidWalletProviderKeyError';\n/** @category Extension Development */\nexport { MethodNotImplementedError } from '../errors/MethodNotImplementedError';\n/** @category Extension Development */\nexport { MultipleClientsFoundError } from '../errors/MultipleClientsFoundError';\n/** @category Extension Development */\nexport { NoWalletProviderFoundError } from '../errors/NoWalletProviderFoundError';\n/** @category Extension Development */\nexport { ValueMustBeDefinedError } from '../errors/ValueMustBeDefinedError';\n/** @category Extension Development */\nexport { createApiClient, DYNAMIC_SDK_API_VERSION } from '../modules/apiClient';\n/** @category Extension Development */\nexport { createVisit } from '../modules/auth/createVisit';\n/** @category Extension Development */\nexport { updateAuthFromVerifyResponse } from '../modules/auth/updateAuthFromVerifyResponse';\n/** @category Extension Development */\nexport { consumeCaptchaToken } from '../modules/captcha/consumeCaptchaToken';\n/** @category Extension Development */\nexport { setCaptchaToken } from '../modules/captcha/setCaptchaToken';\n/** @category Extension Development */\nexport { emitEvent } from '../modules/clientEvents';\n/** @category Extension Development */\nexport { hasExtension } from '../modules/extension/hasExtension';\n/** @category Extension Development */\nexport { registerExtension } from '../modules/extension/registerExtension';\n/** @category Extension Development */\nexport { waitForProjectSettings } from '../modules/initializeClient/waitForProjectSettings';\n/** @category Extension Development */\nexport { consumeMfaTokenIfRequiredForAction } from '../modules/mfa/consumeMfaTokenIfRequiredForAction';\n/** @category Extension Development */\nexport { isCookieEnabled } from '../modules/projectSettings/isCookieEnabled';\n/** @category Extension Development */\nexport { getSessionKeys } from '../modules/sessionKeys/getSessionKeys';\n/** @category Extension Development */\nexport { getSignedSessionId } from '../modules/sessionKeys/getSignedSessionId';\n/** @category Extension Development */\nexport type { SessionKeys } from '../modules/sessionKeys/sessionKeys.types';\n/** @category Extension Development */\nexport { CHAINS_INFO_MAP } from '../modules/wallets/constants';\n/** @category Extension Development */\nexport { emitWalletAccountsChangedEvent } from '../modules/wallets/emitWalletAccountsChangedEvent';\n/** @category Extension Development */\nexport { getWalletProviders } from '../modules/wallets/getWalletProviders';\n/** @category Extension Development */\nexport { createBaseNetworkProvider } from '../modules/wallets/networks/createBaseNetworkProvider';\n/** @category Extension Development */\nexport { getNetworkDataForNetworkId } from '../modules/wallets/networks/getNetworkDataForNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviderFromNetworkId } from '../modules/wallets/networks/getNetworkProviderFromNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviders } from '../modules/wallets/networks/getNetworkProviders';\n/** @category Extension Development */\nexport { getLastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry';\n/** @category Extension Development */\nexport type { LastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/LastKnownNetworkRegistry.types';\n/** @category Extension Development */\nexport type { BaseNetworkProvider } from '../modules/wallets/networks/networkProvider/networkProvider.types';\n/** @category Extension Development */\nexport {\n getNetworkProviderBuilderRegistry,\n type NetworkProviderBuilder,\n type NetworkProviderBuilderRegistry,\n} from '../modules/wallets/networks/networkProviderBuilderRegistry';\n/** @category Extension Development */\nexport { removeUnverifiedWalletAccount } from '../modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount';\nexport { setUnverifiedWalletAccounts } from '../modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts';\n/** @category Extension Development */\nexport { formatSignInMessage } from '../modules/wallets/utils/formatSignInMessage';\n/** @category Extension Development */\nexport { formatWalletAccountId } from '../modules/wallets/utils/formatWalletAccountId';\n/** @category Extension Development */\nexport { formatWalletProviderGroupKey } from '../modules/wallets/utils/formatWalletProviderGroupKey';\n/** @category Extension Development */\nexport { formatWalletProviderKey } from '../modules/wallets/utils/formatWalletProviderKey';\n/** @category Extension Development */\nexport { getAllProvidersFromWindow } from '../modules/wallets/utils/getAllProvidersFromWindow';\n/** @category Extension Development */\nexport { getInjectedProviderFromWindow } from '../modules/wallets/utils/getInjectedProviderFromWindow';\n/** @category Extension Development */\nexport { getVerifiedCredentialForWalletAccount } from '../modules/wallets/utils/getVerifiedCredentialForWalletAccount';\n/** @category Extension Development */\nexport { getWalletProviderFromWalletAccount } from '../modules/wallets/utils/getWalletProviderFromWalletAccount';\n/** @category Extension Development */\nexport { normalizeWalletNameWithChain } from '../modules/wallets/utils/normalizeWalletNameWithChain';\n/** @category Extension Development */\nexport { verifyMessageSignatureOwnership } from '../modules/wallets/verifyMessageSignatureOwnership';\n/** @category Extension Development */\nexport type { BaseWalletAccount } from '../modules/wallets/walletAccount';\n/** @category Extension Development */\nexport type {\n TransferAmountParams,\n WalletProvider,\n WalletProviderConnectAddress,\n} from '../modules/wallets/walletProvider';\n/** @category Extension Development */\nexport { getActiveNetworkIdFromLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry';\n/** @category Extension Development */\nexport { switchActiveNetworkInLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry';\n/** @category Extension Development */\nexport { createWalletProviderEventEmitter } from '../modules/wallets/walletProvider/events/createWalletProviderEventEmitter';\n/** @category Extension Development */\nexport { splitWalletProviderKey } from '../modules/wallets/walletProvider/splitWalletProviderKey';\n/** @category Extension Development */\nexport {\n getWalletProviderRegistry,\n WalletProviderPriority,\n} from '../modules/wallets/walletProviderRegistry';\n/** @category Extension Development */\nexport type {\n AsyncProcessEntry,\n AsyncProcessStatus,\n AsyncTrack,\n AsyncTrackEmitter,\n} from '../services/asyncTrack/asyncTrack.types';\n/** @category Extension Development */\nexport { createCrossTabBroadcast } from '../services/crossTabBroadcast/createCrossTabBroadcast';\n/** @category Extension Development */\nexport type {\n CrossTabBroadcast,\n CrossTabBroadcastMessage,\n} from '../services/crossTabBroadcast';\n/** @category Extension Development */\nexport { CrossTabBroadcastMessageSchema } from '../services/crossTabBroadcast';\n/** @category Extension Development */\nexport { createLogger } from '../services/logger/createLogger';\n/** @category Extension Development */\nexport type { Logger, LogLevel } from '../services/logger/logger.types';\n/** @category Extension Development */\nexport type { PasskeyService } from '../services/passkey';\n/** @category Extension Development */\nexport {\n createRuntimeServiceAccessKey,\n type RuntimeServices,\n} from '../services/runtimeServices';\n/** @category Extension Development */\nexport {\n createLocalStorageAdapter,\n createStorage,\n createStorageKeySchema,\n type Storage,\n type StorageAdapter,\n type StorageKeySchema,\n} from '../services/storage';\n/** @category Extension Development */\nexport type { ExtendParameters } from '../types/ExtendParameters';\n/** @category Extension Development */\nexport { assertDefined } from '../utils/assertDefined';\n/** @category Extension Development */\nexport { bufferToBase64 } from '../utils/bufferToBase64';\n/** @category Extension Development */\nexport type { DebouncedMutex } from '../utils/debouncedMutex/debouncedMutex.types';\n/** @category Extension Development */\nexport { filterDuplicates } from '../utils/filterDuplicates';\n/** @category Extension Development */\nexport { getBuffer } from '../utils/getBuffer';\n/** @category Extension Development */\nexport { getChainFromVerifiedCredentialChain } from '../utils/getChainFromVerifiedCredentialChain';\n/** @category Extension Development */\nexport { getNonce } from '../utils/getNonce';\n/** @category Extension Development */\nexport type { ObservableState } from '../utils/observable/observable.types';\n/** @category Extension Development */\nexport { createSignInMessageStatement } from '../modules/wallets/utils/getSignInMessage/createSignInMessageStatement';\n/** @category Extension Development */\nexport { subscribeWithSelector } from '../utils/observable/subscribeWithSelector';\n/** @category Extension Development */\nexport { updateWalletProviderKeysForVerifiedCredentials } from '../modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials';\n/** @category Extension Development */\nexport { DYNAMIC_ICONIC_SPRITE_URL } from '../constants';\n/** @category Extension Development */\nexport { createDeferredPromise } from '../utils/deferredPromise';\n/** @category Extension Development */\nexport { getDeviceSigner } from '../modules/deviceRegistration/getDeviceSigner';\n"],"mappings":";;;;;;;;;;;;AAEA,IAAa,yBAAb,cAA4CA,oCAAU;CACpD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;ACRN,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,YAAY,YAAoB;AAC9B,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,mCAAmC;GAClD,CAAC;;;;;;ACRN,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cACE;GACH,CAAC;;;;;;;;;;;;;;;;ACMN,MAAa,qBACX,EAAE,gBACF,WACG;AAGH,CAFaC,kCAAQ,OAAO,CAEvB,WAAW,IAAI,aAAa;;;;;AClBnC,MAAa,yBAAyB,OAAO,WAA0B;CAGrE,MAAM,yBAFOC,kCAAQ,OAAO,CAEQ,UAAU,WAC5CC,2EACD;AAED,yCAAc,wBAAwB,qCAAqC;AAE3E,OAAM,uBAAuB;AAE7B,yCACE,OAAO,iBACP,kEACD;AAED,QAAO,OAAO;;;;;ACfhB,MAAa,6BACX,OACA,iBACqD;CACrD,mBAAmB,YAAY;CAC/B;CACA,aAAa,YAAY;CACzB,SAAS,YAAY;CACrB,IAAI,GAAG,MAAM,GAAG,YAAY;CAC5B,gBAAgB,YAAY;CAC5B,WAAW,YAAY;CACvB,SAAS,YAAY;CACrB,SAAS,YAAY;CACtB;;;;ACTD,MAAa,8BACX,EAAE,WAAW,SACb,WAC4B;AAQ5B,QAPqBC,wDAAgB,OAAO,CAEX,MAC9B,gBACC,YAAY,cAAc,aAAa,YAAY,UAAU,MAChE;;;;;ACfH,MAAa,kCAAkCC,+DAAuB;CACpE,KAAK;CACL,QAAQC,SAAE,OAAOA,SAAE,QAAQ,EAAEA,SAAE,QAAQ,CAAC;CACzC,CAAC;;;;;;;;;;;ACSF,MAAa,kCACX,WAC6B;CAC7B,MAAM,OAAOC,kCAAQ,OAAO;CAE5B,MAAM,+CAA+B,IAAI,KAAqB;CAE9D,MAAMC,eAAyD,OAAO,EACpE,wBACI;AAMJ,MAAI,6BAA6B,IAAI,kBAAkB,CACrD,QAAO,EACL,WAAW,6BAA6B,IACtC,kBACD,EACF;EAGH,MAAM,iBAAiB,MAAM,KAAK,QAAQ,QACxC,gCACD;AAED,MAAI,kBAAkB,eAAe,oBAAoB;GACvD,MAAM,YAAY,eAAe;AAEjC,gCAA6B,IAAI,mBAAmB,UAAU;AAE9D,UAAO,EAAE,WAAW;;EAGtB,MAAM,iBAAiBC,qEACrB,EAAE,mBAAmB,EACrB,OACD;EAED,MAAM,mBAAmBC,4DAAoB,OAAO;AAEpD,MAAI,iBAAiB,WAAW,EAC9B,OAAM,IAAIC,iEAAyB;EAGrC,MAAM,yBAAyB,iBAAiB,MAC7C,oBAAoB,gBAAgB,UAAU,eAAe,MAC/D;AAED,0CACE,wBACA,+BAA+B,eAAe,QAC/C;AAED,+BAA6B,IAC3B,mBACA,uBAAuB,UACxB;AAGD,SAAO,EAAE,WAAW,uBAAuB,WAAW;;CAGxD,MAAMC,eAAyD,OAAO,EACpE,WACA,wBACI;AACJ,+BAA6B,IAAI,mBAAmB,UAAU;AAE9D,QAAM,KAAK,QAAQ,QACjB,iCACA,OAAO,YAAY,6BAA6B,SAAS,CAAC,CAC3D;;AAGH,QAAO;EAAE;EAAc;EAAc;;;;;ACzFvC,MAAa,8BAA8BC,4EACzC,gCACC,WAAW,+BAA+B,OAAO,CACnD;;;;ACND,MAAa,gCAAgC,eAC3C,WAAW,QAAQ,iBAAiB,GAAG,CAAC,aAAa;;;;;;;;;;;;;;;;;ACcvD,MAAa,6BAA0C,SAAsB;AAC3E,KAAI,OAAO,WAAW,YACpB,QAAO,EAAE;CAIX,MAAMC,SAAkB,KAAK,MAAM,IAAI,CAAC,QAErC,KAAK,QAAS,OAAO,OAAO,OAAQ,IAAY,MACjD,OACD;AAED,KAAI,OAAO,WAAW,YAAY,WAAW,KAC3C,QAAO,EAAE;AAGX,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO;CAGT,MAAMC,YAAiB,EAAE;CAGzB,MAAM,iBAAkB,OAAe;AAGvC,KAAI,kBAAkB,MAAM,QAAQ,eAAe,CACjD,WAAU,KAAK,GAAI,eAAuB;AAK5C,WAAU,KAAK,OAAY;AAE3B,QAAO;;;;;AChDT,MAAa,iCACX,SACa;AACb,KAAI,OAAO,WAAW,YACpB,QAAO;CAIT,MAAMC,SAAkB,KAAK,MAAM,IAAI,CAAC,QAErC,KAAK,QAAS,OAAO,OAAO,OAAQ,IAAY,MACjD,OACD;AAED,KAAI,OAAO,WAAW,YAAY,WAAW,KAC3C,QAAO;AAGT,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO,OAAO,SAAS,IAAK,OAAO,KAAW;CAIhD,MAAM,iBAAkB,OAAe;AAEvC,KAAI,kBAAkB,MAAM,QAAQ,eAAe,CACjD,QAAO,eAAe,SAAS,IAAK,eAAe,KAAW;AAGhE,QAAO;;;;;ACrBT,MAAaC,0CACX,OAAO,EAAE,QAAQ,wBAAwB;AAGvC,QAFwB,4BAA4B,OAAO,CAEpC,aAAa,EAAE,mBAAmB,CAAC;;;;;ACH9D,MAAaC,yCACX,OAAO,EAAE,QAAQ,WAAW,wBAAwB;AAGlD,OAFwB,4BAA4B,OAAO,CAErC,aAAa;EACjC;EACA;EACD,CAAC;;;;;;;;;;AC0BN,MAAa,oCAA8C,EACzD,sBACA,qBACA,kBAAkB;CAAC;CAAmB;CAAgB;CAAiB,OACxB;CAC/C,IAAIC;;CAGJ,IAAIC;CAEJ,MAAM,yBAAyB,WAAoC;AACjE,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,mBAAmB,OAAO;;CAG9C,MAAM,2BAA2B;AAC/B,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,eAAe;;CAGnC,MAAM,wBAAwB,WAAkC;AAC9D,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,kBAAkB,OAAO;;CAG7C,MAAM,4BAA4B;AAChC,MAAI,CAAC,aACH;AAGF,uBAAqB;GACnB;GACA;GACA;GACA;GACD,CAAC;AAEF,iBAAe;;CAGjB,MAAM,wBAAkD;AACtD,MAAI,CAAC,cAAc;AACjB,kBAAe,IAAIC,uBAAoC;AAEvD,sBAAmB,oBAAoB;IACrC;IACA;IACA;IACD,CAAC;;AAGJ,SAAO,OAAO,OAAO,cAAc,EAAE,iBAAiB,CAAC;;AAGzD,QAAO;EACL;EACA;EACD;;;;;AClGH,MAAa,kBAAkB,QAA4B;CACzD,MAAM,SAAS,MAAM,UAAU,IAC5B,KAAK,MAAM,OAAe,OAAO,aAAa,GAAG,CAAC,CAClD,KAAK,GAAG;AACX,QAAOC,qCAAW,CAAC,KAAK,QAAQ,SAAS,CAAC,SAAS,SAAS;;;;;;;;;ACF9D,MAAa,oBAAuB,UAClC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC;;;;ACH5B,MAAa,0BAA0BC,SAAE,OAAO;CAC9C,YAAYA,SAAE,QAAoB;CAClC,YAAYA,SAAE,QAAQ;CACtB,WAAWA,SAAE,QAAQ;CACtB,CAAC;;;;;;;;ACOF,MAAa,mCAAmC,OAC9C,WACqD;CACrD,MAAM,EAAE,YAAYC,kCAAQ,OAAO;CAEnC,MAAM,OAAO,OAAO;AAEpB,yCAAc,MAAM,iBAAiB;CAErC,MAAM,wCAAwCC,+DAAuB;EACnE,KAAK,4BAA4B,KAAK;EACtC,QAAQ;EACT,CAAC;CAEF,MAAM,oBAAoB,MAAM,QAAQ,QACtC,sCACD;AAED,KAAI,kBACF,QAAO;CAGT,MAAM,EACJ,QAAQ,WACR,SAAS,YACT,eACE,MAAMC,oDAAY;AAEtB,OAAM,QAAQ,QAAQ,uCAAuC;EAC3D;EACA;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACA;EACD;;;;;AC7CH,MAAa,kBAAkB,OAC7B,WAC0B;CAC1B,MAAM,EAAE,iBAAiBC,kCAAQ,OAAO;;;;;AAMxC,KAAI,aACF,QAAO;;;;CAMT,MAAM,wBAAwB,MAAM,iCAAiC,OAAO;AAE5E,QAAO;EACL,cAAc,YAAY,sBAAsB;EAChD,OAAO,YACLC,oCAAS;GACP,SAAS;GACT,eAAe,sBAAsB;GACtC,CAAC;EACL;;;;;mECzBkBC,gCAAaC,kCAAe"}
|
|
1
|
+
{"version":3,"file":"core.cjs.js","names":["BaseError","BaseError","BaseError","getCore","getCore","FETCH_PROJECT_SETTINGS_TRACKER_KEY","getNetworksData","createStorageKeySchema","z","getCore","getNetworkId: LastKnownNetworkRegistry['getNetworkId']","getWalletProviderByKey","getNetworkProviders","NoNetworkProvidersError","setNetworkId: LastKnownNetworkRegistry['setNetworkId']","createRuntimeServiceAccessKey","target: unknown","providers: T[]","target: unknown","getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry","switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry","eventEmitter: EventEmitter<WalletProviderEvents> | undefined","setupReturnValue: R","EventEmitter","getBuffer","packageName","packageVersion"],"sources":["../src/errors/ClientsDoNotMatchError.ts","../src/errors/MethodNotImplementedError.ts","../src/errors/MultipleClientsFoundError.ts","../src/modules/extension/registerExtension/registerExtension.ts","../src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.ts","../src/modules/wallets/networks/createBaseNetworkProvider/createBaseNetworkProvider.ts","../src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.ts","../src/modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry.ts","../src/modules/wallets/utils/formatWalletProviderGroupKey/formatWalletProviderGroupKey.ts","../src/modules/wallets/utils/getAllProvidersFromWindow/getAllProvidersFromWindow.ts","../src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.ts","../src/modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry/getActiveNetworkIdFromLastKnownRegistry.ts","../src/modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry/switchActiveNetworkInLastKnownRegistry.ts","../src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.ts","../src/utils/bufferToBase64/bufferToBase64.ts","../src/utils/filterDuplicates/filterDuplicates.ts","../src/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.ts","../src/exports/core.ts"],"sourcesContent":["import { BaseError } from './base';\n\nexport class ClientsDoNotMatchError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'clients_do_not_match_error',\n docsUrl: null,\n name: 'ClientsDoNotMatchError',\n shortMessage: 'Clients do not match',\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MethodNotImplementedError extends BaseError {\n constructor(methodName: string) {\n super({\n cause: null,\n code: 'method_not_implemented_error',\n docsUrl: null,\n name: 'MethodNotImplementedError',\n shortMessage: `This method is not implemented: ${methodName}`,\n });\n }\n}\n","import { BaseError } from './base';\n\nexport class MultipleClientsFoundError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'multiple_clients_found_error',\n docsUrl: null,\n name: 'MultipleClientsFoundError',\n shortMessage:\n 'Multiple Dynamic clients have been initialized. Please provide the intended client for this action explicitly',\n });\n }\n}\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\n\ntype RegisterExtensionParams = {\n extensionKey: string;\n};\n\n/**\n * Registers an extension to the client.\n *\n * Other extensions can be aware of which extensions are present,\n * and allows creating dependencies between extensions.\n *\n * @param client - The client instance.\n * @param extensionKey - The key of the extension to register.\n * @returns The client instance.\n */\nexport const registerExtension = (\n { extensionKey }: RegisterExtensionParams,\n client: DynamicClient\n) => {\n const core = getCore(client);\n\n core.extensions.add(extensionKey);\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { FETCH_PROJECT_SETTINGS_TRACKER_KEY } from '../consts';\n\nexport const waitForProjectSettings = async (client: DynamicClient) => {\n const core = getCore(client);\n\n const projectSettingsTracker = core.initTrack.getTracker<void>(\n FETCH_PROJECT_SETTINGS_TRACKER_KEY\n );\n\n assertDefined(projectSettingsTracker, 'Project settings tracker not found');\n\n await projectSettingsTracker.promise;\n\n assertDefined(\n client.projectSettings,\n 'Project settings still not available after awaiting its tracker'\n );\n\n return client.projectSettings;\n};\n","import type { Chain } from '../../../chain';\nimport type {\n BaseNetworkProvider,\n NetworkData,\n} from '../networkProvider/networkProvider.types';\n\nexport const createBaseNetworkProvider = <TChain extends Chain = Chain>(\n chain: TChain,\n networkData: NetworkData\n): Omit<BaseNetworkProvider<TChain>, 'getBalance'> => ({\n blockExplorerUrls: networkData.blockExplorerUrls,\n chain,\n displayName: networkData.displayName,\n iconUrl: networkData.iconUrl,\n id: `${chain}-${networkData.networkId}`,\n nativeCurrency: networkData.nativeCurrency,\n networkId: networkData.networkId,\n rpcUrls: networkData.rpcUrls,\n testnet: networkData.testnet,\n});\n","import type { DynamicClient } from '../../../../client/types';\nimport type { Chain } from '../../../chain';\nimport { getNetworksData } from '../getNetworksData';\nimport type { NetworkData } from '../networkProvider/networkProvider.types';\n\ntype GetNetworkDataForNetworkIdProps = {\n chain: Chain;\n networkId: string;\n};\n\nexport const getNetworkDataForNetworkId = (\n { networkId, chain }: GetNetworkDataForNetworkIdProps,\n client: DynamicClient\n): NetworkData | undefined => {\n const networksData = getNetworksData(client);\n\n const networkData = networksData.find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === chain\n );\n\n return networkData;\n};\n","import * as z from 'zod/mini';\n\nimport { createStorageKeySchema } from '../../../../../services/storage';\n\nexport const networkRegistryStorageKeySchema = createStorageKeySchema({\n key: 'lastKnownNetworkRegistry',\n schema: z.record(z.string(), z.string()),\n});\n","import { getCore } from '../../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../../client/types';\nimport { NoNetworkProvidersError } from '../../../../../errors/NoNetworkProvidersError';\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport { getWalletProviderByKey } from '../../../getWalletProviderByKey';\nimport { getNetworkProviders } from '../../getNetworkProviders';\nimport type { LastKnownNetworkRegistry } from '../LastKnownNetworkRegistry.types';\nimport { networkRegistryStorageKeySchema } from './schema';\n\n/**\n * Creates the registry that keeps tabs on which wallet provider is\n * connected to which network.\n *\n * Reminder that this will not be used for chains that have an internal way to\n * switch networks (ex EVM).\n */\nexport const createLastKnownNetworkRegistry = (\n client: DynamicClient\n): LastKnownNetworkRegistry => {\n const core = getCore(client);\n\n const walletProviderKeyToNetworkId = new Map<string, string>();\n\n const getNetworkId: LastKnownNetworkRegistry['getNetworkId'] = async ({\n walletProviderKey,\n }) => {\n // Priorities:\n // 1. In memory\n // 2. Storage\n // 3. First available network for this wallet's chain\n\n if (walletProviderKeyToNetworkId.has(walletProviderKey)) {\n return {\n networkId: walletProviderKeyToNetworkId.get(\n walletProviderKey\n ) as string,\n };\n }\n\n const storageRecords = await core.storage.getItem(\n networkRegistryStorageKeySchema\n );\n\n if (storageRecords && storageRecords[walletProviderKey]) {\n const networkId = storageRecords[walletProviderKey];\n\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n return { networkId };\n }\n\n const walletProvider = getWalletProviderByKey(\n { walletProviderKey },\n client\n );\n\n const networkProviders = getNetworkProviders(client);\n\n if (networkProviders.length === 0) {\n throw new NoNetworkProvidersError();\n }\n\n const defaultNetworkProvider = networkProviders.find(\n (networkProvider) => networkProvider.chain === walletProvider.chain\n );\n\n assertDefined(\n defaultNetworkProvider,\n `No networks found for chain ${walletProvider.chain}`\n );\n\n walletProviderKeyToNetworkId.set(\n walletProviderKey,\n defaultNetworkProvider.networkId\n );\n\n // No need to set in storage, as we're just falling back to the default\n return { networkId: defaultNetworkProvider.networkId };\n };\n\n const setNetworkId: LastKnownNetworkRegistry['setNetworkId'] = async ({\n networkId,\n walletProviderKey,\n }) => {\n walletProviderKeyToNetworkId.set(walletProviderKey, networkId);\n\n await core.storage.setItem(\n networkRegistryStorageKeySchema,\n Object.fromEntries(walletProviderKeyToNetworkId.entries())\n );\n };\n\n return { getNetworkId, setNetworkId };\n};\n","import { createRuntimeServiceAccessKey } from '../../../../../services/runtimeServices';\nimport { createLastKnownNetworkRegistry } from '../createLastKnownNetworkRegistry';\n\nexport const getLastKnownNetworkRegistry = createRuntimeServiceAccessKey(\n 'last-known-network-registry',\n (client) => createLastKnownNetworkRegistry(client)\n);\n","export const formatWalletProviderGroupKey = (walletName: string): string =>\n walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\n","/* eslint-disable no-restricted-globals */\n\n/**\n * Retrieves all providers from a window path.\n *\n * Unlike getInjectedProviderFromWindow which returns only the first provider,\n * this function returns ALL providers found at the path, including those\n * in a .providers array if present.\n *\n * This is particularly useful for detecting wallet providers in wallet app\n * in-app browsers, where wallets inject their provider into the window object.\n *\n * @param path - Dot-separated path to traverse (e.g., \"ethereum\")\n * @returns Array of all providers found, or empty array if none\n */\nexport const getAllProvidersFromWindow = <T = unknown>(path: string): T[] => {\n if (typeof window === 'undefined') {\n return [];\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return [];\n }\n\n if (Array.isArray(target)) {\n return target as T[];\n }\n\n const providers: T[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n // If target has a .providers array, return all providers from it\n if (providersArray && Array.isArray(providersArray)) {\n providers.push(...(providersArray as T[]));\n }\n\n // Always include the target itself as a provider (if it's not just a container)\n // This handles the case where window.ethereum is both a provider AND has a providers array\n providers.push(target as T);\n\n return providers;\n};\n","/* eslint-disable no-restricted-globals */\nexport const getInjectedProviderFromWindow = <T = unknown>(\n path: string\n): T | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n // Traverse the path safely\n const target: unknown = path.split('.').reduce<unknown>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (acc, key) => (acc == null ? null : (acc as any)[key]),\n window\n );\n\n if (typeof target !== 'object' || target === null) {\n return null;\n }\n\n if (Array.isArray(target)) {\n return target.length > 0 ? (target[0] as T) : null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const providersArray = (target as any).providers;\n\n if (providersArray && Array.isArray(providersArray)) {\n return providersArray.length > 0 ? (providersArray[0] as T) : null;\n }\n\n return target as T;\n};\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype GetActiveNetworkIdFromLastKnownRegistry = (args: {\n client: DynamicClient;\n walletProviderKey: string;\n}) => ReturnType<WalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkIdFromLastKnownRegistry: GetActiveNetworkIdFromLastKnownRegistry =\n async ({ client, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n return networkRegistry.getNetworkId({ walletProviderKey });\n };\n","import type { DynamicClient } from '../../../../../client/types/DynamicClient';\nimport { getLastKnownNetworkRegistry } from '../../../networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry/getLastKnownNetworkRegistry';\nimport type { WalletProvider } from '../../walletProvider.types';\n\ntype SwitchActiveNetworkInLastKnownRegistry = (args: {\n client: DynamicClient;\n networkId: string;\n walletProviderKey: string;\n}) => ReturnType<NonNullable<WalletProvider['switchActiveNetwork']>>;\n\nexport const switchActiveNetworkInLastKnownRegistry: SwitchActiveNetworkInLastKnownRegistry =\n async ({ client, networkId, walletProviderKey }) => {\n const networkRegistry = getLastKnownNetworkRegistry(client);\n\n await networkRegistry.setNetworkId({\n networkId,\n walletProviderKey,\n });\n };\n","import EventEmitter from 'eventemitter3';\n\nimport { assertDefined } from '../../../../../utils/assertDefined';\nimport type { WalletProvider } from '../../walletProvider.types';\nimport type { WalletProviderEvents } from '../walletProviderEvents.types';\n\ntype CreateWalletProviderEventEmitterParams<R = void> = {\n /**\n * Callback responsible for removing the listeners from the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n */\n removeEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n /**\n * Value returned by setupEventListeners, particularly useful for cleaning up the event listeners\n */\n setupReturnValue: R;\n }) => void;\n /**\n * Callback responsible for connecting the external wallet provider event emitters\n * to the the Dynamic handlers that will emit the wallet provider events.\n *\n * @returns May return a value that will be later passed to removeEventListeners as `setupReturnValue`\n */\n setupEventListeners: (params: {\n handleAccountsChanged: (params: { addresses: string[] }) => void;\n handleDisconnected: () => void;\n handleNetworkChanged: (params: { networkId: string }) => void;\n }) => R;\n /**\n * List of events that the wallet provider supports listening to.\n * Defaults to all events.\n */\n supportedEvents?: (keyof WalletProviderEvents)[];\n};\n\n/**\n * Takes a callback that registers handlers for the external wallet provider.\n * Returns both a getter of an eventEmitter that can be exposed via the wallet provider\n * and a callback that will be used to destroy the listeners.\n */\nexport const createWalletProviderEventEmitter = <R = void>({\n removeEventListeners,\n setupEventListeners,\n supportedEvents = ['accountsChanged', 'disconnected', 'networkChanged'],\n}: CreateWalletProviderEventEmitterParams<R>) => {\n let eventEmitter: EventEmitter<WalletProviderEvents> | undefined;\n\n /** Value returned by setupEventListeners */\n let setupReturnValue: R;\n\n const handleAccountsChanged = (params: { addresses: string[] }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('accountsChanged', params);\n };\n\n const handleDisconnected = () => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('disconnected');\n };\n\n const handleNetworkChanged = (params: { networkId: string }) => {\n assertDefined(eventEmitter, 'Event emitter not defined');\n eventEmitter.emit('networkChanged', params);\n };\n\n const cleanupEventEmitter = () => {\n if (!eventEmitter) {\n return;\n }\n\n removeEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n setupReturnValue,\n });\n\n eventEmitter = undefined;\n };\n\n const getEventEmitter = (): WalletProvider['events'] => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter<WalletProviderEvents>();\n\n setupReturnValue = setupEventListeners({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n });\n }\n\n return Object.assign(eventEmitter, { supportedEvents });\n };\n\n return {\n cleanupEventEmitter,\n getEventEmitter,\n };\n};\n","import { getBuffer } from \"../getBuffer\";\n\nexport const bufferToBase64 = (buf: Uint8Array): string => {\n const binstr = Array.prototype.map\n .call(buf, (ch: number) => String.fromCharCode(ch))\n .join('');\n return getBuffer().from(binstr, 'binary').toString('base64');\n};\n","/**\n * Filter duplicates from an array by equality.\n * Uses a Set internally.\n */\nexport const filterDuplicates = <T>(array: T[]): T[] =>\n Array.from(new Set(array));\n","type ParseAmountToSmallestUnitParams = {\n amount: string;\n decimals: number;\n};\n\n/**\n * Converts a human-readable decimal amount string to the smallest unit\n * representation as a bigint, using string-based arithmetic to avoid\n * floating-point precision loss.\n *\n * @example\n * parseAmountToSmallestUnit({ amount: '1.5', decimals: 9 }) // 1500000000n (1.5 SOL in lamports)\n * parseAmountToSmallestUnit({ amount: '1.5', decimals: 8 }) // 150000000n (1.5 BTC in satoshis)\n * parseAmountToSmallestUnit({ amount: '10.5', decimals: 6 }) // 10500000n (10.5 USDC)\n * parseAmountToSmallestUnit({ amount: '0.1', decimals: 9 }) // 100000000n (no float error)\n *\n * @param params.amount - The amount as a decimal string (e.g. \"1.5\").\n * @param params.decimals - The number of decimal places for the token.\n * @returns The amount in smallest units as a bigint.\n */\nexport const parseAmountToSmallestUnit = ({\n amount,\n decimals,\n}: ParseAmountToSmallestUnitParams): bigint => {\n const [whole = '0', fraction = ''] = amount.split('.');\n const paddedFraction = fraction.padEnd(decimals, '0').slice(0, decimals);\n return BigInt(whole + paddedFraction);\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\n/**\n * @categoryDescription Extension Development\n * Core utilities and functions for building Dynamic SDK extensions.\n * These APIs provide low-level access to the SDK internals and are intended\n * for advanced use cases and extension development. Most applications should\n * use the higher-level APIs exported from the main SDK package instead.\n */\n\n/** @category Extension Development */\nexport { getCore } from '../client/core/getCore';\n/** @category Extension Development */\nexport type { DynamicCore, DynamicCoreState } from '../client/core/types';\n/** @category Extension Development */\nexport { getDefaultClient } from '../client/defaultClient';\n/** @category Extension Development */\nexport { APIError } from '../errors/APIError';\n/** @category Extension Development */\nexport { CannotTrackError } from '../errors/CannotTrackError';\n/** @category Extension Development */\nexport { ClientNotFoundError } from '../errors/ClientNotFoundError';\n/** @category Extension Development */\nexport { ClientsDoNotMatchError } from '../errors/ClientsDoNotMatchError';\n/** @category Extension Development */\nexport { InvalidStorageSet } from '../errors/InvalidStorageSet';\n/** @category Extension Development */\nexport { InvalidWalletProviderKeyError } from '../errors/InvalidWalletProviderKeyError';\n/** @category Extension Development */\nexport { MethodNotImplementedError } from '../errors/MethodNotImplementedError';\n/** @category Extension Development */\nexport { MultipleClientsFoundError } from '../errors/MultipleClientsFoundError';\n/** @category Extension Development */\nexport { NoWalletProviderFoundError } from '../errors/NoWalletProviderFoundError';\n/** @category Extension Development */\nexport { ValueMustBeDefinedError } from '../errors/ValueMustBeDefinedError';\n/** @category Extension Development */\nexport { createApiClient, DYNAMIC_SDK_API_VERSION } from '../modules/apiClient';\n/** @category Extension Development */\nexport { createVisit } from '../modules/auth/createVisit';\n/** @category Extension Development */\nexport { updateAuthFromVerifyResponse } from '../modules/auth/updateAuthFromVerifyResponse';\n/** @category Extension Development */\nexport { consumeCaptchaToken } from '../modules/captcha/consumeCaptchaToken';\n/** @category Extension Development */\nexport { setCaptchaToken } from '../modules/captcha/setCaptchaToken';\n/** @category Extension Development */\nexport { emitEvent } from '../modules/clientEvents';\n/** @category Extension Development */\nexport { hasExtension } from '../modules/extension/hasExtension';\n/** @category Extension Development */\nexport { registerExtension } from '../modules/extension/registerExtension';\n/** @category Extension Development */\nexport { waitForProjectSettings } from '../modules/initializeClient/waitForProjectSettings';\n/** @category Extension Development */\nexport { consumeMfaTokenIfRequiredForAction } from '../modules/mfa/consumeMfaTokenIfRequiredForAction';\n/** @category Extension Development */\nexport { isCookieEnabled } from '../modules/projectSettings/isCookieEnabled';\n/** @category Extension Development */\nexport { generateSessionKeys } from '../modules/sessionKeys/generateSessionKeys/generateSessionKeys';\n/** @category Extension Development */\nexport { getSessionKeys } from '../modules/sessionKeys/getSessionKeys';\n/** @category Extension Development */\nexport { getSignedSessionId } from '../modules/sessionKeys/getSignedSessionId';\n/** @category Extension Development */\nexport type { SessionKeys } from '../modules/sessionKeys/sessionKeys.types';\n/** @category Extension Development */\nexport { CHAINS_INFO_MAP } from '../modules/wallets/constants';\n/** @category Extension Development */\nexport { emitWalletAccountsChangedEvent } from '../modules/wallets/emitWalletAccountsChangedEvent';\n/** @category Extension Development */\nexport { getWalletProviders } from '../modules/wallets/getWalletProviders';\n/** @category Extension Development */\nexport { createBaseNetworkProvider } from '../modules/wallets/networks/createBaseNetworkProvider';\n/** @category Extension Development */\nexport { getNetworkDataForNetworkId } from '../modules/wallets/networks/getNetworkDataForNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviderFromNetworkId } from '../modules/wallets/networks/getNetworkProviderFromNetworkId';\n/** @category Extension Development */\nexport { getNetworkProviders } from '../modules/wallets/networks/getNetworkProviders';\n/** @category Extension Development */\nexport { getLastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/getLastKnownNetworkRegistry';\n/** @category Extension Development */\nexport type { LastKnownNetworkRegistry } from '../modules/wallets/networks/lastKnownNetworkRegistry/LastKnownNetworkRegistry.types';\n/** @category Extension Development */\nexport type { BaseNetworkProvider } from '../modules/wallets/networks/networkProvider/networkProvider.types';\n/** @category Extension Development */\nexport {\n getNetworkProviderBuilderRegistry,\n type NetworkProviderBuilder,\n type NetworkProviderBuilderRegistry,\n} from '../modules/wallets/networks/networkProviderBuilderRegistry';\n/** @category Extension Development */\nexport { removeUnverifiedWalletAccount } from '../modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount';\nexport { setUnverifiedWalletAccounts } from '../modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts';\n/** @category Extension Development */\nexport { formatSignInMessage } from '../modules/wallets/utils/formatSignInMessage';\n/** @category Extension Development */\nexport { formatWalletAccountId } from '../modules/wallets/utils/formatWalletAccountId';\n/** @category Extension Development */\nexport { formatWalletProviderGroupKey } from '../modules/wallets/utils/formatWalletProviderGroupKey';\n/** @category Extension Development */\nexport { formatWalletProviderKey } from '../modules/wallets/utils/formatWalletProviderKey';\n/** @category Extension Development */\nexport { getAllProvidersFromWindow } from '../modules/wallets/utils/getAllProvidersFromWindow';\n/** @category Extension Development */\nexport { getInjectedProviderFromWindow } from '../modules/wallets/utils/getInjectedProviderFromWindow';\n/** @category Extension Development */\nexport { getVerifiedCredentialForWalletAccount } from '../modules/wallets/utils/getVerifiedCredentialForWalletAccount';\n/** @category Extension Development */\nexport { getWalletProviderFromWalletAccount } from '../modules/wallets/utils/getWalletProviderFromWalletAccount';\n/** @category Extension Development */\nexport { normalizeWalletNameWithChain } from '../modules/wallets/utils/normalizeWalletNameWithChain';\n/** @category Extension Development */\nexport { verifyMessageSignatureOwnership } from '../modules/wallets/verifyMessageSignatureOwnership';\n/** @category Extension Development */\nexport type { BaseWalletAccount } from '../modules/wallets/walletAccount';\n/** @category Extension Development */\nexport type {\n ExecuteCheckoutTransactionParams,\n ExecuteCheckoutTransactionResult,\n TransferAmountParams,\n WalletProvider,\n WalletProviderConnectAddress,\n} from '../modules/wallets/walletProvider';\n/** @category Extension Development */\nexport { getActiveNetworkIdFromLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/getActiveNetworkIdFromLastKnownRegistry';\n/** @category Extension Development */\nexport { switchActiveNetworkInLastKnownRegistry } from '../modules/wallets/walletProvider/defaultImplementations/switchActiveNetworkInLastKnownRegistry';\n/** @category Extension Development */\nexport { createWalletProviderEventEmitter } from '../modules/wallets/walletProvider/events/createWalletProviderEventEmitter';\n/** @category Extension Development */\nexport { splitWalletProviderKey } from '../modules/wallets/walletProvider/splitWalletProviderKey';\n/** @category Extension Development */\nexport {\n getWalletProviderRegistry,\n WalletProviderPriority,\n} from '../modules/wallets/walletProviderRegistry';\n/** @category Extension Development */\nexport type {\n AsyncProcessEntry,\n AsyncProcessStatus,\n AsyncTrack,\n AsyncTrackEmitter,\n} from '../services/asyncTrack/asyncTrack.types';\n/** @category Extension Development */\nexport { createCrossTabBroadcast } from '../services/crossTabBroadcast/createCrossTabBroadcast';\n/** @category Extension Development */\nexport type {\n CrossTabBroadcast,\n CrossTabBroadcastMessage,\n} from '../services/crossTabBroadcast';\n/** @category Extension Development */\nexport { CrossTabBroadcastMessageSchema } from '../services/crossTabBroadcast';\n/** @category Extension Development */\nexport { createLogger } from '../services/logger/createLogger';\n/** @category Extension Development */\nexport type { Logger, LogLevel } from '../services/logger/logger.types';\n/** @category Extension Development */\nexport type { PasskeyService } from '../services/passkey';\n/** @category Extension Development */\nexport {\n createRuntimeServiceAccessKey,\n type RuntimeServices,\n} from '../services/runtimeServices';\n/** @category Extension Development */\nexport {\n createLocalStorageAdapter,\n createStorage,\n createStorageKeySchema,\n type Storage,\n type StorageAdapter,\n type StorageKeySchema,\n} from '../services/storage';\n/** @category Extension Development */\nexport type { ExtendParameters } from '../types/ExtendParameters';\n/** @category Extension Development */\nexport { assertDefined } from '../utils/assertDefined';\n/** @category Extension Development */\nexport { bufferToBase64 } from '../utils/bufferToBase64';\n/** @category Extension Development */\nexport type { DebouncedMutex } from '../utils/debouncedMutex/debouncedMutex.types';\n/** @category Extension Development */\nexport { filterDuplicates } from '../utils/filterDuplicates';\n/** @category Extension Development */\nexport { getBuffer } from '../utils/getBuffer';\n/** @category Extension Development */\nexport { getChainFromVerifiedCredentialChain } from '../utils/getChainFromVerifiedCredentialChain';\n/** @category Extension Development */\nexport { getNonce } from '../utils/getNonce';\n/** @category Extension Development */\nexport { parseAmountToSmallestUnit } from '../utils/parseAmountToSmallestUnit';\n/** @category Extension Development */\nexport type { ObservableState } from '../utils/observable/observable.types';\n/** @category Extension Development */\nexport { createSignInMessageStatement } from '../modules/wallets/utils/getSignInMessage/createSignInMessageStatement';\n/** @category Extension Development */\nexport { subscribeWithSelector } from '../utils/observable/subscribeWithSelector';\n/** @category Extension Development */\nexport { updateWalletProviderKeysForVerifiedCredentials } from '../modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials';\n/** @category Extension Development */\nexport { DYNAMIC_ICONIC_SPRITE_URL } from '../constants';\n/** @category Extension Development */\nexport { createDeferredPromise } from '../utils/deferredPromise';\n/** @category Extension Development */\nexport { getDeviceSigner } from '../modules/deviceRegistration/getDeviceSigner';\n/** @category Extension Development */\nexport { getHeadersForNonceSignedByDeviceSigners } from '../modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners';\n/** @category Extension Development */\nexport { createDeviceSignatureHeadersMiddleware } from '../modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware';\n"],"mappings":";;;;;;;;;;;;AAEA,IAAa,yBAAb,cAA4CA,oCAAU;CACpD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;;;;;;ACRN,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,YAAY,YAAoB;AAC9B,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,mCAAmC;GAClD,CAAC;;;;;;ACRN,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cACE;GACH,CAAC;;;;;;;;;;;;;;;;ACMN,MAAa,qBACX,EAAE,gBACF,WACG;AAGH,CAFaC,kCAAQ,OAAO,CAEvB,WAAW,IAAI,aAAa;;;;;AClBnC,MAAa,yBAAyB,OAAO,WAA0B;CAGrE,MAAM,yBAFOC,kCAAQ,OAAO,CAEQ,UAAU,WAC5CC,2EACD;AAED,yCAAc,wBAAwB,qCAAqC;AAE3E,OAAM,uBAAuB;AAE7B,yCACE,OAAO,iBACP,kEACD;AAED,QAAO,OAAO;;;;;ACfhB,MAAa,6BACX,OACA,iBACqD;CACrD,mBAAmB,YAAY;CAC/B;CACA,aAAa,YAAY;CACzB,SAAS,YAAY;CACrB,IAAI,GAAG,MAAM,GAAG,YAAY;CAC5B,gBAAgB,YAAY;CAC5B,WAAW,YAAY;CACvB,SAAS,YAAY;CACrB,SAAS,YAAY;CACtB;;;;ACTD,MAAa,8BACX,EAAE,WAAW,SACb,WAC4B;AAQ5B,QAPqBC,wDAAgB,OAAO,CAEX,MAC9B,gBACC,YAAY,cAAc,aAAa,YAAY,UAAU,MAChE;;;;;ACfH,MAAa,kCAAkCC,iDAAuB;CACpE,KAAK;CACL,QAAQC,SAAE,OAAOA,SAAE,QAAQ,EAAEA,SAAE,QAAQ,CAAC;CACzC,CAAC;;;;;;;;;;;ACSF,MAAa,kCACX,WAC6B;CAC7B,MAAM,OAAOC,kCAAQ,OAAO;CAE5B,MAAM,+CAA+B,IAAI,KAAqB;CAE9D,MAAMC,eAAyD,OAAO,EACpE,wBACI;AAMJ,MAAI,6BAA6B,IAAI,kBAAkB,CACrD,QAAO,EACL,WAAW,6BAA6B,IACtC,kBACD,EACF;EAGH,MAAM,iBAAiB,MAAM,KAAK,QAAQ,QACxC,gCACD;AAED,MAAI,kBAAkB,eAAe,oBAAoB;GACvD,MAAM,YAAY,eAAe;AAEjC,gCAA6B,IAAI,mBAAmB,UAAU;AAE9D,UAAO,EAAE,WAAW;;EAGtB,MAAM,iBAAiBC,qEACrB,EAAE,mBAAmB,EACrB,OACD;EAED,MAAM,mBAAmBC,4DAAoB,OAAO;AAEpD,MAAI,iBAAiB,WAAW,EAC9B,OAAM,IAAIC,iEAAyB;EAGrC,MAAM,yBAAyB,iBAAiB,MAC7C,oBAAoB,gBAAgB,UAAU,eAAe,MAC/D;AAED,0CACE,wBACA,+BAA+B,eAAe,QAC/C;AAED,+BAA6B,IAC3B,mBACA,uBAAuB,UACxB;AAGD,SAAO,EAAE,WAAW,uBAAuB,WAAW;;CAGxD,MAAMC,eAAyD,OAAO,EACpE,WACA,wBACI;AACJ,+BAA6B,IAAI,mBAAmB,UAAU;AAE9D,QAAM,KAAK,QAAQ,QACjB,iCACA,OAAO,YAAY,6BAA6B,SAAS,CAAC,CAC3D;;AAGH,QAAO;EAAE;EAAc;EAAc;;;;;ACzFvC,MAAa,8BAA8BC,4EACzC,gCACC,WAAW,+BAA+B,OAAO,CACnD;;;;ACND,MAAa,gCAAgC,eAC3C,WAAW,QAAQ,iBAAiB,GAAG,CAAC,aAAa;;;;;;;;;;;;;;;;;ACcvD,MAAa,6BAA0C,SAAsB;AAC3E,KAAI,OAAO,WAAW,YACpB,QAAO,EAAE;CAIX,MAAMC,SAAkB,KAAK,MAAM,IAAI,CAAC,QAErC,KAAK,QAAS,OAAO,OAAO,OAAQ,IAAY,MACjD,OACD;AAED,KAAI,OAAO,WAAW,YAAY,WAAW,KAC3C,QAAO,EAAE;AAGX,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO;CAGT,MAAMC,YAAiB,EAAE;CAGzB,MAAM,iBAAkB,OAAe;AAGvC,KAAI,kBAAkB,MAAM,QAAQ,eAAe,CACjD,WAAU,KAAK,GAAI,eAAuB;AAK5C,WAAU,KAAK,OAAY;AAE3B,QAAO;;;;;AChDT,MAAa,iCACX,SACa;AACb,KAAI,OAAO,WAAW,YACpB,QAAO;CAIT,MAAMC,SAAkB,KAAK,MAAM,IAAI,CAAC,QAErC,KAAK,QAAS,OAAO,OAAO,OAAQ,IAAY,MACjD,OACD;AAED,KAAI,OAAO,WAAW,YAAY,WAAW,KAC3C,QAAO;AAGT,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO,OAAO,SAAS,IAAK,OAAO,KAAW;CAIhD,MAAM,iBAAkB,OAAe;AAEvC,KAAI,kBAAkB,MAAM,QAAQ,eAAe,CACjD,QAAO,eAAe,SAAS,IAAK,eAAe,KAAW;AAGhE,QAAO;;;;;ACrBT,MAAaC,0CACX,OAAO,EAAE,QAAQ,wBAAwB;AAGvC,QAFwB,4BAA4B,OAAO,CAEpC,aAAa,EAAE,mBAAmB,CAAC;;;;;ACH9D,MAAaC,yCACX,OAAO,EAAE,QAAQ,WAAW,wBAAwB;AAGlD,OAFwB,4BAA4B,OAAO,CAErC,aAAa;EACjC;EACA;EACD,CAAC;;;;;;;;;;AC0BN,MAAa,oCAA8C,EACzD,sBACA,qBACA,kBAAkB;CAAC;CAAmB;CAAgB;CAAiB,OACxB;CAC/C,IAAIC;;CAGJ,IAAIC;CAEJ,MAAM,yBAAyB,WAAoC;AACjE,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,mBAAmB,OAAO;;CAG9C,MAAM,2BAA2B;AAC/B,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,eAAe;;CAGnC,MAAM,wBAAwB,WAAkC;AAC9D,0CAAc,cAAc,4BAA4B;AACxD,eAAa,KAAK,kBAAkB,OAAO;;CAG7C,MAAM,4BAA4B;AAChC,MAAI,CAAC,aACH;AAGF,uBAAqB;GACnB;GACA;GACA;GACA;GACD,CAAC;AAEF,iBAAe;;CAGjB,MAAM,wBAAkD;AACtD,MAAI,CAAC,cAAc;AACjB,kBAAe,IAAIC,uBAAoC;AAEvD,sBAAmB,oBAAoB;IACrC;IACA;IACA;IACD,CAAC;;AAGJ,SAAO,OAAO,OAAO,cAAc,EAAE,iBAAiB,CAAC;;AAGzD,QAAO;EACL;EACA;EACD;;;;;AClGH,MAAa,kBAAkB,QAA4B;CACzD,MAAM,SAAS,MAAM,UAAU,IAC5B,KAAK,MAAM,OAAe,OAAO,aAAa,GAAG,CAAC,CAClD,KAAK,GAAG;AACX,QAAOC,qCAAW,CAAC,KAAK,QAAQ,SAAS,CAAC,SAAS,SAAS;;;;;;;;;ACF9D,MAAa,oBAAuB,UAClC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;ACe5B,MAAa,6BAA6B,EACxC,QACA,eAC6C;CAC7C,MAAM,CAAC,QAAQ,KAAK,WAAW,MAAM,OAAO,MAAM,IAAI;CACtD,MAAM,iBAAiB,SAAS,OAAO,UAAU,IAAI,CAAC,MAAM,GAAG,SAAS;AACxE,QAAO,OAAO,QAAQ,eAAe;;;;;mECpBlBC,gCAAaC,kCAAe"}
|
package/dist/core.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { C as InvalidWalletProviderKeyError, S as splitWalletProviderKey, b as formatWalletAccountId, c as getWalletProviders, f as getWalletProviderFromWalletAccount, g as NoWalletProviderFoundError, h as createRuntimeServiceAccessKey, m as getWalletProviderRegistry, n as getWalletProviderByKey, p as WalletProviderPriority, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as emitWalletAccountsChangedEvent, v as formatWalletProviderKey, w as emitEvent, y as normalizeWalletNameWithChain } from "./getVerifiedCredentialForWalletAccount-
|
|
4
|
-
import "./isMfaRequiredForAction-
|
|
5
|
-
import { n as
|
|
1
|
+
import { D as isCookieEnabled, E as getBuffer, F as ClientNotFoundError, I as BaseError, L as getCore, M as DYNAMIC_SDK_API_VERSION, N as getDefaultClient, O as assertDefined, R as name, T as getSessionKeys, a as DYNAMIC_ICONIC_SPRITE_URL, c as CHAINS_INFO_MAP, f as createDeviceSignatureHeadersMiddleware, g as createStorageKeySchema, k as ValueMustBeDefinedError, m as getDeviceSigner, p as getHeadersForNonceSignedByDeviceSigners, s as getChainFromVerifiedCredentialChain, u as createApiClient, v as getNonce, w as APIError, z as version } from "./InvalidParamError-Dyk0GfyN.esm.js";
|
|
2
|
+
import { M as InvalidStorageSet, N as createLocalStorageAdapter, O as generateSessionKeys, S as createDeferredPromise, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as CrossTabBroadcastMessageSchema, c as createSignInMessageStatement, d as createVisit, f as hasExtension, i as getNetworksData, j as createStorage, k as subscribeWithSelector, l as formatSignInMessage, m as consumeCaptchaToken, n as getNetworkProviders, o as verifyMessageSignatureOwnership, p as setCaptchaToken, r as getNetworkProviderBuilderRegistry, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createLogger, w as FETCH_PROJECT_SETTINGS_TRACKER_KEY, x as CannotTrackError, y as createCrossTabBroadcast } from "./getNetworkProviderFromNetworkId-ySZUpmOr.esm.js";
|
|
3
|
+
import { C as InvalidWalletProviderKeyError, S as splitWalletProviderKey, b as formatWalletAccountId, c as getWalletProviders, f as getWalletProviderFromWalletAccount, g as NoWalletProviderFoundError, h as createRuntimeServiceAccessKey, m as getWalletProviderRegistry, n as getWalletProviderByKey, p as WalletProviderPriority, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as emitWalletAccountsChangedEvent, v as formatWalletProviderKey, w as emitEvent, y as normalizeWalletNameWithChain } from "./getVerifiedCredentialForWalletAccount-Ch8h_J_W.esm.js";
|
|
4
|
+
import "./isMfaRequiredForAction-D1sFhYH1.esm.js";
|
|
5
|
+
import { n as consumeMfaTokenIfRequiredForAction, t as getSignedSessionId } from "./getSignedSessionId-BxhxGkA4.esm.js";
|
|
6
6
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
7
7
|
import * as z from "zod/mini";
|
|
8
8
|
import EventEmitter from "eventemitter3";
|
|
@@ -271,62 +271,26 @@ const bufferToBase64 = (buf) => {
|
|
|
271
271
|
const filterDuplicates = (array) => Array.from(new Set(array));
|
|
272
272
|
|
|
273
273
|
//#endregion
|
|
274
|
-
//#region src/
|
|
275
|
-
const deviceSigningKeysSchema = z.object({
|
|
276
|
-
privateJwk: z.custom(),
|
|
277
|
-
privateKey: z.string(),
|
|
278
|
-
publicKey: z.string()
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
//#endregion
|
|
282
|
-
//#region src/modules/deviceRegistration/getDeviceSigner/getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.ts
|
|
274
|
+
//#region src/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.ts
|
|
283
275
|
/**
|
|
284
|
-
*
|
|
285
|
-
*
|
|
276
|
+
* Converts a human-readable decimal amount string to the smallest unit
|
|
277
|
+
* representation as a bigint, using string-based arithmetic to avoid
|
|
278
|
+
* floating-point precision loss.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* parseAmountToSmallestUnit({ amount: '1.5', decimals: 9 }) // 1500000000n (1.5 SOL in lamports)
|
|
282
|
+
* parseAmountToSmallestUnit({ amount: '1.5', decimals: 8 }) // 150000000n (1.5 BTC in satoshis)
|
|
283
|
+
* parseAmountToSmallestUnit({ amount: '10.5', decimals: 6 }) // 10500000n (10.5 USDC)
|
|
284
|
+
* parseAmountToSmallestUnit({ amount: '0.1', decimals: 9 }) // 100000000n (no float error)
|
|
285
|
+
*
|
|
286
|
+
* @param params.amount - The amount as a decimal string (e.g. "1.5").
|
|
287
|
+
* @param params.decimals - The number of decimal places for the token.
|
|
288
|
+
* @returns The amount in smallest units as a bigint.
|
|
286
289
|
*/
|
|
287
|
-
const
|
|
288
|
-
const
|
|
289
|
-
const
|
|
290
|
-
|
|
291
|
-
const userDeviceSigningKeysStorageKeySchema = createStorageKeySchema({
|
|
292
|
-
key: `user_device_signing_keys_${user.id}`,
|
|
293
|
-
schema: deviceSigningKeysSchema
|
|
294
|
-
});
|
|
295
|
-
const deviceSigningKeys = await storage.getItem(userDeviceSigningKeysStorageKeySchema);
|
|
296
|
-
if (deviceSigningKeys) return deviceSigningKeys;
|
|
297
|
-
const { public: publicKey, private: privateKey, privateJwk } = await p256Keygen();
|
|
298
|
-
await storage.setItem(userDeviceSigningKeysStorageKeySchema, {
|
|
299
|
-
privateJwk,
|
|
300
|
-
privateKey,
|
|
301
|
-
publicKey
|
|
302
|
-
});
|
|
303
|
-
return {
|
|
304
|
-
privateJwk,
|
|
305
|
-
privateKey,
|
|
306
|
-
publicKey
|
|
307
|
-
};
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
//#endregion
|
|
311
|
-
//#region src/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.ts
|
|
312
|
-
const getDeviceSigner = async (client) => {
|
|
313
|
-
const { deviceSigner } = getCore(client);
|
|
314
|
-
/**
|
|
315
|
-
* If the device signer is available, it should handle the device signing
|
|
316
|
-
* This is used for mobile devices with secure enclave.
|
|
317
|
-
*/
|
|
318
|
-
if (deviceSigner) return deviceSigner;
|
|
319
|
-
/**
|
|
320
|
-
* For web devices we want to auto create one PK per user id.
|
|
321
|
-
*/
|
|
322
|
-
const userDeviceSigningKeys = await getOrCreateUserDeviceSigningKeys(client);
|
|
323
|
-
return {
|
|
324
|
-
getPublicKey: async () => userDeviceSigningKeys.publicKey,
|
|
325
|
-
sign: (payload) => p256Sign({
|
|
326
|
-
message: payload,
|
|
327
|
-
privateKeyJwk: userDeviceSigningKeys.privateJwk
|
|
328
|
-
})
|
|
329
|
-
};
|
|
290
|
+
const parseAmountToSmallestUnit = ({ amount, decimals }) => {
|
|
291
|
+
const [whole = "0", fraction = ""] = amount.split(".");
|
|
292
|
+
const paddedFraction = fraction.padEnd(decimals, "0").slice(0, decimals);
|
|
293
|
+
return BigInt(whole + paddedFraction);
|
|
330
294
|
};
|
|
331
295
|
|
|
332
296
|
//#endregion
|
|
@@ -334,5 +298,5 @@ const getDeviceSigner = async (client) => {
|
|
|
334
298
|
assertPackageVersion(name, version);
|
|
335
299
|
|
|
336
300
|
//#endregion
|
|
337
|
-
export { APIError, CHAINS_INFO_MAP, CannotTrackError, ClientNotFoundError, ClientsDoNotMatchError, CrossTabBroadcastMessageSchema, DYNAMIC_ICONIC_SPRITE_URL, DYNAMIC_SDK_API_VERSION, InvalidStorageSet, InvalidWalletProviderKeyError, MethodNotImplementedError, MultipleClientsFoundError, NoWalletProviderFoundError, ValueMustBeDefinedError, WalletProviderPriority, assertDefined, bufferToBase64, consumeCaptchaToken, consumeMfaTokenIfRequiredForAction, createApiClient, createBaseNetworkProvider, createCrossTabBroadcast, createDeferredPromise, createLocalStorageAdapter, createLogger, createRuntimeServiceAccessKey, createSignInMessageStatement, createStorage, createStorageKeySchema, createVisit, createWalletProviderEventEmitter, emitEvent, emitWalletAccountsChangedEvent, filterDuplicates, formatSignInMessage, formatWalletAccountId, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getAllProvidersFromWindow, getBuffer, getChainFromVerifiedCredentialChain, getCore, getDefaultClient, getDeviceSigner, getInjectedProviderFromWindow, getLastKnownNetworkRegistry, getNetworkDataForNetworkId, getNetworkProviderBuilderRegistry, getNetworkProviderFromNetworkId, getNetworkProviders, getNonce, getSessionKeys, getSignedSessionId, getVerifiedCredentialForWalletAccount, getWalletProviderFromWalletAccount, getWalletProviderRegistry, getWalletProviders, hasExtension, isCookieEnabled, normalizeWalletNameWithChain, registerExtension, removeUnverifiedWalletAccount, setCaptchaToken, setUnverifiedWalletAccounts, splitWalletProviderKey, subscribeWithSelector, switchActiveNetworkInLastKnownRegistry, updateAuthFromVerifyResponse, updateWalletProviderKeysForVerifiedCredentials, verifyMessageSignatureOwnership, waitForProjectSettings };
|
|
301
|
+
export { APIError, CHAINS_INFO_MAP, CannotTrackError, ClientNotFoundError, ClientsDoNotMatchError, CrossTabBroadcastMessageSchema, DYNAMIC_ICONIC_SPRITE_URL, DYNAMIC_SDK_API_VERSION, InvalidStorageSet, InvalidWalletProviderKeyError, MethodNotImplementedError, MultipleClientsFoundError, NoWalletProviderFoundError, ValueMustBeDefinedError, WalletProviderPriority, assertDefined, bufferToBase64, consumeCaptchaToken, consumeMfaTokenIfRequiredForAction, createApiClient, createBaseNetworkProvider, createCrossTabBroadcast, createDeferredPromise, createDeviceSignatureHeadersMiddleware, createLocalStorageAdapter, createLogger, createRuntimeServiceAccessKey, createSignInMessageStatement, createStorage, createStorageKeySchema, createVisit, createWalletProviderEventEmitter, emitEvent, emitWalletAccountsChangedEvent, filterDuplicates, formatSignInMessage, formatWalletAccountId, formatWalletProviderGroupKey, formatWalletProviderKey, generateSessionKeys, getActiveNetworkIdFromLastKnownRegistry, getAllProvidersFromWindow, getBuffer, getChainFromVerifiedCredentialChain, getCore, getDefaultClient, getDeviceSigner, getHeadersForNonceSignedByDeviceSigners, getInjectedProviderFromWindow, getLastKnownNetworkRegistry, getNetworkDataForNetworkId, getNetworkProviderBuilderRegistry, getNetworkProviderFromNetworkId, getNetworkProviders, getNonce, getSessionKeys, getSignedSessionId, getVerifiedCredentialForWalletAccount, getWalletProviderFromWalletAccount, getWalletProviderRegistry, getWalletProviders, hasExtension, isCookieEnabled, normalizeWalletNameWithChain, parseAmountToSmallestUnit, registerExtension, removeUnverifiedWalletAccount, setCaptchaToken, setUnverifiedWalletAccounts, splitWalletProviderKey, subscribeWithSelector, switchActiveNetworkInLastKnownRegistry, updateAuthFromVerifyResponse, updateWalletProviderKeysForVerifiedCredentials, verifyMessageSignatureOwnership, waitForProjectSettings };
|
|
338
302
|
//# sourceMappingURL=core.esm.js.map
|