@coinbase/cdp-sdk 1.4.0 → 1.6.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 (121) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +123 -2
  3. package/_cjs/accounts/evm/toEvmServerAccount.js +26 -0
  4. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  5. package/_cjs/accounts/evm/toEvmSmartAccount.js +35 -2
  6. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  7. package/_cjs/actions/evm/listTokenBalances.js +33 -0
  8. package/_cjs/actions/evm/listTokenBalances.js.map +1 -0
  9. package/_cjs/actions/evm/requestFaucet.js +18 -0
  10. package/_cjs/actions/evm/requestFaucet.js.map +1 -0
  11. package/_cjs/actions/evm/sendTransaction.js +29 -0
  12. package/_cjs/actions/evm/sendTransaction.js.map +1 -0
  13. package/_cjs/actions/evm/sendUserOperation.js +5 -6
  14. package/_cjs/actions/evm/sendUserOperation.js.map +1 -1
  15. package/_cjs/actions/evm/transfer/accountTransferStrategy.js +72 -0
  16. package/_cjs/actions/evm/transfer/accountTransferStrategy.js.map +1 -0
  17. package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js +67 -0
  18. package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -0
  19. package/_cjs/actions/evm/transfer/transfer.js +59 -0
  20. package/_cjs/actions/evm/transfer/transfer.js.map +1 -0
  21. package/_cjs/actions/evm/transfer/types.js +3 -0
  22. package/_cjs/actions/evm/transfer/types.js.map +1 -0
  23. package/_cjs/actions/evm/transfer/utils.js +39 -0
  24. package/_cjs/actions/evm/transfer/utils.js.map +1 -0
  25. package/_cjs/actions/evm/types.js +3 -0
  26. package/_cjs/actions/evm/types.js.map +1 -0
  27. package/_cjs/client/evm/evm.js +52 -42
  28. package/_cjs/client/evm/evm.js.map +1 -1
  29. package/_cjs/client/solana/solana.js +42 -0
  30. package/_cjs/client/solana/solana.js.map +1 -1
  31. package/_cjs/utils/serializeTransaction.js +18 -0
  32. package/_cjs/utils/serializeTransaction.js.map +1 -0
  33. package/_cjs/version.js +1 -1
  34. package/_esm/accounts/evm/toEvmServerAccount.js +26 -0
  35. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  36. package/_esm/accounts/evm/toEvmSmartAccount.js +35 -2
  37. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  38. package/_esm/actions/evm/listTokenBalances.js +30 -0
  39. package/_esm/actions/evm/listTokenBalances.js.map +1 -0
  40. package/_esm/actions/evm/requestFaucet.js +15 -0
  41. package/_esm/actions/evm/requestFaucet.js.map +1 -0
  42. package/_esm/actions/evm/sendTransaction.js +26 -0
  43. package/_esm/actions/evm/sendTransaction.js.map +1 -0
  44. package/_esm/actions/evm/sendUserOperation.js +5 -6
  45. package/_esm/actions/evm/sendUserOperation.js.map +1 -1
  46. package/_esm/actions/evm/transfer/accountTransferStrategy.js +69 -0
  47. package/_esm/actions/evm/transfer/accountTransferStrategy.js.map +1 -0
  48. package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js +64 -0
  49. package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -0
  50. package/_esm/actions/evm/transfer/transfer.js +56 -0
  51. package/_esm/actions/evm/transfer/transfer.js.map +1 -0
  52. package/_esm/actions/evm/transfer/types.js +2 -0
  53. package/_esm/actions/evm/transfer/types.js.map +1 -0
  54. package/_esm/actions/evm/transfer/utils.js +35 -0
  55. package/_esm/actions/evm/transfer/utils.js.map +1 -0
  56. package/_esm/actions/evm/types.js +2 -0
  57. package/_esm/actions/evm/types.js.map +1 -0
  58. package/_esm/client/evm/evm.js +52 -42
  59. package/_esm/client/evm/evm.js.map +1 -1
  60. package/_esm/client/solana/solana.js +42 -0
  61. package/_esm/client/solana/solana.js.map +1 -1
  62. package/_esm/utils/serializeTransaction.js +15 -0
  63. package/_esm/utils/serializeTransaction.js.map +1 -0
  64. package/_esm/version.js +1 -1
  65. package/_types/accounts/evm/toEvmServerAccount.d.ts +2 -2
  66. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  67. package/_types/accounts/evm/toEvmSmartAccount.d.ts +4 -4
  68. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  69. package/_types/accounts/types.d.ts +4 -3
  70. package/_types/accounts/types.d.ts.map +1 -1
  71. package/_types/actions/evm/listTokenBalances.d.ts +76 -0
  72. package/_types/actions/evm/listTokenBalances.d.ts.map +1 -0
  73. package/_types/actions/evm/requestFaucet.d.ts +34 -0
  74. package/_types/actions/evm/requestFaucet.d.ts.map +1 -0
  75. package/_types/actions/evm/sendTransaction.d.ts +42 -0
  76. package/_types/actions/evm/sendTransaction.d.ts.map +1 -0
  77. package/_types/actions/evm/sendUserOperation.d.ts +3 -2
  78. package/_types/actions/evm/sendUserOperation.d.ts.map +1 -1
  79. package/_types/actions/evm/transfer/accountTransferStrategy.d.ts +4 -0
  80. package/_types/actions/evm/transfer/accountTransferStrategy.d.ts.map +1 -0
  81. package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts +4 -0
  82. package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts.map +1 -0
  83. package/_types/actions/evm/transfer/transfer.d.ts +14 -0
  84. package/_types/actions/evm/transfer/transfer.d.ts.map +1 -0
  85. package/_types/actions/evm/transfer/types.d.ts +71 -0
  86. package/_types/actions/evm/transfer/types.d.ts.map +1 -0
  87. package/_types/actions/evm/transfer/utils.d.ts +631 -0
  88. package/_types/actions/evm/transfer/utils.d.ts.map +1 -0
  89. package/_types/actions/evm/types.d.ts +230 -0
  90. package/_types/actions/evm/types.d.ts.map +1 -0
  91. package/_types/client/evm/evm.d.ts +22 -3
  92. package/_types/client/evm/evm.d.ts.map +1 -1
  93. package/_types/client/evm/evm.types.d.ts +20 -137
  94. package/_types/client/evm/evm.types.d.ts.map +1 -1
  95. package/_types/client/solana/solana.d.ts +17 -1
  96. package/_types/client/solana/solana.d.ts.map +1 -1
  97. package/_types/client/solana/solana.types.d.ts +8 -0
  98. package/_types/client/solana/solana.types.d.ts.map +1 -1
  99. package/_types/utils/serializeTransaction.d.ts +9 -0
  100. package/_types/utils/serializeTransaction.d.ts.map +1 -0
  101. package/_types/version.d.ts +1 -1
  102. package/accounts/evm/toEvmServerAccount.ts +46 -6
  103. package/accounts/evm/toEvmSmartAccount.ts +68 -4
  104. package/accounts/types.ts +20 -16
  105. package/actions/evm/listTokenBalances.ts +107 -0
  106. package/actions/evm/requestFaucet.ts +46 -0
  107. package/actions/evm/sendTransaction.ts +73 -0
  108. package/actions/evm/sendUserOperation.ts +6 -6
  109. package/actions/evm/transfer/accountTransferStrategy.ts +84 -0
  110. package/actions/evm/transfer/smartAccountTransferStrategy.ts +72 -0
  111. package/actions/evm/transfer/transfer.ts +71 -0
  112. package/actions/evm/transfer/types.ts +81 -0
  113. package/actions/evm/transfer/utils.ts +39 -0
  114. package/actions/evm/types.ts +244 -0
  115. package/client/evm/evm.ts +70 -63
  116. package/client/evm/evm.types.ts +32 -149
  117. package/client/solana/solana.ts +43 -0
  118. package/client/solana/solana.types.ts +9 -0
  119. package/package.json +1 -1
  120. package/utils/serializeTransaction.ts +17 -0
  121. package/version.ts +1 -1
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getErc20Address = getErc20Address;
4
+ exports.mapNetworkToChain = mapNetworkToChain;
5
+ const chains_1 = require("viem/chains");
6
+ /**
7
+ * The address of an ERC20 token for a given network.
8
+ */
9
+ const addressMap = {
10
+ base: {
11
+ usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
12
+ },
13
+ "base-sepolia": {
14
+ usdc: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
15
+ },
16
+ };
17
+ /**
18
+ * Get the address of an ERC20 token for a given network.
19
+ * If a contract address is provided, it will not be found in the map and will be returned as is.
20
+ *
21
+ * @param token - The token symbol or contract address.
22
+ * @param network - The network to get the address for.
23
+ *
24
+ * @returns The address of the ERC20 token.
25
+ */
26
+ function getErc20Address(token, network) {
27
+ return addressMap[network][token] ?? token;
28
+ }
29
+ /**
30
+ * Map a network to a viem chain.
31
+ * TODO: Add more networks (or dynamically map viem chains).
32
+ *
33
+ * @param network - The network to map to a chain.
34
+ * @returns The chain for the given network.
35
+ */
36
+ function mapNetworkToChain(network) {
37
+ return network === "base" ? chains_1.base : chains_1.baseSepolia;
38
+ }
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/utils.ts"],"names":[],"mappings":";;AAyBA,0CAEC;AASD,8CAEC;AAtCD,wCAAgD;AAIhD;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,4CAA4C;KACnD;IACD,cAAc,EAAE;QACd,IAAI,EAAE,4CAA4C;KACnD;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,OAAgB;IAC7D,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,aAAI,CAAC,CAAC,CAAC,oBAAW,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../actions/evm/types.ts"],"names":[],"mappings":""}
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvmClient = void 0;
4
- const viem_1 = require("viem");
5
4
  const toEvmServerAccount_js_1 = require("../../accounts/evm/toEvmServerAccount.js");
