@dynamic-labs-sdk/evm 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/{addEIP6963Extension-C3QBJ5eF.esm.js → addEIP6963Extension-CvFS90p8.esm.js} +3 -3
  2. package/dist/{addEIP6963Extension-C3QBJ5eF.esm.js.map → addEIP6963Extension-CvFS90p8.esm.js.map} +1 -1
  3. package/dist/{addEIP6963Extension-AEHuRGr9.cjs.js → addEIP6963Extension-D1XBFfqo.cjs.js} +4 -4
  4. package/dist/{addEIP6963Extension-AEHuRGr9.cjs.js.map → addEIP6963Extension-D1XBFfqo.cjs.js.map} +1 -1
  5. package/dist/{addWaasEvmExtension-BK9KK6r2.cjs.js → addWaasEvmExtension-B3CULpVK.cjs.js} +8 -6
  6. package/dist/addWaasEvmExtension-B3CULpVK.cjs.js.map +1 -0
  7. package/dist/{addWaasEvmExtension-CL5LSmDe.esm.js → addWaasEvmExtension-ByVcZcQf.esm.js} +6 -4
  8. package/dist/{addWaasEvmExtension-CL5LSmDe.esm.js.map → addWaasEvmExtension-ByVcZcQf.esm.js.map} +1 -1
  9. package/dist/checkoutTransaction.types.d.ts +17 -0
  10. package/dist/checkoutTransaction.types.d.ts.map +1 -0
  11. package/dist/createPublicClientFromNetworkData-Cfvulgk2.cjs.js +128 -0
  12. package/dist/createPublicClientFromNetworkData-Cfvulgk2.cjs.js.map +1 -0
  13. package/dist/createPublicClientFromNetworkData-Di-TkbXo.esm.js +99 -0
  14. package/dist/createPublicClientFromNetworkData-Di-TkbXo.esm.js.map +1 -0
  15. package/dist/{createWalletProviderFromEIP1193Provider-DxS7zeOl.cjs.js → createWalletProviderFromEIP1193Provider-BN_15ugW.cjs.js} +4 -1
  16. package/dist/createWalletProviderFromEIP1193Provider-BN_15ugW.cjs.js.map +1 -0
  17. package/dist/{createWalletProviderFromEIP1193Provider-t5Nmo-Jr.esm.js → createWalletProviderFromEIP1193Provider-D3pU5c9w.esm.js} +4 -1
  18. package/dist/{createWalletProviderFromEIP1193Provider-t5Nmo-Jr.esm.js.map → createWalletProviderFromEIP1193Provider-D3pU5c9w.esm.js.map} +1 -1
  19. package/dist/eip6963.cjs.js +5 -5
  20. package/dist/eip6963.cjs.js.map +1 -1
  21. package/dist/eip6963.esm.js +4 -4
  22. package/dist/evmTransferAmount-BMchv2Ja.cjs.js +254 -0
  23. package/dist/evmTransferAmount-BMchv2Ja.cjs.js.map +1 -0
  24. package/dist/evmTransferAmount-DVCD8zPf.esm.js +225 -0
  25. package/dist/evmTransferAmount-DVCD8zPf.esm.js.map +1 -0
  26. package/dist/index.cjs.js +9 -20
  27. package/dist/index.cjs.js.map +1 -1
  28. package/dist/index.esm.js +5 -16
  29. package/dist/index.esm.js.map +1 -1
  30. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  31. package/dist/utils/approveErc20/approveErc20.d.ts +27 -0
  32. package/dist/utils/approveErc20/approveErc20.d.ts.map +1 -0
  33. package/dist/utils/approveErc20/index.d.ts +2 -0
  34. package/dist/utils/approveErc20/index.d.ts.map +1 -0
  35. package/dist/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.d.ts.map +1 -1
  36. package/dist/utils/evmExecuteCheckoutTransaction/evmExecuteCheckoutTransaction.d.ts +19 -0
  37. package/dist/utils/evmExecuteCheckoutTransaction/evmExecuteCheckoutTransaction.d.ts.map +1 -0
  38. package/dist/utils/evmExecuteCheckoutTransaction/index.d.ts +2 -0
  39. package/dist/utils/evmExecuteCheckoutTransaction/index.d.ts.map +1 -0
  40. package/dist/utils/evmTransferAmount/evmTransferAmount.d.ts +6 -0
  41. package/dist/utils/evmTransferAmount/evmTransferAmount.d.ts.map +1 -0
  42. package/dist/utils/evmTransferAmount/index.d.ts +2 -0
  43. package/dist/utils/evmTransferAmount/index.d.ts.map +1 -0
  44. package/dist/utils/getErc20Allowance/getErc20Allowance.d.ts +24 -0
  45. package/dist/utils/getErc20Allowance/getErc20Allowance.d.ts.map +1 -0
  46. package/dist/utils/getErc20Allowance/index.d.ts +2 -0
  47. package/dist/utils/getErc20Allowance/index.d.ts.map +1 -0
  48. package/dist/viem.cjs.js +4 -61
  49. package/dist/viem.cjs.js.map +1 -1
  50. package/dist/viem.esm.js +1 -58
  51. package/dist/viem.esm.js.map +1 -1
  52. package/dist/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.d.ts.map +1 -1
  53. package/dist/waas.cjs.js +4 -4
  54. package/dist/waas.cjs.js.map +1 -1
  55. package/dist/waas.esm.js +3 -3
  56. package/dist/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.d.ts.map +1 -1
  57. package/dist/walletConnect.cjs.js +6 -4
  58. package/dist/walletConnect.cjs.js.map +1 -1
  59. package/dist/walletConnect.esm.js +4 -2
  60. package/dist/walletConnect.esm.js.map +1 -1
  61. package/dist/windowInjected.cjs.js +5 -5
  62. package/dist/windowInjected.cjs.js.map +1 -1
  63. package/dist/windowInjected.esm.js +3 -3
  64. package/package.json +5 -5
  65. package/dist/addWaasEvmExtension-BK9KK6r2.cjs.js.map +0 -1
  66. package/dist/createPublicClientFromNetworkData-DVfNmDlP.cjs.js +0 -30
  67. package/dist/createPublicClientFromNetworkData-DVfNmDlP.cjs.js.map +0 -1
  68. package/dist/createPublicClientFromNetworkData-FtTILn2t.esm.js +0 -25
  69. package/dist/createPublicClientFromNetworkData-FtTILn2t.esm.js.map +0 -1
  70. package/dist/createWalletProviderFromEIP1193Provider-DxS7zeOl.cjs.js.map +0 -1
  71. package/dist/mapNetworkDataToViemChain-BeqJB1Af.esm.js +0 -18
  72. package/dist/mapNetworkDataToViemChain-BeqJB1Af.esm.js.map +0 -1
  73. package/dist/mapNetworkDataToViemChain-DFVApcmV.cjs.js +0 -24
  74. package/dist/mapNetworkDataToViemChain-DFVApcmV.cjs.js.map +0 -1
  75. package/dist/package-CjX-8h5P.esm.js +0 -7
  76. package/dist/package-CjX-8h5P.esm.js.map +0 -1
  77. package/dist/package-Dr7v4vXa.cjs.js +0 -19
  78. package/dist/package-Dr7v4vXa.cjs.js.map +0 -1
  79. package/dist/registerEvmNetworkProviderBuilder-CQfGsiEJ.cjs.js +0 -96
  80. package/dist/registerEvmNetworkProviderBuilder-CQfGsiEJ.cjs.js.map +0 -1
  81. package/dist/registerEvmNetworkProviderBuilder-Cn6YtnaH.esm.js +0 -85
  82. package/dist/registerEvmNetworkProviderBuilder-Cn6YtnaH.esm.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ import type { DynamicClient } from '@dynamic-labs-sdk/client';
