@coinbase/cdp-sdk 1.44.1 → 1.46.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 (282) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/README.md +164 -43
  3. package/_cjs/accounts/evm/eip6492.js +49 -0
  4. package/_cjs/accounts/evm/eip6492.js.map +1 -0
  5. package/_cjs/accounts/evm/toEvmDelegatedAccount.js +27 -0
  6. package/_cjs/accounts/evm/toEvmDelegatedAccount.js.map +1 -0
  7. package/_cjs/accounts/evm/toEvmServerAccount.js +127 -55
  8. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  9. package/_cjs/accounts/evm/toEvmSmartAccount.js +115 -45
  10. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  11. package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js +31 -0
  12. package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
  13. package/_cjs/accounts/solana/toSolanaAccount.js +49 -19
  14. package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -1
  15. package/_cjs/actions/evm/waitForEvmEip7702DelegationStatus.js +37 -0
  16. package/_cjs/actions/evm/waitForEvmEip7702DelegationStatus.js.map +1 -0
  17. package/_cjs/actions/solana/transfer.js.map +1 -1
  18. package/_cjs/actions/solana/utils.js +9 -9
  19. package/_cjs/actions/solana/utils.js.map +1 -1
  20. package/_cjs/analytics.js +10 -228
  21. package/_cjs/analytics.js.map +1 -1
  22. package/_cjs/auth/utils/http.js +1 -0
  23. package/_cjs/auth/utils/http.js.map +1 -1
  24. package/_cjs/client/cdp.js +4 -7
  25. package/_cjs/client/cdp.js.map +1 -1
  26. package/_cjs/client/end-user/endUser.js +385 -4
  27. package/_cjs/client/end-user/endUser.js.map +1 -1
  28. package/_cjs/client/end-user/toEndUserAccount.js +201 -23
  29. package/_cjs/client/end-user/toEndUserAccount.js.map +1 -1
  30. package/_cjs/client/evm/evm.js +482 -227
  31. package/_cjs/client/evm/evm.js.map +1 -1
  32. package/_cjs/client/policies/policies.js +41 -11
  33. package/_cjs/client/policies/policies.js.map +1 -1
  34. package/_cjs/client/solana/solana.js +215 -118
  35. package/_cjs/client/solana/solana.js.map +1 -1
  36. package/_cjs/index.js +3 -1
  37. package/_cjs/index.js.map +1 -1
  38. package/_cjs/openapi-client/cdpApiClient.js +32 -0
  39. package/_cjs/openapi-client/cdpApiClient.js.map +1 -1
  40. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +178 -9
  41. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  42. package/_cjs/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.js +261 -0
  43. package/_cjs/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.js.map +1 -0
  44. package/_cjs/openapi-client/generated/end-user-accounts/end-user-accounts.js.map +1 -1
  45. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +30 -1
  46. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  47. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +2 -2
  48. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
  49. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -1
  50. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
  51. package/_cjs/openapi-client/generated/faucets/faucets.js +6 -5
  52. package/_cjs/openapi-client/generated/faucets/faucets.js.map +1 -1
  53. package/_cjs/openapi-client/generated/onchain-data/onchain-data.js.map +1 -1
  54. package/_cjs/openapi-client/generated/onramp/onramp.js +15 -1
  55. package/_cjs/openapi-client/generated/onramp/onramp.js.map +1 -1
  56. package/_cjs/openapi-client/generated/policy-engine/policy-engine.js.map +1 -1
  57. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
  58. package/_cjs/openapi-client/generated/solana-token-balances/solana-token-balances.js.map +1 -1
  59. package/_cjs/openapi-client/generated/sql-api/sql-api.js +75 -0
  60. package/_cjs/openapi-client/generated/sql-api/sql-api.js.map +1 -0
  61. package/_cjs/openapi-client/generated/webhooks/webhooks.js.map +1 -1
  62. package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -1
  63. package/_cjs/openapi-client/index.js +4 -1
  64. package/_cjs/openapi-client/index.js.map +1 -1
  65. package/_cjs/policies/evmSchema.js +127 -1
  66. package/_cjs/policies/evmSchema.js.map +1 -1
  67. package/_cjs/policies/solanaSchema.js +102 -1
  68. package/_cjs/policies/solanaSchema.js.map +1 -1
  69. package/_cjs/policies/types.js +7 -0
  70. package/_cjs/policies/types.js.map +1 -1
  71. package/_cjs/utils/export.js +6 -5
  72. package/_cjs/utils/export.js.map +1 -1
  73. package/_cjs/version.js +1 -1
  74. package/_esm/accounts/evm/eip6492.js +46 -0
  75. package/_esm/accounts/evm/eip6492.js.map +1 -0
  76. package/_esm/accounts/evm/toEvmDelegatedAccount.js +24 -0
  77. package/_esm/accounts/evm/toEvmDelegatedAccount.js.map +1 -0
  78. package/_esm/accounts/evm/toEvmServerAccount.js +127 -55
  79. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  80. package/_esm/accounts/evm/toEvmSmartAccount.js +115 -45
  81. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  82. package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js +31 -0
  83. package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
  84. package/_esm/accounts/solana/toSolanaAccount.js +49 -19
  85. package/_esm/accounts/solana/toSolanaAccount.js.map +1 -1
  86. package/_esm/actions/evm/waitForEvmEip7702DelegationStatus.js +34 -0
  87. package/_esm/actions/evm/waitForEvmEip7702DelegationStatus.js.map +1 -0
  88. package/_esm/actions/solana/transfer.js.map +1 -1
  89. package/_esm/actions/solana/utils.js +9 -9
  90. package/_esm/actions/solana/utils.js.map +1 -1
  91. package/_esm/analytics.js +9 -227
  92. package/_esm/analytics.js.map +1 -1
  93. package/_esm/auth/utils/http.js +1 -0
  94. package/_esm/auth/utils/http.js.map +1 -1
  95. package/_esm/client/cdp.js +4 -7
  96. package/_esm/client/cdp.js.map +1 -1
  97. package/_esm/client/end-user/endUser.js +385 -4
  98. package/_esm/client/end-user/endUser.js.map +1 -1
  99. package/_esm/client/end-user/toEndUserAccount.js +201 -23
  100. package/_esm/client/end-user/toEndUserAccount.js.map +1 -1
  101. package/_esm/client/evm/evm.js +482 -227
  102. package/_esm/client/evm/evm.js.map +1 -1
  103. package/_esm/client/policies/policies.js +41 -11
  104. package/_esm/client/policies/policies.js.map +1 -1
  105. package/_esm/client/solana/solana.js +215 -118
  106. package/_esm/client/solana/solana.js.map +1 -1
  107. package/_esm/index.js +1 -0
  108. package/_esm/index.js.map +1 -1
  109. package/_esm/openapi-client/cdpApiClient.js +32 -0
  110. package/_esm/openapi-client/cdpApiClient.js.map +1 -1
  111. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +175 -7
  112. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  113. package/_esm/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.js +243 -0
  114. package/_esm/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.js.map +1 -0
  115. package/_esm/openapi-client/generated/end-user-accounts/end-user-accounts.js.map +1 -1
  116. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +27 -0
  117. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  118. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +2 -2
  119. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
  120. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -1
  121. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
  122. package/_esm/openapi-client/generated/faucets/faucets.js +6 -5
  123. package/_esm/openapi-client/generated/faucets/faucets.js.map +1 -1
  124. package/_esm/openapi-client/generated/onchain-data/onchain-data.js.map +1 -1
  125. package/_esm/openapi-client/generated/onramp/onramp.js +13 -0
  126. package/_esm/openapi-client/generated/onramp/onramp.js.map +1 -1
  127. package/_esm/openapi-client/generated/policy-engine/policy-engine.js.map +1 -1
  128. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
  129. package/_esm/openapi-client/generated/solana-token-balances/solana-token-balances.js.map +1 -1
  130. package/_esm/openapi-client/generated/sql-api/sql-api.js +70 -0
  131. package/_esm/openapi-client/generated/sql-api/sql-api.js.map +1 -0
  132. package/_esm/openapi-client/generated/webhooks/webhooks.js.map +1 -1
  133. package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -1
  134. package/_esm/openapi-client/index.js +4 -1
  135. package/_esm/openapi-client/index.js.map +1 -1
  136. package/_esm/policies/evmSchema.js +126 -0
  137. package/_esm/policies/evmSchema.js.map +1 -1
  138. package/_esm/policies/solanaSchema.js +101 -0
  139. package/_esm/policies/solanaSchema.js.map +1 -1
  140. package/_esm/policies/types.js +9 -2
  141. package/_esm/policies/types.js.map +1 -1
  142. package/_esm/utils/export.js +6 -5
  143. package/_esm/utils/export.js.map +1 -1
  144. package/_esm/version.js +1 -1
  145. package/_types/accounts/evm/eip6492.d.ts +17 -0
  146. package/_types/accounts/evm/eip6492.d.ts.map +1 -0
  147. package/_types/accounts/evm/toEvmDelegatedAccount.d.ts +13 -0
  148. package/_types/accounts/evm/toEvmDelegatedAccount.d.ts.map +1 -0
  149. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  150. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  151. package/_types/accounts/evm/toNetworkScopedEvmSmartAccount.d.ts +4 -4
  152. package/_types/accounts/evm/toNetworkScopedEvmSmartAccount.d.ts.map +1 -1
  153. package/_types/accounts/evm/types.d.ts +3 -2
  154. package/_types/accounts/evm/types.d.ts.map +1 -1
  155. package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -1
  156. package/_types/actions/evm/waitForEvmEip7702DelegationStatus.d.ts +32 -0
  157. package/_types/actions/evm/waitForEvmEip7702DelegationStatus.d.ts.map +1 -0
  158. package/_types/actions/solana/transfer.d.ts +3 -4
  159. package/_types/actions/solana/transfer.d.ts.map +1 -1
  160. package/_types/actions/solana/types.d.ts +79 -29
  161. package/_types/actions/solana/types.d.ts.map +1 -1
  162. package/_types/actions/solana/utils.d.ts +10 -9
  163. package/_types/actions/solana/utils.d.ts.map +1 -1
  164. package/_types/analytics.d.ts +5 -38
  165. package/_types/analytics.d.ts.map +1 -1
  166. package/_types/auth/utils/http.d.ts.map +1 -1
  167. package/_types/client/cdp.d.ts +4 -0
  168. package/_types/client/cdp.d.ts.map +1 -1
  169. package/_types/client/end-user/endUser.d.ts +272 -1
  170. package/_types/client/end-user/endUser.d.ts.map +1 -1
  171. package/_types/client/end-user/endUser.types.d.ts +491 -1
  172. package/_types/client/end-user/endUser.types.d.ts.map +1 -1
  173. package/_types/client/end-user/toEndUserAccount.d.ts +4 -1
  174. package/_types/client/end-user/toEndUserAccount.d.ts.map +1 -1
  175. package/_types/client/evm/evm.d.ts +54 -1
  176. package/_types/client/evm/evm.d.ts.map +1 -1
  177. package/_types/client/evm/evm.types.d.ts +29 -2
  178. package/_types/client/evm/evm.types.d.ts.map +1 -1
  179. package/_types/client/policies/policies.d.ts.map +1 -1
  180. package/_types/client/solana/solana.d.ts +38 -12
  181. package/_types/client/solana/solana.d.ts.map +1 -1
  182. package/_types/index.d.ts +3 -1
  183. package/_types/index.d.ts.map +1 -1
  184. package/_types/openapi-client/cdpApiClient.d.ts.map +1 -1
  185. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +884 -90
  186. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  187. package/_types/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.d.ts +163 -0
  188. package/_types/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.d.ts.map +1 -0
  189. package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.d.ts +9 -9
  190. package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.d.ts.map +1 -1
  191. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +35 -15
  192. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -1
  193. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts +14 -14
  194. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts.map +1 -1
  195. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts +3 -3
  196. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts.map +1 -1
  197. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts +2 -2
  198. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts.map +1 -1
  199. package/_types/openapi-client/generated/faucets/faucets.d.ts +9 -8
  200. package/_types/openapi-client/generated/faucets/faucets.d.ts.map +1 -1
  201. package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts +3 -3
  202. package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts.map +1 -1
  203. package/_types/openapi-client/generated/onramp/onramp.d.ts +12 -5
  204. package/_types/openapi-client/generated/onramp/onramp.d.ts.map +1 -1
  205. package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts +6 -6
  206. package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts.map +1 -1
  207. package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts +12 -12
  208. package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts.map +1 -1
  209. package/_types/openapi-client/generated/solana-token-balances/solana-token-balances.d.ts +2 -2
  210. package/_types/openapi-client/generated/solana-token-balances/solana-token-balances.d.ts.map +1 -1
  211. package/_types/openapi-client/generated/sql-api/sql-api.d.ts +73 -0
  212. package/_types/openapi-client/generated/sql-api/sql-api.d.ts.map +1 -0
  213. package/_types/openapi-client/generated/webhooks/webhooks.d.ts +6 -6
  214. package/_types/openapi-client/generated/webhooks/webhooks.d.ts.map +1 -1
  215. package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts +4 -4
  216. package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts.map +1 -1
  217. package/_types/openapi-client/index.d.ts +23 -3
  218. package/_types/openapi-client/index.d.ts.map +1 -1
  219. package/_types/policies/evmSchema.d.ts +3128 -1064
  220. package/_types/policies/evmSchema.d.ts.map +1 -1
  221. package/_types/policies/solanaSchema.d.ts +1411 -47
  222. package/_types/policies/solanaSchema.d.ts.map +1 -1
  223. package/_types/policies/types.d.ts +8427 -2942
  224. package/_types/policies/types.d.ts.map +1 -1
  225. package/_types/types/contract.d.ts.map +1 -1
  226. package/_types/utils/export.d.ts +1 -1
  227. package/_types/utils/export.d.ts.map +1 -1
  228. package/_types/version.d.ts +1 -1
  229. package/accounts/evm/eip6492.ts +60 -0
  230. package/accounts/evm/toEvmDelegatedAccount.ts +26 -0
  231. package/accounts/evm/toEvmServerAccount.ts +115 -67
  232. package/accounts/evm/toEvmSmartAccount.ts +114 -57
  233. package/accounts/evm/toNetworkScopedEvmSmartAccount.ts +44 -5
  234. package/accounts/evm/types.ts +8 -3
  235. package/accounts/solana/toSolanaAccount.ts +44 -24
  236. package/actions/evm/waitForEvmEip7702DelegationStatus.ts +57 -0
  237. package/actions/solana/transfer.ts +3 -3
  238. package/actions/solana/types.ts +79 -29
  239. package/actions/solana/utils.ts +13 -11
  240. package/analytics.ts +8 -294
  241. package/auth/utils/http.ts +1 -0
  242. package/client/cdp.ts +6 -8
  243. package/client/end-user/endUser.ts +513 -4
  244. package/client/end-user/endUser.types.ts +598 -0
  245. package/client/end-user/toEndUserAccount.ts +330 -26
  246. package/client/evm/evm.ts +517 -282
  247. package/client/evm/evm.types.ts +45 -2
  248. package/client/policies/policies.ts +41 -16
  249. package/client/solana/solana.ts +233 -153
  250. package/index.ts +36 -1
  251. package/openapi-client/cdpApiClient.ts +34 -0
  252. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +1155 -172
  253. package/openapi-client/generated/embedded-wallets-core-functionality/embedded-wallets-core-functionality.ts +455 -0
  254. package/openapi-client/generated/end-user-accounts/end-user-accounts.ts +12 -9
  255. package/openapi-client/generated/evm-accounts/evm-accounts.ts +66 -14
  256. package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.ts +16 -16
  257. package/openapi-client/generated/evm-swaps/evm-swaps.ts +3 -3
  258. package/openapi-client/generated/evm-token-balances/evm-token-balances.ts +2 -2
  259. package/openapi-client/generated/faucets/faucets.ts +9 -8
  260. package/openapi-client/generated/onchain-data/onchain-data.ts +3 -3
  261. package/openapi-client/generated/onramp/onramp.ts +28 -4
  262. package/openapi-client/generated/policy-engine/policy-engine.ts +12 -6
  263. package/openapi-client/generated/solana-accounts/solana-accounts.ts +12 -12
  264. package/openapi-client/generated/solana-token-balances/solana-token-balances.ts +2 -2
  265. package/openapi-client/generated/sql-api/sql-api.ts +92 -0
  266. package/openapi-client/generated/webhooks/webhooks.ts +6 -6
  267. package/openapi-client/generated/x402-facilitator/x402-facilitator.ts +6 -4
  268. package/openapi-client/index.ts +4 -1
  269. package/package.json +7 -8
  270. package/policies/evmSchema.ts +164 -0
  271. package/policies/solanaSchema.ts +130 -0
  272. package/policies/types.ts +14 -0
  273. package/types/contract.ts +2 -4
  274. package/utils/export.ts +6 -5
  275. package/version.ts +1 -1
  276. package/_cjs/openapi-client/generated/sql-api-alpha/sql-api-alpha.js +0 -55
  277. package/_cjs/openapi-client/generated/sql-api-alpha/sql-api-alpha.js.map +0 -1
  278. package/_esm/openapi-client/generated/sql-api-alpha/sql-api-alpha.js +0 -50
  279. package/_esm/openapi-client/generated/sql-api-alpha/sql-api-alpha.js.map +0 -1
  280. package/_types/openapi-client/generated/sql-api-alpha/sql-api-alpha.d.ts +0 -53
  281. package/_types/openapi-client/generated/sql-api-alpha/sql-api-alpha.d.ts.map +0 -1
  282. package/openapi-client/generated/sql-api-alpha/sql-api-alpha.ts +0 -72
