@dynamic-labs-sdk/evm 1.14.0 → 1.16.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 (115) hide show
  1. package/dist/{addEIP6963Extension-CeJG9hJH.esm.js → addEIP6963Extension-Dx2ohLbB.esm.js} +3 -3
  2. package/dist/{addEIP6963Extension-CeJG9hJH.esm.js.map → addEIP6963Extension-Dx2ohLbB.esm.js.map} +1 -1
  3. package/dist/{addEIP6963Extension-DCVlKLtl.native.esm.js → addEIP6963Extension-h10IapXB.native.esm.js} +1 -1
  4. package/dist/{addEIP6963Extension-DCVlKLtl.native.esm.js.map → addEIP6963Extension-h10IapXB.native.esm.js.map} +1 -1
  5. package/dist/{addEIP6963Extension-CVWgGDEP.cjs → addEIP6963Extension-mzxb0AjT.cjs} +3 -3
  6. package/dist/{addEIP6963Extension-CVWgGDEP.cjs.map → addEIP6963Extension-mzxb0AjT.cjs.map} +1 -1
  7. package/dist/{addWaasEvmExtension-B1W9hBoO.native.esm.js → addWaasEvmExtension-CJD8D1Sf.native.esm.js} +3 -3
  8. package/dist/{addWaasEvmExtension-B1W9hBoO.native.esm.js.map → addWaasEvmExtension-CJD8D1Sf.native.esm.js.map} +1 -1
  9. package/dist/{addWaasEvmExtension-NkXUcFBx.cjs → addWaasEvmExtension-EtRGi_Ex.cjs} +4 -4
  10. package/dist/{addWaasEvmExtension-NkXUcFBx.cjs.map → addWaasEvmExtension-EtRGi_Ex.cjs.map} +1 -1
  11. package/dist/{addWaasEvmExtension-BBV5efH_.esm.js → addWaasEvmExtension-nBAehuCt.esm.js} +3 -3
  12. package/dist/{addWaasEvmExtension-BBV5efH_.esm.js.map → addWaasEvmExtension-nBAehuCt.esm.js.map} +1 -1
  13. package/dist/baseAccount.cjs +5 -4
  14. package/dist/baseAccount.cjs.map +1 -1
  15. package/dist/baseAccount.esm.js +4 -3
  16. package/dist/baseAccount.esm.js.map +1 -1
  17. package/dist/baseAccount.native.esm.js +4 -4
  18. package/dist/{createWalletClientForWalletAccount-BO0XMuIl.cjs → createWalletClientForWalletAccount-Cp0tPnnH.cjs} +4 -43
  19. package/dist/createWalletClientForWalletAccount-Cp0tPnnH.cjs.map +1 -0
  20. package/dist/{createWalletClientForWalletAccount-BNb9shKs.native.esm.js → createWalletClientForWalletAccount-CsfxMvvD.native.esm.js} +3 -19
  21. package/dist/{createWalletClientForWalletAccount-BNb9shKs.native.esm.js.map → createWalletClientForWalletAccount-CsfxMvvD.native.esm.js.map} +1 -1
  22. package/dist/{createWalletClientForWalletAccount-Cs1cCKrt.esm.js → createWalletClientForWalletAccount-D0biZZkD.esm.js} +3 -24
  23. package/dist/createWalletClientForWalletAccount-D0biZZkD.esm.js.map +1 -0
  24. package/dist/{createWalletProviderFromEIP1193Provider-5QOYfUP4.esm.js → createWalletProviderFromEIP1193Provider-Bdcs1-0s.esm.js} +2 -2
  25. package/dist/{createWalletProviderFromEIP1193Provider-5QOYfUP4.esm.js.map → createWalletProviderFromEIP1193Provider-Bdcs1-0s.esm.js.map} +1 -1
  26. package/dist/{createWalletProviderFromEIP1193Provider-CVPmT46o.cjs → createWalletProviderFromEIP1193Provider-D0oic4N4.cjs} +2 -2
  27. package/dist/{createWalletProviderFromEIP1193Provider-CVPmT46o.cjs.map → createWalletProviderFromEIP1193Provider-D0oic4N4.cjs.map} +1 -1
  28. package/dist/{createWalletProviderFromEIP1193Provider-DZ0ciUd0.native.esm.js → createWalletProviderFromEIP1193Provider-D4aKomjq.native.esm.js} +2 -2
  29. package/dist/{createWalletProviderFromEIP1193Provider-DZ0ciUd0.native.esm.js.map → createWalletProviderFromEIP1193Provider-D4aKomjq.native.esm.js.map} +1 -1
  30. package/dist/eip6963.cjs +6 -5
  31. package/dist/eip6963.cjs.map +1 -1
  32. package/dist/eip6963.esm.js +5 -4
  33. package/dist/eip6963.esm.js.map +1 -1
  34. package/dist/eip6963.native.esm.js +2 -2
  35. package/dist/{evmTransferAmount-j0G3UjkD.esm.js → evmTransferAmount-B2lXHyW3.native.esm.js} +3 -2
  36. package/dist/{evmTransferAmount-Bfn3RYq7.native.esm.js.map → evmTransferAmount-B2lXHyW3.native.esm.js.map} +1 -1
  37. package/dist/{evmTransferAmount-Bfn3RYq7.native.esm.js → evmTransferAmount-B8mlh0vP.esm.js} +3 -2
  38. package/dist/{evmTransferAmount-j0G3UjkD.esm.js.map → evmTransferAmount-B8mlh0vP.esm.js.map} +1 -1
  39. package/dist/{evmTransferAmount-DwPPkeWK.cjs → evmTransferAmount-LS5XUHYM.cjs} +6 -5
  40. package/dist/{evmTransferAmount-DwPPkeWK.cjs.map → evmTransferAmount-LS5XUHYM.cjs.map} +1 -1
  41. package/dist/exports/tempo.d.ts +11 -0
  42. package/dist/exports/tempo.d.ts.map +1 -0
  43. package/dist/index.cjs +7 -6
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.esm.js +6 -5
  46. package/dist/index.esm.js.map +1 -1
  47. package/dist/index.native.esm.js +5 -5
  48. package/dist/mapNetworkDataToViemChain-1_2vIYJs.cjs +42 -0
  49. package/dist/mapNetworkDataToViemChain-1_2vIYJs.cjs.map +1 -0
  50. package/dist/mapNetworkDataToViemChain-C9086tZ-.native.esm.js +19 -0
  51. package/dist/mapNetworkDataToViemChain-C9086tZ-.native.esm.js.map +1 -0
  52. package/dist/mapNetworkDataToViemChain-CJrpN6TI.esm.js +24 -0
  53. package/dist/mapNetworkDataToViemChain-CJrpN6TI.esm.js.map +1 -0
  54. package/dist/metamask.cjs +5 -4
  55. package/dist/metamask.cjs.map +1 -1
  56. package/dist/metamask.esm.js +4 -3
  57. package/dist/metamask.esm.js.map +1 -1
  58. package/dist/metamask.native.esm.js +4 -4
  59. package/dist/{package-x2e-NQ78.native.esm.js → package-BzZYA-cC.native.esm.js} +2 -2
  60. package/dist/package-BzZYA-cC.native.esm.js.map +1 -0
  61. package/dist/tempo/addTempoExtension/addTempoExtension.d.ts +13 -0
  62. package/dist/tempo/addTempoExtension/addTempoExtension.d.ts.map +1 -0
  63. package/dist/tempo/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts +9 -0
  64. package/dist/tempo/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts.map +1 -0
  65. package/dist/tempo/getTempoPublicClient/getTempoPublicClient.d.ts +17 -0
  66. package/dist/tempo/getTempoPublicClient/getTempoPublicClient.d.ts.map +1 -0
  67. package/dist/tempo/isTempoNetworkProvider/isTempoNetworkProvider.d.ts +8 -0
  68. package/dist/tempo/isTempoNetworkProvider/isTempoNetworkProvider.d.ts.map +1 -0
  69. package/dist/tempo/isTempoWalletAccount/isTempoWalletAccount.d.ts +8 -0
  70. package/dist/tempo/isTempoWalletAccount/isTempoWalletAccount.d.ts.map +1 -0
  71. package/dist/tempo/isTempoWalletProvider/isTempoWalletProvider.d.ts +8 -0
  72. package/dist/tempo/isTempoWalletProvider/isTempoWalletProvider.d.ts.map +1 -0
  73. package/dist/tempo/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts +4 -0
  74. package/dist/tempo/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts.map +1 -0
  75. package/dist/tempo/sendTip20Transaction/sendTip20Transaction.d.ts +23 -0
  76. package/dist/tempo/sendTip20Transaction/sendTip20Transaction.d.ts.map +1 -0
  77. package/dist/tempo/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts +5 -0
  78. package/dist/tempo/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts.map +1 -0
  79. package/dist/tempo/utils/tempoChainIds/tempoChainIds.d.ts +4 -1
  80. package/dist/tempo/utils/tempoChainIds/tempoChainIds.d.ts.map +1 -1
  81. package/dist/tempo.cjs +173 -0
  82. package/dist/tempo.cjs.map +1 -0
  83. package/dist/tempo.esm.js +166 -0
  84. package/dist/tempo.esm.js.map +1 -0
  85. package/dist/tempo.native.esm.js +167 -0
  86. package/dist/tempo.native.esm.js.map +1 -0
  87. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  88. package/dist/viem.cjs +4 -3
  89. package/dist/viem.cjs.map +1 -1
  90. package/dist/viem.esm.js +2 -1
  91. package/dist/viem.esm.js.map +1 -1
  92. package/dist/viem.native.esm.js +3 -2
  93. package/dist/viem.native.esm.js.map +1 -1
  94. package/dist/waas.cjs +5 -4
  95. package/dist/waas.cjs.map +1 -1
  96. package/dist/waas.esm.js +4 -3
  97. package/dist/waas.esm.js.map +1 -1
  98. package/dist/waas.native.esm.js +4 -4
  99. package/dist/walletConnect.cjs +4 -3
  100. package/dist/walletConnect.cjs.map +1 -1
  101. package/dist/walletConnect.esm.js +3 -2
  102. package/dist/walletConnect.esm.js.map +1 -1
  103. package/dist/walletConnect.native.esm.js +3 -3
  104. package/dist/windowInjected/addEvmWindowInjectedExtension/addEvmWindowInjectedExtension.d.ts +1 -1
  105. package/dist/windowInjected/addEvmWindowInjectedExtension/addEvmWindowInjectedExtension.d.ts.map +1 -1
  106. package/dist/windowInjected.cjs +5 -4
  107. package/dist/windowInjected.cjs.map +1 -1
  108. package/dist/windowInjected.esm.js +4 -3
  109. package/dist/windowInjected.esm.js.map +1 -1
  110. package/dist/windowInjected.native.esm.js +4 -4
  111. package/dist/windowInjected.native.esm.js.map +1 -1
  112. package/package.json +12 -6
  113. package/dist/createWalletClientForWalletAccount-BO0XMuIl.cjs.map +0 -1
  114. package/dist/createWalletClientForWalletAccount-Cs1cCKrt.esm.js.map +0 -1
  115. package/dist/package-x2e-NQ78.native.esm.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-j0G3UjkD.esm.js";
