@dynamic-labs-sdk/evm 0.27.0 → 0.27.1

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 (64) hide show
  1. package/dist/{addEIP6963Extension-CsLDKxnC.esm.js → addEIP6963Extension-DY_uBbsl.esm.js} +3 -3
  2. package/dist/{addEIP6963Extension-CsLDKxnC.esm.js.map → addEIP6963Extension-DY_uBbsl.esm.js.map} +1 -1
  3. package/dist/{addEIP6963Extension-SnDMOqHg.cjs → addEIP6963Extension-JRJ5n0gz.cjs} +3 -3
  4. package/dist/{addEIP6963Extension-SnDMOqHg.cjs.map → addEIP6963Extension-JRJ5n0gz.cjs.map} +1 -1
  5. package/dist/{addWaasEvmExtension-DkgyJUn7.esm.js → addWaasEvmExtension-C3PagcGV.esm.js} +11 -9
  6. package/dist/addWaasEvmExtension-C3PagcGV.esm.js.map +1 -0
  7. package/dist/{addWaasEvmExtension-BdR7f-_3.cjs → addWaasEvmExtension-CyA9mAdv.cjs} +9 -7
  8. package/dist/addWaasEvmExtension-CyA9mAdv.cjs.map +1 -0
  9. package/dist/{addWaasEvmExtension-BV00iC4G.native.esm.js → addWaasEvmExtension-U4DO_WKC.native.esm.js} +9 -7
  10. package/dist/addWaasEvmExtension-U4DO_WKC.native.esm.js.map +1 -0
  11. package/dist/baseAccount.cjs +3 -3
  12. package/dist/baseAccount.esm.js +3 -3
  13. package/dist/baseAccount.native.esm.js +2 -2
  14. package/dist/{createWalletClientForWalletAccount-CIg9pNK1.cjs → createWalletClientForWalletAccount-BHIvXpr4.cjs} +2 -2
  15. package/dist/{createWalletClientForWalletAccount-CIg9pNK1.cjs.map → createWalletClientForWalletAccount-BHIvXpr4.cjs.map} +1 -1
  16. package/dist/{createWalletClientForWalletAccount-CrmwB-k7.esm.js → createWalletClientForWalletAccount-CZV3vNed.esm.js} +2 -2
  17. package/dist/{createWalletClientForWalletAccount-CrmwB-k7.esm.js.map → createWalletClientForWalletAccount-CZV3vNed.esm.js.map} +1 -1
  18. package/dist/{createWalletProviderFromEIP1193Provider-V7mbAWY6.cjs → createWalletProviderFromEIP1193Provider-BTqRU-9M.cjs} +12 -11
  19. package/dist/createWalletProviderFromEIP1193Provider-BTqRU-9M.cjs.map +1 -0
  20. package/dist/{createWalletProviderFromEIP1193Provider-DIyEkaMG.esm.js → createWalletProviderFromEIP1193Provider-BjUbWLgv.esm.js} +13 -12
  21. package/dist/createWalletProviderFromEIP1193Provider-BjUbWLgv.esm.js.map +1 -0
  22. package/dist/{createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js → createWalletProviderFromEIP1193Provider-DnPhiRmj.native.esm.js} +12 -11
  23. package/dist/createWalletProviderFromEIP1193Provider-DnPhiRmj.native.esm.js.map +1 -0
  24. package/dist/eip6963.cjs +4 -4
  25. package/dist/eip6963.esm.js +4 -4
  26. package/dist/eip6963.native.esm.js +1 -1
  27. package/dist/{evmTransferAmount-Dqw2C8RA.cjs → evmTransferAmount-CW-6opOL.cjs} +2 -2
  28. package/dist/{evmTransferAmount-Dqw2C8RA.cjs.map → evmTransferAmount-CW-6opOL.cjs.map} +1 -1
  29. package/dist/{evmTransferAmount-DkQzNUHB.esm.js → evmTransferAmount-DpvL2yet.esm.js} +2 -2
  30. package/dist/{evmTransferAmount-DkQzNUHB.esm.js.map → evmTransferAmount-DpvL2yet.esm.js.map} +1 -1
  31. package/dist/index.cjs +5 -5
  32. package/dist/index.esm.js +5 -5
  33. package/dist/index.native.esm.js +2 -2
  34. package/dist/{package-DylwzO_9.native.esm.js → package-BhhgtLsT.native.esm.js} +2 -2
  35. package/dist/package-BhhgtLsT.native.esm.js.map +1 -0
  36. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  37. package/dist/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.d.ts.map +1 -1
  38. package/dist/viem.cjs +1 -1
  39. package/dist/viem.esm.js +1 -1
  40. package/dist/viem.native.esm.js +1 -1
  41. package/dist/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.d.ts.map +1 -1
  42. package/dist/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.d.ts.map +1 -1
  43. package/dist/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.d.ts.map +1 -1
  44. package/dist/waas.cjs +3 -3
  45. package/dist/waas.esm.js +3 -3
  46. package/dist/waas.native.esm.js +2 -2
  47. package/dist/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.d.ts.map +1 -1
  48. package/dist/walletConnect.cjs +17 -14
  49. package/dist/walletConnect.cjs.map +1 -1
  50. package/dist/walletConnect.esm.js +17 -14
  51. package/dist/walletConnect.esm.js.map +1 -1
  52. package/dist/walletConnect.native.esm.js +16 -13
  53. package/dist/walletConnect.native.esm.js.map +1 -1
  54. package/dist/windowInjected.cjs +3 -3
  55. package/dist/windowInjected.esm.js +3 -3
  56. package/dist/windowInjected.native.esm.js +2 -2
  57. package/package.json +5 -5
  58. package/dist/addWaasEvmExtension-BV00iC4G.native.esm.js.map +0 -1
  59. package/dist/addWaasEvmExtension-BdR7f-_3.cjs.map +0 -1
  60. package/dist/addWaasEvmExtension-DkgyJUn7.esm.js.map +0 -1
  61. package/dist/createWalletProviderFromEIP1193Provider-DIyEkaMG.esm.js.map +0 -1
  62. package/dist/createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js.map +0 -1
  63. package/dist/createWalletProviderFromEIP1193Provider-V7mbAWY6.cjs.map +0 -1
  64. package/dist/package-DylwzO_9.native.esm.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { a as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-DkQzNUHB.esm.js";
2
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-DIyEkaMG.esm.js";
1
+ import { a as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-DpvL2yet.esm.js";
2
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-BjUbWLgv.esm.js";
3
3
  import { WalletProviderPriority, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
4
4
 
5
5
  //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
@@ -57,4 +57,4 @@ const addEIP6963Extension = (client = getDefaultClient()) => {
57
57
 
58
58
  //#endregion
59
59
  export { addEIP6963Extension as t };
60
- //# sourceMappingURL=addEIP6963Extension-CsLDKxnC.esm.js.map
60
+ //# sourceMappingURL=addEIP6963Extension-DY_uBbsl.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension-CsLDKxnC.esm.js","names":["addEIP6963Extension: AddEIP6963Extension"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\n/** @not-instrumented */\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\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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","export const EIP6963_EXTENSION_KEY = 'eip6963';\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';\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\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 * @not-instrumented\n */\nexport const addEIP6963Extension: AddEIP6963Extension = (\n client = getDefaultClient()\n) => {\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":";;;;;;AAGA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;;ACLrD,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;;;;;;AC3BzE,MAAa,wBAAwB;;;;;;;;;;;;;;ACwBrC,MAAaA,uBACX,SAAS,kBAAkB,KACxB;AACH,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
+ {"version":3,"file":"addEIP6963Extension-DY_uBbsl.esm.js","names":["addEIP6963Extension: AddEIP6963Extension"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\n/** @not-instrumented */\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\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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","export const EIP6963_EXTENSION_KEY = 'eip6963';\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';\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\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 * @not-instrumented\n */\nexport const addEIP6963Extension: AddEIP6963Extension = (\n client = getDefaultClient()\n) => {\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":";;;;;;AAGA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;;ACLrD,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;;;;;;AC3BzE,MAAa,wBAAwB;;;;;;;;;;;;;;ACwBrC,MAAaA,uBACX,SAAS,kBAAkB,KACxB;AACH,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
- const require_evmTransferAmount = require('./evmTransferAmount-Dqw2C8RA.cjs');
2
- const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-V7mbAWY6.cjs');
1
+ const require_evmTransferAmount = require('./evmTransferAmount-CW-6opOL.cjs');
2
+ const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-BTqRU-9M.cjs');
3
3
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
4
 
5
5
  //#region src/eip6963/utils/isEip6963Event/isEip6963Event.ts
@@ -62,4 +62,4 @@ Object.defineProperty(exports, 'addEIP6963Extension', {
62
62
  return addEIP6963Extension;
63
63
  }
64
64
  });
65
- //# sourceMappingURL=addEIP6963Extension-SnDMOqHg.cjs.map
65
+ //# sourceMappingURL=addEIP6963Extension-JRJ5n0gz.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension-SnDMOqHg.cjs","names":["addEIP6963Extension: AddEIP6963Extension","createWalletProviderFromEIP1193Provider","WalletProviderPriority"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\n/** @not-instrumented */\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\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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","export const EIP6963_EXTENSION_KEY = 'eip6963';\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';\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\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 * @not-instrumented\n */\nexport const addEIP6963Extension: AddEIP6963Extension = (\n client = getDefaultClient()\n) => {\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":";;;;;;AAGA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;;ACLrD,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;;;;;;AC3BzE,MAAa,wBAAwB;;;;;;;;;;;;;;ACwBrC,MAAaA,uBACX,8DAA2B,KACxB;AACH,qDAAiB,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,sDAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAClE,6DAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;AAEhE,QAAO,sCAAsC,WAAW;EACtD,MAAM,iBAAiBC,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"}
1
+ {"version":3,"file":"addEIP6963Extension-JRJ5n0gz.cjs","names":["addEIP6963Extension: AddEIP6963Extension","createWalletProviderFromEIP1193Provider","WalletProviderPriority"],"sources":["../src/eip6963/utils/isEip6963Event/isEip6963Event.ts","../src/eip6963/utils/listenForEIP6963ProviderAnnouncement/listenForEIP6963ProviderAnnouncement.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"sourcesContent":["import type { Eip6963AnnounceProviderEvent } from '../../eip6963.types';\n\n/** @not-instrumented */\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\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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","export const EIP6963_EXTENSION_KEY = 'eip6963';\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';\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\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 * @not-instrumented\n */\nexport const addEIP6963Extension: AddEIP6963Extension = (\n client = getDefaultClient()\n) => {\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":";;;;;;AAGA,MAAa,kBACX,UAEA,UAAU,QACV,UAAU,UACT,MAAuC,SAAS,8BAChD,MAAuC,WAAW,UAClD,MAAuC,WAAW;;;;;ACLrD,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;;;;;;AC3BzE,MAAa,wBAAwB;;;;;;;;;;;;;;ACwBrC,MAAaA,uBACX,8DAA2B,KACxB;AACH,qDAAiB,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,sDAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAClE,6DAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;AAEhE,QAAO,sCAAsC,WAAW;EACtD,MAAM,iBAAiBC,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"}
@@ -1,8 +1,8 @@
1
- import { r as mapNetworkDataToViemChain } from "./createWalletClientForWalletAccount-CrmwB-k7.esm.js";
2
- import { a as registerEvmNetworkProviderBuilder, n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-DkQzNUHB.esm.js";
3
- import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getSignedSessionId, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
1
+ import { r as mapNetworkDataToViemChain } from "./createWalletClientForWalletAccount-CZV3vNed.esm.js";
2
+ import { a as registerEvmNetworkProviderBuilder, n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-DpvL2yet.esm.js";
3
+ import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
4
4
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
- import { MFAAction as MFAAction$1, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
5
+ import { MFAAction as MFAAction$1, TokenScope, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
6
6
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
7
7
  import { toAccount } from "viem/accounts";
8
8
  import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
@@ -15,6 +15,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
15
15
  assertDefined(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
17
17
  const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, dynamicClient);
18
+ const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
18
19
  const waasClient = await waasProvider.getWaasClient();
19
20
  const authorization = {
20
21
  address: contractAddress,
@@ -25,6 +26,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
25
26
  accountAddress: walletAccount.address,
26
27
  authToken: dynamicClient.token ?? void 0,
27
28
  context: { eip7702Auth: authorization },
29
+ elevatedAccessToken,
28
30
  message: hashAuthorization(authorization).slice(2),
29
31
  mfaToken,
30
32
  password,
@@ -47,12 +49,14 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
47
49
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
48
50
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
49
51
  const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction$1.WalletWaasSign }, dynamicClient);
52
+ const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
50
53
  const waasClient = await waasProvider.getWaasClient();
51
54
  const stringifiedTypedData = stringify(typedData);
52
55
  const serializableTypedData = JSON.parse(stringifiedTypedData);
53
56
  return waasClient.signTypedData({
54
57
  accountAddress: walletAccount.address,
55
58
  authToken: dynamicClient.token ?? void 0,
59
+ elevatedAccessToken,
56
60
  mfaToken,
57
61
  signedSessionId,
58
62
  typedData: serializableTypedData
@@ -145,14 +149,13 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
145
149
  networkId,
146
150
  walletProviderKey: key
147
151
  });
148
- const terminate = async (args) => {
149
- return waasProvider.terminate(args);
150
- };
152
+ const destroy = async (args) => waasProvider.destroy(args);
151
153
  return {
152
154
  ...waasProvider,
153
155
  chain,
154
156
  confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),
155
157
  createViemWalletClient,
158
+ destroy,
156
159
  executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, dynamicClient),
157
160
  getActiveNetworkId,
158
161
  getConnectedAddresses,
@@ -164,7 +167,6 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
164
167
  },
165
168
  signMessage,
166
169
  switchActiveNetwork,
167
- terminate,
168
170
  transferAmount: (args) => evmTransferAmount(args, dynamicClient),
169
171
  walletProviderType
170
172
  };
@@ -196,4 +198,4 @@ const addWaasEvmExtension = (client = getDefaultClient()) => {
196
198
 
197
199
  //#endregion
198
200
  export { addWaasEvmExtension as t };
199
- //# sourceMappingURL=addWaasEvmExtension-DkgyJUn7.esm.js.map
201
+ //# sourceMappingURL=addWaasEvmExtension-C3PagcGV.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-C3PagcGV.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']"],"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 getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the EIP-7702 authorization sign under wallet:sign.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n consumeMfaTokenIfRequiredForAction,\n getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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 // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the typed-data sign under the wallet:sign scope.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\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
- const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-CIg9pNK1.cjs');
2
- const require_evmTransferAmount = require('./evmTransferAmount-Dqw2C8RA.cjs');
1
+ const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-BHIvXpr4.cjs');
2
+ const require_evmTransferAmount = require('./evmTransferAmount-CW-6opOL.cjs');
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");
@@ -15,6 +15,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
15
15
  (0, _dynamic_labs_sdk_client_core.assertDefined)(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await (0, _dynamic_labs_sdk_client_core.getSignedSessionId)(dynamicClient);
17
17
  const mfaToken = await (0, _dynamic_labs_sdk_client_core.consumeMfaTokenIfRequiredForAction)({ mfaAction: _dynamic_labs_sdk_client.MFAAction.WalletWaasSign }, dynamicClient);
18
+ const elevatedAccessToken = (0, _dynamic_labs_sdk_client_core.getElevatedAccessToken)({ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign }, dynamicClient);
18
19
  const waasClient = await waasProvider.getWaasClient();
19
20
  const authorization = {
20
21
  address: contractAddress,
@@ -25,6 +26,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
25
26
  accountAddress: walletAccount.address,
26
27
  authToken: dynamicClient.token ?? void 0,
27
28
  context: { eip7702Auth: authorization },
29
+ elevatedAccessToken,
28
30
  message: (0, viem_utils.hashAuthorization)(authorization).slice(2),
29
31
  mfaToken,
30
32
  password,
@@ -47,12 +49,14 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
47
49
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
48
50
  const { signature: signedSessionId } = await (0, _dynamic_labs_sdk_client_core.getSignedSessionId)(dynamicClient);
49
51
  const mfaToken = await (0, _dynamic_labs_sdk_client_core.consumeMfaTokenIfRequiredForAction)({ mfaAction: _dynamic_labs_sdk_api_core.MFAAction.WalletWaasSign }, dynamicClient);
52
+ const elevatedAccessToken = (0, _dynamic_labs_sdk_client_core.getElevatedAccessToken)({ scope: _dynamic_labs_sdk_api_core.TokenScope.Walletsign }, dynamicClient);
50
53
  const waasClient = await waasProvider.getWaasClient();
51
54
  const stringifiedTypedData = (0, viem.stringify)(typedData);
52
55
  const serializableTypedData = JSON.parse(stringifiedTypedData);
53
56
  return waasClient.signTypedData({
54
57
  accountAddress: walletAccount.address,
55
58
  authToken: dynamicClient.token ?? void 0,
59
+ elevatedAccessToken,
56
60
  mfaToken,
57
61
  signedSessionId,
58
62
  typedData: serializableTypedData
@@ -145,14 +149,13 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
145
149
  networkId,
146
150
  walletProviderKey: key
147
151
  });
148
- const terminate = async (args) => {
149
- return waasProvider.terminate(args);
150
- };
152
+ const destroy = async (args) => waasProvider.destroy(args);
151
153
  return {
152
154
  ...waasProvider,
153
155
  chain,
154
156
  confirmTransaction: (args) => require_evmTransferAmount.evmConfirmTransaction(args, dynamicClient),
155
157
  createViemWalletClient,
158
+ destroy,
156
159
  executeSwapTransaction: (args) => require_evmTransferAmount.evmExecuteSwapTransaction(args, dynamicClient),
157
160
  getActiveNetworkId,
158
161
  getConnectedAddresses,
@@ -164,7 +167,6 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
164
167
  },
165
168
  signMessage,
166
169
  switchActiveNetwork,
167
- terminate,
168
170
  transferAmount: (args) => require_evmTransferAmount.evmTransferAmount(args, dynamicClient),
169
171
  walletProviderType
170
172
  };
@@ -201,4 +203,4 @@ Object.defineProperty(exports, 'addWaasEvmExtension', {
201
203
  return addWaasEvmExtension;
202
204
  }
203
205
  });
204
- //# sourceMappingURL=addWaasEvmExtension-BdR7f-_3.cjs.map
206
+ //# sourceMappingURL=addWaasEvmExtension-CyA9mAdv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-CyA9mAdv.cjs","names":["MFAAction","TokenScope","MFAAction","TokenScope","mapNetworkDataToViemChain","chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","evmConfirmTransaction","evmExecuteSwapTransaction","evmTransferAmount","WalletProviderPriority"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n consumeMfaTokenIfRequiredForAction,\n getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the EIP-7702 authorization sign under wallet:sign.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n consumeMfaTokenIfRequiredForAction,\n getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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 // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the typed-data sign under the wallet:sign scope.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\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,9 +1,9 @@
1
1
  import { a as registerEvmNetworkProviderBuilder, n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-B__79nVn.native.esm.js";
2
2
  import { r as mapNetworkDataToViemChain } from "./createWalletClientForWalletAccount-V4CfRjd4.native.esm.js";
3
- import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getSignedSessionId, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
3
+ import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
4
4
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
5
5
  import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from "@dynamic-labs-sdk/client/waas/core";
6
- import { MFAAction as MFAAction$1, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
6
+ import { MFAAction as MFAAction$1, TokenScope, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
7
7
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
8
8
  import { toAccount } from "viem/accounts";
9
9
  import { hashAuthorization } from "viem/utils";
@@ -15,6 +15,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
15
15
  assertDefined(contractAddress, "Contract address not found");
16
16
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
17
17
  const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, dynamicClient);
18
+ const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
18
19
  const waasClient = await waasProvider.getWaasClient();
19
20
  const authorization = {
20
21
  address: contractAddress,
@@ -25,6 +26,7 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
25
26
  accountAddress: walletAccount.address,
26
27
  authToken: dynamicClient.token ?? void 0,
27
28
  context: { eip7702Auth: authorization },
29
+ elevatedAccessToken,
28
30
  message: hashAuthorization(authorization).slice(2),
29
31
  mfaToken,
30
32
  password,
@@ -47,12 +49,14 @@ const signAuthorization = async ({ parameters, walletAccount, waasProvider, pass
47
49
  const signTypedData = async ({ typedData, walletAccount, waasProvider }, dynamicClient) => {
48
50
  const { signature: signedSessionId } = await getSignedSessionId(dynamicClient);
49
51
  const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction$1.WalletWaasSign }, dynamicClient);
52
+ const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, dynamicClient);
50
53
  const waasClient = await waasProvider.getWaasClient();
51
54
  const stringifiedTypedData = stringify(typedData);
52
55
  const serializableTypedData = JSON.parse(stringifiedTypedData);
53
56
  return waasClient.signTypedData({
54
57
  accountAddress: walletAccount.address,
55
58
  authToken: dynamicClient.token ?? void 0,
59
+ elevatedAccessToken,
56
60
  mfaToken,
57
61
  signedSessionId,
58
62
  typedData: serializableTypedData
@@ -145,14 +149,13 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
145
149
  networkId,
146
150
  walletProviderKey: key
147
151
  });
148
- const terminate = async (args) => {
149
- return waasProvider.terminate(args);
150
- };
152
+ const destroy = async (args) => waasProvider.destroy(args);
151
153
  return {
152
154
  ...waasProvider,
153
155
  chain,
154
156
  confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),
155
157
  createViemWalletClient,
158
+ destroy,
156
159
  executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, dynamicClient),
157
160
  getActiveNetworkId,
158
161
  getConnectedAddresses,
@@ -164,7 +167,6 @@ const createWalletProviderForWaasEvm = ({ dynamicClient }) => {
164
167
  },
165
168
  signMessage,
166
169
  switchActiveNetwork,
167
- terminate,
168
170
  transferAmount: (args) => evmTransferAmount(args, dynamicClient),
169
171
  walletProviderType
170
172
  };
@@ -196,4 +198,4 @@ const addWaasEvmExtension = (client = getDefaultClient()) => {
196
198
 
197
199
  //#endregion
198
200
  export { addWaasEvmExtension as t };
199
- //# sourceMappingURL=addWaasEvmExtension-BV00iC4G.native.esm.js.map
201
+ //# sourceMappingURL=addWaasEvmExtension-U4DO_WKC.native.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addWaasEvmExtension-U4DO_WKC.native.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']"],"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 getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { Hex } from 'viem';\nimport { parseSignature } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { hashAuthorization } from 'viem/utils';\n\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\n\ntype SignAuthorizationParams = {\n parameters: SignAuthorizationParametersWithoutPrivateKey;\n password?: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const mfaToken = await consumeMfaTokenIfRequiredForAction(\n { mfaAction: MFAAction.WalletWaasSign },\n dynamicClient\n );\n\n // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the EIP-7702 authorization sign under wallet:sign.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n const authorization = {\n address: contractAddress,\n chainId,\n nonce,\n };\n\n const signature = await waasClient.signRawMessage({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n context: { eip7702Auth: authorization },\n elevatedAccessToken,\n message: hashAuthorization(authorization).slice(2),\n mfaToken,\n password,\n signedSessionId,\n });\n\n const parsedSignature = parseSignature(signature as Hex);\n\n return {\n address: contractAddress,\n chainId,\n nonce,\n r: parsedSignature.r,\n s: parsedSignature.s,\n v: parsedSignature.v,\n yParity: parsedSignature.yParity,\n };\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n consumeMfaTokenIfRequiredForAction,\n getElevatedAccessToken,\n getSignedSessionId,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport { MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';\nimport type { TypedData } from 'viem';\nimport { stringify } from 'viem';\n\ntype SignTypedDataParams = {\n typedData: TypedData | { [key: string]: unknown };\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\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 // Forward any elevated access token previously obtained via step-up so the\n // backend authorizes the typed-data sign under the wallet:sign scope.\n const elevatedAccessToken = getElevatedAccessToken(\n { scope: TokenScope.Walletsign },\n dynamicClient\n );\n\n const waasClient = await waasProvider.getWaasClient();\n\n // serialize bigint values\n const stringifiedTypedData = stringify(typedData);\n const serializableTypedData = JSON.parse(stringifiedTypedData) as string;\n\n return waasClient.signTypedData({\n accountAddress: walletAccount.address,\n authToken: dynamicClient.token ?? undefined,\n elevatedAccessToken,\n mfaToken,\n signedSessionId,\n typedData: serializableTypedData,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n TransactionSerializable,\n Transport,\n TypedData,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, http, serializeTransaction } from 'viem';\nimport type { SignAuthorizationReturnType } from 'viem/accounts';\nimport { toAccount } from 'viem/accounts';\n\nimport { mapNetworkDataToViemChain } from '../../../../viem/utils/mapNetworkDataToViemChain';\nimport type { SignAuthorizationParametersWithoutPrivateKey } from '../../../../viem/viem.types';\nimport { signAuthorization } from '../signAuthorization';\nimport { signTypedData } from '../signTypedData';\n\ntype CreateViemWalletClientForWaasParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\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,6 +1,6 @@
1
- const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-CIg9pNK1.cjs');
2
- const require_evmTransferAmount = require('./evmTransferAmount-Dqw2C8RA.cjs');
3
- const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-V7mbAWY6.cjs');
1
+ const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-BHIvXpr4.cjs');
2
+ const require_evmTransferAmount = require('./evmTransferAmount-CW-6opOL.cjs');
3
+ const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-BTqRU-9M.cjs');
4
4
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
5
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
6
6
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -1,6 +1,6 @@
1
- import { a as version, i as name } from "./createWalletClientForWalletAccount-CrmwB-k7.esm.js";
2
- import { a as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-DkQzNUHB.esm.js";
3
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-DIyEkaMG.esm.js";
1
+ import { a as version, i as name } from "./createWalletClientForWalletAccount-CZV3vNed.esm.js";
2
+ import { a as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-DpvL2yet.esm.js";
3
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-BjUbWLgv.esm.js";
4
4
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
5
  import { DYNAMIC_ICONIC_SPRITE_URL, WalletProviderPriority, getCore, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
6
6
  import { getNetworksData } from "@dynamic-labs-sdk/client";
@@ -1,7 +1,7 @@
1
- import { n as version, t as name } from "./package-DylwzO_9.native.esm.js";
1
+ import { n as version, t as name } from "./package-BhhgtLsT.native.esm.js";
2
2
  import { a as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-B__79nVn.native.esm.js";
3
3
  import "./createWalletClientForWalletAccount-V4CfRjd4.native.esm.js";
4
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js";
4
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-DnPhiRmj.native.esm.js";
5
5
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
6
6
  import { DYNAMIC_ICONIC_SPRITE_URL, WalletProviderPriority, getCore, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension } from "@dynamic-labs-sdk/client/core";
7
7
  import { getNetworksData } from "@dynamic-labs-sdk/client";
@@ -5,7 +5,7 @@ let viem_accounts = require("viem/accounts");
5
5
 
6
6
  //#region package.json
7
7
  var name = "@dynamic-labs-sdk/evm";
8
- var version = "0.27.0";
8
+ var version = "0.27.1";
9
9
 
10
10
  //#endregion
11
11
  //#region src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts
@@ -131,4 +131,4 @@ Object.defineProperty(exports, 'version', {
131
131
  return version;
132
132
  }
133
133
  });
134
- //# sourceMappingURL=createWalletClientForWalletAccount-CIg9pNK1.cjs.map
134
+ //# sourceMappingURL=createWalletClientForWalletAccount-BHIvXpr4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletClientForWalletAccount-CIg9pNK1.cjs","names":["InvalidParamError"],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,oCAKL;CACjB,OAAO,0BAA0B,YAAY;CAC7C,0BAAgB,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,8DAA2B,KAC0B;CACrD,MAAM,uFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAIA,2CACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,yDACzC,EAAE,eAAe,EACjB,OACD;AAED,kDACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAIA,2CACR,mEACD;AAGH,qCAA0B;EACxB,sCAAmB,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,4BAAkB,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
1
+ {"version":3,"file":"createWalletClientForWalletAccount-BHIvXpr4.cjs","names":["InvalidParamError"],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,oCAKL;CACjB,OAAO,0BAA0B,YAAY;CAC7C,0BAAgB,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,8DAA2B,KAC0B;CACrD,MAAM,uFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAIA,2CACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,yDACzC,EAAE,eAAe,EACjB,OACD;AAED,kDACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAIA,2CACR,mEACD;AAGH,qCAA0B;EACxB,sCAAmB,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,4BAAkB,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
@@ -5,7 +5,7 @@ import { toAccount } from "viem/accounts";
5
5
 
6
6
  //#region package.json
7
7
  var name = "@dynamic-labs-sdk/evm";
8
- var version = "0.27.0";
8
+ var version = "0.27.1";
9
9
 
10
10
  //#endregion
11
11
  //#region src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts
@@ -102,4 +102,4 @@ const createWalletClientForWalletAccount = async ({ walletAccount, walletClientC
102
102
 
103
103
  //#endregion
104
104
  export { version as a, name as i, createPublicClientFromNetworkData as n, mapNetworkDataToViemChain as r, createWalletClientForWalletAccount as t };
105
- //# sourceMappingURL=createWalletClientForWalletAccount-CrmwB-k7.esm.js.map
105
+ //# sourceMappingURL=createWalletClientForWalletAccount-CZV3vNed.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletClientForWalletAccount-CrmwB-k7.esm.js","names":[],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,OAKxB,mBAAmB;CACjB,OAAO,0BAA0B,YAAY;CAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,SAAS,kBAAkB,KAC0B;CACrD,MAAM,iBAAiB,mCACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAI,kBACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,OACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAI,kBACR,mEACD;AAGH,QAAO,mBAAmB;EACxB,SAAS,UAAU,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,OAAO,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
1
+ {"version":3,"file":"createWalletClientForWalletAccount-CZV3vNed.esm.js","names":[],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,OAKxB,mBAAmB;CACjB,OAAO,0BAA0B,YAAY;CAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,SAAS,kBAAkB,KAC0B;CACrD,MAAM,iBAAiB,mCACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAI,kBACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,OACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAI,kBACR,mEACD;AAGH,QAAO,mBAAmB;EACxB,SAAS,UAAU,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,OAAO,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}