6
5
  const toEvmSmartAccount_js_1 = require("../../accounts/evm/toEvmSmartAccount.js");
6
+ const listTokenBalances_js_1 = require("../../actions/evm/listTokenBalances.js");
7
+ const requestFaucet_js_1 = require("../../actions/evm/requestFaucet.js");
8
+ const sendTransaction_js_1 = require("../../actions/evm/sendTransaction.js");
7
9
  const sendUserOperation_js_1 = require("../../actions/evm/sendUserOperation.js");
8
10
  const waitForUserOperation_js_1 = require("../../actions/evm/waitForUserOperation.js");
11
+ const errors_js_1 = require("../../openapi-client/errors.js");
9
12
  const index_js_1 = require("../../openapi-client/index.js");
10
13
  /**
11
14
  * The namespace containing all EVM methods.
@@ -102,7 +105,7 @@ class EvmClient {
102
105
  const smartAccount = await index_js_1.CdpOpenApiClient.createEvmSmartAccount({
103
106
  owners: [options.owner.address],
104
107
  }, options.idempotencyKey);
105
- return (0, toEvmSmartAccount_js_1.toEvmSmartAccount)({
108
+ return (0, toEvmSmartAccount_js_1.toEvmSmartAccount)(index_js_1.CdpOpenApiClient, {
106
109
  smartAccount,
107
110
  owner: options.owner,
108
111
  });
@@ -167,11 +170,52 @@ class EvmClient {
167
170
  */
