@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
@@ -1,7 +1,64 @@
1
1
  import { Analytics } from "../../analytics.js";
2
+ /**
3
+ * Returns the project ID or throws if not configured.
4
+ * Used by delegation operations that require a project ID.
5
+ *
6
+ * @param projectId - The project ID to validate.
7
+ * @returns The validated project ID.
8
+ */
9
+ function requireProjectId(projectId) {
10
+ if (!projectId) {
11
+ throw new Error("Missing required project ID for delegation operation. " +
12
+ "Set the CDP_PROJECT_ID environment variable or pass projectId to the CdpClient constructor.");
13
+ }
14
+ return projectId;
15
+ }
16
+ /**
17
+ * Resolves the first EVM EOA address for this end user, or throws if none exist and no override was provided.
18
+ *
19
+ * @param endUser - The OpenAPI end user.
20
+ * @param override - An optional address override.
21
+ * @returns The resolved EVM address.
22
+ */
23
+ function resolveEvmAddress(endUser, override) {
24
+ const address = override ?? endUser.evmAccountObjects[0]?.address;
25
+ if (!address) {
26
+ throw new Error("No EVM account found on this end user. Provide an explicit address or add an EVM account first.");
27
+ }
28
+ return address;
29
+ }
30
+ /**
31
+ * Resolves the first EVM smart account address for this end user, or throws if none exist and no override was provided.
32
+ *
33
+ * @param endUser - The OpenAPI end user.
34
+ * @param override - An optional address override.
35
+ * @returns The resolved EVM smart account address.
36
+ */
37
+ function resolveEvmSmartAccountAddress(endUser, override) {
38
+ const address = override ?? endUser.evmSmartAccountObjects[0]?.address;
39
+ if (!address) {
40
+ throw new Error("No EVM smart account found on this end user. Provide an explicit address or add an EVM smart account first.");
41
+ }
42
+ return address;
43
+ }
44
+ /**
45
+ * Resolves the first Solana address for this end user, or throws if none exist and no override was provided.
46
+ *
47
+ * @param endUser - The OpenAPI end user.
48
+ * @param override - An optional address override.
49
+ * @returns The resolved Solana address.
50
+ */
51
+ function resolveSolanaAddress(endUser, override) {
52
+ const address = override ?? endUser.solanaAccountObjects[0]?.address;
53
+ if (!address) {
54
+ throw new Error("No Solana account found on this end user. Provide an explicit address or add a Solana account first.");
55
+ }
56
+ return address;
57
+ }
2
58
  /**
3
59
  * Creates an EndUserAccount instance with actions from an existing OpenAPI EndUser.
4
- * This wraps the raw API response and adds convenience methods for adding accounts.
60
+ * This wraps the raw API response and adds convenience methods for adding accounts
61
+ * and performing delegated signing/sending operations.
5
62
  *
6
63
  * @param apiClient - The API client.
7
64
  * @param options - Configuration options.
@@ -9,38 +66,159 @@ import { Analytics } from "../../analytics.js";
9
66
  * @returns An EndUserAccount instance with action methods.
10
67
  */