2
+ import type { EvmWalletAccount } from '../../EvmWalletAccount.types';
3
+ type ApproveErc20Params = {
4
+ amount: bigint;
5
+ spenderAddress: string;
6
+ tokenAddress: string;
7
+ walletAccount: EvmWalletAccount;
8
+ };
9
+ /**
10
+ * Sends an ERC-20 `approve` transaction, granting a spender an allowance
11
+ * to transfer tokens on behalf of the wallet account.
12
+ *
13
+ * Encodes the `approve(spender, amount)` call using viem's `encodeFunctionData`
14
+ * and sends it through the wallet account's viem wallet client.
15
+ *
16
+ * @param params.amount - The amount to approve in the token's smallest unit.
17
+ * @param params.spenderAddress - The address being granted the allowance.
18
+ * @param params.tokenAddress - The ERC-20 token contract address.
19
+ * @param params.walletAccount - The EVM wallet account sending the approval.
20
+ * @param client - The Dynamic client instance.
21
+ * @returns The approval transaction hash.
22
+ */
23
+ export declare const approveErc20: ({ amount, spenderAddress, tokenAddress, walletAccount }: ApproveErc20Params, client: DynamicClient) => Promise<{
24
+ transactionHash: string;
25
+ }>;
26
+ export {};
27
+ //# sourceMappingURL=approveErc20.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approveErc20.d.ts","sourceRoot":"","sources":["../../../src/utils/approveErc20/approveErc20.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,4DACkC,kBAAkB,UACnE,aAAa,KACpB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAkBrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { approveErc20 } from './approveErc20';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/approveErc20/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletProviderFromEIP1193Provider.d.ts","sourceRoot":"","sources":["../../../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASrE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAKvC,KAAK,6CAA6C,GAAG;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,uCAAuC,mCAClB,6CAA6C,UACrE,aAAa,KACpB,iBAyIF,CAAC"}
1
+ {"version":3,"file":"createWalletProviderFromEIP1193Provider.d.ts","sourceRoot":"","sources":["../../../src/utils/createWalletProviderFromEIP1193Provider/createWalletProviderFromEIP1193Provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASrE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAOvC,KAAK,6CAA6C,GAAG;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,uCAAuC,mCAClB,6CAA6C,UACrE,aAAa,KACpB,iBA4IF,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type DynamicClient } from '@dynamic-labs-sdk/client';
2
+ import type { ExecuteCheckoutTransactionParams, ExecuteCheckoutTransactionResult } from '@dynamic-labs-sdk/client/core';
3
+ /**
4
+ * Executes an EVM checkout transaction by handling optional ERC-20 approval
5
+ * and sending the main swap transaction on-chain.
6
+ *
7
+ * 1. Validates that the wallet account is an EVM wallet account
8
+ * 2. If the signing payload includes an `evmApproval`, checks the current
9
+ * ERC-20 allowance and sends an approve transaction when insufficient
10
+ * 3. Sends the main transaction using the viem wallet client
11
+ *
12
+ * @param params.signingPayload - The chain-aware signing payload containing `evmTransaction` and optional `evmApproval`.
13
+ * @param params.walletAccount - The wallet account used to sign and send transactions.
14
+ * @param params.onStepChange - Optional callback invoked with `'approval'` or `'transaction'` as each step begins.
15
+ * @param client - The Dynamic client instance.
16
+ * @returns The main transaction hash and, if an approval was sent, the approval transaction hash.
17
+ */
18
+ export declare const evmExecuteCheckoutTransaction: ({ onStepChange, signingPayload, walletAccount, }: ExecuteCheckoutTransactionParams, client: DynamicClient) => Promise<ExecuteCheckoutTransactionResult>;
19
+ //# sourceMappingURL=evmExecuteCheckoutTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmExecuteCheckoutTransaction.d.ts","sourceRoot":"","sources":["../../../src/utils/evmExecuteCheckoutTransaction/evmExecuteCheckoutTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,+BAA+B,CAAC;AAQvC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,6BAA6B,qDAKrC,gCAAgC,UAC3B,aAAa,KACpB,OAAO,CAAC,gCAAgC,CA0D1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { evmExecuteCheckoutTransaction } from './evmExecuteCheckoutTransaction';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/evmExecuteCheckoutTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type DynamicClient } from '@dynamic-labs-sdk/client';
2
+ import type { TransferAmountParams } from '@dynamic-labs-sdk/client/core';
3
+ export declare const evmTransferAmount: ({ amount, recipient, token, walletAccount }: TransferAmountParams, client: DynamicClient) => Promise<{
4
+ transactionHash: string;
5
+ }>;
6
+ //# sourceMappingURL=evmTransferAmount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmTransferAmount.d.ts","sourceRoot":"","sources":["../../../src/utils/evmTransferAmount/evmTransferAmount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAQ1E,eAAO,MAAM,iBAAiB,gDACiB,oBAAoB,UACzD,aAAa,KACpB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAkCrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { evmTransferAmount } from './evmTransferAmount';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/evmTransferAmount/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type DynamicClient } from '@dynamic-labs-sdk/client';
2
+ import type { EvmWalletAccount } from '../../EvmWalletAccount.types';
3
+ type GetErc20AllowanceParams = {
4
+ ownerAddress: string;
5
+ spenderAddress: string;
6
+ tokenAddress: string;
7
+ walletAccount: EvmWalletAccount;
8
+ };
9
+ /**
10
+ * Reads the current ERC-20 token allowance granted by an owner to a spender.
11
+ *
12
+ * Uses a viem public client derived from the wallet account's active network
13
+ * to call the `allowance(owner, spender)` method on the token contract.
14
+ *
15
+ * @param params.tokenAddress - The ERC-20 token contract address.
16
+ * @param params.ownerAddress - The address that granted the allowance.
17
+ * @param params.spenderAddress - The address allowed to spend the tokens.
18
+ * @param params.walletAccount - The EVM wallet account used to resolve the active network.
19
+ * @param client - The Dynamic client instance.
20
+ * @returns The current allowance as a bigint in the token's smallest unit.
21
+ */
22
+ export declare const getErc20Allowance: ({ ownerAddress, spenderAddress, tokenAddress, walletAccount, }: GetErc20AllowanceParams, client: DynamicClient) => Promise<bigint>;
23
+ export {};
24
+ //# sourceMappingURL=getErc20Allowance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getErc20Allowance.d.ts","sourceRoot":"","sources":["../../../src/utils/getErc20Allowance/getErc20Allowance.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,KAAK,uBAAuB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,mEAMzB,uBAAuB,UAClB,aAAa,KACpB,OAAO,CAAC,MAAM,CAgBhB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getErc20Allowance } from './getErc20Allowance';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/getErc20Allowance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/viem.cjs.js CHANGED
@@ -1,68 +1,11 @@
1
- const require_package = require('./package-Dr7v4vXa.cjs.js');
2
- const require_mapNetworkDataToViemChain = require('./mapNetworkDataToViemChain-DFVApcmV.cjs.js');
3
- const require_createPublicClientFromNetworkData = require('./createPublicClientFromNetworkData-DVfNmDlP.cjs.js');
1
+ const require_createPublicClientFromNetworkData = require('./createPublicClientFromNetworkData-Cfvulgk2.cjs.js');
4
2
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
- let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
6
- let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
7
- let viem = require("viem");
8
- let viem_accounts = require("viem/accounts");
9
3
 
10
- //#region src/isEvmWalletProvider/isEvmWalletProvider.ts
11
- const isEvmWalletProvider = (walletProvider) => walletProvider.chain === "EVM";
12
-
13
- //#endregion
14
- //#region src/utils/isEIP1193Provider/isEIP1193Provider.ts
15
- const isEIP1193Provider = (provider) => {
16
- return provider !== null && provider !== void 0 && typeof provider === "object" && "request" in provider && typeof provider.request === "function";
17
- };
18
-
19
- //#endregion
20
- //#region src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts
21
- const isEvmWalletProviderWithCustomViemClient = (walletProvider) => {
22
- return "createViemWalletClient" in walletProvider;
23
- };
24
-
25
- //#endregion
26
- //#region src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts
27
- /**
28
- * Creates a viem WalletClient from an EVM WalletAccount object.
29
- *
30
- * This function configures a viem WalletClient instance for sending transactions
31
- * and signing messages using the specified wallet account. It automatically
32
- * handles network configuration and transport setup.
33
- *
34
- * @param props - The configuration object.
35
- * @param props.walletAccount - The EVM wallet account to create the client for.
36
- * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.
37
- * @param [props.httpTransportConfig] - Optional HTTP transport configuration.
38
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
39
- * @returns A promise that resolves to a configured viem WalletClient instance.
40
- */
41
- const createWalletClientForWalletAccount = async ({ walletAccount, walletClientConfig = {}, httpTransportConfig = {} }, client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
42
- const walletProvider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
43
- if (!isEvmWalletProvider(walletProvider)) throw new _dynamic_labs_sdk_client.InvalidParamError(`${walletAccount.address} is not an EVM wallet account`);
44
- if (isEvmWalletProviderWithCustomViemClient(walletProvider)) return walletProvider.createViemWalletClient({
45
- httpTransportConfig,
46
- viemWalletClientConfig: walletClientConfig,
47
- walletAccount
48
- });
49
- const { networkData: activeNetworkData } = await (0, _dynamic_labs_sdk_client.getActiveNetworkData)({ walletAccount }, client);
50
- (0, _dynamic_labs_sdk_client_core.assertDefined)(activeNetworkData, `No network data found for wallet account ${walletAccount.address}`);
51
- if (!isEIP1193Provider(walletProvider)) throw new _dynamic_labs_sdk_client.InvalidParamError("Wallet provider does not implement the EIP1193Provider interface");
52
- return (0, viem.createWalletClient)({
53
- account: (0, viem_accounts.toAccount)(walletAccount.address),
54
- chain: require_mapNetworkDataToViemChain.mapNetworkDataToViemChain(activeNetworkData),
55
- transport: (0, viem.custom)(walletProvider, httpTransportConfig),
56
- ...walletClientConfig
57
- });
58
- };
59
-
60
- //#endregion
61
4
  //#region src/exports/viem.ts
62
- (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_package.name, require_package.version);
5
+ (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_createPublicClientFromNetworkData.name, require_createPublicClientFromNetworkData.version);
63
6
 
64
7
  //#endregion
65
8
  exports.createPublicClientFromNetworkData = require_createPublicClientFromNetworkData.createPublicClientFromNetworkData;
66
- exports.createWalletClientForWalletAccount = createWalletClientForWalletAccount;
67
- exports.mapNetworkDataToViemChain = require_mapNetworkDataToViemChain.mapNetworkDataToViemChain;
9
+ exports.createWalletClientForWalletAccount = require_createPublicClientFromNetworkData.createWalletClientForWalletAccount;
10
+ exports.mapNetworkDataToViemChain = require_createPublicClientFromNetworkData.mapNetworkDataToViemChain;
68
11
  //# sourceMappingURL=viem.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viem.cjs.js","names":["InvalidParamError","mapNetworkDataToViemChain","packageName","packageVersion"],"sources":["../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts","../src/exports/viem.ts"],"sourcesContent":["import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\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\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 */\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","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { createPublicClientFromNetworkData } from '../viem/createPublicClientFromNetworkData';\nexport { createWalletClientForWalletAccount } from '../viem/createWalletClientForWalletAccount';\nexport { mapNetworkDataToViemChain } from '../viem/utils/mapNetworkDataToViemChain';\n"],"mappings":";;;;;;;;;;AAIA,MAAa,uBACX,mBACwC,eAAe,UAAU;;;;ACJnE,MAAa,qBACX,aACoC;AACpC,QACE,aAAa,QACb,aAAa,UACb,OAAO,aAAa,YACpB,aAAa,YACb,OAAO,SAAS,YAAY;;;;;ACNhC,MAAa,2CACX,mBAC4D;AAC5D,QAAO,4BAA4B;;;;;;;;;;;;;;;;;;;AC2CrC,MAAa,qCAAqC,OAChD,EACE,eACA,qBAAqB,EAAE,EACvB,sBAAsB,EAAE,IAE1B,8DAA2B,KAC0B;CACrD,MAAM,uFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,eAAe,CACtC,OAAM,IAAIA,2CACR,GAAG,cAAc,QAAQ,+BAC1B;AAGH,KAAI,wCAAwC,eAAe,CACzD,QAAO,eAAe,uBAAuB;EAC3C;EACA,wBAAwB;EACxB;EACD,CAAC;CAGJ,MAAM,EAAE,aAAa,sBAAsB,yDACzC,EAAE,eAAe,EACjB,OACD;AAED,kDACE,mBACA,4CAA4C,cAAc,UAC3D;AAED,KAAI,CAAC,kBAAkB,eAAe,CACpC,OAAM,IAAIA,2CACR,mEACD;AAGH,qCAA0B;EACxB,sCAAmB,cAAc,QAAe;EAChD,OAAOC,4DAA0B,kBAAkB;EACnD,4BAAkB,gBAAgB,oBAAoB;EACtD,GAAG;EACJ,CAAC;;;;;mEC5FiBC,sBAAaC,wBAAe"}
1
+ {"version":3,"file":"viem.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/viem.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { createPublicClientFromNetworkData } from '../viem/createPublicClientFromNetworkData';\nexport { createWalletClientForWalletAccount } from '../viem/createWalletClientForWalletAccount';\nexport { mapNetworkDataToViemChain } from '../viem/utils/mapNetworkDataToViemChain';\n"],"mappings":";;;;mEAMqBA,gDAAaC,kDAAe"}
package/dist/viem.esm.js CHANGED
@@ -1,63 +1,6 @@
1
- import { n as version, t as name } from "./package-CjX-8h5P.esm.js";
2
- import { t as mapNetworkDataToViemChain } from "./mapNetworkDataToViemChain-BeqJB1Af.esm.js";
3
- import { t as createPublicClientFromNetworkData } from "./createPublicClientFromNetworkData-FtTILn2t.esm.js";
1
+ import { a as version, i as name, n as createWalletClientForWalletAccount, r as mapNetworkDataToViemChain, t as createPublicClientFromNetworkData } from "./createPublicClientFromNetworkData-Di-TkbXo.esm.js";
4
2
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
- import { assertDefined, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
6
- import { InvalidParamError, getActiveNetworkData } from "@dynamic-labs-sdk/client";
7
- import { createWalletClient, custom } from "viem";
8
- import { toAccount } from "viem/accounts";
9
3
 
10
- //#region src/isEvmWalletProvider/isEvmWalletProvider.ts
11
- const isEvmWalletProvider = (walletProvider) => walletProvider.chain === "EVM";
12
-
13
- //#endregion
14
- //#region src/utils/isEIP1193Provider/isEIP1193Provider.ts
15
- const isEIP1193Provider = (provider) => {
16
- return provider !== null && provider !== void 0 && typeof provider === "object" && "request" in provider && typeof provider.request === "function";
17
- };
18
-
19
- //#endregion
20
- //#region src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts
21
- const isEvmWalletProviderWithCustomViemClient = (walletProvider) => {
22
- return "createViemWalletClient" in walletProvider;
23
- };
24
-
25
- //#endregion
26
- //#region src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts
27
- /**
28
- * Creates a viem WalletClient from an EVM WalletAccount object.
29
- *
30
- * This function configures a viem WalletClient instance for sending transactions
31
- * and signing messages using the specified wallet account. It automatically
32
- * handles network configuration and transport setup.
33
- *
34
- * @param props - The configuration object.
35
- * @param props.walletAccount - The EVM wallet account to create the client for.
36
- * @param [props.walletClientConfig] - Optional additional configuration for the viem WalletClient.
37
- * @param [props.httpTransportConfig] - Optional HTTP transport configuration.
38
- * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
39
- * @returns A promise that resolves to a configured viem WalletClient instance.
40
- */
41
- const createWalletClientForWalletAccount = async ({ walletAccount, walletClientConfig = {}, httpTransportConfig = {} }, client = getDefaultClient()) => {
42
- const walletProvider = getWalletProviderFromWalletAccount({ walletAccount }, client);
43
- if (!isEvmWalletProvider(walletProvider)) throw new InvalidParamError(`${walletAccount.address} is not an EVM wallet account`);
44
- if (isEvmWalletProviderWithCustomViemClient(walletProvider)) return walletProvider.createViemWalletClient({
45
- httpTransportConfig,
46
- viemWalletClientConfig: walletClientConfig,
47
- walletAccount
48
- });
49
- const { networkData: activeNetworkData } = await getActiveNetworkData({ walletAccount }, client);
50
- assertDefined(activeNetworkData, `No network data found for wallet account ${walletAccount.address}`);
51
- if (!isEIP1193Provider(walletProvider)) throw new InvalidParamError("Wallet provider does not implement the EIP1193Provider interface");
52
- return createWalletClient({
53
- account: toAccount(walletAccount.address),
54
- chain: mapNetworkDataToViemChain(activeNetworkData),
55
- transport: custom(walletProvider, httpTransportConfig),
56
- ...walletClientConfig
57
- });
58
- };
59
-
60
- //#endregion
61
4
  //#region src/exports/viem.ts
62
5
  assertPackageVersion(name, version);
63
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"viem.esm.js","names":["packageName","packageVersion"],"sources":["../src/isEvmWalletProvider/isEvmWalletProvider.ts","../src/utils/isEIP1193Provider/isEIP1193Provider.ts","../src/viem/utils/walletProviderHasCustomWalletClient/isEvmWalletProviderWithCustomViemClient.ts","../src/viem/createWalletClientForWalletAccount/createWalletClientForWalletAccount.ts","../src/exports/viem.ts"],"sourcesContent":["import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { EvmWalletProvider } from '../EvmWalletProvider.types';\n\nexport const isEvmWalletProvider = (\n walletProvider: WalletProvider\n): walletProvider is EvmWalletProvider => walletProvider.chain === 'EVM';\n","import type { EIP1193Provider } from '../../EvmWalletProvider.types';\n\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\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 */\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","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { createPublicClientFromNetworkData } from '../viem/createPublicClientFromNetworkData';\nexport { createWalletClientForWalletAccount } from '../viem/createWalletClientForWalletAccount';\nexport { mapNetworkDataToViemChain } from '../viem/utils/mapNetworkDataToViemChain';\n"],"mappings":";;;;;;;;;;AAIA,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;;;;;AC5FJ,qBAAqBA,MAAaC,QAAe"}
1
+ {"version":3,"file":"viem.esm.js","names":["packageName","packageVersion"],"sources":["../src/exports/viem.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { createPublicClientFromNetworkData } from '../viem/createPublicClientFromNetworkData';\nexport { createWalletClientForWalletAccount } from '../viem/createWalletClientForWalletAccount';\nexport { mapNetworkDataToViemChain } from '../viem/utils/mapNetworkDataToViemChain';\n"],"mappings":";;;;AAMA,qBAAqBA,MAAaC,QAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletProviderForWaasEvm.d.ts","sourceRoot":"","sources":["../../../../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAe1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,KAAK,oCAAoC,GAAG;IAC1C,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,uBAExC,oCAAoC,KAAG,qBAyFzC,CAAC"}
1
+ {"version":3,"file":"createWalletProviderForWaasEvm.d.ts","sourceRoot":"","sources":["../../../../src/waas/utils/createWalletProviderForWaasEvm/createWalletProviderForWaasEvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAiB1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,KAAK,oCAAoC,GAAG;IAC1C,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,uBAExC,oCAAoC,KAAG,qBA4FzC,CAAC"}
package/dist/waas.cjs.js CHANGED
@@ -1,10 +1,10 @@
1
- const require_package = require('./package-Dr7v4vXa.cjs.js');
2
- require('./registerEvmNetworkProviderBuilder-CQfGsiEJ.cjs.js');
3
- const require_addWaasEvmExtension = require('./addWaasEvmExtension-BK9KK6r2.cjs.js');
1
+ const require_createPublicClientFromNetworkData = require('./createPublicClientFromNetworkData-Cfvulgk2.cjs.js');
2
+ require('./evmTransferAmount-BMchv2Ja.cjs.js');
3
+ const require_addWaasEvmExtension = require('./addWaasEvmExtension-B3CULpVK.cjs.js');
4
4
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
5
5
 
6
6
  //#region src/exports/waas.ts
7
- (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_package.name, require_package.version);
7
+ (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_createPublicClientFromNetworkData.name, require_createPublicClientFromNetworkData.version);
8
8
 
9
9
  //#endregion
10
10
  exports.addWaasEvmExtension = require_addWaasEvmExtension.addWaasEvmExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"waas.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/waas.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addWaasEvmExtension } from '../waas/addWaasEvmExtension';\n"],"mappings":";;;;;;mEAMqBA,sBAAaC,wBAAe"}
1
+ {"version":3,"file":"waas.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/waas.ts"],"sourcesContent":["import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addWaasEvmExtension } from '../waas/addWaasEvmExtension';\n"],"mappings":";;;;;;mEAMqBA,gDAAaC,kDAAe"}
package/dist/waas.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as version, t as name } from "./package-CjX-8h5P.esm.js";
2
- import "./registerEvmNetworkProviderBuilder-Cn6YtnaH.esm.js";
3
- import { t as addWaasEvmExtension } from "./addWaasEvmExtension-CL5LSmDe.esm.js";
1
+ import { a as version, i as name } from "./createPublicClientFromNetworkData-Di-TkbXo.esm.js";
2
+ import "./evmTransferAmount-DVCD8zPf.esm.js";
3
+ import { t as addWaasEvmExtension } from "./addWaasEvmExtension-ByVcZcQf.esm.js";
4
4
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
5
5
 
