@coinbase/cdp-sdk 1.1.2 → 1.3.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 (332) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/LICENSE +21 -0
  3. package/README.md +88 -1
  4. package/{dist → _cjs}/accounts/evm/toEvmServerAccount.js +1 -0
  5. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -0
  6. package/{dist → _cjs}/accounts/evm/toEvmSmartAccount.js +1 -0
  7. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -0
  8. package/{dist → _cjs}/accounts/types.js +1 -0
  9. package/_cjs/accounts/types.js.map +1 -0
  10. package/{dist → _cjs}/actions/evm/sendUserOperation.js +1 -0
  11. package/_cjs/actions/evm/sendUserOperation.js.map +1 -0
  12. package/{dist → _cjs}/actions/evm/waitForUserOperation.js +10 -9
  13. package/_cjs/actions/evm/waitForUserOperation.js.map +1 -0
  14. package/{dist → _cjs}/analytics.js +32 -12
  15. package/_cjs/analytics.js.map +1 -0
  16. package/{dist → _cjs}/auth/errors.js +1 -0
  17. package/_cjs/auth/errors.js.map +1 -0
  18. package/{dist → _cjs}/auth/hooks/axios/index.js +2 -1
  19. package/_cjs/auth/hooks/axios/index.js.map +1 -0
  20. package/{dist → _cjs}/auth/hooks/axios/withAuth.js +4 -2
  21. package/_cjs/auth/hooks/axios/withAuth.js.map +1 -0
  22. package/{dist → _cjs}/auth/index.js +4 -3
  23. package/_cjs/auth/index.js.map +1 -0
  24. package/{dist → _cjs}/auth/utils/http.js +6 -5
  25. package/_cjs/auth/utils/http.js.map +1 -0
  26. package/{dist → _cjs}/auth/utils/index.js +3 -2
  27. package/_cjs/auth/utils/index.js.map +1 -0
  28. package/{dist → _cjs}/auth/utils/jwt.js +4 -3
  29. package/_cjs/auth/utils/jwt.js.map +1 -0
  30. package/_cjs/client/cdp.js +101 -0
  31. package/_cjs/client/cdp.js.map +1 -0
  32. package/_cjs/client/evm/evm.js +641 -0
  33. package/_cjs/client/evm/evm.js.map +1 -0
  34. package/{dist → _cjs}/client/evm/evm.types.js +1 -0
  35. package/_cjs/client/evm/evm.types.js.map +1 -0
  36. package/{dist → _cjs}/client/solana/index.js +3 -2
  37. package/_cjs/client/solana/index.js.map +1 -0
  38. package/{dist → _cjs}/client/solana/solana.js +9 -8
  39. package/_cjs/client/solana/solana.js.map +1 -0
  40. package/{dist → _cjs}/client/solana/solana.types.js +1 -0
  41. package/_cjs/client/solana/solana.types.js.map +1 -0
  42. package/{dist → _cjs}/constants.js +1 -0
  43. package/_cjs/constants.js.map +1 -0
  44. package/{dist → _cjs}/errors.js +1 -0
  45. package/_cjs/errors.js.map +1 -0
  46. package/{dist → _cjs}/index.js +4 -3
  47. package/_cjs/index.js.map +1 -0
  48. package/_cjs/openapi-client/cdpApiClient.js +116 -0
  49. package/_cjs/openapi-client/cdpApiClient.js.map +1 -0
  50. package/{dist → _cjs}/openapi-client/errors.js +44 -3
  51. package/_cjs/openapi-client/errors.js.map +1 -0
  52. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +66 -0
  53. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -0
  54. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +125 -0
  55. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -0
  56. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js +160 -0
  57. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -0
  58. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +70 -0
  59. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -0
  60. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +188 -0
  61. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -0
  62. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js +15 -0
  63. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -0
  64. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js +45 -0
  65. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js.map +1 -0
  66. package/{dist → _cjs}/openapi-client/generated/faucets/faucets.js +20 -14
  67. package/_cjs/openapi-client/generated/faucets/faucets.js.map +1 -0
  68. package/{dist → _cjs}/openapi-client/generated/faucets/faucets.msw.js +16 -12
  69. package/_cjs/openapi-client/generated/faucets/faucets.msw.js.map +1 -0
  70. package/{dist → _cjs}/openapi-client/generated/index.msw.js +6 -4
  71. package/_cjs/openapi-client/generated/index.msw.js.map +1 -0
  72. package/{dist → _cjs}/openapi-client/generated/solana-accounts/solana-accounts.js +38 -35
  73. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -0
  74. package/{dist → _cjs}/openapi-client/generated/solana-accounts/solana-accounts.msw.js +68 -35
  75. package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -0
  76. package/{dist → _cjs}/openapi-client/index.js +16 -11
  77. package/_cjs/openapi-client/index.js.map +1 -0
  78. package/_cjs/package.json +1 -0
  79. package/{dist → _cjs}/types/calls.js +1 -0
  80. package/_cjs/types/calls.js.map +1 -0
  81. package/{dist → _cjs}/types/contract.js +1 -0
  82. package/_cjs/types/contract.js.map +1 -0
  83. package/{dist → _cjs}/types/misc.js +1 -0
  84. package/_cjs/types/misc.js.map +1 -0
  85. package/{dist → _cjs}/types/multicall.js +1 -0
  86. package/_cjs/types/multicall.js.map +1 -0
  87. package/{dist → _cjs}/types/utils.js +1 -0
  88. package/_cjs/types/utils.js.map +1 -0
  89. package/{dist → _cjs}/utils/wait.js +3 -2
  90. package/_cjs/utils/wait.js.map +1 -0
  91. package/_cjs/version.js +5 -0
  92. package/_cjs/version.js.map +1 -0
  93. package/_esm/accounts/evm/toEvmServerAccount.js +40 -0
  94. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -0
  95. package/_esm/accounts/evm/toEvmSmartAccount.js +22 -0
  96. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -0
  97. package/_esm/accounts/types.js +2 -0
  98. package/_esm/accounts/types.js.map +1 -0
  99. package/_esm/actions/evm/sendUserOperation.js +85 -0
  100. package/_esm/actions/evm/sendUserOperation.js.map +1 -0
  101. package/_esm/actions/evm/waitForUserOperation.js +58 -0
  102. package/_esm/actions/evm/waitForUserOperation.js.map +1 -0
  103. package/_esm/analytics.js +101 -0
  104. package/_esm/analytics.js.map +1 -0
  105. package/_esm/auth/errors.js +57 -0
  106. package/_esm/auth/errors.js.map +1 -0
  107. package/_esm/auth/hooks/axios/index.js +2 -0
  108. package/_esm/auth/hooks/axios/index.js.map +1 -0
  109. package/_esm/auth/hooks/axios/withAuth.js +72 -0
  110. package/_esm/auth/hooks/axios/withAuth.js.map +1 -0
  111. package/_esm/auth/index.js +5 -0
  112. package/_esm/auth/index.js.map +1 -0
  113. package/_esm/auth/utils/http.js +70 -0
  114. package/_esm/auth/utils/http.js.map +1 -0
  115. package/_esm/auth/utils/index.js +3 -0
  116. package/_esm/auth/utils/index.js.map +1 -0
  117. package/_esm/auth/utils/jwt.js +199 -0
  118. package/_esm/auth/utils/jwt.js.map +1 -0
  119. package/{dist → _esm}/client/cdp.js +16 -13
  120. package/_esm/client/cdp.js.map +1 -0
  121. package/{dist → _esm}/client/evm/evm.js +146 -30
  122. package/_esm/client/evm/evm.js.map +1 -0
  123. package/_esm/client/evm/evm.types.js +2 -0
  124. package/_esm/client/evm/evm.types.js.map +1 -0
  125. package/_esm/client/solana/index.js +2 -0
  126. package/_esm/client/solana/index.js.map +1 -0
  127. package/_esm/client/solana/solana.js +204 -0
  128. package/_esm/client/solana/solana.js.map +1 -0
  129. package/_esm/client/solana/solana.types.js +2 -0
  130. package/_esm/client/solana/solana.types.js.map +1 -0
  131. package/_esm/constants.js +5 -0
  132. package/_esm/constants.js.map +1 -0
  133. package/_esm/errors.js +18 -0
  134. package/_esm/errors.js.map +1 -0
  135. package/_esm/index.js +3 -0
  136. package/_esm/index.js.map +1 -0
  137. package/_esm/openapi-client/cdpApiClient.js +108 -0
  138. package/_esm/openapi-client/cdpApiClient.js.map +1 -0
  139. package/_esm/openapi-client/errors.js +104 -0
  140. package/_esm/openapi-client/errors.js.map +1 -0
  141. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +63 -0
  142. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -0
  143. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +114 -0
  144. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -0
  145. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js +140 -0
  146. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -0
  147. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +61 -0
  148. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -0
  149. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +172 -0
  150. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -0
  151. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js +11 -0
  152. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -0
  153. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js +39 -0
  154. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js.map +1 -0
  155. package/_esm/openapi-client/generated/faucets/faucets.js +52 -0
  156. package/_esm/openapi-client/generated/faucets/faucets.js.map +1 -0
  157. package/_esm/openapi-client/generated/faucets/faucets.msw.js +39 -0
  158. package/_esm/openapi-client/generated/faucets/faucets.msw.js.map +1 -0
  159. package/_esm/openapi-client/generated/index.msw.js +6 -0
  160. package/_esm/openapi-client/generated/index.msw.js.map +1 -0
  161. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js +73 -0
  162. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -0
  163. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js +116 -0
  164. package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -0
  165. package/_esm/openapi-client/index.js +31 -0
  166. package/_esm/openapi-client/index.js.map +1 -0
  167. package/_esm/package.json +1 -0
  168. package/_esm/types/calls.js +4 -0
  169. package/_esm/types/calls.js.map +1 -0
  170. package/_esm/types/contract.js +4 -0
  171. package/_esm/types/contract.js.map +1 -0
  172. package/_esm/types/misc.js +3 -0
  173. package/_esm/types/misc.js.map +1 -0
  174. package/_esm/types/multicall.js +2 -0
  175. package/_esm/types/multicall.js.map +1 -0
  176. package/_esm/types/utils.js +4 -0
  177. package/_esm/types/utils.js.map +1 -0
  178. package/_esm/utils/wait.js +32 -0
  179. package/_esm/utils/wait.js.map +1 -0
  180. package/_esm/version.js +2 -0
  181. package/_esm/version.js.map +1 -0
  182. package/{dist → _types}/accounts/evm/toEvmServerAccount.d.ts +3 -2
  183. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -0
  184. package/{dist → _types}/accounts/evm/toEvmSmartAccount.d.ts +3 -2
  185. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -0
  186. package/{dist → _types}/accounts/types.d.ts +3 -2
  187. package/_types/accounts/types.d.ts.map +1 -0
  188. package/{dist → _types}/actions/evm/sendUserOperation.d.ts +5 -5
  189. package/_types/actions/evm/sendUserOperation.d.ts.map +1 -0
  190. package/{dist → _types}/actions/evm/waitForUserOperation.d.ts +4 -3
  191. package/_types/actions/evm/waitForUserOperation.d.ts.map +1 -0
  192. package/{dist → _types}/analytics.d.ts +16 -0
  193. package/_types/analytics.d.ts.map +1 -0
  194. package/{dist → _types}/auth/errors.d.ts +1 -0
  195. package/_types/auth/errors.d.ts.map +1 -0
  196. package/_types/auth/hooks/axios/index.d.ts +2 -0
  197. package/_types/auth/hooks/axios/index.d.ts.map +1 -0
  198. package/{dist → _types}/auth/hooks/axios/withAuth.d.ts +1 -0
  199. package/_types/auth/hooks/axios/withAuth.d.ts.map +1 -0
  200. package/_types/auth/index.d.ts +5 -0
  201. package/_types/auth/index.d.ts.map +1 -0
  202. package/{dist → _types}/auth/utils/http.d.ts +1 -0
  203. package/_types/auth/utils/http.d.ts.map +1 -0
  204. package/_types/auth/utils/index.d.ts +3 -0
  205. package/_types/auth/utils/index.d.ts.map +1 -0
  206. package/{dist → _types}/auth/utils/jwt.d.ts +1 -0
  207. package/_types/auth/utils/jwt.d.ts.map +1 -0
  208. package/{dist → _types}/client/cdp.d.ts +3 -2
  209. package/_types/client/cdp.d.ts.map +1 -0
  210. package/{dist → _types}/client/evm/evm.d.ts +86 -3
  211. package/_types/client/evm/evm.d.ts.map +1 -0
  212. package/{dist → _types}/client/evm/evm.types.d.ts +104 -7
  213. package/_types/client/evm/evm.types.d.ts.map +1 -0
  214. package/_types/client/solana/index.d.ts +2 -0
  215. package/_types/client/solana/index.d.ts.map +1 -0
  216. package/{dist → _types}/client/solana/solana.d.ts +2 -1
  217. package/_types/client/solana/solana.d.ts.map +1 -0
  218. package/{dist → _types}/client/solana/solana.types.d.ts +2 -1
  219. package/_types/client/solana/solana.types.d.ts.map +1 -0
  220. package/{dist → _types}/constants.d.ts +1 -0
  221. package/_types/constants.d.ts.map +1 -0
  222. package/{dist → _types}/errors.d.ts +1 -0
  223. package/_types/errors.d.ts.map +1 -0
  224. package/_types/index.d.ts +4 -0
  225. package/_types/index.d.ts.map +1 -0
  226. package/{dist → _types}/openapi-client/cdpApiClient.d.ts +1 -0
  227. package/_types/openapi-client/cdpApiClient.d.ts.map +1 -0
  228. package/{dist → _types}/openapi-client/errors.d.ts +30 -2
  229. package/_types/openapi-client/errors.d.ts.map +1 -0
  230. package/{dist → _types}/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +100 -14
  231. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -0
  232. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +91 -0
  233. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -0
  234. package/{dist → _types}/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts +5 -2
  235. package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts.map +1 -0
  236. package/{dist → _types}/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts +22 -20
  237. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts.map +1 -0
  238. package/{dist → _types}/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts +3 -2
  239. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts.map +1 -0
  240. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts +20 -0
  241. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts.map +1 -0
  242. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.msw.d.ts +6 -0
  243. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.msw.d.ts.map +1 -0
  244. package/{dist → _types}/openapi-client/generated/faucets/faucets.d.ts +11 -9
  245. package/_types/openapi-client/generated/faucets/faucets.d.ts.map +1 -0
  246. package/{dist → _types}/openapi-client/generated/faucets/faucets.msw.d.ts +3 -2
  247. package/_types/openapi-client/generated/faucets/faucets.msw.d.ts.map +1 -0
  248. package/_types/openapi-client/generated/index.msw.d.ts +6 -0
  249. package/_types/openapi-client/generated/index.msw.d.ts.map +1 -0
  250. package/{dist → _types}/openapi-client/generated/solana-accounts/solana-accounts.d.ts +21 -20
  251. package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts.map +1 -0
  252. package/{dist → _types}/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts +3 -2
  253. package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts.map +1 -0
  254. package/_types/openapi-client/index.d.ts +61 -0
  255. package/_types/openapi-client/index.d.ts.map +1 -0
  256. package/{dist → _types}/types/calls.d.ts +4 -3
  257. package/_types/types/calls.d.ts.map +1 -0
  258. package/{dist → _types}/types/contract.d.ts +3 -2
  259. package/_types/types/contract.d.ts.map +1 -0
  260. package/_types/types/misc.d.ts +41 -0
  261. package/_types/types/misc.d.ts.map +1 -0
  262. package/{dist → _types}/types/multicall.d.ts +2 -1
  263. package/_types/types/multicall.d.ts.map +1 -0
  264. package/{dist → _types}/types/utils.d.ts +1 -0
  265. package/_types/types/utils.d.ts.map +1 -0
  266. package/{dist → _types}/utils/wait.d.ts +1 -0
  267. package/_types/utils/wait.d.ts.map +1 -0
  268. package/_types/version.d.ts +2 -0
  269. package/_types/version.d.ts.map +1 -0
  270. package/accounts/evm/toEvmServerAccount.ts +60 -0
  271. package/accounts/evm/toEvmSmartAccount.ts +37 -0
  272. package/accounts/types.ts +53 -0
  273. package/actions/evm/sendUserOperation.ts +163 -0
  274. package/actions/evm/waitForUserOperation.ts +115 -0
  275. package/analytics.ts +142 -0
  276. package/auth/README.md +145 -0
  277. package/auth/errors.ts +59 -0
  278. package/auth/hooks/axios/index.ts +1 -0
  279. package/auth/hooks/axios/withAuth.ts +121 -0
  280. package/auth/index.ts +5 -0
  281. package/auth/utils/http.ts +146 -0
  282. package/auth/utils/index.ts +2 -0
  283. package/auth/utils/jwt.ts +324 -0
  284. package/client/cdp.ts +116 -0
  285. package/client/evm/evm.ts +739 -0
  286. package/client/evm/evm.types.ts +408 -0
  287. package/client/solana/index.ts +1 -0
  288. package/client/solana/solana.ts +237 -0
  289. package/client/solana/solana.types.ts +114 -0
  290. package/constants.ts +4 -0
  291. package/errors.ts +17 -0
  292. package/index.ts +4 -0
  293. package/openapi-client/cdpApiClient.ts +221 -0
  294. package/openapi-client/errors.ts +132 -0
  295. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +512 -0
  296. package/openapi-client/generated/evm-accounts/evm-accounts.msw.ts +271 -0
  297. package/openapi-client/generated/evm-accounts/evm-accounts.ts +194 -0
  298. package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.ts +283 -0
  299. package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.ts +132 -0
  300. package/openapi-client/generated/evm-token-balances/evm-token-balances.msw.ts +57 -0
  301. package/openapi-client/generated/evm-token-balances/evm-token-balances.ts +37 -0
  302. package/openapi-client/generated/faucets/faucets.msw.ts +76 -0
  303. package/openapi-client/generated/faucets/faucets.ts +84 -0
  304. package/openapi-client/generated/index.msw.ts +5 -0
  305. package/openapi-client/generated/solana-accounts/solana-accounts.msw.ts +219 -0
  306. package/openapi-client/generated/solana-accounts/solana-accounts.ts +143 -0
  307. package/openapi-client/index.ts +36 -0
  308. package/package.json +31 -66
  309. package/types/calls.ts +40 -0
  310. package/types/contract.ts +126 -0
  311. package/types/misc.ts +44 -0
  312. package/types/multicall.ts +29 -0
  313. package/types/utils.ts +288 -0
  314. package/utils/wait.ts +52 -0
  315. package/version.ts +1 -0
  316. package/dist/auth/hooks/axios/index.d.ts +0 -1
  317. package/dist/auth/index.d.ts +0 -4
  318. package/dist/auth/utils/index.d.ts +0 -2
  319. package/dist/client/evm/index.d.ts +0 -1
  320. package/dist/client/evm/index.js +0 -5
  321. package/dist/client/solana/index.d.ts +0 -1
  322. package/dist/index.d.ts +0 -3
  323. package/dist/openapi-client/cdpApiClient.js +0 -146
  324. package/dist/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +0 -54
  325. package/dist/openapi-client/generated/evm-accounts/evm-accounts.d.ts +0 -62
  326. package/dist/openapi-client/generated/evm-accounts/evm-accounts.js +0 -85
  327. package/dist/openapi-client/generated/evm-accounts/evm-accounts.msw.js +0 -113
  328. package/dist/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +0 -66
  329. package/dist/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +0 -99
  330. package/dist/openapi-client/generated/index.msw.d.ts +0 -4
  331. package/dist/openapi-client/index.d.ts +0 -55
  332. package/dist/types/misc.d.ts +0 -3
