@dynamic-labs-sdk/evm 1.31.1 → 1.32.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.
Files changed (81) hide show
  1. package/dist/{addWaasEvmExtension-CyXCTxGv.esm.js → addWaasEvmExtension-BMR_gR6B.esm.js} +10 -6
  2. package/dist/addWaasEvmExtension-BMR_gR6B.esm.js.map +1 -0
  3. package/dist/{addWaasEvmExtension-CP2ibnvq.cjs → addWaasEvmExtension-BjoGfmQX.cjs} +9 -5
  4. package/dist/addWaasEvmExtension-BjoGfmQX.cjs.map +1 -0
  5. package/dist/{addWaasEvmExtension-DYKWl5DG.native.esm.js → addWaasEvmExtension-KdZlXrUW.native.esm.js} +10 -6
  6. package/dist/addWaasEvmExtension-KdZlXrUW.native.esm.js.map +1 -0
  7. package/dist/baseAccount.cjs +1 -1
  8. package/dist/baseAccount.esm.js +1 -1
  9. package/dist/baseAccount.native.esm.js +1 -1
  10. package/dist/core.cjs +1 -1
  11. package/dist/core.esm.js +1 -1
  12. package/dist/core.native.esm.js +1 -1
  13. package/dist/eip6963.cjs +1 -1
  14. package/dist/eip6963.esm.js +1 -1
  15. package/dist/eip6963.native.esm.js +1 -1
  16. package/dist/exports/metamask.d.ts +1 -0
  17. package/dist/exports/metamask.d.ts.map +1 -1
  18. package/dist/index.cjs +2 -2
  19. package/dist/index.esm.js +2 -2
  20. package/dist/index.native.esm.js +2 -2
  21. package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.constants.d.ts +2 -0
  22. package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.constants.d.ts.map +1 -0
  23. package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.d.ts +0 -1
  24. package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.d.ts.map +1 -1
  25. package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/index.d.ts +2 -0
  26. package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/index.d.ts.map +1 -0
  27. package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.d.ts +24 -0
  28. package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.d.ts.map +1 -0
  29. package/dist/metamask.cjs +90 -53
  30. package/dist/metamask.cjs.map +1 -1
  31. package/dist/metamask.esm.js +91 -55
  32. package/dist/metamask.esm.js.map +1 -1
  33. package/dist/metamask.native.esm.js +91 -55
  34. package/dist/metamask.native.esm.js.map +1 -1
  35. package/dist/{package-DrSY9NJE.esm.js → package-Buv-COeE.esm.js} +2 -2
  36. package/dist/package-Buv-COeE.esm.js.map +1 -0
  37. package/dist/{package-BnSw-03C.native.esm.js → package-CDmY_azZ.native.esm.js} +2 -2
  38. package/dist/package-CDmY_azZ.native.esm.js.map +1 -0
  39. package/dist/{package-Dk-SYXOE.cjs → package-CZoCrdEM.cjs} +2 -2
  40. package/dist/package-CZoCrdEM.cjs.map +1 -0
  41. package/dist/tempo.cjs +1 -1
  42. package/dist/tempo.esm.js +1 -1
  43. package/dist/tempo.native.esm.js +1 -1
  44. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  45. package/dist/viem.cjs +1 -1
  46. package/dist/viem.esm.js +1 -1
  47. package/dist/viem.native.esm.js +1 -1
  48. package/dist/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.d.ts.map +1 -1
  49. package/dist/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.d.ts.map +1 -1
  50. package/dist/waas.cjs +2 -2
  51. package/dist/waas.esm.js +2 -2
  52. package/dist/waas.native.esm.js +2 -2
  53. package/dist/walletConnect/addWalletConnectEvmExtension/addWalletConnectEvmExtension.d.ts.map +1 -1
  54. package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/index.d.ts +2 -0
  55. package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/index.d.ts.map +1 -0
  56. package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/registerWalletConnectEvmUriConnectionStarter.d.ts +19 -0
  57. package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/registerWalletConnectEvmUriConnectionStarter.d.ts.map +1 -0
  58. package/dist/walletConnect.cjs +85 -58
  59. package/dist/walletConnect.cjs.map +1 -1
  60. package/dist/walletConnect.esm.js +86 -59
  61. package/dist/walletConnect.esm.js.map +1 -1
  62. package/dist/walletConnect.native.esm.js +86 -59
  63. package/dist/walletConnect.native.esm.js.map +1 -1
  64. package/dist/windowInjected/utils/detectEvmWalletFromProvider/detectEvmWalletFromProvider.d.ts.map +1 -1
  65. package/dist/windowInjected/utils/isProviderSelectionRouter/index.d.ts +2 -0
  66. package/dist/windowInjected/utils/isProviderSelectionRouter/index.d.ts.map +1 -0
  67. package/dist/windowInjected/utils/isProviderSelectionRouter/isProviderSelectionRouter.d.ts +30 -0
  68. package/dist/windowInjected/utils/isProviderSelectionRouter/isProviderSelectionRouter.d.ts.map +1 -0
  69. package/dist/windowInjected.cjs +34 -1
  70. package/dist/windowInjected.cjs.map +1 -1
  71. package/dist/windowInjected.esm.js +34 -1
  72. package/dist/windowInjected.esm.js.map +1 -1
  73. package/dist/windowInjected.native.esm.js +34 -1
  74. package/dist/windowInjected.native.esm.js.map +1 -1
  75. package/package.json +5 -5
  76. package/dist/addWaasEvmExtension-CP2ibnvq.cjs.map +0 -1
  77. package/dist/addWaasEvmExtension-CyXCTxGv.esm.js.map +0 -1
  78. package/dist/addWaasEvmExtension-DYKWl5DG.native.esm.js.map +0 -1
  79. package/dist/package-BnSw-03C.native.esm.js.map +0 -1
  80. package/dist/package-Dk-SYXOE.cjs.map +0 -1
  81. package/dist/package-DrSY9NJE.esm.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { a as evmConfirmTransaction, n as evmExecuteYieldTransaction, r as evmExecuteSwapTransaction, s as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-BQy79Fgj.esm.js";
2
2
  import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-Dr5Vws1-.esm.js";
3
3
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
4
- import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
4
+ import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActionAuthorizationTokens, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
5
5
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
6
6
  import { toAccount } from "viem/accounts";
7
7
  import { MFAAction as MFAAction$1, TokenScope, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
@@ -14,8 +14,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
14
14
  const { address: contractAddress, chainId, nonce } = parameters;
15
15
  assertDefined(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
17
- const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, dynamicClient);
18
- const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
17
+ const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens({
18
+ mfaAction: MFAAction.WalletWaasSign,
19
+ scope: TokenScope.Walletsign
20
+ }, dynamicClient);
19
21
  const waasClient = await waasProvider.getWaasClient();
20
22
  const authorization = {
21
23
  address: contractAddress,
@@ -48,8 +50,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
48
50
  /** @notInstrumented */
49
51
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
50
52
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
51
- const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction$1.WalletWaasSign }, dynamicClient);
52
- const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
53
+ const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens({
54
+ mfaAction: MFAAction$1.WalletWaasSign,
55
+ scope: TokenScope.Walletsign
56
+ }, dynamicClient);
53
57
  const waasClient = await waasProvider.getWaasClient();
54
58
  const stringifiedTypedData = stringify(typedData);
55
59
  const serializableTypedData = JSON.parse(stringifiedTypedData);
@@ -199,4 +203,4 @@ const addWaasEvmExtension = (client = getDefaultClient$1()) => {
199
203
 
200
204
  //#endregion
201
205
  export { addWaasEvmExtension as t };
202
- //# sourceMappingURL=addWaasEvmExtension-CyXCTxGv.esm.js.map
206
+ //# sourceMappingURL=addWaasEvmExtension-BMR_gR6B.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-BMR_gR6B.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n): Promise<string> => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmExecuteYieldTransaction } from '../../../utils/evmExecuteYieldTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n executeYieldTransaction: (args) =>\n evmExecuteYieldTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -14,8 +14,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
14
14
  const { address: contractAddress, chainId, nonce } = parameters;
15
15
  (0, _dynamic_labs_sdk_client_core.assertDefined)(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await (0, _dynamic_labs_sdk_client_core.getSignedSessionId)(dynamicClient);
17
- const mfaToken = await (0, _dynamic_labs_sdk_client_core.consumeMfaTokenIfRequiredForAction)({ mfaAction: _dynamic_labs_sdk_client.MFAAction.WalletWaasSign }, dynamicClient);
18
- const elevatedAccessToken = (0, _dynamic_labs_sdk_client_core.getElevatedAccessToken)({ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign }, dynamicClient);
17
+ const { elevatedAccessToken, mfaToken } = await (0, _dynamic_labs_sdk_client_core.getActionAuthorizationTokens)({
18
+ mfaAction: _dynamic_labs_sdk_client.MFAAction.WalletWaasSign,
19
+ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign
20
+ }, dynamicClient);
19
21
  const waasClient = await waasProvider.getWaasClient();
20
22
  const authorization = {
21
23
  address: contractAddress,
@@ -48,8 +50,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
48
50
  /** @notInstrumented */
49
51
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
50
52
  const { signature: signedSessionId } = await (0, _dynamic_labs_sdk_client_core.getSignedSessionId)(dynamicClient);
51
- const mfaToken = await (0, _dynamic_labs_sdk_client_core.consumeMfaTokenIfRequiredForAction)({ mfaAction: _dynamic_labs_sdk_api_core.MFAAction.WalletWaasSign }, dynamicClient);
52
- const elevatedAccessToken = (0, _dynamic_labs_sdk_client_core.getElevatedAccessToken)({ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign }, dynamicClient);
53
+ const { elevatedAccessToken, mfaToken } = await (0, _dynamic_labs_sdk_client_core.getActionAuthorizationTokens)({
54
+ mfaAction: _dynamic_labs_sdk_api_core.MFAAction.WalletWaasSign,
55
+ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign
56
+ }, dynamicClient);
53
57
  const waasClient = await waasProvider.getWaasClient();
54
58
  const stringifiedTypedData = (0, viem.stringify)(typedData);
55
59
  const serializableTypedData = JSON.parse(stringifiedTypedData);
@@ -204,4 +208,4 @@ Object.defineProperty(exports, 'addWaasEvmExtension', {
204
208
  return addWaasEvmExtension;
205
209
  }
206
210
  });
207
- //# sourceMappingURL=addWaasEvmExtension-CP2ibnvq.cjs.map
211
+ //# sourceMappingURL=addWaasEvmExtension-BjoGfmQX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-BjoGfmQX.cjs","names":["MFAAction","TokenScope","MFAAction","TokenScope","mapNetworkDataToViemChain","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","evmConfirmTransaction","evmExecuteSwapTransaction","evmExecuteYieldTransaction","evmTransferAmount","WalletProviderPriority"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n): Promise<string> => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmExecuteYieldTransaction } from '../../../utils/evmExecuteYieldTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n executeYieldTransaction: (args) =>\n evmExecuteYieldTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { a as evmConfirmTransaction, n as evmExecuteYieldTransaction, r as evmExecuteSwapTransaction, s as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-BftkuI-H.native.esm.js";
2
2
  import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-BOVFIupF.native.esm.js";
3
3
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
4
- import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
4
+ import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActionAuthorizationTokens, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
5
5
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
6
6
  import { toAccount } from "viem/accounts";
7
7
  import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
@@ -14,8 +14,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
14
14
  const { address: contractAddress, chainId, nonce } = parameters;
15
15
  assertDefined(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
17
- const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, dynamicClient);
18
- const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
17
+ const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens({
18
+ mfaAction: MFAAction.WalletWaasSign,
19
+ scope: TokenScope.Walletsign
20
+ }, dynamicClient);
19
21
  const waasClient = await waasProvider.getWaasClient();
20
22
  const authorization = {
21
23
  address: contractAddress,
@@ -48,8 +50,10 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
48
50
  /** @notInstrumented */
49
51
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
50
52
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
51
- const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction$1.WalletWaasSign }, dynamicClient);
52
- const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
53
+ const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens({
54
+ mfaAction: MFAAction$1.WalletWaasSign,
55
+ scope: TokenScope.Walletsign
56
+ }, dynamicClient);
53
57
  const waasClient = await waasProvider.getWaasClient();
54
58
  const stringifiedTypedData = stringify(typedData);
55
59
  const serializableTypedData = JSON.parse(stringifiedTypedData);
@@ -199,4 +203,4 @@ const addWaasEvmExtension = (client = getDefaultClient$1()) => {
199
203
 
200
204
  //#endregion
201
205
  export { addWaasEvmExtension as t };
202
- //# sourceMappingURL=addWaasEvmExtension-DYKWl5DG.native.esm.js.map
206
+ //# sourceMappingURL=addWaasEvmExtension-KdZlXrUW.native.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-KdZlXrUW.native.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n getActionAuthorizationTokens,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n): Promise<string> => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const { elevatedAccessToken, mfaToken } = await getActionAuthorizationTokens(\n {\n mfaAction: MFAAction.WalletWaasSign,\n scope: TokenScope.Walletsign,\n },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmExecuteYieldTransaction } from '../../../utils/evmExecuteYieldTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n executeYieldTransaction: (args) =>\n evmExecuteYieldTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_package = require('./package-Dk-SYXOE.cjs');
1
+ const require_package = require('./package-CZoCrdEM.cjs');
2
2
  const require_evmTransferAmount = require('./evmTransferAmount-Ddvx91b0.cjs');
3
3
  require('./createPublicClientFromNetworkData-BAC8YTrK.cjs');
4
4
  const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-E1WbEBET.cjs');
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-DrSY9NJE.esm.js";
1
+ import { n as version, t as name } from "./package-Buv-COeE.esm.js";
2
2
  import { s as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-BQy79Fgj.esm.js";
3
3
  import "./createPublicClientFromNetworkData-CKikh3WW.esm.js";
4
4
  import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-HOkyZ1dS.esm.js";
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-BnSw-03C.native.esm.js";
1
+ import { n as version, t as name } from "./package-CDmY_azZ.native.esm.js";
2
2
  import { s as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-BftkuI-H.native.esm.js";
3
3
  import "./createPublicClientFromNetworkData-9g8Hsu4A.native.esm.js";
4
4
  import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-CDRA4dpW.native.esm.js";
package/dist/core.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_package = require('./package-Dk-SYXOE.cjs');
1
+ const require_package = require('./package-CZoCrdEM.cjs');
2
2
  const require_isEvmWalletProvider = require('./isEvmWalletProvider-pIGuzazF.cjs');
3
3
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
4
4
 
package/dist/core.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-DrSY9NJE.esm.js";
1
+ import { n as version, t as name } from "./package-Buv-COeE.esm.js";
2
2
  import { t as isEvmWalletProvider } from "./isEvmWalletProvider-BbWMsj-k.esm.js";
3
3
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
4
4
 
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-BnSw-03C.native.esm.js";
1
+ import { n as version, t as name } from "./package-CDmY_azZ.native.esm.js";
2
2
  import { t as isEvmWalletProvider } from "./isEvmWalletProvider-CPLo4h33.native.esm.js";
3
3
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
4
4
 
package/dist/eip6963.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_package = require('./package-Dk-SYXOE.cjs');
1
+ const require_package = require('./package-CZoCrdEM.cjs');
2
2
  require('./evmTransferAmount-Ddvx91b0.cjs');
3
3
  require('./createPublicClientFromNetworkData-BAC8YTrK.cjs');
4
4
  require('./createWalletProviderFromEIP1193Provider-E1WbEBET.cjs');
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-DrSY9NJE.esm.js";
1
+ import { n as version, t as name } from "./package-Buv-COeE.esm.js";
2
2
  import "./evmTransferAmount-BQy79Fgj.esm.js";
3
3
  import "./createPublicClientFromNetworkData-CKikh3WW.esm.js";
4
4
  import "./createWalletProviderFromEIP1193Provider-HOkyZ1dS.esm.js";
@@ -1,4 +1,4 @@
1
- import { n as version, t as name } from "./package-BnSw-03C.native.esm.js";
1
+ import { n as version, t as name } from "./package-CDmY_azZ.native.esm.js";
2
2
  import { t as addEIP6963Extension } from "./addEIP6963Extension-ZpGdqv-5.native.esm.js";
3
3
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
4
4
 
@@ -4,5 +4,6 @@ export { connectWithMetaMaskUriEvm } from '../metamask/connectWithMetaMaskUriEvm
4
4
  export type { ConnectWithMetaMaskUriEvmParams } from '../metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm';
5
5
  export { MetaMaskDirectConnectNotSupportedError } from '../errors/MetaMaskDirectConnectNotSupportedError';
6
6
  export { getMetaMaskEvmExtensionWalletProviderKey } from '../metamask/getMetaMaskEvmExtensionWalletProviderKey';
7
+ export { registerMetaMaskEvmUriConnectionStarter } from '../metamask/registerMetaMaskEvmUriConnectionStarter';
7
8
  export { MetaMaskDisplayUriMissingError } from '@dynamic-labs-sdk/metamask';
8
9
  //# sourceMappingURL=metamask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metamask.d.ts","sourceRoot":"","sources":["../../src/exports/metamask.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,gDAAgD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,YAAY,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AACvH,OAAO,EAAE,sCAAsC,EAAE,MAAM,kDAAkD,CAAC;AAC1G,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"metamask.d.ts","sourceRoot":"","sources":["../../src/exports/metamask.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,gDAAgD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,YAAY,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AACvH,OAAO,EAAE,sCAAsC,EAAE,MAAM,kDAAkD,CAAC;AAC1G,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAC;AAC9G,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
- const require_package = require('./package-Dk-SYXOE.cjs');
1
+ const require_package = require('./package-CZoCrdEM.cjs');
2
2
  const require_evmTransferAmount = require('./evmTransferAmount-Ddvx91b0.cjs');
3
3
  const require_createPublicClientFromNetworkData = require('./createPublicClientFromNetworkData-BAC8YTrK.cjs');
4
4
  require('./createWalletProviderFromEIP1193Provider-E1WbEBET.cjs');
5
5
  const require_addEIP6963Extension = require('./addEIP6963Extension-gjlsf_jt.cjs');
6
- const require_addWaasEvmExtension = require('./addWaasEvmExtension-CP2ibnvq.cjs');
6
+ const require_addWaasEvmExtension = require('./addWaasEvmExtension-BjoGfmQX.cjs');
7
7
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
8
8
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
9
9
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
package/dist/index.esm.js CHANGED
@@ -1,9 +1,9 @@
1
- import { n as version, t as name } from "./package-DrSY9NJE.esm.js";
1
+ import { n as version, t as name } from "./package-Buv-COeE.esm.js";
2
2
  import { _ as SponsorTransactionError, c as RpcError, d as getEVMSponsoredTransactionStatus, f as relaySponsoredTransaction, g as generateSponsoredTransactionNonce, h as is7702DelegationActive, i as isEvmGasSponsorshipEnabled, l as sendSponsoredTransaction, m as sign7702Authorization, o as isEvmWalletAccount, p as signSponsoredTransaction, u as waitForSponsoredTransaction } from "./evmTransferAmount-BQy79Fgj.esm.js";
3
3
  import { t as createPublicClientFromNetworkData } from "./createPublicClientFromNetworkData-CKikh3WW.esm.js";
4
4
  import "./createWalletProviderFromEIP1193Provider-HOkyZ1dS.esm.js";
5
5
  import { t as addEIP6963Extension } from "./addEIP6963Extension-g4FOMl7A.esm.js";
6
- import { t as addWaasEvmExtension } from "./addWaasEvmExtension-CyXCTxGv.esm.js";
6
+ import { t as addWaasEvmExtension } from "./addWaasEvmExtension-BMR_gR6B.esm.js";
7
7
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
8
8
  import { BaseError, FeeEstimationFailedError, InvalidParamError, ScreeningNotRequiredError, SimulationFailedError, getDefaultClient, getNetworksData, screenTransaction } from "@dynamic-labs-sdk/client";
9
9
  import { createApiClient, getCore, getDefaultClient as getDefaultClient$1, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
@@ -1,8 +1,8 @@
1
- import { n as version, t as name } from "./package-BnSw-03C.native.esm.js";
1
+ import { n as version, t as name } from "./package-CDmY_azZ.native.esm.js";
2
2
  import { _ as SponsorTransactionError, c as RpcError, d as getEVMSponsoredTransactionStatus, f as relaySponsoredTransaction, g as generateSponsoredTransactionNonce, h as is7702DelegationActive, i as isEvmGasSponsorshipEnabled, l as sendSponsoredTransaction, m as sign7702Authorization, o as isEvmWalletAccount, p as signSponsoredTransaction, u as waitForSponsoredTransaction } from "./evmTransferAmount-BftkuI-H.native.esm.js";
3
3
  import { t as createPublicClientFromNetworkData } from "./createPublicClientFromNetworkData-9g8Hsu4A.native.esm.js";
4
4
  import { t as addEIP6963Extension } from "./addEIP6963Extension-ZpGdqv-5.native.esm.js";
5
- import { t as addWaasEvmExtension } from "./addWaasEvmExtension-DYKWl5DG.native.esm.js";
5
+ import { t as addWaasEvmExtension } from "./addWaasEvmExtension-KdZlXrUW.native.esm.js";
6
6
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
7
7
  import { BaseError, FeeEstimationFailedError, InvalidParamError, ScreeningNotRequiredError, SimulationFailedError, getDefaultClient, getNetworksData, screenTransaction } from "@dynamic-labs-sdk/client";
8
8
  import { createApiClient, getCore, getDefaultClient as getDefaultClient$1, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
@@ -0,0 +1,2 @@
1
+ export declare const METAMASK_EVM_EXTENSION_KEY = "metaMaskEvm";
2
+ //# sourceMappingURL=addMetaMaskEvmExtension.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addMetaMaskEvmExtension.constants.d.ts","sourceRoot":"","sources":["../../../src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,gBAAgB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import type { DynamicClient } from '@dynamic-labs-sdk/client';
2
- export declare const METAMASK_EVM_EXTENSION_KEY = "metaMaskEvm";
3
2
  /**
4
3
  * Integrates MetaMask Connect (MetaMask's multichain SDK) with the Dynamic
5
4
  * client for EVM, letting users connect MetaMask on platforms where the
@@ -1 +1 @@
1
- {"version":3,"file":"addMetaMaskEvmExtension.d.ts","sourceRoot":"","sources":["../../../src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAY9D,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAQ,aAAkC,KACzC,IAeF,CAAC"}
1
+ {"version":3,"file":"addMetaMaskEvmExtension.d.ts","sourceRoot":"","sources":["../../../src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAc9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAQ,aAAkC,KACzC,IAgBF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { registerMetaMaskEvmUriConnectionStarter } from './registerMetaMaskEvmUriConnectionStarter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metamask/registerMetaMaskEvmUriConnectionStarter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Registers the MetaMask SDK URI pairing for EVM with the client, so higher
3
+ * level connection APIs can mint a MetaMask URI for EVM without depending on
4
+ * this package.
5
+ *
6
+ * `addMetaMaskEvmExtension` already calls it, so only call it directly to opt
7
+ * into the MetaMask URI path without the rest of the extension. It is kept out
8
+ * of the EVM extension so apps that never pair with MetaMask over a URI don't
9
+ * bundle the MetaMask SDK.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * registerMetaMaskEvmUriConnectionStarter();
14
+ * ```
15
+ *
16
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
17
+ * @returns Nothing.
18
+ * @see connectWithMetaMaskUriEvm
19
+ * @see addMetaMaskEvmExtension
20
+ * @see getUriConnectionStarterRegistry
21
+ * @notInstrumented
22
+ */
23
+ export declare const registerMetaMaskEvmUriConnectionStarter: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
24
+ //# sourceMappingURL=registerMetaMaskEvmUriConnectionStarter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerMetaMaskEvmUriConnectionStarter.d.ts","sourceRoot":"","sources":["../../../src/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,uCAAuC,GAClD,yDAA2B,KAC1B,IAOF,CAAC"}
package/dist/metamask.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_package = require('./package-Dk-SYXOE.cjs');
1
+ const require_package = require('./package-CZoCrdEM.cjs');
2
2
  const require_evmTransferAmount = require('./evmTransferAmount-Ddvx91b0.cjs');
3
3
  require('./createPublicClientFromNetworkData-BAC8YTrK.cjs');
4
4
  const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-E1WbEBET.cjs');
@@ -174,8 +174,94 @@ const createMetaMaskEvmWalletProvider = (client) => {
174
174
  };
175
175
 
176
176
  //#endregion
177
- //#region src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.ts
177
+ //#region src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.constants.ts
178
178
  const METAMASK_EVM_EXTENSION_KEY = "metaMaskEvm";
179
+
180
+ //#endregion
181
+ //#region src/metamask/warnMetaMaskEvmIntegrationIncomplete/warnMetaMaskEvmIntegrationIncomplete.ts
182
+ /**
183
+ * Warns when `addMetaMaskEvmExtension()` hasn't been added, since a wallet
184
+ * connected via `connectWithMetaMaskUriEvm` without it won't be restored
185
+ * after a page reload.
186
+ *
187
+ * @example
188
+ * ```ts
189
+ * warnMetaMaskEvmIntegrationIncomplete(client);
190
+ * ```
191
+ * @param client - The Dynamic client instance.
192
+ * @returns void
193
+ * @see connectWithMetaMaskUriEvm
194
+ * @see addMetaMaskEvmExtension
195
+ * @notInstrumented
196
+ */
197
+ const warnMetaMaskEvmIntegrationIncomplete = (client) => {
198
+ if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: METAMASK_EVM_EXTENSION_KEY }, client)) return;
199
+ (0, _dynamic_labs_sdk_client_core.getCore)(client).logger.warn(`MetaMask integration is incomplete: addMetaMaskEvmExtension() is missing. Add it during setup:
200
+
201
+ import { addMetaMaskEvmExtension } from '@dynamic-labs-sdk/evm/metamask';
202
+ import { createDynamicClient } from '@dynamic-labs-sdk/client';
203
+
204
+ const client = createDynamicClient({ environmentId: '...' });
205
+
206
+ addMetaMaskEvmExtension(client);`);
207
+ };
208
+
209
+ //#endregion
210
+ //#region src/metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm.ts
211
+ /**
212
+ * Drives a MetaMask SDK URI pairing for EVM and returns `{ approval, uri }` so
213
+ * consumers can render the QR / hand the URI to a deeplink. Logs an advisory
214
+ * warning when the MetaMask extension is announced via EIP-6963; pairing still
215
+ * proceeds, but the consumer is told which announced provider key to route
216
+ * through for the best UX. The resulting wallet provider registers for signing
217
+ * only and is never surfaced in the wallet picker.
218
+ *
219
+ * @notInstrumented
220
+ */
221
+ const connectWithMetaMaskUriEvm = ({ addToDynamicWalletAccounts = true } = {}, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
222
+ warnMetaMaskEvmIntegrationIncomplete(client);
223
+ require_evmTransferAmount.registerEvmNetworkProviderBuilder(client);
224
+ return (0, _dynamic_labs_sdk_metamask.connectWithMetaMaskUri)({
225
+ addToDynamicWalletAccounts,
226
+ chain: "EVM",
227
+ walletProviderBuilder: createMetaMaskEvmWalletProvider
228
+ }, client);
229
+ };
230
+
231
+ //#endregion
232
+ //#region src/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.ts
233
+ /**
234
+ * Registers the MetaMask SDK URI pairing for EVM with the client, so higher
235
+ * level connection APIs can mint a MetaMask URI for EVM without depending on
236
+ * this package.
237
+ *
238
+ * `addMetaMaskEvmExtension` already calls it, so only call it directly to opt
239
+ * into the MetaMask URI path without the rest of the extension. It is kept out
240
+ * of the EVM extension so apps that never pair with MetaMask over a URI don't
241
+ * bundle the MetaMask SDK.
242
+ *
243
+ * @example
244
+ * ```ts
245
+ * registerMetaMaskEvmUriConnectionStarter();
246
+ * ```
247
+ *
248
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
249
+ * @returns Nothing.
250
+ * @see connectWithMetaMaskUriEvm
251
+ * @see addMetaMaskEvmExtension
252
+ * @see getUriConnectionStarterRegistry
253
+ * @notInstrumented
254
+ */
255
+ const registerMetaMaskEvmUriConnectionStarter = (client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
256
+ (0, _dynamic_labs_sdk_client_core.getUriConnectionStarterRegistry)(client).register({
257
+ chain: "EVM",
258
+ start: ({ addToDynamicWalletAccounts }) => connectWithMetaMaskUriEvm({ addToDynamicWalletAccounts }, client),
259
+ type: "metamaskSdkUri"
260
+ });
261
+ };
262
+
263
+ //#endregion
264
+ //#region src/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.ts
179
265
  /**
180
266
  * Integrates MetaMask Connect (MetaMask's multichain SDK) with the Dynamic
181
267
  * client for EVM, letting users connect MetaMask on platforms where the
@@ -199,6 +285,7 @@ const addMetaMaskEvmExtension = (client = (0, _dynamic_labs_sdk_client_core.getD
199
285
  if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: METAMASK_EVM_EXTENSION_KEY }, client)) return;
200
286
  require_evmTransferAmount.registerEvmNetworkProviderBuilder(client);
201
287
  (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: METAMASK_EVM_EXTENSION_KEY }, client);
288
+ registerMetaMaskEvmUriConnectionStarter(client);
202
289
  (0, _dynamic_labs_sdk_metamask_core.reconcileMetaMaskWalletProvider)({
203
290
  walletProviderBuilder: createMetaMaskEvmWalletProvider,
204
291
  walletProviderKey: getMetaMaskEvmSdkWalletProviderKey()
@@ -240,57 +327,6 @@ const connectAndVerifyWithMetaMaskUriEvm = async (client = (0, _dynamic_labs_sdk
240
327
  };
241
328
  };
242
329
 
243
- //#endregion
244
- //#region src/metamask/warnMetaMaskEvmIntegrationIncomplete/warnMetaMaskEvmIntegrationIncomplete.ts
245
- /**
246
- * Warns when `addMetaMaskEvmExtension()` hasn't been added, since a wallet
247
- * connected via `connectWithMetaMaskUriEvm` without it won't be restored
248
- * after a page reload.
249
- *
250
- * @example
251
- * ```ts
252
- * warnMetaMaskEvmIntegrationIncomplete(client);
253
- * ```
254
- * @param client - The Dynamic client instance.
255
- * @returns void
256
- * @see connectWithMetaMaskUriEvm
257
- * @see addMetaMaskEvmExtension
258
- * @notInstrumented
259
- */
260
- const warnMetaMaskEvmIntegrationIncomplete = (client) => {
261
- if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: METAMASK_EVM_EXTENSION_KEY }, client)) return;
262
- (0, _dynamic_labs_sdk_client_core.getCore)(client).logger.warn(`MetaMask integration is incomplete: addMetaMaskEvmExtension() is missing. Add it during setup:
263
-
264
- import { addMetaMaskEvmExtension } from '@dynamic-labs-sdk/evm/metamask';
265
- import { createDynamicClient } from '@dynamic-labs-sdk/client';
266
-
267
- const client = createDynamicClient({ environmentId: '...' });
268
-
269
- addMetaMaskEvmExtension(client);`);
270
- };
271
-
272
- //#endregion
273
- //#region src/metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm.ts
274
- /**
275
- * Drives a MetaMask SDK URI pairing for EVM and returns `{ approval, uri }` so
276
- * consumers can render the QR / hand the URI to a deeplink. Logs an advisory
277
- * warning when the MetaMask extension is announced via EIP-6963; pairing still
278
- * proceeds, but the consumer is told which announced provider key to route
279
- * through for the best UX. The resulting wallet provider registers for signing
280
- * only and is never surfaced in the wallet picker.
281
- *
282
- * @notInstrumented
283
- */
284
- const connectWithMetaMaskUriEvm = ({ addToDynamicWalletAccounts = true } = {}, client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
285
- warnMetaMaskEvmIntegrationIncomplete(client);
286
- require_evmTransferAmount.registerEvmNetworkProviderBuilder(client);
287
- return (0, _dynamic_labs_sdk_metamask.connectWithMetaMaskUri)({
288
- addToDynamicWalletAccounts,
289
- chain: "EVM",
290
- walletProviderBuilder: createMetaMaskEvmWalletProvider
291
- }, client);
292
- };
293
-
294
330
  //#endregion
295
331
  //#region src/metamask/getMetaMaskEvmExtensionWalletProviderKey/getMetaMaskEvmExtensionWalletProviderKey.ts
296
332
  /**
@@ -319,4 +355,5 @@ exports.addMetaMaskEvmExtension = addMetaMaskEvmExtension;
319
355
  exports.connectAndVerifyWithMetaMaskUriEvm = connectAndVerifyWithMetaMaskUriEvm;
320
356
  exports.connectWithMetaMaskUriEvm = connectWithMetaMaskUriEvm;
321
357
  exports.getMetaMaskEvmExtensionWalletProviderKey = getMetaMaskEvmExtensionWalletProviderKey;
358
+ exports.registerMetaMaskEvmUriConnectionStarter = registerMetaMaskEvmUriConnectionStarter;
322
359
  //# sourceMappingURL=metamask.cjs.map