@dynamic-labs-sdk/evm 0.5.0 → 0.7.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 (60) hide show
  1. package/dist/addEIP6963Extension-B9r9lgc0.cjs.js +59 -0
  2. package/dist/addEIP6963Extension-B9r9lgc0.cjs.js.map +1 -0
  3. package/dist/addEIP6963Extension-D7Sjfh-Q.esm.js +54 -0
  4. package/dist/addEIP6963Extension-D7Sjfh-Q.esm.js.map +1 -0
  5. package/dist/{addWaasEvmExtension-E0T0QK9i.esm.js → addWaasEvmExtension-C4J963oh.esm.js} +2 -2
  6. package/dist/{addWaasEvmExtension-E0T0QK9i.esm.js.map → addWaasEvmExtension-C4J963oh.esm.js.map} +1 -1
  7. package/dist/{addWaasEvmExtension-Cbj4c7W8.cjs.js → addWaasEvmExtension-Da1oL1Uq.cjs.js} +2 -2
  8. package/dist/{addWaasEvmExtension-Cbj4c7W8.cjs.js.map → addWaasEvmExtension-Da1oL1Uq.cjs.js.map} +1 -1
  9. package/dist/{addEIP6963Extension-CgvtCBas.cjs.js → createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js} +3 -52
  10. package/dist/createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js.map +1 -0
  11. package/dist/{addEIP6963Extension-C9obd5mt.esm.js → createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js} +3 -52
  12. package/dist/createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js.map +1 -0
  13. package/dist/eip6963.cjs.js +3 -2
  14. package/dist/eip6963.cjs.js.map +1 -1
  15. package/dist/eip6963.esm.js +3 -2
  16. package/dist/eip6963.esm.js.map +1 -1
  17. package/dist/exports/windowInjected.d.ts +2 -0
  18. package/dist/exports/windowInjected.d.ts.map +1 -0
  19. package/dist/index.cjs.js +4 -3
  20. package/dist/index.cjs.js.map +1 -1
  21. package/dist/index.esm.js +4 -3
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/{mapNetworkDataToViemChain-B4YB-yZt.esm.js → mapNetworkDataToViemChain-BeqJB1Af.esm.js} +1 -1
  24. package/dist/{mapNetworkDataToViemChain-B4YB-yZt.esm.js.map → mapNetworkDataToViemChain-BeqJB1Af.esm.js.map} +1 -1
  25. package/dist/{mapNetworkDataToViemChain-CvTDSkkK.cjs.js → mapNetworkDataToViemChain-DFVApcmV.cjs.js} +1 -1
  26. package/dist/{mapNetworkDataToViemChain-CvTDSkkK.cjs.js.map → mapNetworkDataToViemChain-DFVApcmV.cjs.js.map} +1 -1
  27. package/dist/{package-DXe9DIvt.cjs.js → package-BhNWipax.cjs.js} +2 -2
  28. package/dist/package-BhNWipax.cjs.js.map +1 -0
  29. package/dist/{package-BSFIt1-g.esm.js → package-Cr7pL-a0.esm.js} +2 -2
  30. package/dist/package-Cr7pL-a0.esm.js.map +1 -0
  31. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  32. package/dist/viem.cjs.js +2 -2
  33. package/dist/viem.esm.js +2 -2
  34. package/dist/waas.cjs.js +2 -2
  35. package/dist/waas.esm.js +2 -2
  36. package/dist/walletConnect.cjs.js +1 -1
  37. package/dist/walletConnect.esm.js +1 -1
  38. package/dist/windowInjected/addEvmWindowInjectedExtension/addEvmWindowInjectedExtension.d.ts +21 -0
  39. package/dist/windowInjected/addEvmWindowInjectedExtension/addEvmWindowInjectedExtension.d.ts.map +1 -0
  40. package/dist/windowInjected/addEvmWindowInjectedExtension/index.d.ts +2 -0
  41. package/dist/windowInjected/addEvmWindowInjectedExtension/index.d.ts.map +1 -0
  42. package/dist/windowInjected/utils/detectEvmWalletFromProvider/detectEvmWalletFromProvider.d.ts +20 -0
  43. package/dist/windowInjected/utils/detectEvmWalletFromProvider/detectEvmWalletFromProvider.d.ts.map +1 -0
  44. package/dist/windowInjected/utils/detectEvmWalletFromProvider/index.d.ts +2 -0
  45. package/dist/windowInjected/utils/detectEvmWalletFromProvider/index.d.ts.map +1 -0
  46. package/dist/windowInjected/utils/getEvmInjectedProviders/getEvmInjectedProviders.d.ts +15 -0
  47. package/dist/windowInjected/utils/getEvmInjectedProviders/getEvmInjectedProviders.d.ts.map +1 -0
  48. package/dist/windowInjected/utils/getEvmInjectedProviders/index.d.ts +2 -0
  49. package/dist/windowInjected/utils/getEvmInjectedProviders/index.d.ts.map +1 -0
  50. package/dist/windowInjected/windowInjected.types.d.ts +27 -0
  51. package/dist/windowInjected/windowInjected.types.d.ts.map +1 -0
  52. package/dist/windowInjected.cjs.js +150 -0
  53. package/dist/windowInjected.cjs.js.map +1 -0
  54. package/dist/windowInjected.esm.js +150 -0
  55. package/dist/windowInjected.esm.js.map +1 -0
  56. package/package.json +10 -5
  57. package/dist/addEIP6963Extension-C9obd5mt.esm.js.map +0 -1
  58. package/dist/addEIP6963Extension-CgvtCBas.cjs.js.map +0 -1
  59. package/dist/package-BSFIt1-g.esm.js.map +0 -1
  60. package/dist/package-DXe9DIvt.cjs.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ const require_registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder-DDwm5_Df.cjs.js');
