@distilled.cloud/coinbase 0.0.0 → 0.2.5-alpha2

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 (412) hide show
  1. package/lib/category.d.ts +5 -0
  2. package/lib/category.d.ts.map +1 -0
  3. package/lib/category.js +5 -0
  4. package/lib/category.js.map +1 -0
  5. package/lib/client.d.ts +45 -0
  6. package/lib/client.d.ts.map +1 -0
  7. package/lib/client.js +244 -0
  8. package/lib/client.js.map +1 -0
  9. package/lib/credentials.d.ts +32 -0
  10. package/lib/credentials.d.ts.map +1 -0
  11. package/lib/credentials.js +29 -0
  12. package/lib/credentials.js.map +1 -0
  13. package/lib/errors.d.ts +855 -0
  14. package/lib/errors.d.ts.map +1 -0
  15. package/lib/errors.js +466 -0
  16. package/lib/errors.js.map +1 -0
  17. package/lib/index.d.ts +16 -0
  18. package/lib/index.d.ts.map +1 -0
  19. package/lib/index.js +16 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/operations/addEndUserEvmAccount.d.ts +30 -0
  22. package/lib/operations/addEndUserEvmAccount.d.ts.map +1 -0
  23. package/lib/operations/addEndUserEvmAccount.js +38 -0
  24. package/lib/operations/addEndUserEvmAccount.js.map +1 -0
  25. package/lib/operations/addEndUserEvmSmartAccount.d.ts +32 -0
  26. package/lib/operations/addEndUserEvmSmartAccount.d.ts.map +1 -0
  27. package/lib/operations/addEndUserEvmSmartAccount.js +43 -0
  28. package/lib/operations/addEndUserEvmSmartAccount.js.map +1 -0
  29. package/lib/operations/addEndUserSolanaAccount.d.ts +30 -0
  30. package/lib/operations/addEndUserSolanaAccount.d.ts.map +1 -0
  31. package/lib/operations/addEndUserSolanaAccount.js +38 -0
  32. package/lib/operations/addEndUserSolanaAccount.js.map +1 -0
  33. package/lib/operations/createEndUser.d.ts +61 -0
  34. package/lib/operations/createEndUser.d.ts.map +1 -0
  35. package/lib/operations/createEndUser.js +67 -0
  36. package/lib/operations/createEndUser.js.map +1 -0
  37. package/lib/operations/createEvmAccount.d.ts +30 -0
  38. package/lib/operations/createEvmAccount.d.ts.map +1 -0
  39. package/lib/operations/createEvmAccount.js +36 -0
  40. package/lib/operations/createEvmAccount.js.map +1 -0
  41. package/lib/operations/createEvmEip7702Delegation.d.ts +34 -0
  42. package/lib/operations/createEvmEip7702Delegation.d.ts.map +1 -0
  43. package/lib/operations/createEvmEip7702Delegation.js +53 -0
  44. package/lib/operations/createEvmEip7702Delegation.js.map +1 -0
  45. package/lib/operations/createEvmSmartAccount.d.ts +27 -0
  46. package/lib/operations/createEvmSmartAccount.d.ts.map +1 -0
  47. package/lib/operations/createEvmSmartAccount.js +35 -0
  48. package/lib/operations/createEvmSmartAccount.js.map +1 -0
  49. package/lib/operations/createEvmSwapQuote.d.ts +26 -0
  50. package/lib/operations/createEvmSwapQuote.d.ts.map +1 -0
  51. package/lib/operations/createEvmSwapQuote.js +40 -0
  52. package/lib/operations/createEvmSwapQuote.js.map +1 -0
  53. package/lib/operations/createOnrampOrder.d.ts +58 -0
  54. package/lib/operations/createOnrampOrder.d.ts.map +1 -0
  55. package/lib/operations/createOnrampOrder.js +79 -0
  56. package/lib/operations/createOnrampOrder.js.map +1 -0
  57. package/lib/operations/createOnrampSession.d.ts +55 -0
  58. package/lib/operations/createOnrampSession.d.ts.map +1 -0
  59. package/lib/operations/createOnrampSession.js +70 -0
  60. package/lib/operations/createOnrampSession.js.map +1 -0
  61. package/lib/operations/createPolicy.d.ts +28 -0
  62. package/lib/operations/createPolicy.d.ts.map +1 -0
  63. package/lib/operations/createPolicy.js +34 -0
  64. package/lib/operations/createPolicy.js.map +1 -0
  65. package/lib/operations/createSolanaAccount.d.ts +30 -0
  66. package/lib/operations/createSolanaAccount.d.ts.map +1 -0
  67. package/lib/operations/createSolanaAccount.js +38 -0
  68. package/lib/operations/createSolanaAccount.js.map +1 -0
  69. package/lib/operations/createSpendPermission.d.ts +55 -0
  70. package/lib/operations/createSpendPermission.d.ts.map +1 -0
  71. package/lib/operations/createSpendPermission.js +93 -0
  72. package/lib/operations/createSpendPermission.js.map +1 -0
  73. package/lib/operations/createWebhookSubscription.d.ts +74 -0
  74. package/lib/operations/createWebhookSubscription.d.ts.map +1 -0
  75. package/lib/operations/createWebhookSubscription.js +82 -0
  76. package/lib/operations/createWebhookSubscription.js.map +1 -0
  77. package/lib/operations/deletePolicy.d.ts +20 -0
  78. package/lib/operations/deletePolicy.d.ts.map +1 -0
  79. package/lib/operations/deletePolicy.js +26 -0
  80. package/lib/operations/deletePolicy.js.map +1 -0
  81. package/lib/operations/deleteWebhookSubscription.d.ts +21 -0
  82. package/lib/operations/deleteWebhookSubscription.d.ts.map +1 -0
  83. package/lib/operations/deleteWebhookSubscription.js +32 -0
  84. package/lib/operations/deleteWebhookSubscription.js.map +1 -0
  85. package/lib/operations/exportEvmAccount.d.ts +27 -0
  86. package/lib/operations/exportEvmAccount.d.ts.map +1 -0
  87. package/lib/operations/exportEvmAccount.js +33 -0
  88. package/lib/operations/exportEvmAccount.js.map +1 -0
  89. package/lib/operations/exportEvmAccountByName.d.ts +27 -0
  90. package/lib/operations/exportEvmAccountByName.d.ts.map +1 -0
  91. package/lib/operations/exportEvmAccountByName.js +35 -0
  92. package/lib/operations/exportEvmAccountByName.js.map +1 -0
  93. package/lib/operations/exportSolanaAccount.d.ts +27 -0
  94. package/lib/operations/exportSolanaAccount.d.ts.map +1 -0
  95. package/lib/operations/exportSolanaAccount.js +35 -0
  96. package/lib/operations/exportSolanaAccount.js.map +1 -0
  97. package/lib/operations/exportSolanaAccountByName.d.ts +27 -0
  98. package/lib/operations/exportSolanaAccountByName.d.ts.map +1 -0
  99. package/lib/operations/exportSolanaAccountByName.js +38 -0
  100. package/lib/operations/exportSolanaAccountByName.js.map +1 -0
  101. package/lib/operations/getEndUser.d.ts +46 -0
  102. package/lib/operations/getEndUser.d.ts.map +1 -0
  103. package/lib/operations/getEndUser.js +52 -0
  104. package/lib/operations/getEndUser.js.map +1 -0
  105. package/lib/operations/getEvmAccount.d.ts +22 -0
  106. package/lib/operations/getEvmAccount.d.ts.map +1 -0
  107. package/lib/operations/getEvmAccount.js +28 -0
  108. package/lib/operations/getEvmAccount.js.map +1 -0
  109. package/lib/operations/getEvmAccountByName.d.ts +22 -0
  110. package/lib/operations/getEvmAccountByName.d.ts.map +1 -0
  111. package/lib/operations/getEvmAccountByName.js +30 -0
  112. package/lib/operations/getEvmAccountByName.js.map +1 -0
  113. package/lib/operations/getEvmEip7702DelegationOperationById.d.ts +22 -0
  114. package/lib/operations/getEvmEip7702DelegationOperationById.d.ts.map +1 -0
  115. package/lib/operations/getEvmEip7702DelegationOperationById.js +48 -0
  116. package/lib/operations/getEvmEip7702DelegationOperationById.js.map +1 -0
  117. package/lib/operations/getEvmSmartAccount.d.ts +23 -0
  118. package/lib/operations/getEvmSmartAccount.d.ts.map +1 -0
  119. package/lib/operations/getEvmSmartAccount.js +31 -0
  120. package/lib/operations/getEvmSmartAccount.js.map +1 -0
  121. package/lib/operations/getEvmSmartAccountByName.d.ts +23 -0
  122. package/lib/operations/getEvmSmartAccountByName.d.ts.map +1 -0
  123. package/lib/operations/getEvmSmartAccountByName.js +31 -0
  124. package/lib/operations/getEvmSmartAccountByName.js.map +1 -0
  125. package/lib/operations/getEvmSwapPrice.d.ts +21 -0
  126. package/lib/operations/getEvmSwapPrice.d.ts.map +1 -0
  127. package/lib/operations/getEvmSwapPrice.js +27 -0
  128. package/lib/operations/getEvmSwapPrice.js.map +1 -0
  129. package/lib/operations/getOnrampOrderById.d.ts +39 -0
  130. package/lib/operations/getOnrampOrderById.d.ts.map +1 -0
  131. package/lib/operations/getOnrampOrderById.js +56 -0
  132. package/lib/operations/getOnrampOrderById.js.map +1 -0
  133. package/lib/operations/getOnrampUserLimits.d.ts +24 -0
  134. package/lib/operations/getOnrampUserLimits.d.ts.map +1 -0
  135. package/lib/operations/getOnrampUserLimits.js +38 -0
  136. package/lib/operations/getOnrampUserLimits.js.map +1 -0
  137. package/lib/operations/getPolicyById.d.ts +23 -0
  138. package/lib/operations/getPolicyById.d.ts.map +1 -0
  139. package/lib/operations/getPolicyById.js +29 -0
  140. package/lib/operations/getPolicyById.js.map +1 -0
  141. package/lib/operations/getSQLGrammar.d.ts +14 -0
  142. package/lib/operations/getSQLGrammar.d.ts.map +1 -0
  143. package/lib/operations/getSQLGrammar.js +20 -0
  144. package/lib/operations/getSQLGrammar.js.map +1 -0
  145. package/lib/operations/getSolanaAccount.d.ts +22 -0
  146. package/lib/operations/getSolanaAccount.d.ts.map +1 -0
  147. package/lib/operations/getSolanaAccount.js +28 -0
  148. package/lib/operations/getSolanaAccount.js.map +1 -0
  149. package/lib/operations/getSolanaAccountByName.d.ts +22 -0
  150. package/lib/operations/getSolanaAccountByName.d.ts.map +1 -0
  151. package/lib/operations/getSolanaAccountByName.js +30 -0
  152. package/lib/operations/getSolanaAccountByName.js.map +1 -0
  153. package/lib/operations/getUserOperation.d.ts +39 -0
  154. package/lib/operations/getUserOperation.d.ts.map +1 -0
  155. package/lib/operations/getUserOperation.js +66 -0
  156. package/lib/operations/getUserOperation.js.map +1 -0
  157. package/lib/operations/getWebhookSubscription.d.ts +37 -0
  158. package/lib/operations/getWebhookSubscription.d.ts.map +1 -0
  159. package/lib/operations/getWebhookSubscription.js +48 -0
  160. package/lib/operations/getWebhookSubscription.js.map +1 -0
  161. package/lib/operations/importEndUser.d.ts +56 -0
  162. package/lib/operations/importEndUser.d.ts.map +1 -0
  163. package/lib/operations/importEndUser.js +62 -0
  164. package/lib/operations/importEndUser.js.map +1 -0
  165. package/lib/operations/importEvmAccount.d.ts +31 -0
  166. package/lib/operations/importEvmAccount.d.ts.map +1 -0
  167. package/lib/operations/importEvmAccount.js +37 -0
  168. package/lib/operations/importEvmAccount.js.map +1 -0
  169. package/lib/operations/importSolanaAccount.d.ts +30 -0
  170. package/lib/operations/importSolanaAccount.d.ts.map +1 -0
  171. package/lib/operations/importSolanaAccount.js +38 -0
  172. package/lib/operations/importSolanaAccount.js.map +1 -0
  173. package/lib/operations/index.d.ts +74 -0
  174. package/lib/operations/index.d.ts.map +1 -0
  175. package/lib/operations/index.js +74 -0
  176. package/lib/operations/index.js.map +1 -0
  177. package/lib/operations/listDataTokenBalances.d.ts +37 -0
  178. package/lib/operations/listDataTokenBalances.d.ts.map +1 -0
  179. package/lib/operations/listDataTokenBalances.js +48 -0
  180. package/lib/operations/listDataTokenBalances.js.map +1 -0
  181. package/lib/operations/listEndUsers.d.ts +53 -0
  182. package/lib/operations/listEndUsers.d.ts.map +1 -0
  183. package/lib/operations/listEndUsers.js +59 -0
  184. package/lib/operations/listEndUsers.js.map +1 -0
  185. package/lib/operations/listEvmAccounts.d.ts +28 -0
  186. package/lib/operations/listEvmAccounts.d.ts.map +1 -0
  187. package/lib/operations/listEvmAccounts.js +34 -0
  188. package/lib/operations/listEvmAccounts.js.map +1 -0
  189. package/lib/operations/listEvmSmartAccounts.d.ts +29 -0
  190. package/lib/operations/listEvmSmartAccounts.d.ts.map +1 -0
  191. package/lib/operations/listEvmSmartAccounts.js +37 -0
  192. package/lib/operations/listEvmSmartAccounts.js.map +1 -0
  193. package/lib/operations/listEvmTokenBalances.d.ts +37 -0
  194. package/lib/operations/listEvmTokenBalances.d.ts.map +1 -0
  195. package/lib/operations/listEvmTokenBalances.js +48 -0
  196. package/lib/operations/listEvmTokenBalances.js.map +1 -0
  197. package/lib/operations/listPolicies.d.ts +31 -0
  198. package/lib/operations/listPolicies.d.ts.map +1 -0
  199. package/lib/operations/listPolicies.js +37 -0
  200. package/lib/operations/listPolicies.js.map +1 -0
  201. package/lib/operations/listSolanaAccounts.d.ts +29 -0
  202. package/lib/operations/listSolanaAccounts.d.ts.map +1 -0
  203. package/lib/operations/listSolanaAccounts.js +37 -0
  204. package/lib/operations/listSolanaAccounts.js.map +1 -0
  205. package/lib/operations/listSolanaTokenBalances.d.ts +36 -0
  206. package/lib/operations/listSolanaTokenBalances.d.ts.map +1 -0
  207. package/lib/operations/listSolanaTokenBalances.js +47 -0
  208. package/lib/operations/listSolanaTokenBalances.js.map +1 -0
  209. package/lib/operations/listSpendPermissions.d.ts +40 -0
  210. package/lib/operations/listSpendPermissions.d.ts.map +1 -0
  211. package/lib/operations/listSpendPermissions.js +60 -0
  212. package/lib/operations/listSpendPermissions.js.map +1 -0
  213. package/lib/operations/listTokensForAccount.d.ts +23 -0
  214. package/lib/operations/listTokensForAccount.d.ts.map +1 -0
  215. package/lib/operations/listTokensForAccount.js +34 -0
  216. package/lib/operations/listTokensForAccount.js.map +1 -0
  217. package/lib/operations/listWebhookSubscriptions.d.ts +42 -0
  218. package/lib/operations/listWebhookSubscriptions.d.ts.map +1 -0
  219. package/lib/operations/listWebhookSubscriptions.js +50 -0
  220. package/lib/operations/listWebhookSubscriptions.js.map +1 -0
  221. package/lib/operations/prepareAndSendUserOperation.d.ts +53 -0
  222. package/lib/operations/prepareAndSendUserOperation.d.ts.map +1 -0
  223. package/lib/operations/prepareAndSendUserOperation.js +93 -0
  224. package/lib/operations/prepareAndSendUserOperation.js.map +1 -0
  225. package/lib/operations/prepareUserOperation.d.ts +46 -0
  226. package/lib/operations/prepareUserOperation.d.ts.map +1 -0
  227. package/lib/operations/prepareUserOperation.js +86 -0
  228. package/lib/operations/prepareUserOperation.js.map +1 -0
  229. package/lib/operations/requestEvmFaucet.d.ts +22 -0
  230. package/lib/operations/requestEvmFaucet.d.ts.map +1 -0
  231. package/lib/operations/requestEvmFaucet.js +32 -0
  232. package/lib/operations/requestEvmFaucet.js.map +1 -0
  233. package/lib/operations/requestSolanaFaucet.d.ts +21 -0
  234. package/lib/operations/requestSolanaFaucet.d.ts.map +1 -0
  235. package/lib/operations/requestSolanaFaucet.js +29 -0
  236. package/lib/operations/requestSolanaFaucet.js.map +1 -0
  237. package/lib/operations/revokeSpendPermission.d.ts +48 -0
  238. package/lib/operations/revokeSpendPermission.d.ts.map +1 -0
  239. package/lib/operations/revokeSpendPermission.js +86 -0
  240. package/lib/operations/revokeSpendPermission.js.map +1 -0
  241. package/lib/operations/runSQLQuery.d.ts +47 -0
  242. package/lib/operations/runSQLQuery.d.ts.map +1 -0
  243. package/lib/operations/runSQLQuery.js +74 -0
  244. package/lib/operations/runSQLQuery.js.map +1 -0
  245. package/lib/operations/sendEvmTransaction.d.ts +44 -0
  246. package/lib/operations/sendEvmTransaction.d.ts.map +1 -0
  247. package/lib/operations/sendEvmTransaction.js +64 -0
  248. package/lib/operations/sendEvmTransaction.js.map +1 -0
  249. package/lib/operations/sendSolanaTransaction.d.ts +38 -0
  250. package/lib/operations/sendSolanaTransaction.d.ts.map +1 -0
  251. package/lib/operations/sendSolanaTransaction.js +46 -0
  252. package/lib/operations/sendSolanaTransaction.js.map +1 -0
  253. package/lib/operations/sendUserOperation.d.ts +43 -0
  254. package/lib/operations/sendUserOperation.d.ts.map +1 -0
  255. package/lib/operations/sendUserOperation.js +71 -0
  256. package/lib/operations/sendUserOperation.js.map +1 -0
  257. package/lib/operations/settleX402Payment.d.ts +23 -0
  258. package/lib/operations/settleX402Payment.d.ts.map +1 -0
  259. package/lib/operations/settleX402Payment.js +79 -0
  260. package/lib/operations/settleX402Payment.js.map +1 -0
  261. package/lib/operations/signEvmHash.d.ts +27 -0
  262. package/lib/operations/signEvmHash.d.ts.map +1 -0
  263. package/lib/operations/signEvmHash.js +33 -0
  264. package/lib/operations/signEvmHash.js.map +1 -0
  265. package/lib/operations/signEvmMessage.d.ts +28 -0
  266. package/lib/operations/signEvmMessage.d.ts.map +1 -0
  267. package/lib/operations/signEvmMessage.js +34 -0
  268. package/lib/operations/signEvmMessage.js.map +1 -0
  269. package/lib/operations/signEvmTransaction.d.ts +29 -0
  270. package/lib/operations/signEvmTransaction.d.ts.map +1 -0
  271. package/lib/operations/signEvmTransaction.js +40 -0
  272. package/lib/operations/signEvmTransaction.js.map +1 -0
  273. package/lib/operations/signEvmTypedData.d.ts +36 -0
  274. package/lib/operations/signEvmTypedData.d.ts.map +1 -0
  275. package/lib/operations/signEvmTypedData.js +45 -0
  276. package/lib/operations/signEvmTypedData.js.map +1 -0
  277. package/lib/operations/signSolanaMessage.d.ts +28 -0
  278. package/lib/operations/signSolanaMessage.d.ts.map +1 -0
  279. package/lib/operations/signSolanaMessage.js +38 -0
  280. package/lib/operations/signSolanaMessage.js.map +1 -0
  281. package/lib/operations/signSolanaTransaction.d.ts +33 -0
  282. package/lib/operations/signSolanaTransaction.d.ts.map +1 -0
  283. package/lib/operations/signSolanaTransaction.js +44 -0
  284. package/lib/operations/signSolanaTransaction.js.map +1 -0
  285. package/lib/operations/supportedX402PaymentKinds.d.ts +21 -0
  286. package/lib/operations/supportedX402PaymentKinds.d.ts.map +1 -0
  287. package/lib/operations/supportedX402PaymentKinds.js +40 -0
  288. package/lib/operations/supportedX402PaymentKinds.js.map +1 -0
  289. package/lib/operations/updateEvmAccount.d.ts +28 -0
  290. package/lib/operations/updateEvmAccount.d.ts.map +1 -0
  291. package/lib/operations/updateEvmAccount.js +34 -0
  292. package/lib/operations/updateEvmAccount.js.map +1 -0
  293. package/lib/operations/updateEvmSmartAccount.d.ts +24 -0
  294. package/lib/operations/updateEvmSmartAccount.d.ts.map +1 -0
  295. package/lib/operations/updateEvmSmartAccount.js +32 -0
  296. package/lib/operations/updateEvmSmartAccount.js.map +1 -0
  297. package/lib/operations/updatePolicy.d.ts +29 -0
  298. package/lib/operations/updatePolicy.d.ts.map +1 -0
  299. package/lib/operations/updatePolicy.js +35 -0
  300. package/lib/operations/updatePolicy.js.map +1 -0
  301. package/lib/operations/updateSolanaAccount.d.ts +28 -0
  302. package/lib/operations/updateSolanaAccount.d.ts.map +1 -0
  303. package/lib/operations/updateSolanaAccount.js +36 -0
  304. package/lib/operations/updateSolanaAccount.js.map +1 -0
  305. package/lib/operations/updateWebhookSubscription.d.ts +47 -0
  306. package/lib/operations/updateWebhookSubscription.d.ts.map +1 -0
  307. package/lib/operations/updateWebhookSubscription.js +58 -0
  308. package/lib/operations/updateWebhookSubscription.js.map +1 -0
  309. package/lib/operations/validateEndUserAccessToken.d.ts +44 -0
  310. package/lib/operations/validateEndUserAccessToken.d.ts.map +1 -0
  311. package/lib/operations/validateEndUserAccessToken.js +52 -0
  312. package/lib/operations/validateEndUserAccessToken.js.map +1 -0
  313. package/lib/operations/verifyX402Payment.d.ts +21 -0
  314. package/lib/operations/verifyX402Payment.d.ts.map +1 -0
  315. package/lib/operations/verifyX402Payment.js +72 -0
  316. package/lib/operations/verifyX402Payment.js.map +1 -0
  317. package/lib/retry.d.ts +22 -0
  318. package/lib/retry.d.ts.map +1 -0
  319. package/lib/retry.js +21 -0
  320. package/lib/retry.js.map +1 -0
  321. package/lib/sensitive.d.ts +5 -0
  322. package/lib/sensitive.d.ts.map +1 -0
  323. package/lib/sensitive.js +5 -0
  324. package/lib/sensitive.js.map +1 -0
  325. package/lib/traits.d.ts +5 -0
  326. package/lib/traits.d.ts.map +1 -0
  327. package/lib/traits.js +5 -0
  328. package/lib/traits.js.map +1 -0
  329. package/package.json +82 -9
  330. package/src/category.ts +4 -0
  331. package/src/client.ts +290 -0
  332. package/src/credentials.ts +65 -0
  333. package/src/errors.ts +694 -0
  334. package/src/index.ts +15 -0
  335. package/src/operations/addEndUserEvmAccount.ts +44 -0
  336. package/src/operations/addEndUserEvmSmartAccount.ts +53 -0
  337. package/src/operations/addEndUserSolanaAccount.ts +46 -0
  338. package/src/operations/createEndUser.ts +87 -0
  339. package/src/operations/createEvmAccount.ts +42 -0
  340. package/src/operations/createEvmEip7702Delegation.ts +63 -0
  341. package/src/operations/createEvmSmartAccount.ts +42 -0
  342. package/src/operations/createEvmSwapQuote.ts +44 -0
  343. package/src/operations/createOnrampOrder.ts +89 -0
  344. package/src/operations/createOnrampSession.ts +80 -0
  345. package/src/operations/createPolicy.ts +38 -0
  346. package/src/operations/createSolanaAccount.ts +42 -0
  347. package/src/operations/createSpendPermission.ts +110 -0
  348. package/src/operations/createWebhookSubscription.ts +92 -0
  349. package/src/operations/deletePolicy.ts +32 -0
  350. package/src/operations/deleteWebhookSubscription.ts +42 -0
  351. package/src/operations/exportEvmAccount.ts +39 -0
  352. package/src/operations/exportEvmAccountByName.ts +45 -0
  353. package/src/operations/exportSolanaAccount.ts +41 -0
  354. package/src/operations/exportSolanaAccountByName.ts +48 -0
  355. package/src/operations/getEndUser.ts +68 -0
  356. package/src/operations/getEvmAccount.ts +32 -0
  357. package/src/operations/getEvmAccountByName.ts +34 -0
  358. package/src/operations/getEvmEip7702DelegationOperationById.ts +56 -0
  359. package/src/operations/getEvmSmartAccount.ts +35 -0
  360. package/src/operations/getEvmSmartAccountByName.ts +41 -0
  361. package/src/operations/getEvmSwapPrice.ts +31 -0
  362. package/src/operations/getOnrampOrderById.ts +62 -0
  363. package/src/operations/getOnrampUserLimits.ts +44 -0
  364. package/src/operations/getPolicyById.ts +35 -0
  365. package/src/operations/getSQLGrammar.ts +26 -0
  366. package/src/operations/getSolanaAccount.ts +34 -0
  367. package/src/operations/getSolanaAccountByName.ts +40 -0
  368. package/src/operations/getUserOperation.ts +82 -0
  369. package/src/operations/getWebhookSubscription.ts +60 -0
  370. package/src/operations/importEndUser.ts +78 -0
  371. package/src/operations/importEvmAccount.ts +43 -0
  372. package/src/operations/importSolanaAccount.ts +42 -0
  373. package/src/operations/index.ts +73 -0
  374. package/src/operations/listDataTokenBalances.ts +59 -0
  375. package/src/operations/listEndUsers.ts +77 -0
  376. package/src/operations/listEvmAccounts.ts +40 -0
  377. package/src/operations/listEvmSmartAccounts.ts +45 -0
  378. package/src/operations/listEvmTokenBalances.ts +58 -0
  379. package/src/operations/listPolicies.ts +43 -0
  380. package/src/operations/listSolanaAccounts.ts +43 -0
  381. package/src/operations/listSolanaTokenBalances.ts +59 -0
  382. package/src/operations/listSpendPermissions.ts +70 -0
  383. package/src/operations/listTokensForAccount.ts +42 -0
  384. package/src/operations/listWebhookSubscriptions.ts +62 -0
  385. package/src/operations/prepareAndSendUserOperation.ts +113 -0
  386. package/src/operations/prepareUserOperation.ts +104 -0
  387. package/src/operations/requestEvmFaucet.ts +38 -0
  388. package/src/operations/requestSolanaFaucet.ts +33 -0
  389. package/src/operations/revokeSpendPermission.ts +103 -0
  390. package/src/operations/runSQLQuery.ts +92 -0
  391. package/src/operations/sendEvmTransaction.ts +70 -0
  392. package/src/operations/sendSolanaTransaction.ts +55 -0
  393. package/src/operations/sendUserOperation.ts +87 -0
  394. package/src/operations/settleX402Payment.ts +87 -0
  395. package/src/operations/signEvmHash.ts +37 -0
  396. package/src/operations/signEvmMessage.ts +40 -0
  397. package/src/operations/signEvmTransaction.ts +46 -0
  398. package/src/operations/signEvmTypedData.ts +53 -0
  399. package/src/operations/signSolanaMessage.ts +46 -0
  400. package/src/operations/signSolanaTransaction.ts +53 -0
  401. package/src/operations/supportedX402PaymentKinds.ts +52 -0
  402. package/src/operations/updateEvmAccount.ts +40 -0
  403. package/src/operations/updateEvmSmartAccount.ts +39 -0
  404. package/src/operations/updatePolicy.ts +41 -0
  405. package/src/operations/updateSolanaAccount.ts +40 -0
  406. package/src/operations/updateWebhookSubscription.ts +70 -0
  407. package/src/operations/validateEndUserAccessToken.ts +74 -0
  408. package/src/operations/verifyX402Payment.ts +80 -0
  409. package/src/retry.ts +37 -0
  410. package/src/sensitive.ts +4 -0
  411. package/src/traits.ts +4 -0
  412. package/index.js +0 -2