@@ -2,9 +2,66 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toEndUserAccount = toEndUserAccount;
4
4
  const analytics_js_1 = require("../../analytics.js");
5
+ /**
6
+ * Returns the project ID or throws if not configured.
7
+ * Used by delegation operations that require a project ID.
8
+ *
9
+ * @param projectId - The project ID to validate.
10
+ * @returns The validated project ID.
11
+ */
12
+ function requireProjectId(projectId) {
13
+ if (!projectId) {
14
+ throw new Error("Missing required project ID for delegation operation. " +
15
+ "Set the CDP_PROJECT_ID environment variable or pass projectId to the CdpClient constructor.");
16
+ }
17
+ return projectId;
18
+ }
19
+ /**
20
+ * Resolves the first EVM EOA address for this end user, or throws if none exist and no override was provided.
21
+ *
22
+ * @param endUser - The OpenAPI end user.
23
+ * @param override - An optional address override.
24
+ * @returns The resolved EVM address.
25
+ */
26
+ function resolveEvmAddress(endUser, override) {
27
+ const address = override ?? endUser.evmAccountObjects[0]?.address;
28
+ if (!address) {
29
+ throw new Error("No EVM account found on this end user. Provide an explicit address or add an EVM account first.");
30
+ }
31
+ return address;
32
+ }
33
+ /**
34
+ * Resolves the first EVM smart account address for this end user, or throws if none exist and no override was provided.
35
+ *
36
+ * @param endUser - The OpenAPI end user.
37
+ * @param override - An optional address override.
38
+ * @returns The resolved EVM smart account address.
39
+ */
40
+ function resolveEvmSmartAccountAddress(endUser, override) {
41
+ const address = override ?? endUser.evmSmartAccountObjects[0]?.address;
42
+ if (!address) {
43
+ throw new Error("No EVM smart account found on this end user. Provide an explicit address or add an EVM smart account first.");
44
+ }
45
+ return address;
46
+ }
47
+ /**
48
+ * Resolves the first Solana address for this end user, or throws if none exist and no override was provided.
49
+ *
50
+ * @param endUser - The OpenAPI end user.
51
+ * @param override - An optional address override.
52
+ * @returns The resolved Solana address.
53
+ */
54
+ function resolveSolanaAddress(endUser, override) {
55
+ const address = override ?? endUser.solanaAccountObjects[0]?.address;
56
+ if (!address) {
57
+ throw new Error("No Solana account found on this end user. Provide an explicit address or add a Solana account first.");
58
+ }
59
+ return address;
60
+ }
5
61
  /**
6
62
  * Creates an EndUserAccount instance with actions from an existing OpenAPI EndUser.
7
- * This wraps the raw API response and adds convenience methods for adding accounts.
63
+ * This wraps the raw API response and adds convenience methods for adding accounts
64
+ * and performing delegated signing/sending operations.
8
65
  *
9
66
  * @param apiClient - The API client.
10
67
  * @param options - Configuration options.
@@ -12,38 +69,159 @@ const analytics_js_1 = require("../../analytics.js");
12
69
  * @returns An EndUserAccount instance with action methods.
13
70
  */
