@dynamic-labs-sdk/evm 0.26.4 → 0.26.7

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 (86) hide show
  1. package/dist/{addEIP6963Extension-CfBmjqa4.esm.js → addEIP6963Extension-D87VJZkC.esm.js} +7 -4
  2. package/dist/addEIP6963Extension-D87VJZkC.esm.js.map +1 -0
  3. package/dist/addEIP6963Extension-J6SledVr.native.esm.js +27 -0
  4. package/dist/addEIP6963Extension-J6SledVr.native.esm.js.map +1 -0
  5. package/dist/{addEIP6963Extension-DGVzF8C0.cjs → addEIP6963Extension-ltl4AoMZ.cjs} +7 -4
  6. package/dist/addEIP6963Extension-ltl4AoMZ.cjs.map +1 -0
  7. package/dist/{addWaasEvmExtension-ZDMVoJgn.esm.js → addWaasEvmExtension-B22FwR23.esm.js} +3 -3
  8. package/dist/{addWaasEvmExtension-ZDMVoJgn.esm.js.map → addWaasEvmExtension-B22FwR23.esm.js.map} +1 -1
  9. package/dist/addWaasEvmExtension-BV00iC4G.native.esm.js +199 -0
  10. package/dist/addWaasEvmExtension-BV00iC4G.native.esm.js.map +1 -0
  11. package/dist/{addWaasEvmExtension-DioTPQDy.cjs → addWaasEvmExtension-CYNMrWQ4.cjs} +3 -3
  12. package/dist/{addWaasEvmExtension-DioTPQDy.cjs.map → addWaasEvmExtension-CYNMrWQ4.cjs.map} +1 -1
  13. package/dist/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.d.ts +24 -0
  14. package/dist/baseAccount/addBaseAccountEvmExtension/addBaseAccountEvmExtension.d.ts.map +1 -0
  15. package/dist/baseAccount/addBaseAccountEvmExtension/index.d.ts +2 -0
  16. package/dist/baseAccount/addBaseAccountEvmExtension/index.d.ts.map +1 -0
  17. package/dist/baseAccount/baseAccount.types.d.ts +27 -0
  18. package/dist/baseAccount/baseAccount.types.d.ts.map +1 -0
  19. package/dist/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.d.ts +22 -0
  20. package/dist/baseAccount/createBaseAccountEvmWalletProvider/createBaseAccountEvmWalletProvider.d.ts.map +1 -0
  21. package/dist/baseAccount/utils/getBaseAccountAppMetadata/getBaseAccountAppMetadata.d.ts +19 -0
  22. package/dist/baseAccount/utils/getBaseAccountAppMetadata/getBaseAccountAppMetadata.d.ts.map +1 -0
  23. package/dist/baseAccount.cjs +141 -0
  24. package/dist/baseAccount.cjs.map +1 -0
  25. package/dist/baseAccount.esm.js +141 -0
  26. package/dist/baseAccount.esm.js.map +1 -0
  27. package/dist/baseAccount.native.esm.js +142 -0
  28. package/dist/baseAccount.native.esm.js.map +1 -0
  29. package/dist/{createWalletClientForWalletAccount-BWVeSZ_9.cjs → createWalletClientForWalletAccount-CBDDVIYV.cjs} +2 -2
  30. package/dist/{createWalletClientForWalletAccount-BWVeSZ_9.cjs.map → createWalletClientForWalletAccount-CBDDVIYV.cjs.map} +1 -1
  31. package/dist/{createWalletClientForWalletAccount-BJZgwgJs.esm.js → createWalletClientForWalletAccount-CC2j8qwa.esm.js} +2 -2
  32. package/dist/{createWalletClientForWalletAccount-BJZgwgJs.esm.js.map → createWalletClientForWalletAccount-CC2j8qwa.esm.js.map} +1 -1
  33. package/dist/createWalletClientForWalletAccount-V4CfRjd4.native.esm.js +100 -0
  34. package/dist/createWalletClientForWalletAccount-V4CfRjd4.native.esm.js.map +1 -0
  35. package/dist/{createWalletProviderFromEIP1193Provider-BGp3OZ3r.esm.js → createWalletProviderFromEIP1193Provider-CfTnRCB0.esm.js} +2 -2
  36. package/dist/{createWalletProviderFromEIP1193Provider-BGp3OZ3r.esm.js.map → createWalletProviderFromEIP1193Provider-CfTnRCB0.esm.js.map} +1 -1
  37. package/dist/{createWalletProviderFromEIP1193Provider-DTVSazmC.cjs → createWalletProviderFromEIP1193Provider-D9gxu6Ay.cjs} +2 -2
  38. package/dist/{createWalletProviderFromEIP1193Provider-DTVSazmC.cjs.map → createWalletProviderFromEIP1193Provider-D9gxu6Ay.cjs.map} +1 -1
  39. package/dist/createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js +179 -0
  40. package/dist/createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js.map +1 -0
  41. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.constants.d.ts +2 -0
  42. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.constants.d.ts.map +1 -0
  43. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.d.ts +3 -3
  44. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.d.ts.map +1 -1
  45. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.types.d.ts +12 -0
  46. package/dist/eip6963/addEIP6963Extension/addEIP6963Extension.types.d.ts.map +1 -0
  47. package/dist/eip6963.cjs +4 -4
  48. package/dist/eip6963.esm.js +4 -4
  49. package/dist/eip6963.native.esm.js +10 -0
  50. package/dist/eip6963.native.esm.js.map +1 -0
  51. package/dist/evmTransferAmount-B__79nVn.native.esm.js +289 -0
  52. package/dist/evmTransferAmount-B__79nVn.native.esm.js.map +1 -0
  53. package/dist/{evmTransferAmount-Cou9zelD.cjs → evmTransferAmount-D5IgMelW.cjs} +2 -2
  54. package/dist/{evmTransferAmount-Cou9zelD.cjs.map → evmTransferAmount-D5IgMelW.cjs.map} +1 -1
  55. package/dist/{evmTransferAmount-DljmCxNA.esm.js → evmTransferAmount-jBe-KpYe.esm.js} +2 -2
  56. package/dist/{evmTransferAmount-DljmCxNA.esm.js.map → evmTransferAmount-jBe-KpYe.esm.js.map} +1 -1
  57. package/dist/exports/baseAccount.d.ts +3 -0
  58. package/dist/exports/baseAccount.d.ts.map +1 -0
  59. package/dist/index.cjs +5 -5
  60. package/dist/index.esm.js +5 -5
  61. package/dist/index.native.esm.js +167 -0
  62. package/dist/index.native.esm.js.map +1 -0
  63. package/dist/package-CAxC7ycE.native.esm.js +7 -0
  64. package/dist/package-CAxC7ycE.native.esm.js.map +1 -0
  65. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  66. package/dist/utils/getEvmNetworkIds/getEvmNetworkIds.d.ts +12 -0
  67. package/dist/utils/getEvmNetworkIds/getEvmNetworkIds.d.ts.map +1 -0
  68. package/dist/viem.cjs +1 -1
  69. package/dist/viem.esm.js +1 -1
  70. package/dist/viem.native.esm.js +10 -0
  71. package/dist/viem.native.esm.js.map +1 -0
  72. package/dist/waas.cjs +3 -3
  73. package/dist/waas.esm.js +3 -3
  74. package/dist/waas.native.esm.js +12 -0
  75. package/dist/waas.native.esm.js.map +1 -0
  76. package/dist/walletConnect.cjs +2 -2
  77. package/dist/walletConnect.esm.js +2 -2
  78. package/dist/walletConnect.native.esm.js +330 -0
  79. package/dist/walletConnect.native.esm.js.map +1 -0
  80. package/dist/windowInjected.cjs +3 -3
  81. package/dist/windowInjected.esm.js +3 -3
  82. package/dist/windowInjected.native.esm.js +154 -0
  83. package/dist/windowInjected.native.esm.js.map +1 -0
  84. package/package.json +17 -6
  85. package/dist/addEIP6963Extension-CfBmjqa4.esm.js.map +0 -1
  86. package/dist/addEIP6963Extension-DGVzF8C0.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletClientForWalletAccount-BJZgwgJs.esm.js","names":[],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,OAKxB,mBAAmB;CACjB,OAAO,0BAA0B,YAAY;CAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,SAAS,kBAAkB,KAC0B;CACrD,MAAM,iBAAiB,mCACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAI,kBACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,OACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAI,kBACR,mEACD;AAGH,QAAO,mBAAmB;EACxB,SAAS,UAAU,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,OAAO,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
