@coinbase/cdp-sdk 1.6.0 → 1.8.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 (257) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +284 -1
  3. package/_cjs/accounts/evm/toEvmServerAccount.js +4 -2
  4. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  5. package/_cjs/accounts/evm/toEvmSmartAccount.js +7 -0
  6. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  7. package/_cjs/accounts/evm/types.js.map +1 -0
  8. package/_cjs/accounts/solana/toSolanaAccount.js +42 -0
  9. package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -0
  10. package/_cjs/accounts/solana/types.js +3 -0
  11. package/_cjs/accounts/solana/types.js.map +1 -0
  12. package/_cjs/actions/evm/getUserOperation.js +36 -0
  13. package/_cjs/actions/evm/getUserOperation.js.map +1 -0
  14. package/_cjs/actions/evm/transfer/accountTransferStrategy.js +11 -7
  15. package/_cjs/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
  16. package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js +9 -6
  17. package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
  18. package/_cjs/actions/evm/transfer/transfer.js +7 -3
  19. package/_cjs/actions/evm/transfer/transfer.js.map +1 -1
  20. package/_cjs/actions/solana/requestFaucet.js +29 -0
  21. package/_cjs/actions/solana/requestFaucet.js.map +1 -0
  22. package/_cjs/actions/solana/signMessage.js +29 -0
  23. package/_cjs/actions/solana/signMessage.js.map +1 -0
  24. package/_cjs/actions/solana/signTransaction.js +46 -0
  25. package/_cjs/actions/solana/signTransaction.js.map +1 -0
  26. package/_cjs/actions/solana/types.js +3 -0
  27. package/_cjs/actions/solana/types.js.map +1 -0
  28. package/_cjs/analytics.js +68 -8
  29. package/_cjs/analytics.js.map +1 -1
  30. package/_cjs/client/cdp.js +9 -3
  31. package/_cjs/client/cdp.js.map +1 -1
  32. package/_cjs/client/evm/evm.js +135 -27
  33. package/_cjs/client/evm/evm.js.map +1 -1
  34. package/_cjs/client/policies/index.js +6 -0
  35. package/_cjs/client/policies/index.js.map +1 -0
  36. package/_cjs/client/policies/policies.js +232 -0
  37. package/_cjs/client/policies/policies.js.map +1 -0
  38. package/_cjs/client/policies/policies.types.js +3 -0
  39. package/_cjs/client/policies/policies.types.js.map +1 -0
  40. package/_cjs/client/solana/solana.js +84 -22
  41. package/_cjs/client/solana/solana.js.map +1 -1
  42. package/_cjs/index.js +4 -1
  43. package/_cjs/index.js.map +1 -1
  44. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +59 -1
  45. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  46. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +27 -1
  47. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  48. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js +56 -1
  49. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
  50. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +3 -1
  51. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
  52. package/_cjs/openapi-client/generated/index.msw.js +3 -2
  53. package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
  54. package/_cjs/openapi-client/generated/policy-engine/policy-engine.js +56 -0
  55. package/_cjs/openapi-client/generated/policy-engine/policy-engine.js.map +1 -0
  56. package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js +284 -0
  57. package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -0
  58. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js +14 -1
  59. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
  60. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js +42 -1
  61. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -1
  62. package/_cjs/openapi-client/index.js +7 -1
  63. package/_cjs/openapi-client/index.js.map +1 -1
  64. package/_cjs/policies/schema.js +186 -0
  65. package/_cjs/policies/schema.js.map +1 -0
  66. package/_cjs/policies/types.js +3 -0
  67. package/_cjs/{accounts → policies}/types.js.map +1 -1
  68. package/_cjs/version.js +1 -1
  69. package/_esm/accounts/evm/toEvmServerAccount.js +4 -2
  70. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  71. package/_esm/accounts/evm/toEvmSmartAccount.js +7 -0
  72. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  73. package/_esm/accounts/evm/types.js.map +1 -0
  74. package/_esm/accounts/solana/toSolanaAccount.js +39 -0
  75. package/_esm/accounts/solana/toSolanaAccount.js.map +1 -0
  76. package/_esm/accounts/solana/types.js +2 -0
  77. package/_esm/accounts/solana/types.js.map +1 -0
  78. package/_esm/actions/evm/getUserOperation.js +33 -0
  79. package/_esm/actions/evm/getUserOperation.js.map +1 -0
  80. package/_esm/actions/evm/transfer/accountTransferStrategy.js +11 -7
  81. package/_esm/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
  82. package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js +9 -6
  83. package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
  84. package/_esm/actions/evm/transfer/transfer.js +7 -3
  85. package/_esm/actions/evm/transfer/transfer.js.map +1 -1
  86. package/_esm/actions/solana/requestFaucet.js +26 -0
  87. package/_esm/actions/solana/requestFaucet.js.map +1 -0
  88. package/_esm/actions/solana/signMessage.js +26 -0
  89. package/_esm/actions/solana/signMessage.js.map +1 -0
  90. package/_esm/actions/solana/signTransaction.js +43 -0
  91. package/_esm/actions/solana/signTransaction.js.map +1 -0
  92. package/_esm/actions/solana/types.js +2 -0
  93. package/_esm/actions/solana/types.js.map +1 -0
  94. package/_esm/analytics.js +68 -7
  95. package/_esm/analytics.js.map +1 -1
  96. package/_esm/client/cdp.js +10 -4
  97. package/_esm/client/cdp.js.map +1 -1
  98. package/_esm/client/evm/evm.js +135 -27
  99. package/_esm/client/evm/evm.js.map +1 -1
  100. package/_esm/client/policies/index.js +2 -0
  101. package/_esm/client/policies/index.js.map +1 -0
  102. package/_esm/client/policies/policies.js +228 -0
  103. package/_esm/client/policies/policies.js.map +1 -0
  104. package/_esm/client/policies/policies.types.js +2 -0
  105. package/_esm/client/policies/policies.types.js.map +1 -0
  106. package/_esm/client/solana/solana.js +84 -22
  107. package/_esm/client/solana/solana.js.map +1 -1
  108. package/_esm/index.js +1 -0
  109. package/_esm/index.js.map +1 -1
  110. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +58 -0
  111. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  112. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +24 -0
  113. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  114. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js +51 -0
  115. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
  116. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +3 -1
  117. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
  118. package/_esm/openapi-client/generated/index.msw.js +3 -2
  119. package/_esm/openapi-client/generated/index.msw.js.map +1 -1
  120. package/_esm/openapi-client/generated/policy-engine/policy-engine.js +48 -0
  121. package/_esm/openapi-client/generated/policy-engine/policy-engine.js.map +1 -0
  122. package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js +259 -0
  123. package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -0
  124. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js +12 -0
  125. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
  126. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js +39 -0
  127. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -1
  128. package/_esm/openapi-client/index.js +6 -0
  129. package/_esm/openapi-client/index.js.map +1 -1
  130. package/_esm/policies/schema.js +183 -0
  131. package/_esm/policies/schema.js.map +1 -0
  132. package/_esm/policies/types.js +2 -0
  133. package/_esm/{accounts → policies}/types.js.map +1 -1
  134. package/_esm/version.js +1 -1
  135. package/_types/accounts/evm/toEvmServerAccount.d.ts +1 -1
  136. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  137. package/_types/accounts/evm/toEvmSmartAccount.d.ts +1 -1
  138. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  139. package/_types/accounts/{types.d.ts → evm/types.d.ts} +10 -7
  140. package/_types/accounts/evm/types.d.ts.map +1 -0
  141. package/_types/accounts/solana/toSolanaAccount.d.ts +20 -0
  142. package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -0
  143. package/_types/accounts/solana/types.d.ts +12 -0
  144. package/_types/accounts/solana/types.d.ts.map +1 -0
  145. package/_types/actions/evm/getUserOperation.d.ts +22 -0
  146. package/_types/actions/evm/getUserOperation.d.ts.map +1 -0
  147. package/_types/actions/evm/sendUserOperation.d.ts +1 -1
  148. package/_types/actions/evm/sendUserOperation.d.ts.map +1 -1
  149. package/_types/actions/evm/transfer/accountTransferStrategy.d.ts +1 -1
  150. package/_types/actions/evm/transfer/accountTransferStrategy.d.ts.map +1 -1
  151. package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts +1 -1
  152. package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts.map +1 -1
  153. package/_types/actions/evm/transfer/transfer.d.ts +3 -3
  154. package/_types/actions/evm/transfer/transfer.d.ts.map +1 -1
  155. package/_types/actions/evm/transfer/types.d.ts +39 -6
  156. package/_types/actions/evm/transfer/types.d.ts.map +1 -1
  157. package/_types/actions/evm/types.d.ts +28 -5
  158. package/_types/actions/evm/types.d.ts.map +1 -1
  159. package/_types/actions/solana/requestFaucet.d.ts +23 -0
  160. package/_types/actions/solana/requestFaucet.d.ts.map +1 -0
  161. package/_types/actions/solana/signMessage.d.ts +23 -0
  162. package/_types/actions/solana/signMessage.d.ts.map +1 -0
  163. package/_types/actions/solana/signTransaction.d.ts +38 -0
  164. package/_types/actions/solana/signTransaction.d.ts.map +1 -0
  165. package/_types/actions/solana/types.d.ts +80 -0
  166. package/_types/actions/solana/types.d.ts.map +1 -0
  167. package/_types/analytics.d.ts +14 -5
  168. package/_types/analytics.d.ts.map +1 -1
  169. package/_types/client/cdp.d.ts +3 -0
  170. package/_types/client/cdp.d.ts.map +1 -1
  171. package/_types/client/evm/evm.d.ts +89 -1
  172. package/_types/client/evm/evm.d.ts.map +1 -1
  173. package/_types/client/evm/evm.types.d.ts +36 -6
  174. package/_types/client/evm/evm.types.d.ts.map +1 -1
  175. package/_types/client/policies/index.d.ts +2 -0
  176. package/_types/client/policies/index.d.ts.map +1 -0
  177. package/_types/client/policies/policies.d.ts +216 -0
  178. package/_types/client/policies/policies.d.ts.map +1 -0
  179. package/_types/client/policies/policies.types.d.ts +96 -0
  180. package/_types/client/policies/policies.types.d.ts.map +1 -0
  181. package/_types/client/solana/solana.d.ts +47 -4
  182. package/_types/client/solana/solana.d.ts.map +1 -1
  183. package/_types/client/solana/solana.types.d.ts +21 -12
  184. package/_types/client/solana/solana.types.d.ts.map +1 -1
  185. package/_types/index.d.ts +3 -1
  186. package/_types/index.d.ts.map +1 -1
  187. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +299 -0
  188. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  189. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +13 -1
  190. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -1
  191. package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts +5 -1
  192. package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts.map +1 -1
  193. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts +3 -1
  194. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts.map +1 -1
  195. package/_types/openapi-client/generated/index.msw.d.ts +3 -2
  196. package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
  197. package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts +43 -0
  198. package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts.map +1 -0
  199. package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts +25 -0
  200. package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts.map +1 -0
  201. package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts +7 -1
  202. package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts.map +1 -1
  203. package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts +2 -0
  204. package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts.map +1 -1
  205. package/_types/openapi-client/index.d.ts +19 -0
  206. package/_types/openapi-client/index.d.ts.map +1 -1
  207. package/_types/policies/schema.d.ts +922 -0
  208. package/_types/policies/schema.d.ts.map +1 -0
  209. package/_types/policies/types.d.ts +19 -0
  210. package/_types/policies/types.d.ts.map +1 -0
  211. package/_types/types/misc.d.ts +39 -0
  212. package/_types/types/misc.d.ts.map +1 -1
  213. package/_types/version.d.ts +1 -1
  214. package/accounts/evm/toEvmServerAccount.ts +7 -4
  215. package/accounts/evm/toEvmSmartAccount.ts +11 -1
  216. package/accounts/{types.ts → evm/types.ts} +10 -12
  217. package/accounts/solana/toSolanaAccount.ts +60 -0
  218. package/accounts/solana/types.ts +13 -0
  219. package/actions/evm/getUserOperation.ts +40 -0
  220. package/actions/evm/sendUserOperation.ts +1 -1
  221. package/actions/evm/transfer/accountTransferStrategy.ts +12 -8
  222. package/actions/evm/transfer/smartAccountTransferStrategy.ts +10 -7
  223. package/actions/evm/transfer/transfer.ts +17 -6
  224. package/actions/evm/transfer/types.ts +54 -11
  225. package/actions/evm/types.ts +37 -5
  226. package/actions/solana/requestFaucet.ts +35 -0
  227. package/actions/solana/signMessage.ts +36 -0
  228. package/actions/solana/signTransaction.ts +53 -0
  229. package/actions/solana/types.ts +87 -0
  230. package/analytics.ts +84 -11
  231. package/client/cdp.ts +11 -4
  232. package/client/evm/evm.ts +162 -33
  233. package/client/evm/evm.types.ts +42 -4
  234. package/client/policies/index.ts +1 -0
  235. package/client/policies/policies.ts +246 -0
  236. package/client/policies/policies.types.ts +109 -0
  237. package/client/solana/solana.ts +107 -38
  238. package/client/solana/solana.types.ts +25 -15
  239. package/index.ts +8 -1
  240. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +360 -0
  241. package/openapi-client/generated/evm-accounts/evm-accounts.msw.ts +102 -0
  242. package/openapi-client/generated/evm-accounts/evm-accounts.ts +43 -0
  243. package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.ts +3 -1
  244. package/openapi-client/generated/index.msw.ts +3 -2
  245. package/openapi-client/generated/policy-engine/policy-engine.msw.ts +404 -0
  246. package/openapi-client/generated/policy-engine/policy-engine.ts +95 -0
  247. package/openapi-client/generated/solana-accounts/solana-accounts.msw.ts +75 -0
  248. package/openapi-client/generated/solana-accounts/solana-accounts.ts +23 -0
  249. package/openapi-client/index.ts +7 -0
  250. package/package.json +3 -2
  251. package/policies/schema.ts +266 -0
  252. package/policies/types.ts +19 -0
  253. package/types/misc.ts +41 -0
  254. package/version.ts +1 -1
  255. package/_types/accounts/types.d.ts.map +0 -1
  256. /package/_cjs/accounts/{types.js → evm/types.js} +0 -0
  257. /package/_esm/accounts/{types.js → evm/types.js} +0 -0