14
71
  function toEndUserAccount(apiClient, options) {
72
+ const { endUser, projectId } = options;
15
73
  const endUserAccount = {
16
74
  // Pass through all properties from the OpenAPI EndUser
17
- userId: options.endUser.userId,
18
- authenticationMethods: options.endUser.authenticationMethods,
19
- mfaMethods: options.endUser.mfaMethods,
20
- evmAccounts: options.endUser.evmAccounts,
21
- evmAccountObjects: options.endUser.evmAccountObjects,
22
- evmSmartAccounts: options.endUser.evmSmartAccounts,
23
- evmSmartAccountObjects: options.endUser.evmSmartAccountObjects,
24
- solanaAccounts: options.endUser.solanaAccounts,
25
- solanaAccountObjects: options.endUser.solanaAccountObjects,
26
- createdAt: options.endUser.createdAt,
27
- // Add action methods
75
+ userId: endUser.userId,
76
+ authenticationMethods: endUser.authenticationMethods,
77
+ mfaMethods: endUser.mfaMethods,
78
+ evmAccounts: endUser.evmAccounts,
79
+ evmAccountObjects: endUser.evmAccountObjects,
80
+ evmSmartAccounts: endUser.evmSmartAccounts,
81
+ evmSmartAccountObjects: endUser.evmSmartAccountObjects,
82
+ solanaAccounts: endUser.solanaAccounts,
83
+ solanaAccountObjects: endUser.solanaAccountObjects,
84
+ createdAt: endUser.createdAt,
85
+ // ─── Account Management Methods ───
28
86
  async addEvmAccount() {
29
- analytics_js_1.Analytics.trackAction({
30
- action: "end_user_add_evm_account",
31
- });
32
- return apiClient.addEndUserEvmAccount(options.endUser.userId, {});
87
+ analytics_js_1.Analytics.trackAction({ action: "end_user_add_evm_account" });
88
+ return apiClient.addEndUserEvmAccount(endUser.userId, {});
33
89
  },
34
90
  async addEvmSmartAccount(smartAccountOptions) {
35
- analytics_js_1.Analytics.trackAction({
36
- action: "end_user_add_evm_smart_account",
37
- });
38
- return apiClient.addEndUserEvmSmartAccount(options.endUser.userId, {
91
+ analytics_js_1.Analytics.trackAction({ action: "end_user_add_evm_smart_account" });
92
+ return apiClient.addEndUserEvmSmartAccount(endUser.userId, {
39
93
  enableSpendPermissions: smartAccountOptions.enableSpendPermissions,
40
94
  });
41
95
  },
42
96
  async addSolanaAccount() {
43
- analytics_js_1.Analytics.trackAction({
44
- action: "end_user_add_solana_account",
97
+ analytics_js_1.Analytics.trackAction({ action: "end_user_add_solana_account" });
98
+ return apiClient.addEndUserSolanaAccount(endUser.userId, {});
99
+ },
100
+ async revokeDelegation() {
101
+ analytics_js_1.Analytics.trackAction({ action: "end_user_revoke_delegation" });
102
+ await apiClient.revokeDelegationForEndUser(requireProjectId(projectId), endUser.userId, {});
103
+ },
104
+ // ─── Delegated EVM Sign Methods ───
105
+ async signEvmHash(opts) {
106
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_evm_hash" });
107
+ const address = resolveEvmAddress(endUser, opts.address);
108
+ return apiClient.signEvmHashWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
109
+ hash: opts.hash,
110
+ address,
111
+ });
112
+ },
113
+ async signEvmTransaction(opts) {
114
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_evm_transaction" });
115
+ const address = resolveEvmAddress(endUser, opts.address);
116
+ return apiClient.signEvmTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
117
+ address,
118
+ transaction: opts.transaction,
119
+ });
120
+ },
121
+ async signEvmMessage(opts) {
122
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_evm_message" });
123
+ const address = resolveEvmAddress(endUser, opts.address);
124
+ return apiClient.signEvmMessageWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
125
+ address,
126
+ message: opts.message,
127
+ });
128
+ },
129
+ async signEvmTypedData(opts) {
130
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_evm_typed_data" });
131
+ const address = resolveEvmAddress(endUser, opts.address);
132
+ return apiClient.signEvmTypedDataWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
133
+ address,
134
+ typedData: opts.typedData,
135
+ });
136
+ },
137
+ // ─── Delegated EVM Send Methods ───
138
+ async sendEvmTransaction(opts) {
139
+ analytics_js_1.Analytics.trackAction({ action: "end_user_send_evm_transaction" });
140
+ const address = resolveEvmAddress(endUser, opts.address);
141
+ return apiClient.sendEvmTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
142
+ address,
143
+ transaction: opts.transaction,
144
+ network: opts.network,
145
+ });
146
+ },
147
+ async sendEvmAsset(opts) {
148
+ analytics_js_1.Analytics.trackAction({ action: "end_user_send_evm_asset" });
149
+ const address = resolveEvmAddress(endUser, opts.address);
150
+ const asset = opts.asset ?? "usdc";
151
+ return apiClient.sendEvmAssetWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, asset, {
152
+ to: opts.to,
153
+ amount: opts.amount,
154
+ network: opts.network,
155
+ useCdpPaymaster: opts.useCdpPaymaster,
156
+ paymasterUrl: opts.paymasterUrl,
157
+ });
158
+ },
159
+ async sendUserOperation(opts) {
160
+ analytics_js_1.Analytics.trackAction({ action: "end_user_send_user_operation" });
161
+ const address = resolveEvmSmartAccountAddress(endUser, opts.address);
162
+ return apiClient.sendUserOperationWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, {
163
+ network: opts.network,
164
+ calls: opts.calls,
165
+ useCdpPaymaster: opts.useCdpPaymaster,
166
+ paymasterUrl: opts.paymasterUrl,
167
+ dataSuffix: opts.dataSuffix,
168
+ });
169
+ },
170
+ // ─── Delegated EVM EIP-7702 Delegation Method ───
171
+ async createEvmEip7702Delegation(opts) {
172
+ analytics_js_1.Analytics.trackAction({ action: "end_user_create_evm_eip7702_delegation" });
173
+ const address = resolveEvmAddress(endUser, opts.address);
174
+ return apiClient.createEvmEip7702DelegationWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
175
+ address,
176
+ network: opts.network,
177
+ enableSpendPermissions: opts.enableSpendPermissions,
178
+ });
179
+ },
180
+ // ─── Delegated Solana Sign Methods ───
181
+ async signSolanaHash(opts) {
182
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_solana_hash" });
183
+ const address = resolveSolanaAddress(endUser, opts.address);
184
+ return apiClient.signSolanaHashWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
185
+ hash: opts.hash,
186
+ address,
187
+ });
188
+ },
189
+ async signSolanaMessage(opts) {
190
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_solana_message" });
191
+ const address = resolveSolanaAddress(endUser, opts.address);
192
+ return apiClient.signSolanaMessageWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
193
+ address,
194
+ message: opts.message,
195
+ });
196
+ },
197
+ async signSolanaTransaction(opts) {
198
+ analytics_js_1.Analytics.trackAction({ action: "end_user_sign_solana_transaction" });
199
+ const address = resolveSolanaAddress(endUser, opts.address);
200
+ return apiClient.signSolanaTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
201
+ address,
202
+ transaction: opts.transaction,
203
+ });
204
+ },
205
+ // ─── Delegated Solana Send Methods ───
206
+ async sendSolanaTransaction(opts) {
207
+ analytics_js_1.Analytics.trackAction({ action: "end_user_send_solana_transaction" });
208
+ const address = resolveSolanaAddress(endUser, opts.address);
209
+ return apiClient.sendSolanaTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
210
+ address,
211
+ transaction: opts.transaction,
212
+ network: opts.network,
213
+ });
214
+ },
215
+ async sendSolanaAsset(opts) {
216
+ analytics_js_1.Analytics.trackAction({ action: "end_user_send_solana_asset" });
217
+ const address = resolveSolanaAddress(endUser, opts.address);
218
+ const asset = opts.asset ?? "usdc";
219
+ return apiClient.sendSolanaAssetWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, asset, {
220
+ to: opts.to,
221
+ amount: opts.amount,
222
+ network: opts.network,
223
+ createRecipientAta: opts.createRecipientAta,
45
224
  });