@@ -0,0 +1,85 @@
1
+ import { encodeFunctionData } from "viem";
2
+ /**
3
+ * Sends a user operation to the network.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { sendUserOperation } from "@coinbase/cdp-sdk";
8
+ * import { parseEther } from "viem";
9
+ * import { CdpClient } from "@coinbase/cdp-sdk";
10
+ *
11
+ * const client = new CdpClient({
12
+ * apiKeyId: "your-api-key-id",
13
+ * apiKeySecret: "your-api-key-secret",
14
+ * walletSecret: "your-wallet-secret",
15
+ * });
16
+ *
17
+ * const ethAccount = await client.createEvmServerAccount()
18
+ * const smartAccount = await client.createEvmSmartAccount({ owner: ethAccount })
19
+ *
20
+ * const result = await sendUserOperation(client, smartAccount, {
21
+ * calls: [
22
+ * {
23
+ * abi: erc20Abi,
24
+ * functionName: "transfer",
25
+ * args: [to, amount],
26
+ * },
27
+ * {
28
+ * to: "0x1234567890123456789012345678901234567890",
29
+ * data: "0x",
30
+ * value: parseEther("0.0000005"),
31
+ * },
32
+ * ],
33
+ * network: "base-sepolia",
34
+ * paymasterUrl: "https://api.developer.coinbase.com/rpc/v1/base/someapikey",
35
+ * });
36
+ * ```
37
+ *
38
+ * @param {CdpOpenApiClientType} client - The client to use to send the user operation.
39
+ * @param {EvmSmartAccount} smartAccount - The smart account to send the user operation from.
40
+ * @param {SendUserOperationOptions<T>} options - The options for the user operation.
41
+ * @returns {Promise<SendUserOperationReturnType>} The result of the user operation.
42
+ */
43
+ export async function sendUserOperation(client, smartAccount, options) {
44
+ const { calls, network, paymasterUrl } = options;
45
+ if (calls.length === 0) {
46
+ throw new Error("Calls array is empty");
47
+ }
48
+ const encodedCalls = calls.map(call => {
49
+ const value = (call.value ?? BigInt(0)).toString();
50
+ if ("abi" in call && call.abi && "functionName" in call) {
51
+ return {
52
+ to: call.to,
53
+ data: encodeFunctionData({
54
+ abi: call.abi,
55
+ functionName: call.functionName,
56
+ args: call.args,
57
+ }),
58
+ value,
59
+ };
60
+ }
61
+ return {
62
+ to: call.to,
63
+ data: call.data ?? "0x",
64
+ value,
65
+ };
66
+ });
67
+ const createOpResponse = await client.prepareUserOperation(smartAccount.address, {
68
+ network,
69
+ calls: encodedCalls,
70
+ paymasterUrl,
71
+ });
72
+ const owner = smartAccount.owners[0];
73
+ const signature = await owner.sign({
74
+ hash: createOpResponse.userOpHash,
75
+ });
76
+ const broadcastResponse = await client.sendUserOperation(smartAccount.address, createOpResponse.userOpHash, {
77
+ signature,
78
+ }, options.idempotencyKey);
79
+ return {
80
+ smartAccountAddress: smartAccount.address,
81
+ status: broadcastResponse.status,
82
+ userOpHash: createOpResponse.userOpHash,
83
+ };
84
+ }
85
+ //# sourceMappingURL=sendUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserOperation.js","sourceRoot":"","sources":["../../../actions/evm/sendUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AA8D1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA4B,EAC5B,YAA6B,EAC7B,OAAoC;IAEpC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACxD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,KAAK;aACN,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,EAAE;QAC/E,OAAO;QACP,KAAK,EAAE,YAAY;QACnB,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,gBAAgB,CAAC,UAAiB;KACzC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACtD,YAAY,CAAC,OAAO,EACpB,gBAAgB,CAAC,UAAiB,EAClC;QACE,SAAS;KACV,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,mBAAmB,EAAE,YAAY,CAAC,OAAO;QACzC,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,UAAU,EAAE,gBAAgB,CAAC,UAAU;KACT,CAAC;AACnC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { EvmUserOperationStatus, } from "../../openapi-client/index.js";
2
+ import { wait } from "../../utils/wait.js";
3
+ /**
4
+ * Waits for a user operation to complete or fail.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { waitForUserOperation } from "@coinbase/cdp-sdk";
9
+ *
10
+ * const result = await waitForUserOperation(client, {
11
+ * userOpHash: "0x1234567890123456789012345678901234567890",
12
+ * smartAccountAddress: "0x1234567890123456789012345678901234567890",
13
+ * waitOptions: {
14
+ * timeoutSeconds: 30,
15
+ * },
16
+ * });
17
+ * ```
18
+ *
19
+ * @param {CdpOpenApiClientType} client - The client to use to wait for the user operation.
20
+ * @param {WaitForUserOperationOptions} options - The options for the wait operation.
21
+ * @returns {Promise<WaitForUserOperationReturnType>} The result of the user operation.
22
+ */
23
+ export async function waitForUserOperation(client, options) {
24
+ const { userOpHash, smartAccountAddress } = options;
25
+ const reload = async () => {
26
+ const response = await client.getUserOperation(smartAccountAddress, userOpHash);
27
+ return response;
28
+ };
29
+ const transform = (operation) => {
30
+ if (operation.status === EvmUserOperationStatus.failed) {
31
+ return {
32
+ smartAccountAddress: smartAccountAddress,
33
+ status: EvmUserOperationStatus.failed,
34
+ userOpHash: operation.userOpHash,
35
+ };
36
+ }
37
+ else if (operation.status === EvmUserOperationStatus.complete) {
38
+ return {
39
+ smartAccountAddress: smartAccountAddress,
40
+ transactionHash: operation.transactionHash,
41
+ status: EvmUserOperationStatus.complete,
42
+ userOpHash: operation.userOpHash,
43
+ };
44
+ }
45
+ else {
46
+ throw new Error("User operation is not terminal");
47
+ }
48
+ };
49
+ const waitOptions = options.waitOptions || {
50
+ timeoutSeconds: 30,
51
+ };
52
+ return await wait(reload, isTerminal, transform, waitOptions);
53
+ }
54
+ const isTerminal = (operation) => {
55
+ return (operation.status === EvmUserOperationStatus.complete ||
56
+ operation.status === EvmUserOperationStatus.failed);
57
+ };
58
+ //# sourceMappingURL=waitForUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForUserOperation.js","sourceRoot":"","sources":["../../../actions/evm/waitForUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAC;AA+CxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA4B,EAC5B,OAAoC;IAEpC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEpD,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,SAA2B,EAAkC,EAAE;QAChF,IAAI,SAAS,CAAC,MAAM,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;YACvD,OAAO;gBACL,mBAAmB,EAAE,mBAAmB;gBACxC,MAAM,EAAE,sBAAsB,CAAC,MAAM;gBACrC,UAAU,EAAE,SAAS,CAAC,UAAiB;aACd,CAAC;QAC9B,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO;gBACL,mBAAmB,EAAE,mBAAmB;gBACxC,eAAe,EAAE,SAAS,CAAC,eAAgB;gBAC3C,MAAM,EAAE,sBAAsB,CAAC,QAAQ;gBACvC,UAAU,EAAE,SAAS,CAAC,UAAiB;aACX,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI;QACzC,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,SAA2B,EAAW,EAAE;IAC1D,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,sBAAsB,CAAC,QAAQ;QACpD,SAAS,CAAC,MAAM,KAAK,sBAAsB,CAAC,MAAM,CACnD,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,101 @@
1
+ import md5 from "md5";
2
+ import { CdpClient } from "./client/cdp.js";
3
+ import { EvmClient } from "./client/evm/evm.js";
4
+ import { SolanaClient } from "./client/solana/solana.js";
5
+ // This is a public client id for the analytics service
6
+ const publicClientId = "54f2ee2fb3d2b901a829940d70fbfc13";
7
+ /**
8
+ * AnalyticsConfig singleton class for holding the API key ID
9
+ */
10
+ export class AnalyticsConfig {
11
+ /**
12
+ * The API key ID
13
+ */
14
+ static apiKeyId;
15
+ /**
16
+ * Sets the API key ID
17
+ *
18
+ * @param apiKeyId - The API key ID
19
+ */
20
+ static set(apiKeyId) {
21
+ AnalyticsConfig.apiKeyId = apiKeyId;
22
+ }
23
+ }
24
+ /**
25
+ * Sends an analytics event to the default endpoint
26
+ *
27
+ * @param event - The event data containing event-specific fields
28
+ * @returns Promise that resolves when the event is sent
29
+ */
30
+ export async function sendEvent(event) {
31
+ const timestamp = Date.now();
32
+ const enhancedEvent = {
33
+ user_id: AnalyticsConfig.apiKeyId,
34
+ event_type: event.name,
35
+ platform: "server",
36
+ timestamp,
37
+ event_properties: {
38
+ project_name: "cdp-sdk",
39
+ cdp_sdk_language: "typescript",
40
+ ...event,
41
+ },
42
+ };
43
+ const events = [enhancedEvent];
44
+ const stringifiedEventData = JSON.stringify(events);
45
+ const uploadTime = timestamp.toString();
46
+ const checksum = md5(stringifiedEventData + uploadTime);
47
+ const analyticsServiceData = {
48
+ client: publicClientId,
49
+ e: stringifiedEventData,
50
+ checksum,
51
+ };
52
+ const apiEndpoint = "https://cca-lite.coinbase.com";
53
+ const eventPath = "/amp";
54
+ const eventEndPoint = `${apiEndpoint}${eventPath}`;
55
+ await fetch(eventEndPoint, {
56
+ method: "POST",
57
+ mode: "no-cors",
58
+ headers: {
59
+ "Content-Type": "application/json",
60
+ },
61
+ body: JSON.stringify(analyticsServiceData),
62
+ });
63
+ }
64
+ /**
65
+ * Wraps all methods of a class with error tracking.
66
+ *
67
+ * @param ClassToWrap - The class whose prototype methods should be wrapped.
68
+ */
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ function wrapClassWithErrorTracking(ClassToWrap) {
71
+ const methodNames = Object.getOwnPropertyNames(ClassToWrap.prototype).filter(name => name !== "constructor" && typeof ClassToWrap.prototype[name] === "function");
72
+ for (const methodName of methodNames) {
73
+ const originalMethod = ClassToWrap.prototype[methodName];
74
+ ClassToWrap.prototype[methodName] = async function (...args) {
75
+ try {
76
+ return await originalMethod.apply(this, args);
77
+ }
78
+ catch (error) {
79
+ if (!(error instanceof Error)) {
80
+ return;
81
+ }
82
+ const { message, stack } = error;
83
+ if (process.env.DISABLE_CDP_ERROR_REPORTING !== "true") {
84
+ sendEvent({
85
+ method: String(methodName),
86
+ message,
87
+ stack,
88
+ name: "error",
89
+ }).catch(() => {
90
+ // ignore error
91
+ });
92
+ }
93
+ throw error;
94
+ }
95
+ };
96
+ }
97
+ }
98
+ wrapClassWithErrorTracking(CdpClient);
99
+ wrapClassWithErrorTracking(EvmClient);
100
+ wrapClassWithErrorTracking(SolanaClient);
101
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * A class of errors for capturing stack traces.
3
+ */
4
+ class BaseError extends Error {
5
+ /**
6
+ * Base error constructor.
7
+ *
8
+ * @param message - The message to display.
9
+ */
10
+ constructor(message) {
11
+ super(message);
12
+ this.name = this.constructor.name;
13
+ if (Error.captureStackTrace) {
14
+ Error.captureStackTrace(this, this.constructor);
15
+ }
16
+ }
17
+ }
18
+ /**
19
+ * An error for invalid API key format.
20
+ */
21
+ export class InvalidAPIKeyFormatError extends BaseError {
22
+ /**
23
+ * Invalid API key format error constructor.
24
+ *
25
+ * @param message - The message to display.
26
+ */
27
+ constructor(message) {
28
+ super("Invalid API key format: " + message);
29
+ }
30
+ }
31
+ /**
32
+ * An error for invalid Wallet Secret format.
33
+ */
34
+ export class InvalidWalletSecretFormatError extends BaseError {
35
+ /**
36
+ * Invalid Wallet Secret format error constructor.
37
+ *
38
+ * @param message - The message to display.
39
+ */
40
+ constructor(message) {
41
+ super("Invalid Wallet Secret format: " + message);
42
+ }
43
+ }
44
+ /**
45
+ * An error for an undefined Wallet Secret.
46
+ */
47
+ export class UndefinedWalletSecretError extends BaseError {
48
+ /**
49
+ * Undefined Wallet Secret error constructor.
50
+ *
51
+ * @param message - The message to display.
52
+ */
53
+ constructor(message) {
54
+ super("Undefined Wallet Secret: " + message);
55
+ }
56
+ }
57
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../auth/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,SAAU,SAAQ,KAAK;IAC3B;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IACrD;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,0BAA0B,GAAG,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,SAAS;IAC3D;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,gCAAgC,GAAG,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,SAAS;IACvD;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from "./withAuth.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../auth/hooks/axios/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { AxiosHeaders } from "axios";
2
+ import { getAuthHeaders } from "../../utils/http.js";
3
+ /**
4
+ * Axios interceptor for adding the JWT to the Authorization header.
5
+ *
6
+ * @param axiosClient - The Axios client instance to add the interceptor to
7
+ * @param options - Options for the request including API keys and debug flag
8
+ * @returns The modified request configuration with the Authorization header added
9
+ */
10
+ export function withAuth(axiosClient, options) {
11
+ axiosClient.interceptors.request.use(async (axiosConfig) => {
12
+ const method = axiosConfig.method?.toString().toUpperCase() || "GET";
13
+ if (!axiosConfig.url) {
14
+ throw new Error("URL is required for authentication");
15
+ }
16
+ const fullyQualifiedURL = axiosClient.getUri() + axiosConfig.url;
17
+ // Parse URL to get host and path
18
+ const url = new URL(fullyQualifiedURL);
19
+ // Get authentication headers
20
+ const headers = await getAuthHeaders({
21
+ apiKeyId: options.apiKeyId,
22
+ apiKeySecret: options.apiKeySecret,
23
+ requestMethod: method,
24
+ requestHost: url.host,
25
+ requestPath: url.pathname,
26
+ requestBody: axiosConfig.data,
27
+ walletSecret: options.walletSecret,
28
+ source: options.source,
29
+ sourceVersion: options.sourceVersion,
30
+ expiresIn: options.expiresIn,
31
+ });
32
+ // Add headers to request config
33
+ axiosConfig.headers = new AxiosHeaders({
34
+ ...axiosConfig.headers,
35
+ ...headers,
36
+ });
37
+ if (options.debug) {
38
+ console.log("Request:", {
39
+ method,
40
+ url: fullyQualifiedURL,
41
+ headers: axiosConfig.headers,
42
+ data: axiosConfig.data,
43
+ });
44
+ }
45
+ return axiosConfig;
46
+ });
47
+ if (options.debug) {
48
+ axiosClient.interceptors.response.use(response => {
49
+ console.log("Response:", {
50
+ status: response.status,
51
+ statusText: response.statusText,
52
+ headers: response.headers,
53
+ data: response.data,
54
+ });
55
+ return response;
56
+ }, error => {
57
+ // Ensure we have access to the error response details
58
+ const errorDetails = {
59
+ status: error.response?.status,
60
+ statusText: error.response?.statusText,
61
+ headers: error.response?.headers,
62
+ data: error.response?.data,
63
+ message: error.message,
64
+ cause: error.cause,
65
+ };
66
+ console.error("Response Error:", errorDetails);
67
+ return Promise.reject(error);
68
+ });
69
+ }
70
+ return axiosClient;
71
+ }
72
+ //# sourceMappingURL=withAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAuth.js","sourceRoot":"","sources":["../../../../auth/hooks/axios/withAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAqCrD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,WAA0B,EAAE,OAA+B;IAClF,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;QACvD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC;QAErE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC;QAEjE,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEvC,6BAA6B;QAC7B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;YACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,GAAG,CAAC,IAAI;YACrB,WAAW,EAAE,GAAG,CAAC,QAAQ;YACzB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,gCAAgC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC;YACrC,GAAG,WAAW,CAAC,OAAO;YACtB,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;gBACtB,MAAM;gBACN,GAAG,EAAE,iBAAiB;gBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,sDAAsD;YACtD,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;gBAC9B,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU;gBACtC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO;gBAChC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as axiosHooks from "./hooks/axios/index.js";
2
+ export * from "./utils/http.js";
3
+ export * from "./utils/jwt.js";
4
+ export { axiosHooks };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAErD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { generateWalletJwt, generateJwt } from "./jwt.js";
2
+ import { version } from "../../version.js";
3
+ /**
4
+ * Gets authentication headers for a request.
5
+ *
6
+ * @param options - The configuration options for generating auth headers
7
+ * @returns Object containing the authentication headers
8
+ */
9
+ export async function getAuthHeaders(options) {
10
+ const headers = {};
11
+ // Generate and add JWT token
12
+ const jwt = await generateJwt({
13
+ apiKeyId: options.apiKeyId,
14
+ apiKeySecret: options.apiKeySecret,
15
+ requestMethod: options.requestMethod,
16
+ requestHost: options.requestHost,
17
+ requestPath: options.requestPath,
18
+ expiresIn: options.expiresIn,
19
+ });
20
+ headers["Authorization"] = `Bearer ${jwt}`;
21
+ headers["Content-Type"] = "application/json";
22
+ // Add wallet auth if needed
23
+ if (requiresWalletAuth(options.requestMethod, options.requestPath)) {
24
+ if (!options.walletSecret) {
25
+ throw new Error("Wallet Secret not configured. Please set the CDP_WALLET_SECRET environment variable, or pass it as an option to the CdpClient constructor.");
26
+ }
27
+ const walletAuthToken = await generateWalletJwt({
28
+ walletSecret: options.walletSecret,
29
+ requestMethod: options.requestMethod,
30
+ requestHost: options.requestHost,
31
+ requestPath: options.requestPath,
32
+ requestData: options.requestBody || {},
33
+ });
34
+ headers["X-Wallet-Auth"] = walletAuthToken;
35
+ }
36
+ // Add correlation data
37
+ headers["Correlation-Context"] = getCorrelationData(options.source, options.sourceVersion);
38
+ return headers;
39
+ }
40
+ /**
41
+ * Returns true if the request indicated by the method and URL requires wallet authentication.
42
+ *
43
+ * @param requestMethod - The HTTP method of the request
44
+ * @param requestPath - The URL path of the request
45
+ * @returns True if the request requires wallet authentication, false otherwise
46
+ */
47
+ function requiresWalletAuth(requestMethod, requestPath) {
48
+ return (requestPath?.includes("/accounts") && (requestMethod === "POST" || requestMethod === "DELETE"));
49
+ }
50
+ /**
51
+ * Returns encoded correlation data including the SDK version and language.
52
+ *
53
+ * @param source - The source identifier for the request
54
+ * @param sourceVersion - The version of the source making the request
55
+ * @returns Encoded correlation data as a query string
56
+ */
57
+ function getCorrelationData(source, sourceVersion) {
58
+ const data = {
59
+ sdk_version: version,
60
+ sdk_language: "typescript",
61
+ source: source || "sdk-auth",
62
+ };
63
+ if (sourceVersion) {
64
+ data["source_version"] = sourceVersion;
65
+ }
66
+ return Object.keys(data)
67
+ .map(key => `${key}=${encodeURIComponent(data[key])}`)
68
+ .join(",");
69
+ }
70
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../auth/utils/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAiE3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,6BAA6B;IAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;IAC3C,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IAE7C,4BAA4B;IAC5B,IAAI,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,4IAA4I,CAC7I,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC;YAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IAC7C,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,qBAAqB,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,aAAqB,EAAE,WAAmB;IACpE,OAAO,CACL,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,QAAQ,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe,EAAE,aAAsB;IACjE,MAAM,IAAI,GAAG;QACX,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,MAAM,IAAI,UAAU;KAC7B,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACrB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./http.js";
2
+ export * from "./jwt.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../auth/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}