package/package.json CHANGED
@@ -1,16 +1,89 @@
1
1
  {
2
2
  "name": "@distilled.cloud/coinbase",
3
- "version": "0.0.0",
4
- "description": "Coinbase SDK for Effect (placeholder)",
5
- "type": "module",
6
- "main": "index.js",
7
- "files": [
8
- "index.js"
9
- ],
3
+ "version": "0.2.5-alpha2",
10
4
  "repository": {
11
5
  "type": "git",
12
6
  "url": "https://github.com/alchemy-run/distilled",
13
7
  "directory": "packages/coinbase"
14
8
  },
15
- "license": "MIT"
16
- }
9
+ "type": "module",
10
+ "sideEffects": false,
11
+ "module": "src/index.ts",
12
+ "files": [
13
+ "lib",
14
+ "src"
15
+ ],
16
+ "exports": {
17
+ ".": {
18
+ "types": "./lib/index.d.ts",
19
+ "bun": "./src/index.ts",
20
+ "default": "./lib/index.js"
21
+ },
22
+ "./Category": {
23
+ "types": "./lib/category.d.ts",
24
+ "bun": "./src/category.ts",
25
+ "default": "./lib/category.js"
26
+ },
27
+ "./Client": {
28
+ "types": "./lib/client.d.ts",
29
+ "bun": "./src/client.ts",
30
+ "default": "./lib/client.js"
31
+ },
32
+ "./Credentials": {
33
+ "types": "./lib/credentials.d.ts",
34
+ "bun": "./src/credentials.ts",
35
+ "default": "./lib/credentials.js"
36
+ },
37
+ "./Errors": {
38
+ "types": "./lib/errors.d.ts",
39
+ "bun": "./src/errors.ts",
40
+ "default": "./lib/errors.js"
41
+ },
42
+ "./Operations": {
43
+ "types": "./lib/operations/index.d.ts",
44
+ "bun": "./src/operations/index.ts",
45
+ "default": "./lib/operations/index.js"
46
+ },
47
+ "./Retry": {
48
+ "types": "./lib/retry.d.ts",
49
+ "bun": "./src/retry.ts",
50
+ "default": "./lib/retry.js"
51
+ },
52
+ "./Sensitive": {
53
+ "types": "./lib/sensitive.d.ts",
54
+ "bun": "./src/sensitive.ts",
55
+ "default": "./lib/sensitive.js"
56
+ },
57
+ "./Traits": {
58
+ "types": "./lib/traits.d.ts",
59
+ "bun": "./src/traits.ts",
60
+ "default": "./lib/traits.js"
61
+ }
62
+ },
63
+ "scripts": {
64
+ "typecheck": "tsgo",
65
+ "build": "tsgo -b",
66
+ "fmt": "oxfmt --write src",
67
+ "lint": "oxlint --fix src",
68
+ "check": "tsgo && oxlint src && oxfmt --check src",
69
+ "test": "bunx vitest run test",
70
+ "publish:npm": "bun run build && bun publish --access public",
71
+ "generate": "bun run scripts/generate.ts && oxfmt --write src && oxlint --fix src",
72
+ "specs:fetch": "git submodule update --force --init --recursive specs/cdp-sdk && git -C specs/cdp-sdk checkout -- .",
73
+ "specs:update": "git -C specs/cdp-sdk fetch && git -C specs/cdp-sdk checkout main && git -C specs/cdp-sdk pull"
74
+ },
75
+ "dependencies": {
76
+ "@distilled.cloud/core": "0.2.5-alpha2",
77
+ "effect": "4.0.0-beta.30"
78
+ },
79
+ "devDependencies": {
80
+ "@types/bun": "^1.3.0",
81
+ "@types/node": "^25.3.5",
82
+ "dotenv": "^16.5.0",
83
+ "vitest": "^3.2.3",
84
+ "yaml": "^2.8.2"
85
+ },
86
+ "peerDependencies": {
87
+ "effect": "4.0.0-beta.30"
88
+ }
89
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Re-export the shared category system from sdk-core.
3
+ */
4
+ export * from "@distilled.cloud/core/category";
package/src/client.ts ADDED
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Coinbase CDP API Client.
3
+ *
4
+ * Wraps the shared REST client from sdk-core with Coinbase CDP-specific
5
+ * error matching, JWT authentication, and credential handling.
6
+ *
7
+ * ## Authentication
8
+ *
9
+ * The Coinbase CDP API uses JWT bearer tokens for authentication. The JWT is
10
+ * signed using your CDP API Key Secret (ES256 or Ed25519) and includes:
11
+ *
12
+ * - `sub`: Your CDP API Key ID
13
+ * - `iss`: "cdp"
14
+ * - `exp`: Current time + 120 seconds
15
+ *
16
+ * Some sensitive wallet operations additionally require an `X-Wallet-Auth`
17
+ * header signed with your Wallet Secret.
18
+ *
19
+ * ## Error Handling
20
+ *
21
+ * Coinbase CDP errors have the shape:
22
+ * ```json
23
+ * {
24
+ * "errorType": "invalid_request",
25
+ * "errorMessage": "Invalid request.",
26
+ * "correlationId": "41deb8d59a9dc9a7-IAD",
27
+ * "errorLink": "https://docs.cdp.coinbase.com/api-reference/v2/errors#invalid-request"
28
+ * }
29
+ * ```
30
+ *
31
+ * Errors are dispatched first by `errorType`, then by HTTP status code.
32
+ */
33
+ import * as Effect from "effect/Effect";
34
+ import * as Schema from "effect/Schema";
35
+ import * as crypto from "node:crypto";
36
+ import { makeAPI } from "@distilled.cloud/core/client";
37
+ import {
38
+ HTTP_STATUS_MAP,
39
+ COINBASE_HTTP_STATUS_MAP,
40
+ ERROR_TYPE_MAP,
41
+ STANDARD_ERROR_TYPE_MAP,
42
+ UnknownCoinbaseError,
43
+ CoinbaseParseError,
44
+ } from "./errors.ts";
45
+ import type { Config } from "./credentials.ts";
46
+ import { Credentials } from "./credentials.ts";
47
+
48
+ // Re-export for convenience
49
+ export { UnknownCoinbaseError } from "./errors.ts";
50
+
51
+ // ============================================================================
52
+ // JWT generation for Coinbase CDP API authentication
53
+ // ============================================================================
54
+
55
+ /**
56
+ * Base64url-encode a buffer.
57
+ */
58
+ const base64url = (buf: Buffer | Uint8Array): string =>
59
+ Buffer.from(buf)
60
+ .toString("base64")
61
+ .replace(/\+/g, "-")
62
+ .replace(/\//g, "_")
63
+ .replace(/=+$/, "");
64
+
65
+ /**
66
+ * Generate a random hex nonce.
67
+ */
68
+ const randomNonce = (): string => crypto.randomBytes(16).toString("hex");
69
+
70
+ /**
71
+ * Detect key type and return the appropriate signing algorithm and key object.
72
+ */
73
+ const resolveSigningKey = (
74
+ apiKeySecret: string,
75
+ ): { algorithm: string; jwsAlg: string; key: crypto.KeyObject } => {
76
+ // Try EC (ES256) first — PEM format
77
+ if (apiKeySecret.includes("-----BEGIN")) {
78
+ return {
79
+ algorithm: "ES256",
80
+ jwsAlg: "ES256",
81
+ key: crypto.createPrivateKey(apiKeySecret),
82
+ };
83
+ }
84
+
85
+ // Ed25519 — base64 encoded 64-byte key (32 seed + 32 public)
86
+ const keyBytes = Buffer.from(apiKeySecret, "base64");
87
+ if (keyBytes.length === 64) {
88
+ // Extract the 32-byte seed (private key)
89
+ const seed = keyBytes.subarray(0, 32);
90
+ // Import as Ed25519 private key using PKCS8 DER wrapping
91
+ // Ed25519 PKCS8 prefix: 302e020100300506032b657004220420
92
+ const pkcs8Prefix = Buffer.from("302e020100300506032b657004220420", "hex");
93
+ const pkcs8Der = Buffer.concat([pkcs8Prefix, seed]);
94
+ return {
95
+ algorithm: "EdDSA",
96
+ jwsAlg: "EdDSA",
97
+ key: crypto.createPrivateKey({
98
+ key: pkcs8Der,
99
+ format: "der",
100
+ type: "pkcs8",
101
+ }),
102
+ };
103
+ }
104
+
105
+ throw new Error(
106
+ "Unsupported CDP API Key Secret format. Expected EC PEM or Ed25519 base64.",
107
+ );
108
+ };
109
+
110
+ /**
111
+ * Generate a JWT bearer token for Coinbase CDP API authentication.
112
+ *
113
+ * The JWT includes:
114
+ * - header: { alg, kid, typ: "JWT", nonce }
115
+ * - payload: { sub, iss: "cdp", iat, nbf, exp }
116
+ */
117
+ const generateJwt = (apiKeyId: string, apiKeySecret: string): string => {
118
+ const { jwsAlg, key } = resolveSigningKey(apiKeySecret);
119
+
120
+ const now = Math.floor(Date.now() / 1000);
121
+ const header = {
122
+ alg: jwsAlg,
123
+ kid: apiKeyId,
124
+ typ: "JWT",
125
+ nonce: randomNonce(),
126
+ };
127
+ const payload = {
128
+ sub: apiKeyId,
129
+ iss: "cdp",
130
+ iat: now,
131
+ nbf: now,
132
+ exp: now + 120,
133
+ };
134
+
135
+ const headerB64 = base64url(Buffer.from(JSON.stringify(header)));
136
+ const payloadB64 = base64url(Buffer.from(JSON.stringify(payload)));
137
+ const signingInput = `${headerB64}.${payloadB64}`;
138
+
139
+ let signature: Buffer;
140
+ if (jwsAlg === "ES256") {
141
+ // ES256 uses SHA-256 with ECDSA, needs IEEE P1363 format (not DER)
142
+ const sign = crypto.createSign("SHA256");
143
+ sign.update(signingInput);
144
+ const derSig = sign.sign(key);
145
+ // Convert DER signature to IEEE P1363 (raw r||s) format
146
+ signature = derToP1363(derSig, 32);
147
+ } else {
148
+ // EdDSA (Ed25519) uses sign directly
149
+ signature = Buffer.from(crypto.sign(null, Buffer.from(signingInput), key));
150
+ }
151
+
152
+ return `${signingInput}.${base64url(signature)}`;
153
+ };
154
+
155
+ /**
156
+ * Convert a DER-encoded ECDSA signature to IEEE P1363 (raw r||s) format.
157
+ * JWS requires P1363 format for ES256.
158
+ */
159
+ const derToP1363 = (derSig: Buffer, componentLength: number): Buffer => {
160
+ // DER format: 30 <len> 02 <rLen> <r> 02 <sLen> <s>
161
+ let offset = 2; // skip 30 <len>
162
+ if (derSig[1]! & 0x80) offset += derSig[1]! & 0x7f;
163
+
164
+ // Read r
165
+ offset++; // skip 02
166
+ const rLen = derSig[offset++]!;
167
+ const r = derSig.subarray(offset, offset + rLen);
168
+ offset += rLen;
169
+
170
+ // Read s
171
+ offset++; // skip 02
172
+ const sLen = derSig[offset++]!;
173
+ const s = derSig.subarray(offset, offset + sLen);
174
+
175
+ // Pad or trim to componentLength
176
+ const result = Buffer.alloc(componentLength * 2);
177
+ const rPadded =
178
+ r.length > componentLength ? r.subarray(r.length - componentLength) : r;
179
+ const sPadded =
180
+ s.length > componentLength ? s.subarray(s.length - componentLength) : s;
181
+ rPadded.copy(result, componentLength - rPadded.length);
182
+ sPadded.copy(result, componentLength * 2 - sPadded.length);
183
+ return result;
184
+ };
185
+
186
+ // ============================================================================
187
+ // Error response parsing
188
+ // ============================================================================
189
+
190
+ /**
191
+ * Coinbase CDP API Error Response Schema.
192
+ *
193
+ * All Coinbase CDP errors have the same envelope:
194
+ * { errorType, errorMessage, correlationId?, errorLink? }
195
+ */
196
+ const CoinbaseErrorResponse = Schema.Struct({
197
+ errorType: Schema.String,
198
+ errorMessage: Schema.String,
199
+ correlationId: Schema.optional(Schema.String),
200
+ errorLink: Schema.optional(Schema.String),
201
+ });
202
+
203
+ /**
204
+ * Match a Coinbase CDP API error response to the appropriate typed error class.
205
+ *
206
+ * Dispatches errors by:
207
+ * 1. The `errorType` field for Coinbase-specific errors (e.g., "already_exists", "policy_violation")
208
+ * 2. The `errorType` field for standard errors mapped to core classes (e.g., "not_found" → NotFound)
209
+ * 3. Standard HTTP status codes mapped from core (400, 401, 403, 404, etc.)
210
+ * 4. Coinbase-specific HTTP status codes (402)
211
+ * 5. Falls back to UnknownCoinbaseError for unrecognized errors
212
+ */
213
+ const matchError = (
214
+ status: number,
215
+ errorBody: unknown,
216
+ ): Effect.Effect<never, unknown> => {
217
+ try {
218
+ const parsed = Schema.decodeUnknownSync(CoinbaseErrorResponse)(errorBody);
219
+ const errorProps = {
220
+ errorType: parsed.errorType,
221
+ errorMessage: parsed.errorMessage,
222
+ correlationId: parsed.correlationId,
223
+ errorLink: parsed.errorLink,
224
+ };
225
+
226
+ // 1. Match by Coinbase-specific error type first
227
+ const TypedErrorClass = ERROR_TYPE_MAP[parsed.errorType];
228
+ if (TypedErrorClass) {
229
+ return Effect.fail(new TypedErrorClass(errorProps));
230
+ }
231
+
232
+ // 2. Match standard error types to core HTTP error classes
233
+ // Maps error types like "not_found", "forbidden", "unauthorized", "invalid_request",
234
+ // "rate_limit_exceeded", "internal_server_error", "bad_gateway", "service_unavailable"
235
+ // to their corresponding core HTTP error classes.
236
+ const StandardErrorClass = STANDARD_ERROR_TYPE_MAP[parsed.errorType];
237
+ if (StandardErrorClass) {
238
+ return Effect.fail(
239
+ new StandardErrorClass({ message: parsed.errorMessage ?? "" }),
240
+ );
241
+ }
242
+
243
+ // 3. Fall back to HTTP status code mapping from core
244
+ const CoreErrorClass = (HTTP_STATUS_MAP as any)[status];
245
+ if (CoreErrorClass) {
246
+ return Effect.fail(
247
+ new CoreErrorClass({ message: parsed.errorMessage ?? "" }),
248
+ );
249
+ }
250
+
251
+ // 4. Coinbase-specific HTTP status codes (402)
252
+ const CoinbaseErrorClass = (COINBASE_HTTP_STATUS_MAP as any)[status];
253
+ if (CoinbaseErrorClass) {
254
+ return Effect.fail(new CoinbaseErrorClass(errorProps));
255
+ }
256
+
257
+ // 5. Fall back to unknown error
258
+ return Effect.fail(
259
+ new UnknownCoinbaseError({
260
+ ...errorProps,
261
+ body: errorBody,
262
+ }),
263
+ );
264
+ } catch {
265
+ return Effect.fail(new UnknownCoinbaseError({ body: errorBody }));
266
+ }
267
+ };
268
+
269
+ // ============================================================================
270
+ // API client factory
271
+ // ============================================================================
272
+
273
+ /**
274
+ * Coinbase CDP API client.
275
+ *
276
+ * Uses JWT bearer token authentication signed with your CDP API Key Secret.
277
+ */
278
+ export const API = makeAPI({
279
+ credentials: Credentials as any,
280
+ getBaseUrl: (creds: any) => (creds as Config).apiBaseUrl,
281
+ getAuthHeaders: (creds: any) => {
282
+ const c = creds as Config;
283
+ const jwt = generateJwt(c.apiKeyId, c.apiKeySecret);
284
+ return {
285
+ Authorization: `Bearer ${jwt}`,
286
+ };
287
+ },
288
+ matchError,
289
+ ParseError: CoinbaseParseError as any,
290
+ });
@@ -0,0 +1,65 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as ServiceMap from "effect/ServiceMap";
4
+ import { ConfigError } from "@distilled.cloud/core/errors";
5
+
6
+ export const DEFAULT_API_BASE_URL = "https://api.cdp.coinbase.com/platform";
7
+
8
+ export interface Config {
9
+ /**
10
+ * CDP API Key ID (UUID format or legacy `organizations/.../apiKeys/...` format).
11
+ */
12
+ readonly apiKeyId: string;
13
+
14
+ /**
15
+ * CDP API Key Secret (Ed25519 base64 or EC PEM private key).
16
+ * Used to sign JWT bearer tokens for API authentication.
17
+ */
18
+ readonly apiKeySecret: string;
19
+
20
+ /**
21
+ * CDP Wallet Secret (base64-encoded DER EC private key).
22
+ * Required only for sensitive wallet operations (POST/DELETE/PUT to account endpoints).
23
+ * If not provided, wallet-auth-requiring operations will fail.
24
+ */
25
+ readonly walletSecret?: string | undefined;
26
+
27
+ /**
28
+ * Base URL for the Coinbase CDP API.
29
+ * @default "https://api.cdp.coinbase.com/platform"
30
+ */
31
+ readonly apiBaseUrl: string;
32
+ }
33
+
34
+ export class Credentials extends ServiceMap.Service<Credentials, Config>()(
35
+ "CoinbaseCredentials",
36
+ ) {}
37
+
38
+ export const CredentialsFromEnv = Layer.effect(
39
+ Credentials,
40
+ Effect.gen(function* () {
41
+ const apiKeyId = process.env.CDP_API_KEY_ID ?? process.env.CDP_API_KEY_NAME;
42
+ const apiKeySecret = process.env.CDP_API_KEY_SECRET;
43
+ const walletSecret = process.env.CDP_WALLET_SECRET;
44
+
45
+ if (!apiKeyId) {
46
+ return yield* new ConfigError({
47
+ message:
48
+ "CDP_API_KEY_ID (or CDP_API_KEY_NAME) environment variable is required",
49
+ });
50
+ }
51
+
52
+ if (!apiKeySecret) {
53
+ return yield* new ConfigError({
54
+ message: "CDP_API_KEY_SECRET environment variable is required",
55
+ });
56
+ }
57
+
58
+ return {
59
+ apiKeyId,
60
+ apiKeySecret,
61
+ walletSecret,
62
+ apiBaseUrl: DEFAULT_API_BASE_URL,
63
+ };
64
+ }),
65
+ );