2
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-5QOYfUP4.esm.js";
1
+ import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-B8mlh0vP.esm.js";
2
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-Bdcs1-0s.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-CeJG9hJH.esm.js.map
60
+ //# sourceMappingURL=addEIP6963Extension-Dx2ohLbB.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension-CeJG9hJH.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/** @notInstrumented */\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/** @notInstrumented */\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 * @notInstrumented\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-Dx2ohLbB.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/** @notInstrumented */\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/** @notInstrumented */\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 * @notInstrumented\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"}
@@ -24,4 +24,4 @@ const addEIP6963Extension = (client = getDefaultClient()) => {
24
24
 
25
25
  //#endregion
26
26
  export { addEIP6963Extension as t };
27
- //# sourceMappingURL=addEIP6963Extension-DCVlKLtl.native.esm.js.map
27
+ //# sourceMappingURL=addEIP6963Extension-h10IapXB.native.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension-DCVlKLtl.native.esm.js","names":["addEIP6963Extension: AddEIP6963Extension"],"sources":["../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.native.ts"],"sourcesContent":["export const EIP6963_EXTENSION_KEY = 'eip6963';\n","import {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\n\n/**\n * React Native no-op implementation of the EIP-6963 extension.\n *\n * EIP-6963 relies on browser `window` events to discover injected wallets,\n * which do not exist in React Native. The extension key is still registered\n * so the extension is reported as installed, but no listeners are attached.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A no-op cleanup function.\n * @notInstrumented\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\n return () => {\n // noop\n };\n};\n"],"mappings":";;;AAAA,MAAa,wBAAwB;;;;;;;;;;;;;;;ACoBrC,MAAaA,uBACX,SAAS,kBAAkB,KACxB;AACH,KAAI,aAAa,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,mBAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAElE,cAAa"}
1
+ {"version":3,"file":"addEIP6963Extension-h10IapXB.native.esm.js","names":["addEIP6963Extension: AddEIP6963Extension"],"sources":["../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts","../src/eip6963/addEIP6963Extension/addEIP6963Extension.native.ts"],"sourcesContent":["export const EIP6963_EXTENSION_KEY = 'eip6963';\n","import {\n getDefaultClient,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { EIP6963_EXTENSION_KEY } from './addEIP6963Extension.constants';\nimport type { AddEIP6963Extension } from './addEIP6963Extension.types';\n\n/**\n * React Native no-op implementation of the EIP-6963 extension.\n *\n * EIP-6963 relies on browser `window` events to discover injected wallets,\n * which do not exist in React Native. The extension key is still registered\n * so the extension is reported as installed, but no listeners are attached.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A no-op cleanup function.\n * @notInstrumented\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\n return () => {\n // noop\n };\n};\n"],"mappings":";;;AAAA,MAAa,wBAAwB;;;;;;;;;;;;;;;ACoBrC,MAAaA,uBACX,SAAS,kBAAkB,KACxB;AACH,KAAI,aAAa,EAAE,cAAc,uBAAuB,EAAE,OAAO,CAC/D,cAAa;AAKf,mBAAkB,EAAE,cAAc,uBAAuB,EAAE,OAAO;AAElE,cAAa"}
@@ -1,5 +1,5 @@
1
- const require_evmTransferAmount = require('./evmTransferAmount-DwPPkeWK.cjs');
2
- const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-CVPmT46o.cjs');
1
+ const require_evmTransferAmount = require('./evmTransferAmount-LS5XUHYM.cjs');
2
+ const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-D0oic4N4.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-CVWgGDEP.cjs.map
65
+ //# sourceMappingURL=addEIP6963Extension-mzxb0AjT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension-CVWgGDEP.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/** @notInstrumented */\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/** @notInstrumented */\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 * @notInstrumented\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-mzxb0AjT.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/** @notInstrumented */\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/** @notInstrumented */\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 * @notInstrumented\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,5 +1,5 @@
1
- import { i as evmConfirmTransaction, n as evmExecuteSwapTransaction, o as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-Bfn3RYq7.native.esm.js";
2
- import { i as mapNetworkDataToViemChain } from "./createWalletClientForWalletAccount-BNb9shKs.native.esm.js";
1
+ import { i as evmConfirmTransaction, n as evmExecuteSwapTransaction, o as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-B2lXHyW3.native.esm.js";
2
+ import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-C9086tZ-.native.esm.js";
3
3
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
4
4
  import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
5
5
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
@@ -198,4 +198,4 @@ const addWaasEvmExtension = (client = getDefaultClient$1()) => {
198
198
 
199
199
  //#endregion
200
200
  export { addWaasEvmExtension as t };
201
- //# sourceMappingURL=addWaasEvmExtension-B1W9hBoO.native.esm.js.map
201
+ //# sourceMappingURL=addWaasEvmExtension-CJD8D1Sf.native.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addWaasEvmExtension-B1W9hBoO.native.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addWaasEvmExtension-CJD8D1Sf.native.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-BO0XMuIl.cjs');
2
- const require_evmTransferAmount = require('./evmTransferAmount-DwPPkeWK.cjs');
1
+ const require_mapNetworkDataToViemChain = require('./mapNetworkDataToViemChain-1_2vIYJs.cjs');
2
+ const require_evmTransferAmount = require('./evmTransferAmount-LS5XUHYM.cjs');
3
3
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
4
4
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
5
5
  let viem = require("viem");
@@ -101,7 +101,7 @@ const createViemWalletClientForWaas = async ({ waasProvider, walletAccount, http
101
101
  }, dynamicClient);
102
102
  }
103
103
  }),
104
- chain: require_createWalletClientForWalletAccount.mapNetworkDataToViemChain(activeNetworkData),
104
+ chain: require_mapNetworkDataToViemChain.mapNetworkDataToViemChain(activeNetworkData),
105
105
  transport: (0, viem.http)(activeNetworkData.rpcUrls.http[0], httpTransportConfig),
106
106
  ...viemWalletClientConfig
107
107
  });