6
6
  //#region src/exports/waas.ts
@@ -1 +1 @@
1
- {"version":3,"file":"createWalletProviderFromEIP155Session.d.ts","sourceRoot":"","sources":["../../../src/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqB9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAE9F,KAAK,2CAA2C,GAAG;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAaF,eAAO,MAAM,qCAAqC,qBAC9B,2CAA2C,UACrD,aAAa,KACpB,OAAO,CAAC,8BAA8B,CAyKxC,CAAC"}
1
+ {"version":3,"file":"createWalletProviderFromEIP155Session.d.ts","sourceRoot":"","sources":["../../../src/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuB9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAE9F,KAAK,2CAA2C,GAAG;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAaF,eAAO,MAAM,qCAAqC,qBAC9B,2CAA2C,UACrD,aAAa,KACpB,OAAO,CAAC,8BAA8B,CA4KxC,CAAC"}
@@ -1,5 +1,5 @@
1
- const require_package = require('./package-Dr7v4vXa.cjs.js');
2
- const require_registerEvmNetworkProviderBuilder = require('./registerEvmNetworkProviderBuilder-CQfGsiEJ.cjs.js');
1
+ const require_createPublicClientFromNetworkData = require('./createPublicClientFromNetworkData-Cfvulgk2.cjs.js');
2
+ const require_evmTransferAmount = require('./evmTransferAmount-BMchv2Ja.cjs.js');
3
3
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
4
4
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
5
5
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
@@ -110,6 +110,7 @@ const createWalletProviderFromEIP155Session = async ({ sessionTopic }, client) =
110
110
  get events() {
111
111
  return getEventEmitter();
112
112
  },
113
+ executeCheckoutTransaction: (args) => require_evmTransferAmount.evmExecuteCheckoutTransaction(args, client),
113
114
  formatWalletAddress,
114
115
  getActiveNetworkId,
115
116
  getConnectedAddresses,
@@ -125,6 +126,7 @@ const createWalletProviderFromEIP155Session = async ({ sessionTopic }, client) =
125
126
  signMessage,
126
127
  switchActiveNetwork,
127
128
  terminate,
129
+ transferAmount: (args) => require_evmTransferAmount.evmTransferAmount(args, client),
128
130
  walletProviderType
129
131
  };
130
132
  };