@@ -3,12 +3,13 @@ import { getErc20Address } from "./utils.js";
3
3
  import { sendUserOperation } from "../sendUserOperation.js";
4
4
  import { waitForUserOperation } from "../waitForUserOperation.js";
5
5
  export const smartAccountTransferStrategy = {
6
- executeTransfer: async ({ apiClient, from, transferArgs, to, value }) => {
6
+ executeTransfer: async ({ apiClient, from, to, value, token, network, paymasterUrl }) => {
7
7
  const userOpHash = await (async () => {
8
- if (transferArgs.token === "eth") {
8
+ if (token === "eth") {
9
9
  const result = await sendUserOperation(apiClient, {
10
10
  smartAccount: from,
11
- network: transferArgs.network,
11
+ paymasterUrl,
12
+ network,
12
13
  calls: [
13
14
  {
14
15
  to,
@@ -20,10 +21,11 @@ export const smartAccountTransferStrategy = {
20
21
  return result.userOpHash;
21
22
  }
22
23
  else {
23
- const erc20Address = getErc20Address(transferArgs.token, transferArgs.network);
24
+ const erc20Address = getErc20Address(token, network);
24
25
  const result = await sendUserOperation(apiClient, {
25
26
  smartAccount: from,
26
- network: transferArgs.network,
27
+ paymasterUrl,
28
+ network,
27
29
  calls: [
28
30
  {
29
31
  to: erc20Address,
@@ -48,10 +50,11 @@ export const smartAccountTransferStrategy = {
48
50
  })();
49
51
  return userOpHash;
50
52
  },
51
- waitForResult: async ({ apiClient, publicClient, from, hash }) => {
53
+ waitForResult: async ({ apiClient, publicClient, from, hash, waitOptions }) => {
52
54
  const result = await waitForUserOperation(apiClient, {
53
55
  smartAccountAddress: from.address,
54
56
  userOpHash: hash,
57
+ waitOptions,
55
58
  });
56
59
  if (result.status === "complete") {
57
60
  return { status: "success", transactionHash: hash };
@@ -1 +1 @@
1
- {"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,4BAA4B,GAA+C;IACtF,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACtE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,KAAK,EAAE;wBACL;4BACE,EAAE;4BACF,KAAK;4BACL,IAAI,EAAE,IAAI;yBACX;qBACF;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAE/E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;wBACD;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,UAAU;gCACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;qBACF;iBACF,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACnD,mBAAmB,EAAE,IAAI,CAAC,OAAO;YACjC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,8DAA8D,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,4BAA4B,GAA+C;IACtF,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACtF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,YAAY;oBACZ,OAAO;oBACP,KAAK,EAAE;wBACL;4BACE,EAAE;4BACF,KAAK;4BACL,IAAI,EAAE,IAAI;yBACX;qBACF;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAErD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,YAAY;oBACZ,OAAO;oBACP,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;wBACD;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,UAAU;gCACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;qBACF;iBACF,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACnD,mBAAmB,EAAE,IAAI,CAAC,OAAO;YACjC,UAAU,EAAE,IAAI;YAChB,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,8DAA8D,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -38,18 +38,22 @@ export async function transfer(apiClient, from, transferArgs, transferStrategy)
38
38
  })();
39
39
  return parseUnits(transferArgs.amount, decimals);
40
40
  })();
41
- const hash = await transferStrategy.executeTransfer({
41
+ const transfer = {
42
42
  apiClient,
43
43
  from,
44
- transferArgs,
45
44
  to,
46
45
  value,
47
- });
46
+ token: transferArgs.token,
47
+ network: transferArgs.network,
48
+ paymasterUrl: "paymasterUrl" in transferArgs ? transferArgs.paymasterUrl : undefined,
49
+ };
50
+ const hash = await transferStrategy.executeTransfer(transfer);
48
51
  const result = await transferStrategy.waitForResult({
49
52
  apiClient,
50
53
  publicClient,
51
54
  from,
52
55
  hash,
56
+ waitOptions: transferArgs.waitOptions,
53
57
  });
54
58
  return result;
55
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAA6B,MAAM,MAAM,CAAC;AAGjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAI/C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAA+B,EAC/B,IAAO,EACP,YAA6B,EAC7B,gBAA8C;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAmB;QACxD,KAAK,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9C,SAAS,EAAE,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,MAAM,EAAE,GACN,OAAO,YAAY,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,YAAY,CAAC,EAAE,CAAC,OAAmB,CAAC;IAE/F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAC9B,+EAA+E;QAC/E,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,YAAY,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,YAAY,CAAC;oBAC/B,OAAO,EAAE,YAAY,CAAC,KAAK;oBAC3B,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC;QAClD,SAAS;QACT,IAAI;QACJ,YAAY;QACZ,EAAE;QACF,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC;QAClD,SAAS;QACT,YAAY;QACZ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAA6B,MAAM,MAAM,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAW/C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAA+B,EAC/B,IAAO,EACP,YAA8F,EAC9F,gBAA8C;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAmB;QACxD,KAAK,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9C,SAAS,EAAE,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,MAAM,EAAE,GACN,OAAO,YAAY,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,YAAY,CAAC,EAAE,CAAC,OAAmB,CAAC;IAE/F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAC9B,+EAA+E;QAC/E,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,YAAY,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,YAAY,CAAC;oBAC/B,OAAO,EAAE,YAAY,CAAC,KAAK;oBAC3B,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,IAAI;QACJ,EAAE;QACF,KAAK;QACL,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,YAAY,EAAE,cAAc,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC;QAClD,SAAS;QACT,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,WAAW,EAAE,YAAY,CAAC,WAAW;KACtC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Requests funds from a Solana faucet.
3
+ *
4
+ * @param apiClient - The API client.
5
+ * @param {RequestFaucetOptions} options - Parameters for requesting funds from the Solana faucet.
6
+ * @param {string} options.address - The address to request funds for.
7
+ * @param {string} options.token - The token to request funds for.
8
+ * @param {string} [options.idempotencyKey] - An idempotency key.
9
+ *
10
+ * @returns A promise that resolves to the transaction signature.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const signature = await requestFaucet(cdp.solana, {
15
+ * address: "1234567890123456789012345678901234567890",
16
+ * token: "sol",
17
+ * });
18
+ * ```
19
+ */
20
+ export async function requestFaucet(apiClient, options) {
21
+ const signature = await apiClient.requestSolanaFaucet({ address: options.address, token: options.token }, options.idempotencyKey);
22
+ return {
23
+ signature: signature.transactionSignature,
24
+ };
25
+ }
26
+ //# sourceMappingURL=requestFaucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestFaucet.js","sourceRoot":"","sources":["../../../actions/solana/requestFaucet.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAA+B,EAC/B,OAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,mBAAmB,CACnD,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAClD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,oBAAoB;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Sign a message.
3
+ *
4
+ * @param apiClient - The API client.
5
+ * @param {SignMessageOptions} options - Parameters for signing the message.
6
+ * @param {string} options.address - The address to sign the message for.
7
+ * @param {string} options.message - The message to sign.
8
+ * @param {string} [options.idempotencyKey] - An idempotency key.
9
+ *
10
+ * @returns A promise that resolves to the transaction signature.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const signature = await signMessage(cdp.solana, {
15
+ * address: "1234567890123456789012345678901234567890",
16
+ * message: "Hello, world!",
17
+ * });
18
+ * ```
19
+ */
20
+ export async function signMessage(apiClient, options) {
21
+ const signature = await apiClient.signSolanaMessage(options.address, { message: options.message }, options.idempotencyKey);
22
+ return {
23
+ signature: signature.signature,
24
+ };
25
+ }
26
+ //# sourceMappingURL=signMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../actions/solana/signMessage.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAA+B,EAC/B,OAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,iBAAiB,CACjD,OAAO,CAAC,OAAO,EACf,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAC5B,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Signs a transaction.
3
+ *
4
+ * @param apiClient - The API client.
5
+ * @param {SignTransactionOptions} options - Parameters for signing the transaction.
6
+ * @param {string} options.address - The address to sign the transaction for.
7
+ * @param {string} options.transaction - The transaction to sign.
8
+ * @param {string} [options.idempotencyKey] - An idempotency key.
9
+ *
10
+ * @returns A promise that resolves to the signature.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Create a Solana account
15
+ * const account = await cdp.solana.createAccount();
16
+ *
17
+ * // Add your transaction instructions here
18
+ * const transaction = new Transaction()
19
+ *
20
+ * // Make sure to set requireAllSignatures to false, since signing will be done through the API
21
+ * const serializedTransaction = transaction.serialize({
22
+ * requireAllSignatures: false,
23
+ * });
24
+ *
25
+ * // Base64 encode the serialized transaction
26
+ * const transaction = Buffer.from(serializedTransaction).toString("base64");
27
+ *
28
+ * // When you want to sign a transaction, you can do so by address and base64 encoded transaction
29
+ * const signature = await signTransaction(cdp.solana, {
30
+ * address: account.address,
31
+ * transaction,
32
+ * });
33
+ * ```
34
+ */
35
+ export async function signTransaction(apiClient, options) {
36
+ const signature = await apiClient.signSolanaTransaction(options.address, {
37
+ transaction: options.transaction,
38
+ }, options.idempotencyKey);
39
+ return {
40
+ signature: signature.signedTransaction,
41
+ };
42
+ }
43
+ //# sourceMappingURL=signTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../actions/solana/signTransaction.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA+B,EAC/B,OAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,qBAAqB,CACrD,OAAO,CAAC,OAAO,EACf;QACE,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,iBAAiB;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../actions/solana/types.ts"],"names":[],"mappings":""}
package/_esm/analytics.js CHANGED
@@ -1,16 +1,26 @@
1
1
  import md5 from "md5";
2
+ import { APIError } from "./openapi-client/errors.js";
2
3
  // This is a public client id for the analytics service
3
4
  const publicClientId = "54f2ee2fb3d2b901a829940d70fbfc13";
5
+ export const Analytics = {
6
+ identifier: "", // set in cdp.ts
7
+ wrapClassWithErrorTracking,
8
+ wrapObjectMethodsWithErrorTracking,
9
+ sendEvent,
10
+ };
4
11
  /**
5
12
  * Sends an analytics event to the default endpoint
6
13
  *
7
14
  * @param event - The event data containing event-specific fields
8
15
  * @returns Promise that resolves when the event is sent
9
16
  */
10
- export async function sendEvent(event) {
17
+ async function sendEvent(event) {
18
+ if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
19
+ return;
20
+ }
11
21
  const timestamp = Date.now();
12
22
  const enhancedEvent = {
13
- user_id: event.apiKeyId,
23
+ user_id: Analytics.identifier,
14
24
  event_type: event.name,
15
25
  platform: "server",
16
26
  timestamp,
@@ -45,10 +55,12 @@ export async function sendEvent(event) {
45
55
  * Wraps all methods of a class with error tracking.
46
56
  *
47
57
  * @param ClassToWrap - The class whose prototype methods should be wrapped.
48
- * @param apiKeyId - The API key ID to use for the error tracking.
49
58
  */
50
59
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- export function wrapClassWithErrorTracking(ClassToWrap, apiKeyId) {
60
+ function wrapClassWithErrorTracking(ClassToWrap) {
61
+ if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
62
+ return;
63
+ }
52
64
  const methods = Object.getOwnPropertyNames(ClassToWrap.prototype).filter(name => name !== "constructor" && typeof ClassToWrap.prototype[name] === "function");
53
65
  for (const method of methods) {
54
66
  const originalMethod = ClassToWrap.prototype[method];
@@ -57,12 +69,11 @@ export function wrapClassWithErrorTracking(ClassToWrap, apiKeyId) {
57
69
  return await originalMethod.apply(this, args);
58
70
  }
59
71
  catch (error) {
60
- if (!(error instanceof Error)) {
61
- return;
72
+ if (!shouldTrackError(error)) {
73
+ throw error;
62
74
  }
63
75
  const { message, stack } = error;
64
76
  sendEvent({
65
- apiKeyId,
66
77
  method,
67
78
  message,
68
79
  stack,
@@ -75,4 +86,54 @@ export function wrapClassWithErrorTracking(ClassToWrap, apiKeyId) {
75
86
  };
76
87
  }
77
88
  }
89
+ /**
90
+ * Wraps all methods of an object with error tracking.
91
+ *
92
+ * @param object - The object whose methods should be wrapped.
93
+ */
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ function wrapObjectMethodsWithErrorTracking(object) {
96
+ if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
97
+ return;
98
+ }
99
+ const methods = Object.getOwnPropertyNames(object).filter(name => name !== "constructor" && typeof object[name] === "function");
100
+ for (const method of methods) {
101
+ const originalMethod = object[method];
102
+ object[method] = async function (...args) {
103
+ try {
104
+ return await originalMethod.apply(this, args);
105
+ }
106
+ catch (error) {
107
+ if (!shouldTrackError(error)) {
108
+ throw error;
109
+ }
110
+ const { message, stack } = error;
111
+ sendEvent({
112
+ method,
113
+ message,
114
+ stack,
115
+ name: "error",
116
+ }).catch(() => {
117
+ // ignore error
118
+ });
119
+ throw error;
120
+ }
121
+ };
122
+ }
123
+ }
124
+ /**
125
+ * Filters out non-errors and API errors
126
+ *
127
+ * @param error - The error to check.
128
+ * @returns True if the error should be tracked, false otherwise.
129
+ */
130
+ function shouldTrackError(error) {
131
+ if (!(error instanceof Error)) {
132
+ return false;
133
+ }
134
+ if (error instanceof APIError) {
135
+ return false;
136
+ }
137
+ return true;
138
+ }
78
139
  //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AA4BtB,uDAAuD;AACvD,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAgB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,UAAU,EAAE,KAAK,CAAC,IAAI;QACtB,QAAQ,EAAE,QAAQ;QAClB,SAAS;QACT,gBAAgB,EAAE;YAChB,YAAY,EAAE,SAAS;YACvB,gBAAgB,EAAE,YAAY;YAC9B,GAAG,KAAK;SACT;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,CAAC;IAExD,MAAM,oBAAoB,GAAG;QAC3B,MAAM,EAAE,cAAc;QACtB,CAAC,EAAE,oBAAoB;QACvB,QAAQ;KACT,CAAC;IAEF,MAAM,WAAW,GAAG,+BAA+B,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC;IACzB,MAAM,aAAa,GAAG,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC;IAEnD,MAAM,KAAK,CAAC,aAAa,EAAE;QACzB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,MAAM,UAAU,0BAA0B,CAAC,WAAgB,EAAE,QAAgB;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CACtE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CACpF,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,WAAW,GAAG,IAAe;YAChE,IAAI,CAAC;gBACH,OAAO,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO;gBACT,CAAC;gBAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;gBAEjC,SAAS,CAAC;oBACR,QAAQ;oBACR,MAAM;oBACN,OAAO;oBACP,KAAK;oBACL,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACZ,eAAe;gBACjB,CAAC,CAAC,CAAC;gBAEH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { wrapClassWithErrorTracking } from "../analytics.js";
1
+ import { Analytics } from "../analytics.js";
2
2
  import { CdpOpenApiClient } from "../openapi-client/index.js";
3
3
  import { version } from "../version.js";
4
4
  import { EvmClient } from "./evm/evm.js";
5
+ import { PoliciesClient } from "./policies/policies.js";
5
6
  import { SolanaClient } from "./solana/solana.js";
6
7
  /**
7
8
  * The main client for interacting with the CDP API.
@@ -11,6 +12,8 @@ export class CdpClient {
11
12
  evm;
12
13
  /** Namespace containing all Solana methods. */
13
14
  solana;
15
+ /** Namespace containing all Policies methods. */
16
+ policies;
14
17
  /**
15
18
  * The CdpClient is the main class for interacting with the CDP API.
16
19
  *
@@ -90,12 +93,15 @@ For more information, see: https://github.com/coinbase/cdp-sdk/blob/main/typescr
90
93
  sourceVersion: version,
91
94
  });
92
95
  if (process.env.DISABLE_CDP_ERROR_REPORTING !== "true") {
93
- wrapClassWithErrorTracking(CdpClient, apiKeyId);
94
- wrapClassWithErrorTracking(EvmClient, apiKeyId);
95
- wrapClassWithErrorTracking(SolanaClient, apiKeyId);
96
+ Analytics.identifier = apiKeyId;
97
+ Analytics.wrapClassWithErrorTracking(CdpClient);
98
+ Analytics.wrapClassWithErrorTracking(EvmClient);
99
+ Analytics.wrapClassWithErrorTracking(SolanaClient);
100
+ Analytics.wrapClassWithErrorTracking(PoliciesClient);
96
101
  }
97
102
  this.evm = new EvmClient();
98
103
  this.solana = new SolanaClient();
104
+ this.policies = new PoliciesClient();
99
105
  }
100
106
  }
101
107
  //# sourceMappingURL=cdp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../client/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,4CAA4C;IACrC,GAAG,CAAY;IAEtB,+CAA+C;IACxC,MAAM,CAAe;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,UAA4B,EAAE;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAChG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE3E,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC,CAAC;QACC,CAAC;QAED,gBAAgB,CAAC,SAAS,CAAC;YACzB,GAAG,OAAO;YACV,QAAQ;YACR,YAAY;YACZ,YAAY;YACZ,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM,EAAE,CAAC;YACvD,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../client/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,4CAA4C;IACrC,GAAG,CAAY;IAEtB,+CAA+C;IACxC,MAAM,CAAe;IAE5B,iDAAiD;IAC1C,QAAQ,CAAiB;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,UAA4B,EAAE;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAChG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE3E,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC,CAAC;QACC,CAAC;QAED,gBAAgB,CAAC,SAAS,CAAC;YACzB,GAAG,OAAO;YACV,QAAQ;YACR,YAAY;YACZ,YAAY;YACZ,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM,EAAE,CAAC;YACvD,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;YAChC,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAChD,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAChD,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACnD,SAAS,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { toEvmServerAccount } from "../../accounts/evm/toEvmServerAccount.js";
2
2
  import { toEvmSmartAccount } from "../../accounts/evm/toEvmSmartAccount.js";
3
+ import { getUserOperation } from "../../actions/evm/getUserOperation.js";
3
4
  import { listTokenBalances, } from "../../actions/evm/listTokenBalances.js";
4
5
  import { requestFaucet, } from "../../actions/evm/requestFaucet.js";
5
6
  import { sendTransaction } from "../../actions/evm/sendTransaction.js";
6
7
  import { sendUserOperation, } from "../../actions/evm/sendUserOperation.js";
7
8
  import { waitForUserOperation, } from "../../actions/evm/waitForUserOperation.js";
9
+ import { Analytics } from "../../analytics.js";
8
10
  import { APIError } from "../../openapi-client/errors.js";
9
11
  import { CdpOpenApiClient } from "../../openapi-client/index.js";
10
12
  /**
@@ -46,12 +48,14 @@ export class EvmClient {
46
48
  * ```
47
49
  */
48
50
  async createAccount(options = {}) {
49
- const account = await CdpOpenApiClient.createEvmAccount({
51
+ const openApiAccount = await CdpOpenApiClient.createEvmAccount({
50
52
  name: options.name,
51
53
  }, options.idempotencyKey);
52
- return toEvmServerAccount(CdpOpenApiClient, {
53
- account,
54
+ const account = toEvmServerAccount(CdpOpenApiClient, {
55
+ account: openApiAccount,
54
56
  });
57
+ Analytics.wrapObjectMethodsWithErrorTracking(account);
58
+ return account;
55
59
  }
56
60
  /**
57
61
  * Creates a new CDP EVM smart account.
@@ -99,13 +103,15 @@ export class EvmClient {
99
103
  * ```
100
104
  */
101
105
  async createSmartAccount(options) {
102
- const smartAccount = await CdpOpenApiClient.createEvmSmartAccount({
106
+ const openApiSmartAccount = await CdpOpenApiClient.createEvmSmartAccount({
103
107
  owners: [options.owner.address],
104
108
  }, options.idempotencyKey);
105
- return toEvmSmartAccount(CdpOpenApiClient, {
106
- smartAccount,
109
+ const smartAccount = toEvmSmartAccount(CdpOpenApiClient, {
110
+ smartAccount: openApiSmartAccount,
107
111
  owner: options.owner,
108
112
  });
113
+ Analytics.wrapObjectMethodsWithErrorTracking(smartAccount);
114
+ return smartAccount;
109
115
  }
110
116
  /**
111
117
  * Gets a CDP EVM account.
@@ -133,7 +139,7 @@ export class EvmClient {
133
139
  * ```
134
140
  */
135
141
  async getAccount(options) {
136
- const account = await (() => {
142
+ const openApiAccount = await (() => {
137
143
  if (options.address) {
138
144
  return CdpOpenApiClient.getEvmAccount(options.address);
139
145
  }
@@ -142,9 +148,11 @@ export class EvmClient {
142
148
  }
143
149
  throw new Error("Either address or name must be provided");
144
150
  })();
145
- return toEvmServerAccount(CdpOpenApiClient, {
146
- account,
151
+ const account = toEvmServerAccount(CdpOpenApiClient, {
152
+ account: openApiAccount,
147
153
  });
154
+ Analytics.wrapObjectMethodsWithErrorTracking(account);
155
+ return account;
148
156
  }
149
157
  /**
150
158
  * Gets a CDP EVM smart account.
@@ -166,11 +174,13 @@ export class EvmClient {
166
174
  * ```
167
175
  */
168
176
  async getSmartAccount(options) {
169
- const smartAccount = await CdpOpenApiClient.getEvmSmartAccount(options.address);
170
- return toEvmSmartAccount(CdpOpenApiClient, {
171
- smartAccount,
177
+ const openApiSmartAccount = await CdpOpenApiClient.getEvmSmartAccount(options.address);
178
+ const smartAccount = toEvmSmartAccount(CdpOpenApiClient, {
179
+ smartAccount: openApiSmartAccount,
172
180
  owner: options.owner,
173
181
  });
182
+ Analytics.wrapObjectMethodsWithErrorTracking(smartAccount);
183
+ return smartAccount;
174
184
  }
175
185
  /**
176
186
  * Gets a CDP EVM account, or creates one if it doesn't exist.
@@ -231,18 +241,7 @@ export class EvmClient {
231
241
  * ```
232
242
  */
233
243
  async getUserOperation(options) {
234
- const userOp = await CdpOpenApiClient.getUserOperation(options.smartAccount.address, options.userOpHash);
235
- return {
236
- calls: userOp.calls.map(call => ({
237
- to: call.to,
238
- value: BigInt(call.value),
239
- data: call.data,
240
- })),
241
- network: userOp.network,
242
- status: userOp.status,
243
- transactionHash: userOp.transactionHash,
244
- userOpHash: userOp.userOpHash,
245
- };
244
+ return getUserOperation(CdpOpenApiClient, options);
246
245
  }
247
246
  /**
248
247
  * Lists CDP EVM accounts.
@@ -274,9 +273,13 @@ export class EvmClient {
274
273
  pageToken: options.pageToken,
275
274
  });
276
275
  return {
277
- accounts: ethAccounts.accounts.map(account => toEvmServerAccount(CdpOpenApiClient, {
278
- account: account,
279
- })),
276
+ accounts: ethAccounts.accounts.map(account => {
277
+ const evmAccount = toEvmServerAccount(CdpOpenApiClient, {
278
+ account,
279
+ });
280
+ Analytics.wrapObjectMethodsWithErrorTracking(evmAccount);
281
+ return evmAccount;
282
+ }),
280
283
  nextPageToken: ethAccounts.nextPageToken,
281
284
  };
282
285
  }
@@ -568,6 +571,62 @@ export class EvmClient {
568
571
  signature: signature.signature,
569
572
  };
570
573
  }
574
+ /**
575
+ * Signs an EIP-712 message.
576
+ *
577
+ * @param {SignTypedDataOptions} options - Parameters for signing the EIP-712 message.
578
+ * @returns A promise that resolves to the signature.
579
+ *
580
+ * @example
581
+ * ```ts
582
+ * const signature = await cdp.evm.signTypedData({
583
+ * address: account.address,
584
+ * domain: {
585
+ * name: "Permit2",
586
+ * chainId: 1,
587
+ * verifyingContract: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
588
+ * },
589
+ * types: {
590
+ * EIP712Domain: [
591
+ * { name: "name", type: "string" },
592
+ * { name: "chainId", type: "uint256" },
593
+ * { name: "verifyingContract", type: "address" },
594
+ * ],
595
+ * PermitTransferFrom: [
596
+ * { name: "permitted", type: "TokenPermissions" },
597
+ * { name: "spender", type: "address" },
598
+ * { name: "nonce", type: "uint256" },
599
+ * { name: "deadline", type: "uint256" },
600
+ * ],
601
+ * TokenPermissions: [
602
+ * { name: "token", type: "address" },
603
+ * { name: "amount", type: "uint256" },
604
+ * ],
605
+ * },
606
+ * primaryType: "PermitTransferFrom",
607
+ * message: {
608
+ * permitted: {
609
+ * token: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
610
+ * amount: "1000000",
611
+ * },
612
+ * spender: "0xFfFfFfFFfFFfFFfFFfFFFFFffFFFffffFfFFFfFf",
613
+ * nonce: "0",
614
+ * deadline: "1717123200",
615
+ * },
616
+ * });
617
+ * ```
618
+ */
619
+ async signTypedData(options) {
620
+ const signature = await CdpOpenApiClient.signEvmTypedData(options.address, {
621
+ domain: options.domain,
622
+ types: options.types,
623
+ primaryType: options.primaryType,
624
+ message: options.message,
625
+ }, options.idempotencyKey);
626
+ return {
627
+ signature: signature.signature,
628
+ };
629
+ }
571
630
  /**
572
631
  * Signs an EVM transaction.
573
632
  *
@@ -606,6 +665,55 @@ export class EvmClient {
606
665
  signature: signature.signedTransaction,
607
666
  };
608
667
  }
668
+ /**
669
+ * Updates a CDP EVM account.
670
+ *
671
+ * @param {UpdateEvmAccountOptions} [options] - Optional parameters for creating the account.
672
+ * @param {string} options.address - The address of the account to update
673
+ * @param {UpdateEvmAccountBody} options.update - An object containing account fields to update.
674
+ * @param {string} [options.update.name] - The new name for the account.
675
+ * @param {string} [options.update.accountPolicy] - The ID of a Policy to apply to the account.
676
+ * @param {string} [options.idempotencyKey] - An idempotency key.
677
+ *
678
+ * @returns A promise that resolves to the updated account.
679
+ *
680
+ * @example **With a name**
681
+ * ```ts
682
+ * const account = await cdp.evm.updateAccount({ address: "0x...", update: { name: "New Name" } });
683
+ * ```
684
+ *
685
+ * @example **With an account policy**
686
+ * ```ts
687
+ * const account = await cdp.evm.updateAccount({ address: "0x...", update: { accountPolicy: "73bcaeeb-d7af-4615-b064-42b5fe83a31e" } });
688
+ * ```
689
+ *
690
+ * @example **With an idempotency key**
691
+ * ```ts
692
+ * const idempotencyKey = uuidv4();
693
+ *
694
+ * // First call
695
+ * await cdp.evm.updateAccount({
696
+ * address: "0x...",
697
+ * update: { accountPolicy: "73bcaeeb-d7af-4615-b064-42b5fe83a31e" },
698
+ * idempotencyKey,
699
+ * });
700
+ *
701
+ * // Second call with the same idempotency key will not update
702
+ * await cdp.evm.updateAccount({
703
+ * address: '0x...',
704
+ * update: { name: "" },
705
+ * idempotencyKey,
706
+ * });
707
+ * ```
708
+ */
709
+ async updateAccount(options) {
710
+ const openApiAccount = await CdpOpenApiClient.updateEvmAccount(options.address, options.update, options.idempotencyKey);
711
+ const account = toEvmServerAccount(CdpOpenApiClient, {
712
+ account: openApiAccount,
713
+ });
714
+ Analytics.wrapObjectMethodsWithErrorTracking(account);
715
+ return account;
716
+ }
609
717
  /**
610
718
  * Waits for a user operation to complete or fail.
611
719
  *