@decibeltrade/sdk 0.1.1

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 (294) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint$colon$check.log +5 -0
  3. package/.turbo/turbo-lint.log +5 -0
  4. package/decibel_transactions.md +1049 -0
  5. package/dist/abi/abi-manager.d.ts +13 -0
  6. package/dist/abi/abi-manager.d.ts.map +1 -0
  7. package/dist/abi/abi-manager.js +21 -0
  8. package/dist/abi/abis.json +1322 -0
  9. package/dist/abi/bytecode-manager.d.ts +57 -0
  10. package/dist/abi/bytecode-manager.d.ts.map +1 -0
  11. package/dist/abi/bytecode-manager.js +62 -0
  12. package/dist/abi/bytecode.json +24 -0
  13. package/dist/abi/fetch-abis.d.ts +7 -0
  14. package/dist/abi/fetch-abis.d.ts.map +1 -0
  15. package/dist/abi/fetch-abis.js +132 -0
  16. package/dist/abi/fetch-bytecode.d.ts +24 -0
  17. package/dist/abi/fetch-bytecode.d.ts.map +1 -0
  18. package/dist/abi/fetch-bytecode.js +123 -0
  19. package/dist/abi/generate-abis.d.ts +6 -0
  20. package/dist/abi/generate-abis.d.ts.map +1 -0
  21. package/dist/abi/generate-abis.js +170 -0
  22. package/dist/abi/json/netna.json +1323 -0
  23. package/dist/abi/json/testnet.json +1315 -0
  24. package/dist/abi/types.d.ts +22 -0
  25. package/dist/abi/types.d.ts.map +1 -0
  26. package/dist/abi/types.js +2 -0
  27. package/dist/admin.d.ts +29 -0
  28. package/dist/admin.d.ts.map +1 -0
  29. package/dist/admin.js +203 -0
  30. package/dist/base.d.ts +42 -0
  31. package/dist/base.d.ts.map +1 -0
  32. package/dist/base.js +176 -0
  33. package/dist/constants.d.ts +41 -0
  34. package/dist/constants.d.ts.map +1 -0
  35. package/dist/constants.js +78 -0
  36. package/dist/fee-pay.d.ts +11 -0
  37. package/dist/fee-pay.d.ts.map +1 -0
  38. package/dist/fee-pay.js +30 -0
  39. package/dist/gas/gas-price-manager.d.ts +35 -0
  40. package/dist/gas/gas-price-manager.d.ts.map +1 -0
  41. package/dist/gas/gas-price-manager.js +93 -0
  42. package/dist/gas-price-manager.d.ts +31 -0
  43. package/dist/gas-price-manager.d.ts.map +1 -0
  44. package/dist/gas-price-manager.js +84 -0
  45. package/dist/index.d.ts +11 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +26 -0
  48. package/dist/order-event.types.d.ts +55 -0
  49. package/dist/order-event.types.d.ts.map +1 -0
  50. package/dist/order-event.types.js +3 -0
  51. package/dist/order-status.d.ts +43 -0
  52. package/dist/order-status.d.ts.map +1 -0
  53. package/dist/order-status.js +86 -0
  54. package/dist/read/account-overview/account-overview.reader.d.ts +37 -0
  55. package/dist/read/account-overview/account-overview.reader.d.ts.map +1 -0
  56. package/dist/read/account-overview/account-overview.reader.js +35 -0
  57. package/dist/read/account-overview/account-overview.types.d.ts +52 -0
  58. package/dist/read/account-overview/account-overview.types.d.ts.map +1 -0
  59. package/dist/read/account-overview/account-overview.types.js +36 -0
  60. package/dist/read/api-wallets/api-wallets.reader.d.ts +17 -0
  61. package/dist/read/api-wallets/api-wallets.reader.d.ts.map +1 -0
  62. package/dist/read/api-wallets/api-wallets.reader.js +27 -0
  63. package/dist/read/api-wallets/api-wallets.types.d.ts +17 -0
  64. package/dist/read/api-wallets/api-wallets.types.d.ts.map +1 -0
  65. package/dist/read/api-wallets/api-wallets.types.js +13 -0
  66. package/dist/read/base-reader.d.ts +22 -0
  67. package/dist/read/base-reader.d.ts.map +1 -0
  68. package/dist/read/base-reader.js +29 -0
  69. package/dist/read/candlesticks/candlesticks.reader.d.ts +31 -0
  70. package/dist/read/candlesticks/candlesticks.reader.d.ts.map +1 -0
  71. package/dist/read/candlesticks/candlesticks.reader.js +43 -0
  72. package/dist/read/candlesticks/candlesticks.types.d.ts +45 -0
  73. package/dist/read/candlesticks/candlesticks.types.d.ts.map +1 -0
  74. package/dist/read/candlesticks/candlesticks.types.js +36 -0
  75. package/dist/read/delegations/delegations.reader.d.ts +15 -0
  76. package/dist/read/delegations/delegations.reader.d.ts.map +1 -0
  77. package/dist/read/delegations/delegations.reader.js +23 -0
  78. package/dist/read/delegations/delegations.types.d.ts +17 -0
  79. package/dist/read/delegations/delegations.types.d.ts.map +1 -0
  80. package/dist/read/delegations/delegations.types.js +13 -0
  81. package/dist/read/index.d.ts +105 -0
  82. package/dist/read/index.d.ts.map +1 -0
  83. package/dist/read/index.js +244 -0
  84. package/dist/read/leaderboard/leaderboard.reader.d.ts +21 -0
  85. package/dist/read/leaderboard/leaderboard.reader.d.ts.map +1 -0
  86. package/dist/read/leaderboard/leaderboard.reader.js +22 -0
  87. package/dist/read/leaderboard/leaderboard.types.d.ts +27 -0
  88. package/dist/read/leaderboard/leaderboard.types.d.ts.map +1 -0
  89. package/dist/read/leaderboard/leaderboard.types.js +14 -0
  90. package/dist/read/market-contexts/market-contexts.reader.d.ts +22 -0
  91. package/dist/read/market-contexts/market-contexts.reader.d.ts.map +1 -0
  92. package/dist/read/market-contexts/market-contexts.reader.js +27 -0
  93. package/dist/read/market-contexts/market-contexts.types.d.ts +26 -0
  94. package/dist/read/market-contexts/market-contexts.types.d.ts.map +1 -0
  95. package/dist/read/market-contexts/market-contexts.types.js +19 -0
  96. package/dist/read/market-depth/market-depth.reader.d.ts +30 -0
  97. package/dist/read/market-depth/market-depth.reader.d.ts.map +1 -0
  98. package/dist/read/market-depth/market-depth.reader.js +46 -0
  99. package/dist/read/market-depth/market-depth.types.d.ts +20 -0
  100. package/dist/read/market-depth/market-depth.types.d.ts.map +1 -0
  101. package/dist/read/market-depth/market-depth.types.js +16 -0
  102. package/dist/read/market-prices/market-prices.reader.d.ts +44 -0
  103. package/dist/read/market-prices/market-prices.reader.d.ts.map +1 -0
  104. package/dist/read/market-prices/market-prices.reader.js +51 -0
  105. package/dist/read/market-prices/market-prices.types.d.ts +48 -0
  106. package/dist/read/market-prices/market-prices.types.d.ts.map +1 -0
  107. package/dist/read/market-prices/market-prices.types.js +26 -0
  108. package/dist/read/market-trades/market-trades.reader.d.ts +33 -0
  109. package/dist/read/market-trades/market-trades.reader.d.ts.map +1 -0
  110. package/dist/read/market-trades/market-trades.reader.js +39 -0
  111. package/dist/read/market-trades/market-trades.types.d.ts +52 -0
  112. package/dist/read/market-trades/market-trades.types.d.ts.map +1 -0
  113. package/dist/read/market-trades/market-trades.types.js +23 -0
  114. package/dist/read/markets/markets.reader.d.ts +38 -0
  115. package/dist/read/markets/markets.reader.d.ts.map +1 -0
  116. package/dist/read/markets/markets.reader.js +80 -0
  117. package/dist/read/markets/markets.types.d.ts +82 -0
  118. package/dist/read/markets/markets.types.d.ts.map +1 -0
  119. package/dist/read/markets/markets.types.js +46 -0
  120. package/dist/read/pagination.types.d.ts +14 -0
  121. package/dist/read/pagination.types.d.ts.map +1 -0
  122. package/dist/read/pagination.types.js +12 -0
  123. package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts +14 -0
  124. package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts.map +1 -0
  125. package/dist/read/portfolio-chart/portfolio-chart.reader.js +21 -0
  126. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts +14 -0
  127. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts.map +1 -0
  128. package/dist/read/portfolio-chart/portfolio-chart.types.js +12 -0
  129. package/dist/read/public-vaults/public-vaults.reader.d.ts +38 -0
  130. package/dist/read/public-vaults/public-vaults.reader.d.ts.map +1 -0
  131. package/dist/read/public-vaults/public-vaults.reader.js +31 -0
  132. package/dist/read/public-vaults/public-vaults.types.d.ts +62 -0
  133. package/dist/read/public-vaults/public-vaults.types.d.ts.map +1 -0
  134. package/dist/read/public-vaults/public-vaults.types.js +33 -0
  135. package/dist/read/types.d.ts +178 -0
  136. package/dist/read/types.d.ts.map +1 -0
  137. package/dist/read/types.js +87 -0
  138. package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts +31 -0
  139. package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts.map +1 -0
  140. package/dist/read/user-active-twaps/user-active-twaps.reader.js +31 -0
  141. package/dist/read/user-active-twaps/user-active-twaps.types.d.ts +49 -0
  142. package/dist/read/user-active-twaps/user-active-twaps.types.d.ts.map +1 -0
  143. package/dist/read/user-active-twaps/user-active-twaps.types.js +25 -0
  144. package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts +31 -0
  145. package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts.map +1 -0
  146. package/dist/read/user-bulk-orders/user-bulk-orders.reader.js +32 -0
  147. package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts +46 -0
  148. package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts.map +1 -0
  149. package/dist/read/user-bulk-orders/user-bulk-orders.types.js +24 -0
  150. package/dist/read/user-funding-history/user-funding-history.reader.d.ts +28 -0
  151. package/dist/read/user-funding-history/user-funding-history.reader.d.ts.map +1 -0
  152. package/dist/read/user-funding-history/user-funding-history.reader.js +32 -0
  153. package/dist/read/user-funding-history/user-funding-history.types.d.ts +37 -0
  154. package/dist/read/user-funding-history/user-funding-history.types.d.ts.map +1 -0
  155. package/dist/read/user-funding-history/user-funding-history.types.js +21 -0
  156. package/dist/read/user-notifications/user-notifications.reader.d.ts +13 -0
  157. package/dist/read/user-notifications/user-notifications.reader.d.ts.map +1 -0
  158. package/dist/read/user-notifications/user-notifications.reader.js +19 -0
  159. package/dist/read/user-notifications/user-notifications.types.d.ts +49 -0
  160. package/dist/read/user-notifications/user-notifications.types.d.ts.map +1 -0
  161. package/dist/read/user-notifications/user-notifications.types.js +18 -0
  162. package/dist/read/user-open-orders/user-open-orders.reader.d.ts +40 -0
  163. package/dist/read/user-open-orders/user-open-orders.reader.d.ts.map +1 -0
  164. package/dist/read/user-open-orders/user-open-orders.reader.js +31 -0
  165. package/dist/read/user-open-orders/user-open-orders.types.d.ts +76 -0
  166. package/dist/read/user-open-orders/user-open-orders.types.d.ts.map +1 -0
  167. package/dist/read/user-open-orders/user-open-orders.types.js +34 -0
  168. package/dist/read/user-order-history/user-order-history.reader.d.ts +40 -0
  169. package/dist/read/user-order-history/user-order-history.reader.d.ts.map +1 -0
  170. package/dist/read/user-order-history/user-order-history.reader.js +28 -0
  171. package/dist/read/user-order-history/user-order-history.types.d.ts +85 -0
  172. package/dist/read/user-order-history/user-order-history.types.d.ts.map +1 -0
  173. package/dist/read/user-order-history/user-order-history.types.js +37 -0
  174. package/dist/read/user-positions/user-positions.reader.d.ts +37 -0
  175. package/dist/read/user-positions/user-positions.reader.d.ts.map +1 -0
  176. package/dist/read/user-positions/user-positions.reader.js +41 -0
  177. package/dist/read/user-positions/user-positions.types.d.ts +2590 -0
  178. package/dist/read/user-positions/user-positions.types.d.ts.map +1 -0
  179. package/dist/read/user-positions/user-positions.types.js +31 -0
  180. package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts +18 -0
  181. package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts.map +1 -0
  182. package/dist/read/user-subaccounts/user-subaccounts.reader.js +28 -0
  183. package/dist/read/user-subaccounts/user-subaccounts.types.d.ts +21 -0
  184. package/dist/read/user-subaccounts/user-subaccounts.types.d.ts.map +1 -0
  185. package/dist/read/user-subaccounts/user-subaccounts.types.js +15 -0
  186. package/dist/read/user-trade-history/user-trade-history.reader.d.ts +33 -0
  187. package/dist/read/user-trade-history/user-trade-history.reader.d.ts.map +1 -0
  188. package/dist/read/user-trade-history/user-trade-history.reader.js +32 -0
  189. package/dist/read/user-trade-history/user-trade-history.types.d.ts +52 -0
  190. package/dist/read/user-trade-history/user-trade-history.types.d.ts.map +1 -0
  191. package/dist/read/user-trade-history/user-trade-history.types.js +26 -0
  192. package/dist/read/user-vaults/user-vaults.reader.d.ts +26 -0
  193. package/dist/read/user-vaults/user-vaults.reader.d.ts.map +1 -0
  194. package/dist/read/user-vaults/user-vaults.reader.js +32 -0
  195. package/dist/read/user-vaults/user-vaults.types.d.ts +39 -0
  196. package/dist/read/user-vaults/user-vaults.types.d.ts.map +1 -0
  197. package/dist/read/user-vaults/user-vaults.types.js +21 -0
  198. package/dist/read/vault/vault.reader.d.ts +95 -0
  199. package/dist/read/vault/vault.reader.d.ts.map +1 -0
  200. package/dist/read/vault/vault.reader.js +168 -0
  201. package/dist/read/vault/vault.types.d.ts +49 -0
  202. package/dist/read/vault/vault.types.d.ts.map +1 -0
  203. package/dist/read/vault/vault.types.js +45 -0
  204. package/dist/read/vaults/vaults.reader.d.ts +72 -0
  205. package/dist/read/vaults/vaults.reader.d.ts.map +1 -0
  206. package/dist/read/vaults/vaults.reader.js +63 -0
  207. package/dist/read/vaults/vaults.types.d.ts +140 -0
  208. package/dist/read/vaults/vaults.types.d.ts.map +1 -0
  209. package/dist/read/vaults/vaults.types.js +71 -0
  210. package/dist/read/ws-subscription.d.ts +21 -0
  211. package/dist/read/ws-subscription.d.ts.map +1 -0
  212. package/dist/read/ws-subscription.js +170 -0
  213. package/dist/subaccount-types.d.ts +24 -0
  214. package/dist/subaccount-types.d.ts.map +1 -0
  215. package/dist/subaccount-types.js +11 -0
  216. package/dist/transaction-builder.d.ts +14 -0
  217. package/dist/transaction-builder.d.ts.map +1 -0
  218. package/dist/transaction-builder.js +40 -0
  219. package/dist/tsconfig.tsbuildinfo +1 -0
  220. package/dist/utils.d.ts +56 -0
  221. package/dist/utils.d.ts.map +1 -0
  222. package/dist/utils.js +164 -0
  223. package/dist/vault-types.d.ts +43 -0
  224. package/dist/vault-types.d.ts.map +1 -0
  225. package/dist/vault-types.js +11 -0
  226. package/dist/write.d.ts +271 -0
  227. package/dist/write.d.ts.map +1 -0
  228. package/dist/write.js +485 -0
  229. package/eslint.config.mjs +25 -0
  230. package/package.json +39 -0
  231. package/readme.md +257 -0
  232. package/sdk_reference.md +876 -0
  233. package/src/abi/generate-abis.ts +164 -0
  234. package/src/abi/json/netna.json +1323 -0
  235. package/src/abi/json/testnet.json +1315 -0
  236. package/src/abi/types.ts +23 -0
  237. package/src/admin.ts +284 -0
  238. package/src/base.ts +218 -0
  239. package/src/constants.ts +118 -0
  240. package/src/fee-pay.ts +39 -0
  241. package/src/gas/gas-price-manager.ts +115 -0
  242. package/src/index.ts +10 -0
  243. package/src/order-event.types.ts +65 -0
  244. package/src/order-status.ts +89 -0
  245. package/src/read/account-overview/account-overview.reader.ts +43 -0
  246. package/src/read/account-overview/account-overview.types.ts +45 -0
  247. package/src/read/base-reader.ts +41 -0
  248. package/src/read/candlesticks/candlesticks.reader.ts +61 -0
  249. package/src/read/candlesticks/candlesticks.types.ts +46 -0
  250. package/src/read/delegations/delegations.reader.ts +22 -0
  251. package/src/read/delegations/delegations.types.ts +19 -0
  252. package/src/read/index.ts +271 -0
  253. package/src/read/leaderboard/leaderboard.reader.ts +21 -0
  254. package/src/read/leaderboard/leaderboard.types.ts +26 -0
  255. package/src/read/market-contexts/market-contexts.reader.ts +26 -0
  256. package/src/read/market-contexts/market-contexts.types.ts +18 -0
  257. package/src/read/market-depth/market-depth.reader.ts +60 -0
  258. package/src/read/market-depth/market-depth.types.ts +24 -0
  259. package/src/read/market-prices/market-prices.reader.ts +61 -0
  260. package/src/read/market-prices/market-prices.types.ts +38 -0
  261. package/src/read/market-trades/market-trades.reader.ts +46 -0
  262. package/src/read/market-trades/market-trades.types.ts +34 -0
  263. package/src/read/markets/markets.reader.ts +82 -0
  264. package/src/read/markets/markets.types.ts +54 -0
  265. package/src/read/pagination.types.ts +18 -0
  266. package/src/read/portfolio-chart/portfolio-chart.reader.ts +20 -0
  267. package/src/read/portfolio-chart/portfolio-chart.types.ts +21 -0
  268. package/src/read/types.ts +129 -0
  269. package/src/read/user-active-twaps/user-active-twaps.reader.ts +36 -0
  270. package/src/read/user-active-twaps/user-active-twaps.types.ts +33 -0
  271. package/src/read/user-bulk-orders/user-bulk-orders.reader.ts +37 -0
  272. package/src/read/user-bulk-orders/user-bulk-orders.types.ts +32 -0
  273. package/src/read/user-funding-history/user-funding-history.reader.ts +38 -0
  274. package/src/read/user-funding-history/user-funding-history.types.ts +29 -0
  275. package/src/read/user-notifications/user-notifications.reader.ts +17 -0
  276. package/src/read/user-notifications/user-notifications.types.ts +61 -0
  277. package/src/read/user-open-orders/user-open-orders.reader.ts +36 -0
  278. package/src/read/user-open-orders/user-open-orders.types.ts +42 -0
  279. package/src/read/user-order-history/user-order-history.reader.ts +34 -0
  280. package/src/read/user-order-history/user-order-history.types.ts +44 -0
  281. package/src/read/user-positions/user-positions.reader.ts +55 -0
  282. package/src/read/user-positions/user-positions.types.ts +43 -0
  283. package/src/read/user-subaccounts/user-subaccounts.reader.ts +30 -0
  284. package/src/read/user-subaccounts/user-subaccounts.types.ts +21 -0
  285. package/src/read/user-trade-history/user-trade-history.reader.ts +38 -0
  286. package/src/read/user-trade-history/user-trade-history.types.ts +33 -0
  287. package/src/read/vaults/vaults.reader.ts +79 -0
  288. package/src/read/vaults/vaults.types.ts +106 -0
  289. package/src/read/ws-subscription.ts +200 -0
  290. package/src/subaccount-types.ts +31 -0
  291. package/src/transaction-builder.ts +75 -0
  292. package/src/utils.ts +255 -0
  293. package/src/write.ts +965 -0
  294. package/tsconfig.json +8 -0
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketPricesReader = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const base_reader_1 = require("../base-reader");
6
+ const market_prices_types_1 = require("./market-prices.types");
7
+ class MarketPricesReader extends base_reader_1.BaseReader {
8
+ async getAll() {
9
+ const response = await this.getRequest({
10
+ schema: market_prices_types_1.MarketPricesSchema,
11
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
12
+ });
13
+ return response.data;
14
+ }
15
+ /**
16
+ * Get the price data for a given market
17
+ * @param marketName The name of the market to get prices for
18
+ * @returns The price data for the given market
19
+ */
20
+ async getByName(marketName) {
21
+ const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
22
+ const response = await this.getRequest({
23
+ schema: market_prices_types_1.MarketPricesSchema,
24
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
25
+ queryParams: { market: marketAddr.toString() },
26
+ });
27
+ return response.data;
28
+ }
29
+ /**
30
+ * Subscribe to price updates for a market
31
+ * @param marketName The name of the market to subscribe to
32
+ * @param onData Callback function for received price data
33
+ * @returns A function to unsubscribe from the oracle price updates
34
+ */
35
+ subscribeByName(marketName, onData) {
36
+ const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
37
+ const topic = `market_price:${marketAddr}`;
38
+ return this.deps.ws.subscribe(topic, market_prices_types_1.MarketPriceWsMessageSchema, onData);
39
+ }
40
+ /**
41
+ * Subscribe to price updates for a market
42
+ * @param marketAddr The address of the market to subscribe to
43
+ * @param onData Callback function for received price data
44
+ * @returns A function to unsubscribe from the oracle price updates
45
+ */
46
+ subscribeByAddress(marketAddr, onData) {
47
+ const topic = `market_price:${marketAddr}`;
48
+ return this.deps.ws.subscribe(topic, market_prices_types_1.MarketPriceWsMessageSchema, onData);
49
+ }
50
+ }
51
+ exports.MarketPricesReader = MarketPricesReader;
@@ -0,0 +1,48 @@
1
+ import { z } from "zod/v4";
2
+ export declare const PricesSchema: z.ZodObject<{
3
+ market: z.ZodString;
4
+ mark_px: z.ZodNumber;
5
+ mid_px: z.ZodNumber;
6
+ oracle_px: z.ZodNumber;
7
+ funding_rate_bps: z.ZodNumber;
8
+ is_funding_positive: z.ZodBoolean;
9
+ open_interest: z.ZodNumber;
10
+ transaction_unix_ms: z.ZodNumber;
11
+ }, z.core.$strip>;
12
+ export declare const MarketPricesSchema: z.ZodArray<z.ZodObject<{
13
+ market: z.ZodString;
14
+ mark_px: z.ZodNumber;
15
+ mid_px: z.ZodNumber;
16
+ oracle_px: z.ZodNumber;
17
+ funding_rate_bps: z.ZodNumber;
18
+ is_funding_positive: z.ZodBoolean;
19
+ open_interest: z.ZodNumber;
20
+ transaction_unix_ms: z.ZodNumber;
21
+ }, z.core.$strip>>;
22
+ export declare const MarketPriceSchema: z.ZodObject<{
23
+ market: z.ZodString;
24
+ mark_px: z.ZodNumber;
25
+ mid_px: z.ZodNumber;
26
+ oracle_px: z.ZodNumber;
27
+ funding_rate_bps: z.ZodNumber;
28
+ is_funding_positive: z.ZodBoolean;
29
+ open_interest: z.ZodNumber;
30
+ transaction_unix_ms: z.ZodNumber;
31
+ }, z.core.$strip>;
32
+ export declare const MarketPriceWsMessageSchema: z.ZodObject<{
33
+ price: z.ZodObject<{
34
+ market: z.ZodString;
35
+ mark_px: z.ZodNumber;
36
+ mid_px: z.ZodNumber;
37
+ oracle_px: z.ZodNumber;
38
+ funding_rate_bps: z.ZodNumber;
39
+ is_funding_positive: z.ZodBoolean;
40
+ open_interest: z.ZodNumber;
41
+ transaction_unix_ms: z.ZodNumber;
42
+ }, z.core.$strip>;
43
+ }, z.core.$strip>;
44
+ export type Prices = z.infer<typeof PricesSchema>;
45
+ export type MarketPrices = z.infer<typeof MarketPricesSchema>;
46
+ export type MarketPrice = z.infer<typeof MarketPriceSchema>;
47
+ export type MarketPriceWsMessage = z.infer<typeof MarketPriceWsMessageSchema>;
48
+ //# sourceMappingURL=market-prices.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-prices.types.d.ts","sourceRoot":"","sources":["../../../src/read/market-prices/market-prices.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,YAAY;;;;;;;;;iBASvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;kBAAwB,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;iBAS5B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAAyC,CAAC;AAEjF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketPriceWsMessageSchema = exports.MarketPriceSchema = exports.MarketPricesSchema = exports.PricesSchema = void 0;
4
+ const v4_1 = require("zod/v4");
5
+ exports.PricesSchema = v4_1.z.object({
6
+ market: v4_1.z.string(),
7
+ mark_px: v4_1.z.number(),
8
+ mid_px: v4_1.z.number(),
9
+ oracle_px: v4_1.z.number(),
10
+ funding_rate_bps: v4_1.z.number(),
11
+ is_funding_positive: v4_1.z.boolean(),
12
+ open_interest: v4_1.z.number(),
13
+ transaction_unix_ms: v4_1.z.number(),
14
+ });
15
+ exports.MarketPricesSchema = v4_1.z.array(exports.PricesSchema);
16
+ exports.MarketPriceSchema = v4_1.z.object({
17
+ market: v4_1.z.string(),
18
+ mark_px: v4_1.z.number(),
19
+ mid_px: v4_1.z.number(),
20
+ oracle_px: v4_1.z.number(),
21
+ funding_rate_bps: v4_1.z.number(),
22
+ is_funding_positive: v4_1.z.boolean(),
23
+ open_interest: v4_1.z.number(),
24
+ transaction_unix_ms: v4_1.z.number(),
25
+ });
26
+ exports.MarketPriceWsMessageSchema = v4_1.z.object({ price: exports.MarketPriceSchema });
@@ -0,0 +1,33 @@
1
+ import { BaseReader } from "../base-reader";
2
+ import { MarketTradeWsMessage } from "./market-trades.types";
3
+ export declare class MarketTradesReader extends BaseReader {
4
+ /**
5
+ * Get the latest market trades for a given market
6
+ * @param marketName The name of the market to get market trades for
7
+ * @param limit The number of market trades to get
8
+ * @returns The market trades for the given market
9
+ */
10
+ getByName(marketName: string, limit?: number): Promise<{
11
+ account: string;
12
+ market: string;
13
+ action: string;
14
+ size: number;
15
+ price: number;
16
+ is_profit: boolean;
17
+ realized_pnl_amount: number;
18
+ is_funding_positive: boolean;
19
+ realized_funding_amount: number;
20
+ is_rebate: boolean;
21
+ fee_amount: number;
22
+ transaction_unix_ms: number;
23
+ transaction_version: number;
24
+ }[]>;
25
+ /**
26
+ * Subscribe to the latest market trades for a given market
27
+ * @param marketName The name of the market to subscribe to
28
+ * @param onData Callback function for received market trades data
29
+ * @returns A function to unsubscribe from the market trades updates
30
+ */
31
+ subscribeByName(marketName: string, onData: (data: MarketTradeWsMessage) => void): () => void;
32
+ }
33
+ //# sourceMappingURL=market-trades.reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-trades.reader.d.ts","sourceRoot":"","sources":["../../../src/read/market-trades/market-trades.reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,kBAAmB,SAAQ,UAAU;IAChD;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;IAgBlD;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI;CAMjF"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketTradesReader = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const base_reader_1 = require("../base-reader");
6
+ const market_trades_types_1 = require("./market-trades.types");
7
+ class MarketTradesReader extends base_reader_1.BaseReader {
8
+ /**
9
+ * Get the latest market trades for a given market
10
+ * @param marketName The name of the market to get market trades for
11
+ * @param limit The number of market trades to get
12
+ * @returns The market trades for the given market
13
+ */
14
+ async getByName(marketName, limit) {
15
+ const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
16
+ const queryParams = new URLSearchParams({ market: marketAddr.toString() });
17
+ if (limit !== undefined) {
18
+ queryParams.set("limit", limit.toString());
19
+ }
20
+ const response = await this.getRequest({
21
+ schema: market_trades_types_1.MarketTradesHistorySchema,
22
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/trades`,
23
+ queryParams,
24
+ });
25
+ return response.data;
26
+ }
27
+ /**
28
+ * Subscribe to the latest market trades for a given market
29
+ * @param marketName The name of the market to subscribe to
30
+ * @param onData Callback function for received market trades data
31
+ * @returns A function to unsubscribe from the market trades updates
32
+ */
33
+ subscribeByName(marketName, onData) {
34
+ const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
35
+ const topic = `trades:${marketAddr}`;
36
+ return this.deps.ws.subscribe(topic, market_trades_types_1.MarketTradeWsMessageSchema, onData);
37
+ }
38
+ }
39
+ exports.MarketTradesReader = MarketTradesReader;
@@ -0,0 +1,52 @@
1
+ import { z } from "zod/v4";
2
+ export declare const MarketTradeSchema: z.ZodObject<{
3
+ account: z.ZodString;
4
+ market: z.ZodString;
5
+ action: z.ZodString;
6
+ size: z.ZodNumber;
7
+ price: z.ZodNumber;
8
+ is_profit: z.ZodBoolean;
9
+ realized_pnl_amount: z.ZodNumber;
10
+ is_funding_positive: z.ZodBoolean;
11
+ realized_funding_amount: z.ZodNumber;
12
+ is_rebate: z.ZodBoolean;
13
+ fee_amount: z.ZodNumber;
14
+ transaction_unix_ms: z.ZodNumber;
15
+ transaction_version: z.ZodNumber;
16
+ }, z.core.$strip>;
17
+ export declare const MarketTradesHistorySchema: z.ZodArray<z.ZodObject<{
18
+ account: z.ZodString;
19
+ market: z.ZodString;
20
+ action: z.ZodString;
21
+ size: z.ZodNumber;
22
+ price: z.ZodNumber;
23
+ is_profit: z.ZodBoolean;
24
+ realized_pnl_amount: z.ZodNumber;
25
+ is_funding_positive: z.ZodBoolean;
26
+ realized_funding_amount: z.ZodNumber;
27
+ is_rebate: z.ZodBoolean;
28
+ fee_amount: z.ZodNumber;
29
+ transaction_unix_ms: z.ZodNumber;
30
+ transaction_version: z.ZodNumber;
31
+ }, z.core.$strip>>;
32
+ export declare const MarketTradeWsMessageSchema: z.ZodObject<{
33
+ trades: z.ZodArray<z.ZodObject<{
34
+ account: z.ZodString;
35
+ market: z.ZodString;
36
+ action: z.ZodString;
37
+ size: z.ZodNumber;
38
+ price: z.ZodNumber;
39
+ is_profit: z.ZodBoolean;
40
+ realized_pnl_amount: z.ZodNumber;
41
+ is_funding_positive: z.ZodBoolean;
42
+ realized_funding_amount: z.ZodNumber;
43
+ is_rebate: z.ZodBoolean;
44
+ fee_amount: z.ZodNumber;
45
+ transaction_unix_ms: z.ZodNumber;
46
+ transaction_version: z.ZodNumber;
47
+ }, z.core.$strip>>;
48
+ }, z.core.$strip>;
49
+ export type MarketTrade = z.infer<typeof MarketTradeSchema>;
50
+ export type MarketTradesHistory = z.infer<typeof MarketTradesHistorySchema>;
51
+ export type MarketTradeWsMessage = z.infer<typeof MarketTradeWsMessageSchema>;
52
+ //# sourceMappingURL=market-trades.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-trades.types.d.ts","sourceRoot":"","sources":["../../../src/read/market-trades/market-trades.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;kBAA6B,CAAC;AAEpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketTradeWsMessageSchema = exports.MarketTradesHistorySchema = exports.MarketTradeSchema = void 0;
4
+ const v4_1 = require("zod/v4");
5
+ exports.MarketTradeSchema = v4_1.z.object({
6
+ account: v4_1.z.string(),
7
+ market: v4_1.z.string(),
8
+ action: v4_1.z.string(),
9
+ size: v4_1.z.number(),
10
+ price: v4_1.z.number(),
11
+ is_profit: v4_1.z.boolean(),
12
+ realized_pnl_amount: v4_1.z.number(),
13
+ is_funding_positive: v4_1.z.boolean(),
14
+ realized_funding_amount: v4_1.z.number(),
15
+ is_rebate: v4_1.z.boolean(),
16
+ fee_amount: v4_1.z.number(),
17
+ transaction_unix_ms: v4_1.z.number(),
18
+ transaction_version: v4_1.z.number(),
19
+ });
20
+ exports.MarketTradesHistorySchema = v4_1.z.array(exports.MarketTradeSchema);
21
+ exports.MarketTradeWsMessageSchema = v4_1.z.object({
22
+ trades: v4_1.z.array(exports.MarketTradeSchema),
23
+ });
@@ -0,0 +1,38 @@
1
+ import { BaseReader } from "../base-reader";
2
+ import { PerpMarketConfig } from "./markets.types";
3
+ export declare class MarketsReader extends BaseReader {
4
+ /**
5
+ * Get all of the available markets
6
+ * @returns The list of available markets
7
+ */
8
+ getAll(): Promise<{
9
+ market_addr: string;
10
+ market_name: string;
11
+ sz_decimals: number;
12
+ px_decimals: number;
13
+ max_leverage: number;
14
+ tick_size: number;
15
+ min_size: number;
16
+ lot_size: number;
17
+ max_open_interest: number;
18
+ mode: "Open" | "ReduceOnly" | "AllowlistOnly" | "Halt" | "Delisting";
19
+ }[]>;
20
+ /**
21
+ * Get the market config for a given market name
22
+ * @param marketName The name of the market to get
23
+ * @returns The market config for the given name
24
+ */
25
+ getByName(marketName: string): Promise<PerpMarketConfig | null>;
26
+ /**
27
+ * List all of the market addresses
28
+ * @returns The list of market addresses
29
+ */
30
+ listMarketAddresses(): Promise<string[]>;
31
+ /**
32
+ * Get the name of a market by address
33
+ * @param marketAddr The address of the market
34
+ * @returns The name of the market
35
+ */
36
+ marketNameByAddress(marketAddr: string): Promise<string>;
37
+ }
38
+ //# sourceMappingURL=markets.reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markets.reader.d.ts","sourceRoot":"","sources":["../../../src/read/markets/markets.reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAA6C,MAAM,iBAAiB,CAAC;AAE9F,qBAAa,aAAc,SAAQ,UAAU;IAC3C;;;OAGG;IACG,MAAM;;;;;;;;;;;;IAmBZ;;;;OAIG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBrE;;;OAGG;IACG,mBAAmB;IAWzB;;;;OAIG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAU7C"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketsReader = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const base_reader_1 = require("../base-reader");
6
+ const markets_types_1 = require("./markets.types");
7
+ class MarketsReader extends base_reader_1.BaseReader {
8
+ /**
9
+ * Get all of the available markets
10
+ * @returns The list of available markets
11
+ */
12
+ async getAll() {
13
+ const response = await this.getRequest({
14
+ schema: markets_types_1.PerpMarketsSchema,
15
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/markets`,
16
+ });
17
+ // TODO: Remove once API is fixed and doesn't return duplicate markets
18
+ const seen = new Set();
19
+ const uniqueMarkets = response.data.filter((market) => {
20
+ if (seen.has(market.market_addr)) {
21
+ return false;
22
+ }
23
+ seen.add(market.market_addr);
24
+ return true;
25
+ });
26
+ return uniqueMarkets;
27
+ }
28
+ /**
29
+ * Get the market config for a given market name
30
+ * @param marketName The name of the market to get
31
+ * @returns The market config for the given name
32
+ */
33
+ async getByName(marketName) {
34
+ const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
35
+ try {
36
+ // TODO: Fix lint error
37
+ // eslint-disable-next-line custom/no-get-account-resource
38
+ const market = await this.deps.aptos.getAccountResource({
39
+ accountAddress: marketAddr,
40
+ resourceType: `${this.deps.config.deployment.package}::perp_market_config::PerpMarketConfig`,
41
+ });
42
+ // TODO: Handle different __variant__ values
43
+ return markets_types_1.PerpMarketConfigSchema.parse(market);
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ return null;
48
+ }
49
+ }
50
+ /**
51
+ * List all of the market addresses
52
+ * @returns The list of market addresses
53
+ */
54
+ async listMarketAddresses() {
55
+ const markets = await this.deps.aptos.view({
56
+ payload: {
57
+ function: `${this.deps.config.deployment.package}::perp_engine::list_markets`,
58
+ typeArguments: [],
59
+ functionArguments: [],
60
+ },
61
+ });
62
+ return markets[0];
63
+ }
64
+ /**
65
+ * Get the name of a market by address
66
+ * @param marketAddr The address of the market
67
+ * @returns The name of the market
68
+ */
69
+ async marketNameByAddress(marketAddr) {
70
+ const name = await this.deps.aptos.view({
71
+ payload: {
72
+ function: `${this.deps.config.deployment.package}::perp_engine::market_name`,
73
+ typeArguments: [],
74
+ functionArguments: [marketAddr],
75
+ },
76
+ });
77
+ return name[0];
78
+ }
79
+ }
80
+ exports.MarketsReader = MarketsReader;
@@ -0,0 +1,82 @@
1
+ import { z } from "zod/v4";
2
+ export declare const MarketModeConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ __variant__: z.ZodLiteral<"Open">;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ __variant__: z.ZodLiteral<"ReduceOnly">;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ __variant__: z.ZodLiteral<"AllowlistOnly">;
8
+ allowlist: z.ZodArray<z.ZodString>;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ __variant__: z.ZodLiteral<"Halt">;
11
+ }, z.core.$strip>]>;
12
+ export declare const PerpMarketConfigSchema: z.ZodObject<{
13
+ __variant__: z.ZodLiteral<"V1">;
14
+ name: z.ZodString;
15
+ sz_precision: z.ZodObject<{
16
+ decimals: z.ZodNumber;
17
+ multiplier: z.ZodString;
18
+ }, z.core.$strip>;
19
+ min_size: z.ZodString;
20
+ lot_size: z.ZodString;
21
+ ticker_size: z.ZodString;
22
+ max_leverage: z.ZodNumber;
23
+ mode: z.ZodDiscriminatedUnion<[z.ZodObject<{
24
+ __variant__: z.ZodLiteral<"Open">;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ __variant__: z.ZodLiteral<"ReduceOnly">;
27
+ }, z.core.$strip>, z.ZodObject<{
28
+ __variant__: z.ZodLiteral<"AllowlistOnly">;
29
+ allowlist: z.ZodArray<z.ZodString>;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ __variant__: z.ZodLiteral<"Halt">;
32
+ }, z.core.$strip>]>;
33
+ }, z.core.$strip>;
34
+ export declare const MarketModeSchema: z.ZodEnum<{
35
+ Open: "Open";
36
+ ReduceOnly: "ReduceOnly";
37
+ AllowlistOnly: "AllowlistOnly";
38
+ Halt: "Halt";
39
+ Delisting: "Delisting";
40
+ }>;
41
+ export declare const PerpMarketSchema: z.ZodObject<{
42
+ market_addr: z.ZodString;
43
+ market_name: z.ZodString;
44
+ sz_decimals: z.ZodNumber;
45
+ px_decimals: z.ZodNumber;
46
+ max_leverage: z.ZodNumber;
47
+ tick_size: z.ZodNumber;
48
+ min_size: z.ZodNumber;
49
+ lot_size: z.ZodNumber;
50
+ max_open_interest: z.ZodNumber;
51
+ mode: z.ZodEnum<{
52
+ Open: "Open";
53
+ ReduceOnly: "ReduceOnly";
54
+ AllowlistOnly: "AllowlistOnly";
55
+ Halt: "Halt";
56
+ Delisting: "Delisting";
57
+ }>;
58
+ }, z.core.$strip>;
59
+ export declare const PerpMarketsSchema: z.ZodArray<z.ZodObject<{
60
+ market_addr: z.ZodString;
61
+ market_name: z.ZodString;
62
+ sz_decimals: z.ZodNumber;
63
+ px_decimals: z.ZodNumber;
64
+ max_leverage: z.ZodNumber;
65
+ tick_size: z.ZodNumber;
66
+ min_size: z.ZodNumber;
67
+ lot_size: z.ZodNumber;
68
+ max_open_interest: z.ZodNumber;
69
+ mode: z.ZodEnum<{
70
+ Open: "Open";
71
+ ReduceOnly: "ReduceOnly";
72
+ AllowlistOnly: "AllowlistOnly";
73
+ Halt: "Halt";
74
+ Delisting: "Delisting";
75
+ }>;
76
+ }, z.core.$strip>>;
77
+ export type MarketModeConfig = z.infer<typeof MarketModeConfigSchema>;
78
+ export type PerpMarketConfig = z.infer<typeof PerpMarketConfigSchema>;
79
+ export type MarketMode = z.infer<typeof MarketModeSchema>;
80
+ export type PerpMarket = z.infer<typeof PerpMarketSchema>;
81
+ export type PerpMarkets = z.infer<typeof PerpMarketsSchema>;
82
+ //# sourceMappingURL=markets.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markets.types.d.ts","sourceRoot":"","sources":["../../../src/read/markets/markets.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;;;;;;mBAQjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAYjC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;iBAW3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;kBAA4B,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerpMarketsSchema = exports.PerpMarketSchema = exports.MarketModeSchema = exports.PerpMarketConfigSchema = exports.MarketModeConfigSchema = void 0;
4
+ const v4_1 = require("zod/v4");
5
+ exports.MarketModeConfigSchema = v4_1.z.discriminatedUnion("__variant__", [
6
+ v4_1.z.object({ __variant__: v4_1.z.literal("Open") }),
7
+ v4_1.z.object({ __variant__: v4_1.z.literal("ReduceOnly") }),
8
+ v4_1.z.object({
9
+ __variant__: v4_1.z.literal("AllowlistOnly"),
10
+ allowlist: v4_1.z.array(v4_1.z.string()),
11
+ }),
12
+ v4_1.z.object({ __variant__: v4_1.z.literal("Halt") }),
13
+ ]);
14
+ exports.PerpMarketConfigSchema = v4_1.z.object({
15
+ __variant__: v4_1.z.literal("V1"),
16
+ name: v4_1.z.string(),
17
+ sz_precision: v4_1.z.object({
18
+ decimals: v4_1.z.number(),
19
+ multiplier: v4_1.z.string(),
20
+ }),
21
+ min_size: v4_1.z.string(),
22
+ lot_size: v4_1.z.string(),
23
+ ticker_size: v4_1.z.string(),
24
+ max_leverage: v4_1.z.number(),
25
+ mode: exports.MarketModeConfigSchema,
26
+ });
27
+ exports.MarketModeSchema = v4_1.z.enum([
28
+ "Open",
29
+ "ReduceOnly",
30
+ "AllowlistOnly",
31
+ "Halt",
32
+ "Delisting",
33
+ ]);
34
+ exports.PerpMarketSchema = v4_1.z.object({
35
+ market_addr: v4_1.z.string(),
36
+ market_name: v4_1.z.string(),
37
+ sz_decimals: v4_1.z.number(),
38
+ px_decimals: v4_1.z.number(),
39
+ max_leverage: v4_1.z.number(),
40
+ tick_size: v4_1.z.number(),
41
+ min_size: v4_1.z.number(),
42
+ lot_size: v4_1.z.number(),
43
+ max_open_interest: v4_1.z.number(),
44
+ mode: exports.MarketModeSchema,
45
+ });
46
+ exports.PerpMarketsSchema = v4_1.z.array(exports.PerpMarketSchema);
@@ -0,0 +1,14 @@
1
+ import z from "zod/v4";
2
+ export declare const PaginatedResponseSchema: <T extends z.ZodType>(itemSchema: T) => z.ZodObject<{
3
+ items: z.ZodArray<T>;
4
+ total_count: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export interface PaginatedResponse<T> {
7
+ items: T[];
8
+ total_count: number;
9
+ }
10
+ export interface PageParams {
11
+ limit?: number;
12
+ offset?: number;
13
+ }
14
+ //# sourceMappingURL=pagination.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.types.d.ts","sourceRoot":"","sources":["../../src/read/pagination.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;;;iBAItE,CAAC;AAEL,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PaginatedResponseSchema = void 0;
7
+ const v4_1 = __importDefault(require("zod/v4"));
8
+ const PaginatedResponseSchema = (itemSchema) => v4_1.default.object({
9
+ items: v4_1.default.array(itemSchema),
10
+ total_count: v4_1.default.number(),
11
+ });
12
+ exports.PaginatedResponseSchema = PaginatedResponseSchema;
@@ -0,0 +1,14 @@
1
+ import { BaseReader } from "../base-reader";
2
+ import { PortfolioChartTimeRange, PortfolioChartType } from "./portfolio-chart.types";
3
+ export declare class PortfolioChartReader extends BaseReader {
4
+ /**
5
+ * Get the portfolio chart for a given user
6
+ * @param subAddr The subaccount address to get the account overview for
7
+ * @returns The account overview for the given subaccount address
8
+ */
9
+ getByAddr(subAddr: string, range: PortfolioChartTimeRange, type: PortfolioChartType): Promise<{
10
+ timestamp: number;
11
+ data_points: number;
12
+ }[]>;
13
+ }
14
+ //# sourceMappingURL=portfolio-chart.reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-chart.reader.d.ts","sourceRoot":"","sources":["../../../src/read/portfolio-chart/portfolio-chart.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,oBAAqB,SAAQ,UAAU;IAClD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,kBAAkB;;;;CAS1F"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PortfolioChartReader = void 0;
4
+ const base_reader_1 = require("../base-reader");
5
+ const portfolio_chart_types_1 = require("./portfolio-chart.types");
6
+ class PortfolioChartReader extends base_reader_1.BaseReader {
7
+ /**
8
+ * Get the portfolio chart for a given user
9
+ * @param subAddr The subaccount address to get the account overview for
10
+ * @returns The account overview for the given subaccount address
11
+ */
12
+ async getByAddr(subAddr, range, type) {
13
+ const response = await this.getRequest({
14
+ schema: portfolio_chart_types_1.PortfolioChartSchema,
15
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/portfolio_chart`,
16
+ queryParams: { user: subAddr, range, data_type: type },
17
+ });
18
+ return response.data;
19
+ }
20
+ }
21
+ exports.PortfolioChartReader = PortfolioChartReader;
@@ -0,0 +1,14 @@
1
+ import z from "zod/v4";
2
+ export declare const PortfolioChartPnlItemSchema: z.ZodObject<{
3
+ timestamp: z.ZodNumber;
4
+ data_points: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export declare const PortfolioChartSchema: z.ZodArray<z.ZodObject<{
7
+ timestamp: z.ZodNumber;
8
+ data_points: z.ZodNumber;
9
+ }, z.core.$strip>>;
10
+ export type PortfolioChartType = "pnl" | "account_value";
11
+ export type PortfolioChartTimeRange = "24h" | "7d" | "30d" | "90d";
12
+ export type PortfolioChartItem = z.infer<typeof PortfolioChartPnlItemSchema>;
13
+ export type PortfolioChart = z.infer<typeof PortfolioChartSchema>;
14
+ //# sourceMappingURL=portfolio-chart.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-chart.types.d.ts","sourceRoot":"","sources":["../../../src/read/portfolio-chart/portfolio-chart.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;kBAAuC,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,eAAe,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PortfolioChartSchema = exports.PortfolioChartPnlItemSchema = void 0;
7
+ const v4_1 = __importDefault(require("zod/v4"));
8
+ exports.PortfolioChartPnlItemSchema = v4_1.default.object({
9
+ timestamp: v4_1.default.number(),
10
+ data_points: v4_1.default.number(),
11
+ });
12
+ exports.PortfolioChartSchema = v4_1.default.array(exports.PortfolioChartPnlItemSchema);