@@ -155,7 +157,7 @@ const WALLET_CONNECT_EVM_EXTENSION_KEY = "walletConnectEvm";
155
157
  const addWalletConnectEvmExtension = async (client = (0, _dynamic_labs_sdk_client.getDefaultClient)()) => {
156
158
  if ((0, _dynamic_labs_sdk_client.hasExtension)({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client)) return;
157
159
  (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client);
158
- require_registerEvmNetworkProviderBuilder.registerEvmNetworkProviderBuilder(client);
160
+ require_evmTransferAmount.registerEvmNetworkProviderBuilder(client);
159
161
  await recoverEvmWalletConnectWalletProviders(client);
160
162
  };
161
163
 
@@ -314,7 +316,7 @@ const connectWithWalletConnectEvm = async ({ addToDynamicWalletAccounts = true }
314
316
 
315
317
  //#endregion
316
318
  //#region src/exports/walletConnect.ts
317
- (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_package.name, require_package.version);
319
+ (0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_createPublicClientFromNetworkData.name, require_createPublicClientFromNetworkData.version);
318
320
 
319
321
  //#endregion
320
322
  exports.addWalletConnectEvmExtension = addWalletConnectEvmExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"walletConnect.cjs.js","names":["methodsThatRequireUserAction: string[]","SessionClosedUnexpectedlyError","WalletProviderEnum","getActiveNetworkId: WalletConnectEvmWalletProvider['getActiveNetworkId']","switchActiveNetwork: WalletConnectEvmWalletProvider['switchActiveNetwork']","request: WalletConnectEvmWalletProvider['request']","disconnect: NonNullable<\n WalletConnectEvmWalletProvider['disconnect']\n >","SDK_ERRORS","disconnectWalletAccount: WalletConnectEvmWalletProvider['disconnectWalletAccount']","signMessage: WalletConnectEvmWalletProvider['signMessage']","getConnectedAddresses: WalletConnectEvmWalletProvider['getConnectedAddresses']","formatWalletAddress: WalletConnectEvmWalletProvider['formatWalletAddress']","viemGetAddress","terminate: WalletConnectEvmWalletProvider['terminate']","WalletProviderPriority","CHAINS_INFO_MAP","packageName","packageVersion"],"sources":["../src/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.ts","../src/walletConnect/recoverEvmWalletConnectWalletProviders/recoverEvmWalletConnectWalletProviders.ts","../src/walletConnect/addWalletConnectEvmExtension/addWalletConnectEvmExtension.ts","../src/walletConnect/consts.ts","../src/walletConnect/connectAndVerifyWithWalletConnectEvm/connectAndVerifyWithWalletConnectEvm.ts","../src/walletConnect/connectWithWalletConnectEvm/connectWithWalletConnectEvm.ts","../src/exports/walletConnect.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n emitEvent,\n filterDuplicates,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getWalletProviderRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { SessionClosedUnexpectedlyError } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n createWalletConnectSessionEventEmitter,\n getSignClient,\n splitCaip10Token,\n} from '@dynamic-labs-sdk/wallet-connect/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { SDK_ERRORS } from '@walletconnect/utils';\nimport { getAddress as viemGetAddress } from 'viem';\n\nimport type { evmMethods } from '../consts';\nimport type { WalletConnectEvmWalletProvider } from '../walletConnectEvmWalletProvider.types';\n\ntype CreateWalletProviderFromEIP155SessionParams = {\n sessionTopic: string;\n};\n\n/**\n * The list of ethereum request methods that require user action.\n * We will raise a user action requested event for these methods.\n */\nconst methodsThatRequireUserAction: string[] = [\n 'personal_sign',\n 'eth_sendTransaction',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v4',\n] satisfies (typeof evmMethods)[number][];\n\nexport const createWalletProviderFromEIP155Session = async (\n { sessionTopic }: CreateWalletProviderFromEIP155SessionParams,\n client: DynamicClient\n): Promise<WalletConnectEvmWalletProvider> => {\n const signClient = await getSignClient(client);\n\n const getSession = () => {\n const session = signClient.session.get(sessionTopic);\n\n if (!session) {\n void disconnect();\n\n throw new SessionClosedUnexpectedlyError({\n sessionTopic,\n walletDisplayName: displayName,\n });\n }\n\n return session;\n };\n\n const displayName = getSession().peer.metadata.name;\n\n const namespaceKey = 'eip155';\n\n const walletProviderType = WalletProviderEnum.WalletConnect;\n\n const key = formatWalletProviderKey({\n chain: 'EVM',\n displayName,\n suffix: sessionTopic,\n walletProviderType,\n });\n\n const getActiveNetworkId: WalletConnectEvmWalletProvider['getActiveNetworkId'] =\n async () => {\n // Assert the session is still valid\n getSession();\n\n return await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n };\n\n const switchActiveNetwork: WalletConnectEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n // Assert the session is still valid\n getSession();\n\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const request: WalletConnectEvmWalletProvider['request'] = async (args) => {\n const { networkId } = await getActiveNetworkId();\n\n const session = getSession();\n\n if (methodsThatRequireUserAction.includes(args.method)) {\n emitEvent(\n {\n args: {\n walletMetadata: session.peer.metadata,\n walletProviderKey: key,\n },\n event: 'walletConnectUserActionRequested',\n },\n client\n );\n }\n\n return signClient.request({\n // signClient expects the chainId to be in CAIP-2 format \"eip155:<networkId>\"\n chainId: `${namespaceKey}:${networkId}`,\n request: args,\n topic: sessionTopic,\n });\n };\n\n const disconnect: NonNullable<\n WalletConnectEvmWalletProvider['disconnect']\n > = async () => {\n await signClient.disconnect({\n reason: SDK_ERRORS.USER_DISCONNECTED,\n topic: sessionTopic,\n });\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n walletProviderRegistry.unregister(key);\n };\n\n /**\n * We actually clear up the entire WC session and its wallet provider\n */\n const disconnectWalletAccount: WalletConnectEvmWalletProvider['disconnectWalletAccount'] =\n async () => disconnect();\n\n const signMessage: WalletConnectEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const requestPromise = request<string>({\n method: 'personal_sign',\n params,\n });\n\n const signature = await requestPromise;\n\n return { signature };\n };\n\n const getConnectedAddresses: WalletConnectEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = filterDuplicates(\n getSession().namespaces[namespaceKey].accounts.map(\n (account) => splitCaip10Token(account).address\n )\n ).map((address) => viemGetAddress(address));\n\n return { addresses };\n };\n\n const formatWalletAddress: WalletConnectEvmWalletProvider['formatWalletAddress'] =\n ({ address }) => viemGetAddress(address);\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletConnectSessionEventEmitter({\n formatAddress: viemGetAddress,\n getSession,\n namespaceKey,\n sessionTopic,\n signClient,\n });\n\n const terminate: WalletConnectEvmWalletProvider['terminate'] = async () =>\n cleanupEventEmitter();\n\n return {\n chain: 'EVM',\n disconnect,\n disconnectWalletAccount,\n get events() {\n return getEventEmitter();\n },\n formatWalletAddress,\n getActiveNetworkId,\n getConnectedAddresses,\n getSession,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: {\n displayName,\n icon: getSession().peer.metadata.icons[0],\n },\n namespaceKey,\n request,\n signMessage,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n};\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n waitForProjectSettings,\n} from '@dynamic-labs-sdk/client/core';\nimport { getSignClient } from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\nexport const recoverEvmWalletConnectWalletProviders = async (\n client: DynamicClient\n) => {\n await waitForProjectSettings(client);\n\n const signClient = await getSignClient(client);\n\n /**\n * Recreate the wallet providers for all existing EVM sessions\n */\n const sessions = signClient.session.getAll();\n\n const currentTime = Math.floor(Date.now() / 1000);\n\n for (const session of sessions) {\n if (!('eip155' in session.namespaces)) {\n continue;\n }\n\n if (session.expiry <= currentTime) {\n continue;\n }\n\n const walletProvider = await createWalletProviderFromEIP155Session(\n {\n sessionTopic: session.topic,\n },\n client\n );\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n }\n};\n","import { getDefaultClient, hasExtension } from '@dynamic-labs-sdk/client';\nimport { registerExtension } from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { recoverEvmWalletConnectWalletProviders } from '../recoverEvmWalletConnectWalletProviders';\n\nexport const WALLET_CONNECT_EVM_EXTENSION_KEY = 'walletConnectEvm';\n\nexport const addWalletConnectEvmExtension = async (\n client = getDefaultClient()\n) => {\n if (\n hasExtension({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n await recoverEvmWalletConnectWalletProviders(client);\n};\n","import { CHAINS_INFO_MAP } from '@dynamic-labs-sdk/client/core';\n\nexport const evmApiChainName = CHAINS_INFO_MAP.EVM.apiChainName;\n\n/**\n * List of methods that may be requested from EVM wallet applications.\n *\n * Source: https://github.com/WalletConnect/walletconnect-monorepo/blob/v2.0/providers/ethereum-provider/src/EthereumProvider.ts\n */\nexport const evmMethods = [\n 'personal_sign',\n 'eth_sendTransaction',\n 'eth_accounts',\n 'eth_requestAccounts',\n 'eth_call',\n 'eth_getBalance',\n 'eth_sendRawTransaction',\n 'eth_sign',\n 'eth_signTransaction',\n 'eth_signTypedData',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v3',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v4',\n 'wallet_switchEthereumChain',\n 'wallet_addEthereumChain',\n 'wallet_getPermissions',\n 'wallet_requestPermissions',\n 'wallet_registerOnboarding',\n 'wallet_watchAsset',\n 'wallet_scanQRCode',\n 'wallet_sendCalls',\n 'wallet_getCapabilities',\n 'wallet_getCallsStatus',\n 'wallet_showCallsStatus',\n] as const;\n","import {\n assertDefined,\n createSignInMessageStatement,\n getCore,\n getDefaultClient,\n getNonce,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WalletConnectConnectionResult } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n getSignClient,\n importWalletConnectAuthResponse,\n} from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { evmApiChainName, evmMethods } from '../consts';\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\n/**\n * Connects to a WalletConnect EVM wallet and verifies ownership through message signing.\n *\n * This function combines wallet connection and verification in a single step,\n * requiring the user to sign a message to prove wallet ownership before\n * the wallet account is added to their profile.\n *\n * If the wallet app does not support the WalletConnect authenticate method,\n * this prompts for connection and then verification as 2 separate steps.\n *\n * @see WalletConnect's docs on [session authentication](https://docs.reown.com/advanced/api/sign/dapp-usage#session-authenticate-with-recaps)\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the connected and verified wallet account.\n */\nexport const connectAndVerifyWithWalletConnectEvm = async (\n client = getDefaultClient()\n): Promise<WalletConnectConnectionResult> => {\n const signClient = await getSignClient(client);\n const core = getCore(client);\n\n const universalLink = core.metadata?.universalLink;\n\n assertDefined(universalLink, 'Universal link is not set');\n\n const url = new URL(universalLink);\n\n assertDefined(client.projectSettings, 'Project settings unavailable');\n\n /**\n * Customer enabled networks, with mainnet first if available.\n */\n const evmNetworks = client.projectSettings.networks\n ?.find((network) => network.chainName === evmApiChainName)\n ?.networks?.sort((a, b) => {\n if (a.networkId === '1') return -1;\n if (b.networkId === '1') return 1;\n\n return 0;\n });\n\n assertDefined(evmNetworks, 'EVM networks not found');\n\n const caip2Networks = evmNetworks.map(\n (network) => `eip155:${network.networkId}`\n );\n\n /**\n * WalletConnect formats its own message for SIWE, so we need to provide the fields.\n * We later reconstruct what that message was so we can verify the signature in backend.\n */\n const nonce = await getNonce(client);\n\n /**\n * A WalletConnect connection request generates a URI and a promise.\n *\n * The URI must be handed to an external wallet application that will use it\n * to establish a connection via a WalletConnect relay server. Typically, this\n * is done by scanning a QR code or deep linking to the wallet application.\n *\n * The promise will resolve when the connection is established.\n */\n const { uri, response } = await signClient.authenticate({\n chainId: evmNetworks[0].networkId,\n chains: caip2Networks,\n domain: url.host,\n iat: new Date().toISOString(),\n methods: evmMethods as unknown as string[],\n nonce,\n requestId: core.environmentId,\n statement: createSignInMessageStatement(client),\n uri: url.toString(),\n });\n\n assertDefined(\n uri,\n 'Failed to establish WalletConnect session: no URI returned'\n );\n\n /**\n * Once the approval promise resolves, the WalletConnect session is established\n * between the wallet application and the dapp (this app).\n */\n const walletAccountsPromise = response().then((authResponse) =>\n importWalletConnectAuthResponse(\n {\n authResponse,\n chain: 'EVM',\n walletProviderBuilder: createWalletProviderFromEIP155Session,\n },\n client\n )\n );\n\n return { approval: () => walletAccountsPromise, uri };\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WalletConnectConnectionResult } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n getSignClient,\n importWalletConnectSession,\n} from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { evmApiChainName, evmMethods } from '../consts';\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\ntype ConnectWithWalletConnectEvmParams = {\n /**\n * Whether this session's wallet accounts should be added to the dynamic's wallet accounts.\n */\n addToDynamicWalletAccounts?: boolean;\n};\n\nexport const connectWithWalletConnectEvm = async (\n { addToDynamicWalletAccounts = true }: ConnectWithWalletConnectEvmParams = {},\n client = getDefaultClient()\n): Promise<WalletConnectConnectionResult> => {\n const signClient = await getSignClient(client);\n\n assertDefined(client.projectSettings, 'Project settings unavailable');\n\n const evmNetworks = client.projectSettings.networks?.find(\n (network) => network.chainName === evmApiChainName\n )?.networks;\n\n assertDefined(evmNetworks, 'EVM networks not found');\n\n const walletConnectChains = evmNetworks.map(\n (network) => `eip155:${network.networkId}`\n );\n\n /**\n * A WalletConnect connection request generates a URI and a promise.\n *\n * The URI must be handed to an external wallet application that will use it\n * to establish a connection via a WalletConnect relay server. Typically, this\n * is done by scanning a QR code or deep linking to the wallet application.\n *\n * The promise will resolve when the connection is established.\n */\n const { approval, uri } = await signClient.connect({\n optionalNamespaces: {\n eip155: {\n chains: walletConnectChains,\n events: ['accountsChanged', 'chainChanged', 'disconnected'],\n methods: evmMethods as unknown as string[],\n },\n },\n });\n\n assertDefined(\n uri,\n 'Failed to establish WalletConnect session: no URI returned'\n );\n\n /**\n * Once the approval promise resolves, the WalletConnect session is established\n * between the wallet application and the dapp (this app).\n */\n const walletAccountsPromise = approval().then(async (session) => {\n assertDefined(\n session.namespaces.eip155,\n `WalletConnect session did not establish an EIP155 connection. Found instead: ${Object.keys(\n session.namespaces\n ).join(', ')}`\n );\n\n return importWalletConnectSession(\n {\n addToDynamicWalletAccounts,\n sessionTopic: session.topic,\n walletProviderBuilder: createWalletProviderFromEIP155Session,\n },\n client\n );\n });\n\n return { approval: () => walletAccountsPromise, uri };\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addWalletConnectEvmExtension } from '../walletConnect/addWalletConnectEvmExtension';\nexport { connectAndVerifyWithWalletConnectEvm } from '../walletConnect/connectAndVerifyWithWalletConnectEvm';\nexport { connectWithWalletConnectEvm } from '../walletConnect/connectWithWalletConnectEvm';\nexport type { WalletConnectEvmWalletProvider } from '../walletConnect/walletConnectEvmWalletProvider.types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"walletConnect.cjs.js","names":["methodsThatRequireUserAction: string[]","SessionClosedUnexpectedlyError","WalletProviderEnum","getActiveNetworkId: WalletConnectEvmWalletProvider['getActiveNetworkId']","switchActiveNetwork: WalletConnectEvmWalletProvider['switchActiveNetwork']","request: WalletConnectEvmWalletProvider['request']","disconnect: NonNullable<\n WalletConnectEvmWalletProvider['disconnect']\n >","SDK_ERRORS","disconnectWalletAccount: WalletConnectEvmWalletProvider['disconnectWalletAccount']","signMessage: WalletConnectEvmWalletProvider['signMessage']","getConnectedAddresses: WalletConnectEvmWalletProvider['getConnectedAddresses']","formatWalletAddress: WalletConnectEvmWalletProvider['formatWalletAddress']","viemGetAddress","terminate: WalletConnectEvmWalletProvider['terminate']","evmExecuteCheckoutTransaction","evmTransferAmount","WalletProviderPriority","CHAINS_INFO_MAP","packageName","packageVersion"],"sources":["../src/walletConnect/createWalletProviderFromEIP155Session/createWalletProviderFromEIP155Session.ts","../src/walletConnect/recoverEvmWalletConnectWalletProviders/recoverEvmWalletConnectWalletProviders.ts","../src/walletConnect/addWalletConnectEvmExtension/addWalletConnectEvmExtension.ts","../src/walletConnect/consts.ts","../src/walletConnect/connectAndVerifyWithWalletConnectEvm/connectAndVerifyWithWalletConnectEvm.ts","../src/walletConnect/connectWithWalletConnectEvm/connectWithWalletConnectEvm.ts","../src/exports/walletConnect.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n emitEvent,\n filterDuplicates,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getWalletProviderRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { SessionClosedUnexpectedlyError } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n createWalletConnectSessionEventEmitter,\n getSignClient,\n splitCaip10Token,\n} from '@dynamic-labs-sdk/wallet-connect/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { SDK_ERRORS } from '@walletconnect/utils';\nimport { getAddress as viemGetAddress } from 'viem';\n\nimport { evmExecuteCheckoutTransaction } from '../../utils/evmExecuteCheckoutTransaction';\nimport { evmTransferAmount } from '../../utils/evmTransferAmount';\nimport type { evmMethods } from '../consts';\nimport type { WalletConnectEvmWalletProvider } from '../walletConnectEvmWalletProvider.types';\n\ntype CreateWalletProviderFromEIP155SessionParams = {\n sessionTopic: string;\n};\n\n/**\n * The list of ethereum request methods that require user action.\n * We will raise a user action requested event for these methods.\n */\nconst methodsThatRequireUserAction: string[] = [\n 'personal_sign',\n 'eth_sendTransaction',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v4',\n] satisfies (typeof evmMethods)[number][];\n\nexport const createWalletProviderFromEIP155Session = async (\n { sessionTopic }: CreateWalletProviderFromEIP155SessionParams,\n client: DynamicClient\n): Promise<WalletConnectEvmWalletProvider> => {\n const signClient = await getSignClient(client);\n\n const getSession = () => {\n const session = signClient.session.get(sessionTopic);\n\n if (!session) {\n void disconnect();\n\n throw new SessionClosedUnexpectedlyError({\n sessionTopic,\n walletDisplayName: displayName,\n });\n }\n\n return session;\n };\n\n const displayName = getSession().peer.metadata.name;\n\n const namespaceKey = 'eip155';\n\n const walletProviderType = WalletProviderEnum.WalletConnect;\n\n const key = formatWalletProviderKey({\n chain: 'EVM',\n displayName,\n suffix: sessionTopic,\n walletProviderType,\n });\n\n const getActiveNetworkId: WalletConnectEvmWalletProvider['getActiveNetworkId'] =\n async () => {\n // Assert the session is still valid\n getSession();\n\n return await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n };\n\n const switchActiveNetwork: WalletConnectEvmWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n // Assert the session is still valid\n getSession();\n\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const request: WalletConnectEvmWalletProvider['request'] = async (args) => {\n const { networkId } = await getActiveNetworkId();\n\n const session = getSession();\n\n if (methodsThatRequireUserAction.includes(args.method)) {\n emitEvent(\n {\n args: {\n walletMetadata: session.peer.metadata,\n walletProviderKey: key,\n },\n event: 'walletConnectUserActionRequested',\n },\n client\n );\n }\n\n return signClient.request({\n // signClient expects the chainId to be in CAIP-2 format \"eip155:<networkId>\"\n chainId: `${namespaceKey}:${networkId}`,\n request: args,\n topic: sessionTopic,\n });\n };\n\n const disconnect: NonNullable<\n WalletConnectEvmWalletProvider['disconnect']\n > = async () => {\n await signClient.disconnect({\n reason: SDK_ERRORS.USER_DISCONNECTED,\n topic: sessionTopic,\n });\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n walletProviderRegistry.unregister(key);\n };\n\n /**\n * We actually clear up the entire WC session and its wallet provider\n */\n const disconnectWalletAccount: WalletConnectEvmWalletProvider['disconnectWalletAccount'] =\n async () => disconnect();\n\n const signMessage: WalletConnectEvmWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const params = [message];\n\n if (walletAccount) {\n params.push(walletAccount.address);\n }\n\n const requestPromise = request<string>({\n method: 'personal_sign',\n params,\n });\n\n const signature = await requestPromise;\n\n return { signature };\n };\n\n const getConnectedAddresses: WalletConnectEvmWalletProvider['getConnectedAddresses'] =\n async () => {\n const addresses = filterDuplicates(\n getSession().namespaces[namespaceKey].accounts.map(\n (account) => splitCaip10Token(account).address\n )\n ).map((address) => viemGetAddress(address));\n\n return { addresses };\n };\n\n const formatWalletAddress: WalletConnectEvmWalletProvider['formatWalletAddress'] =\n ({ address }) => viemGetAddress(address);\n\n const { cleanupEventEmitter, getEventEmitter } =\n createWalletConnectSessionEventEmitter({\n formatAddress: viemGetAddress,\n getSession,\n namespaceKey,\n sessionTopic,\n signClient,\n });\n\n const terminate: WalletConnectEvmWalletProvider['terminate'] = async () =>\n cleanupEventEmitter();\n\n return {\n chain: 'EVM',\n disconnect,\n disconnectWalletAccount,\n get events() {\n return getEventEmitter();\n },\n executeCheckoutTransaction: (args) =>\n evmExecuteCheckoutTransaction(args, client),\n formatWalletAddress,\n getActiveNetworkId,\n getConnectedAddresses,\n getSession,\n groupKey: formatWalletProviderGroupKey(displayName),\n key,\n metadata: {\n displayName,\n icon: getSession().peer.metadata.icons[0],\n },\n namespaceKey,\n request,\n signMessage,\n switchActiveNetwork,\n terminate,\n transferAmount: (args) => evmTransferAmount(args, client),\n walletProviderType,\n };\n};\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n WalletProviderPriority,\n getWalletProviderRegistry,\n waitForProjectSettings,\n} from '@dynamic-labs-sdk/client/core';\nimport { getSignClient } from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\nexport const recoverEvmWalletConnectWalletProviders = async (\n client: DynamicClient\n) => {\n await waitForProjectSettings(client);\n\n const signClient = await getSignClient(client);\n\n /**\n * Recreate the wallet providers for all existing EVM sessions\n */\n const sessions = signClient.session.getAll();\n\n const currentTime = Math.floor(Date.now() / 1000);\n\n for (const session of sessions) {\n if (!('eip155' in session.namespaces)) {\n continue;\n }\n\n if (session.expiry <= currentTime) {\n continue;\n }\n\n const walletProvider = await createWalletProviderFromEIP155Session(\n {\n sessionTopic: session.topic,\n },\n client\n );\n\n getWalletProviderRegistry(client).register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n }\n};\n","import { getDefaultClient, hasExtension } from '@dynamic-labs-sdk/client';\nimport { registerExtension } from '@dynamic-labs-sdk/client/core';\n\nimport { registerEvmNetworkProviderBuilder } from '../../registerEvmNetworkProviderBuilder';\nimport { recoverEvmWalletConnectWalletProviders } from '../recoverEvmWalletConnectWalletProviders';\n\nexport const WALLET_CONNECT_EVM_EXTENSION_KEY = 'walletConnectEvm';\n\nexport const addWalletConnectEvmExtension = async (\n client = getDefaultClient()\n) => {\n if (\n hasExtension({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client)\n ) {\n return;\n }\n\n registerExtension({ extensionKey: WALLET_CONNECT_EVM_EXTENSION_KEY }, client);\n registerEvmNetworkProviderBuilder(client);\n\n await recoverEvmWalletConnectWalletProviders(client);\n};\n","import { CHAINS_INFO_MAP } from '@dynamic-labs-sdk/client/core';\n\nexport const evmApiChainName = CHAINS_INFO_MAP.EVM.apiChainName;\n\n/**\n * List of methods that may be requested from EVM wallet applications.\n *\n * Source: https://github.com/WalletConnect/walletconnect-monorepo/blob/v2.0/providers/ethereum-provider/src/EthereumProvider.ts\n */\nexport const evmMethods = [\n 'personal_sign',\n 'eth_sendTransaction',\n 'eth_accounts',\n 'eth_requestAccounts',\n 'eth_call',\n 'eth_getBalance',\n 'eth_sendRawTransaction',\n 'eth_sign',\n 'eth_signTransaction',\n 'eth_signTypedData',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v3',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n 'eth_signTypedData_v4',\n 'wallet_switchEthereumChain',\n 'wallet_addEthereumChain',\n 'wallet_getPermissions',\n 'wallet_requestPermissions',\n 'wallet_registerOnboarding',\n 'wallet_watchAsset',\n 'wallet_scanQRCode',\n 'wallet_sendCalls',\n 'wallet_getCapabilities',\n 'wallet_getCallsStatus',\n 'wallet_showCallsStatus',\n] as const;\n","import {\n assertDefined,\n createSignInMessageStatement,\n getCore,\n getDefaultClient,\n getNonce,\n} from '@dynamic-labs-sdk/client/core';\nimport type { WalletConnectConnectionResult } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n getSignClient,\n importWalletConnectAuthResponse,\n} from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { evmApiChainName, evmMethods } from '../consts';\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\n/**\n * Connects to a WalletConnect EVM wallet and verifies ownership through message signing.\n *\n * This function combines wallet connection and verification in a single step,\n * requiring the user to sign a message to prove wallet ownership before\n * the wallet account is added to their profile.\n *\n * If the wallet app does not support the WalletConnect authenticate method,\n * this prompts for connection and then verification as 2 separate steps.\n *\n * @see WalletConnect's docs on [session authentication](https://docs.reown.com/advanced/api/sign/dapp-usage#session-authenticate-with-recaps)\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the connected and verified wallet account.\n */\nexport const connectAndVerifyWithWalletConnectEvm = async (\n client = getDefaultClient()\n): Promise<WalletConnectConnectionResult> => {\n const signClient = await getSignClient(client);\n const core = getCore(client);\n\n const universalLink = core.metadata?.universalLink;\n\n assertDefined(universalLink, 'Universal link is not set');\n\n const url = new URL(universalLink);\n\n assertDefined(client.projectSettings, 'Project settings unavailable');\n\n /**\n * Customer enabled networks, with mainnet first if available.\n */\n const evmNetworks = client.projectSettings.networks\n ?.find((network) => network.chainName === evmApiChainName)\n ?.networks?.sort((a, b) => {\n if (a.networkId === '1') return -1;\n if (b.networkId === '1') return 1;\n\n return 0;\n });\n\n assertDefined(evmNetworks, 'EVM networks not found');\n\n const caip2Networks = evmNetworks.map(\n (network) => `eip155:${network.networkId}`\n );\n\n /**\n * WalletConnect formats its own message for SIWE, so we need to provide the fields.\n * We later reconstruct what that message was so we can verify the signature in backend.\n */\n const nonce = await getNonce(client);\n\n /**\n * A WalletConnect connection request generates a URI and a promise.\n *\n * The URI must be handed to an external wallet application that will use it\n * to establish a connection via a WalletConnect relay server. Typically, this\n * is done by scanning a QR code or deep linking to the wallet application.\n *\n * The promise will resolve when the connection is established.\n */\n const { uri, response } = await signClient.authenticate({\n chainId: evmNetworks[0].networkId,\n chains: caip2Networks,\n domain: url.host,\n iat: new Date().toISOString(),\n methods: evmMethods as unknown as string[],\n nonce,\n requestId: core.environmentId,\n statement: createSignInMessageStatement(client),\n uri: url.toString(),\n });\n\n assertDefined(\n uri,\n 'Failed to establish WalletConnect session: no URI returned'\n );\n\n /**\n * Once the approval promise resolves, the WalletConnect session is established\n * between the wallet application and the dapp (this app).\n */\n const walletAccountsPromise = response().then((authResponse) =>\n importWalletConnectAuthResponse(\n {\n authResponse,\n chain: 'EVM',\n walletProviderBuilder: createWalletProviderFromEIP155Session,\n },\n client\n )\n );\n\n return { approval: () => walletAccountsPromise, uri };\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WalletConnectConnectionResult } from '@dynamic-labs-sdk/wallet-connect';\nimport {\n getSignClient,\n importWalletConnectSession,\n} from '@dynamic-labs-sdk/wallet-connect/core';\n\nimport { evmApiChainName, evmMethods } from '../consts';\nimport { createWalletProviderFromEIP155Session } from '../createWalletProviderFromEIP155Session';\n\ntype ConnectWithWalletConnectEvmParams = {\n /**\n * Whether this session's wallet accounts should be added to the dynamic's wallet accounts.\n */\n addToDynamicWalletAccounts?: boolean;\n};\n\nexport const connectWithWalletConnectEvm = async (\n { addToDynamicWalletAccounts = true }: ConnectWithWalletConnectEvmParams = {},\n client = getDefaultClient()\n): Promise<WalletConnectConnectionResult> => {\n const signClient = await getSignClient(client);\n\n assertDefined(client.projectSettings, 'Project settings unavailable');\n\n const evmNetworks = client.projectSettings.networks?.find(\n (network) => network.chainName === evmApiChainName\n )?.networks;\n\n assertDefined(evmNetworks, 'EVM networks not found');\n\n const walletConnectChains = evmNetworks.map(\n (network) => `eip155:${network.networkId}`\n );\n\n /**\n * A WalletConnect connection request generates a URI and a promise.\n *\n * The URI must be handed to an external wallet application that will use it\n * to establish a connection via a WalletConnect relay server. Typically, this\n * is done by scanning a QR code or deep linking to the wallet application.\n *\n * The promise will resolve when the connection is established.\n */\n const { approval, uri } = await signClient.connect({\n optionalNamespaces: {\n eip155: {\n chains: walletConnectChains,\n events: ['accountsChanged', 'chainChanged', 'disconnected'],\n methods: evmMethods as unknown as string[],\n },\n },\n });\n\n assertDefined(\n uri,\n 'Failed to establish WalletConnect session: no URI returned'\n );\n\n /**\n * Once the approval promise resolves, the WalletConnect session is established\n * between the wallet application and the dapp (this app).\n */\n const walletAccountsPromise = approval().then(async (session) => {\n assertDefined(\n session.namespaces.eip155,\n `WalletConnect session did not establish an EIP155 connection. Found instead: ${Object.keys(\n session.namespaces\n ).join(', ')}`\n );\n\n return importWalletConnectSession(\n {\n addToDynamicWalletAccounts,\n sessionTopic: session.topic,\n walletProviderBuilder: createWalletProviderFromEIP155Session,\n },\n client\n );\n });\n\n return { approval: () => walletAccountsPromise, uri };\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addWalletConnectEvmExtension } from '../walletConnect/addWalletConnectEvmExtension';\nexport { connectAndVerifyWithWalletConnectEvm } from '../walletConnect/connectAndVerifyWithWalletConnectEvm';\nexport { connectWithWalletConnectEvm } from '../walletConnect/connectWithWalletConnectEvm';\nexport type { WalletConnectEvmWalletProvider } from '../walletConnect/walletConnectEvmWalletProvider.types';\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { n as version, t as name } from "./package-CjX-8h5P.esm.js";
2
- import { t as registerEvmNetworkProviderBuilder } from "./registerEvmNetworkProviderBuilder-Cn6YtnaH.esm.js";
1
+ import { a as version, i as name } from "./createPublicClientFromNetworkData-Di-TkbXo.esm.js";
2
+ import { i as registerEvmNetworkProviderBuilder, n as evmExecuteCheckoutTransaction, t as evmTransferAmount } from "./evmTransferAmount-DVCD8zPf.esm.js";
3
3
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
4
4
  import { CHAINS_INFO_MAP, WalletProviderPriority, assertDefined, createSignInMessageStatement, emitEvent, filterDuplicates, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getCore, getDefaultClient, getNonce, getWalletProviderRegistry, registerExtension, switchActiveNetworkInLastKnownRegistry, waitForProjectSettings } from "@dynamic-labs-sdk/client/core";
5
5
  import { getDefaultClient as getDefaultClient$1, hasExtension as hasExtension$1 } from "@dynamic-labs-sdk/client";
@@ -110,6 +110,7 @@ const createWalletProviderFromEIP155Session = async ({ sessionTopic }, client) =
110
110
  get events() {
111
111
  return getEventEmitter();
112
112
  },
113
+ executeCheckoutTransaction: (args) => evmExecuteCheckoutTransaction(args, client),
113
114
  formatWalletAddress,
114
115
  getActiveNetworkId,
115
116
  getConnectedAddresses,
@@ -125,6 +126,7 @@ const createWalletProviderFromEIP155Session = async ({ sessionTopic }, client) =
125
126
  signMessage,
126
127
  switchActiveNetwork,
127
128
  terminate,
129
+ transferAmount: (args) => evmTransferAmount(args, client),
128
130
  walletProviderType
129
131
  };
130
132
  };