2
+ const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js');
3
+ let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
+
5
+ //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
6
+ const isEip6963Event = (event) => event !== null && event !== void 0 && event.type === "eip6963:announceProvider" && event.detail !== void 0 && event.detail !== null;
7
+
8
+ //#endregion
9
+ //#region src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts
10
+ const listenForEIP6963ProviderAnnouncement = (onProvider, globalWindow = window) => {
11
+ const handler = (event) => {
12
+ if (!isEip6963Event(event)) return;
13
+ onProvider(event.detail);
14
+ };
15
+ globalWindow.addEventListener("eip6963:announceProvider", handler);
16
+ globalWindow.dispatchEvent(new Event("eip6963:requestProvider"));
17
+ return () => {
18
+ globalWindow.removeEventListener("eip6963:announceProvider", handler);
19
+ };
20
+ };
21
+
22
+ //#endregion
23
+ //#region src/eip6963/addEIP6963Extension/addEIP6963Extension.ts
24
+ const EIP6963_EXTENSION_KEY = "eip6963";
25
+ /**
26
+ * Adds the EIP-6963 extension to the Dynamic client.
27
+ *
28
+ * This extension enables integration with wallets that support EIP-6963,
29
+ * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
30
+ *
31
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
32
+ * @returns A function that can be used to remove EIP-6963 global event listeners that were added.
33
+ */
34
+ const addEIP6963Extension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
35
+ if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: EIP6963_EXTENSION_KEY }, client)) return () => {};
36
+ (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: EIP6963_EXTENSION_KEY }, client);
37
+ require_registerEvmNetworkProviderBuilder.registerEvmNetworkProviderBuilder(client);
38
+ const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
39
+ return listenForEIP6963ProviderAnnouncement((detail) => {
40
+ const walletProvider = require_createWalletProviderFromEIP1193Provider.createWalletProviderFromEIP1193Provider({
41
+ displayName: detail.info.name,
42
+ eip1193: detail.provider,
43
+ icon: detail.info.icon
44
+ }, client);
45
+ walletProviderRegistry.register({
46
+ priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
47
+ walletProvider
48
+ });
49
+ });
50
+ };
51
+
52
+ //#endregion
53
+ Object.defineProperty(exports, 'addEIP6963Extension', {
54
+ enumerable: true,
55
+ get: function () {
56
+ return addEIP6963Extension;
57
+ }
58
+ });
59
+ //# sourceMappingURL=addEIP6963Extension-B9r9lgc0.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addEIP6963Extension-B9r9lgc0.cjs.js","names":["createWalletProviderFromEIP1193Provider","WalletProviderPriority"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\nexport const isEip6963Event = (\n event: unknown\n): event is Eip6963AnnounceProviderEvent =>\n event !== null &&\n event !== undefined &&\n (event as Eip6963AnnounceProviderEvent).type === 'eip6963:announceProvider' &&\n (event as Eip6963AnnounceProviderEvent).detail !== undefined &&\n (event as Eip6963AnnounceProviderEvent).detail !== null;\n","import type { EIP6963ProviderDetail } from '../../eip6963.types';\nimport { isEip6963Event } from '../isEip6963Event';\n\nexport const listenForEIP6963ProviderAnnouncement = (\n onProvider: (providerDetail: EIP6963ProviderDetail) => void,\n /**\n * This feature is only available in the browser\n * so it is fine to use the window directly here.\n *\n * TODO: check with others\n */\n // eslint-disable-next-line no-restricted-globals\n globalWindow = window\n): VoidFunction => {\n const handler = (event: Event) => {\n if (!isEip6963Event(event)) return;\n\n onProvider(event.detail);\n };\n\n globalWindow.addEventListener('eip6963:announceProvider', handler);\n\n globalWindow.dispatchEvent(new Event('eip6963:requestProvider'));\n\n return () => {\n globalWindow.removeEventListener('eip6963:announceProvider', handler);\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 { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { listenForEIP6963ProviderAnnouncement } from './../utils/listenForEIP6963ProviderAnnouncement';\n\nexport const EIP6963_EXTENSION_KEY = 'eip6963';\n\n/**\n * Adds the EIP-6963 extension to the Dynamic client.\n *\n * This extension enables integration with wallets that support EIP-6963,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that can be used to remove EIP-6963 global event listeners that were added.\n */\nexport const addEIP6963Extension = (client = getDefaultClient()) => {\n if (hasExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client)) {\n return () => {\n // noop\n };\n }\n\n registerExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n return listenForEIP6963ProviderAnnouncement((detail) => {\n const walletProvider = createWalletProviderFromEIP1193Provider(\n {\n displayName: detail.info.name,\n eip1193: detail.provider,\n icon: detail.info.icon,\n },\n client\n );\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":";;;;;AAEA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;ACNrD,MAAa,wCACX,YAQA,eAAe,WACE;CACjB,MAAM,WAAW,UAAiB;AAChC,MAAI,CAAC,eAAe,MAAM,CAAE;AAE5B,aAAW,MAAM,OAAO;;AAG1B,cAAa,iBAAiB,4BAA4B,QAAQ;AAElE,cAAa,cAAc,IAAI,MAAM,0BAA0B,CAAC;AAEhE,cAAa;AACX,eAAa,oBAAoB,4BAA4B,QAAQ;;;;;;ACbzE,MAAa,wBAAwB;;;;;;;;;;AAWrC,MAAa,uBAAuB,8DAA2B,KAAK;AAClE,qDAAiB,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,sDAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAClE,6EAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;AAEhE,QAAO,sCAAsC,WAAW;EACtD,MAAM,iBAAiBA,wFACrB;GACE,aAAa,OAAO,KAAK;GACzB,SAAS,OAAO;GAChB,MAAM,OAAO,KAAK;GACnB,EACD,OACD;AAED,yBAAuB,SAAS;GAC9B,UAAUC,qDAAuB;GACjC;GACD,CAAC;GACF"}
@@ -0,0 +1,54 @@
1
+ import { t as registerEvmNetworkProviderBuilder } from "./registerEvmNetworkProviderBuilder-CkGuzJNe.esm.js";
2
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js";
3
+ import { WalletProviderPriority, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
4
+
5
+ //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
6
+ const isEip6963Event = (event) => event !== null && event !== void 0 && event.type === "eip6963:announceProvider" && event.detail !== void 0 && event.detail !== null;
7
+
8
+ //#endregion
9
+ //#region src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts
10
+ const listenForEIP6963ProviderAnnouncement = (onProvider, globalWindow = window) => {
11
+ const handler = (event) => {
12
+ if (!isEip6963Event(event)) return;
13
+ onProvider(event.detail);
14
+ };
15
+ globalWindow.addEventListener("eip6963:announceProvider", handler);
16
+ globalWindow.dispatchEvent(new Event("eip6963:requestProvider"));
17
+ return () => {
18
+ globalWindow.removeEventListener("eip6963:announceProvider", handler);
19
+ };
20
+ };
21
+
22
+ //#endregion
23
+ //#region src/eip6963/addEIP6963Extension/addEIP6963Extension.ts
24
+ const EIP6963_EXTENSION_KEY = "eip6963";
25
+ /**
26
+ * Adds the EIP-6963 extension to the Dynamic client.
27
+ *
28
+ * This extension enables integration with wallets that support EIP-6963,
29
+ * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
30
+ *
31
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
32
+ * @returns A function that can be used to remove EIP-6963 global event listeners that were added.
33
+ */
34
+ const addEIP6963Extension = (client = getDefaultClient()) => {
35
+ if (hasExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client)) return () => {};
36
+ registerExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client);
37
+ registerEvmNetworkProviderBuilder(client);
38
+ const walletProviderRegistry = getWalletProviderRegistry(client);
39
+ return listenForEIP6963ProviderAnnouncement((detail) => {
40
+ const walletProvider = createWalletProviderFromEIP1193Provider({
41
+ displayName: detail.info.name,
42
+ eip1193: detail.provider,
43
+ icon: detail.info.icon
44
+ }, client);
45
+ walletProviderRegistry.register({
46
+ priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
47
+ walletProvider
48
+ });
49
+ });
50
+ };
51
+
52
+ //#endregion
53
+ export { addEIP6963Extension as t };
54
+ //# sourceMappingURL=addEIP6963Extension-D7Sjfh-Q.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addEIP6963Extension-D7Sjfh-Q.esm.js","names":[],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\nexport const isEip6963Event = (\n event: unknown\n): event is Eip6963AnnounceProviderEvent =>\n event !== null &&\n event !== undefined &&\n (event as Eip6963AnnounceProviderEvent).type === 'eip6963:announceProvider' &&\n (event as Eip6963AnnounceProviderEvent).detail !== undefined &&\n (event as Eip6963AnnounceProviderEvent).detail !== null;\n","import type { EIP6963ProviderDetail } from '../../eip6963.types';\nimport { isEip6963Event } from '../isEip6963Event';\n\nexport const listenForEIP6963ProviderAnnouncement = (\n onProvider: (providerDetail: EIP6963ProviderDetail) => void,\n /**\n * This feature is only available in the browser\n * so it is fine to use the window directly here.\n *\n * TODO: check with others\n */\n // eslint-disable-next-line no-restricted-globals\n globalWindow = window\n): VoidFunction => {\n const handler = (event: Event) => {\n if (!isEip6963Event(event)) return;\n\n onProvider(event.detail);\n };\n\n globalWindow.addEventListener('eip6963:announceProvider', handler);\n\n globalWindow.dispatchEvent(new Event('eip6963:requestProvider'));\n\n return () => {\n globalWindow.removeEventListener('eip6963:announceProvider', handler);\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 { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { listenForEIP6963ProviderAnnouncement } from './../utils/listenForEIP6963ProviderAnnouncement';\n\nexport const EIP6963_EXTENSION_KEY = 'eip6963';\n\n/**\n * Adds the EIP-6963 extension to the Dynamic client.\n *\n * This extension enables integration with wallets that support EIP-6963,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that can be used to remove EIP-6963 global event listeners that were added.\n */\nexport const addEIP6963Extension = (client = getDefaultClient()) => {\n if (hasExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client)) {\n return () => {\n // noop\n };\n }\n\n registerExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n return listenForEIP6963ProviderAnnouncement((detail) => {\n const walletProvider = createWalletProviderFromEIP1193Provider(\n {\n displayName: detail.info.name,\n eip1193: detail.provider,\n icon: detail.info.icon,\n },\n client\n );\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n });\n};\n"],"mappings":";;;;;AAEA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;ACNrD,MAAa,wCACX,YAQA,eAAe,WACE;CACjB,MAAM,WAAW,UAAiB;AAChC,MAAI,CAAC,eAAe,MAAM,CAAE;AAE5B,aAAW,MAAM,OAAO;;AAG1B,cAAa,iBAAiB,4BAA4B,QAAQ;AAElE,cAAa,cAAc,IAAI,MAAM,0BAA0B,CAAC;AAEhE,cAAa;AACX,eAAa,oBAAoB,4BAA4B,QAAQ;;;;;;ACbzE,MAAa,wBAAwB;;;;;;;;;;AAWrC,MAAa,uBAAuB,SAAS,kBAAkB,KAAK;AAClE,KAAI,aAAa,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,mBAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAClE,mCAAkC,OAAO;CAEzC,MAAM,yBAAyB,0BAA0B,OAAO;AAEhE,QAAO,sCAAsC,WAAW;EACtD,MAAM,iBAAiB,wCACrB;GACE,aAAa,OAAO,KAAK;GACzB,SAAS,OAAO;GAChB,MAAM,OAAO,KAAK;GACnB,EACD,OACD;AAED,yBAAuB,SAAS;GAC9B,UAAU,uBAAuB;GACjC;GACD,CAAC;GACF"}
@@ -1,5 +1,5 @@
1
1
  import { t as registerEvmNetworkProviderBuilder } from "./registerEvmNetworkProviderBuilder-CkGuzJNe.esm.js";