11
68
  export function toEndUserAccount(apiClient, options) {
69
+ const { endUser, projectId } = options;
12
70
  const endUserAccount = {
13
71
  // Pass through all properties from the OpenAPI EndUser
14
- userId: options.endUser.userId,
15
- authenticationMethods: options.endUser.authenticationMethods,
16
- mfaMethods: options.endUser.mfaMethods,
17
- evmAccounts: options.endUser.evmAccounts,
18
- evmAccountObjects: options.endUser.evmAccountObjects,
19
- evmSmartAccounts: options.endUser.evmSmartAccounts,
20
- evmSmartAccountObjects: options.endUser.evmSmartAccountObjects,
21
- solanaAccounts: options.endUser.solanaAccounts,
22
- solanaAccountObjects: options.endUser.solanaAccountObjects,
23
- createdAt: options.endUser.createdAt,
24
- // Add action methods
72
+ userId: endUser.userId,
73
+ authenticationMethods: endUser.authenticationMethods,
74
+ mfaMethods: endUser.mfaMethods,
75
+ evmAccounts: endUser.evmAccounts,
76
+ evmAccountObjects: endUser.evmAccountObjects,
77
+ evmSmartAccounts: endUser.evmSmartAccounts,
78
+ evmSmartAccountObjects: endUser.evmSmartAccountObjects,
79
+ solanaAccounts: endUser.solanaAccounts,
80
+ solanaAccountObjects: endUser.solanaAccountObjects,
81
+ createdAt: endUser.createdAt,
82
+ // ─── Account Management Methods ───
25
83
  async addEvmAccount() {
26
- Analytics.trackAction({
27
- action: "end_user_add_evm_account",
28
- });
29
- return apiClient.addEndUserEvmAccount(options.endUser.userId, {});
84
+ Analytics.trackAction({ action: "end_user_add_evm_account" });
85
+ return apiClient.addEndUserEvmAccount(endUser.userId, {});
30
86
  },
31
87
  async addEvmSmartAccount(smartAccountOptions) {
32
- Analytics.trackAction({
33
- action: "end_user_add_evm_smart_account",
34
- });
35
- return apiClient.addEndUserEvmSmartAccount(options.endUser.userId, {
88
+ Analytics.trackAction({ action: "end_user_add_evm_smart_account" });
89
+ return apiClient.addEndUserEvmSmartAccount(endUser.userId, {
36
90
  enableSpendPermissions: smartAccountOptions.enableSpendPermissions,
37
91
  });
38
92
  },
39
93
  async addSolanaAccount() {
40
- Analytics.trackAction({
41
- action: "end_user_add_solana_account",
94
+ Analytics.trackAction({ action: "end_user_add_solana_account" });
95
+ return apiClient.addEndUserSolanaAccount(endUser.userId, {});
96
+ },
97
+ async revokeDelegation() {
98
+ Analytics.trackAction({ action: "end_user_revoke_delegation" });
99
+ await apiClient.revokeDelegationForEndUser(requireProjectId(projectId), endUser.userId, {});
100
+ },
101
+ // ─── Delegated EVM Sign Methods ───
102
+ async signEvmHash(opts) {
103
+ Analytics.trackAction({ action: "end_user_sign_evm_hash" });
104
+ const address = resolveEvmAddress(endUser, opts.address);
105
+ return apiClient.signEvmHashWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
106
+ hash: opts.hash,
107
+ address,
108
+ });
109
+ },
110
+ async signEvmTransaction(opts) {
111
+ Analytics.trackAction({ action: "end_user_sign_evm_transaction" });
112
+ const address = resolveEvmAddress(endUser, opts.address);
113
+ return apiClient.signEvmTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
114
+ address,
115
+ transaction: opts.transaction,
116
+ });
117
+ },
118
+ async signEvmMessage(opts) {
119
+ Analytics.trackAction({ action: "end_user_sign_evm_message" });
120
+ const address = resolveEvmAddress(endUser, opts.address);
121
+ return apiClient.signEvmMessageWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
122
+ address,
123
+ message: opts.message,
124
+ });
125
+ },
126
+ async signEvmTypedData(opts) {
127
+ Analytics.trackAction({ action: "end_user_sign_evm_typed_data" });
128
+ const address = resolveEvmAddress(endUser, opts.address);
129
+ return apiClient.signEvmTypedDataWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
130
+ address,
131
+ typedData: opts.typedData,
132
+ });
133
+ },
134
+ // ─── Delegated EVM Send Methods ───
135
+ async sendEvmTransaction(opts) {
136
+ Analytics.trackAction({ action: "end_user_send_evm_transaction" });
137
+ const address = resolveEvmAddress(endUser, opts.address);
138
+ return apiClient.sendEvmTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
139
+ address,
140
+ transaction: opts.transaction,
141
+ network: opts.network,
142
+ });
143
+ },
144
+ async sendEvmAsset(opts) {
145
+ Analytics.trackAction({ action: "end_user_send_evm_asset" });
146
+ const address = resolveEvmAddress(endUser, opts.address);
147
+ const asset = opts.asset ?? "usdc";
148
+ return apiClient.sendEvmAssetWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, asset, {
149
+ to: opts.to,
150
+ amount: opts.amount,
151
+ network: opts.network,
152
+ useCdpPaymaster: opts.useCdpPaymaster,
153
+ paymasterUrl: opts.paymasterUrl,
154
+ });
155
+ },
156
+ async sendUserOperation(opts) {
157
+ Analytics.trackAction({ action: "end_user_send_user_operation" });
158
+ const address = resolveEvmSmartAccountAddress(endUser, opts.address);
159
+ return apiClient.sendUserOperationWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, {
160
+ network: opts.network,
161
+ calls: opts.calls,
162
+ useCdpPaymaster: opts.useCdpPaymaster,
163
+ paymasterUrl: opts.paymasterUrl,
164
+ dataSuffix: opts.dataSuffix,
165
+ });
166
+ },
167
+ // ─── Delegated EVM EIP-7702 Delegation Method ───
168
+ async createEvmEip7702Delegation(opts) {
169
+ Analytics.trackAction({ action: "end_user_create_evm_eip7702_delegation" });
170
+ const address = resolveEvmAddress(endUser, opts.address);
171
+ return apiClient.createEvmEip7702DelegationWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
172
+ address,
173
+ network: opts.network,
174
+ enableSpendPermissions: opts.enableSpendPermissions,
175
+ });
176
+ },
177
+ // ─── Delegated Solana Sign Methods ───
178
+ async signSolanaHash(opts) {
179
+ Analytics.trackAction({ action: "end_user_sign_solana_hash" });
180
+ const address = resolveSolanaAddress(endUser, opts.address);
181
+ return apiClient.signSolanaHashWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
182
+ hash: opts.hash,
183
+ address,
184
+ });
185
+ },
186
+ async signSolanaMessage(opts) {
187
+ Analytics.trackAction({ action: "end_user_sign_solana_message" });
188
+ const address = resolveSolanaAddress(endUser, opts.address);
189
+ return apiClient.signSolanaMessageWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
190
+ address,
191
+ message: opts.message,
192
+ });
193
+ },
194
+ async signSolanaTransaction(opts) {
195
+ Analytics.trackAction({ action: "end_user_sign_solana_transaction" });
196
+ const address = resolveSolanaAddress(endUser, opts.address);
197
+ return apiClient.signSolanaTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
198
+ address,
199
+ transaction: opts.transaction,
200
+ });
201
+ },
202
+ // ─── Delegated Solana Send Methods ───
203
+ async sendSolanaTransaction(opts) {
204
+ Analytics.trackAction({ action: "end_user_send_solana_transaction" });
205
+ const address = resolveSolanaAddress(endUser, opts.address);
206
+ return apiClient.sendSolanaTransactionWithEndUserAccount(requireProjectId(projectId), endUser.userId, {
207
+ address,
208
+ transaction: opts.transaction,
209
+ network: opts.network,
210
+ });
211
+ },
212
+ async sendSolanaAsset(opts) {
213
+ Analytics.trackAction({ action: "end_user_send_solana_asset" });
214
+ const address = resolveSolanaAddress(endUser, opts.address);
215
+ const asset = opts.asset ?? "usdc";
216
+ return apiClient.sendSolanaAssetWithEndUserAccount(requireProjectId(projectId), endUser.userId, address, asset, {
217
+ to: opts.to,
218
+ amount: opts.amount,
219
+ network: opts.network,
220
+ createRecipientAta: opts.createRecipientAta,
42
221
  });
43
- return apiClient.addEndUserSolanaAccount(options.endUser.userId, {});
44
222
  },
45
223
  };
46
224
  return endUserAccount;
@@ -1 +1 @@
1
- {"version":3,"file":"toEndUserAccount.js","sourceRoot":"","sources":["../../../client/end-user/toEndUserAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAsB/C;;;;;;;;GAQG;AACH,MAAM,UAAU,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,SAAS,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,SAAS,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,SAAS,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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"}