@coinbase/cdp-sdk 1.17.0 → 1.18.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 (29) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/accounts/evm/resolveViemClients.js +204 -0
  3. package/_cjs/accounts/evm/resolveViemClients.js.map +1 -0
  4. package/_cjs/accounts/evm/toEvmServerAccount.js +1 -1
  5. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  6. package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js +32 -1
  7. package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
  8. package/_cjs/version.js +1 -1
  9. package/_esm/accounts/evm/resolveViemClients.js +168 -0
  10. package/_esm/accounts/evm/resolveViemClients.js.map +1 -0
  11. package/_esm/accounts/evm/toEvmServerAccount.js +1 -1
  12. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  13. package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js +32 -1
  14. package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
  15. package/_esm/version.js +1 -1
  16. package/_types/accounts/evm/resolveViemClients.d.ts +47 -0
  17. package/_types/accounts/evm/resolveViemClients.d.ts.map +1 -0
  18. package/_types/accounts/evm/toNetworkScopedEvmServerAccount.d.ts +1 -1
  19. package/_types/accounts/evm/toNetworkScopedEvmServerAccount.d.ts.map +1 -1
  20. package/_types/accounts/evm/types.d.ts +11 -4
  21. package/_types/accounts/evm/types.d.ts.map +1 -1
  22. package/_types/policies/schema.d.ts +96 -96
  23. package/_types/version.d.ts +1 -1
  24. package/accounts/evm/resolveViemClients.ts +215 -0
  25. package/accounts/evm/toEvmServerAccount.ts +1 -1
  26. package/accounts/evm/toNetworkScopedEvmServerAccount.ts +43 -3
  27. package/accounts/evm/types.ts +24 -6
  28. package/package.json +1 -1
  29. package/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CDP SDK Changelog
2
2
 
3
+ ## 1.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#224](https://github.com/coinbase/cdp-sdk/pull/224) [`5d6e5a1`](https://github.com/coinbase/cdp-sdk/commit/5d6e5a164a23424444998cf51970836ee57ca659) Thanks [@0xRAG](https://github.com/0xRAG)! - Added useNetwork function on EvmServerAccount to enable node management and network hoisting
8
+
3
9
  ## 1.17.0
4
10
 
