@dynamic-labs-sdk/client 0.1.0-alpha.9 → 0.1.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/CHANGELOG.md +302 -0
- package/InvalidParamError.cjs.js +2 -2
- package/InvalidParamError.esm.js +1 -1
- package/NotWaasWalletAccountError.cjs.js +7 -7
- package/NotWaasWalletAccountError.esm.js +2 -2
- package/constants.cjs.js +493 -9
- package/constants.cjs2.js +15 -0
- package/constants.esm.js +468 -7
- package/constants.esm2.js +11 -0
- package/core.cjs.js +96 -41
- package/core.esm.js +47 -10
- package/filterDuplicates.cjs.js +8 -0
- package/filterDuplicates.esm.js +6 -0
- package/getNetworkProviderFromNetworkId.cjs.js +178 -20
- package/getNetworkProviderFromNetworkId.esm.js +150 -3
- package/getSignedSessionId.cjs.js +7 -7
- package/getSignedSessionId.esm.js +2 -2
- package/getVerifiedCredentialForWalletAccount.cjs.js +515 -0
- package/getVerifiedCredentialForWalletAccount.esm.js +491 -0
- package/index.cjs.js +1231 -470
- package/index.esm.js +1028 -280
- package/isMfaRequiredForAction.cjs.js +15 -8
- package/isMfaRequiredForAction.esm.js +8 -2
- package/package.json +4 -4
- package/src/client/core/createCore/createCore.d.ts.map +1 -1
- package/src/client/core/createCore/getInitialState.d.ts.map +1 -1
- package/src/client/core/types/DynamicCore.d.ts +8 -0
- package/src/client/core/types/DynamicCore.d.ts.map +1 -1
- package/src/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
- package/src/client/types/DynamicClientConfig.d.ts +6 -1
- package/src/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/src/constants.d.ts +1 -0
- package/src/constants.d.ts.map +1 -1
- package/src/errors/APIError/APIError.d.ts.map +1 -1
- package/src/errors/InvalidWalletProviderKeyError.d.ts +5 -0
- package/src/errors/InvalidWalletProviderKeyError.d.ts.map +1 -0
- package/src/errors/MissingUserVerificationError.d.ts +12 -0
- package/src/errors/MissingUserVerificationError.d.ts.map +1 -0
- package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts +5 -0
- package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts.map +1 -0
- package/src/errors/WalletAccountNotSelectedError.d.ts.map +1 -1
- package/src/exports/core.d.ts +102 -2
- package/src/exports/core.d.ts.map +1 -1
- package/src/exports/index.d.ts +25 -7
- package/src/exports/index.d.ts.map +1 -1
- package/src/exports/waas.d.ts +2 -0
- package/src/exports/waas.d.ts.map +1 -1
- package/src/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/src/modules/auth/createVisit/createVisit.d.ts.map +1 -1
- package/src/modules/auth/logout/logout.d.ts.map +1 -1
- package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts +4 -1
- package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts.map +1 -1
- package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts +4 -1
- package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts.map +1 -1
- package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts +4 -1
- package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts.map +1 -1
- package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts +9 -0
- package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts.map +1 -0
- package/src/modules/auth/social/getUserSocialAccounts/index.d.ts +2 -0
- package/src/modules/auth/social/getUserSocialAccounts/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect/signInWithSocialRedirect.d.ts → authenticateWithSocial/authenticateWithSocial.d.ts} +5 -3
- package/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/authenticateWithSocial/index.d.ts +2 -0
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts → completeSocialAuthentication/completeSocialAuthentication.d.ts} +3 -3
- package/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/completeSocialAuthentication/index.d.ts +2 -0
- package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn → completeSocialAuthentication}/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts +1 -1
- package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts +1 -1
- package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts +2 -0
- package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts +14 -0
- package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts.map +1 -0
- package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts +2 -0
- package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts.map +1 -0
- package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts +2 -0
- package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts.map +1 -0
- package/src/modules/auth/social/social.types.d.ts +9 -0
- package/src/modules/auth/social/social.types.d.ts.map +1 -1
- package/src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.d.ts.map +1 -1
- package/src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
- package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts +1 -2
- package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts.map +1 -1
- package/src/modules/balances/getMultichainBalances/index.d.ts +1 -1
- package/src/modules/balances/getMultichainBalances/index.d.ts.map +1 -1
- package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts +18 -0
- package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts.map +1 -0
- package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts +2 -0
- package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts.map +1 -0
- package/src/modules/funding/coinbase/coinbase.types.d.ts +269 -0
- package/src/modules/funding/coinbase/coinbase.types.d.ts.map +1 -0
- package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts +11 -0
- package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts.map +1 -0
- package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts +2 -0
- package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts.map +1 -0
- package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts +10 -0
- package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts.map +1 -0
- package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts +2 -0
- package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts.map +1 -0
- package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts +23 -0
- package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts.map +1 -0
- package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts +2 -0
- package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts.map +1 -0
- package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts +2 -0
- package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts.map +1 -0
- package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts +4 -0
- package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts.map +1 -0
- package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts +10 -0
- package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts.map +1 -0
- package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts +2 -0
- package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts.map +1 -0
- package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts +8 -0
- package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts.map +1 -0
- package/src/modules/initializeClient/consts.d.ts +5 -0
- package/src/modules/initializeClient/consts.d.ts.map +1 -0
- package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/src/modules/initializeClient/waitForProjectSettings/index.d.ts +2 -0
- package/src/modules/initializeClient/waitForProjectSettings/index.d.ts.map +1 -0
- package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts +3 -0
- package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts.map +1 -0
- package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts +2 -1
- package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts.map +1 -1
- package/src/modules/otp/verifyOTP/verifyOTP.d.ts +3 -2
- package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
- package/src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts.map +1 -1
- package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts +1 -1
- package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts.map +1 -1
- package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
- package/src/modules/storageSync/schema.d.ts +15 -2
- package/src/modules/storageSync/schema.d.ts.map +1 -1
- package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
- package/src/modules/user/deleteUser/deleteUser.d.ts +11 -0
- package/src/modules/user/deleteUser/deleteUser.d.ts.map +1 -0
- package/src/modules/user/deleteUser/index.d.ts +2 -0
- package/src/modules/user/deleteUser/index.d.ts.map +1 -0
- package/src/modules/waas/constants.d.ts +2 -2
- package/src/modules/waas/constants.d.ts.map +1 -1
- package/src/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
- package/src/modules/waas/delegateWaasKeyShares/delegateWaasKeyShares.d.ts.map +1 -1
- package/src/modules/waas/getWaasWalletProviderByChain/getWaasWalletProviderByChain.d.ts.map +1 -1
- package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts +14 -0
- package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts.map +1 -0
- package/src/modules/waas/hasDelegatedAccess/index.d.ts +2 -0
- package/src/modules/waas/hasDelegatedAccess/index.d.ts.map +1 -0
- package/src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.d.ts.map +1 -1
- package/src/modules/waas/isWaasWalletProvider/isWaasWalletProvider.d.ts.map +1 -1
- package/src/modules/waas/revokeWaasDelegation/index.d.ts +2 -0
- package/src/modules/waas/revokeWaasDelegation/index.d.ts.map +1 -0
- package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts +16 -0
- package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts.map +1 -0
- package/src/modules/waas/waas.types.d.ts +4 -0
- package/src/modules/waas/waas.types.d.ts.map +1 -1
- package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts +4 -3
- package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts.map +1 -1
- package/src/modules/wallets/constants.d.ts.map +1 -1
- package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts +2 -6
- package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts.map +1 -1
- package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts +7 -0
- package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts.map +1 -0
- package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts +2 -0
- package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts.map +1 -0
- package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts +8 -0
- package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts.map +1 -0
- package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts +2 -0
- package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts.map +1 -0
- package/src/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts.map +1 -1
- package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts +9 -1
- package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts.map +1 -1
- package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts +14 -0
- package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts.map +1 -0
- package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts +2 -0
- package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts.map +1 -0
- package/src/modules/wallets/isWalletAccountVerified/index.d.ts +2 -0
- package/src/modules/wallets/isWalletAccountVerified/index.d.ts.map +1 -0
- package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts +13 -0
- package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts.map +1 -0
- package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts +10 -0
- package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts.map +1 -0
- package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts +2 -0
- package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts.map +1 -0
- package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +26 -0
- package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts.map +1 -0
- package/src/modules/wallets/networks/getTransactionHistory/index.d.ts +3 -0
- package/src/modules/wallets/networks/getTransactionHistory/index.d.ts.map +1 -0
- package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.d.ts.map +1 -1
- package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts +1 -1
- package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts.map +1 -1
- package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts +1 -1
- package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts.map +1 -1
- package/src/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts +5 -0
- package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts.map +1 -1
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +2 -0
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -1
- package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts +5 -1
- package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts +6 -1
- package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts +9 -7
- package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts.map +1 -1
- package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts +9 -0
- package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts.map +1 -0
- package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts +2 -0
- package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts +17 -2
- package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts.map +1 -1
- package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts +4 -0
- package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts.map +1 -0
- package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts +2 -0
- package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/getChainIdForAccountVerification/getChainIdForAccountVerification.d.ts.map +1 -1
- package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts +2 -0
- package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts.map +1 -0
- package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts +2 -0
- package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts +3 -0
- package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts.map +1 -0
- package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts +2 -0
- package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/getSignInMessage/getSignInMessage.d.ts.map +1 -1
- package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts +8 -0
- package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts.map +1 -0
- package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts +2 -0
- package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts +2 -0
- package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts.map +1 -0
- package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts +12 -0
- package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts.map +1 -0
- package/src/modules/wallets/verifySignInMessage/index.d.ts +2 -0
- package/src/modules/wallets/verifySignInMessage/index.d.ts.map +1 -0
- package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts +22 -0
- package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts.map +1 -0
- package/src/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/walletAccount/index.d.ts +1 -1
- package/src/modules/wallets/walletAccount/index.d.ts.map +1 -1
- package/src/modules/wallets/walletAccount/walletAccount.types.d.ts +8 -0
- package/src/modules/wallets/walletAccount/walletAccount.types.d.ts.map +1 -1
- package/src/modules/wallets/walletProvider/index.d.ts +1 -1
- package/src/modules/wallets/walletProvider/index.d.ts.map +1 -1
- package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts +2 -0
- package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts +9 -0
- package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +24 -8
- package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts +10 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts +2 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts +3 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts +16 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts +2 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts +7 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts +12 -0
- package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts.map +1 -0
- package/src/services/asyncTrack/asyncTrack.types.d.ts +5 -1
- package/src/services/asyncTrack/asyncTrack.types.d.ts.map +1 -1
- package/src/services/asyncTrack/createAsyncTrack.d.ts.map +1 -1
- package/src/services/storage/index.d.ts +1 -1
- package/src/services/storage/index.d.ts.map +1 -1
- package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts +3 -0
- package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts.map +1 -0
- package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts +2 -0
- package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts.map +1 -0
- package/src/utils/debouncedMutex/debouncedMutex.types.d.ts +39 -0
- package/src/utils/debouncedMutex/debouncedMutex.types.d.ts.map +1 -0
- package/src/utils/debouncedMutex/index.d.ts +2 -0
- package/src/utils/debouncedMutex/index.d.ts.map +1 -0
- package/waas.cjs.js +86 -38
- package/waas.esm.js +62 -16
- package/waasCore.cjs.js +21 -10
- package/waasCore.esm.js +15 -4
- package/getWalletProviderByKey.cjs.js +0 -74
- package/getWalletProviderByKey.esm.js +0 -69
- package/logout.cjs.js +0 -1086
- package/logout.esm.js +0 -1020
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts +0 -2
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts.map +0 -1
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts +0 -4
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/index.d.ts +0 -2
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/index.d.ts +0 -2
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +0 -1
- package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts +0 -3
- package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts.map +0 -1
- package/src/modules/wallets/utils/createWalletAccountId/index.d.ts +0 -2
- package/src/modules/wallets/utils/createWalletAccountId/index.d.ts.map +0 -1
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/index.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/buildOAuthUrl.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/index.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts +0 -0
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
import { g as getDefaultClient, a as getCore, B as BaseError, d as assertDefined, k as getChainFromVerifiedCredentialChain, _ as _extends, i as isCookieEnabled } from './constants.esm.js';
|
|
2
|
+
import { WalletProviderEnum, JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sefelly sets the cookie in the browser.
|
|
6
|
+
*/ const setCookie = (cookie)=>{
|
|
7
|
+
// eslint-disable-next-line no-restricted-globals
|
|
8
|
+
document.cookie = cookie;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Adds an event listener for Dynamic client events.
|
|
13
|
+
*
|
|
14
|
+
* This function allows you to listen for various events emitted by the Dynamic client,
|
|
15
|
+
* such as authentication state changes, wallet connections, and more.
|
|
16
|
+
*
|
|
17
|
+
* @param params.event - The event name to listen for.
|
|
18
|
+
* @param params.listener - The callback function to execute when the event is fired.
|
|
19
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
20
|
+
* @returns A function that can be called to remove the listener.
|
|
21
|
+
*/ const onEvent = ({ event, listener }, client = getDefaultClient())=>{
|
|
22
|
+
const { eventEmitter } = getCore(client);
|
|
23
|
+
eventEmitter.on(event, listener);
|
|
24
|
+
return ()=>{
|
|
25
|
+
eventEmitter.off(event, listener);
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Removes an event listener from Dynamic client events.
|
|
30
|
+
*
|
|
31
|
+
* This function unsubscribes a previously registered event listener
|
|
32
|
+
* from the specified Dynamic client event.
|
|
33
|
+
*
|
|
34
|
+
* @param params.event - The event name to remove the listener from.
|
|
35
|
+
* @param params.listener - The callback function to remove.
|
|
36
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
37
|
+
*/ const offEvent = ({ event, listener }, client = getDefaultClient())=>{
|
|
38
|
+
const { eventEmitter } = getCore(client);
|
|
39
|
+
eventEmitter.off(event, listener);
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Adds a one-time event listener for Dynamic client events.
|
|
43
|
+
*
|
|
44
|
+
* This function listens for an event that will automatically remove itself
|
|
45
|
+
* after being triggered once.
|
|
46
|
+
*
|
|
47
|
+
* @param params.event - The event name to listen for.
|
|
48
|
+
* @param params.listener - The callback function to execute when the event is fired.
|
|
49
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
50
|
+
* @returns A function that can be called to remove the listener before it fires.
|
|
51
|
+
*/ const onceEvent = ({ event, listener }, client = getDefaultClient())=>{
|
|
52
|
+
const { eventEmitter } = getCore(client);
|
|
53
|
+
eventEmitter.once(event, listener);
|
|
54
|
+
return ()=>{
|
|
55
|
+
eventEmitter.off(event, listener);
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Emits a Dynamic client event.
|
|
60
|
+
*
|
|
61
|
+
* This function triggers an event that will be received by all registered
|
|
62
|
+
* listeners for the specified event type.
|
|
63
|
+
*
|
|
64
|
+
* @param params.event - The event name to emit.
|
|
65
|
+
* @param params.args - The arguments to pass to event listeners.
|
|
66
|
+
* @param client - The Dynamic client instance.
|
|
67
|
+
*/ const emitEvent = ({ event, args }, client)=>{
|
|
68
|
+
const { eventEmitter } = getCore(client);
|
|
69
|
+
eventEmitter.emit(event, args);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
class InvalidWalletProviderKeyError extends BaseError {
|
|
73
|
+
constructor(value){
|
|
74
|
+
super({
|
|
75
|
+
cause: null,
|
|
76
|
+
code: 'invalid_wallet_provider_key',
|
|
77
|
+
docsUrl: null,
|
|
78
|
+
name: 'InvalidWalletProviderKeyError',
|
|
79
|
+
shortMessage: `Invalid wallet provider key: ${value}. Key must be in the format of <normalizedWalletNameWithChain>:<walletProviderType>[:<suffix>]`
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const splitWalletProviderKey = (walletProviderKey)=>{
|
|
85
|
+
const [normalizedWalletNameWithChain, walletProviderType, suffix, ...rest] = walletProviderKey.split(':');
|
|
86
|
+
if (!normalizedWalletNameWithChain || !Object.values(WalletProviderEnum).includes(walletProviderType) || rest.length > 0) {
|
|
87
|
+
throw new InvalidWalletProviderKeyError(walletProviderKey);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
normalizedWalletNameWithChain,
|
|
91
|
+
suffix,
|
|
92
|
+
walletProviderType: walletProviderType
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const normalizeAddress = (address, chain)=>{
|
|
97
|
+
let normalizedAddress = address;
|
|
98
|
+
if (normalizedAddress == null ? void 0 : normalizedAddress.startsWith('0x')) {
|
|
99
|
+
normalizedAddress = normalizedAddress.slice(2);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* These are standard from CAIP-2: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md
|
|
103
|
+
* see also: https://github.com/ChainAgnostic/namespaces
|
|
104
|
+
* note: no standard namespace currently exists for flow
|
|
105
|
+
*/ const chainsThatRequireLowercaseAddress = [
|
|
106
|
+
'EVM',
|
|
107
|
+
'FLOW'
|
|
108
|
+
];
|
|
109
|
+
normalizedAddress = chainsThatRequireLowercaseAddress.includes(chain) ? normalizedAddress == null ? void 0 : normalizedAddress.toLowerCase() : normalizedAddress;
|
|
110
|
+
return normalizedAddress;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const formatWalletAccountId = ({ address, chain, walletProviderKey })=>{
|
|
114
|
+
const { normalizedWalletNameWithChain } = splitWalletProviderKey(walletProviderKey);
|
|
115
|
+
const normalizedAddress = normalizeAddress(address, chain);
|
|
116
|
+
return `${normalizedWalletNameWithChain}:${normalizedAddress}`;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
const convertUnverifiedWalletAccountToWalletAccount = ({ unverifiedWalletAccount })=>({
|
|
120
|
+
address: unverifiedWalletAccount.address,
|
|
121
|
+
addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,
|
|
122
|
+
chain: unverifiedWalletAccount.chain,
|
|
123
|
+
id: formatWalletAccountId({
|
|
124
|
+
address: unverifiedWalletAccount.address,
|
|
125
|
+
chain: unverifiedWalletAccount.chain,
|
|
126
|
+
walletProviderKey: unverifiedWalletAccount.walletProviderKey
|
|
127
|
+
}),
|
|
128
|
+
lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,
|
|
129
|
+
verifiedCredentialId: null,
|
|
130
|
+
walletProviderKey: unverifiedWalletAccount.walletProviderKey
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Format the raw wallet name and chain to get the value we can use for
|
|
135
|
+
* verified credentials' `walletName` field.
|
|
136
|
+
*/ const normalizeWalletNameWithChain = ({ displayName, chain })=>{
|
|
137
|
+
const sanitizedWalletName = displayName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
|
|
138
|
+
const chainLowered = chain.toLocaleLowerCase();
|
|
139
|
+
if (sanitizedWalletName.endsWith(chainLowered)) {
|
|
140
|
+
return sanitizedWalletName;
|
|
141
|
+
}
|
|
142
|
+
return `${sanitizedWalletName}${chainLowered}`;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Assembles the wallet provider key from the wallet name, chain, and wallet provider type.
|
|
147
|
+
*
|
|
148
|
+
* The suffix is optional and can be used to add a uniquely identifying string to the key, which
|
|
149
|
+
* might be necessary for some wallet providers (like Wallet Connect).
|
|
150
|
+
*
|
|
151
|
+
* IMPORTANT: Do NOT add a suffix unless absolutely necessary, as it will cause the wallet account
|
|
152
|
+
* to not be able to find its wallet provider when connecting to a new device (it won't be possible
|
|
153
|
+
* to determine the full key just from the Verified Credential data).
|
|
154
|
+
*/ const formatWalletProviderKey = ({ suffix, chain, displayName, walletProviderType })=>{
|
|
155
|
+
const normalizedNameWithChain = normalizeWalletNameWithChain({
|
|
156
|
+
chain,
|
|
157
|
+
displayName
|
|
158
|
+
});
|
|
159
|
+
return `${normalizedNameWithChain}:${walletProviderType}${suffix ? `:${suffix}` : ''}`;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
const getWalletProviderKeyFromVerifiedCredential = ({ verifiedCredential }, client)=>{
|
|
163
|
+
const core = getCore(client);
|
|
164
|
+
const { walletProviderKeyMap } = core.state.get();
|
|
165
|
+
const storedWalletProviderKey = walletProviderKeyMap[verifiedCredential.id];
|
|
166
|
+
if (storedWalletProviderKey) {
|
|
167
|
+
return {
|
|
168
|
+
walletProviderKey: storedWalletProviderKey
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* We fallback to comprising the wallet provider key from walletName and walletProvider.
|
|
173
|
+
*
|
|
174
|
+
* Some wallet provider types (like Wallet Connect) also use a special suffix for their wallet provider
|
|
175
|
+
* keys, so this won't be enough for them.
|
|
176
|
+
* Therefore, for those specific wallet providers, the wallet account will remain without a wallet provider
|
|
177
|
+
* and will require reconnection.
|
|
178
|
+
* Read walletProvider.types.ts for more info.
|
|
179
|
+
*/ assertDefined(verifiedCredential.walletName, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletName`);
|
|
180
|
+
assertDefined(verifiedCredential.walletProvider, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletProvider`);
|
|
181
|
+
assertDefined(verifiedCredential.chain, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing chain`);
|
|
182
|
+
/**
|
|
183
|
+
* Historically, walletNames did not include the chain name as a suffix.
|
|
184
|
+
* This piece of logic simply ensures we normalize any legacy walletNames to conform.
|
|
185
|
+
*/ const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
|
|
186
|
+
const walletProviderKey = formatWalletProviderKey({
|
|
187
|
+
chain,
|
|
188
|
+
displayName: verifiedCredential.walletName,
|
|
189
|
+
walletProviderType: verifiedCredential.walletProvider
|
|
190
|
+
});
|
|
191
|
+
return {
|
|
192
|
+
walletProviderKey
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
const convertVerifiedCredentialToWalletAccount = ({ verifiedCredential }, client)=>{
|
|
197
|
+
assertDefined(verifiedCredential.address, 'Missing address in verified credential');
|
|
198
|
+
assertDefined(verifiedCredential.chain, 'Missing chain in verified credential');
|
|
199
|
+
const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
|
|
200
|
+
const { walletProviderKey } = getWalletProviderKeyFromVerifiedCredential({
|
|
201
|
+
verifiedCredential
|
|
202
|
+
}, client);
|
|
203
|
+
const walletAccountId = formatWalletAccountId({
|
|
204
|
+
address: verifiedCredential.address,
|
|
205
|
+
chain,
|
|
206
|
+
walletProviderKey
|
|
207
|
+
});
|
|
208
|
+
var _verifiedCredential_lastSelectedAt;
|
|
209
|
+
return {
|
|
210
|
+
address: verifiedCredential.address,
|
|
211
|
+
addressesWithTypes: verifiedCredential.walletAdditionalAddresses,
|
|
212
|
+
chain,
|
|
213
|
+
id: walletAccountId,
|
|
214
|
+
lastSelectedAt: (_verifiedCredential_lastSelectedAt = verifiedCredential.lastSelectedAt) != null ? _verifiedCredential_lastSelectedAt : null,
|
|
215
|
+
verifiedCredentialId: verifiedCredential.id,
|
|
216
|
+
walletProviderKey
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
const getWalletAccountsFromState = ({ unverifiedWalletAccounts, user }, client)=>{
|
|
221
|
+
const walletAccountsMap = new Map();
|
|
222
|
+
/**
|
|
223
|
+
* Handle the unverified wallet accounts before the user verified credentials
|
|
224
|
+
* so the later verified wallet accounts can override the unverified wallet accounts
|
|
225
|
+
*/ unverifiedWalletAccounts.forEach((unverifiedWalletAccount)=>{
|
|
226
|
+
const walletAccount = convertUnverifiedWalletAccountToWalletAccount({
|
|
227
|
+
unverifiedWalletAccount
|
|
228
|
+
});
|
|
229
|
+
walletAccountsMap.set(walletAccount.id, walletAccount);
|
|
230
|
+
});
|
|
231
|
+
var _user_verifiedCredentials;
|
|
232
|
+
/**
|
|
233
|
+
* Handle user verified credentials
|
|
234
|
+
*/ const verifiedCredentials = (_user_verifiedCredentials = user == null ? void 0 : user.verifiedCredentials) != null ? _user_verifiedCredentials : [];
|
|
235
|
+
verifiedCredentials.filter((verified)=>verified.format === JwtVerifiedCredentialFormatEnum.Blockchain).forEach((verifiedWalletAccount)=>{
|
|
236
|
+
const walletAccount = convertVerifiedCredentialToWalletAccount({
|
|
237
|
+
verifiedCredential: verifiedWalletAccount
|
|
238
|
+
}, client);
|
|
239
|
+
walletAccountsMap.set(walletAccount.id, walletAccount);
|
|
240
|
+
});
|
|
241
|
+
return Array.from(walletAccountsMap.values());
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Retrieves all wallet accounts associated with the current session.
|
|
246
|
+
*
|
|
247
|
+
* This function returns both verified and unverified wallet accounts,
|
|
248
|
+
* combining data from user credentials and local unverified accounts.
|
|
249
|
+
* You can differentiate between verified and unverified wallet accounts by
|
|
250
|
+
* checking the `verifiedCredentialId` property.
|
|
251
|
+
*
|
|
252
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
253
|
+
* @returns An array of wallet accounts associated with the session.
|
|
254
|
+
*/ const getWalletAccounts = (client = getDefaultClient())=>{
|
|
255
|
+
const core = getCore(client);
|
|
256
|
+
const { unverifiedWalletAccounts, user } = core.state.get();
|
|
257
|
+
return getWalletAccountsFromState({
|
|
258
|
+
unverifiedWalletAccounts,
|
|
259
|
+
user
|
|
260
|
+
}, client);
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
class NoWalletProviderFoundError extends BaseError {
|
|
264
|
+
constructor({ walletProviderKey }){
|
|
265
|
+
super({
|
|
266
|
+
cause: null,
|
|
267
|
+
code: 'no_wallet_provider_found_error',
|
|
268
|
+
docsUrl: null,
|
|
269
|
+
name: 'NoWalletProviderFoundError',
|
|
270
|
+
shortMessage: `No wallet provider found with key: ${walletProviderKey}`
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Creates a service accessor function that manages service instantiation and caching.
|
|
277
|
+
* The returned function will either retrieve an existing service from the registry or
|
|
278
|
+
* create a new one using the provided builder function.
|
|
279
|
+
*
|
|
280
|
+
* @template - The type of service to be created/accessed
|
|
281
|
+
* @param key - Unique identifier for the service in the registry
|
|
282
|
+
* @param builder - Function that creates the service instance when called with a DynamicClient
|
|
283
|
+
*/ const createRuntimeServiceAccessKey = (key, builder)=>(client)=>{
|
|
284
|
+
const { runtimeServices } = getCore(client);
|
|
285
|
+
const currentService = runtimeServices.getByKey(key);
|
|
286
|
+
if (currentService) {
|
|
287
|
+
return currentService;
|
|
288
|
+
}
|
|
289
|
+
const service = builder(client);
|
|
290
|
+
runtimeServices.register(key, service);
|
|
291
|
+
return service;
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Creates a new wallet provider registry that manages wallet providers with priority-based registration.
|
|
296
|
+
*
|
|
297
|
+
* @returns The wallet provider registry instance
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* ```typescript
|
|
301
|
+
* const registry = createWalletProviderRegistry();
|
|
302
|
+
*
|
|
303
|
+
* registry.register({
|
|
304
|
+
* priority: WalletProviderPriority.WALLET_SDK,
|
|
305
|
+
* walletProvider: myWalletProvider
|
|
306
|
+
* });
|
|
307
|
+
*
|
|
308
|
+
* const provider = registry.getByKey('my-wallet-key');
|
|
309
|
+
* const providers = registry.listProviders();
|
|
310
|
+
* ```
|
|
311
|
+
*/ const createWalletProviderRegistry = (client)=>{
|
|
312
|
+
const registry = new Map();
|
|
313
|
+
return {
|
|
314
|
+
getByKey: (key)=>{
|
|
315
|
+
var _registry_get;
|
|
316
|
+
return (_registry_get = registry.get(key)) == null ? void 0 : _registry_get.walletProvider;
|
|
317
|
+
},
|
|
318
|
+
listProviders: ()=>Array.from(registry.values()).map((v)=>v.walletProvider),
|
|
319
|
+
register: (args)=>{
|
|
320
|
+
const existingEntry = registry.get(args.walletProvider.key);
|
|
321
|
+
if (existingEntry) {
|
|
322
|
+
if (existingEntry.priority < args.priority) {
|
|
323
|
+
registry.set(args.walletProvider.key, args);
|
|
324
|
+
emitEvent({
|
|
325
|
+
args: {
|
|
326
|
+
walletProviderKey: args.walletProvider.key
|
|
327
|
+
},
|
|
328
|
+
event: 'walletProviderChanged'
|
|
329
|
+
}, client);
|
|
330
|
+
}
|
|
331
|
+
} else {
|
|
332
|
+
registry.set(args.walletProvider.key, args);
|
|
333
|
+
emitEvent({
|
|
334
|
+
args: {
|
|
335
|
+
walletProvider: args.walletProvider
|
|
336
|
+
},
|
|
337
|
+
event: 'walletProviderRegistered'
|
|
338
|
+
}, client);
|
|
339
|
+
emitEvent({
|
|
340
|
+
args: {
|
|
341
|
+
walletProviderKey: args.walletProvider.key
|
|
342
|
+
},
|
|
343
|
+
event: 'walletProviderChanged'
|
|
344
|
+
}, client);
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
unregister: (key)=>{
|
|
348
|
+
registry.delete(key);
|
|
349
|
+
emitEvent({
|
|
350
|
+
args: {
|
|
351
|
+
walletProviderKey: key
|
|
352
|
+
},
|
|
353
|
+
event: 'walletProviderUnregistered'
|
|
354
|
+
}, client);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* This function provides access to a shared instance of the wallet provider registry.
|
|
361
|
+
*
|
|
362
|
+
* It ensures that the same registry instance is used throughout the client to maintaining
|
|
363
|
+
* consistency of registered wallet providers across different parts of the codebase.
|
|
364
|
+
*
|
|
365
|
+
* @returns The wallet provider registry instance
|
|
366
|
+
*
|
|
367
|
+
* @example
|
|
368
|
+
* ```typescript
|
|
369
|
+
* // Get the registry instance
|
|
370
|
+
* const registry = getWalletProviderRegistry();
|
|
371
|
+
*
|
|
372
|
+
* // Register a wallet provider
|
|
373
|
+
* registry.register({
|
|
374
|
+
* priority: WalletProviderPriority.WALLET_SDK,
|
|
375
|
+
* walletProvider: myWalletProvider
|
|
376
|
+
* });
|
|
377
|
+
*
|
|
378
|
+
* // Retrieve a specific provider
|
|
379
|
+
* const provider = registry.getByKey('metamaskevm');
|
|
380
|
+
* ```
|
|
381
|
+
*/ const getWalletProviderRegistry = createRuntimeServiceAccessKey('walletProviderRegistry', (client)=>createWalletProviderRegistry(client));
|
|
382
|
+
|
|
383
|
+
var WalletProviderPriority;
|
|
384
|
+
(function(WalletProviderPriority) {
|
|
385
|
+
/**
|
|
386
|
+
* Highest priority should be used by wallet providers that implement
|
|
387
|
+
* the most reliable wallet integration.
|
|
388
|
+
* example: The SDK provided by the wallet provider.
|
|
389
|
+
*/ WalletProviderPriority[WalletProviderPriority["WALLET_SDK"] = 100] = "WALLET_SDK";
|
|
390
|
+
/**
|
|
391
|
+
* Medium priority should be used by wallet providers that implement
|
|
392
|
+
* a wallet integration via some reliable standard.
|
|
393
|
+
* example: A wallet provider that uses EIP6963 announcement.
|
|
394
|
+
*/ WalletProviderPriority[WalletProviderPriority["WALLET_SELF_ANNOUNCEMENT_STANDARD"] = 50] = "WALLET_SELF_ANNOUNCEMENT_STANDARD";
|
|
395
|
+
/**
|
|
396
|
+
* Low priority should be used by wallet providers that implement
|
|
397
|
+
* a wallet integration on a less reliable standard.
|
|
398
|
+
* example: A wallet provider that uses window.ethereum, where the
|
|
399
|
+
* window key can be overridden by other extensions.
|
|
400
|
+
*/ WalletProviderPriority[WalletProviderPriority["WINDOW_INJECT"] = 20] = "WINDOW_INJECT";
|
|
401
|
+
})(WalletProviderPriority || (WalletProviderPriority = {}));
|
|
402
|
+
|
|
403
|
+
const getWalletProviderFromWalletAccount = ({ walletAccount }, client)=>{
|
|
404
|
+
const walletProviderRegistry = getWalletProviderRegistry(client);
|
|
405
|
+
const walletProvider = walletProviderRegistry.getByKey(walletAccount.walletProviderKey);
|
|
406
|
+
if (!walletProvider) {
|
|
407
|
+
throw new NoWalletProviderFoundError({
|
|
408
|
+
walletProviderKey: walletAccount.walletProviderKey
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
return walletProvider;
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Emits the `walletAccountsChanged` event.
|
|
418
|
+
*/ const emitWalletAccountsChangedEvent = (client)=>{
|
|
419
|
+
const walletAccounts = getWalletAccounts(client);
|
|
420
|
+
emitEvent({
|
|
421
|
+
args: {
|
|
422
|
+
walletAccounts
|
|
423
|
+
},
|
|
424
|
+
event: 'walletAccountsChanged'
|
|
425
|
+
}, client);
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client)=>{
|
|
429
|
+
const core = getCore(client);
|
|
430
|
+
const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);
|
|
431
|
+
const walletAccountsHashAfter = getWalletAccountsHash(core.state.get(), client);
|
|
432
|
+
if (walletAccountsHashBefore !== walletAccountsHashAfter) {
|
|
433
|
+
emitWalletAccountsChangedEvent(client);
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
const getWalletAccountsHash = (state, client)=>getWalletAccountsFromState(state, client).map((walletAccount)=>JSON.stringify(walletAccount)).sort().join('-');
|
|
437
|
+
|
|
438
|
+
const updateAuthFromVerifyResponse = ({ response }, client)=>{
|
|
439
|
+
const core = getCore(client);
|
|
440
|
+
const previousState = _extends({}, core.state.get());
|
|
441
|
+
const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;
|
|
442
|
+
// Expires at is in seconds, so we need to convert it to milliseconds
|
|
443
|
+
const sessionExpiresAt = new Date(expiresAt * 1000);
|
|
444
|
+
const newState = {
|
|
445
|
+
legacyToken: jwt != null ? jwt : null,
|
|
446
|
+
sessionExpiresAt: sessionExpiresAt,
|
|
447
|
+
token: minifiedJwt != null ? minifiedJwt : null,
|
|
448
|
+
user
|
|
449
|
+
};
|
|
450
|
+
// only override the mfaToken if a new one is provided in the response
|
|
451
|
+
if (mfaToken) {
|
|
452
|
+
newState.mfaToken = mfaToken;
|
|
453
|
+
}
|
|
454
|
+
core.state.set(newState);
|
|
455
|
+
/**
|
|
456
|
+
* For customers using a sandbox environment with cookies enabled, we need to set the cookie
|
|
457
|
+
* programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
|
|
458
|
+
* so customers can access the cookie from document.cookie consistently between sandbox and live environments.
|
|
459
|
+
*/ if (minifiedJwt && isCookieEnabled(client)) {
|
|
460
|
+
const expireDate = sessionExpiresAt.toUTCString();
|
|
461
|
+
setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${expireDate}; path=/; SameSite=Lax`);
|
|
462
|
+
}
|
|
463
|
+
checkAndRaiseWalletAccountsChangedEvent({
|
|
464
|
+
previousState
|
|
465
|
+
}, client);
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Get all available wallet providers to interact with internally.
|
|
470
|
+
*/ const getWalletProviders = (client)=>{
|
|
471
|
+
const walletProviderRegistry = getWalletProviderRegistry(client);
|
|
472
|
+
return walletProviderRegistry.listProviders();
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
const getWalletProviderByKey = ({ walletProviderKey }, client)=>{
|
|
476
|
+
const walletProviders = getWalletProviders(client);
|
|
477
|
+
const walletProvider = walletProviders.find((walletProvider)=>walletProvider.key === walletProviderKey);
|
|
478
|
+
if (!walletProvider) {
|
|
479
|
+
throw new NoWalletProviderFoundError({
|
|
480
|
+
walletProviderKey
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
return walletProvider;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
const getVerifiedCredentialForWalletAccount = ({ walletAccount }, client)=>{
|
|
487
|
+
var _client_user;
|
|
488
|
+
return (_client_user = client.user) == null ? void 0 : _client_user.verifiedCredentials.find((vc)=>vc.id === walletAccount.verifiedCredentialId);
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
export { DYNAMIC_AUTH_COOKIE_NAME as D, InvalidWalletProviderKeyError as I, NoWalletProviderFoundError as N, WalletProviderPriority as W, getWalletProviderFromWalletAccount as a, getWalletProviderByKey as b, checkAndRaiseWalletAccountsChangedEvent as c, emitWalletAccountsChangedEvent as d, emitEvent as e, formatWalletAccountId as f, getWalletAccounts as g, getWalletProviders as h, getVerifiedCredentialForWalletAccount as i, onceEvent as j, onEvent as k, createRuntimeServiceAccessKey as l, formatWalletProviderKey as m, normalizeAddress as n, offEvent as o, normalizeWalletNameWithChain as p, splitWalletProviderKey as q, getWalletProviderRegistry as r, setCookie as s, updateAuthFromVerifyResponse as u };
|