1
+ {"version":3,"file":"createWalletClientForWalletAccount-CC2j8qwa.esm.js","names":[],"sources":["../package.json","../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;ACOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,OAKxB,mBAAmB;CACjB,OAAO,0BAA0B,YAAY;CAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,SAAS,kBAAkB,KAC0B;CACrD,MAAM,iBAAiB,mCACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAI,kBACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,OACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAI,kBACR,mEACD;AAGH,QAAO,mBAAmB;EACxB,SAAS,UAAU,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,OAAO,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { assertDefined, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
2
+ import { InvalidParamError, getActiveNetworkData } from "@dynamic-labs-sdk/client";
3
+ import { createPublicClient, createWalletClient, custom, http } from "viem";
4
+ import { toAccount } from "viem/accounts";
5
+
6
+ //#region src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts
7
+ /**
8
+ * Created a viem Chain object from a NetworkData object.
9
+ * @not-instrumented
10
+ */
11
+ const mapNetworkDataToViemChain = (networkData) => ({
12
+ blockExplorers: networkData.blockExplorerUrls?.[0] ? { default: {
13
+ name: networkData.blockExplorerUrls[0],
14
+ url: networkData.blockExplorerUrls[0]
15
+ } } : void 0,
16
+ id: Number(networkData.networkId),
17
+ name: networkData.displayName,
18
+ nativeCurrency: networkData.nativeCurrency,
19
+ rpcUrls: { default: { http: networkData.rpcUrls.http } }
20
+ });
21
+
22
+ //#endregion
23
+ //#region src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts
24
+ /**
25
+ * Creates a viem PublicClient from a given NetworkData object.
26
+ *
27
+ * This function configures a viem PublicClient instance for reading data from
28
+ * an EVM-compatible blockchain using the network provider's RPC endpoint.
29
+ *
30
+ * @param props - The configuration object.
31
+ * @param props.networkData - The NetworkData object containing network configuration.
32
+ * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.
33
+ * @param props.httpTransportConfig - Optional HTTP transport configuration.
34
+ * @returns A configured viem PublicClient instance.
35
+ * @not-instrumented
36
+ */
37
+ const createPublicClientFromNetworkData = ({ networkData, publicClientConfig = {}, httpTransportConfig = {} }) => createPublicClient({
38
+ chain: mapNetworkDataToViemChain(networkData),
39
+ transport: http(networkData.rpcUrls.http[0], httpTransportConfig),
40
+ ...publicClientConfig
41
+ });
42
+
43
+ //#endregion
44
+ //#region src/isEvmWalletProvider/isEvmWalletProvider.ts
45
+ /** @not-instrumented */
46
+ const isEvmWalletProvider = (walletProvider) => walletProvider.chain === "EVM";
47
+
48
+ //#endregion
49
+ //#region src/utils/isEIP1193Provider/isEIP1193Provider.ts
50
+ /** @not-instrumented */
51
+ const isEIP1193Provider = (provider) => {
52
+ return provider !== null && provider !== void 0 && typeof provider === "object" && "request" in provider && typeof provider.request === "function";
53
+ };
54
+
55
+ //#endregion
56
+ //#region src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts
57
+ /** @not-instrumented */
58
+ const isEvmWalletProviderWithCustomViemClient = (walletProvider) => {
59
+ return "createViemWalletClient" in walletProvider;
60
+ };
61
+
62
+ //#endregion
63
+ //#region src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts
64
+ /**
65
+ * Creates a viem WalletClient from an EVM WalletAccount object.
66
+ *
67
+ * This function configures a viem WalletClient instance for sending transactions
68
+ * and signing messages using the specified wallet account. It automatically
69
+ * handles network configuration and transport setup.
70
+ *
71
+ * @param props - The configuration object.
72
+ * @param props.walletAccount - The EVM wallet account to create the client for.
73
+ * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.
74
+ * @param [props.httpTransportConfig] - Optional HTTP transport configuration.
75
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
76
+ * @returns A promise that resolves to a configured viem WalletClient instance.
77
+ * @not-instrumented
78
+ */
79
+ const createWalletClientForWalletAccount = async ({ walletAccount, walletClientConfig = {}, httpTransportConfig = {} }, client = getDefaultClient()) => {
80
+ const walletProvider = getWalletProviderFromWalletAccount({ walletAccount }, client);
81
+ if (!isEvmWalletProvider(walletProvider)) throw new InvalidParamError(`${walletAccount.address} is not an EVM wallet account`);
82
+ if (isEvmWalletProviderWithCustomViemClient(walletProvider)) return walletProvider.createViemWalletClient({
83
+ httpTransportConfig,
84
+ viemWalletClientConfig: walletClientConfig,
85
+ walletAccount
86
+ });
87
+ const { networkData: activeNetworkData } = await getActiveNetworkData({ walletAccount }, client);
88
+ assertDefined(activeNetworkData, `No network data found for wallet account ${walletAccount.address}`);
89
+ if (!isEIP1193Provider(walletProvider)) throw new InvalidParamError("Wallet provider does not implement the EIP1193Provider interface");
90
+ return createWalletClient({
91
+ account: toAccount(walletAccount.address),
92
+ chain: mapNetworkDataToViemChain(activeNetworkData),
93
+ transport: custom(walletProvider, httpTransportConfig),
94
+ ...walletClientConfig
95
+ });
96
+ };
97
+
98
+ //#endregion
99
+ export { createPublicClientFromNetworkData as n, mapNetworkDataToViemChain as r, createWalletClientForWalletAccount as t };
100
+ //# sourceMappingURL=createWalletClientForWalletAccount-V4CfRjd4.native.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWalletClientForWalletAccount-V4CfRjd4.native.esm.js","names":[],"sources":["../src/viem/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/viem/createPublicClientFromNetworkData/createPublicClientFromNetworkData.ts","../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts"],"sourcesContent":["import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Created a viem Chain object from a NetworkData object.\n * @not-instrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type {\n Chain,\n HttpTransport,\n HttpTransportConfig,\n PublicClient,\n PublicClientConfig,\n} from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype CreatePublicClientFromNetworkDataProps = {\n httpTransportConfig?: HttpTransportConfig;\n networkData: NetworkData;\n publicClientConfig?: Partial<PublicClientConfig<HttpTransport, Chain>>;\n};\n\n/**\n * Creates a viem PublicClient from a given NetworkData object.\n *\n * This function configures a viem PublicClient instance for reading data from\n * an EVM-compatible blockchain using the network provider's RPC endpoint.\n *\n * @param props - The configuration object.\n * @param props.networkData - The NetworkData object containing network configuration.\n * @param props.publicClientConfig - Optional additional configuration for the viem PublicClient.\n * @param props.httpTransportConfig - Optional HTTP transport configuration.\n * @returns A configured viem PublicClient instance.\n * @not-instrumented\n */\nexport const createPublicClientFromNetworkData = ({\n networkData,\n publicClientConfig = {},\n httpTransportConfig = {},\n}: CreatePublicClientFromNetworkDataProps): PublicClient<\n HttpTransport,\n Chain\n> =>\n createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0], httpTransportConfig),\n ...publicClientConfig,\n });\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\n/** @not-instrumented */\nexport const isEIP1193Provider = <T>(\n provider: T\n): provider is EIP1193Provider & T => {\n return (\n provider !== null &&\n provider !== undefined &&\n typeof provider === 'object' &&\n 'request' in provider &&\n typeof provider.request === 'function'\n );\n};\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProviderWithCustomViemClient } from '../../EvmWalletProviderWithCustomViemClient.types';\n\n/** @not-instrumented */\nexport const isEvmWalletProviderWithCustomViemClient = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProviderWithCustomViemClient => {\n return 'createViemWalletClient' in walletProvider;\n};\n","import {\n InvalidParamError,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport { createWalletClient, custom } from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport type { EvmWalletAccount } from '../../EvmWalletAccount.types';\nimport { isEvmWalletProvider } from '../../isEvmWalletProvider';\nimport { isEIP1193Provider } from '../../utils/isEIP1193Provider';\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\nimport { isEvmWalletProviderWithCustomViemClient } from '../utils/walletProviderHasCustomWalletClient';\n\ntype CreateWalletClientForWalletAccountProps = {\n httpTransportConfig?: HttpTransportConfig;\n walletAccount: EvmWalletAccount;\n walletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n};\n\n/**\n * Creates a viem WalletClient from an EVM WalletAccount object.\n *\n * This function configures a viem WalletClient instance for sending transactions\n * and signing messages using the specified wallet account. It automatically\n * handles network configuration and transport setup.\n *\n * @param props - The configuration object.\n * @param props.walletAccount - The EVM wallet account to create the client for.\n * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.\n * @param [props.httpTransportConfig] - Optional HTTP transport configuration.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to a configured viem WalletClient instance.\n * @not-instrumented\n */\nexport const createWalletClientForWalletAccount = async (\n {\n walletAccount,\n walletClientConfig = {},\n httpTransportConfig = {},\n }: CreateWalletClientForWalletAccountProps,\n client = getDefaultClient()\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isEvmWalletProvider(walletProvider)) {\n throw new InvalidParamError(\n `${walletAccount.address} is not an EVM wallet account`\n );\n }\n\n if (isEvmWalletProviderWithCustomViemClient(walletProvider)) {\n return walletProvider.createViemWalletClient({\n httpTransportConfig,\n viemWalletClientConfig: walletClientConfig,\n walletAccount,\n });\n }\n\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n client\n );\n\n assertDefined(\n activeNetworkData,\n `No network data found for wallet account ${walletAccount.address}`\n );\n\n if (!isEIP1193Provider(walletProvider)) {\n throw new InvalidParamError(\n 'Wallet provider does not implement the EIP1193Provider interface'\n );\n }\n\n return createWalletClient({\n account: toAccount(walletAccount.address as Hex),\n chain: mapNetworkDataToViemChain(activeNetworkData),\n transport: custom(walletProvider, httpTransportConfig),\n ...walletClientConfig,\n });\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;ACSD,MAAa,qCAAqC,EAChD,aACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,OAKxB,mBAAmB;CACjB,OAAO,0BAA0B,YAAY;CAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,IAAI,oBAAoB;CACjE,GAAG;CACJ,CAAC;;;;;ACtCJ,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,SAAS,kBAAkB,KAC0B;CACrD,MAAM,iBAAiB,mCACrB,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAI,kBACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,MAAM,qBAC/C,EAAE,eAAe,EACjB,OACD;AAED,eACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAI,kBACR,mEACD;AAGH,QAAO,mBAAmB;EACxB,SAAS,UAAU,cAAc,QAAe;EAChD,OAAO,0BAA0B,kBAAkB;EACnD,WAAW,OAAO,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-DljmCxNA.esm.js";
1
+ import { n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-jBe-KpYe.esm.js";
2
2
  import { createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey } from "@dynamic-labs-sdk/client/core";
3
3
  import { NetworkNotAddedError, NetworkSwitchingUnavailableError, UnrecognizedNetworkError, UserRejectedError, getNetworksData } from "@dynamic-labs-sdk/client";
4
4
  import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
@@ -176,4 +176,4 @@ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName, w
176
176
 
177
177
  //#endregion
178
178
  export { createWalletProviderFromEIP1193Provider as t };
179
- //# sourceMappingURL=createWalletProviderFromEIP1193Provider-BGp3OZ3r.esm.js.map
179
+ //# sourceMappingURL=createWalletProviderFromEIP1193Provider-CfTnRCB0.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletProviderFromEIP1193Provider-BGp3OZ3r.esm.js","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","networkData","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","viemGetAddress","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n * @not-instrumented\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\n/** @not-instrumented */\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\n/** @not-instrumented */\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { evmConfirmTransaction } from '../evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../evmTransferAmount';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n walletProviderType?: WalletProviderEnum;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromEIP1193Provider = (\n {\n eip1193,\n icon,\n displayName,\n walletProviderType = WalletProviderEnum.BrowserExtension,\n }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, client),\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider-CfTnRCB0.esm.js","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","networkData","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","viemGetAddress","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n * @not-instrumented\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\n/** @not-instrumented */\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\n/** @not-instrumented */\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { evmConfirmTransaction } from '../evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../evmTransferAmount';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n walletProviderType?: WalletProviderEnum;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromEIP1193Provider = (\n {\n eip1193,\n icon,\n displayName,\n walletProviderType = WalletProviderEnum.BrowserExtension,\n }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, client),\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_evmTransferAmount = require('./evmTransferAmount-Cou9zelD.cjs');
1
+ const require_evmTransferAmount = require('./evmTransferAmount-D5IgMelW.cjs');
2
2
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
3
3
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
4
4
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
@@ -181,4 +181,4 @@ Object.defineProperty(exports, 'createWalletProviderFromEIP1193Provider', {
181
181
  return createWalletProviderFromEIP1193Provider;
182
182
  }
183
183
  });
184
- //# sourceMappingURL=createWalletProviderFromEIP1193Provider-DTVSazmC.cjs.map
184
+ //# sourceMappingURL=createWalletProviderFromEIP1193Provider-D9gxu6Ay.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletProviderFromEIP1193Provider-DTVSazmC.cjs","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","UserRejectedError","NetworkSwitchingUnavailableError","networkData","UnrecognizedNetworkError","NetworkNotAddedError","WalletProviderEnum","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']","evmConfirmTransaction","evmExecuteSwapTransaction","evmTransferAmount"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n * @not-instrumented\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\n/** @not-instrumented */\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\n/** @not-instrumented */\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { evmConfirmTransaction } from '../evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../evmTransferAmount';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n walletProviderType?: WalletProviderEnum;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromEIP1193Provider = (\n {\n eip1193,\n icon,\n displayName,\n walletProviderType = WalletProviderEnum.BrowserExtension,\n }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, client),\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider-D9gxu6Ay.cjs","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","UserRejectedError","NetworkSwitchingUnavailableError","networkData","UnrecognizedNetworkError","NetworkNotAddedError","WalletProviderEnum","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']","evmConfirmTransaction","evmExecuteSwapTransaction","evmTransferAmount"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n * @not-instrumented\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\n/** @not-instrumented */\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\n/** @not-instrumented */\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { evmConfirmTransaction } from '../evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../evmTransferAmount';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n walletProviderType?: WalletProviderEnum;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromEIP1193Provider = (\n {\n eip1193,\n icon,\n displayName,\n walletProviderType = WalletProviderEnum.BrowserExtension,\n }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, client),\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n"],"mappings":";;;;;;;;;;;AA+DA,MAAaA,aAAyB,OAAO,EAAE,SAAS,kBAAkB;CACxE,MAAM,0BAAgB,SAAS,YAAY,UAAU,CAAC;CAEtD,MAAMC,UAAkC;EACtC,mBAAmB,YAAY;EAC/B;EACA,WAAW,YAAY;EACvB,UAAU,CAAC,YAAY,QAAQ;EAC/B,gBAAgB,YAAY;EAC5B,SAAS,YAAY,QAAQ;EAC9B;AAED,OAAM,QAAQ,QAAQ;EACpB,QAAQ;EACR,QAAQ,CAAC,QAAQ;EAClB,CAAC;;;;;;ACpEJ,MAAaC,qBAAyC,OAAO,EAAE,cAAc;CAC3E,MAAM,aAAc,MAAM,QAAQ,QAAQ;EACxC,QAAQ;EACR,QAAQ,EAAE;EACX,CAAC;AAEF,QAAO,EAAE,WAAW,GAAG,SAAS,YAAY,GAAG,IAAI;;;;;ACZrD,MAAM,YAAY,UAChB,OAAO,UAAU,YAAY,UAAU;;AAIzC,MAAa,4BAA4B,UAAkB;CACzD,MAAM,aAAa,UAAU,SAAS,MAAM,SAAS;CAErD,MAAM,8BACJ,aAAa,SACb,OAAO,MAAM,YAAY,YACzB,MAAM,QAAQ,aAAa,CAAC,SAAS,qBAAqB;CAE5D,MAAM,0BACJ,UAAU,SACV,SAAS,MAAM,KAAK,IACpB,mBAAmB,MAAM,QACzB,SAAS,MAAM,KAAK,cAAc,IAClC,UAAU,MAAM,KAAK,iBACrB,MAAM,KAAK,cAAc,SAAS;AAEpC,QAAO,cAAc,+BAA+B;;;;;;ACEtD,MAAaC,sBAA2C,OAAO,EAC7D,WACA,QACA,SACA,wBACI;CACJ,MAAM,0BAAgB,SAAS,UAAU,CAAC;AAE1C,KAAI;AACF,QAAM,QAAQ,QAAQ;GACpB,QAAQ;GACR,QAAQ,CAAC,EAAE,SAAS,CAAC;GACtB,CAAC;UACK,OAAO;EAEd,MAAM,oBAAoB,IAAIC,2CAAkB,EAC9C,QAAQ,gCACT,CAAC;AAEF,MAAI,OAAO,UAAU,YAAY,MAAM,SAAS,WAAW,CACzD,OAAM;AAGR,MAAI,OAAO,UAAU,YAAY,UAAU,KACzC,OAAM;AAGR,MACE,aAAa,SACb,MAAM,QAAQ,MAAM,QAAQ,IAC5B,MAAM,QAAQ,SAEZ,iDACD,CAED,OAAM,IAAIC,0DAAiC;GACzC,eAAe;GACf;GACD,CAAC;AAKJ,MAAI,yBAAyB,MAAM,EAAE;GACnC,MAAM,4DAA8B,OAAO,CAAC,MACzC,kBACCC,cAAY,cAAc,aAAaA,cAAY,UAAU,MAChE;AAED,OAAI,CAAC,YACH,OAAM,IAAIC,kDAAyB;IACjC;IACA,eAAe;IACf;IACD,CAAC;AAGJ,SAAM,IAAIC,8CAAqB;IAC7B;IACA;IACA,eAAe;IACf;IACD,CAAC;aAEF,aAAa,SACb,OAAO,MAAM,YAAY,YACzB,MAAM,QAAQ,SAAS,WAAW,CAElC,OAAM;MAEN,OAAM;;;;;;;ACpEZ,MAAa,2CACX,EACE,SACA,MACA,aACA,qBAAqBC,8CAAmB,oBAE1C,WACsB;CACtB,MAAMC,QAAe;CAErB,MAAM,iEAA8B;EAClC;EACA;EACA;EACD,CAAC;CAEF,MAAMC,oBAAqD,OAAO,EAChE,kBACI,WAAW;EAAE;EAAS;EAAa,CAAC;CAE1C,MAAMC,UAAwC,YAAY;AAUxD,SAAO,EACL,YAViB,MAAM,QAAQ,QAAQ;GACvC,QAAQ;GACR,QAAQ,EAAE;GACX,CAAC,EAEmC,KAAK,iCACzB,QAAQ,CACxB,CAG+B,KAAK,aAAa,EAC9C,SACD,EAAE,EACJ;;CAGH,MAAMC,aAA8C,YAAY;AAC9D,QAAM,QAAQ,QAAQ;GACpB,QAAQ;GACR,QAAQ,CACN,EACE,cAAc,EAAE,EACjB,CACF;GACF,CAAC;;CAGJ,MAAMC,wBACJ,YAAY;AAUV,SAAO,EACL,YAViB,MAAM,QAAQ,QAAQ;GACvC,QAAQ;GACR,QAAQ,EAAE;GACX,CAAC,EAEmC,KAAK,iCACzB,QAAQ,CACxB,EAIA;;CAGL,MAAMC,cAAgD,OAAO,EAC3D,SACA,oBACI;EACJ,MAAM,SAAS,CAAC,QAAQ;AAExB,MAAI,cACF,QAAO,KAAK,cAAc,QAAQ;AAQpC,SAAO,EACL,WANoB,MAAM,QAAQ,QAAQ;GAC1C,QAAQ;GACR;GACD,CAAC,EAID;;CAGH,MAAM,EAAE,iBAAiB,4FACU;EAC/B,4BAA4B;AAC1B,WAAQ,oBAAoB;;EAG9B,sBAAsB,EACpB,uBACA,oBACA,2BACI;AACJ,WAAQ,GAAG,oBAAoB,cAAc;AAC3C,0BAAsB,EAAE,WAAW,CAAC;KACpC;AAEF,WAAQ,GAAG,sBAAsB;AAC/B,wBAAoB;KACpB;AAEF,WAAQ,GAAG,iBAAiB,YAAU;AAKpC,yBAAqB,EAAE,2BAJCC,QAAM,GAC1B,SAASA,SAAO,GAAG,CAAC,UAAU,GAC9BA,QAAM,UAAU,EAEc,CAAC;KACnC;;EAEL,CAAC;CAEJ,MAAMC,YAA4C,YAAY;AAC5D,uBAAqB;;AAGvB,QAAO;EACL,YAAY;EACZ;EACA,qBAAqB,SAASC,gDAAsB,MAAM,OAAO;EACjE;EACA;EACA,IAAI,SAAS;AACX,UAAO,iBAAiB;;EAE1B,yBAAyB,SAASC,oDAA0B,MAAM,OAAO;EACzE,0BAA0B,mBAAmB,EAAE,SAAS,CAAC;EACzD;EACA,0EAAuC,YAAY;EACnD;EACA,UAAU;GAAE;GAAa;GAAM;EAC/B,SAAS,QAAQ,QAAQ,KAAK,QAAQ;EACtC;EACA,sBAAsB,EAAE,gBACtB,oBAAoB;GAClB;GACA;GACA;GACA,mBAAmB;GACpB,CAAC;EACJ;EACA,iBAAiB,SAASC,4CAAkB,MAAM,OAAO;EACzD;EACD"}
@@ -0,0 +1,179 @@
1
+ import { n as evmExecuteSwapTransaction, r as evmConfirmTransaction, t as evmTransferAmount } from "./evmTransferAmount-B__79nVn.native.esm.js";
2
+ import { createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey } from "@dynamic-labs-sdk/client/core";
3
+ import { NetworkNotAddedError, NetworkSwitchingUnavailableError, UnrecognizedNetworkError, UserRejectedError, getNetworksData } from "@dynamic-labs-sdk/client";
4
+ import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
5
+ import { getAddress, isHex, toHex } from "viem";
6
+
7
+ //#region src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts
8
+ /**
9
+ * Allows requesting that the eip1193 provider adds a network to its list of available networks.
10
+ * @not-instrumented
11
+ */
12
+ const addNetwork = async ({ eip1193, networkData }) => {
13
+ const chainId = toHex(parseInt(networkData.networkId));
14
+ const payload = {
15
+ blockExplorerUrls: networkData.blockExplorerUrls,
16
+ chainId,
17
+ chainName: networkData.displayName,
18
+ iconUrls: [networkData.iconUrl],
19
+ nativeCurrency: networkData.nativeCurrency,
20
+ rpcUrls: networkData.rpcUrls.http
21
+ };
22
+ await eip1193.request({
23
+ method: "wallet_addEthereumChain",
24
+ params: [payload]
25
+ });
26
+ };
27
+
28
+ //#endregion
29
+ //#region src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts
30
+ /** @not-instrumented */
31
+ const getActiveNetworkId = async ({ eip1193 }) => {
32
+ const chainIdHex = await eip1193.request({
33
+ method: "eth_chainId",
34
+ params: []
35
+ });
36
+ return { networkId: `${parseInt(chainIdHex, 16)}` };
37
+ };
38
+
39
+ //#endregion
40
+ //#region src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts
41
+ const isRecord = (value) => typeof value === "object" && value !== null;
42
+ /** @not-instrumented */
43
+ const isUnrecognizedChainError = (error) => {
44
+ const isCode4902 = "code" in error && error.code === 4902;
45
+ const hasUnrecognizedChainMessage = "message" in error && typeof error.message === "string" && error.message.toLowerCase().includes("unrecognized chain");
46
+ const isOriginalErrorCode4902 = "data" in error && isRecord(error.data) && "originalError" in error.data && isRecord(error.data.originalError) && "code" in error.data.originalError && error.data.originalError.code === 4902;
47
+ return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;
48
+ };
49
+
50
+ //#endregion
51
+ //#region src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts
52
+ /** @not-instrumented */
53
+ const switchActiveNetwork = async ({ networkId, client, eip1193, walletProviderKey }) => {
54
+ const chainId = toHex(parseInt(networkId));
55
+ try {
56
+ await eip1193.request({
57
+ method: "wallet_switchEthereumChain",
58
+ params: [{ chainId }]
59
+ });
60
+ } catch (error) {
61
+ const userRejectedError = new UserRejectedError({ action: "switch wallet active network" });
62
+ if (typeof error === "string" && error.includes("rejected")) throw userRejectedError;
63
+ if (typeof error !== "object" || error === null) throw error;
64
+ if ("details" in error && Array.isArray(error.details) && error.details.includes("\"wallet_switchEthereumChain\" not implemented")) throw new NetworkSwitchingUnavailableError({
65
+ originalError: error,
66
+ walletProviderKey
67
+ });
68
+ if (isUnrecognizedChainError(error)) {
69
+ const networkData = getNetworksData(client).find((networkData$1) => networkData$1.networkId === networkId && networkData$1.chain === "EVM");
70
+ if (!networkData) throw new UnrecognizedNetworkError({
71
+ networkId,
72
+ originalError: error,
73
+ walletProviderKey
74
+ });
75
+ throw new NetworkNotAddedError({
76
+ networkData,
77
+ networkId,
78
+ originalError: error,
79
+ walletProviderKey
80
+ });
81
+ } else if ("message" in error && typeof error.message === "string" && error.message.includes("rejected")) throw userRejectedError;
82
+ else throw error;
83
+ }
84
+ };
85
+
86
+ //#endregion
87
+ //#region src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts
88
+ /** @not-instrumented */
89
+ const createWalletProviderFromEIP1193Provider = ({ eip1193, icon, displayName, walletProviderType = WalletProviderEnum.BrowserExtension }, client) => {
90
+ const chain = "EVM";
91
+ const key = formatWalletProviderKey({
92
+ chain,
93
+ displayName,
94
+ walletProviderType
95
+ });
96
+ const addNetworkWrapped = async ({ networkData }) => addNetwork({
97
+ eip1193,
98
+ networkData
99
+ });
100
+ const connect = async () => {
101
+ return { addresses: (await eip1193.request({
102
+ method: "eth_requestAccounts",
103
+ params: []
104
+ })).map((address) => getAddress(address)).map((address) => ({ address })) };
105
+ };
106
+ const disconnect = async () => {
107
+ await eip1193.request({
108
+ method: "wallet_revokePermissions",
109
+ params: [{ eth_accounts: {} }]
110
+ });
111
+ };
112
+ const getConnectedAddresses = async () => {
113
+ return { addresses: (await eip1193.request({
114
+ method: "eth_accounts",
115
+ params: []
116
+ })).map((address) => getAddress(address)) };
117
+ };
118
+ const signMessage = async ({ message, walletAccount }) => {
119
+ const params = [message];
120
+ if (walletAccount) params.push(walletAccount.address);
121
+ return { signature: await eip1193.request({
122
+ method: "personal_sign",
123
+ params
124
+ }) };
125
+ };
126
+ const { getEventEmitter, cleanupEventEmitter } = createWalletProviderEventEmitter({
127
+ removeEventListeners: () => {
128
+ eip1193.removeAllListeners();
129
+ },
130
+ setupEventListeners: ({ handleAccountsChanged, handleDisconnected, handleNetworkChanged }) => {
131
+ eip1193.on("accountsChanged", (addresses) => {
132
+ handleAccountsChanged({ addresses });
133
+ });
134
+ eip1193.on("disconnected", () => {
135
+ handleDisconnected();
136
+ });
137
+ eip1193.on("chainChanged", (chain$1) => {
138
+ handleNetworkChanged({ networkId: isHex(chain$1) ? parseInt(chain$1, 16).toString() : chain$1.toString() });
139
+ });
140
+ }
141
+ });
142
+ const terminate = async () => {
143
+ cleanupEventEmitter();
144
+ };
145
+ return {
146
+ addNetwork: addNetworkWrapped,
147
+ chain,
148
+ confirmTransaction: (args) => evmConfirmTransaction(args, client),
149
+ connect,
150
+ disconnect,
151
+ get events() {
152
+ return getEventEmitter();
153
+ },
154
+ executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),
155
+ getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),
156
+ getConnectedAddresses,
157
+ groupKey: formatWalletProviderGroupKey(displayName),
158
+ key,
159
+ metadata: {
160
+ displayName,
161
+ icon
162
+ },
163
+ request: eip1193.request.bind(eip1193),
164
+ signMessage,
165
+ switchActiveNetwork: ({ networkId }) => switchActiveNetwork({
166
+ client,
167
+ eip1193,
168
+ networkId,
169
+ walletProviderKey: key
170
+ }),
171
+ terminate,
172
+ transferAmount: (args) => evmTransferAmount(args, client),
173
+ walletProviderType
174
+ };
175
+ };
176
+
177
+ //#endregion
178
+ export { createWalletProviderFromEIP1193Provider as t };
179
+ //# sourceMappingURL=createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider-RVjz6Jte.native.esm.js","names":["addNetwork: AddNetwork","payload: RequestAddChainPayload","getActiveNetworkId: GetActiveNetworkId","switchActiveNetwork: switchActiveNetwork","networkData","chain: Chain","addNetworkWrapped: EvmWalletProvider['addNetwork']","connect: EvmWalletProvider['connect']","viemGetAddress","disconnect: EvmWalletProvider['disconnect']","getConnectedAddresses: EvmWalletProvider['getConnectedAddresses']","signMessage: EvmWalletProvider['signMessage']","chain","terminate: EvmWalletProvider['terminate']"],"sources":["../src/utils/createWalletProviderFromEIP1193Provider/addNetwork/addNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/getActiveNetworkId/getActiveNetworkId.ts","../src/utils/createWalletProviderFromEIP1193Provider/isUnrecognizedChainError/isUnrecognizedChainError.ts","../src/utils/createWalletProviderFromEIP1193Provider/switchActiveNetwork/switchActiveNetwork.ts","../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"sourcesContent":["import type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\n// source: https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_addethereumchain/\ntype RequestAddChainPayload = {\n /**\n * An array of one or more URLs pointing to block explorer sites for the chain.\n */\n blockExplorerUrls?: string[];\n /**\n * The chain ID as a 0x-prefixed hexadecimal string, per the eth_chainId method.\n * MetaMask compares this chain ID value with the eth_chainId return value.\n * If these values aren't identical, MetaMask rejects the request.\n */\n chainId: string;\n /**\n * A human-readable name for the chain.\n */\n chainName: string;\n /**\n * An array of one or more URLs pointing to icons that can be used to visually identify the chain.\n */\n iconUrls?: string[];\n /**\n * An object containing information about the native currency of the chain.\n */\n nativeCurrency: {\n /**\n * A non-negative integer representing the number of decimals the native currency uses.\n */\n decimals: number;\n /**\n * A human-readable name of the native currency.\n */\n name: string;\n /**\n * A human-readable symbol of the native currency.\n */\n symbol: string;\n };\n /**\n * An array of one or more URLs pointing to RPC endpoints that can be used to communicate with the chain.\n * At least one item is required.\n */\n rpcUrls: string[];\n};\n\ntype AddNetwork = ExtendParameters<\n EvmWalletProvider['addNetwork'],\n {\n eip1193: EIP1193Provider;\n }\n>;\n\n/**\n * Allows requesting that the eip1193 provider adds a network to its list of available networks.\n * @not-instrumented\n */\nexport const addNetwork: AddNetwork = async ({ eip1193, networkData }) => {\n const chainId = toHex(parseInt(networkData.networkId));\n\n const payload: RequestAddChainPayload = {\n blockExplorerUrls: networkData.blockExplorerUrls,\n chainId,\n chainName: networkData.displayName,\n iconUrls: [networkData.iconUrl],\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: networkData.rpcUrls.http,\n };\n\n await eip1193.request({\n method: 'wallet_addEthereumChain',\n params: [payload],\n });\n};\n","import type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\n\ntype GetActiveNetworkId = (args: {\n eip1193: EIP1193Provider;\n}) => ReturnType<EvmWalletProvider['getActiveNetworkId']>;\n\n/** @not-instrumented */\nexport const getActiveNetworkId: GetActiveNetworkId = async ({ eip1193 }) => {\n const chainIdHex = (await eip1193.request({\n method: 'eth_chainId',\n params: [],\n })) as string;\n\n return { networkId: `${parseInt(chainIdHex, 16)}` };\n};\n","// Sources:\n// https://docs.metamask.io/wallet/reference/json-rpc-methods/wallet_switchethereumchain/\n// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain\n\nconst isRecord = (value: unknown) =>\n typeof value === 'object' && value !== null;\n\n/** @not-instrumented */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const isUnrecognizedChainError = (error: object) => {\n const isCode4902 = 'code' in error && error.code === 4902;\n\n const hasUnrecognizedChainMessage =\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.toLowerCase().includes('unrecognized chain');\n\n const isOriginalErrorCode4902 =\n 'data' in error &&\n isRecord(error.data) &&\n 'originalError' in error.data &&\n isRecord(error.data.originalError) &&\n 'code' in error.data.originalError &&\n error.data.originalError.code === 4902;\n\n return isCode4902 || hasUnrecognizedChainMessage || isOriginalErrorCode4902;\n};\n","import {\n type DynamicClient,\n NetworkNotAddedError,\n NetworkSwitchingUnavailableError,\n UnrecognizedNetworkError,\n UserRejectedError,\n getNetworksData,\n} from '@dynamic-labs-sdk/client';\nimport type { ExtendParameters } from '@dynamic-labs-sdk/client/core';\nimport { toHex } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../../EvmWalletProvider.types';\nimport { isUnrecognizedChainError } from '../isUnrecognizedChainError';\n\ntype switchActiveNetwork = ExtendParameters<\n EvmWalletProvider['switchActiveNetwork'],\n {\n client: DynamicClient;\n eip1193: EIP1193Provider;\n walletProviderKey: string;\n }\n>;\n\n/** @not-instrumented */\nexport const switchActiveNetwork: switchActiveNetwork = async ({\n networkId,\n client,\n eip1193,\n walletProviderKey,\n}) => {\n const chainId = toHex(parseInt(networkId));\n\n try {\n await eip1193.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId }],\n });\n } catch (error) {\n // We declare this error here to DRY it from being created in 2 different points below\n const userRejectedError = new UserRejectedError({\n action: 'switch wallet active network',\n });\n\n if (typeof error === 'string' && error.includes('rejected')) {\n throw userRejectedError;\n }\n\n if (typeof error !== 'object' || error === null) {\n throw error;\n }\n\n if (\n 'details' in error &&\n Array.isArray(error.details) &&\n error.details.includes(\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n '\"wallet_switchEthereumChain\" not implemented'\n )\n ) {\n throw new NetworkSwitchingUnavailableError({\n originalError: error,\n walletProviderKey,\n });\n }\n\n // Bear in mind: the unrecognized chain error also contains 'rejected' in message,\n // so it needs to be checked for before the rejection error itself.\n if (isUnrecognizedChainError(error)) {\n const networkData = getNetworksData(client).find(\n (networkData) =>\n networkData.networkId === networkId && networkData.chain === 'EVM'\n );\n\n if (!networkData) {\n throw new UnrecognizedNetworkError({\n networkId,\n originalError: error,\n walletProviderKey,\n });\n }\n\n throw new NetworkNotAddedError({\n networkData,\n networkId,\n originalError: error,\n walletProviderKey,\n });\n } else if (\n 'message' in error &&\n typeof error.message === 'string' &&\n error.message.includes('rejected')\n ) {\n throw userRejectedError;\n } else {\n throw error;\n }\n }\n};\n","/* eslint-disable custom-rules/require-client-param */\nimport type { Chain, DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { isHex, getAddress as viemGetAddress } from 'viem';\n\nimport type {\n EIP1193Provider,\n EvmWalletProvider,\n} from '../../EvmWalletProvider.types';\nimport { evmConfirmTransaction } from '../evmConfirmTransaction';\nimport { evmExecuteSwapTransaction } from '../evmExecuteSwapTransaction';\nimport { evmTransferAmount } from '../evmTransferAmount';\nimport { addNetwork } from './addNetwork';\nimport { getActiveNetworkId } from './getActiveNetworkId/getActiveNetworkId';\nimport { switchActiveNetwork } from './switchActiveNetwork';\n\ntype CreateWalletProviderFromEIP1193ProviderParams = {\n displayName: string;\n eip1193: EIP1193Provider;\n icon: string;\n walletProviderType?: WalletProviderEnum;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromEIP1193Provider = (\n {\n eip1193,\n icon,\n displayName,\n walletProviderType = WalletProviderEnum.BrowserExtension,\n }: CreateWalletProviderFromEIP1193ProviderParams,\n client: DynamicClient\n): EvmWalletProvider => {\n const chain: Chain = 'EVM';\n\n const key = formatWalletProviderKey({\n chain,\n displayName,\n walletProviderType,\n });\n\n const addNetworkWrapped: EvmWalletProvider['addNetwork'] = async ({\n networkData,\n }) => addNetwork({ eip1193, networkData });\n\n const connect: EvmWalletProvider['connect'] = async () => {\n const addresses = (await eip1193.request({\n method: 'eth_requestAccounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses.map((address) => ({\n address,\n })),\n };\n };\n\n const disconnect: EvmWalletProvider['disconnect'] = async () => {\n await eip1193.request({\n method: 'wallet_revokePermissions',\n params: [\n {\n eth_accounts: {},\n },\n ],\n });\n };\n\n const getConnectedAddresses: EvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = (await eip1193.request({\n method: 'eth_accounts',\n params: [],\n })) as string[];\n\n const formattedAddresses = addresses.map((address) =>\n viemGetAddress(address)\n );\n\n return {\n addresses: formattedAddresses,\n };\n };\n\n const signMessage: EvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const signedMessage = await eip1193.request({\n method: 'personal_sign',\n params,\n });\n\n return {\n signature: signedMessage as string,\n };\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter({\n removeEventListeners: () => {\n eip1193.removeAllListeners();\n },\n\n setupEventListeners: ({\n handleAccountsChanged,\n handleDisconnected,\n handleNetworkChanged,\n }) => {\n eip1193.on('accountsChanged', (addresses) => {\n handleAccountsChanged({ addresses });\n });\n\n eip1193.on('disconnected', () => {\n handleDisconnected();\n });\n\n eip1193.on('chainChanged', (chain) => {\n const networkId = isHex(chain)\n ? parseInt(chain, 16).toString()\n : chain.toString();\n\n handleNetworkChanged({ networkId });\n });\n },\n });\n\n const terminate: EvmWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n addNetwork: addNetworkWrapped,\n chain,\n confirmTransaction: (args) => evmConfirmTransaction(args, client),\n connect,\n disconnect,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) => evmExecuteSwapTransaction(args, client),\n getActiveNetworkId: () => getActiveNetworkId({ eip1193 }),\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: { displayName, icon },\n request: eip1193.request.bind(eip1193),\n signMessage,\n switchActiveNetwork: ({ networkId }) =>\n switchActiveNetwork({\n client,\n eip1193,\n networkId,\n walletProviderKey: key,\n }),\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const EIP6963_EXTENSION_KEY = "eip6963";
2
+ //# sourceMappingURL=addEIP6963Extension.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addEIP6963Extension.constants.d.ts","sourceRoot":"","sources":["../../../src/eip6963/addEIP6963Extension/addEIP6963Extension.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const EIP6963_EXTENSION_KEY = "eip6963";
1
+ import type { AddEIP6963Extension } from './addEIP6963Extension.types';
2
2
  /**
3
3
  * Adds the EIP-6963 extension to the Dynamic client.
4
4
  *
@@ -7,7 +7,7 @@ export declare const EIP6963_EXTENSION_KEY = "eip6963";
7
7
  *
8
8
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
9
9
  * @returns A function that can be used to remove EIP-6963 global event listeners that were added.
10
- * @not-instrumented
10
+ * @not-instrumented
11
11
  */
12
- export declare const addEIP6963Extension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => VoidFunction;
12
+ export declare const addEIP6963Extension: AddEIP6963Extension;
13
13
  //# sourceMappingURL=addEIP6963Extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addEIP6963Extension.d.ts","sourceRoot":"","sources":["../../../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,6EA2B/B,CAAC"}
1
+ {"version":3,"file":"addEIP6963Extension.d.ts","sourceRoot":"","sources":["../../../src/eip6963/addEIP6963Extension/addEIP6963Extension.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBA6BjC,CAAC"}