5
11
  ### Minor Changes
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveViemClients = resolveViemClients;
37
+ const viem_1 = require("viem");
38
+ const accounts_1 = require("viem/accounts");
39
+ const chains = __importStar(require("viem/chains"));
40
+ /**
41
+ * Network identifier to viem chain mapping
42
+ */
43
+ const NETWORK_TO_CHAIN_MAP = {
44
+ base: chains.base,
45
+ "base-sepolia": chains.baseSepolia,
46
+ ethereum: chains.mainnet,
47
+ "ethereum-sepolia": chains.sepolia,
48
+ polygon: chains.polygon,
49
+ "polygon-mumbai": chains.polygonMumbai,
50
+ arbitrum: chains.arbitrum,
51
+ "arbitrum-sepolia": chains.arbitrumSepolia,
52
+ optimism: chains.optimism,
53
+ "optimism-sepolia": chains.optimismSepolia,
54
+ };
55
+ /**
56
+ * Get a chain from the viem chains object
57
+ *
58
+ * @param id - The chain ID
59
+ * @returns The chain
60
+ */
61
+ function getChain(id) {
62
+ const chainList = Object.values(chains);
63
+ const found = chainList.find(chain => chain.id === id);
64
+ if (!found)
65
+ throw new Error(`Unsupported chain ID: ${id}`);
66
+ return found;
67
+ }
68
+ /**
69
+ * Determines if the input string is a network identifier or a Node URL
70
+ *
71
+ * @param input - The string to check
72
+ * @returns True if the input is a network identifier, false otherwise
73
+ */
74
+ function isNetworkIdentifier(input) {
75
+ const normalizedInput = input.toLowerCase();
76
+ return NETWORK_TO_CHAIN_MAP[normalizedInput] !== undefined;
77
+ }
78
+ /**
79
+ * Resolves a network identifier to a viem chain
80
+ *
81
+ * @param network - The network identifier to resolve
82
+ * @returns The resolved viem chain
83
+ */
84
+ function resolveNetworkToChain(network) {
85
+ const chain = NETWORK_TO_CHAIN_MAP[network.toLowerCase()];
86
+ if (!chain) {
87
+ throw new Error(`Unsupported network identifier: ${network}`);
88
+ }
89
+ return chain;
90
+ }
91
+ /**
92
+ * Resolves a Node URL to a viem chain by making a getChainId call
93
+ *
94
+ * @param nodeUrl - The Node URL to resolve
95
+ * @returns Promise resolving to the viem chain
96
+ */
97
+ async function resolveNodeUrlToChain(nodeUrl) {
98
+ // First validate that it's a proper URL
99
+ if (!isValidUrl(nodeUrl)) {
100
+ throw new Error(`Invalid URL format: ${nodeUrl}`);
101
+ }
102
+ // Create a temporary public client to get the chain ID
103
+ const tempPublicClient = (0, viem_1.createPublicClient)({
104
+ transport: (0, viem_1.http)(nodeUrl),
105
+ });
106
+ try {
107
+ const chainId = await tempPublicClient.getChainId();
108
+ const chain = getChain(Number(chainId));
109
+ return chain;
110
+ }
111
+ catch (error) {
112
+ throw new Error(`Failed to resolve chain ID from Node URL: ${error instanceof Error ? error.message : "Unknown error"}`);
113
+ }
114
+ }
115
+ /**
116
+ * Determines if the input string is a valid URL
117
+ *
118
+ * @param input - The string to validate as a URL
119
+ * @returns True if the input is a valid URL, false otherwise
120
+ */
121
+ function isValidUrl(input) {
122
+ try {
123
+ new URL(input);
124
+ return true;
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ /**
131
+ * Resolves viem clients based on a network identifier or Node URL.
132
+ *
133
+ * @param options - Configuration options
134
+ * @param options.networkOrNodeUrl - Either a network identifier (e.g., "base", "base-sepolia") or a full Node URL
135
+ * @param options.account - Optional account to use for the wallet client
136
+ * @returns Promise resolving to an object containing the chain, publicClient, and walletClient
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * // Using network identifier
141
+ * const clients = await resolveViemClients({
142
+ * networkOrNodeUrl: "base",
143
+ * account: myAccount
144
+ * });
145
+ *
146
+ * // Using Node URL
147
+ * const clients = await resolveViemClients({
148
+ * networkOrNodeUrl: "https://mainnet.base.org",
149
+ * account: myAccount
150
+ * });
151
+ * ```
152
+ */
153
+ async function resolveViemClients(options) {
154
+ const { networkOrNodeUrl } = options;
155
+ let chain;
156
+ // If it's a valid network identifier, use the mapping
157
+ if (isNetworkIdentifier(networkOrNodeUrl)) {
158
+ chain = resolveNetworkToChain(networkOrNodeUrl);
159
+ const publicClient = (0, viem_1.createPublicClient)({
160
+ chain,
161
+ transport: (0, viem_1.http)(),
162
+ });
163
+ const walletClient = (0, viem_1.createWalletClient)({
164
+ account: (0, accounts_1.toAccount)(options.account),
165
+ chain,
166
+ transport: (0, viem_1.http)(),
167
+ });
168
+ return {
169
+ chain,
170
+ publicClient,
171
+ walletClient,
172
+ };
173
+ }
174
+ // If it's not a valid network identifier, try to treat it as a Node URL
175
+ try {
176
+ chain = await resolveNodeUrlToChain(networkOrNodeUrl);
177
+ const publicClient = (0, viem_1.createPublicClient)({
178
+ chain,
179
+ transport: (0, viem_1.http)(networkOrNodeUrl),
180
+ });
181
+ const walletClient = (0, viem_1.createWalletClient)({
182
+ account: (0, accounts_1.toAccount)(options.account),
183
+ chain,
184
+ transport: (0, viem_1.http)(networkOrNodeUrl),
185
+ });
186
+ return {
187
+ chain,
188
+ publicClient,
189
+ walletClient,
190
+ };
191
+ }
192
+ catch (error) {
193
+ // If the error is from resolveNodeUrlToChain, re-throw it as-is
194
+ if (error instanceof Error &&
195
+ (error.message.includes("Invalid URL format") ||
196
+ error.message.includes("Unsupported chain ID") ||
197
+ error.message.includes("Failed to resolve chain ID"))) {
198
+ throw error;
199
+ }
200
+ // Otherwise, throw a generic error about unsupported input
201
+ throw new Error(`Unsupported network identifier or invalid Node URL: ${networkOrNodeUrl}`);
202
+ }
203
+ }
204
+ //# sourceMappingURL=resolveViemClients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveViemClients.js","sourceRoot":"","sources":["../../../accounts/evm/resolveViemClients.ts"],"names":[],"mappings":"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"}
@@ -110,7 +110,7 @@ function toEvmServerAccount(apiClient, options) {
110
110
  name: options.account.name,
111
111
  type: "evm-server",
112
112
  policies: options.account.policies,
113
- __experimental_useNetwork: async (networkOrRpcUrl) => {
113
+ useNetwork: async (networkOrRpcUrl) => {
114
114
  return (0, toNetworkScopedEvmServerAccount_js_1.toNetworkScopedEvmServerAccount)(apiClient, {
115
115
  account,
116
116
  network: networkOrRpcUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toNetworkScopedEvmServerAccount = toNetworkScopedEvmServerAccount;
4
+ const chains_1 = require("viem/chains");
5
+ const resolveViemClients_js_1 = require("./resolveViemClients.js");
4
6
  /**
5
7
  * Creates a Network-scoped Server-managed EvmAccount instance from an existing EvmAccount.
6
8
  * Use this to interact with previously deployed EvmAccounts on a specific network.
@@ -11,7 +13,12 @@ exports.toNetworkScopedEvmServerAccount = toNetworkScopedEvmServerAccount;
11
13
  * @param {string} options.network - The network to scope the account to.
12
14
  * @returns {NetworkScopedEvmServerAccount} A configured NetworkScopedEvmServerAccount instance ready for signing.
13
15
  */
14
- function toNetworkScopedEvmServerAccount(apiClient, options) {
16
+ async function toNetworkScopedEvmServerAccount(apiClient, options) {
17
+ const { publicClient, walletClient, chain } = await (0, resolveViemClients_js_1.resolveViemClients)({
18
+ networkOrNodeUrl: options.network,
19
+ account: options.account,
20
+ });
21
+ const shouldUseApi = chain.id === chains_1.base.id || chain.id === chains_1.baseSepolia.id;
15
22
  const account = {
16
23
  address: options.account.address,
17
24
  network: options.network,
@@ -22,6 +29,30 @@ function toNetworkScopedEvmServerAccount(apiClient, options) {
22
29
  name: options.account.name,
23
30
  type: "evm-server",
24
31
  policies: options.account.policies,
32
+ requestFaucet: async (faucetOptions) => {
33
+ if (chain.id !== chains_1.baseSepolia.id && chain.id !== chains_1.sepolia.id) {
34
+ throw new Error("Requesting a faucet is supported only on base-sepolia or ethereum-sepolia");
35
+ }
36
+ return options.account.requestFaucet({
37
+ ...faucetOptions,
38
+ network: chain.id === chains_1.baseSepolia.id ? "base-sepolia" : "ethereum-sepolia",
39
+ });
40
+ },
41
+ sendTransaction: async (txOpts) => {
42
+ if (shouldUseApi) {
43
+ return options.account.sendTransaction({
44
+ ...txOpts,
45
+ network: chain.id === chains_1.base.id ? "base" : "base-sepolia",
46
+ });
47
+ }
48
+ else {
49
+ const hash = await walletClient.sendTransaction(txOpts.transaction);
50
+ return { transactionHash: hash };
51
+ }
52
+ },
53
+ waitForTransactionReceipt: async (options) => {
54
+ return publicClient.waitForTransactionReceipt(options);
55
+ },
25
56
  };
26
57
  return account;
27
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":";;AAwBA,0EAiBC;AA3BD;;;;;;;;;GASG;AACH,SAAgB,+BAA+B,CAC7C,SAA+B,EAC/B,OAA+C;IAE/C,MAAM,OAAO,GAAkC;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;KACnC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":";;AA8BA,0EAmDC;AAhFD,wCAAyD;AAEzD,mEAA6D;AAiB7D;;;;;;;;;GASG;AACI,KAAK,UAAU,+BAA+B,CACnD,SAA+B,EAC/B,OAA+C;IAE/C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,0CAAkB,EAAC;QACrE,gBAAgB,EAAE,OAAO,CAAC,OAAO;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,KAAK,aAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,oBAAW,CAAC,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAkC;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;QAClC,aAAa,EAAE,KAAK,EAAE,aAAgE,EAAE,EAAE;YACxF,IAAI,KAAK,CAAC,EAAE,KAAK,oBAAW,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,gBAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBACnC,GAAG,aAAa;gBAChB,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,oBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB;aAC3E,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC9B,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;oBACrC,GAAG,MAAM;oBACT,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,aAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;iBACxD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,eAAe,CAC7C,MAAM,CAAC,WAAwC,CAChD,CAAC;gBACF,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,OAA4C,EAAE,EAAE;YAChF,OAAO,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/_cjs/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = "1.17.0";
4
+ exports.version = "1.18.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,168 @@
1
+ import { createPublicClient, createWalletClient, http, } from "viem";
2
+ import { toAccount } from "viem/accounts";
3
+ import * as chains from "viem/chains";
4
+ /**
5
+ * Network identifier to viem chain mapping
6
+ */
7
+ const NETWORK_TO_CHAIN_MAP = {
8
+ base: chains.base,
9
+ "base-sepolia": chains.baseSepolia,
10
+ ethereum: chains.mainnet,
11
+ "ethereum-sepolia": chains.sepolia,
12
+ polygon: chains.polygon,
13
+ "polygon-mumbai": chains.polygonMumbai,
14
+ arbitrum: chains.arbitrum,
15
+ "arbitrum-sepolia": chains.arbitrumSepolia,
16
+ optimism: chains.optimism,
17
+ "optimism-sepolia": chains.optimismSepolia,
18
+ };
19
+ /**
20
+ * Get a chain from the viem chains object
21
+ *
22
+ * @param id - The chain ID
23
+ * @returns The chain
24
+ */
25
+ function getChain(id) {
26
+ const chainList = Object.values(chains);
27
+ const found = chainList.find(chain => chain.id === id);
28
+ if (!found)
29
+ throw new Error(`Unsupported chain ID: ${id}`);
30
+ return found;
31
+ }
32
+ /**
33
+ * Determines if the input string is a network identifier or a Node URL
34
+ *
35
+ * @param input - The string to check
36
+ * @returns True if the input is a network identifier, false otherwise
37
+ */
38
+ function isNetworkIdentifier(input) {
39
+ const normalizedInput = input.toLowerCase();
40
+ return NETWORK_TO_CHAIN_MAP[normalizedInput] !== undefined;
41
+ }
42
+ /**
43
+ * Resolves a network identifier to a viem chain
44
+ *
45
+ * @param network - The network identifier to resolve
46
+ * @returns The resolved viem chain
47
+ */
48
+ function resolveNetworkToChain(network) {
49
+ const chain = NETWORK_TO_CHAIN_MAP[network.toLowerCase()];
50
+ if (!chain) {
51
+ throw new Error(`Unsupported network identifier: ${network}`);
52
+ }
53
+ return chain;
54
+ }
55
+ /**
56
+ * Resolves a Node URL to a viem chain by making a getChainId call
57
+ *
58
+ * @param nodeUrl - The Node URL to resolve
59
+ * @returns Promise resolving to the viem chain
60
+ */
61
+ async function resolveNodeUrlToChain(nodeUrl) {
62
+ // First validate that it's a proper URL
63
+ if (!isValidUrl(nodeUrl)) {
64
+ throw new Error(`Invalid URL format: ${nodeUrl}`);
65
+ }
66
+ // Create a temporary public client to get the chain ID
67
+ const tempPublicClient = createPublicClient({
68
+ transport: http(nodeUrl),
69
+ });
70
+ try {
71
+ const chainId = await tempPublicClient.getChainId();
72
+ const chain = getChain(Number(chainId));
73
+ return chain;
74
+ }
75
+ catch (error) {
76
+ throw new Error(`Failed to resolve chain ID from Node URL: ${error instanceof Error ? error.message : "Unknown error"}`);
77
+ }
78
+ }
79
+ /**
80
+ * Determines if the input string is a valid URL
81
+ *
82
+ * @param input - The string to validate as a URL
83
+ * @returns True if the input is a valid URL, false otherwise
84
+ */
85
+ function isValidUrl(input) {
86
+ try {
87
+ new URL(input);
88
+ return true;
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * Resolves viem clients based on a network identifier or Node URL.
96
+ *
97
+ * @param options - Configuration options
98
+ * @param options.networkOrNodeUrl - Either a network identifier (e.g., "base", "base-sepolia") or a full Node URL
99
+ * @param options.account - Optional account to use for the wallet client
100
+ * @returns Promise resolving to an object containing the chain, publicClient, and walletClient
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Using network identifier
105
+ * const clients = await resolveViemClients({
106
+ * networkOrNodeUrl: "base",
107
+ * account: myAccount
108
+ * });
109
+ *
110
+ * // Using Node URL
111
+ * const clients = await resolveViemClients({
112
+ * networkOrNodeUrl: "https://mainnet.base.org",
113
+ * account: myAccount
114
+ * });
115
+ * ```
116
+ */
117
+ export async function resolveViemClients(options) {
118
+ const { networkOrNodeUrl } = options;
119
+ let chain;
120
+ // If it's a valid network identifier, use the mapping
121
+ if (isNetworkIdentifier(networkOrNodeUrl)) {
122
+ chain = resolveNetworkToChain(networkOrNodeUrl);
123
+ const publicClient = createPublicClient({
124
+ chain,
125
+ transport: http(),
126
+ });
127
+ const walletClient = createWalletClient({
128
+ account: toAccount(options.account),
129
+ chain,
130
+ transport: http(),
131
+ });
132
+ return {
133
+ chain,
134
+ publicClient,
135
+ walletClient,
136
+ };
137
+ }
138
+ // If it's not a valid network identifier, try to treat it as a Node URL
139
+ try {
140
+ chain = await resolveNodeUrlToChain(networkOrNodeUrl);
141
+ const publicClient = createPublicClient({
142
+ chain,
143
+ transport: http(networkOrNodeUrl),
144
+ });
145
+ const walletClient = createWalletClient({
146
+ account: toAccount(options.account),
147
+ chain,
148
+ transport: http(networkOrNodeUrl),
149
+ });
150
+ return {
151
+ chain,
152
+ publicClient,
153
+ walletClient,
154
+ };
155
+ }
156
+ catch (error) {
157
+ // If the error is from resolveNodeUrlToChain, re-throw it as-is
158
+ if (error instanceof Error &&
159
+ (error.message.includes("Invalid URL format") ||
160
+ error.message.includes("Unsupported chain ID") ||
161
+ error.message.includes("Failed to resolve chain ID"))) {
162
+ throw error;
163
+ }
164
+ // Otherwise, throw a generic error about unsupported input
165
+ throw new Error(`Unsupported network identifier or invalid Node URL: ${networkOrNodeUrl}`);
166
+ }
167
+ }
168
+ //# sourceMappingURL=resolveViemClients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveViemClients.js","sourceRoot":"","sources":["../../../accounts/evm/resolveViemClients.ts"],"names":[],"mappings":"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"}
@@ -107,7 +107,7 @@ export function toEvmServerAccount(apiClient, options) {
107
107
  name: options.account.name,
108
108
  type: "evm-server",
109
109
  policies: options.account.policies,
110
- __experimental_useNetwork: async (networkOrRpcUrl) => {
110
+ useNetwork: async (networkOrRpcUrl) => {
111
111
  return toNetworkScopedEvmServerAccount(apiClient, {
112
112
  account,
113
113
  network: networkOrRpcUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { base, baseSepolia, sepolia } from "viem/chains";
2
+ import { resolveViemClients } from "./resolveViemClients.js";
1
3
  /**
2
4
  * Creates a Network-scoped Server-managed EvmAccount instance from an existing EvmAccount.
3
5
  * Use this to interact with previously deployed EvmAccounts on a specific network.
@@ -8,7 +10,12 @@
8
10
  * @param {string} options.network - The network to scope the account to.
9
11
  * @returns {NetworkScopedEvmServerAccount} A configured NetworkScopedEvmServerAccount instance ready for signing.
10
12
  */
11
- export function toNetworkScopedEvmServerAccount(apiClient, options) {
13
+ export async function toNetworkScopedEvmServerAccount(apiClient, options) {
14
+ const { publicClient, walletClient, chain } = await resolveViemClients({
15
+ networkOrNodeUrl: options.network,
16
+ account: options.account,
17
+ });
18
+ const shouldUseApi = chain.id === base.id || chain.id === baseSepolia.id;
12
19
  const account = {
13
20
  address: options.account.address,
14
21
  network: options.network,
@@ -19,6 +26,30 @@ export function toNetworkScopedEvmServerAccount(apiClient, options) {
19
26
  name: options.account.name,
20
27
  type: "evm-server",
21
28
  policies: options.account.policies,
29
+ requestFaucet: async (faucetOptions) => {
30
+ if (chain.id !== baseSepolia.id && chain.id !== sepolia.id) {
31
+ throw new Error("Requesting a faucet is supported only on base-sepolia or ethereum-sepolia");
32
+ }
33
+ return options.account.requestFaucet({
34
+ ...faucetOptions,
35
+ network: chain.id === baseSepolia.id ? "base-sepolia" : "ethereum-sepolia",
36
+ });
37
+ },
38
+ sendTransaction: async (txOpts) => {
39
+ if (shouldUseApi) {
40
+ return options.account.sendTransaction({
41
+ ...txOpts,
42
+ network: chain.id === base.id ? "base" : "base-sepolia",
43
+ });
44
+ }
45
+ else {
46
+ const hash = await walletClient.sendTransaction(txOpts.transaction);
47
+ return { transactionHash: hash };
48
+ }
49
+ },
50
+ waitForTransactionReceipt: async (options) => {
51
+ return publicClient.waitForTransactionReceipt(options);
52
+ },
22
53
  };
23
54
  return account;
24
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"AAcA;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,SAA+B,EAC/B,OAA+C;IAE/C,MAAM,OAAO,GAAkC;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;KACnC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiB7D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,SAA+B,EAC/B,OAA+C;IAE/C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAkB,CAAC;QACrE,gBAAgB,EAAE,OAAO,CAAC,OAAO;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAkC;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;QAClC,aAAa,EAAE,KAAK,EAAE,aAAgE,EAAE,EAAE;YACxF,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBACnC,GAAG,aAAa;gBAChB,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB;aAC3E,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC9B,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;oBACrC,GAAG,MAAM;oBACT,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;iBACxD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,eAAe,CAC7C,MAAM,CAAC,WAAwC,CAChD,CAAC;gBACF,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,OAA4C,EAAE,EAAE;YAChF,OAAO,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/_esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "1.17.0";
1
+ export const version = "1.18.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,47 @@
1
+ import { Account, Transport, type Chain, type PublicClient, type WalletClient } from "viem";
2
+ import type { EvmAccount } from "./types.js";
3
+ /**
4
+ * Options for resolving viem clients
5
+ */
6
+ export type ResolveViemClientsOptions = {
7
+ /** The network identifier (e.g., "base", "base-sepolia") or Node URL */
8
+ networkOrNodeUrl: string;
9
+ /** Optional account to use for the wallet client */
10
+ account: EvmAccount;
11
+ };
12
+ /**
13
+ * Result of resolving viem clients
14
+ */
15
+ export type ResolvedViemClients = {
16
+ /** The resolved viem chain */
17
+ chain: Chain;
18
+ /** The public client for reading blockchain data */
19
+ publicClient: PublicClient<Transport, Chain>;
20
+ /** The wallet client for sending transactions */
21
+ walletClient: WalletClient<Transport, Chain, Account>;
22
+ };
23
+ /**
24
+ * Resolves viem clients based on a network identifier or Node URL.
25
+ *
26
+ * @param options - Configuration options
27
+ * @param options.networkOrNodeUrl - Either a network identifier (e.g., "base", "base-sepolia") or a full Node URL
28
+ * @param options.account - Optional account to use for the wallet client
29
+ * @returns Promise resolving to an object containing the chain, publicClient, and walletClient
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * // Using network identifier
34
+ * const clients = await resolveViemClients({
35
+ * networkOrNodeUrl: "base",
36
+ * account: myAccount
37
+ * });
38
+ *
39
+ * // Using Node URL
40
+ * const clients = await resolveViemClients({
41
+ * networkOrNodeUrl: "https://mainnet.base.org",
42
+ * account: myAccount
43
+ * });
44
+ * ```
45
+ */
46
+ export declare function resolveViemClients(options: ResolveViemClientsOptions): Promise<ResolvedViemClients>;
47
+ //# sourceMappingURL=resolveViemClients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveViemClients.d.ts","sourceRoot":"","sources":["../../../accounts/evm/resolveViemClients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,SAAS,EACT,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAId,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmG7C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,oDAAoD;IACpD,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,iDAAiD;IACjD,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;CACvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAuD9B"}
@@ -19,5 +19,5 @@ export type ToNetworkScopedEvmServerAccountOptions = {
19
19
  * @param {string} options.network - The network to scope the account to.
20
20
  * @returns {NetworkScopedEvmServerAccount} A configured NetworkScopedEvmServerAccount instance ready for signing.
21
21
  */
22
- export declare function toNetworkScopedEvmServerAccount(apiClient: CdpOpenApiClientType, options: ToNetworkScopedEvmServerAccountOptions): NetworkScopedEvmServerAccount;
22
+ export declare function toNetworkScopedEvmServerAccount(apiClient: CdpOpenApiClientType, options: ToNetworkScopedEvmServerAccountOptions): Promise<NetworkScopedEvmServerAccount>;
23
23
  //# sourceMappingURL=toNetworkScopedEvmServerAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toNetworkScopedEvmServerAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E;;GAEG;AACH,MAAM,MAAM,sCAAsC,GAAG;IACnD,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,sCAAsC,GAC9C,6BAA6B,CAc/B"}
1
+ {"version":3,"file":"toNetworkScopedEvmServerAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E;;GAEG;AACH,MAAM,MAAM,sCAAsC,GAAG;IACnD,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,6BAA6B,CAAC,CAgDxC"}