168
171
  async getSmartAccount(options) {
169
172
  const smartAccount = await index_js_1.CdpOpenApiClient.getEvmSmartAccount(options.address);
170
- return (0, toEvmSmartAccount_js_1.toEvmSmartAccount)({
173
+ return (0, toEvmSmartAccount_js_1.toEvmSmartAccount)(index_js_1.CdpOpenApiClient, {
171
174
  smartAccount,
172
175
  owner: options.owner,
173
176
  });
174
177
  }
178
+ /**
179
+ * Gets a CDP EVM account, or creates one if it doesn't exist.
180
+ *
181
+ * @param {GetOrCreateServerAccountOptions} options - Parameters for getting or creating the account.
182
+ * @param {string} [options.name] - The name of the account to get or create.
183
+ *
184
+ * @returns A promise that resolves to the account.
185
+ *
186
+ * @example
187
+ * ```ts
188
+ * const account = await cdp.evm.getOrCreateAccount({
189
+ * name: "MyAccount",
190
+ * });
191
+ * ```
192
+ */
193
+ async getOrCreateAccount(options) {
194
+ try {
195
+ const account = await this.getAccount(options);
196
+ return account;
197
+ }
198
+ catch (error) {
199
+ // If it failed because the account doesn't exist, create it
200
+ const doesAccountNotExist = error instanceof errors_js_1.APIError && error.statusCode === 404;
201
+ if (doesAccountNotExist) {
202
+ try {
203
+ const account = await this.createAccount(options);
204
+ return account;
205
+ }
206
+ catch (error) {
207
+ // If it failed because the account already exists, throw an error
208
+ const doesAccountAlreadyExist = error instanceof errors_js_1.APIError && error.statusCode === 409;
209
+ if (doesAccountAlreadyExist) {
210
+ const account = await this.getAccount(options);
211
+ return account;
212
+ }
213
+ throw error;
214
+ }
215
+ }
216
+ throw error;
217
+ }
218
+ }
175
219
  /**
176
220
  * Gets a user operation for a smart account by user operation hash.
177
221
  *
@@ -274,26 +318,7 @@ class EvmClient {
274
318
  * }
275
319
  */
276
320
  async listTokenBalances(options) {
277
- const response = await index_js_1.CdpOpenApiClient.listEvmTokenBalances(options.network, options.address, {
278
- pageSize: options.pageSize,
279
- pageToken: options.pageToken,
280
- });
281
- const balances = response.balances.map(balance => {
282
- return {
283
- token: {
284
- network: balance.token.network,
285
- contractAddress: balance.token.contractAddress,
286
- },
287
- amount: {
288
- amount: BigInt(balance.amount.amount),
289
- decimals: BigInt(balance.amount.decimals),
290
- },
291
- };
292
- });
293
- return {
294
- balances,
295
- nextPageToken: response.nextPageToken,
296
- };
321
+ return (0, listTokenBalances_js_1.listTokenBalances)(index_js_1.CdpOpenApiClient, options);
297
322
  }
298
323
  /**
299
324
  * Lists CDP EVM smart accounts.
@@ -400,10 +425,7 @@ class EvmClient {
400
425
  * ```
401
426
  */
402
427
  async requestFaucet(options) {
403
- const { transactionHash } = await index_js_1.CdpOpenApiClient.requestEvmFaucet({ address: options.address, network: options.network, token: options.token }, options.idempotencyKey);
404
- return {
405
- transactionHash: transactionHash,
406
- };
428
+ return (0, requestFaucet_js_1.requestFaucet)(index_js_1.CdpOpenApiClient, options);
407
429
  }
408
430
  /**
409
431
  * Signs an EVM transaction and sends it to the specified network using the Coinbase API.
@@ -452,20 +474,7 @@ class EvmClient {
452
474
  * ```
453
475
  */
454
476
  async sendTransaction(options) {
455
- const { address, network, idempotencyKey } = options;
456
- let transaction = options.transaction;
457
- if (typeof transaction !== "string") {
458
- transaction = (0, viem_1.serializeTransaction)({
459
- ...transaction,
460
- // chainId is ignored in favor of network
461
- chainId: 1,
462
- type: "eip1559",
463
- });
464
- }
465
- const result = await index_js_1.CdpOpenApiClient.sendEvmTransaction(address, { transaction, network }, idempotencyKey);
466
- return {
467
- transactionHash: result.transactionHash,
468
- };
477
+ return (0, sendTransaction_js_1.sendTransaction)(index_js_1.CdpOpenApiClient, options);
469
478
  }
470
479
  /**
471
480
  * Sends a user operation.
@@ -496,7 +505,8 @@ class EvmClient {
496
505
  * ```
497
506
  */
498
507
  async sendUserOperation(options) {
499
- return (0, sendUserOperation_js_1.sendUserOperation)(index_js_1.CdpOpenApiClient, options.smartAccount, {
508
+ return (0, sendUserOperation_js_1.sendUserOperation)(index_js_1.CdpOpenApiClient, {
509
+ smartAccount: options.smartAccount,
500
510
  network: options.network,
501
511
  calls: options.calls,
502
512
  paymasterUrl: options.paymasterUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SolanaClient = void 0;
4
+ const errors_js_1 = require("../../openapi-client/errors.js");
4
5
  const index_js_1 = require("../../openapi-client/index.js");
5
6
  /**
6
7
  * The namespace containing all Solana methods.
@@ -73,6 +74,47 @@ class SolanaClient {
73
74
  }
74
75
  throw new Error("Either address or name must be provided");
75
76
  }
77
+ /**
78
+ * Gets a Solana account by its address.
79
+ *
80
+ * @param {GetOrCreateAccountOptions} options - Parameters for getting or creating the Solana account.
81
+ * @param {string} options.name - The name of the account.
82
+ *
83
+ * @returns A promise that resolves to the account.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const account = await cdp.solana.getOrCreateAccount({
88
+ * name: "MyAccount",
89
+ * });
90
+ * ```
91
+ */
92
+ async getOrCreateAccount(options) {
93
+ try {
94
+ const account = await this.getAccount(options);
95
+ return account;
96
+ }
97
+ catch (error) {
98
+ // If it failed because the account doesn't exist, create it
99
+ const doesAccountNotExist = error instanceof errors_js_1.APIError && error.statusCode === 404;
100
+ if (doesAccountNotExist) {
101
+ try {
102
+ const account = await this.createAccount(options);
103
+ return account;
104
+ }
105
+ catch (error) {
106
+ // If it failed because the account already exists, throw an error
107
+ const doesAccountAlreadyExist = error instanceof errors_js_1.APIError && error.statusCode === 409;
108
+ if (doesAccountAlreadyExist) {
109
+ const account = await this.getAccount(options);
110
+ return account;
111
+ }
112
+ throw error;
113
+ }
114
+ }
115
+ throw error;
116
+ }
117
+ }
76
118
  /**
77
119
  * Lists all Solana accounts.
78
120
  *
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../client/solana/solana.ts"],"names":[],"mappings":";;;AAYA,4DAAiE;AAEjE;;GAEG;AACH,MAAa,YAAY;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,aAAa,CAAC,UAAgC,EAAE;QACpD,OAAO,2BAAgB,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,2BAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,2BAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,YAAY,CAAC,UAA+B,EAAE;QAClD,MAAM,WAAW,GAAG,MAAM,2BAAgB,CAAC,kBAAkB,CAAC;YAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,mBAAmB,CAC1D,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAClD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,oBAAoB;SAC1C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,2BAAgB,CAAC,iBAAiB,CACvC,OAAO,CAAC,OAAO,EACf;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,qBAAqB,CAC5D,OAAO,CAAC,OAAO,EACf;YACE,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;CACF;AA3ND,oCA2NC"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../client/solana/solana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeEIP1559Transaction = serializeEIP1559Transaction;
4
+ const viem_1 = require("viem");
5
+ /**
6
+ * Serializes a transaction for the Coinbase API.
7
+ *
8
+ * @param transaction - The transaction to serialize.
9
+ * @returns The serialized transaction.
10
+ */
11
+ function serializeEIP1559Transaction(transaction) {
12
+ return (0, viem_1.serializeTransaction)({
13
+ ...transaction,
14
+ chainId: 1, // ignored by Coinbase API
15
+ type: "eip1559",
16
+ });
17
+ }
18
+ //# sourceMappingURL=serializeTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../utils/serializeTransaction.ts"],"names":[],"mappings":";;AAUA,kEAMC;AAhBD,+BAA4C;AAI5C;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,WAAsC;IAChF,OAAO,IAAA,2BAAoB,EAAC;QAC1B,GAAG,WAAW;QACd,OAAO,EAAE,CAAC,EAAE,0BAA0B;QACtC,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,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.4.0";
4
+ exports.version = "1.6.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,9 @@
1
1
  import { serializeTransaction } from "viem";
2
+ import { listTokenBalances, } from "../../actions/evm/listTokenBalances.js";
3
+ import { requestFaucet, } from "../../actions/evm/requestFaucet.js";
4
+ import { sendTransaction } from "../../actions/evm/sendTransaction.js";
5
+ import { accountTransferStrategy } from "../../actions/evm/transfer/accountTransferStrategy.js";
6
+ import { transfer } from "../../actions/evm/transfer/transfer.js";
2
7
  /**
3
8
  * Creates a Server-managed EvmAccount instance from an existing EvmAccount.
4
9
  * Use this to interact with previously deployed EvmAccounts, rather than creating new ones.
@@ -32,6 +37,27 @@ export function toEvmServerAccount(apiClient, options) {
32
37
  async signTypedData() {
33
38
  throw new Error("Not implemented");
34
39
  },
40
+ async transfer(transferArgs) {
41
+ return transfer(apiClient, account, transferArgs, accountTransferStrategy);
42
+ },
43
+ async listTokenBalances(options) {
44
+ return listTokenBalances(apiClient, {
45
+ ...options,
46
+ address: this.address,
47
+ });
48
+ },
49
+ async requestFaucet(options) {
50
+ return requestFaucet(apiClient, {
51
+ ...options,
52
+ address: this.address,
53
+ });
54
+ },
55
+ async sendTransaction(options) {
56
+ return sendTransaction(apiClient, {
57
+ ...options,
58
+ address: this.address,
59
+ });
60
+ },
35
61
  name: options.account.name,
36
62
  type: "evm-server",
37
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA2B,MAAM,MAAM,CAAC;AAerE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAA+B,EAC/B,OAAkC;IAElC,MAAM,OAAO,GAAqB;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACrE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAA0B,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAA0B;YACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBAClE,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAA0B,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,WAAoC;YACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzE,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;aAC/C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,iBAAkC,CAAC;QACnD,CAAC;QAED,KAAK,CAAC,aAAa;YACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;KACnB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAEpF,OAAO,EACL,iBAAiB,GAGlB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,GAGd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAgBlE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAA+B,EAC/B,OAAkC;IAElC,MAAM,OAAO,GAAqB;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACrE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAAgB,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAA0B;YACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBAClE,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAAgB,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,WAAoC;YACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzE,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;aAC/C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,iBAAwB,CAAC;QACzC,CAAC;QAED,KAAK,CAAC,aAAa;YACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,YAAY;YACzB,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,CAAC,iBAAiB,CACrB,OAAkD;YAElD,OAAO,iBAAiB,CAAC,SAAS,EAAE;gBAClC,GAAG,OAAO;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,aAAa,CACjB,OAA8C;YAE9C,OAAO,aAAa,CAAC,SAAS,EAAE;gBAC9B,GAAG,OAAO;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,OAAgD;YACpE,OAAO,eAAe,CAAC,SAAS,EAAE;gBAChC,GAAG,OAAO;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;KACnB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,19 +1,52 @@
1
+ import { listTokenBalances, } from "../../actions/evm/listTokenBalances.js";
2
+ import { requestFaucet, } from "../../actions/evm/requestFaucet.js";
3
+ import { sendUserOperation, } from "../../actions/evm/sendUserOperation.js";
4
+ import { smartAccountTransferStrategy } from "../../actions/evm/transfer/smartAccountTransferStrategy.js";
5
+ import { transfer } from "../../actions/evm/transfer/transfer.js";
6
+ import { waitForUserOperation, } from "../../actions/evm/waitForUserOperation.js";
1
7
  /**
2
8
  * Creates a EvmSmartAccount instance from an existing EvmSmartAccount and owner.
3
9
  * Use this to interact with previously deployed EvmSmartAccounts, rather than creating new ones.
4
10
  *
5
11
  * The owner must be the original owner of the evm smart account.
6
12
  *
13
+ * @param {CdpOpenApiClientType} apiClient - The API client.
7
14
  * @param {ToEvmSmartAccountOptions} options - Configuration options.
8
15
  * @param {EvmSmartAccount} options.smartAccount - The deployed evm smart account.
9
16
  * @param {EvmAccount} options.owner - The owner which signs for the smart account.
10
17
  * @returns {EvmSmartAccount} A configured EvmSmartAccount instance ready for user operation submission.
11
- * @throws {Error} If the account is not an original owner of the smart account.
12
18
  */
13
- export function toEvmSmartAccount(options) {
19
+ export function toEvmSmartAccount(apiClient, options) {
14
20
  const account = {
15
21
  address: options.smartAccount.address,
16
22
  owners: [options.owner],
23
+ async transfer(transferArgs) {
24
+ return transfer(apiClient, account, transferArgs, smartAccountTransferStrategy);
25
+ },
26
+ async listTokenBalances(options) {
27
+ return listTokenBalances(apiClient, {
28
+ ...options,
29
+ address: this.address,
30
+ });
31
+ },
32
+ async sendUserOperation(options) {
33
+ return sendUserOperation(apiClient, {
34
+ ...options,
35
+ smartAccount: account,
36
+ });
37
+ },
38
+ async waitForUserOperation(options) {
39
+ return waitForUserOperation(apiClient, {
40
+ ...options,
41
+ smartAccountAddress: account.address,
42
+ });
43
+ },
44
+ async requestFaucet(options) {
45
+ return requestFaucet(apiClient, {
46
+ ...options,
47
+ address: account.address,
48
+ });
49
+ },
17
50
  name: options.smartAccount.name,
18
51
  type: "evm-smart",
19
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmSmartAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmSmartAccount.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,OAAO,GAAoB;QAC/B,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAkB;QAChD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI;QAC/B,IAAI,EAAE,WAAW;KAClB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"toEvmSmartAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAGlB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAGL,aAAa,GACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4DAA4D,CAAC;AAC1G,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EACL,oBAAoB,GAGrB,MAAM,2CAA2C,CAAC;AAoBnD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA+B,EAC/B,OAAiC;IAEjC,MAAM,OAAO,GAAoB;QAC/B,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAkB;QAChD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,YAAY;YACzB,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,4BAA4B,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,iBAAiB,CACrB,OAAkD;YAElD,OAAO,iBAAiB,CAAC,SAAS,EAAE;gBAClC,GAAG,OAAO;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,iBAAiB,CACrB,OAAkE;YAElE,OAAO,iBAAiB,CAAC,SAAS,EAAE;gBAClC,GAAG,OAAO;gBACV,YAAY,EAAE,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,oBAAoB,CACxB,OAAiE;YAEjE,OAAO,oBAAoB,CAAC,SAAS,EAAE;gBACrC,GAAG,OAAO;gBACV,mBAAmB,EAAE,OAAO,CAAC,OAAO;aACrC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,aAAa,CACjB,OAA8C;YAE9C,OAAO,aAAa,CAAC,SAAS,EAAE;gBAC9B,GAAG,OAAO;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI;QAC/B,IAAI,EAAE,WAAW;KAClB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * List the token balances for an EVM account.
3
+ *
4
+ * @param client - The client to use to list the token balances.
5
+ * @param options - The options for listing the token balances.
6
+ * @returns The result of listing the token balances.
7
+ */
8
+ export async function listTokenBalances(client, options) {
9
+ const response = await client.listEvmTokenBalances(options.network, options.address, {
10
+ pageSize: options.pageSize,
11
+ pageToken: options.pageToken,
12
+ });
13
+ const balances = response.balances.map(balance => {
14
+ return {
15
+ token: {
16
+ network: balance.token.network,
17
+ contractAddress: balance.token.contractAddress,
18
+ },
19
+ amount: {
20
+ amount: BigInt(balance.amount.amount),
21
+ decimals: BigInt(balance.amount.decimals),
22
+ },
23
+ };
24
+ });
25
+ return {
26
+ balances,
27
+ nextPageToken: response.nextPageToken,
28
+ };
29
+ }
30
+ //# sourceMappingURL=listTokenBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTokenBalances.js","sourceRoot":"","sources":["../../../actions/evm/listTokenBalances.ts"],"names":[],"mappings":"AAyEA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA4B,EAC5B,OAAiC;IAEjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QACnF,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/C,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;gBAC9B,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,eAA0B;aAC1D;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBACrC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC1C;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,aAAa,EAAE,QAAQ,CAAC,aAAa;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Requests funds from an EVM faucet.
3
+ *
4
+ * @param apiClient - The API client.
5
+ * @param options - The options for requesting funds from the EVM faucet.
6
+ *
7
+ * @returns A promise that resolves to the transaction hash.
8
+ */
9
+ export async function requestFaucet(apiClient, options) {
10
+ const { transactionHash } = await apiClient.requestEvmFaucet({ address: options.address, network: options.network, token: options.token }, options.idempotencyKey);
11
+ return {
12
+ transactionHash: transactionHash,
13
+ };
14
+ }
15
+ //# sourceMappingURL=requestFaucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestFaucet.js","sourceRoot":"","sources":["../../../actions/evm/requestFaucet.ts"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAA+B,EAC/B,OAA6B;IAE7B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAC1D,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAC5E,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,eAAsB;KACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { serializeTransaction } from "viem";
2
+ /**
3
+ * Sends an EVM transaction.
4
+ *
5
+ * @param apiClient - The API client.
6
+ * @param options - The options for sending the transaction.
7
+ *
8
+ * @returns The result of the transaction.
9
+ */
10
+ export async function sendTransaction(apiClient, options) {
11
+ const { address, network, idempotencyKey } = options;
12
+ let transaction = options.transaction;
13
+ if (typeof transaction !== "string") {
14
+ transaction = serializeTransaction({
15
+ ...transaction,
16
+ // chainId is ignored in favor of network
17
+ chainId: 1,
18
+ type: "eip1559",
19
+ });
20
+ }
21
+ const result = await apiClient.sendEvmTransaction(address, { transaction, network }, idempotencyKey);
22
+ return {
23
+ transactionHash: result.transactionHash,
24
+ };
25
+ }
26
+ //# sourceMappingURL=sendTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendTransaction.js","sourceRoot":"","sources":["../../../actions/evm/sendTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA6B,MAAM,MAAM,CAAC;AAuCvE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA+B,EAC/B,OAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAEtC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,WAAW,GAAG,oBAAoB,CAAC;YACjC,GAAG,WAAW;YACd,yCAAyC;YACzC,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAC/C,OAAO,EACP,EAAE,WAAW,EAAE,OAAO,EAAE,EACxB,cAAc,CACf,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,MAAM,CAAC,eAAsB;KAC/C,CAAC;AACJ,CAAC"}
@@ -36,11 +36,10 @@ import { encodeFunctionData } from "viem";
36
36
  * ```
37
37
  *
38
38
  * @param {CdpOpenApiClientType} client - The client to use to send the user operation.
39
- * @param {EvmSmartAccount} smartAccount - The smart account to send the user operation from.
40
39
  * @param {SendUserOperationOptions<T>} options - The options for the user operation.
41
40
  * @returns {Promise<SendUserOperationReturnType>} The result of the user operation.
42
41
  */
43
- export async function sendUserOperation(client, smartAccount, options) {
42
+ export async function sendUserOperation(client, options) {
44
43
  const { calls, network, paymasterUrl } = options;
45
44
  if (calls.length === 0) {
46
45
  throw new Error("Calls array is empty");
@@ -64,20 +63,20 @@ export async function sendUserOperation(client, smartAccount, options) {
64
63
  value,
65
64
  };
66
65
  });
67
- const createOpResponse = await client.prepareUserOperation(smartAccount.address, {
66
+ const createOpResponse = await client.prepareUserOperation(options.smartAccount.address, {
68
67
  network,
69
68
  calls: encodedCalls,
70
69
  paymasterUrl,
71
70
  });
72
- const owner = smartAccount.owners[0];
71
+ const owner = options.smartAccount.owners[0];
73
72
  const signature = await owner.sign({
74
73
  hash: createOpResponse.userOpHash,
75
74
  });
76
- const broadcastResponse = await client.sendUserOperation(smartAccount.address, createOpResponse.userOpHash, {
75
+ const broadcastResponse = await client.sendUserOperation(options.smartAccount.address, createOpResponse.userOpHash, {
77
76
  signature,
78
77
  }, options.idempotencyKey);
79
78
  return {
80
- smartAccountAddress: smartAccount.address,
79
+ smartAccountAddress: options.smartAccount.address,
81
80
  status: broadcastResponse.status,
82
81
  userOpHash: createOpResponse.userOpHash,
83
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sendUserOperation.js","sourceRoot":"","sources":["../../../actions/evm/sendUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AA8D1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA4B,EAC5B,YAA6B,EAC7B,OAAoC;IAEpC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACxD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,KAAK;aACN,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,EAAE;QAC/E,OAAO;QACP,KAAK,EAAE,YAAY;QACnB,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,gBAAgB,CAAC,UAAiB;KACzC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACtD,YAAY,CAAC,OAAO,EACpB,gBAAgB,CAAC,UAAiB,EAClC;QACE,SAAS;KACV,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,mBAAmB,EAAE,YAAY,CAAC,OAAO;QACzC,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,UAAU,EAAE,gBAAgB,CAAC,UAAU;KACT,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"sendUserOperation.js","sourceRoot":"","sources":["../../../actions/evm/sendUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAgE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA4B,EAC5B,OAAoC;IAEpC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACxD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,KAAK;aACN,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE;QACvF,OAAO;QACP,KAAK,EAAE,YAAY;QACnB,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,gBAAgB,CAAC,UAAiB;KACzC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACtD,OAAO,CAAC,YAAY,CAAC,OAAO,EAC5B,gBAAgB,CAAC,UAAiB,EAClC;QACE,SAAS;KACV,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO;QACjD,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,UAAU,EAAE,gBAAgB,CAAC,UAAU;KACT,CAAC;AACnC,CAAC"}