2
- import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-B4YB-yZt.esm.js";
2
+ import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-BeqJB1Af.esm.js";
3
3
  import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getSignedSessionId, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
4
4
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
5
  import { MFAAction as MFAAction$1, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
@@ -185,4 +185,4 @@ const addWaasEvmExtension = (client = getDefaultClient()) => {
185
185
 
186
186
  //#endregion
187
187
  export { addWaasEvmExtension as t };
188
- //# sourceMappingURL=addWaasEvmExtension-E0T0QK9i.esm.js.map
188
+ //# sourceMappingURL=addWaasEvmExtension-C4J963oh.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addWaasEvmExtension-E0T0QK9i.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']"],"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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/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\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 mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\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 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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n mfaToken,\n signedSessionId,\n typedData: typedData as unknown as string,\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\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 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 type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\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 terminate = async () => {\n return waasProvider.terminate();\n };\n\n return {\n ...waasProvider,\n chain,\n createViemWalletClient,\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 terminate,\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 */\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
+ {"version":3,"file":"addWaasEvmExtension-C4J963oh.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']"],"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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/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\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 mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\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 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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n mfaToken,\n signedSessionId,\n typedData: typedData as unknown as string,\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\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 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 type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\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 terminate = async () => {\n return waasProvider.terminate();\n };\n\n return {\n ...waasProvider,\n chain,\n createViemWalletClient,\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 terminate,\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 */\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,5 +1,5 @@
1
1
  const require_registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder-DDwm5_Df.cjs.js');
2
- const require_mapNetworkDataToViemChain = require('./mapNetworkDataToViemChain-CvTDSkkK.cjs.js');
2
+ const require_mapNetworkDataToViemChain = require('./mapNetworkDataToViemChain-DFVApcmV.cjs.js');
3
3
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
4
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
5
5
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
@@ -190,4 +190,4 @@ Object.defineProperty(exports, 'addWaasEvmExtension', {
190
190
  return addWaasEvmExtension;
191
191
  }
192
192
  });
193
- //# sourceMappingURL=addWaasEvmExtension-Cbj4c7W8.cjs.js.map
193
+ //# sourceMappingURL=addWaasEvmExtension-Da1oL1Uq.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addWaasEvmExtension-Cbj4c7W8.cjs.js","names":["MFAAction","MFAAction","mapNetworkDataToViemChain","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/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\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 mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\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 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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n mfaToken,\n signedSessionId,\n typedData: typedData as unknown as string,\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\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 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 type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\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 terminate = async () => {\n return waasProvider.terminate();\n };\n\n return {\n ...waasProvider,\n chain,\n createViemWalletClient,\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 terminate,\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 */\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
+ {"version":3,"file":"addWaasEvmExtension-Da1oL1Uq.cjs.js","names":["MFAAction","MFAAction","mapNetworkDataToViemChain","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/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\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 mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\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 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 consumeMfaTokenIfRequiredForAction,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n mfaToken,\n signedSessionId,\n typedData: typedData as unknown as string,\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\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 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 type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\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 terminate = async () => {\n return waasProvider.terminate();\n };\n\n return {\n ...waasProvider,\n chain,\n createViemWalletClient,\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 terminate,\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 */\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,3 @@
1
- const require_registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder-DDwm5_Df.cjs.js');
2
1
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
3
2
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
4
3
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
@@ -168,58 +167,10 @@ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName },
168
167
  };
169
168
 
170
169
  //#endregion
171
- //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
172
- const isEip6963Event = (event) => event !== null && event !== void 0 && event.type === "eip6963:announceProvider" && event.detail !== void 0 && event.detail !== null;
173
-
174
- //#endregion
175
- //#region src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts
176
- const listenForEIP6963ProviderAnnouncement = (onProvider, globalWindow = window) => {
177
- const handler = (event) => {
178
- if (!isEip6963Event(event)) return;
179
- onProvider(event.detail);
180
- };
181
- globalWindow.addEventListener("eip6963:announceProvider", handler);
182
- globalWindow.dispatchEvent(new Event("eip6963:requestProvider"));
183
- return () => {
184
- globalWindow.removeEventListener("eip6963:announceProvider", handler);
185
- };
186
- };
187
-
188
- //#endregion
189
- //#region src/eip6963/addEIP6963Extension/addEIP6963Extension.ts
190
- const EIP6963_EXTENSION_KEY = "eip6963";
191
- /**
192
- * Adds the EIP-6963 extension to the Dynamic client.
193
- *
194
- * This extension enables integration with wallets that support EIP-6963,
195
- * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
196
- *
197
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
198
- * @returns A function that can be used to remove EIP-6963 global event listeners that were added.
199
- */
200
- const addEIP6963Extension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
201
- if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: EIP6963_EXTENSION_KEY }, client)) return () => {};
202
- (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: EIP6963_EXTENSION_KEY }, client);
203
- require_registerEvmNetworkProviderBuilder.registerEvmNetworkProviderBuilder(client);
204
- const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
205
- return listenForEIP6963ProviderAnnouncement((detail) => {
206
- const walletProvider = createWalletProviderFromEIP1193Provider({
207
- displayName: detail.info.name,
208
- eip1193: detail.provider,
209
- icon: detail.info.icon
210
- }, client);
211
- walletProviderRegistry.register({
212
- priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
213
- walletProvider
214
- });
215
- });
216
- };
217
-
218
- //#endregion
219
- Object.defineProperty(exports, 'addEIP6963Extension', {
170
+ Object.defineProperty(exports, 'createWalletProviderFromEIP1193Provider', {
220
171
  enumerable: true,
221
172
  get: function () {
222
- return addEIP6963Extension;
173
+ return createWalletProviderFromEIP1193Provider;
223
174
  }
224
175
  });
225
- //# sourceMappingURL=addEIP6963Extension-CgvtCBas.cjs.js.map
176
+ //# sourceMappingURL=createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","UserRejectedError","NetworkSwitchingUnavailableError","networkData","UnrecognizedNetworkError","NetworkNotAddedError","chain: Chain","WalletProviderEnum","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n};\n\nexport const createWalletProviderFromEIP1193Provider = (\n { eip1193, icon, displayName }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193.request),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n walletProviderType,\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { t as registerEvmNetworkProviderBuilder } from "./registerEvmNetworkProviderBuilder-CkGuzJNe.esm.js";
2
- import { WalletProviderPriority, createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
1
+ import { createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey } from "@dynamic-labs-sdk/client/core";
3
2
  import { NetworkNotAddedError, NetworkSwitchingUnavailableError, UnrecognizedNetworkError, UserRejectedError, getNetworksData } from "@dynamic-labs-sdk/client";
4
3
  import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
5
4
  import { getAddress, isHex, toHex } from "viem";
@@ -168,53 +167,5 @@ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName },
168
167
  };
169
168
 
170
169
  //#endregion
171
- //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
172
- const isEip6963Event = (event) => event !== null && event !== void 0 && event.type === "eip6963:announceProvider" && event.detail !== void 0 && event.detail !== null;
173
-
174
- //#endregion
175
- //#region src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts
176
- const listenForEIP6963ProviderAnnouncement = (onProvider, globalWindow = window) => {
177
- const handler = (event) => {
178
- if (!isEip6963Event(event)) return;
179
- onProvider(event.detail);
180
- };
181
- globalWindow.addEventListener("eip6963:announceProvider", handler);
182
- globalWindow.dispatchEvent(new Event("eip6963:requestProvider"));
183
- return () => {
184
- globalWindow.removeEventListener("eip6963:announceProvider", handler);
185
- };
186
- };
187
-
188
- //#endregion
189
- //#region src/eip6963/addEIP6963Extension/addEIP6963Extension.ts
190
- const EIP6963_EXTENSION_KEY = "eip6963";
191
- /**
192
- * Adds the EIP-6963 extension to the Dynamic client.
193
- *
194
- * This extension enables integration with wallets that support EIP-6963,
195
- * automatically detecting and registering compatible wallets for use with the Dynamic SDK.
196
- *
197
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
198
- * @returns A function that can be used to remove EIP-6963 global event listeners that were added.
199
- */
200
- const addEIP6963Extension = (client = getDefaultClient()) => {
201
- if (hasExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client)) return () => {};
202
- registerExtension({ extensionKey: EIP6963_EXTENSION_KEY }, client);
203
- registerEvmNetworkProviderBuilder(client);
204
- const walletProviderRegistry = getWalletProviderRegistry(client);
205
- return listenForEIP6963ProviderAnnouncement((detail) => {
206
- const walletProvider = createWalletProviderFromEIP1193Provider({
207
- displayName: detail.info.name,
208
- eip1193: detail.provider,
209
- icon: detail.info.icon
210
- }, client);
211
- walletProviderRegistry.register({
212
- priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,
213
- walletProvider
214
- });
215
- });
216
- };
217
-
218
- //#endregion
219
- export { addEIP6963Extension as t };
220
- //# sourceMappingURL=addEIP6963Extension-C9obd5mt.esm.js.map
170
+ export { createWalletProviderFromEIP1193Provider as t };
171
+ //# sourceMappingURL=createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","networkData","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","viemGetAddress","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n};\n\nexport const createWalletProviderFromEIP1193Provider = (\n { eip1193, icon, displayName }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193.request),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n walletProviderType,\n };\n};\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- const require_package = require('./package-DXe9DIvt.cjs.js');
1
+ const require_package = require('./package-BhNWipax.cjs.js');
2
2
  require('./registerEvmNetworkProviderBuilder-DDwm5_Df.cjs.js');