@@ -203,4 +203,4 @@ Object.defineProperty(exports, 'addWaasEvmExtension', {
203
203
  return addWaasEvmExtension;
204
204
  }
205
205
  });
206
- //# sourceMappingURL=addWaasEvmExtension-NkXUcFBx.cjs.map
206
+ //# sourceMappingURL=addWaasEvmExtension-EtRGi_Ex.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"addWaasEvmExtension-NkXUcFBx.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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addWaasEvmExtension-EtRGi_Ex.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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { i as mapNetworkDataToViemChain } from "./createWalletClientForWalletAccount-Cs1cCKrt.esm.js";
2
- import { i as evmConfirmTransaction, n as evmExecuteSwapTransaction, o as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-j0G3UjkD.esm.js";
1
+ import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-CJrpN6TI.esm.js";
2
+ import { i as evmConfirmTransaction, n as evmExecuteSwapTransaction, o as registerEvmNetworkProviderBuilder, t as evmTransferAmount } from "./evmTransferAmount-B8mlh0vP.esm.js";
3
3
  import { MFAAction, getActiveNetworkData } from "@dynamic-labs-sdk/client";
4
4
  import { WalletProviderPriority, assertDefined, consumeMfaTokenIfRequiredForAction, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient as getDefaultClient$1, getElevatedAccessToken, getSignedSessionId, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
5
5
  import { createWalletClient, http, parseSignature, serializeTransaction, stringify } from "viem";
@@ -198,4 +198,4 @@ const addWaasEvmExtension = (client = getDefaultClient$1()) => {
198
198
 
199
199
  //#endregion
200
200
  export { addWaasEvmExtension as t };
201
- //# sourceMappingURL=addWaasEvmExtension-BBV5efH_.esm.js.map
201
+ //# sourceMappingURL=addWaasEvmExtension-nBAehuCt.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addWaasEvmExtension-BBV5efH_.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addWaasEvmExtension-nBAehuCt.esm.js","names":["MFAAction","chain: Chain","createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses']","signMessage: WaasEvmWalletProvider['signMessage']","switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork']","destroy: WaasEvmWalletProvider['destroy']","getDefaultClient","hasExtension"],"sources":["../src/waas/utils/createWalletProviderForWaasEvm/signAuthorization/signAuthorization.ts","../src/waas/utils/createWalletProviderForWaasEvm/signTypedData/signTypedData.ts","../src/waas/utils/createWalletProviderForWaasEvm/createViemWalletClientForWaas/createViemWalletClientForWaas.ts","../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts","../src/waas/addWaasEvmExtension/addWaasEvmExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n MFAAction,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signAuthorization = async (\n {\n parameters,\n walletAccount,\n waasProvider,\n password,\n }: SignAuthorizationParams,\n dynamicClient: DynamicClient\n): Promise<SignAuthorizationReturnType> => {\n const { address: contractAddress, chainId, nonce } = parameters;\n\n assertDefined(contractAddress, 'Contract address not found');\n\n const { signature: signedSessionId } = await getSignedSessionId(\n dynamicClient\n );\n\n const 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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const signTypedData = async (\n { typedData, walletAccount, waasProvider }: SignTypedDataParams,\n dynamicClient: DynamicClient\n) => {\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/** @notInstrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaas = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n async signAuthorization(\n parameters: SignAuthorizationParametersWithoutPrivateKey\n ): Promise<SignAuthorizationReturnType> {\n const signature = await signAuthorization(\n {\n parameters,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature;\n },\n signMessage: async ({ message }) => {\n const { signature } = await waasProvider.signMessage({\n message: message as string,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TransactionSerializable\n ): Promise<Hex> => {\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: serializeTransaction(transaction),\n walletAccount,\n });\n\n return signature as Hex;\n },\n // eslint-disable-next-line custom-rules/require-single-object-param\n signTypedData: async (\n typedData: TypedData | { [key: string]: unknown }\n ): Promise<Hex> => {\n const signature = await signTypedData(\n {\n typedData,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n return signature as Hex;\n },\n }),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: http(activeNetworkData.rpcUrls.http[0], httpTransportConfig),\n ...viemWalletClientConfig,\n });\n};\n","import { type Chain, type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { evmConfirmTransaction } from '../../../utils/evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../../../utils/evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../../../utils/evmTransferAmount';\nimport type { WaasEvmWalletProvider } from '../../WaasEvmWalletProvider.types';\nimport { createViemWalletClientForWaas } from './createViemWalletClientForWaas';\n\ntype CreateWalletProviderForWaasEvmParams = {\n dynamicClient: DynamicClient;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasEvm = ({\n dynamicClient,\n}: CreateWalletProviderForWaasEvmParams): WaasEvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasEvmWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) => {\n return createViemWalletClientForWaas(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n };\n\n const getActiveNetworkId: WaasEvmWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasEvmAddresses = getAllUserWaasAddressesForChain(\n { chain },\n dynamicClient\n );\n\n return {\n addresses: waasEvmAddresses,\n };\n };\n\n const signMessage: WaasEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({\n message,\n walletAccount,\n });\n };\n\n const switchActiveNetwork: WaasEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const destroy: WaasEvmWalletProvider['destroy'] = async (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n executeSwapTransaction: (args) =>\n evmExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n switchActiveNetwork,\n transferAmount: (args) => evmTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { createWalletProviderForWaasEvm } from '../utils/createWalletProviderForWaasEvm';\n\nexport const WAAS_EVM_EXTENSION_KEY = 'waasEvm';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) EVM extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for EVM-compatible blockchains,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasEvmExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasEvm({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- const require_createWalletClientForWalletAccount = require('./createWalletClientForWalletAccount-BO0XMuIl.cjs');
2
- const require_evmTransferAmount = require('./evmTransferAmount-DwPPkeWK.cjs');
3
- const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-CVPmT46o.cjs');
1
+ const require_mapNetworkDataToViemChain = require('./mapNetworkDataToViemChain-1_2vIYJs.cjs');
2
+ const require_evmTransferAmount = require('./evmTransferAmount-LS5XUHYM.cjs');
3
+ require('./createWalletClientForWalletAccount-Cp0tPnnH.cjs');
4
+ const require_createWalletProviderFromEIP1193Provider = require('./createWalletProviderFromEIP1193Provider-D0oic4N4.cjs');
4
5
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
6
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
6
7
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
@@ -112,7 +113,7 @@ const addBaseAccountEvmExtension = (options = {}, client = (0, _dynamic_labs_sdk
112
113
 
113
114
  //#endregion
114
115
  //#region src/exports/baseAccount.ts
115
- (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_createWalletClientForWalletAccount.name, require_createWalletClientForWalletAccount.version);
116
+ (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_mapNetworkDataToViemChain.name, require_mapNetworkDataToViemChain.version);
116
117
 
117
118
  //#endregion
118
119
  exports.addBaseAccountEvmExtension = addBaseAccountEvmExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"baseAccount.cjs","names":["DYNAMIC_ICONIC_SPRITE_URL","cachedProvider: BaseAccountSDKProvider | undefined","createWalletProviderFromEIP1193Provider","WalletProviderEnum","WalletProviderPriority","packageName","packageVersion"],"sources":["../src/utils/getEvmNetworkIds/getEvmNetworkIds.ts","../src/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.ts","../src/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.ts","../src/exports/baseAccount.ts"],"sourcesContent":["import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\n/**\n * Returns the numeric IDs of the EVM networks configured on the Dynamic\n * client. Generic helper available to any EVM extension that needs to\n * advertise the configured chain set to a third-party SDK (e.g. Base\n * Account, WalletConnect).\n *\n * @param client - The Dynamic client whose project settings drive the result.\n * @notInstrumented\n */\nexport const getEvmNetworkIds = (client: DynamicClient): number[] =>\n getNetworksData(client).reduce<number[]>((networkIds, network) => {\n if (network.chain !== 'EVM') return networkIds;\n const networkId = Number.parseInt(network.networkId, 10);\n if (!Number.isFinite(networkId)) return networkIds;\n networkIds.push(networkId);\n return networkIds;\n }, []);\n","import { createBaseAccountSDK } from '@base-org/account';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n DYNAMIC_ICONIC_SPRITE_URL,\n getAppMetadata,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { getEvmNetworkIds } from '../../utils/getEvmNetworkIds/getEvmNetworkIds';\nimport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\n\nconst BASE_ACCOUNT_DISPLAY_NAME = 'Base Account';\nconst BASE_ACCOUNT_ICON = `${DYNAMIC_ICONIC_SPRITE_URL}#base`;\n\ntype BaseAccountSDKProvider = ReturnType<\n ReturnType<typeof createBaseAccountSDK>['getProvider']\n>;\n\n/**\n * Builds an `EvmWalletProvider` backed by `@base-org/account`. Used internally\n * by `addBaseAccountEvmExtension`; not part of the public API.\n *\n * The underlying `@base-org/account` SDK is constructed lazily on the first\n * EIP-1193 call. This avoids reading `client.projectSettings` (via\n * `getEvmNetworkIds`) at extension-registration time — which would throw if\n * the extension is added before `initializeClient` resolves project settings.\n *\n * Classification matches dynamic-auth's mapping for the popup-SDK flow:\n * `WalletProviderEnum.CustodialService`. The browser-extension path is owned\n * by `addEIP6963Extension` / `addEvmWindowInjectedExtension`.\n *\n * @param options - Optional Base Account preference.\n * @param client - The Dynamic client whose metadata + networks drive the SDK.\n * @notInstrumented\n */\nexport const createBaseAccountEvmWalletProvider = (\n { preference }: AddBaseAccountEvmExtensionOptions,\n client: DynamicClient\n): EvmWalletProvider => {\n let cachedProvider: BaseAccountSDKProvider | undefined;\n\n const getOrCreateProvider = (): BaseAccountSDKProvider => {\n if (cachedProvider) {\n return cachedProvider;\n }\n const { appName, appLogoUrl } = getAppMetadata(client);\n cachedProvider = createBaseAccountSDK({\n appChainIds: getEvmNetworkIds(client),\n appLogoUrl,\n appName,\n preference,\n }).getProvider();\n return cachedProvider;\n };\n\n // EIP-1193 façade that defers SDK construction until first interaction and\n // bridges the two `on` event vocabularies — `@base-org/account` emits the\n // canonical `disconnect`, while our local `EIP1193Provider` consumer expects\n // `disconnected`. We forward each event explicitly so the divergence is\n // visible in source rather than smoothed over by a blanket cast.\n const lazyEip1193: EIP1193Provider = {\n on: (event, listener) => {\n const provider = getOrCreateProvider();\n if (event === 'accountsChanged') {\n provider.on('accountsChanged', listener as (a: string[]) => void);\n } else if (event === 'chainChanged') {\n provider.on('chainChanged', listener as (c: string) => void);\n } else {\n provider.on('disconnect', () => (listener as () => void)());\n }\n },\n removeAllListeners: () => cachedProvider?.removeAllListeners(),\n request: <T = unknown>(args: { method: string; params: unknown[] }) =>\n getOrCreateProvider().request(args) as Promise<T>,\n };\n\n return createWalletProviderFromEIP1193Provider(\n {\n displayName: BASE_ACCOUNT_DISPLAY_NAME,\n eip1193: lazyEip1193,\n icon: BASE_ACCOUNT_ICON,\n walletProviderType: WalletProviderEnum.CustodialService,\n },\n client\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 type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\nimport { createBaseAccountEvmWalletProvider } from '../createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider';\n\nexport const BASE_ACCOUNT_EVM_EXTENSION_KEY = 'baseAccountEvm';\n\n/**\n * Adds Base Account (Coinbase Smart Wallet + EOA via popup/QR) as an available\n * wallet provider for EVM. App metadata (name, logo) and supported network IDs\n * are read from the Dynamic client by default, so no per-call configuration is\n * required for the basic case.\n *\n * The Coinbase Wallet **browser extension** path is already handled by\n * `addEIP6963Extension` and `addEvmWindowInjectedExtension`. This extension\n * fills the gap for users without an injected provider — Smart Wallet popups,\n * mobile EOA via QR/deeplink, and any platform where `window.ethereum` is\n * unavailable.\n *\n * Once installed, apps connect via the generic public lifecycle:\n * `connectWithWalletProvider`, `verifyWalletAccount`,\n * `connectAndVerifyWithWalletProvider`.\n *\n * @param [options] - Optional preference and network ID overrides.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addBaseAccountEvmExtension = (\n options: AddBaseAccountEvmExtensionOptions = {},\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension(\n { extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY },\n client\n );\n registerEvmNetworkProviderBuilder(client);\n\n const walletProvider = createBaseAccountEvmWalletProvider(options, client);\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addBaseAccountEvmExtension } from '../baseAccount/addBaseAccountEvmExtension';\nexport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount/baseAccount.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAa,oBAAoB,yDACf,OAAO,CAAC,QAAkB,YAAY,YAAY;AAChE,KAAI,QAAQ,UAAU,MAAO,QAAO;CACpC,MAAM,YAAY,OAAO,SAAS,QAAQ,WAAW,GAAG;AACxD,KAAI,CAAC,OAAO,SAAS,UAAU,CAAE,QAAO;AACxC,YAAW,KAAK,UAAU;AAC1B,QAAO;GACN,EAAE,CAAC;;;;ACFR,MAAM,4BAA4B;AAClC,MAAM,oBAAoB,GAAGA,wDAA0B;;;;;;;;;;;;;;;;;;AAuBvD,MAAa,sCACX,EAAE,cACF,WACsB;CACtB,IAAIC;CAEJ,MAAM,4BAAoD;AACxD,MAAI,eACF,QAAO;EAET,MAAM,EAAE,SAAS,iEAA8B,OAAO;AACtD,+DAAsC;GACpC,aAAa,iBAAiB,OAAO;GACrC;GACA;GACA;GACD,CAAC,CAAC,aAAa;AAChB,SAAO;;AAwBT,QAAOC,wFACL;EACE,aAAa;EACb,SAnBiC;GACnC,KAAK,OAAO,aAAa;IACvB,MAAM,WAAW,qBAAqB;AACtC,QAAI,UAAU,kBACZ,UAAS,GAAG,mBAAmB,SAAkC;aACxD,UAAU,eACnB,UAAS,GAAG,gBAAgB,SAAgC;QAE5D,UAAS,GAAG,oBAAqB,UAAyB,CAAC;;GAG/D,0BAA0B,gBAAgB,oBAAoB;GAC9D,UAAuB,SACrB,qBAAqB,CAAC,QAAQ,KAAK;GACtC;EAMG,MAAM;EACN,oBAAoBC,8CAAmB;EACxC,EACD,OACD;;;;;AC7EH,MAAa,iCAAiC;;;;;;;;;;;;;;;;;;;;;AAsB9C,MAAa,8BACX,UAA6C,EAAE,EAC/C,8DAA2B,KAClB;AACT,qDAAiB,EAAE,cAAc,gCAAgC,EAAE,OAAO,CACxE;AAGF,sDACE,EAAE,cAAc,gCAAgC,EAChD,OACD;AACD,6DAAkC,OAAO;CAEzC,MAAM,iBAAiB,mCAAmC,SAAS,OAAO;AAE1E,8DAA0B,OAAO,CAAC,SAAS;EACzC,UAAUC,qDAAuB;EACjC;EACD,CAAC;;;;;mEC/CiBC,iDAAaC,mDAAe"}
1
+ {"version":3,"file":"baseAccount.cjs","names":["DYNAMIC_ICONIC_SPRITE_URL","cachedProvider: BaseAccountSDKProvider | undefined","createWalletProviderFromEIP1193Provider","WalletProviderEnum","WalletProviderPriority","packageName","packageVersion"],"sources":["../src/utils/getEvmNetworkIds/getEvmNetworkIds.ts","../src/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.ts","../src/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.ts","../src/exports/baseAccount.ts"],"sourcesContent":["import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\n/**\n * Returns the numeric IDs of the EVM networks configured on the Dynamic\n * client. Generic helper available to any EVM extension that needs to\n * advertise the configured chain set to a third-party SDK (e.g. Base\n * Account, WalletConnect).\n *\n * @param client - The Dynamic client whose project settings drive the result.\n * @notInstrumented\n */\nexport const getEvmNetworkIds = (client: DynamicClient): number[] =>\n getNetworksData(client).reduce<number[]>((networkIds, network) => {\n if (network.chain !== 'EVM') return networkIds;\n const networkId = Number.parseInt(network.networkId, 10);\n if (!Number.isFinite(networkId)) return networkIds;\n networkIds.push(networkId);\n return networkIds;\n }, []);\n","import { createBaseAccountSDK } from '@base-org/account';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n DYNAMIC_ICONIC_SPRITE_URL,\n getAppMetadata,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { getEvmNetworkIds } from '../../utils/getEvmNetworkIds/getEvmNetworkIds';\nimport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\n\nconst BASE_ACCOUNT_DISPLAY_NAME = 'Base Account';\nconst BASE_ACCOUNT_ICON = `${DYNAMIC_ICONIC_SPRITE_URL}#base`;\n\ntype BaseAccountSDKProvider = ReturnType<\n ReturnType<typeof createBaseAccountSDK>['getProvider']\n>;\n\n/**\n * Builds an `EvmWalletProvider` backed by `@base-org/account`. Used internally\n * by `addBaseAccountEvmExtension`; not part of the public API.\n *\n * The underlying `@base-org/account` SDK is constructed lazily on the first\n * EIP-1193 call. This avoids reading `client.projectSettings` (via\n * `getEvmNetworkIds`) at extension-registration time — which would throw if\n * the extension is added before `initializeClient` resolves project settings.\n *\n * Classification matches dynamic-auth's mapping for the popup-SDK flow:\n * `WalletProviderEnum.CustodialService`. The browser-extension path is owned\n * by `addEIP6963Extension` / `addEvmWindowInjectedExtension`.\n *\n * @param options - Optional Base Account preference.\n * @param client - The Dynamic client whose metadata + networks drive the SDK.\n * @notInstrumented\n */\nexport const createBaseAccountEvmWalletProvider = (\n { preference }: AddBaseAccountEvmExtensionOptions,\n client: DynamicClient\n): EvmWalletProvider => {\n let cachedProvider: BaseAccountSDKProvider | undefined;\n\n const getOrCreateProvider = (): BaseAccountSDKProvider => {\n if (cachedProvider) {\n return cachedProvider;\n }\n const { appName, appLogoUrl } = getAppMetadata(client);\n cachedProvider = createBaseAccountSDK({\n appChainIds: getEvmNetworkIds(client),\n appLogoUrl,\n appName,\n preference,\n }).getProvider();\n return cachedProvider;\n };\n\n // EIP-1193 façade that defers SDK construction until first interaction and\n // bridges the two `on` event vocabularies — `@base-org/account` emits the\n // canonical `disconnect`, while our local `EIP1193Provider` consumer expects\n // `disconnected`. We forward each event explicitly so the divergence is\n // visible in source rather than smoothed over by a blanket cast.\n const lazyEip1193: EIP1193Provider = {\n on: (event, listener) => {\n const provider = getOrCreateProvider();\n if (event === 'accountsChanged') {\n provider.on('accountsChanged', listener as (a: string[]) => void);\n } else if (event === 'chainChanged') {\n provider.on('chainChanged', listener as (c: string) => void);\n } else {\n provider.on('disconnect', () => (listener as () => void)());\n }\n },\n removeAllListeners: () => cachedProvider?.removeAllListeners(),\n request: <T = unknown>(args: { method: string; params: unknown[] }) =>\n getOrCreateProvider().request(args) as Promise<T>,\n };\n\n return createWalletProviderFromEIP1193Provider(\n {\n displayName: BASE_ACCOUNT_DISPLAY_NAME,\n eip1193: lazyEip1193,\n icon: BASE_ACCOUNT_ICON,\n walletProviderType: WalletProviderEnum.CustodialService,\n },\n client\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 type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\nimport { createBaseAccountEvmWalletProvider } from '../createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider';\n\nexport const BASE_ACCOUNT_EVM_EXTENSION_KEY = 'baseAccountEvm';\n\n/**\n * Adds Base Account (Coinbase Smart Wallet + EOA via popup/QR) as an available\n * wallet provider for EVM. App metadata (name, logo) and supported network IDs\n * are read from the Dynamic client by default, so no per-call configuration is\n * required for the basic case.\n *\n * The Coinbase Wallet **browser extension** path is already handled by\n * `addEIP6963Extension` and `addEvmWindowInjectedExtension`. This extension\n * fills the gap for users without an injected provider — Smart Wallet popups,\n * mobile EOA via QR/deeplink, and any platform where `window.ethereum` is\n * unavailable.\n *\n * Once installed, apps connect via the generic public lifecycle:\n * `connectWithWalletProvider`, `verifyWalletAccount`,\n * `connectAndVerifyWithWalletProvider`.\n *\n * @param [options] - Optional preference and network ID overrides.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addBaseAccountEvmExtension = (\n options: AddBaseAccountEvmExtensionOptions = {},\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension(\n { extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY },\n client\n );\n registerEvmNetworkProviderBuilder(client);\n\n const walletProvider = createBaseAccountEvmWalletProvider(options, client);\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addBaseAccountEvmExtension } from '../baseAccount/addBaseAccountEvmExtension';\nexport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount/baseAccount.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAWA,MAAa,oBAAoB,yDACf,OAAO,CAAC,QAAkB,YAAY,YAAY;AAChE,KAAI,QAAQ,UAAU,MAAO,QAAO;CACpC,MAAM,YAAY,OAAO,SAAS,QAAQ,WAAW,GAAG;AACxD,KAAI,CAAC,OAAO,SAAS,UAAU,CAAE,QAAO;AACxC,YAAW,KAAK,UAAU;AAC1B,QAAO;GACN,EAAE,CAAC;;;;ACFR,MAAM,4BAA4B;AAClC,MAAM,oBAAoB,GAAGA,wDAA0B;;;;;;;;;;;;;;;;;;AAuBvD,MAAa,sCACX,EAAE,cACF,WACsB;CACtB,IAAIC;CAEJ,MAAM,4BAAoD;AACxD,MAAI,eACF,QAAO;EAET,MAAM,EAAE,SAAS,iEAA8B,OAAO;AACtD,+DAAsC;GACpC,aAAa,iBAAiB,OAAO;GACrC;GACA;GACA;GACD,CAAC,CAAC,aAAa;AAChB,SAAO;;AAwBT,QAAOC,wFACL;EACE,aAAa;EACb,SAnBiC;GACnC,KAAK,OAAO,aAAa;IACvB,MAAM,WAAW,qBAAqB;AACtC,QAAI,UAAU,kBACZ,UAAS,GAAG,mBAAmB,SAAkC;aACxD,UAAU,eACnB,UAAS,GAAG,gBAAgB,SAAgC;QAE5D,UAAS,GAAG,oBAAqB,UAAyB,CAAC;;GAG/D,0BAA0B,gBAAgB,oBAAoB;GAC9D,UAAuB,SACrB,qBAAqB,CAAC,QAAQ,KAAK;GACtC;EAMG,MAAM;EACN,oBAAoBC,8CAAmB;EACxC,EACD,OACD;;;;;AC7EH,MAAa,iCAAiC;;;;;;;;;;;;;;;;;;;;;AAsB9C,MAAa,8BACX,UAA6C,EAAE,EAC/C,8DAA2B,KAClB;AACT,qDAAiB,EAAE,cAAc,gCAAgC,EAAE,OAAO,CACxE;AAGF,sDACE,EAAE,cAAc,gCAAgC,EAChD,OACD;AACD,6DAAkC,OAAO;CAEzC,MAAM,iBAAiB,mCAAmC,SAAS,OAAO;AAE1E,8DAA0B,OAAO,CAAC,SAAS;EACzC,UAAUC,qDAAuB;EACjC;EACD,CAAC;;;;;mEC/CiBC,wCAAaC,0CAAe"}
@@ -1,6 +1,7 @@
1
- import { a as name, o as version } from "./createWalletClientForWalletAccount-Cs1cCKrt.esm.js";
2
- import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-j0G3UjkD.esm.js";
3
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-5QOYfUP4.esm.js";
1
+ import { n as name, r as version } from "./mapNetworkDataToViemChain-CJrpN6TI.esm.js";
2
+ import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-B8mlh0vP.esm.js";
3
+ import "./createWalletClientForWalletAccount-D0biZZkD.esm.js";
4
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-Bdcs1-0s.esm.js";
4
5
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
6
  import { getNetworksData } from "@dynamic-labs-sdk/client";
6
7
  import { DYNAMIC_ICONIC_SPRITE_URL, WalletProviderPriority, getAppMetadata, getDefaultClient as getDefaultClient$1, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension } from "@dynamic-labs-sdk/client/core";
@@ -1 +1 @@
1
- {"version":3,"file":"baseAccount.esm.js","names":["cachedProvider: BaseAccountSDKProvider | undefined","getDefaultClient","hasExtension","packageName","packageVersion"],"sources":["../src/utils/getEvmNetworkIds/getEvmNetworkIds.ts","../src/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.ts","../src/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.ts","../src/exports/baseAccount.ts"],"sourcesContent":["import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\n/**\n * Returns the numeric IDs of the EVM networks configured on the Dynamic\n * client. Generic helper available to any EVM extension that needs to\n * advertise the configured chain set to a third-party SDK (e.g. Base\n * Account, WalletConnect).\n *\n * @param client - The Dynamic client whose project settings drive the result.\n * @notInstrumented\n */\nexport const getEvmNetworkIds = (client: DynamicClient): number[] =>\n getNetworksData(client).reduce<number[]>((networkIds, network) => {\n if (network.chain !== 'EVM') return networkIds;\n const networkId = Number.parseInt(network.networkId, 10);\n if (!Number.isFinite(networkId)) return networkIds;\n networkIds.push(networkId);\n return networkIds;\n }, []);\n","import { createBaseAccountSDK } from '@base-org/account';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n DYNAMIC_ICONIC_SPRITE_URL,\n getAppMetadata,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { getEvmNetworkIds } from '../../utils/getEvmNetworkIds/getEvmNetworkIds';\nimport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\n\nconst BASE_ACCOUNT_DISPLAY_NAME = 'Base Account';\nconst BASE_ACCOUNT_ICON = `${DYNAMIC_ICONIC_SPRITE_URL}#base`;\n\ntype BaseAccountSDKProvider = ReturnType<\n ReturnType<typeof createBaseAccountSDK>['getProvider']\n>;\n\n/**\n * Builds an `EvmWalletProvider` backed by `@base-org/account`. Used internally\n * by `addBaseAccountEvmExtension`; not part of the public API.\n *\n * The underlying `@base-org/account` SDK is constructed lazily on the first\n * EIP-1193 call. This avoids reading `client.projectSettings` (via\n * `getEvmNetworkIds`) at extension-registration time — which would throw if\n * the extension is added before `initializeClient` resolves project settings.\n *\n * Classification matches dynamic-auth's mapping for the popup-SDK flow:\n * `WalletProviderEnum.CustodialService`. The browser-extension path is owned\n * by `addEIP6963Extension` / `addEvmWindowInjectedExtension`.\n *\n * @param options - Optional Base Account preference.\n * @param client - The Dynamic client whose metadata + networks drive the SDK.\n * @notInstrumented\n */\nexport const createBaseAccountEvmWalletProvider = (\n { preference }: AddBaseAccountEvmExtensionOptions,\n client: DynamicClient\n): EvmWalletProvider => {\n let cachedProvider: BaseAccountSDKProvider | undefined;\n\n const getOrCreateProvider = (): BaseAccountSDKProvider => {\n if (cachedProvider) {\n return cachedProvider;\n }\n const { appName, appLogoUrl } = getAppMetadata(client);\n cachedProvider = createBaseAccountSDK({\n appChainIds: getEvmNetworkIds(client),\n appLogoUrl,\n appName,\n preference,\n }).getProvider();\n return cachedProvider;\n };\n\n // EIP-1193 façade that defers SDK construction until first interaction and\n // bridges the two `on` event vocabularies — `@base-org/account` emits the\n // canonical `disconnect`, while our local `EIP1193Provider` consumer expects\n // `disconnected`. We forward each event explicitly so the divergence is\n // visible in source rather than smoothed over by a blanket cast.\n const lazyEip1193: EIP1193Provider = {\n on: (event, listener) => {\n const provider = getOrCreateProvider();\n if (event === 'accountsChanged') {\n provider.on('accountsChanged', listener as (a: string[]) => void);\n } else if (event === 'chainChanged') {\n provider.on('chainChanged', listener as (c: string) => void);\n } else {\n provider.on('disconnect', () => (listener as () => void)());\n }\n },\n removeAllListeners: () => cachedProvider?.removeAllListeners(),\n request: <T = unknown>(args: { method: string; params: unknown[] }) =>\n getOrCreateProvider().request(args) as Promise<T>,\n };\n\n return createWalletProviderFromEIP1193Provider(\n {\n displayName: BASE_ACCOUNT_DISPLAY_NAME,\n eip1193: lazyEip1193,\n icon: BASE_ACCOUNT_ICON,\n walletProviderType: WalletProviderEnum.CustodialService,\n },\n client\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 type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\nimport { createBaseAccountEvmWalletProvider } from '../createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider';\n\nexport const BASE_ACCOUNT_EVM_EXTENSION_KEY = 'baseAccountEvm';\n\n/**\n * Adds Base Account (Coinbase Smart Wallet + EOA via popup/QR) as an available\n * wallet provider for EVM. App metadata (name, logo) and supported network IDs\n * are read from the Dynamic client by default, so no per-call configuration is\n * required for the basic case.\n *\n * The Coinbase Wallet **browser extension** path is already handled by\n * `addEIP6963Extension` and `addEvmWindowInjectedExtension`. This extension\n * fills the gap for users without an injected provider — Smart Wallet popups,\n * mobile EOA via QR/deeplink, and any platform where `window.ethereum` is\n * unavailable.\n *\n * Once installed, apps connect via the generic public lifecycle:\n * `connectWithWalletProvider`, `verifyWalletAccount`,\n * `connectAndVerifyWithWalletProvider`.\n *\n * @param [options] - Optional preference and network ID overrides.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addBaseAccountEvmExtension = (\n options: AddBaseAccountEvmExtensionOptions = {},\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension(\n { extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY },\n client\n );\n registerEvmNetworkProviderBuilder(client);\n\n const walletProvider = createBaseAccountEvmWalletProvider(options, client);\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addBaseAccountEvmExtension } from '../baseAccount/addBaseAccountEvmExtension';\nexport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount/baseAccount.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAa,oBAAoB,WAC/B,gBAAgB,OAAO,CAAC,QAAkB,YAAY,YAAY;AAChE,KAAI,QAAQ,UAAU,MAAO,QAAO;CACpC,MAAM,YAAY,OAAO,SAAS,QAAQ,WAAW,GAAG;AACxD,KAAI,CAAC,OAAO,SAAS,UAAU,CAAE,QAAO;AACxC,YAAW,KAAK,UAAU;AAC1B,QAAO;GACN,EAAE,CAAC;;;;ACFR,MAAM,4BAA4B;AAClC,MAAM,oBAAoB,GAAG,0BAA0B;;;;;;;;;;;;;;;;;;AAuBvD,MAAa,sCACX,EAAE,cACF,WACsB;CACtB,IAAIA;CAEJ,MAAM,4BAAoD;AACxD,MAAI,eACF,QAAO;EAET,MAAM,EAAE,SAAS,eAAe,eAAe,OAAO;AACtD,mBAAiB,qBAAqB;GACpC,aAAa,iBAAiB,OAAO;GACrC;GACA;GACA;GACD,CAAC,CAAC,aAAa;AAChB,SAAO;;AAwBT,QAAO,wCACL;EACE,aAAa;EACb,SAnBiC;GACnC,KAAK,OAAO,aAAa;IACvB,MAAM,WAAW,qBAAqB;AACtC,QAAI,UAAU,kBACZ,UAAS,GAAG,mBAAmB,SAAkC;aACxD,UAAU,eACnB,UAAS,GAAG,gBAAgB,SAAgC;QAE5D,UAAS,GAAG,oBAAqB,UAAyB,CAAC;;GAG/D,0BAA0B,gBAAgB,oBAAoB;GAC9D,UAAuB,SACrB,qBAAqB,CAAC,QAAQ,KAAK;GACtC;EAMG,MAAM;EACN,oBAAoB,mBAAmB;EACxC,EACD,OACD;;;;;AC7EH,MAAa,iCAAiC;;;;;;;;;;;;;;;;;;;;;AAsB9C,MAAa,8BACX,UAA6C,EAAE,EAC/C,SAASC,oBAAkB,KAClB;AACT,KAAIC,eAAa,EAAE,cAAc,gCAAgC,EAAE,OAAO,CACxE;AAGF,mBACE,EAAE,cAAc,gCAAgC,EAChD,OACD;AACD,mCAAkC,OAAO;CAEzC,MAAM,iBAAiB,mCAAmC,SAAS,OAAO;AAE1E,2BAA0B,OAAO,CAAC,SAAS;EACzC,UAAU,uBAAuB;EACjC;EACD,CAAC;;;;;AC/CJ,qBAAqBC,MAAaC,QAAe"}
1
+ {"version":3,"file":"baseAccount.esm.js","names":["cachedProvider: BaseAccountSDKProvider | undefined","getDefaultClient","hasExtension","packageName","packageVersion"],"sources":["../src/utils/getEvmNetworkIds/getEvmNetworkIds.ts","../src/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.ts","../src/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.ts","../src/exports/baseAccount.ts"],"sourcesContent":["import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\n/**\n * Returns the numeric IDs of the EVM networks configured on the Dynamic\n * client. Generic helper available to any EVM extension that needs to\n * advertise the configured chain set to a third-party SDK (e.g. Base\n * Account, WalletConnect).\n *\n * @param client - The Dynamic client whose project settings drive the result.\n * @notInstrumented\n */\nexport const getEvmNetworkIds = (client: DynamicClient): number[] =>\n getNetworksData(client).reduce<number[]>((networkIds, network) => {\n if (network.chain !== 'EVM') return networkIds;\n const networkId = Number.parseInt(network.networkId, 10);\n if (!Number.isFinite(networkId)) return networkIds;\n networkIds.push(networkId);\n return networkIds;\n }, []);\n","import { createBaseAccountSDK } from '@base-org/account';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n DYNAMIC_ICONIC_SPRITE_URL,\n getAppMetadata,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { createWalletProviderFromEIP1193Provider } from '../../utils/createWalletProviderFromEIP1193Provider';\nimport { getEvmNetworkIds } from '../../utils/getEvmNetworkIds/getEvmNetworkIds';\nimport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\n\nconst BASE_ACCOUNT_DISPLAY_NAME = 'Base Account';\nconst BASE_ACCOUNT_ICON = `${DYNAMIC_ICONIC_SPRITE_URL}#base`;\n\ntype BaseAccountSDKProvider = ReturnType<\n ReturnType<typeof createBaseAccountSDK>['getProvider']\n>;\n\n/**\n * Builds an `EvmWalletProvider` backed by `@base-org/account`. Used internally\n * by `addBaseAccountEvmExtension`; not part of the public API.\n *\n * The underlying `@base-org/account` SDK is constructed lazily on the first\n * EIP-1193 call. This avoids reading `client.projectSettings` (via\n * `getEvmNetworkIds`) at extension-registration time — which would throw if\n * the extension is added before `initializeClient` resolves project settings.\n *\n * Classification matches dynamic-auth's mapping for the popup-SDK flow:\n * `WalletProviderEnum.CustodialService`. The browser-extension path is owned\n * by `addEIP6963Extension` / `addEvmWindowInjectedExtension`.\n *\n * @param options - Optional Base Account preference.\n * @param client - The Dynamic client whose metadata + networks drive the SDK.\n * @notInstrumented\n */\nexport const createBaseAccountEvmWalletProvider = (\n { preference }: AddBaseAccountEvmExtensionOptions,\n client: DynamicClient\n): EvmWalletProvider => {\n let cachedProvider: BaseAccountSDKProvider | undefined;\n\n const getOrCreateProvider = (): BaseAccountSDKProvider => {\n if (cachedProvider) {\n return cachedProvider;\n }\n const { appName, appLogoUrl } = getAppMetadata(client);\n cachedProvider = createBaseAccountSDK({\n appChainIds: getEvmNetworkIds(client),\n appLogoUrl,\n appName,\n preference,\n }).getProvider();\n return cachedProvider;\n };\n\n // EIP-1193 façade that defers SDK construction until first interaction and\n // bridges the two `on` event vocabularies — `@base-org/account` emits the\n // canonical `disconnect`, while our local `EIP1193Provider` consumer expects\n // `disconnected`. We forward each event explicitly so the divergence is\n // visible in source rather than smoothed over by a blanket cast.\n const lazyEip1193: EIP1193Provider = {\n on: (event, listener) => {\n const provider = getOrCreateProvider();\n if (event === 'accountsChanged') {\n provider.on('accountsChanged', listener as (a: string[]) => void);\n } else if (event === 'chainChanged') {\n provider.on('chainChanged', listener as (c: string) => void);\n } else {\n provider.on('disconnect', () => (listener as () => void)());\n }\n },\n removeAllListeners: () => cachedProvider?.removeAllListeners(),\n request: <T = unknown>(args: { method: string; params: unknown[] }) =>\n getOrCreateProvider().request(args) as Promise<T>,\n };\n\n return createWalletProviderFromEIP1193Provider(\n {\n displayName: BASE_ACCOUNT_DISPLAY_NAME,\n eip1193: lazyEip1193,\n icon: BASE_ACCOUNT_ICON,\n walletProviderType: WalletProviderEnum.CustodialService,\n },\n client\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 type { AddBaseAccountEvmExtensionOptions } from '../baseAccount.types';\nimport { createBaseAccountEvmWalletProvider } from '../createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider';\n\nexport const BASE_ACCOUNT_EVM_EXTENSION_KEY = 'baseAccountEvm';\n\n/**\n * Adds Base Account (Coinbase Smart Wallet + EOA via popup/QR) as an available\n * wallet provider for EVM. App metadata (name, logo) and supported network IDs\n * are read from the Dynamic client by default, so no per-call configuration is\n * required for the basic case.\n *\n * The Coinbase Wallet **browser extension** path is already handled by\n * `addEIP6963Extension` and `addEvmWindowInjectedExtension`. This extension\n * fills the gap for users without an injected provider — Smart Wallet popups,\n * mobile EOA via QR/deeplink, and any platform where `window.ethereum` is\n * unavailable.\n *\n * Once installed, apps connect via the generic public lifecycle:\n * `connectWithWalletProvider`, `verifyWalletAccount`,\n * `connectAndVerifyWithWalletProvider`.\n *\n * @param [options] - Optional preference and network ID overrides.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addBaseAccountEvmExtension = (\n options: AddBaseAccountEvmExtensionOptions = {},\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension(\n { extensionKey: BASE_ACCOUNT_EVM_EXTENSION_KEY },\n client\n );\n registerEvmNetworkProviderBuilder(client);\n\n const walletProvider = createBaseAccountEvmWalletProvider(options, client);\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addBaseAccountEvmExtension } from '../baseAccount/addBaseAccountEvmExtension';\nexport type { AddBaseAccountEvmExtensionOptions } from '../baseAccount/baseAccount.types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAWA,MAAa,oBAAoB,WAC/B,gBAAgB,OAAO,CAAC,QAAkB,YAAY,YAAY;AAChE,KAAI,QAAQ,UAAU,MAAO,QAAO;CACpC,MAAM,YAAY,OAAO,SAAS,QAAQ,WAAW,GAAG;AACxD,KAAI,CAAC,OAAO,SAAS,UAAU,CAAE,QAAO;AACxC,YAAW,KAAK,UAAU;AAC1B,QAAO;GACN,EAAE,CAAC;;;;ACFR,MAAM,4BAA4B;AAClC,MAAM,oBAAoB,GAAG,0BAA0B;;;;;;;;;;;;;;;;;;AAuBvD,MAAa,sCACX,EAAE,cACF,WACsB;CACtB,IAAIA;CAEJ,MAAM,4BAAoD;AACxD,MAAI,eACF,QAAO;EAET,MAAM,EAAE,SAAS,eAAe,eAAe,OAAO;AACtD,mBAAiB,qBAAqB;GACpC,aAAa,iBAAiB,OAAO;GACrC;GACA;GACA;GACD,CAAC,CAAC,aAAa;AAChB,SAAO;;AAwBT,QAAO,wCACL;EACE,aAAa;EACb,SAnBiC;GACnC,KAAK,OAAO,aAAa;IACvB,MAAM,WAAW,qBAAqB;AACtC,QAAI,UAAU,kBACZ,UAAS,GAAG,mBAAmB,SAAkC;aACxD,UAAU,eACnB,UAAS,GAAG,gBAAgB,SAAgC;QAE5D,UAAS,GAAG,oBAAqB,UAAyB,CAAC;;GAG/D,0BAA0B,gBAAgB,oBAAoB;GAC9D,UAAuB,SACrB,qBAAqB,CAAC,QAAQ,KAAK;GACtC;EAMG,MAAM;EACN,oBAAoB,mBAAmB;EACxC,EACD,OACD;;;;;AC7EH,MAAa,iCAAiC;;;;;;;;;;;;;;;;;;;;;AAsB9C,MAAa,8BACX,UAA6C,EAAE,EAC/C,SAASC,oBAAkB,KAClB;AACT,KAAIC,eAAa,EAAE,cAAc,gCAAgC,EAAE,OAAO,CACxE;AAGF,mBACE,EAAE,cAAc,gCAAgC,EAChD,OACD;AACD,mCAAkC,OAAO;CAEzC,MAAM,iBAAiB,mCAAmC,SAAS,OAAO;AAE1E,2BAA0B,OAAO,CAAC,SAAS;EACzC,UAAU,uBAAuB;EACjC;EACD,CAAC;;;;;AC/CJ,qBAAqBC,MAAaC,QAAe"}
@@ -1,7 +1,7 @@
1
- import { n as version, t as name } from "./package-x2e-NQ78.native.esm.js";
2
- import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-Bfn3RYq7.native.esm.js";
3
- import "./createWalletClientForWalletAccount-BNb9shKs.native.esm.js";
4
- import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-DZ0ciUd0.native.esm.js";
1
+ import { n as version, t as name } from "./package-BzZYA-cC.native.esm.js";
2
+ import { o as registerEvmNetworkProviderBuilder } from "./evmTransferAmount-B2lXHyW3.native.esm.js";
3
+ import "./createWalletClientForWalletAccount-CsfxMvvD.native.esm.js";
4
+ import { t as createWalletProviderFromEIP1193Provider } from "./createWalletProviderFromEIP1193Provider-D4aKomjq.native.esm.js";
5
5
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
6
6
  import { getNetworksData } from "@dynamic-labs-sdk/client";
7
7
  import { DYNAMIC_ICONIC_SPRITE_URL, WalletProviderPriority, getAppMetadata, getDefaultClient as getDefaultClient$1, getWalletProviderRegistry, hasExtension as hasExtension$1, registerExtension } from "@dynamic-labs-sdk/client/core";