@dynamic-labs-sdk/evm 1.31.0 → 1.31.2
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/README.md +22 -0
- package/dist/{addWaasEvmExtension-CyXCTxGv.esm.js → addWaasEvmExtension-BMR_gR6B.esm.js} +10 -6
- package/dist/addWaasEvmExtension-BMR_gR6B.esm.js.map +1 -0
- package/dist/{addWaasEvmExtension-CP2ibnvq.cjs → addWaasEvmExtension-BjoGfmQX.cjs} +9 -5
- package/dist/addWaasEvmExtension-BjoGfmQX.cjs.map +1 -0
- package/dist/{addWaasEvmExtension-DYKWl5DG.native.esm.js → addWaasEvmExtension-KdZlXrUW.native.esm.js} +10 -6
- package/dist/addWaasEvmExtension-KdZlXrUW.native.esm.js.map +1 -0
- package/dist/baseAccount.cjs +1 -1
- package/dist/baseAccount.esm.js +1 -1
- package/dist/baseAccount.native.esm.js +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.esm.js +1 -1
- package/dist/core.native.esm.js +1 -1
- package/dist/eip6963.cjs +1 -1
- package/dist/eip6963.esm.js +1 -1
- package/dist/eip6963.native.esm.js +1 -1
- package/dist/errors/MetaMaskDirectConnectNotSupportedError/MetaMaskDirectConnectNotSupportedError.d.ts +14 -0
- package/dist/errors/MetaMaskDirectConnectNotSupportedError/MetaMaskDirectConnectNotSupportedError.d.ts.map +1 -0
- package/dist/errors/MetaMaskDirectConnectNotSupportedError/index.d.ts +2 -0
- package/dist/errors/MetaMaskDirectConnectNotSupportedError/index.d.ts.map +1 -0
- package/dist/exports/metamask.d.ts +3 -0
- package/dist/exports/metamask.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.esm.js +2 -2
- package/dist/index.native.esm.js +2 -2
- package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.d.ts +23 -0
- package/dist/metamask/addMetaMaskEvmExtension/addMetaMaskEvmExtension.d.ts.map +1 -0
- package/dist/metamask/addMetaMaskEvmExtension/index.d.ts +2 -0
- package/dist/metamask/addMetaMaskEvmExtension/index.d.ts.map +1 -0
- package/dist/metamask/connectAndVerifyWithMetaMaskUriEvm/connectAndVerifyWithMetaMaskUriEvm.d.ts.map +1 -1
- package/dist/metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm.d.ts.map +1 -1
- package/dist/metamask/createMetaMaskEvmWalletProvider/createMetaMaskEvmWalletProvider.d.ts +20 -3
- package/dist/metamask/createMetaMaskEvmWalletProvider/createMetaMaskEvmWalletProvider.d.ts.map +1 -1
- package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/getMetaMaskEvmSdkWalletProviderKey.d.ts +17 -0
- package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/getMetaMaskEvmSdkWalletProviderKey.d.ts.map +1 -0
- package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/index.d.ts +2 -0
- package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/index.d.ts.map +1 -0
- package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/index.d.ts +2 -0
- package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/index.d.ts.map +1 -0
- package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.d.ts +22 -0
- package/dist/metamask/registerMetaMaskEvmUriConnectionStarter/registerMetaMaskEvmUriConnectionStarter.d.ts.map +1 -0
- package/dist/metamask/warnMetaMaskEvmIntegrationIncomplete/index.d.ts +2 -0
- package/dist/metamask/warnMetaMaskEvmIntegrationIncomplete/index.d.ts.map +1 -0
- package/dist/metamask/warnMetaMaskEvmIntegrationIncomplete/warnMetaMaskEvmIntegrationIncomplete.d.ts +18 -0
- package/dist/metamask/warnMetaMaskEvmIntegrationIncomplete/warnMetaMaskEvmIntegrationIncomplete.d.ts.map +1 -0
- package/dist/metamask.cjs +230 -247
- package/dist/metamask.cjs.map +1 -1
- package/dist/metamask.esm.js +231 -251
- package/dist/metamask.esm.js.map +1 -1
- package/dist/metamask.native.esm.js +231 -251
- package/dist/metamask.native.esm.js.map +1 -1
- package/dist/{package--hhb8lj2.native.esm.js → package-DHXe8K1l.native.esm.js} +2 -2
- package/dist/package-DHXe8K1l.native.esm.js.map +1 -0
- package/dist/{package-CIdQu8lB.cjs → package-cXTEEW7P.cjs} +2 -2
- package/dist/package-cXTEEW7P.cjs.map +1 -0
- package/dist/{package-D0IvC55z.esm.js → package-wISL2vMS.esm.js} +2 -2
- package/dist/package-wISL2vMS.esm.js.map +1 -0
- package/dist/tempo.cjs +1 -1
- package/dist/tempo.esm.js +1 -1
- package/dist/tempo.native.esm.js +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/viem.cjs +1 -1
- package/dist/viem.esm.js +1 -1
- package/dist/viem.native.esm.js +1 -1
- package/dist/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.d.ts.map +1 -1
- package/dist/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.d.ts.map +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/dist/waas.native.esm.js +2 -2
- package/dist/walletConnect/addWalletConnectEvmExtension/addWalletConnectEvmExtension.d.ts.map +1 -1
- package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/index.d.ts +2 -0
- package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/index.d.ts.map +1 -0
- package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/registerWalletConnectEvmUriConnectionStarter.d.ts +19 -0
- package/dist/walletConnect/registerWalletConnectEvmUriConnectionStarter/registerWalletConnectEvmUriConnectionStarter.d.ts.map +1 -0
- package/dist/walletConnect.cjs +98 -58
- package/dist/walletConnect.cjs.map +1 -1
- package/dist/walletConnect.esm.js +99 -59
- package/dist/walletConnect.esm.js.map +1 -1
- package/dist/walletConnect.native.esm.js +99 -59
- package/dist/walletConnect.native.esm.js.map +1 -1
- package/dist/windowInjected/utils/detectEvmWalletFromProvider/detectEvmWalletFromProvider.d.ts.map +1 -1
- package/dist/windowInjected/utils/isProviderSelectionRouter/index.d.ts +2 -0
- package/dist/windowInjected/utils/isProviderSelectionRouter/index.d.ts.map +1 -0
- package/dist/windowInjected/utils/isProviderSelectionRouter/isProviderSelectionRouter.d.ts +30 -0
- package/dist/windowInjected/utils/isProviderSelectionRouter/isProviderSelectionRouter.d.ts.map +1 -0
- package/dist/windowInjected.cjs +34 -1
- package/dist/windowInjected.cjs.map +1 -1
- package/dist/windowInjected.esm.js +34 -1
- package/dist/windowInjected.esm.js.map +1 -1
- package/dist/windowInjected.native.esm.js +34 -1
- package/dist/windowInjected.native.esm.js.map +1 -1
- package/package.json +5 -6
- package/dist/addWaasEvmExtension-CP2ibnvq.cjs.map +0 -1
- package/dist/addWaasEvmExtension-CyXCTxGv.esm.js.map +0 -1
- package/dist/addWaasEvmExtension-DYKWl5DG.native.esm.js.map +0 -1
- package/dist/getEvmNetworksData-CGZjI4hV.native.esm.js +0 -18
- package/dist/getEvmNetworksData-CGZjI4hV.native.esm.js.map +0 -1
- package/dist/getEvmNetworksData-ChkgLvCg.esm.js +0 -18
- package/dist/getEvmNetworksData-ChkgLvCg.esm.js.map +0 -1
- package/dist/getEvmNetworksData-DBJIMiOH.cjs +0 -23
- package/dist/getEvmNetworksData-DBJIMiOH.cjs.map +0 -1
- package/dist/metamask/metamask.types.d.ts +0 -14
- package/dist/metamask/metamask.types.d.ts.map +0 -1
- package/dist/metamask/utils/createMetaMaskEvmController/createMetaMaskEvmController.d.ts +0 -18
- package/dist/metamask/utils/createMetaMaskEvmController/createMetaMaskEvmController.d.ts.map +0 -1
- package/dist/metamask/utils/createMetaMaskEvmController/index.d.ts +0 -2
- package/dist/metamask/utils/createMetaMaskEvmController/index.d.ts.map +0 -1
- package/dist/metamask/utils/getOrCreateMetaMaskEvmController/getOrCreateMetaMaskEvmController.d.ts +0 -27
- package/dist/metamask/utils/getOrCreateMetaMaskEvmController/getOrCreateMetaMaskEvmController.d.ts.map +0 -1
- package/dist/metamask/utils/getOrCreateMetaMaskEvmController/index.d.ts +0 -2
- package/dist/metamask/utils/getOrCreateMetaMaskEvmController/index.d.ts.map +0 -1
- package/dist/metamask/utils/getSupportedNetworks/getSupportedNetworks.d.ts +0 -6
- package/dist/metamask/utils/getSupportedNetworks/getSupportedNetworks.d.ts.map +0 -1
- package/dist/metamask/utils/getSupportedNetworks/index.d.ts +0 -2
- package/dist/metamask/utils/getSupportedNetworks/index.d.ts.map +0 -1
- package/dist/metamask/utils/subscribeMetaMaskEvmFacadeListener/index.d.ts +0 -3
- package/dist/metamask/utils/subscribeMetaMaskEvmFacadeListener/index.d.ts.map +0 -1
- package/dist/metamask/utils/subscribeMetaMaskEvmFacadeListener/subscribeMetaMaskEvmFacadeListener.d.ts +0 -40
- package/dist/metamask/utils/subscribeMetaMaskEvmFacadeListener/subscribeMetaMaskEvmFacadeListener.d.ts.map +0 -1
- package/dist/metamask/utils/warnWhenChainNotConfigured/index.d.ts +0 -3
- package/dist/metamask/utils/warnWhenChainNotConfigured/index.d.ts.map +0 -1
- package/dist/metamask/utils/warnWhenChainNotConfigured/warnWhenChainNotConfigured.d.ts +0 -28
- package/dist/metamask/utils/warnWhenChainNotConfigured/warnWhenChainNotConfigured.d.ts.map +0 -1
- package/dist/package--hhb8lj2.native.esm.js.map +0 -1
- package/dist/package-CIdQu8lB.cjs.map +0 -1
- package/dist/package-D0IvC55z.esm.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,3 +14,25 @@ const dynamicClient = createDynamicClient({
|
|
|
14
14
|
|
|
15
15
|
addEvmExtension(dynamicClient);
|
|
16
16
|
```
|
|
17
|
+
|
|
18
|
+
### MetaMask
|
|
19
|
+
|
|
20
|
+
`addMetaMaskEvmExtension` integrates MetaMask Connect (MetaMask's multichain
|
|
21
|
+
SDK), letting users connect MetaMask on platforms where the browser
|
|
22
|
+
extension isn't available — e.g. scanning a QR code, or opening the
|
|
23
|
+
MetaMask mobile app from a website or React Native app. Add it once during
|
|
24
|
+
setup:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import {
|
|
28
|
+
addEvmExtension,
|
|
29
|
+
addMetaMaskEvmExtension,
|
|
30
|
+
} from '@dynamic-labs-sdk/evm';
|
|
31
|
+
import { createDynamicClient } from '@dynamic-labs-sdk/client';
|
|
32
|
+
|
|
33
|
+
const dynamicClient = createDynamicClient({
|
|
34
|
+
environmentId: '123',
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
addMetaMaskEvmExtension(dynamicClient);
|
|
38
|
+
```
|
|
@@ -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,
|
|
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
|
|
18
|
-
|
|
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
|
|
52
|
-
|
|
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-
|
|
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":";;;;;;;;;;;;AA4BA,MAAa,oBAAoB,OAC/B,EACE,YACA,eACA,cACA,YAEF,kBACyC;CACzC,MAAM,EAAE,SAAS,iBAAiB,SAAS,UAAU;AAErD,eAAc,iBAAiB,6BAA6B;CAE5D,MAAM,EAAE,WAAW,oBAAoB,MAAM,mBAC3C,cACD;CAED,MAAM,EAAE,qBAAqB,aAAa,MAAM,6BAC9C;EACE,WAAW,UAAU;EACrB,OAAO,WAAW;EACnB,EACD,cACD;CAED,MAAM,aAAa,MAAM,aAAa,eAAe;CAErD,MAAM,gBAAgB;EACpB,SAAS;EACT;EACA;EACD;CAaD,MAAM,kBAAkB,eAXN,MAAM,WAAW,eAAe;EAChD,gBAAgB,cAAc;EAC9B,WAAW,cAAc,SAAS;EAClC,SAAS,EAAE,aAAa,eAAe;EACvC;EACA,SAAS,kBAAkB,cAAc,CAAC,MAAM,EAAE;EAClD;EACA;EACA;EACD,CAAC,CAEsD;AAExD,QAAO;EACL,SAAS;EACT;EACA;EACA,GAAG,gBAAgB;EACnB,GAAG,gBAAgB;EACnB,GAAG,gBAAgB;EACnB,SAAS,gBAAgB;EAC1B;;;;;;AC7DH,MAAa,gBAAgB,OAC3B,EAAE,WAAW,eAAe,gBAC5B,kBACoB;CACpB,MAAM,EAAE,WAAW,oBAAoB,MAAM,mBAC3C,cACD;CAED,MAAM,EAAE,qBAAqB,aAAa,MAAM,6BAC9C;EACE,WAAWA,YAAU;EACrB,OAAO,WAAW;EACnB,EACD,cACD;CAED,MAAM,aAAa,MAAM,aAAa,eAAe;CAGrD,MAAM,uBAAuB,UAAU,UAAU;CACjD,MAAM,wBAAwB,KAAK,MAAM,qBAAqB;AAE9D,QAAO,WAAW,cAAc;EAC9B,gBAAgB,cAAc;EAC9B,WAAW,cAAc,SAAS;EAClC;EACA;EACA;EACA,WAAW;EACZ,CAAC;;;;;;ACXJ,MAAa,gCAAgC,OAC3C,EACE,cACA,eACA,qBACA,0BAEF,kBACqD;CACrD,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,cACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,QAAO,mBAAmB;EACxB,SAAS,UAAU;GACjB,SAAS,cAAc;GACvB,MAAM,kBACJ,YACsC;AAUtC,WATkB,MAAM,kBACtB;KACE;KACA;KACA;KACD,EACD,cACD;;GAIH,aAAa,OAAO,EAAE,cAAc;IAClC,MAAM,EAAE,cAAc,MAAM,aAAa,YAAY;KAC1C;KACT;KACD,CAAC;AAEF,WAAO;;GAET,iBAAiB,OACf,gBACiB;IACjB,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;KACjE,uBAAuB,qBAAqB,YAAY;KACxD;KACD,CAAC;AAEF,WAAO;;GAGT,eAAe,OACb,cACiB;AAUjB,WATkB,MAAM,cACtB;KACE;KACA;KACA;KACD,EACD,cACD;;GAIJ,CAAC;EACF,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,KAAK,kBAAkB,QAAQ,KAAK,IAAI,oBAAoB;EACvE,GAAG;EACJ,CAAC;;;;;;ACrFJ,MAAa,kCAAkC,EAC7C,oBACiE;CACjE,MAAMC,QAAe;CAErB,MAAM,qBAAqB,mBAAmB;CAE9C,MAAM,MAAM,wBAAwB;EAClC;EACA,aAAa,sBAAsB;EACnC;EACD,CAAC;CAEF,MAAM,eAAe,mBAAmB;EACtC;EACA,WAAW;EACZ,CAAC;CAEF,MAAMC,yBACJ,OAAO,EAAE,eAAe,qBAAqB,6BAA6B;AACxE,SAAO,8BACL;GACE;GACA;GACA;GACA;GACD,EACD,cACD;;CAGL,MAAMC,qBACJ,YACE,wCAAwC;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,WANuB,gCACvB,EAAE,OAAO,EACT,cACD,EAIA;;CAGL,MAAMC,cAAoD,OAAO,EAC/D,SACA,oBACI;AACJ,gBAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAC9B;GACA;GACD,CAAC;;CAGJ,MAAMC,sBACJ,OAAO,EAAE,gBACP,uCAAuC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,UAA4C,OAAO,SACvD,aAAa,QAAQ,KAAK;AAE5B,QAAO;EACL,GAAG;EACH;EACA,qBAAqB,SAAS,sBAAsB,MAAM,cAAc;EACxE;EACA;EACA,yBAAyB,SACvB,0BAA0B,MAAM,cAAc;EAChD,0BAA0B,SACxB,2BAA2B,MAAM,cAAc;EACjD;EACA;EACA,UAAU,6BAA6B,sBAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAa,sBAAsB;GACnC,MAAM,sBAAsB;GAC7B;EACD;EACA;EACA,iBAAiB,SAAS,kBAAkB,MAAM,cAAc;EAChE;EACD;;;;;AC/GH,MAAa,yBAAyB;;;;;;;;;;AAWtC,MAAa,uBAAuB,SAASC,oBAAkB,KAAW;AACxE,KAAIC,eAAa,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAChE;AAGF,mBAAkB,EAAE,cAAc,wBAAwB,EAAE,OAAO;AACnE,mCAAkC,OAAO;CAEzC,MAAM,yBAAyB,0BAA0B,OAAO;CAEhE,MAAM,iBAAiB,+BAA+B,EACpD,eAAe,QAChB,CAAC;AAEF,wBAAuB,SAAS;EAC9B,UAAU,uBAAuB;EACjC;EACD,CAAC"}
|
|
@@ -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.
|
|
18
|
-
|
|
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.
|
|
52
|
-
|
|
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-
|
|
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,
|
|
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
|
|
18
|
-
|
|
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
|
|
52
|
-
|
|
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-
|
|
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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"}
|
package/dist/baseAccount.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_package = require('./package-
|
|
1
|
+
const require_package = require('./package-cXTEEW7P.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');
|
package/dist/baseAccount.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as version, t as name } from "./package-
|
|
1
|
+
import { n as version, t as name } from "./package-wISL2vMS.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
|
|
1
|
+
import { n as version, t as name } from "./package-DHXe8K1l.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-
|
|
1
|
+
const require_package = require('./package-cXTEEW7P.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-
|
|
1
|
+
import { n as version, t as name } from "./package-wISL2vMS.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
|
|
package/dist/core.native.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as version, t as name } from "./package
|
|
1
|
+
import { n as version, t as name } from "./package-DHXe8K1l.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-
|
|
1
|
+
const require_package = require('./package-cXTEEW7P.cjs');
|
|
2
2
|
require('./evmTransferAmount-Ddvx91b0.cjs');
|
|
3
3
|
require('./createPublicClientFromNetworkData-BAC8YTrK.cjs');
|
|
4
4
|
require('./createWalletProviderFromEIP1193Provider-E1WbEBET.cjs');
|
package/dist/eip6963.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as version, t as name } from "./package-
|
|
1
|
+
import { n as version, t as name } from "./package-wISL2vMS.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
|
|
1
|
+
import { n as version, t as name } from "./package-DHXe8K1l.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
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseError } from '@dynamic-labs-sdk/client';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when `connect()` is called directly on the MetaMask SDK placeholder
|
|
4
|
+
* wallet provider (the entry `addMetaMaskEvmExtension` registers so MetaMask
|
|
5
|
+
* still shows up in the wallet picker when no browser extension is
|
|
6
|
+
* installed). That placeholder has no generic connect flow of its own --
|
|
7
|
+
* connecting requires the QR / deeplink pairing flow, so callers must drive
|
|
8
|
+
* `connectWithMetaMaskUriEvm` (or `connectAndVerifyWithMetaMaskUriEvm`)
|
|
9
|
+
* instead of the picker's default connect.
|
|
10
|
+
*/
|
|
11
|
+
export declare class MetaMaskDirectConnectNotSupportedError extends BaseError {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=MetaMaskDirectConnectNotSupportedError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaMaskDirectConnectNotSupportedError.d.ts","sourceRoot":"","sources":["../../../src/errors/MetaMaskDirectConnectNotSupportedError/MetaMaskDirectConnectNotSupportedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;GAQG;AACH,qBAAa,sCAAuC,SAAQ,SAAS;;CAWpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/MetaMaskDirectConnectNotSupportedError/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
export { addMetaMaskEvmExtension } from '../metamask/addMetaMaskEvmExtension';
|
|
1
2
|
export { connectAndVerifyWithMetaMaskUriEvm } from '../metamask/connectAndVerifyWithMetaMaskUriEvm';
|
|
2
3
|
export { connectWithMetaMaskUriEvm } from '../metamask/connectWithMetaMaskUriEvm';
|
|
3
4
|
export type { ConnectWithMetaMaskUriEvmParams } from '../metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm';
|
|
5
|
+
export { MetaMaskDirectConnectNotSupportedError } from '../errors/MetaMaskDirectConnectNotSupportedError';
|
|
4
6
|
export { getMetaMaskEvmExtensionWalletProviderKey } from '../metamask/getMetaMaskEvmExtensionWalletProviderKey';
|
|
7
|
+
export { registerMetaMaskEvmUriConnectionStarter } from '../metamask/registerMetaMaskEvmUriConnectionStarter';
|
|
5
8
|
export { MetaMaskDisplayUriMissingError } from '@dynamic-labs-sdk/metamask';
|
|
6
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,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,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-
|
|
1
|
+
const require_package = require('./package-cXTEEW7P.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-
|
|
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-
|
|
1
|
+
import { n as version, t as name } from "./package-wISL2vMS.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-
|
|
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";
|
package/dist/index.native.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as version, t as name } from "./package
|
|
1
|
+
import { n as version, t as name } from "./package-DHXe8K1l.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-
|
|
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,23 @@
|
|
|
1
|
+
import type { DynamicClient } from '@dynamic-labs-sdk/client';
|
|
2
|
+
export declare const METAMASK_EVM_EXTENSION_KEY = "metaMaskEvm";
|
|
3
|
+
/**
|
|
4
|
+
* Integrates MetaMask Connect (MetaMask's multichain SDK) with the Dynamic
|
|
5
|
+
* client for EVM, letting users connect MetaMask on platforms where the
|
|
6
|
+
* browser extension isn't available — e.g. scanning a QR code, or opening
|
|
7
|
+
* the MetaMask mobile app from a website or React Native app. Call this
|
|
8
|
+
* once during setup.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const client = createDynamicClient({ environmentId: '...' });
|
|
13
|
+
*
|
|
14
|
+
* addMetaMaskEvmExtension(client);
|
|
15
|
+
* ```
|
|
16
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
17
|
+
* @returns void
|
|
18
|
+
* @see connectWithMetaMaskUriEvm
|
|
19
|
+
* @see addEvmExtension
|
|
20
|
+
* @notInstrumented
|
|
21
|
+
*/
|
|
22
|
+
export declare const addMetaMaskEvmExtension: (client?: DynamicClient) => void;
|
|
23
|
+
//# sourceMappingURL=addMetaMaskEvmExtension.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metamask/addMetaMaskEvmExtension/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/metamask/connectAndVerifyWithMetaMaskUriEvm/connectAndVerifyWithMetaMaskUriEvm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectAndVerifyWithMetaMaskUriEvm.d.ts","sourceRoot":"","sources":["../../../src/metamask/connectAndVerifyWithMetaMaskUriEvm/connectAndVerifyWithMetaMaskUriEvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iCAAiC,EAGvC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"connectAndVerifyWithMetaMaskUriEvm.d.ts","sourceRoot":"","sources":["../../../src/metamask/connectAndVerifyWithMetaMaskUriEvm/connectAndVerifyWithMetaMaskUriEvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iCAAiC,EAGvC,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC,GAC7C,yDAA2B,KAC1B,OAAO,CAAC,iCAAiC,CA+B3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectWithMetaMaskUriEvm.d.ts","sourceRoot":"","sources":["../../../src/metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAOlF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GACpC,iCAAuC,+BAAoC,EAC3E,yDAA2B,KAC1B,OAAO,CAAC,iCAAiC,
|
|
1
|
+
{"version":3,"file":"connectWithMetaMaskUriEvm.d.ts","sourceRoot":"","sources":["../../../src/metamask/connectWithMetaMaskUriEvm/connectWithMetaMaskUriEvm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAOlF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GACpC,iCAAuC,+BAAoC,EAC3E,yDAA2B,KAC1B,OAAO,CAAC,iCAAiC,CAa3C,CAAC"}
|
|
@@ -3,15 +3,32 @@ import type { EvmWalletProvider } from '../../EvmWalletProvider.types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Builds the `EvmWalletProvider` registered AFTER a successful MetaMask
|
|
5
5
|
* SDK URI pairing. Wraps the SDK's EIP-1193 provider behind the Dynamic
|
|
6
|
-
* facade
|
|
7
|
-
* shim) and drops `connect` so the provider is filtered out of the
|
|
6
|
+
* facade and drops `connect` so the provider is filtered out of the
|
|
8
7
|
* wallet picker by `getAvailableWalletProvidersData` — mirroring how
|
|
9
8
|
* WalletConnect URI sessions register a signing-only provider. The facade's
|
|
10
9
|
* `request` also traces dispatch/resolution at debug level, since a signing
|
|
11
10
|
* request that never gets a deep-link back to the wallet otherwise leaves
|
|
12
11
|
* no signal on the Dynamic side.
|
|
13
12
|
*
|
|
13
|
+
* `on` is a no-op: the facade doesn't yet bridge MetaMask's own
|
|
14
|
+
* `accountsChanged`/`chainChanged`/`disconnected` events through to the
|
|
15
|
+
* EIP-1193 listener contract.
|
|
16
|
+
*
|
|
17
|
+
* `switchActiveNetwork` routes through `assertMetaMaskNetworkIsGranted`
|
|
18
|
+
* before persisting -- see its inline comment for why (every configured
|
|
19
|
+
* network is an *optional* MetaMask scope, so signing/sending calls on an
|
|
20
|
+
* ungranted one would otherwise fail). The facade's `request` similarly
|
|
21
|
+
* routes its active-network lookup through `resolveActiveMetaMaskScope`
|
|
22
|
+
* rather than reading the registry directly, so a default network MetaMask
|
|
23
|
+
* never granted self-heals before it reaches a real signing/sending call.
|
|
24
|
+
*
|
|
25
|
+
* `switchActiveNetwork`/`disconnectWalletAccount` are local, Dynamic-side
|
|
26
|
+
* actions with no live wallet event to bridge, so they emit `networkChanged`/
|
|
27
|
+
* `disconnected` themselves via `metaMaskEvents` -- otherwise `events` would
|
|
28
|
+
* never fire for MetaMask at all (unlike every other EVM wallet provider,
|
|
29
|
+
* whose events come from bridging the wallet's own EIP-1193 events).
|
|
30
|
+
*
|
|
14
31
|
* @notInstrumented
|
|
15
32
|
*/
|
|
16
|
-
export declare const createMetaMaskEvmWalletProvider: (client: DynamicClient) =>
|
|
33
|
+
export declare const createMetaMaskEvmWalletProvider: (client: DynamicClient) => EvmWalletProvider;
|
|
17
34
|
//# sourceMappingURL=createMetaMaskEvmWalletProvider.d.ts.map
|
package/dist/metamask/createMetaMaskEvmWalletProvider/createMetaMaskEvmWalletProvider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMetaMaskEvmWalletProvider.d.ts","sourceRoot":"","sources":["../../../src/metamask/createMetaMaskEvmWalletProvider/createMetaMaskEvmWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"createMetaMaskEvmWalletProvider.d.ts","sourceRoot":"","sources":["../../../src/metamask/createMetaMaskEvmWalletProvider/createMetaMaskEvmWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAiB9D,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAOvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,aAAa,KACpB,iBA6JF,CAAC"}
|
package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/getMetaMaskEvmSdkWalletProviderKey.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic wallet provider key for the MetaMask SDK's connect-less EVM
|
|
3
|
+
* placeholder. Computed without building the wallet provider itself, so
|
|
4
|
+
* `addMetaMaskEvmExtension` can check for a matching wallet account before
|
|
5
|
+
* paying the cost of `createMetaMaskEvmWalletProvider`.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const key = getMetaMaskEvmSdkWalletProviderKey();
|
|
10
|
+
* ```
|
|
11
|
+
* @returns The deterministic wallet provider key.
|
|
12
|
+
* @see createMetaMaskEvmWalletProvider
|
|
13
|
+
* @see reconcileMetaMaskWalletProvider
|
|
14
|
+
* @notInstrumented
|
|
15
|
+
*/
|
|
16
|
+
export declare const getMetaMaskEvmSdkWalletProviderKey: () => string;
|
|
17
|
+
//# sourceMappingURL=getMetaMaskEvmSdkWalletProviderKey.d.ts.map
|
package/dist/metamask/getMetaMaskEvmSdkWalletProviderKey/getMetaMaskEvmSdkWalletProviderKey.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMetaMaskEvmSdkWalletProviderKey.d.ts","sourceRoot":"","sources":["../../../src/metamask/getMetaMaskEvmSdkWalletProviderKey/getMetaMaskEvmSdkWalletProviderKey.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kCAAkC,QAAO,MAKlD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metamask/getMetaMaskEvmSdkWalletProviderKey/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -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,22 @@
|
|
|
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
|
+
* Call it during app setup to opt into the MetaMask URI path — it is kept out
|
|
7
|
+
* of the EVM extension so apps that never pair with MetaMask over a URI don't
|
|
8
|
+
* bundle the MetaMask SDK.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* registerMetaMaskEvmUriConnectionStarter();
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
16
|
+
* @returns Nothing.
|
|
17
|
+
* @see connectWithMetaMaskUriEvm
|
|
18
|
+
* @see getUriConnectionStarterRegistry
|
|
19
|
+
* @notInstrumented
|
|
20
|
+
*/
|
|
21
|
+
export declare const registerMetaMaskEvmUriConnectionStarter: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
|
|
22
|
+
//# 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;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uCAAuC,GAClD,yDAA2B,KAC1B,IAOF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metamask/warnMetaMaskEvmIntegrationIncomplete/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC"}
|