3
- const require_addEIP6963Extension = require('./addEIP6963Extension-CgvtCBas.cjs.js');
3
+ require('./createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js');
4
+ const require_addEIP6963Extension = require('./addEIP6963Extension-B9r9lgc0.cjs.js');
4
5
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
6
 
6
7
  //#region src/exports/eip6963.ts
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/eip6963.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\n"],"mappings":";;;;;;mEAMqBA,sBAAaC,wBAAe"}
1
+ {"version":3,"file":"eip6963.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/eip6963.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\n"],"mappings":";;;;;;;mEAMqBA,sBAAaC,wBAAe"}
@@ -1,6 +1,7 @@
1
- import { n as version, t as name } from "./package-BSFIt1-g.esm.js";
1
+ import { n as version, t as name } from "./package-Cr7pL-a0.esm.js";
2
2
  import "./registerEvmNetworkProviderBuilder-CkGuzJNe.esm.js";
3
- import { t as addEIP6963Extension } from "./addEIP6963Extension-C9obd5mt.esm.js";
3
+ import "./createWalletProviderFromEIP1193Provider-BlpJn4oS.esm.js";
4
+ import { t as addEIP6963Extension } from "./addEIP6963Extension-D7Sjfh-Q.esm.js";
4
5
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
6
 
6
7
  //#region src/exports/eip6963.ts
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963.esm.js","names":["packageName","packageVersion"],"sources":["../src/exports/eip6963.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\n"],"mappings":";;;;;;AAMA,qBAAqBA,MAAaC,QAAe"}
1
+ {"version":3,"file":"eip6963.esm.js","names":["packageName","packageVersion"],"sources":["../src/exports/eip6963.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\n"],"mappings":";;;;;;;AAMA,qBAAqBA,MAAaC,QAAe"}
@@ -0,0 +1,2 @@
1
+ export { addEvmWindowInjectedExtension } from '../windowInjected/addEvmWindowInjectedExtension';
2
+ //# sourceMappingURL=windowInjected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowInjected.d.ts","sourceRoot":"","sources":["../../src/exports/windowInjected.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1,7 +1,8 @@
1
- const require_package = require('./package-DXe9DIvt.cjs.js');
1
+ const require_package = require('./package-BhNWipax.cjs.js');
2
2
  const require_registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder-DDwm5_Df.cjs.js');