46
- return apiClient.addEndUserSolanaAccount(options.endUser.userId, {});
47
225
  },
48
226
  };
49
227
  return endUserAccount;
@@ -1 +1 @@
1
- {"version":3,"file":"toEndUserAccount.js","sourceRoot":"","sources":["../../../client/end-user/toEndUserAccount.ts"],"names":[],"mappings":";;AA+BA,4CAgDC;AA/ED,qDAA+C;AAsB/C;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,SAA+B,EAC/B,OAAgC;IAEhC,MAAM,cAAc,GAAmB;QACrC,uDAAuD;QACvD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB;QAC5D,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;QACtC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;QACpD,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB;QAClD,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,sBAAsB;QAC9D,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;QAC9C,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB;QAC1D,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;QAEpC,qBAAqB;QACrB,KAAK,CAAC,aAAa;YACjB,wBAAS,CAAC,WAAW,CAAC;gBACpB,MAAM,EAAE,0BAA0B;aACnC,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,CAAC,kBAAkB,CACtB,mBAA8C;YAE9C,wBAAS,CAAC,WAAW,CAAC;gBACpB,MAAM,EAAE,gCAAgC;aACzC,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;gBACjE,sBAAsB,EAAE,mBAAmB,CAAC,sBAAsB;aACnE,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,gBAAgB;YACpB,wBAAS,CAAC,WAAW,CAAC;gBACpB,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;KACF,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"toEndUserAccount.js","sourceRoot":"","sources":["../../../client/end-user/toEndUserAccount.ts"],"names":[],"mappings":"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"}