@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,35 @@
1
+ import { DecibelConfig } from "../constants";
2
+ export interface GasPriceInfo {
3
+ gasEstimate: number;
4
+ timestamp: number;
5
+ }
6
+ export interface GasPriceManagerOptions {
7
+ nodeApiKey?: string;
8
+ multiplier: number;
9
+ refreshIntervalMs: number;
10
+ }
11
+ export declare class GasPriceManager {
12
+ private gasPrice;
13
+ private intervalId;
14
+ private readonly aptos;
15
+ private readonly refreshIntervalMs;
16
+ private isInitialized;
17
+ private readonly multiplier;
18
+ constructor(config: DecibelConfig, opts?: GasPriceManagerOptions);
19
+ getGasPrice(): number | undefined;
20
+ /**
21
+ * Initialize the gas price manager and start fetching gas prices
22
+ */
23
+ initialize(): Promise<void>;
24
+ refresh(): void;
25
+ /**
26
+ * Stop the gas price manager and clear the interval
27
+ */
28
+ destroy(): void;
29
+ fetchGasPriceEstimation(): Promise<number>;
30
+ /**
31
+ * Fetch gas price from the network
32
+ */
33
+ fetchAndSetGasPrice(): Promise<number>;
34
+ }
35
+ //# sourceMappingURL=gas-price-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-price-manager.d.ts","sourceRoot":"","sources":["../../src/gas/gas-price-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,sBAAsB;IAYhE,WAAW,IAAI,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBjC,OAAO;IAIP;;OAEG;IACH,OAAO,IAAI,IAAI;IAST,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMhD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;CAmB7C"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GasPriceManager = void 0;
4
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
5
+ class GasPriceManager {
6
+ gasPrice = null;
7
+ intervalId = null;
8
+ aptos;
9
+ refreshIntervalMs;
10
+ isInitialized = false;
11
+ multiplier;
12
+ constructor(config, opts) {
13
+ this.aptos = new ts_sdk_1.Aptos(new ts_sdk_1.AptosConfig({
14
+ network: config.network,
15
+ fullnode: config.fullnodeUrl,
16
+ clientConfig: { API_KEY: opts?.nodeApiKey },
17
+ }));
18
+ this.refreshIntervalMs = opts?.refreshIntervalMs ?? 60_000; // default to 1 minute
19
+ this.multiplier = opts?.multiplier ?? 2; // default to 2x multilier to ensure we have enough gas for the transactipon
20
+ }
21
+ getGasPrice() {
22
+ const estimatedGasPrice = this.gasPrice?.gasEstimate;
23
+ if (!estimatedGasPrice) {
24
+ return undefined;
25
+ }
26
+ return estimatedGasPrice;
27
+ }
28
+ /**
29
+ * Initialize the gas price manager and start fetching gas prices
30
+ */
31
+ async initialize() {
32
+ try {
33
+ if (this.isInitialized) {
34
+ return;
35
+ }
36
+ // Fetch initial gas price
37
+ await this.fetchAndSetGasPrice();
38
+ // Set up interval to refresh gas price
39
+ this.intervalId = setInterval(async () => {
40
+ try {
41
+ await this.fetchAndSetGasPrice();
42
+ }
43
+ catch (error) {
44
+ console.warn("Failed to fetch gas price:", error);
45
+ }
46
+ }, this.refreshIntervalMs);
47
+ this.isInitialized = true;
48
+ }
49
+ catch (error) {
50
+ console.error("Failed to initialize gas price manager:", error);
51
+ }
52
+ }
53
+ refresh() {
54
+ void this.fetchAndSetGasPrice();
55
+ }
56
+ /**
57
+ * Stop the gas price manager and clear the interval
58
+ */
59
+ destroy() {
60
+ if (this.intervalId) {
61
+ clearInterval(this.intervalId);
62
+ this.intervalId = null;
63
+ }
64
+ this.isInitialized = false;
65
+ this.gasPrice = null; // Clear cached data
66
+ }
67
+ async fetchGasPriceEstimation() {
68
+ return this.aptos.getGasPriceEstimation().then((gasEstimation) => {
69
+ return gasEstimation.gas_estimate * this.multiplier; // Multiplier is applied here to ensure we have enough gas for the transaction
70
+ });
71
+ }
72
+ /**
73
+ * Fetch gas price from the network
74
+ */
75
+ async fetchAndSetGasPrice() {
76
+ try {
77
+ const gasEstimate = await this.fetchGasPriceEstimation();
78
+ if (!gasEstimate) {
79
+ throw new Error("Gas estimation returned no gas estimate");
80
+ }
81
+ this.gasPrice = {
82
+ gasEstimate,
83
+ timestamp: Date.now(),
84
+ };
85
+ return gasEstimate;
86
+ }
87
+ catch (error) {
88
+ console.error("Failed to fetch gas price:", error);
89
+ throw error;
90
+ }
91
+ }
92
+ }
93
+ exports.GasPriceManager = GasPriceManager;
@@ -0,0 +1,31 @@
1
+ import { Aptos } from "@aptos-labs/ts-sdk";
2
+ export interface GasPriceInfo {
3
+ gasEstimate: number;
4
+ timestamp: number;
5
+ }
6
+ export declare class GasPriceManager {
7
+ private gasPrice;
8
+ private intervalId;
9
+ private readonly aptos;
10
+ private readonly refreshIntervalMs;
11
+ private isInitialized;
12
+ constructor(aptos: Aptos, refreshIntervalMs?: number);
13
+ /**
14
+ * Initialize the gas price manager and start fetching gas prices
15
+ */
16
+ initialize(): Promise<void>;
17
+ /**
18
+ * Get the current cached gas price info with timestamp
19
+ */
20
+ getGasPrice(): Promise<number>;
21
+ refresh(): Promise<void>;
22
+ /**
23
+ * Stop the gas price manager and clear the interval
24
+ */
25
+ destroy(): void;
26
+ /**
27
+ * Fetch gas price from the network
28
+ */
29
+ private fetchGasPrice;
30
+ }
31
+ //# sourceMappingURL=gas-price-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-price-manager.d.ts","sourceRoot":"","sources":["../src/gas-price-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IACnD,OAAO,CAAC,aAAa,CAAS;gBAElB,KAAK,EAAE,KAAK,EAAE,iBAAiB,SAAQ;IAKnD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAc9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;YACW,aAAa;CAc5B"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GasPriceManager = void 0;
4
+ class GasPriceManager {
5
+ gasPrice = null;
6
+ intervalId = null;
7
+ aptos;
8
+ refreshIntervalMs = 60000;
9
+ isInitialized = false;
10
+ constructor(aptos, refreshIntervalMs = 60000) {
11
+ this.aptos = aptos;
12
+ this.refreshIntervalMs = refreshIntervalMs;
13
+ }
14
+ /**
15
+ * Initialize the gas price manager and start fetching gas prices
16
+ */
17
+ async initialize() {
18
+ if (this.isInitialized) {
19
+ return;
20
+ }
21
+ // Fetch initial gas price
22
+ await this.fetchGasPrice();
23
+ // Set up interval to refresh gas price
24
+ this.intervalId = setInterval(async () => {
25
+ try {
26
+ await this.fetchGasPrice();
27
+ }
28
+ catch (error) {
29
+ console.warn("Failed to fetch gas price:", error);
30
+ }
31
+ }, this.refreshIntervalMs);
32
+ this.isInitialized = true;
33
+ }
34
+ /**
35
+ * Get the current cached gas price info with timestamp
36
+ */
37
+ async getGasPrice() {
38
+ if (this.gasPrice) {
39
+ // If the gas price is too stale, fetch a new one
40
+ if (Date.now() - this.gasPrice.timestamp > this.refreshIntervalMs * 2) {
41
+ return await this.fetchGasPrice();
42
+ }
43
+ // Return the cached gas price
44
+ return this.gasPrice.gasEstimate;
45
+ }
46
+ return await this.fetchGasPrice();
47
+ }
48
+ async refresh() {
49
+ await this.fetchGasPrice().then((gasEstimate) => {
50
+ this.gasPrice = {
51
+ gasEstimate,
52
+ timestamp: Date.now(),
53
+ };
54
+ });
55
+ }
56
+ /**
57
+ * Stop the gas price manager and clear the interval
58
+ */
59
+ destroy() {
60
+ if (this.intervalId) {
61
+ clearInterval(this.intervalId);
62
+ this.intervalId = null;
63
+ }
64
+ this.isInitialized = false;
65
+ this.gasPrice = null; // Clear cached data
66
+ }
67
+ /**
68
+ * Fetch gas price from the network
69
+ */
70
+ async fetchGasPrice() {
71
+ try {
72
+ const gasEstimation = await this.aptos.getGasPriceEstimation();
73
+ if (!gasEstimation.gas_estimate) {
74
+ throw new Error("Gas estimation returned no gas estimate");
75
+ }
76
+ return gasEstimation.gas_estimate;
77
+ }
78
+ catch (error) {
79
+ console.error("Failed to fetch gas price:", error);
80
+ throw error;
81
+ }
82
+ }
83
+ }
84
+ exports.GasPriceManager = GasPriceManager;
@@ -0,0 +1,11 @@
1
+ export * from "./admin";
2
+ export * from "./constants";
3
+ export * from "./fee-pay";
4
+ export * from "./gas/gas-price-manager";
5
+ export * from "./order-event.types";
6
+ export * from "./order-status";
7
+ export * from "./read/index";
8
+ export * from "./subaccount-types";
9
+ export * from "./utils";
10
+ export * from "./write";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./admin"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./fee-pay"), exports);
20
+ __exportStar(require("./gas/gas-price-manager"), exports);
21
+ __exportStar(require("./order-event.types"), exports);
22
+ __exportStar(require("./order-status"), exports);
23
+ __exportStar(require("./read/index"), exports);
24
+ __exportStar(require("./subaccount-types"), exports);
25
+ __exportStar(require("./utils"), exports);
26
+ __exportStar(require("./write"), exports);
@@ -0,0 +1,55 @@
1
+ export interface OrderEventClientOrderId {
2
+ vec: unknown[];
3
+ }
4
+ export interface OrderEventStatus {
5
+ __variant__: string;
6
+ }
7
+ export interface OrderEventTimeInForce {
8
+ __variant__: string;
9
+ }
10
+ export interface OrderEventTriggerCondition {
11
+ vec: unknown[];
12
+ }
13
+ export interface OrderEventOrderId {
14
+ order_id: string;
15
+ }
16
+ export interface OrderEvent {
17
+ client_order_id: OrderEventClientOrderId;
18
+ details: string;
19
+ is_bid: boolean;
20
+ is_taker: boolean;
21
+ market: string;
22
+ metadata_bytes: string;
23
+ order_id: string;
24
+ orig_size: string;
25
+ parent: string;
26
+ price: string;
27
+ remaining_size: string;
28
+ size_delta: string;
29
+ status: OrderEventStatus;
30
+ time_in_force: OrderEventTimeInForce;
31
+ trigger_condition: OrderEventTriggerCondition;
32
+ user: string;
33
+ }
34
+ export interface TwapEvent {
35
+ account: string;
36
+ duration_s: string;
37
+ frequency_s: string;
38
+ is_buy: boolean;
39
+ is_reduce_only: boolean;
40
+ market: string;
41
+ order_id: OrderEventOrderId;
42
+ orig_size: string;
43
+ remain_size: string;
44
+ start_time_s: string;
45
+ status: OrderEventStatus;
46
+ }
47
+ export type PlaceOrderResult = {
48
+ success: true;
49
+ orderId: string | undefined;
50
+ transactionHash: string;
51
+ } | {
52
+ success: false;
53
+ error: string;
54
+ };
55
+ //# sourceMappingURL=order-event.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-event.types.d.ts","sourceRoot":"","sources":["../src/order-event.types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,uBAAuB,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,qBAAqB,CAAC;IACrC,iBAAiB,EAAE,0BAA0B,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // Type definitions for OrderEvent returned by placeOrder transactions
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,43 @@
1
+ import z from "zod/v4";
2
+ import { DecibelConfig } from "./constants";
3
+ export declare const OrderStatusSchema: z.ZodObject<{
4
+ parent: z.ZodString;
5
+ market: z.ZodString;
6
+ order_id: z.ZodString;
7
+ status: z.ZodString;
8
+ orig_size: z.ZodNumber;
9
+ remaining_size: z.ZodNumber;
10
+ size_delta: z.ZodNumber;
11
+ price: z.ZodNumber;
12
+ is_buy: z.ZodBoolean;
13
+ details: z.ZodString;
14
+ transaction_version: z.ZodNumber;
15
+ unix_ms: z.ZodNumber;
16
+ }, z.core.$strip>;
17
+ export type OrderStatus = z.infer<typeof OrderStatusSchema>;
18
+ export type OrderStatusType = "Acknowledged" | "Filled" | "Cancelled" | "Rejected" | "Unknown";
19
+ export declare class OrderStatusClient {
20
+ private config;
21
+ constructor(config: DecibelConfig);
22
+ /**
23
+ * Get order status by order ID and market address using REST API
24
+ */
25
+ getOrderStatus(orderId: string, marketAddress: string, userAddress: string): Promise<OrderStatus | null>;
26
+ /**
27
+ * Parse order status string to enum-like type
28
+ */
29
+ parseOrderStatusType(status: string | undefined | null): OrderStatusType;
30
+ /**
31
+ * Check if order status represents success
32
+ */
33
+ isSuccessStatus(status: string | undefined | null): boolean;
34
+ /**
35
+ * Check if order status represents failure
36
+ */
37
+ isFailureStatus(status: string | undefined | null): boolean;
38
+ /**
39
+ * Check if order status is final (success or failure)
40
+ */
41
+ isFinalStatus(status: string | undefined | null): boolean;
42
+ }
43
+ //# sourceMappingURL=order-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.d.ts","sourceRoot":"","sources":["../src/order-status.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;iBAa5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/F,qBAAa,iBAAiB;IAChB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoB9B;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,eAAe;IAUxE;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;IAI3D;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;IAK3D;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;CAG1D"}
@@ -0,0 +1,86 @@
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.OrderStatusClient = exports.OrderStatusSchema = void 0;
7
+ const v4_1 = __importDefault(require("zod/v4"));
8
+ // Order status response schema
9
+ exports.OrderStatusSchema = v4_1.default.object({
10
+ parent: v4_1.default.string(),
11
+ market: v4_1.default.string(),
12
+ order_id: v4_1.default.string(),
13
+ status: v4_1.default.string(),
14
+ orig_size: v4_1.default.number(),
15
+ remaining_size: v4_1.default.number(),
16
+ size_delta: v4_1.default.number(),
17
+ price: v4_1.default.number(),
18
+ is_buy: v4_1.default.boolean(),
19
+ details: v4_1.default.string(),
20
+ transaction_version: v4_1.default.number(),
21
+ unix_ms: v4_1.default.number(),
22
+ });
23
+ class OrderStatusClient {
24
+ config;
25
+ constructor(config) {
26
+ this.config = config;
27
+ }
28
+ /**
29
+ * Get order status by order ID and market address using REST API
30
+ */
31
+ async getOrderStatus(orderId, marketAddress, userAddress) {
32
+ try {
33
+ const url = `${this.config.tradingHttpUrl}/api/v1/orders?order_id=${orderId}&market_address=${marketAddress}&user_address=${userAddress}`;
34
+ const response = await fetch(url);
35
+ if (!response.ok) {
36
+ if (response.status === 404) {
37
+ return null; // Order not found yet
38
+ }
39
+ throw new Error(`HTTP error! status: ${response.status}`);
40
+ }
41
+ const data = await response.json();
42
+ return exports.OrderStatusSchema.parse(data);
43
+ }
44
+ catch (error) {
45
+ console.error("Error fetching order status:", error);
46
+ return null;
47
+ }
48
+ }
49
+ /**
50
+ * Parse order status string to enum-like type
51
+ */
52
+ parseOrderStatusType(status) {
53
+ if (!status)
54
+ return "Unknown";
55
+ const upperStatus = status.toLowerCase();
56
+ if (upperStatus.includes("acknowledged"))
57
+ return "Acknowledged";
58
+ if (upperStatus.includes("filled"))
59
+ return "Filled";
60
+ if (upperStatus.includes("cancelled"))
61
+ return "Cancelled";
62
+ if (upperStatus.includes("rejected"))
63
+ return "Rejected";
64
+ return "Unknown";
65
+ }
66
+ /**
67
+ * Check if order status represents success
68
+ */
69
+ isSuccessStatus(status) {
70
+ return this.parseOrderStatusType(status) === "Filled";
71
+ }
72
+ /**
73
+ * Check if order status represents failure
74
+ */
75
+ isFailureStatus(status) {
76
+ const statusType = this.parseOrderStatusType(status);
77
+ return statusType === "Cancelled" || statusType === "Rejected";
78
+ }
79
+ /**
80
+ * Check if order status is final (success or failure)
81
+ */
82
+ isFinalStatus(status) {
83
+ return this.isSuccessStatus(status) || this.isFailureStatus(status);
84
+ }
85
+ }
86
+ exports.OrderStatusClient = OrderStatusClient;
@@ -0,0 +1,37 @@
1
+ import { BaseReader } from "../base-reader";
2
+ import { AccountOverviewWsMessage, VolumeWindow } from "./account-overview.types";
3
+ export declare class AccountOverviewReader extends BaseReader {
4
+ /**
5
+ * Get the account overview 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, volumeWindow?: VolumeWindow): Promise<{
10
+ perp_equity_balance: number;
11
+ unrealized_pnl: number;
12
+ unrealized_funding_cost: number;
13
+ cross_margin_ratio: number;
14
+ maintenance_margin: number;
15
+ cross_account_leverage_ratio: number | null;
16
+ volume: number | null;
17
+ all_time_return: number | null;
18
+ pnl_90d: number | null;
19
+ sharpe_ratio: number | null;
20
+ max_drawdown: number | null;
21
+ weekly_win_rate_12w: number | null;
22
+ average_cash_position: number | null;
23
+ average_leverage: number | null;
24
+ cross_account_position: number;
25
+ total_margin: number;
26
+ usdc_cross_withdrawable_balance: number;
27
+ usdc_isolated_withdrawable_balance: number;
28
+ }>;
29
+ /**
30
+ * Subscribe to account overview
31
+ * @param subAddr The subaccount address of the user to subscribe to
32
+ * @param onData Callback function for received account overview data
33
+ * @returns A function to unsubscribe from the account overview updates
34
+ */
35
+ subscribeByAddr(subAddr: string, onData: (data: AccountOverviewWsMessage) => void): () => void;
36
+ }
37
+ //# sourceMappingURL=account-overview.reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-overview.reader.d.ts","sourceRoot":"","sources":["../../../src/read/account-overview/account-overview.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,wBAAwB,EAExB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,qBAAa,qBAAsB,SAAQ,UAAU;IACnD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;IAgB5D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI;CAKlF"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountOverviewReader = void 0;
4
+ const base_reader_1 = require("../base-reader");
5
+ const account_overview_types_1 = require("./account-overview.types");
6
+ class AccountOverviewReader extends base_reader_1.BaseReader {
7
+ /**
8
+ * Get the account overview 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, volumeWindow) {
13
+ const queryParams = new URLSearchParams({ user: subAddr });
14
+ if (volumeWindow) {
15
+ queryParams.set("volume_window", volumeWindow);
16
+ }
17
+ const response = await this.getRequest({
18
+ schema: account_overview_types_1.AccountOverviewSchema,
19
+ url: `${this.deps.config.tradingHttpUrl}/api/v1/account_overviews`,
20
+ queryParams,
21
+ });
22
+ return response.data;
23
+ }
24
+ /**
25
+ * Subscribe to account overview
26
+ * @param subAddr The subaccount address of the user to subscribe to
27
+ * @param onData Callback function for received account overview data
28
+ * @returns A function to unsubscribe from the account overview updates
29
+ */
30
+ subscribeByAddr(subAddr, onData) {
31
+ const topic = `account_overview:${subAddr}`;
32
+ return this.deps.ws.subscribe(topic, account_overview_types_1.AccountOverviewWsMessageSchema, onData);
33
+ }
34
+ }
35
+ exports.AccountOverviewReader = AccountOverviewReader;
@@ -0,0 +1,52 @@
1
+ import z from "zod/v4";
2
+ export declare const VolumeWindow: {
3
+ readonly SevenDays: "7d";
4
+ readonly FourteenDays: "14d";
5
+ readonly ThirtyDays: "30d";
6
+ readonly NinetyDays: "90d";
7
+ };
8
+ export type VolumeWindow = (typeof VolumeWindow)[keyof typeof VolumeWindow];
9
+ export declare const AccountOverviewSchema: z.ZodObject<{
10
+ perp_equity_balance: z.ZodNumber;
11
+ unrealized_pnl: z.ZodNumber;
12
+ unrealized_funding_cost: z.ZodNumber;
13
+ cross_margin_ratio: z.ZodNumber;
14
+ maintenance_margin: z.ZodNumber;
15
+ cross_account_leverage_ratio: z.ZodNullable<z.ZodNumber>;
16
+ volume: z.ZodNullable<z.ZodNumber>;
17
+ all_time_return: z.ZodNullable<z.ZodNumber>;
18
+ pnl_90d: z.ZodNullable<z.ZodNumber>;
19
+ sharpe_ratio: z.ZodNullable<z.ZodNumber>;
20
+ max_drawdown: z.ZodNullable<z.ZodNumber>;
21
+ weekly_win_rate_12w: z.ZodNullable<z.ZodNumber>;
22
+ average_cash_position: z.ZodNullable<z.ZodNumber>;
23
+ average_leverage: z.ZodNullable<z.ZodNumber>;
24
+ cross_account_position: z.ZodNumber;
25
+ total_margin: z.ZodNumber;
26
+ usdc_cross_withdrawable_balance: z.ZodNumber;
27
+ usdc_isolated_withdrawable_balance: z.ZodNumber;
28
+ }, z.core.$strip>;
29
+ export declare const AccountOverviewWsMessageSchema: z.ZodObject<{
30
+ account_overview: z.ZodObject<{
31
+ perp_equity_balance: z.ZodNumber;
32
+ unrealized_pnl: z.ZodNumber;
33
+ unrealized_funding_cost: z.ZodNumber;
34
+ cross_margin_ratio: z.ZodNumber;
35
+ maintenance_margin: z.ZodNumber;
36
+ cross_account_leverage_ratio: z.ZodNullable<z.ZodNumber>;
37
+ all_time_return: z.ZodNullable<z.ZodNumber>;
38
+ pnl_90d: z.ZodNullable<z.ZodNumber>;
39
+ sharpe_ratio: z.ZodNullable<z.ZodNumber>;
40
+ max_drawdown: z.ZodNullable<z.ZodNumber>;
41
+ weekly_win_rate_12w: z.ZodNullable<z.ZodNumber>;
42
+ average_cash_position: z.ZodNullable<z.ZodNumber>;
43
+ average_leverage: z.ZodNullable<z.ZodNumber>;
44
+ cross_account_position: z.ZodNumber;
45
+ total_margin: z.ZodNumber;
46
+ usdc_cross_withdrawable_balance: z.ZodNumber;
47
+ usdc_isolated_withdrawable_balance: z.ZodNumber;
48
+ }, z.core.$strip>;
49
+ }, z.core.$strip>;
50
+ export type AccountOverview = z.infer<typeof AccountOverviewSchema>;
51
+ export type AccountOverviewWsMessage = z.infer<typeof AccountOverviewWsMessageSchema>;
52
+ //# sourceMappingURL=account-overview.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-overview.types.d.ts","sourceRoot":"","sources":["../../../src/read/account-overview/account-overview.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAmBhC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;iBAEzC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,36 @@
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.AccountOverviewWsMessageSchema = exports.AccountOverviewSchema = exports.VolumeWindow = void 0;
7
+ const v4_1 = __importDefault(require("zod/v4"));
8
+ exports.VolumeWindow = {
9
+ SevenDays: "7d",
10
+ FourteenDays: "14d",
11
+ ThirtyDays: "30d",
12
+ NinetyDays: "90d",
13
+ };
14
+ exports.AccountOverviewSchema = v4_1.default.object({
15
+ perp_equity_balance: v4_1.default.number(),
16
+ unrealized_pnl: v4_1.default.number(),
17
+ unrealized_funding_cost: v4_1.default.number(),
18
+ cross_margin_ratio: v4_1.default.number(),
19
+ maintenance_margin: v4_1.default.number(),
20
+ cross_account_leverage_ratio: v4_1.default.number().nullable(),
21
+ volume: v4_1.default.number().nullable(),
22
+ all_time_return: v4_1.default.number().nullable(),
23
+ pnl_90d: v4_1.default.number().nullable(),
24
+ sharpe_ratio: v4_1.default.number().nullable(),
25
+ max_drawdown: v4_1.default.number().nullable(),
26
+ weekly_win_rate_12w: v4_1.default.number().nullable(),
27
+ average_cash_position: v4_1.default.number().nullable(),
28
+ average_leverage: v4_1.default.number().nullable(),
29
+ cross_account_position: v4_1.default.number(),
30
+ total_margin: v4_1.default.number(),
31
+ usdc_cross_withdrawable_balance: v4_1.default.number(),
32
+ usdc_isolated_withdrawable_balance: v4_1.default.number(),
33
+ });
34
+ exports.AccountOverviewWsMessageSchema = v4_1.default.object({
35
+ account_overview: exports.AccountOverviewSchema.omit({ volume: true }),
36
+ });