3
- const require_addEIP6963Extension = require('./addEIP6963Extension-CgvtCBas.cjs.js');
4
- const require_addWaasEvmExtension = require('./addWaasEvmExtension-Cbj4c7W8.cjs.js');
3
+ require('./createWalletProviderFromEIP1193Provider-BjFdQbKT.cjs.js');
4
+ const require_addEIP6963Extension = require('./addEIP6963Extension-B9r9lgc0.cjs.js');
5
+ const require_addWaasEvmExtension = require('./addWaasEvmExtension-Da1oL1Uq.cjs.js');
5
6
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
6
7
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
7
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["packageName","packageVersion"],"sources":["../src/addEvmExtension/addEvmExtension.ts","../src/isEvmNetworkProvider/isEvmNetworkProvider.ts","../src/utils/isEvmWalletAccount/isEvmWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\nimport { addWaasEvmExtension } from '../waas/addWaasEvmExtension';\n\n/**\n * Adds the EVM extension to the Dynamic client.\n *\n * This is a convenience function that adds both the EIP-6963 extension\n * and the Dynamic WaaS EVM extension, enabling support for all EVM wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addEvmExtension = (client = getDefaultClient()): void => {\n addEIP6963Extension(client);\n addWaasEvmExtension(client);\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { EvmNetworkProvider } from '../EvmNetworkProvider';\n\n/**\n * Type guard function to check if a network provider is an EVM network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is an EVM network provider, false otherwise.\n */\nexport const isEvmNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is EvmNetworkProvider => networkProvider.chain === 'EVM';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is an EVM wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is an EVM wallet account, false otherwise.\n */\nexport const isEvmWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is EvmWalletAccount => walletAccount.chain === 'EVM';\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEvmExtension } from '../addEvmExtension';\nexport { RpcError } from '../errors/RpcError';\nexport type { EvmNetworkProvider } from '../EvmNetworkProvider';\nexport type { EvmWalletAccount } from '../EvmWalletAccount.types';\nexport type { EvmWalletProvider } from '../EvmWalletProvider.types';\nexport { isEvmNetworkProvider } from '../isEvmNetworkProvider';\nexport { isEvmWalletAccount } from '../utils/isEvmWalletAccount';\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAa,mBAAmB,8DAA2B,KAAW;AACpE,iDAAoB,OAAO;AAC3B,iDAAoB,OAAO;;;;;;;;;;;ACN7B,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;ACFtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;mECN3CA,sBAAaC,wBAAe"}
1
+ {"version":3,"file":"index.cjs.js","names":["packageName","packageVersion"],"sources":["../src/addEvmExtension/addEvmExtension.ts","../src/isEvmNetworkProvider/isEvmNetworkProvider.ts","../src/utils/isEvmWalletAccount/isEvmWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addEIP6963Extension } from '../eip6963/addEIP6963Extension';\nimport { addWaasEvmExtension } from '../waas/addWaasEvmExtension';\n\n/**\n * Adds the EVM extension to the Dynamic client.\n *\n * This is a convenience function that adds both the EIP-6963 extension\n * and the Dynamic WaaS EVM extension, enabling support for all EVM wallet types\n * including standard wallets and embedded wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n */\nexport const addEvmExtension = (client = getDefaultClient()): void => {\n addEIP6963Extension(client);\n addWaasEvmExtension(client);\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { EvmNetworkProvider } from '../EvmNetworkProvider';\n\n/**\n * Type guard function to check if a network provider is an EVM network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is an EVM network provider, false otherwise.\n */\nexport const isEvmNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is EvmNetworkProvider => networkProvider.chain === 'EVM';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is an EVM wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is an EVM wallet account, false otherwise.\n */\nexport const isEvmWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is EvmWalletAccount => walletAccount.chain === 'EVM';\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addEvmExtension } from '../addEvmExtension';\nexport { RpcError } from '../errors/RpcError';\nexport type { EvmNetworkProvider } from '../EvmNetworkProvider';\nexport type { EvmWalletAccount } from '../EvmWalletAccount.types';\nexport type { EvmWalletProvider } from '../EvmWalletProvider.types';\nexport { isEvmNetworkProvider } from '../isEvmNetworkProvider';\nexport { isEvmWalletAccount } from '../utils/isEvmWalletAccount';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAa,mBAAmB,8DAA2B,KAAW;AACpE,iDAAoB,OAAO;AAC3B,iDAAoB,OAAO;;;;;;;;;;;ACN7B,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;ACFtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;mECN3CA,sBAAaC,wBAAe"}