@drift-labs/common 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/lib/Config.d.ts +26 -0
  2. package/lib/Config.js +29 -0
  3. package/lib/Config.js.map +1 -0
  4. package/lib/EnvironmentConstants.d.ts +40 -0
  5. package/lib/EnvironmentConstants.js +64 -0
  6. package/lib/EnvironmentConstants.js.map +1 -0
  7. package/lib/actions/actionHelpers/accountDeletionHelpers.d.ts +16 -0
  8. package/lib/actions/actionHelpers/accountDeletionHelpers.js +151 -0
  9. package/lib/actions/actionHelpers/accountDeletionHelpers.js.map +1 -0
  10. package/lib/actions/actionHelpers/actionHelpers.d.ts +13 -0
  11. package/lib/actions/actionHelpers/actionHelpers.js +8 -0
  12. package/lib/actions/actionHelpers/actionHelpers.js.map +1 -0
  13. package/lib/chartConstants.d.ts +2 -0
  14. package/lib/chartConstants.js +14 -0
  15. package/lib/chartConstants.js.map +1 -0
  16. package/lib/clients/candleClient.d.ts +74 -0
  17. package/lib/clients/candleClient.js +364 -0
  18. package/lib/clients/candleClient.js.map +1 -0
  19. package/lib/clients/dataApiWsClient.d.ts +33 -0
  20. package/lib/clients/dataApiWsClient.js +118 -0
  21. package/lib/clients/dataApiWsClient.js.map +1 -0
  22. package/lib/clients/index.d.ts +1 -0
  23. package/lib/clients/index.js +19 -0
  24. package/lib/clients/index.js.map +1 -0
  25. package/lib/clients/marketDataFeed.d.ts +42 -0
  26. package/lib/clients/marketDataFeed.js +422 -0
  27. package/lib/clients/marketDataFeed.js.map +1 -0
  28. package/lib/clients/redisClient.d.ts +89 -0
  29. package/lib/clients/redisClient.js +647 -0
  30. package/lib/clients/redisClient.js.map +1 -0
  31. package/lib/clients/swiftClient.d.ts +57 -0
  32. package/lib/clients/swiftClient.js +289 -0
  33. package/lib/clients/swiftClient.js.map +1 -0
  34. package/lib/clients/tvFeed.d.ts +63 -0
  35. package/lib/clients/tvFeed.js +351 -0
  36. package/lib/clients/tvFeed.js.map +1 -0
  37. package/lib/common-ui-utils/commonUiUtils.d.ts +211 -0
  38. package/lib/common-ui-utils/commonUiUtils.js +624 -0
  39. package/lib/common-ui-utils/commonUiUtils.js.map +1 -0
  40. package/lib/common-ui-utils/index.d.ts +6 -0
  41. package/lib/common-ui-utils/index.js +23 -0
  42. package/lib/common-ui-utils/index.js.map +1 -0
  43. package/lib/common-ui-utils/market.d.ts +27 -0
  44. package/lib/common-ui-utils/market.js +80 -0
  45. package/lib/common-ui-utils/market.js.map +1 -0
  46. package/lib/common-ui-utils/order.d.ts +11 -0
  47. package/lib/common-ui-utils/order.js +161 -0
  48. package/lib/common-ui-utils/order.js.map +1 -0
  49. package/lib/common-ui-utils/settings/settings.d.ts +51 -0
  50. package/lib/common-ui-utils/settings/settings.js +84 -0
  51. package/lib/common-ui-utils/settings/settings.js.map +1 -0
  52. package/lib/common-ui-utils/trading.d.ts +56 -0
  53. package/lib/common-ui-utils/trading.js +200 -0
  54. package/lib/common-ui-utils/trading.js.map +1 -0
  55. package/lib/common-ui-utils/user.d.ts +13 -0
  56. package/lib/common-ui-utils/user.js +124 -0
  57. package/lib/common-ui-utils/user.js.map +1 -0
  58. package/lib/constants/autogenerated/driftErrors.json +1787 -0
  59. package/lib/constants/autogenerated/jup-v4-error-codes.json +67 -0
  60. package/lib/constants/autogenerated/jup-v6-error-codes.json +115 -0
  61. package/lib/constants/dev.d.ts +15 -0
  62. package/lib/constants/dev.js +19 -0
  63. package/lib/constants/dev.js.map +1 -0
  64. package/lib/constants/geoblockList.d.ts +4 -0
  65. package/lib/constants/geoblockList.js +32 -0
  66. package/lib/constants/geoblockList.js.map +1 -0
  67. package/lib/constants/index.d.ts +9 -0
  68. package/lib/constants/index.js +26 -0
  69. package/lib/constants/index.js.map +1 -0
  70. package/lib/constants/markets.d.ts +1 -0
  71. package/lib/constants/markets.js +5 -0
  72. package/lib/constants/markets.js.map +1 -0
  73. package/lib/constants/misc.d.ts +23 -0
  74. package/lib/constants/misc.js +27 -0
  75. package/lib/constants/misc.js.map +1 -0
  76. package/lib/constants/orders.d.ts +12 -0
  77. package/lib/constants/orders.js +79 -0
  78. package/lib/constants/orders.js.map +1 -0
  79. package/lib/constants/pools.d.ts +5 -0
  80. package/lib/constants/pools.js +9 -0
  81. package/lib/constants/pools.js.map +1 -0
  82. package/lib/constants/predictionMarket.d.ts +3 -0
  83. package/lib/constants/predictionMarket.js +7 -0
  84. package/lib/constants/predictionMarket.js.map +1 -0
  85. package/lib/constants/superstake.d.ts +22 -0
  86. package/lib/constants/superstake.js +45 -0
  87. package/lib/constants/superstake.js.map +1 -0
  88. package/lib/constants/trade.d.ts +2 -0
  89. package/lib/constants/trade.js +9 -0
  90. package/lib/constants/trade.js.map +1 -0
  91. package/lib/drift/Drift/clients/AuthorityDrift/DriftL2OrderbookManager.d.ts +68 -0
  92. package/lib/drift/Drift/clients/AuthorityDrift/DriftL2OrderbookManager.js +146 -0
  93. package/lib/drift/Drift/clients/AuthorityDrift/DriftL2OrderbookManager.js.map +1 -0
  94. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/index.d.ts +204 -0
  95. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/index.js +530 -0
  96. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/index.js.map +1 -0
  97. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/types.d.ts +90 -0
  98. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/types.js +3 -0
  99. package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/types.js.map +1 -0
  100. package/lib/drift/Drift/clients/AuthorityDrift/SubscriptionManager.d.ts +139 -0
  101. package/lib/drift/Drift/clients/AuthorityDrift/SubscriptionManager.js +287 -0
  102. package/lib/drift/Drift/clients/AuthorityDrift/SubscriptionManager.js.map +1 -0
  103. package/lib/drift/Drift/clients/AuthorityDrift/index.d.ts +242 -0
  104. package/lib/drift/Drift/clients/AuthorityDrift/index.js +503 -0
  105. package/lib/drift/Drift/clients/AuthorityDrift/index.js.map +1 -0
  106. package/lib/drift/Drift/clients/CentralServerDrift.d.ts +91 -0
  107. package/lib/drift/Drift/clients/CentralServerDrift.js +326 -0
  108. package/lib/drift/Drift/clients/CentralServerDrift.js.map +1 -0
  109. package/lib/drift/Drift/clients/index.d.ts +3 -0
  110. package/lib/drift/Drift/clients/index.js +20 -0
  111. package/lib/drift/Drift/clients/index.js.map +1 -0
  112. package/lib/drift/Drift/constants/blockchain.d.ts +24 -0
  113. package/lib/drift/Drift/constants/blockchain.js +32 -0
  114. package/lib/drift/Drift/constants/blockchain.js.map +1 -0
  115. package/lib/drift/Drift/constants/errors.d.ts +6 -0
  116. package/lib/drift/Drift/constants/errors.js +14 -0
  117. package/lib/drift/Drift/constants/errors.js.map +1 -0
  118. package/lib/drift/Drift/constants/index.d.ts +3 -0
  119. package/lib/drift/Drift/constants/index.js +20 -0
  120. package/lib/drift/Drift/constants/index.js.map +1 -0
  121. package/lib/drift/Drift/constants/orderbook.d.ts +7 -0
  122. package/lib/drift/Drift/constants/orderbook.js +10 -0
  123. package/lib/drift/Drift/constants/orderbook.js.map +1 -0
  124. package/lib/drift/Drift/data/PollingDlob.d.ts +154 -0
  125. package/lib/drift/Drift/data/PollingDlob.js +387 -0
  126. package/lib/drift/Drift/data/PollingDlob.js.map +1 -0
  127. package/lib/drift/Drift/data/index.d.ts +1 -0
  128. package/lib/drift/Drift/data/index.js +18 -0
  129. package/lib/drift/Drift/data/index.js.map +1 -0
  130. package/lib/drift/Drift/index.d.ts +4 -0
  131. package/lib/drift/Drift/index.js +21 -0
  132. package/lib/drift/Drift/index.js.map +1 -0
  133. package/lib/drift/Drift/stores/MarkPriceCache.d.ts +27 -0
  134. package/lib/drift/Drift/stores/MarkPriceCache.js +59 -0
  135. package/lib/drift/Drift/stores/MarkPriceCache.js.map +1 -0
  136. package/lib/drift/Drift/stores/OraclePriceCache.d.ts +21 -0
  137. package/lib/drift/Drift/stores/OraclePriceCache.js +57 -0
  138. package/lib/drift/Drift/stores/OraclePriceCache.js.map +1 -0
  139. package/lib/drift/Drift/stores/UserAccountCache.d.ts +49 -0
  140. package/lib/drift/Drift/stores/UserAccountCache.js +107 -0
  141. package/lib/drift/Drift/stores/UserAccountCache.js.map +1 -0
  142. package/lib/drift/Drift/stores/index.d.ts +3 -0
  143. package/lib/drift/Drift/stores/index.js +20 -0
  144. package/lib/drift/Drift/stores/index.js.map +1 -0
  145. package/lib/drift/base/actions/index.d.ts +4 -0
  146. package/lib/drift/base/actions/index.js +21 -0
  147. package/lib/drift/base/actions/index.js.map +1 -0
  148. package/lib/drift/base/actions/perp/index.d.ts +2 -0
  149. package/lib/drift/base/actions/perp/index.js +19 -0
  150. package/lib/drift/base/actions/perp/index.js.map +1 -0
  151. package/lib/drift/base/actions/perp/settleFunding.d.ts +25 -0
  152. package/lib/drift/base/actions/perp/settleFunding.js +41 -0
  153. package/lib/drift/base/actions/perp/settleFunding.js.map +1 -0
  154. package/lib/drift/base/actions/perp/settlePnl.d.ts +35 -0
  155. package/lib/drift/base/actions/perp/settlePnl.js +44 -0
  156. package/lib/drift/base/actions/perp/settlePnl.js.map +1 -0
  157. package/lib/drift/base/actions/spot/borrow.d.ts +1 -0
  158. package/lib/drift/base/actions/spot/borrow.js +8 -0
  159. package/lib/drift/base/actions/spot/borrow.js.map +1 -0
  160. package/lib/drift/base/actions/spot/deposit.d.ts +40 -0
  161. package/lib/drift/base/actions/spot/deposit.js +82 -0
  162. package/lib/drift/base/actions/spot/deposit.js.map +1 -0
  163. package/lib/drift/base/actions/spot/index.d.ts +3 -0
  164. package/lib/drift/base/actions/spot/index.js +20 -0
  165. package/lib/drift/base/actions/spot/index.js.map +1 -0
  166. package/lib/drift/base/actions/spot/withdraw.d.ts +16 -0
  167. package/lib/drift/base/actions/spot/withdraw.js +39 -0
  168. package/lib/drift/base/actions/spot/withdraw.js.map +1 -0
  169. package/lib/drift/base/actions/trade/cancelOrder.d.ts +47 -0
  170. package/lib/drift/base/actions/trade/cancelOrder.js +55 -0
  171. package/lib/drift/base/actions/trade/cancelOrder.js.map +1 -0
  172. package/lib/drift/base/actions/trade/editOrder.d.ts +55 -0
  173. package/lib/drift/base/actions/trade/editOrder.js +35 -0
  174. package/lib/drift/base/actions/trade/editOrder.js.map +1 -0
  175. package/lib/drift/base/actions/trade/index.d.ts +4 -0
  176. package/lib/drift/base/actions/trade/index.js +21 -0
  177. package/lib/drift/base/actions/trade/index.js.map +1 -0
  178. package/lib/drift/base/actions/trade/openPerpOrder/index.d.ts +3 -0
  179. package/lib/drift/base/actions/trade/openPerpOrder/index.js +20 -0
  180. package/lib/drift/base/actions/trade/openPerpOrder/index.js.map +1 -0
  181. package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.d.ts +84 -0
  182. package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.js +293 -0
  183. package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.js.map +1 -0
  184. package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.d.ts +19 -0
  185. package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.js +161 -0
  186. package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.js.map +1 -0
  187. package/lib/drift/base/actions/trade/openPerpOrder/openSwiftOrder/index.d.ts +166 -0
  188. package/lib/drift/base/actions/trade/openPerpOrder/openSwiftOrder/index.js +156 -0
  189. package/lib/drift/base/actions/trade/openPerpOrder/openSwiftOrder/index.js.map +1 -0
  190. package/lib/drift/base/actions/trade/swap.d.ts +62 -0
  191. package/lib/drift/base/actions/trade/swap.js +60 -0
  192. package/lib/drift/base/actions/trade/swap.js.map +1 -0
  193. package/lib/drift/base/actions/user/create.d.ts +75 -0
  194. package/lib/drift/base/actions/user/create.js +104 -0
  195. package/lib/drift/base/actions/user/create.js.map +1 -0
  196. package/lib/drift/base/actions/user/delete.d.ts +47 -0
  197. package/lib/drift/base/actions/user/delete.js +39 -0
  198. package/lib/drift/base/actions/user/delete.js.map +1 -0
  199. package/lib/drift/base/actions/user/index.d.ts +1 -0
  200. package/lib/drift/base/actions/user/index.js +18 -0
  201. package/lib/drift/base/actions/user/index.js.map +1 -0
  202. package/lib/drift/base/constants/accountNames.d.ts +1 -0
  203. package/lib/drift/base/constants/accountNames.js +13 -0
  204. package/lib/drift/base/constants/accountNames.js.map +1 -0
  205. package/lib/drift/base/details/index.d.ts +2 -0
  206. package/lib/drift/base/details/index.js +19 -0
  207. package/lib/drift/base/details/index.js.map +1 -0
  208. package/lib/drift/base/details/market/funding.d.ts +9 -0
  209. package/lib/drift/base/details/market/funding.js +50 -0
  210. package/lib/drift/base/details/market/funding.js.map +1 -0
  211. package/lib/drift/base/details/market/index.d.ts +2 -0
  212. package/lib/drift/base/details/market/index.js +19 -0
  213. package/lib/drift/base/details/market/index.js.map +1 -0
  214. package/lib/drift/base/details/market/openInterest.d.ts +5 -0
  215. package/lib/drift/base/details/market/openInterest.js +12 -0
  216. package/lib/drift/base/details/market/openInterest.js.map +1 -0
  217. package/lib/drift/base/details/user/balances.d.ts +40 -0
  218. package/lib/drift/base/details/user/balances.js +39 -0
  219. package/lib/drift/base/details/user/balances.js.map +1 -0
  220. package/lib/drift/base/details/user/index.d.ts +4 -0
  221. package/lib/drift/base/details/user/index.js +21 -0
  222. package/lib/drift/base/details/user/index.js.map +1 -0
  223. package/lib/drift/base/details/user/marginInfo.d.ts +29 -0
  224. package/lib/drift/base/details/user/marginInfo.js +49 -0
  225. package/lib/drift/base/details/user/marginInfo.js.map +1 -0
  226. package/lib/drift/base/details/user/orders.d.ts +3 -0
  227. package/lib/drift/base/details/user/orders.js +11 -0
  228. package/lib/drift/base/details/user/orders.js.map +1 -0
  229. package/lib/drift/base/details/user/positions.d.ts +70 -0
  230. package/lib/drift/base/details/user/positions.js +146 -0
  231. package/lib/drift/base/details/user/positions.js.map +1 -0
  232. package/lib/drift/cli.d.ts +25 -0
  233. package/lib/drift/cli.js +900 -0
  234. package/lib/drift/cli.js.map +1 -0
  235. package/lib/drift/constants/apiUrls.d.ts +27 -0
  236. package/lib/drift/constants/apiUrls.js +31 -0
  237. package/lib/drift/constants/apiUrls.js.map +1 -0
  238. package/lib/drift/example.d.ts +19 -0
  239. package/lib/drift/example.js +249 -0
  240. package/lib/drift/example.js.map +1 -0
  241. package/lib/drift/index.d.ts +3 -0
  242. package/lib/drift/index.js +20 -0
  243. package/lib/drift/index.js.map +1 -0
  244. package/lib/drift/utils/auctionParamsResponseMapper.d.ts +45 -0
  245. package/lib/drift/utils/auctionParamsResponseMapper.js +148 -0
  246. package/lib/drift/utils/auctionParamsResponseMapper.js.map +1 -0
  247. package/lib/drift/utils/funding.d.ts +2 -0
  248. package/lib/drift/utils/funding.js +9 -0
  249. package/lib/drift/utils/funding.js.map +1 -0
  250. package/lib/drift/utils/index.d.ts +3 -0
  251. package/lib/drift/utils/index.js +23 -0
  252. package/lib/drift/utils/index.js.map +1 -0
  253. package/lib/drift/utils/orderParams.d.ts +48 -0
  254. package/lib/drift/utils/orderParams.js +140 -0
  255. package/lib/drift/utils/orderParams.js.map +1 -0
  256. package/lib/index.d.ts +45 -0
  257. package/lib/index.js +68 -0
  258. package/lib/index.js.map +1 -0
  259. package/lib/serializableTypes.d.ts +961 -0
  260. package/lib/serializableTypes.js +3887 -0
  261. package/lib/serializableTypes.js.map +1 -0
  262. package/lib/types/MarketId.d.ts +26 -0
  263. package/lib/types/MarketId.js +64 -0
  264. package/lib/types/MarketId.js.map +1 -0
  265. package/lib/types/Superstake.d.ts +7 -0
  266. package/lib/types/Superstake.js +3 -0
  267. package/lib/types/Superstake.js.map +1 -0
  268. package/lib/types/UIEnv.d.ts +26 -0
  269. package/lib/types/UIEnv.js +49 -0
  270. package/lib/types/UIEnv.js.map +1 -0
  271. package/lib/types/UIMarket.d.ts +94 -0
  272. package/lib/types/UIMarket.js +224 -0
  273. package/lib/types/UIMarket.js.map +1 -0
  274. package/lib/types/candles.d.ts +4 -0
  275. package/lib/types/candles.js +9 -0
  276. package/lib/types/candles.js.map +1 -0
  277. package/lib/types/dataServer.d.ts +53 -0
  278. package/lib/types/dataServer.js +3 -0
  279. package/lib/types/dataServer.js.map +1 -0
  280. package/lib/types/historyServer.d.ts +38 -0
  281. package/lib/types/historyServer.js +11 -0
  282. package/lib/types/historyServer.js.map +1 -0
  283. package/lib/types/index.d.ts +12 -0
  284. package/lib/types/index.js +29 -0
  285. package/lib/types/index.js.map +1 -0
  286. package/lib/types/leaderboard.d.ts +80 -0
  287. package/lib/types/leaderboard.js +11 -0
  288. package/lib/types/leaderboard.js.map +1 -0
  289. package/lib/types/remote-configs.d.ts +61 -0
  290. package/lib/types/remote-configs.js +3 -0
  291. package/lib/types/remote-configs.js.map +1 -0
  292. package/lib/types/trade.d.ts +18 -0
  293. package/lib/types/trade.js +3 -0
  294. package/lib/types/trade.js.map +1 -0
  295. package/lib/types/user.d.ts +40 -0
  296. package/lib/types/user.js +3 -0
  297. package/lib/types/user.js.map +1 -0
  298. package/lib/types/utility.d.ts +15 -0
  299. package/lib/types/utility.js +3 -0
  300. package/lib/types/utility.js.map +1 -0
  301. package/lib/utils/CircularBuffers/CircularBuffer.d.ts +22 -0
  302. package/lib/utils/CircularBuffers/CircularBuffer.js +73 -0
  303. package/lib/utils/CircularBuffers/CircularBuffer.js.map +1 -0
  304. package/lib/utils/CircularBuffers/UniqueCircularBuffer.d.ts +19 -0
  305. package/lib/utils/CircularBuffers/UniqueCircularBuffer.js +78 -0
  306. package/lib/utils/CircularBuffers/UniqueCircularBuffer.js.map +1 -0
  307. package/lib/utils/CircularBuffers/index.d.ts +2 -0
  308. package/lib/utils/CircularBuffers/index.js +19 -0
  309. package/lib/utils/CircularBuffers/index.js.map +1 -0
  310. package/lib/utils/MultiplexWebSocket.d.ts +95 -0
  311. package/lib/utils/MultiplexWebSocket.js +416 -0
  312. package/lib/utils/MultiplexWebSocket.js.map +1 -0
  313. package/lib/utils/NumLib.d.ts +106 -0
  314. package/lib/utils/NumLib.js +300 -0
  315. package/lib/utils/NumLib.js.map +1 -0
  316. package/lib/utils/SharedInterval.d.ts +21 -0
  317. package/lib/utils/SharedInterval.js +47 -0
  318. package/lib/utils/SharedInterval.js.map +1 -0
  319. package/lib/utils/SlotBasedResultValidator.d.ts +9 -0
  320. package/lib/utils/SlotBasedResultValidator.js +27 -0
  321. package/lib/utils/SlotBasedResultValidator.js.map +1 -0
  322. package/lib/utils/Stopwatch.d.ts +15 -0
  323. package/lib/utils/Stopwatch.js +31 -0
  324. package/lib/utils/Stopwatch.js.map +1 -0
  325. package/lib/utils/StrictEventEmitter.d.ts +15 -0
  326. package/lib/utils/StrictEventEmitter.js +55 -0
  327. package/lib/utils/StrictEventEmitter.js.map +1 -0
  328. package/lib/utils/WalletConnectionState.d.ts +31 -0
  329. package/lib/utils/WalletConnectionState.js +83 -0
  330. package/lib/utils/WalletConnectionState.js.map +1 -0
  331. package/lib/utils/assert.d.ts +1 -0
  332. package/lib/utils/assert.js +10 -0
  333. package/lib/utils/assert.js.map +1 -0
  334. package/lib/utils/candles/Candle.d.ts +94 -0
  335. package/lib/utils/candles/Candle.js +580 -0
  336. package/lib/utils/candles/Candle.js.map +1 -0
  337. package/lib/utils/candles/types.d.ts +8 -0
  338. package/lib/utils/candles/types.js +3 -0
  339. package/lib/utils/candles/types.js.map +1 -0
  340. package/lib/utils/dlob-server/DlobServerWebsocketUtils.d.ts +57 -0
  341. package/lib/utils/dlob-server/DlobServerWebsocketUtils.js +137 -0
  342. package/lib/utils/dlob-server/DlobServerWebsocketUtils.js.map +1 -0
  343. package/lib/utils/driftEvents.d.ts +10 -0
  344. package/lib/utils/driftEvents.js +123 -0
  345. package/lib/utils/driftEvents.js.map +1 -0
  346. package/lib/utils/equalityChecks.d.ts +12 -0
  347. package/lib/utils/equalityChecks.js +71 -0
  348. package/lib/utils/equalityChecks.js.map +1 -0
  349. package/lib/utils/featureFlags.d.ts +3 -0
  350. package/lib/utils/featureFlags.js +7 -0
  351. package/lib/utils/featureFlags.js.map +1 -0
  352. package/lib/utils/geoblock/index.d.ts +4 -0
  353. package/lib/utils/geoblock/index.js +20 -0
  354. package/lib/utils/geoblock/index.js.map +1 -0
  355. package/lib/utils/index.d.ts +181 -0
  356. package/lib/utils/index.js +608 -0
  357. package/lib/utils/index.js.map +1 -0
  358. package/lib/utils/insuranceFund.d.ts +15 -0
  359. package/lib/utils/insuranceFund.js +84 -0
  360. package/lib/utils/insuranceFund.js.map +1 -0
  361. package/lib/utils/logger.d.ts +5 -0
  362. package/lib/utils/logger.js +53 -0
  363. package/lib/utils/logger.js.map +1 -0
  364. package/lib/utils/math.d.ts +10 -0
  365. package/lib/utils/math.js +89 -0
  366. package/lib/utils/math.js.map +1 -0
  367. package/lib/utils/orderbook/index.d.ts +65 -0
  368. package/lib/utils/orderbook/index.js +80 -0
  369. package/lib/utils/orderbook/index.js.map +1 -0
  370. package/lib/utils/pollingSequenceGuard.d.ts +9 -0
  371. package/lib/utils/pollingSequenceGuard.js +24 -0
  372. package/lib/utils/pollingSequenceGuard.js.map +1 -0
  373. package/lib/utils/priority-fees/PriorityFeeCalculator.d.ts +24 -0
  374. package/lib/utils/priority-fees/PriorityFeeCalculator.js +53 -0
  375. package/lib/utils/priority-fees/PriorityFeeCalculator.js.map +1 -0
  376. package/lib/utils/priority-fees/PriorityFeeStrategies.d.ts +5 -0
  377. package/lib/utils/priority-fees/PriorityFeeStrategies.js +43 -0
  378. package/lib/utils/priority-fees/PriorityFeeStrategies.js.map +1 -0
  379. package/lib/utils/priority-fees/index.d.ts +2 -0
  380. package/lib/utils/priority-fees/index.js +19 -0
  381. package/lib/utils/priority-fees/index.js.map +1 -0
  382. package/lib/utils/priorityFees.d.ts +14 -0
  383. package/lib/utils/priorityFees.js +68 -0
  384. package/lib/utils/priorityFees.js.map +1 -0
  385. package/lib/utils/rpcLatency.d.ts +7 -0
  386. package/lib/utils/rpcLatency.js +49 -0
  387. package/lib/utils/rpcLatency.js.map +1 -0
  388. package/lib/utils/rxjs.d.ts +11 -0
  389. package/lib/utils/rxjs.js +24 -0
  390. package/lib/utils/rxjs.js.map +1 -0
  391. package/lib/utils/s3Buckets.d.ts +43 -0
  392. package/lib/utils/s3Buckets.js +108 -0
  393. package/lib/utils/s3Buckets.js.map +1 -0
  394. package/lib/utils/superstake.d.ts +86 -0
  395. package/lib/utils/superstake.js +224 -0
  396. package/lib/utils/superstake.js.map +1 -0
  397. package/lib/utils/token.d.ts +16 -0
  398. package/lib/utils/token.js +44 -0
  399. package/lib/utils/token.js.map +1 -0
  400. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializableTypes.js","sourceRoot":"","sources":["../src/serializableTypes.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tBASE_PRECISION_EXP,\n\tBigNum,\n\tBN,\n\tCandleResolution,\n\tCurveRecord,\n\tDepositExplanation,\n\tDepositRecord,\n\tEvent,\n\tFundingPaymentRecord,\n\tFundingRateRecord,\n\tInsuranceFundRecord,\n\tInsuranceFundStakeRecord,\n\tisVariant,\n\tLiquidateBorrowForPerpPnlRecord,\n\tLiquidatePerpPnlForDepositRecord,\n\tLiquidatePerpRecord,\n\tLiquidateSpotRecord,\n\tLiquidationRecord,\n\tLiquidationType,\n\tLPAction,\n\tLPRecord,\n\tMarketType,\n\tNewUserRecord,\n\tOrder,\n\tOrderAction,\n\tOrderActionExplanation,\n\tOrderStatus,\n\tOrderTriggerCondition,\n\tOrderType,\n\tPERCENTAGE_PRECISION_EXP,\n\tPerpBankruptcyRecord,\n\tPositionDirection,\n\tPRICE_PRECISION_EXP,\n\tPublicKey,\n\tQUOTE_PRECISION_EXP,\n\tSettlePnlExplanation,\n\tSettlePnlRecord,\n\tSpotBalanceType,\n\tSpotBankruptcyRecord,\n\tSpotInterestRecord,\n\tStakeAction,\n\tSwapRecord,\n\tTEN,\n\tWrappedEvent,\n\tZERO,\n} from '@drift-labs/sdk';\nimport {\n\tautoserializeAs,\n\tautoserializeAsArray,\n\tautoserializeAsJson,\n\tautoserializeUsing,\n\tDeserialize,\n\tinheritSerialization,\n\tJsonObject,\n\tJsonType,\n\tSerialize,\n\tSetDeserializeKeyTransform,\n\tSetSerializeKeyTransform,\n\tSnakeCase,\n} from 'cerializr';\nimport { assert } from './utils/assert';\nimport { Config } from './Config';\nimport {\n\tAccountSnapshot,\n\tLeaderboardResult,\n\tLeaderBoardResultRow,\n\tPnlHistoryDataPoint,\n\tPnlSnapshotOrderOption,\n\tRollingPnlData,\n\tSnapshotEpochResolution,\n\tUIAccountSnapshot,\n\tUserPerpPositionSnapshot,\n\tUserSnapshotRecord,\n\tUserSpotPositionSnapshot,\n} from './types/leaderboard';\n\n// Reusable transformers\n\nconst BNSerializationFn = (target: BN) =>\n\ttarget ? target.toString() : undefined;\nconst BNDeserializationFn = (val: string) => (val ? new BN(val) : undefined);\nconst BNSerializeAndDeserializeFns = {\n\tSerialize: BNSerializationFn,\n\tDeserialize: BNDeserializationFn,\n};\n\nconst BNArraySerializationFn = (target: BN[]) =>\n\ttarget.map((val) => (val ? val.toString() : undefined));\nconst BNArrayDeserializationFn = (values: string[]) =>\n\tvalues.map((val) => (val ? new BN(val) : undefined));\nconst BNArraySerializeAndDeserializeFns = {\n\tSerialize: BNArraySerializationFn,\n\tDeserialize: BNArrayDeserializationFn,\n};\n\nconst QuoteBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\n\nconst QuoteBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), QUOTE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), QUOTE_PRECISION_EXP)\n\t\t: undefined;\n\nconst QuoteBigNumSerializeAndDeserializeFns = {\n\tSerialize: QuoteBigNumSerializationFn,\n\tDeserialize: QuoteBigNumDeserializationFn,\n};\n\nconst NullableQuoteBigNumSerializeAndDeserializeFns = {\n\tSerialize: (target: BigNum | BN | null) =>\n\t\ttarget === null ? null : QuoteBigNumSerializationFn(target),\n\tDeserialize: (val: string | number | null) =>\n\t\tval === null ? null : QuoteBigNumDeserializationFn(val),\n};\n\nconst MarketBasedBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\n\nconst targetPrecisionBigNumDeserializationFn = (\n\tval: JsonType,\n\tprecision: BN\n) => {\n\treturn val !== undefined &&\n\t\t(typeof val === 'string' || typeof val === 'number')\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), precision)\n\t\t\t: BigNum.fromPrint(val.toString(), precision)\n\t\t: undefined;\n};\n\n// Main purpose of defer deserialization is to defer the precision setting until onDeserialized\nconst DeferBigNumDeserializationFn = (val: string | number) => {\n\treturn val !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(0, ZERO)\n\t\t\t: BigNum.fromPrint('0', ZERO)\n\t\t: undefined;\n};\n\nconst MarketBasedBigNumSerializeAndDeserializeFns = {\n\tSerialize: MarketBasedBigNumSerializationFn,\n\tDeserialize: DeferBigNumDeserializationFn,\n};\n\nconst NullableMarketBasedBigNumSerializeAndDeserializeFns = {\n\tSerialize: (target: BigNum | BN | null) =>\n\t\ttarget === null ? null : MarketBasedBigNumSerializationFn(target),\n\tDeserialize: (val: string | number | null) =>\n\t\tval === null ? null : DeferBigNumDeserializationFn(val),\n};\n\nconst PctBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\n\nconst PctBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), PERCENTAGE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), PERCENTAGE_PRECISION_EXP)\n\t\t: undefined;\n\nconst PctBigNumSerializeAndDeserializeFns = {\n\tSerialize: PctBigNumSerializationFn,\n\tDeserialize: PctBigNumDeserializationFn,\n};\n\nconst BaseBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\nconst BaseBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), BASE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), BASE_PRECISION_EXP)\n\t\t: undefined;\nconst BaseBigNumSerializeAndDeserializeFns = {\n\tSerialize: BaseBigNumSerializationFn,\n\tDeserialize: BaseBigNumDeserializationFn,\n};\n\nconst PriceBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\nconst PriceBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), PRICE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), PRICE_PRECISION_EXP)\n\t\t: undefined;\nconst PriceBigNumSerializeAndDeserializeFns = {\n\tSerialize: PriceBigNumSerializationFn,\n\tDeserialize: PriceBigNumDeserializationFn,\n};\n\nconst FundingRateBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\nconst FundingRateBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), PRICE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), PRICE_PRECISION_EXP)\n\t\t: undefined;\nconst FundingRateBigNumSerializeAndDeserializeFns = {\n\tSerialize: FundingRateBigNumSerializationFn,\n\tDeserialize: FundingRateBigNumDeserializationFn,\n};\n\nconst BankCumulativeInterestBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\nconst BankCumulativeInterestBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), PRICE_PRECISION_EXP)\n\t\t\t: BigNum.fromPrint(val.toString(), PRICE_PRECISION_EXP)\n\t\t: undefined;\nconst BankCumulativeInterestBigNumSerializeAndDeserializeFns = {\n\tSerialize: BankCumulativeInterestBigNumSerializationFn,\n\tDeserialize: BankCumulativeInterestBigNumDeserializationFn,\n};\n\nconst ReferralVolumeBigNumSerializationFn = (target: BigNum | BN) =>\n\ttarget\n\t\t? target instanceof BigNum\n\t\t\t? target.print()\n\t\t\t: target.toString()\n\t\t: undefined;\nconst ReferralVolumeBigNumDeserializationFn = (val: string | number) =>\n\tval !== undefined\n\t\t? typeof val === 'string'\n\t\t\t? BigNum.from(val.replace('.', ''), TEN)\n\t\t\t: BigNum.fromPrint(val.toString(), TEN)\n\t\t: undefined;\nconst ReferralVolumeBigNumSerializeAndDeserializeFns = {\n\tSerialize: ReferralVolumeBigNumSerializationFn,\n\tDeserialize: ReferralVolumeBigNumDeserializationFn,\n};\n\nconst PublicKeySerializationFn = (target: PublicKey) =>\n\ttarget ? target.toString() : undefined;\nconst PublicKeyDeserializationFn = (val: string) =>\n\tval ? new PublicKey(val) : undefined;\nconst PublicKeySerializeAndDeserializeFns = {\n\tSerialize: PublicKeySerializationFn,\n\tDeserialize: PublicKeyDeserializationFn,\n};\n\nconst EnumSerializationFn = (target: Record<string, unknown>) => {\n\tif (!target) return null;\n\n\treturn Object.keys(target)[0];\n};\nconst EnumDeserializationFn = (val: any) => {\n\tif (!val) return null;\n\n\t{\n\t\tif (typeof val === 'string') return { [val]: {} };\n\n\t\treturn val;\n\t}\n};\nconst EnumSerializeAndDeserializeFns = {\n\tSerialize: EnumSerializationFn,\n\tDeserialize: EnumDeserializationFn,\n};\n\nconst getPrecisionToUse = (marketType: MarketType, marketIndex: number) => {\n\tif (isVariant(marketType, 'spot')) {\n\t\treturn Config.spotMarketsLookup[marketIndex].precisionExp;\n\t}\n\treturn BASE_PRECISION_EXP;\n};\n\n/**\n * Handles correctly deserializing precision for spot records where we don't know the precision until the onDeserialized hook is called\n */\nconst handleOnDeserializedPrecision = <T>(\n\tdata: JsonObject,\n\tinstance: T,\n\tprecision: BN,\n\tkeysToUse: (keyof T)[]\n) => {\n\tkeysToUse.forEach((key) => {\n\t\t// @ts-ignore :: Don't know how to correctly type this because it doesn't know the key corresponds to a BigNum, but it should always be a BigNum\n\t\tinstance[key] = targetPrecisionBigNumDeserializationFn(\n\t\t\tdata[key],\n\t\t\tprecision\n\t\t);\n\t});\n};\n\n/**\n * Generic utility function to validate event types during deserialization\n * @param instance The instance being deserialized\n * @param expectedEventType The expected event type\n * @param className The name of the class being deserialized (for error messages)\n */\nfunction validateEventTypeOnDeserialize<\n\tInstanceType extends { eventType?: string }\n>(\n\tinstance: InstanceType,\n\texpectedEventType: InstanceType extends { eventType: infer EventType }\n\t\t? EventType\n\t\t: never,\n\tclassName: string\n): void {\n\tif (instance.eventType !== expectedEventType) {\n\t\t// Check that eventType is not defined but incorrect because then something has gone bad\n\t\tassert(\n\t\t\t!instance.eventType,\n\t\t\t`eventType is truthy but not ${expectedEventType} when deserializing ${className}`\n\t\t);\n\n\t\t// If it's just undefined then we're happy to set it for them\n\t\tinstance.eventType = expectedEventType as string; // added 'as string' to accommodate older typescript version errors\n\t}\n}\n\n/**\n * Generic utility function to validate and set event types during serialization\n * @param json The JSON object being serialized\n * @param expectedEventType The expected event type\n * @param className The name of the class being serialized (for error messages)\n */\nfunction validateEventTypeOnSerialize<\n\tInstanceType extends { eventType?: string }\n>(\n\tjson: JsonObject,\n\texpectedEventType: InstanceType extends { eventType: infer E } ? E : never,\n\tclassName: string\n): void {\n\tif (json.eventType !== expectedEventType) {\n\t\t// Check that eventType is not defined but incorrect because then something has gone bad\n\t\tassert(\n\t\t\t!json.eventType,\n\t\t\t`eventType is truthy but not ${expectedEventType} when serializing ${className}`\n\t\t);\n\n\t\t// If it's just undefined then we're happy to set it for them\n\t\tjson.eventType = expectedEventType as string; // added 'as string' to accommodate older typescript version errors\n\t}\n}\n\n// Serializable classes\n//// Order Records\n\nexport type OrderRecordEvent = WrappedEvent<'OrderRecord'>;\n\nexport class SerializableOrder implements Order {\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) status: OrderStatus;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) orderType: OrderType;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(Number) orderId: number;\n\t@autoserializeAs(Number) userOrderId: number;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) price: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmountFilled: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetAmountFilled: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tdirection: PositionDirection;\n\t@autoserializeAs(Boolean) reduceOnly: boolean;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) triggerPrice: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\ttriggerCondition: OrderTriggerCondition;\n\t@autoserializeAs(Boolean) postOnly: boolean;\n\t@autoserializeAs(Boolean) immediateOrCancel: boolean;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePriceOffset: number; // actually a number but serializes correctly as a BN\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) auctionStartPrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) auctionEndPrice: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\texistingPositionDirection: OrderStatus;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) slot: BN;\n\t@autoserializeAs(Number) auctionDuration: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) marketType: MarketType;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) maxTs: BN;\n\t@autoserializeAs(Number) bitFlags: number;\n\t@autoserializeAs(Number) postedSlotTail: number;\n}\n\n@inheritSerialization(SerializableOrder)\nexport class UISerializableOrder extends SerializableOrder {\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) price: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmount: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmountFilled: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttriggerPrice: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePriceOffset: BigNum;\n\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tauctionStartPrice: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tauctionEndPrice: BigNum;\n\n\tstatic onDeserialized(data: JsonObject, instance: UISerializableOrder) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\tif (isVariant(instance.marketType, 'spot')) {\n\t\t\tconst precisionToUse =\n\t\t\t\tConfig.spotMarketsLookup[instance.marketIndex].precisionExp;\n\t\t\tinstance.baseAssetAmount.precision = precisionToUse;\n\n\t\t\tinstance.baseAssetAmountFilled.precision = precisionToUse;\n\t\t}\n\t}\n}\n\n// @ts-ignore\nexport class SerializableOrderRecord implements OrderRecordEvent {\n\t@autoserializeAs(String) eventType: 'OrderRecord';\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(SerializableOrder) order: Order;\n\n\tstatic onDeserialized(data: JsonObject, instance: SerializableOrderRecord) {\n\t\tvalidateEventTypeOnDeserialize(\n\t\t\tinstance,\n\t\t\t'OrderRecord',\n\t\t\t'SerializableOrderRecord'\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<SerializableOrderRecord>(\n\t\t\tjson,\n\t\t\t'OrderRecord',\n\t\t\t'SerializableOrderRecord'\n\t\t);\n\t}\n}\n\n@inheritSerialization(SerializableOrderRecord)\nexport class UISerializableOrderRecord extends SerializableOrderRecord {\n\t//@ts-ignore\n\t@autoserializeAs(UISerializableOrder) order: UISerializableOrder;\n\n\tstatic onDeserialized(data: JsonObject, instance: UISerializableOrderRecord) {\n\t\tvalidateEventTypeOnDeserialize(\n\t\t\tinstance,\n\t\t\t'OrderRecord',\n\t\t\t'UISerializableOrderRecord'\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<UISerializableOrderRecord>(\n\t\t\tjson,\n\t\t\t'OrderRecord',\n\t\t\t'UISerializableOrderRecord'\n\t\t);\n\t}\n}\n\nexport class SerializableOrderActionRecord\n\timplements WrappedEvent<'OrderActionRecord'>\n{\n\t@autoserializeAs(String) eventType: 'OrderActionRecord';\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) action: OrderAction;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tactionExplanation: OrderActionExplanation;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tmarketType: MarketType;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tfiller: PublicKey | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillerReward: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillRecordId: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tbaseAssetAmountFilled: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tquoteAssetAmountFilled: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) takerFee: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) makerRebate: BN | null;\n\t@autoserializeAs(Number) referrerReward: number | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tquoteAssetAmountSurplus: BN | null;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\ttaker: PublicKey | null;\n\t@autoserializeAs(Number) takerOrderId: number | null;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\ttakerOrderDirection: PositionDirection | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttakerOrderBaseAssetAmount: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttakerOrderCumulativeBaseAssetAmountFilled: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttakerOrderCumulativeQuoteAssetAmountFilled: BN | null;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tmaker: PublicKey | null;\n\t@autoserializeAs(Number) makerOrderId: number | null;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tmakerOrderDirection: PositionDirection | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmakerOrderBaseAssetAmount: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmakerOrderCumulativeBaseAssetAmountFilled: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmakerOrderCumulativeQuoteAssetAmountFilled: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) makerFee: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tspotFulfillmentMethodFee: BN | null;\n\t@autoserializeAs(Number) bitFlags: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttakerExistingQuoteEntryAmount: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttakerExistingBaseAssetAmount: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmakerExistingQuoteEntryAmount: BN | null;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmakerExistingBaseAssetAmount: BN | null;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: SerializableOrderActionRecord\n\t) {\n\t\tvalidateEventTypeOnDeserialize(\n\t\t\tinstance,\n\t\t\t'OrderActionRecord',\n\t\t\t'SerializableOrderActionRecord'\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<SerializableOrderActionRecord>(\n\t\t\tjson,\n\t\t\t'OrderActionRecord',\n\t\t\t'SerializableOrderActionRecord'\n\t\t);\n\t}\n}\n\n@inheritSerialization(SerializableOrderActionRecord)\nexport class UISerializableOrderActionRecord extends SerializableOrderActionRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tfillerReward: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttakerFee: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmakerRebate: BigNum | null;\n\n\t//@ts-ignore\n\t@autoserializeAs(Number) referrerReward: number | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmountSurplus: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttakerOrderBaseAssetAmount: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttakerOrderCumulativeBaseAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttakerOrderCumulativeQuoteAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmakerOrderBaseAssetAmount: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmakerOrderCumulativeBaseAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmakerOrderCumulativeQuoteAssetAmountFilled: BigNum | null;\n\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePrice: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmakerFee: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\tspotFulfillmentMethodFee: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\ttakerExistingQuoteEntryAmount: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\ttakerExistingBaseAssetAmount: BigNum | null;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\tmakerExistingQuoteEntryAmount: BigNum | null;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\tmakerExistingBaseAssetAmount: BigNum | null;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableOrderActionRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\tvalidateEventTypeOnDeserialize<UISerializableOrderActionRecord>(\n\t\t\tinstance,\n\t\t\t'OrderActionRecord',\n\t\t\t'UISerializableOrderActionRecord'\n\t\t);\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(instance.marketType, instance.marketIndex),\n\t\t\t[\n\t\t\t\t'baseAssetAmountFilled',\n\t\t\t\t'takerOrderBaseAssetAmount',\n\t\t\t\t'takerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t\t'makerOrderBaseAssetAmount',\n\t\t\t\t'makerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t\t'takerExistingBaseAssetAmount',\n\t\t\t\t'makerExistingBaseAssetAmount',\n\t\t\t]\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<UISerializableOrderActionRecord>(\n\t\t\tjson,\n\t\t\t'OrderActionRecord',\n\t\t\t'UISerializableOrderActionRecord'\n\t\t);\n\t}\n}\n\nexport class UISerializableOrderRecordV2 {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) orderType: OrderType;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) marketType: MarketType;\n\t@autoserializeAs(Number) orderId: number;\n\t@autoserializeAs(Number) userOrderId: number;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) price: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tbaseAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tquoteAssetAmount: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tbaseAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tquoteAssetAmountFilled: BigNum;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tdirection: PositionDirection;\n\t@autoserializeAs(Boolean) reduceOnly: boolean;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\ttriggerPrice: BigNum;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\ttriggerCondition: OrderTriggerCondition;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\texistingPositionDirection: PositionDirection;\n\t@autoserializeAs(Boolean) postOnly: boolean;\n\t@autoserializeAs(Boolean) immediateOrCancel: boolean;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\toraclePriceOffset: BigNum;\n\t@autoserializeAs(Number) auctionDuration: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tauctionStartPrice: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tauctionEndPrice: BigNum;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) maxTs: BN;\n\t@autoserializeAs(String) symbol: string;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) lastUpdatedTs: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tlastActionExplanation: OrderActionExplanation;\n\t@autoserializeAs(String) lastActionStatus: string;\n\t@autoserializeAs(String) status: string;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableOrderRecordV2\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(instance.marketType, instance.marketIndex),\n\t\t\t['baseAssetAmount', 'baseAssetAmountFilled']\n\t\t);\n\t}\n}\n\nexport class UISerializableOrderActionRecordBase {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) marketType: MarketType;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tfillerReward: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tbaseAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tquoteAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) takerFee: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tmakerRebate: BigNum;\n\t@autoserializeAs(Number) referrerReward: number;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tquoteAssetAmountSurplus: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\ttakerOrderBaseAssetAmount: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\ttakerOrderCumulativeBaseAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\ttakerOrderCumulativeQuoteAssetAmountFilled: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tmakerOrderBaseAssetAmount: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tmakerOrderCumulativeBaseAssetAmountFilled: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tmakerOrderCumulativeQuoteAssetAmountFilled: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\toraclePrice: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) makerFee: BigNum;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) action: OrderAction;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tactionExplanation: OrderActionExplanation;\n\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) filler: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillRecordId: BN; //\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) taker: PublicKey;\n\t@autoserializeAs(Number) takerOrderId: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\ttakerOrderDirection: PositionDirection;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) maker: PublicKey;\n\t@autoserializeAs(Number) makerOrderId: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tmakerOrderDirection: PositionDirection;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tspotFulfillmentMethodFee: BigNum;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(String) symbol: string;\n\t@autoserializeAs(Number) bitFlags: number;\n\n\t@autoserializeUsing(NullableQuoteBigNumSerializeAndDeserializeFns)\n\ttakerExistingQuoteEntryAmount: BigNum | null;\n\t@autoserializeUsing(NullableMarketBasedBigNumSerializeAndDeserializeFns)\n\ttakerExistingBaseAssetAmount: BigNum | null;\n\t@autoserializeUsing(NullableQuoteBigNumSerializeAndDeserializeFns)\n\tmakerExistingQuoteEntryAmount: BigNum | null;\n\t@autoserializeUsing(NullableMarketBasedBigNumSerializeAndDeserializeFns)\n\tmakerExistingBaseAssetAmount: BigNum | null;\n}\n\n@inheritSerialization(UISerializableOrderActionRecordBase)\nexport class UISerializableOrderActionRecordV2 extends UISerializableOrderActionRecordBase {\n\t@autoserializeAs(String) eventType: 'OrderActionRecord';\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableOrderActionRecordV2\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\tvalidateEventTypeOnDeserialize<UISerializableOrderActionRecordV2>(\n\t\t\tinstance,\n\t\t\t'OrderActionRecord',\n\t\t\t'UISerializableOrderActionRecordV2'\n\t\t);\n\n\t\tconst keysToUse: (keyof UISerializableOrderActionRecordV2)[] = [\n\t\t\t'baseAssetAmountFilled',\n\t\t\t'takerOrderBaseAssetAmount',\n\t\t\t'takerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t'makerOrderBaseAssetAmount',\n\t\t\t'makerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t'takerExistingBaseAssetAmount',\n\t\t\t'makerExistingBaseAssetAmount',\n\t\t];\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(instance.marketType, instance.marketIndex),\n\t\t\tkeysToUse\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<UISerializableOrderActionRecordV2>(\n\t\t\tjson,\n\t\t\t'OrderActionRecord',\n\t\t\t'UISerializableOrderActionRecordV2'\n\t\t);\n\t}\n}\n\n@inheritSerialization(UISerializableOrderActionRecordBase)\nexport class UISerializablePositionHistoryRecord extends UISerializableOrderActionRecordBase {\n\t@autoserializeAs(String) eventType: 'PositionHistoryRecord';\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tbaseClosedForPnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tuserFee: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tuserExistingQuoteEntryAmount: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tuserExistingBaseAssetAmount: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializablePositionHistoryRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\tvalidateEventTypeOnDeserialize<UISerializablePositionHistoryRecord>(\n\t\t\tinstance,\n\t\t\t'PositionHistoryRecord',\n\t\t\t'UISerializablePositionHistoryRecord'\n\t\t);\n\n\t\tconst keysToUse: (keyof UISerializablePositionHistoryRecord)[] = [\n\t\t\t'baseAssetAmountFilled',\n\t\t\t'takerOrderBaseAssetAmount',\n\t\t\t'takerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t'makerOrderBaseAssetAmount',\n\t\t\t'makerOrderCumulativeBaseAssetAmountFilled',\n\t\t\t'takerExistingBaseAssetAmount',\n\t\t\t'makerExistingBaseAssetAmount',\n\t\t\t'userExistingBaseAssetAmount',\n\t\t\t'baseClosedForPnl',\n\t\t];\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(instance.marketType, instance.marketIndex),\n\t\t\tkeysToUse\n\t\t);\n\t}\n\n\tstatic onSerialized(json: JsonObject) {\n\t\tvalidateEventTypeOnSerialize<UISerializablePositionHistoryRecord>(\n\t\t\tjson,\n\t\t\t'PositionHistoryRecord',\n\t\t\t'UISerializablePositionHistoryRecord'\n\t\t);\n\t}\n}\n\nexport type DepositRecordEvent = Event<DepositRecord>;\n\nexport class SerializableDepositRecord implements DepositRecordEvent {\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) depositRecordId: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuserAuthority: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) direction: {\n\t\tdeposit?: any;\n\t\twithdraw?: any;\n\t};\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) amount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marketDepositBalance: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marketWithdrawBalance: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmarketCumulativeDepositInterest: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tmarketCumulativeBorrowInterest: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\ttransferUser?: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalDepositsAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalWithdrawsAfter: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\texplanation: DepositExplanation;\n}\n\n@inheritSerialization(SerializableDepositRecord)\nexport class UISerializableDepositRecord extends SerializableDepositRecord {\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tamount: BigNum;\n\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePrice: BigNum;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketDepositBalance: BigNum;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketWithdrawBalance: BigNum;\n\n\t@autoserializeUsing(BankCumulativeInterestBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketCumulativeDepositInterest: BigNum;\n\n\t@autoserializeUsing(BankCumulativeInterestBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketCumulativeBorrowInterest: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalDepositsAfter: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalWithdrawsAfter: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableDepositRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(MarketType.SPOT, instance.marketIndex),\n\t\t\t['amount', 'marketDepositBalance', 'marketWithdrawBalance']\n\t\t);\n\t}\n}\n\n// Spot interest record event\nexport type SpotInterestRecordEvent = Event<SpotInterestRecord>;\nexport class SerializableSpotInterestRecord implements SpotInterestRecordEvent {\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) depositBalance: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeDepositInterest: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) borrowBalance: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeBorrowInterest: BN;\n\t@autoserializeAs(Number) optimalUtilization: number;\n\t@autoserializeAs(Number) optimalBorrowRate: number;\n\t@autoserializeAs(Number) maxBorrowRate: number;\n}\n\n// Curve record event\nexport type CurveRecordEvent = Event<CurveRecord>;\nexport class SerializableCurveRecord implements CurveRecordEvent {\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) recordId: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pegMultiplierBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetReserveBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetReserveBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) sqrtKBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pegMultiplierAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetReserveAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetReserveAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) sqrtKAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmountLong: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmountShort: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmountWithAmm: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalFee: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttotalFeeMinusDistributions: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) adjustmentCost: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) numberOfUsers: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillRecord: BN;\n}\n\n// Settle Pnl Records\n\nexport type SettlePnlRecordEvent = Event<SettlePnlRecord>;\n\nexport class SerializableSettlePnlRecord implements SettlePnlRecordEvent {\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuser: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetAmountAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteEntryAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) settlePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePrice: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\texplanation: SettlePnlExplanation;\n}\n\n@inheritSerialization(SerializableSettlePnlRecord)\nexport class UISerializableSettlePnlRecord extends SerializableSettlePnlRecord {\n\t//@ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) pnl: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmountAfter: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteEntryAmount: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tsettlePrice: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePrice: BigNum;\n}\n\n//// FundingRate Records\n\nexport type FundingRateRecordEvent = Event<FundingRateRecord>;\n// @ts-ignore\nexport class SerializableFundingRateRecord implements FundingRateRecordEvent {\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) recordId: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fundingRate: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeFundingRateLong: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeFundingRateShort: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePriceTwap: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) markPriceTwap: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fundingRateLong: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fundingRateShort: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) periodRevenue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tbaseAssetAmountWithAmm: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tbaseAssetAmountWithUnsettledLp: BN;\n}\n\n@inheritSerialization(SerializableFundingRateRecord)\nexport class UISerializableFundingRateRecord extends SerializableFundingRateRecord {\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tfundingRate: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeFundingRateLong: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeFundingRateShort: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePriceTwap: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarkPriceTwap: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tfundingRateLong: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tfundingRateShort: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperiodRevenue: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmountWithAmm: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmountWithUnsettledLp: BigNum;\n}\n\n//// FundingPayment Records\n\nexport type FundingPaymentRecordEvent = Event<FundingPaymentRecord>;\n\nexport class SerializableFundingPaymentRecord\n\timplements FundingPaymentRecordEvent\n{\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuserAuthority: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fundingPayment: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tuserLastCumulativeFunding: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tammCumulativeFundingLong: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tammCumulativeFundingShort: BN;\n}\n\n@inheritSerialization(SerializableFundingPaymentRecord)\nexport class UISerializableFundingPaymentRecord extends SerializableFundingPaymentRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tfundingPayment: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmount: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tuserLastCumulativeFunding: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tammCumulativeFundingLong: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tammCumulativeFundingShort: BigNum;\n}\n\n//// Liquidation Records\n// @ts-ignore\nexport class SerializableLiquidatePerpRecord implements LiquidatePerpRecord {\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNArraySerializeAndDeserializeFns) orderIds: BN[];\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) userPnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liquidatorPnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) canceledOrdersFee: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) userOrderId: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liquidatorOrderId: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillRecordId: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) lpShares: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liquidatorFee: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifFee: BN;\n}\n\n@inheritSerialization(SerializableLiquidatePerpRecord)\nexport class UISerializableLiquidatePerpRecord extends SerializableLiquidatePerpRecord {\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toraclePrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tbaseAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tuserPnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliquidatorPnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcanceledOrdersFee: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns) lpShares: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliquidatorFee: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tifFee: BigNum;\n}\n\nexport class SerializableLiquidateSpotRecord implements LiquidateSpotRecord {\n\t@autoserializeAs(Number) assetMarketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) assetPrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) assetTransfer: BN;\n\t@autoserializeAs(Number) liabilityMarketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liabilityPrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liabilityTransfer: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifFee: BN;\n}\n\n@inheritSerialization(SerializableLiquidateSpotRecord)\nexport class UISerializableLiquidateSpotRecord extends SerializableLiquidateSpotRecord {\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tassetPrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tassetTransfer: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliabilityPrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliabilityTransfer: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableLiquidateSpotRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\tinstance.assetTransfer.precision =\n\t\t\tConfig.spotMarketsLookup[instance.assetMarketIndex].precisionExp;\n\t\tinstance.liabilityTransfer.precision =\n\t\t\tConfig.spotMarketsLookup[instance.liabilityMarketIndex].precisionExp;\n\t}\n}\n\nexport class SerializableLiquidateBorrowForPerpPnlRecord\n\timplements LiquidateBorrowForPerpPnlRecord\n{\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marketOraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pnlTransfer: BN;\n\t@autoserializeAs(Number) liabilityMarketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liabilityPrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) liabilityTransfer: BN;\n\t@autoserializeAs(Number) perpMarketIndex: number;\n}\n\n@inheritSerialization(SerializableLiquidateBorrowForPerpPnlRecord)\nexport class UISerializableLiquidateBorrowForPerpPnlRecord extends SerializableLiquidateBorrowForPerpPnlRecord {\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketOraclePrice: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tpnlTransfer: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliabilityPrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tliabilityTransfer: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableLiquidateBorrowForPerpPnlRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\tinstance.liabilityTransfer.precision =\n\t\t\tConfig.spotMarketsLookup[instance.liabilityMarketIndex].precisionExp;\n\t}\n}\n\nexport class SerializableLiquidatePerpPnlForDepositRecord\n\timplements LiquidatePerpPnlForDepositRecord\n{\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marketOraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pnlTransfer: BN;\n\t@autoserializeAs(Number) assetMarketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) assetPrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) assetTransfer: BN;\n\t@autoserializeAs(Number) perpMarketIndex: number;\n}\n\n@inheritSerialization(SerializableLiquidatePerpPnlForDepositRecord)\nexport class UISerializableLiquidatePerpPnlForDepositRecord extends SerializableLiquidatePerpPnlForDepositRecord {\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarketOraclePrice: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tpnlTransfer: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tassetPrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tassetTransfer: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableLiquidatePerpPnlForDepositRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\tinstance.assetTransfer.precision =\n\t\t\tConfig.spotMarketsLookup[instance.assetMarketIndex].precisionExp;\n\t}\n}\n\nexport type LiquidationRecordEvent = Event<LiquidationRecord>;\n\nexport class SerializablePerpBankrupcyRecord implements PerpBankruptcyRecord {\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeFundingRateDelta: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifPayment: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tclawbackUser: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) clawbackUserPayment: BN;\n}\n\nexport class UISerializablePerpBankrupcyRecord extends SerializablePerpBankrupcyRecord {\n\t//@ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) pnl: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeFundingRateDelta: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) ifPayment: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tdeclare clawbackUserPayment: BN;\n}\n\nexport class SerializableSpotBankruptcyRecord implements SpotBankruptcyRecord {\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) borrowAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeDepositInterestDelta: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifPayment: BN;\n}\n\nexport class UISerializableSpotBankruptcyRecord extends SerializableSpotBankruptcyRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tborrowAmount: BigNum;\n\t@autoserializeUsing(BankCumulativeInterestBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeDepositInterestDelta: BigNum;\n\n\t//@ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) ifPayment: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableSpotBankruptcyRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\tinstance.ifPayment.precision =\n\t\t\tConfig.spotMarketsLookup[instance.marketIndex].precisionExp;\n\t}\n}\n\nexport class SerializableLiquidationRecord implements LiquidationRecordEvent {\n\t@autoserializeAs(Number) liquidationId: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tliquidator: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalCollateral: BN;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tliquidationType: LiquidationType;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marginRequirement: BN;\n\t@autoserializeAs(SerializableLiquidatePerpRecord)\n\tliquidatePerp: LiquidatePerpRecord;\n\t@autoserializeAs(SerializableLiquidateSpotRecord)\n\tliquidateSpot: LiquidateSpotRecord;\n\t@autoserializeAs(SerializableLiquidateBorrowForPerpPnlRecord)\n\tliquidateBorrowForPerpPnl: LiquidateBorrowForPerpPnlRecord;\n\t@autoserializeAs(SerializableLiquidatePerpPnlForDepositRecord)\n\tliquidatePerpPnlForDeposit: LiquidatePerpPnlForDepositRecord;\n\t@autoserializeAs(SerializablePerpBankrupcyRecord)\n\tperpBankruptcy: PerpBankruptcyRecord;\n\t@autoserializeAs(SerializableSpotBankruptcyRecord)\n\tspotBankruptcy: SpotBankruptcyRecord;\n\t@autoserializeUsing(BNArraySerializeAndDeserializeFns) canceledOrderIds: BN[];\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) marginFreed: BN;\n\t@autoserializeAs(Boolean) bankrupt: boolean;\n}\n\n@inheritSerialization(SerializableLiquidationRecord)\nexport class UISerializableLiquidationRecord extends SerializableLiquidationRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tmarginRequirement: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalCollateral: BigNum;\n\t@autoserializeAs(UISerializableLiquidatePerpRecord)\n\t//@ts-ignore\n\tliquidatePerp: UISerializableLiquidatePerpRecord;\n\t@autoserializeAs(UISerializableLiquidateSpotRecord)\n\t//@ts-ignore\n\tliquidateSpot: UISerializableLiquidateSpotRecord;\n\t@autoserializeAs(UISerializableLiquidateBorrowForPerpPnlRecord)\n\t//@ts-ignore\n\tliquidateBorrowForPerpPnl: UISerializableLiquidateBorrowForPerpPnlRecord;\n\t@autoserializeAs(UISerializableLiquidatePerpPnlForDepositRecord)\n\t//@ts-ignore\n\tliquidatePerpPnlForDeposit: UISerializableLiquidatePerpPnlForDepositRecord;\n}\n\nexport class UISerializableLiquidationRecordV2 {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tliquidationType: LiquidationType;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuser: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tliquidator: PublicKey;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tmarginRequirement: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\ttotalCollateral: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) marginFreed: BN;\n\t@autoserializeAs(Number) liquidationId: number;\n\t@autoserializeAs(Boolean) bankrupt: boolean;\n\t@autoserializeUsing(BNArraySerializeAndDeserializeFns)\n\tcanceledOrderIds: BN[];\n\n\t// Liquidate Perp\n\t@autoserializeAs(Number) liquidatePerp_marketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_oraclePrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_baseAssetAmount: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_quoteAssetAmount: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_lpShares: BigNum;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tliquidatePerp_fillRecordId: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tliquidatePerp_userOrderId: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tliquidatePerp_liquidatorOrderId: BN;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_liquidatorFee: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tliquidatePerp_ifFee: BigNum;\n\n\t// Liquidate Spot\n\t@autoserializeAs(Number) liquidateSpot_assetMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidateSpot_assetPrice: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tliquidateSpot_assetTransfer: BigNum;\n\t@autoserializeAs(Number) liquidateSpot_liabilityMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidateSpot_liabilityPrice: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tliquidateSpot_liabilityTransfer: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tliquidateSpot_ifFee: BigNum;\n\n\t// Liquidate Borrow For Perp PnL\n\t@autoserializeAs(Number) liquidateBorrowForPerpPnl_perpMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidateBorrowForPerpPnl_marketOraclePrice: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tliquidateBorrowForPerpPnl_pnlTransfer: BigNum;\n\t@autoserializeAs(Number)\n\tliquidateBorrowForPerpPnl_liabilityMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidateBorrowForPerpPnl_liabilityPrice: BigNum;\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\tliquidateBorrowForPerpPnl_liabilityTransfer: BigNum;\n\n\t// Liquidate Perp PnL For Deposit\n\t@autoserializeAs(Number) liquidatePerpPnlForDeposit_perpMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidatePerpPnlForDeposit_marketOraclePrice: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tliquidatePerpPnlForDeposit_pnlTransfer: BigNum;\n\t@autoserializeAs(Number)\n\tliquidatePerpPnlForDeposit_assetMarketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\tliquidatePerpPnlForDeposit_assetPrice: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tliquidatePerpPnlForDeposit_assetTransfer: BigNum;\n\n\t// Perp Bankruptcy\n\t@autoserializeAs(Number) perpBankruptcy_marketIndex: number;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tperpBankruptcy_pnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tperpBankruptcy_ifPayment: BigNum;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tperpBankruptcy_clawbackUser: PublicKey;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\tperpBankruptcy_clawbackUserPayment: BigNum;\n\t@autoserializeUsing(FundingRateBigNumSerializeAndDeserializeFns)\n\tperpBankruptcy_cumulativeFundingRateDelta: BigNum;\n\n\t// Spot Bankruptcy\n\t@autoserializeAs(Number) spotBankruptcy_marketIndex: number;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tspotBankruptcy_borrowAmount: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tspotBankruptcy_ifPayment: BigNum;\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\tspotBankruptcy_cumulativeDepositInterestDelta: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableLiquidationRecordV2\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\t// handle spot liquidation\n\t\tconst spotLiquidationAssetPrecision = getPrecisionToUse(\n\t\t\tMarketType.SPOT,\n\t\t\tinstance.liquidateSpot_assetMarketIndex\n\t\t);\n\n\t\tconst spotLiquidationLiabilityPrecision = getPrecisionToUse(\n\t\t\tMarketType.SPOT,\n\t\t\tinstance.liquidateSpot_liabilityMarketIndex\n\t\t);\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tspotLiquidationAssetPrecision,\n\t\t\t['liquidateSpot_assetTransfer']\n\t\t); // The asset transfer uses the asset market index precision\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tspotLiquidationLiabilityPrecision,\n\t\t\t['liquidateSpot_liabilityTransfer', 'liquidateSpot_ifFee']\n\t\t); // the liability transfer and if fee use the liability market index precision\n\n\t\t// handle spot bankruptcy\n\t\tconst spotBankruptcyPrecisionToUse = getPrecisionToUse(\n\t\t\tMarketType.SPOT,\n\t\t\tinstance.spotBankruptcy_marketIndex\n\t\t);\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tspotBankruptcyPrecisionToUse,\n\t\t\t[\n\t\t\t\t'spotBankruptcy_borrowAmount',\n\t\t\t\t'spotBankruptcy_ifPayment',\n\t\t\t\t'spotBankruptcy_cumulativeDepositInterestDelta',\n\t\t\t]\n\t\t);\n\n\t\t// handle liquidate borrow for perp pnl\n\t\tconst liquidateBorrowForPerpPnlPrecisionToUse = getPrecisionToUse(\n\t\t\tMarketType.SPOT,\n\t\t\tinstance.liquidateBorrowForPerpPnl_liabilityMarketIndex\n\t\t);\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tliquidateBorrowForPerpPnlPrecisionToUse,\n\t\t\t['liquidateBorrowForPerpPnl_liabilityTransfer']\n\t\t);\n\n\t\t// handle liquidate perp pnl for deposit\n\t\tconst liquidatePerpPnlForDepositPrecisionToUse = getPrecisionToUse(\n\t\t\tMarketType.SPOT,\n\t\t\tinstance.liquidatePerpPnlForDeposit_assetMarketIndex\n\t\t);\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tliquidatePerpPnlForDepositPrecisionToUse,\n\t\t\t['liquidatePerpPnlForDeposit_assetTransfer']\n\t\t);\n\t}\n}\n\nclass SerializableUserPerpPositionSnapshot implements UserPerpPositionSnapshot {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) lpShares: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseAssetAmount: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n}\n\nclass SerializableUserSpotPositionSnapshot implements UserSpotPositionSnapshot {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) tokenValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) tokenAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) cumulativeDeposits: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) balanceInterestDelta: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) type: SpotBalanceType;\n}\n\nexport class SerializableUserSnapshotRecord implements UserSnapshotRecord {\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) programId: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) authority: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(Number) epochTs: number;\n\t@autoserializeAs(Number) ts: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) perpPositionUpnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalAccountValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeDepositQuoteValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeWithdrawalQuoteValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeSettledPerpPnl: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeReferralReward: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeReferralVolume: BN;\n\t@autoserializeAs(Number) cumulativeReferralCount: number;\n}\n\n@inheritSerialization(SerializableUserSnapshotRecord)\nexport class UISerializableUserSnapshotRecord extends SerializableUserSnapshotRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperpPositionUpnl: BigNum;\n\t//@ts-ignore\n\ttotalAccountValue: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeDepositQuoteValue: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeWithdrawalQuoteValue: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeSettledPerpPnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeReferralReward: BigNum;\n\t@autoserializeUsing(ReferralVolumeBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeReferralVolume: BigNum;\n}\n\nexport class SerializableCandle {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillOpen: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillClose: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillHigh: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fillLow: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oracleOpen: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oracleClose: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oracleHigh: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) oracleLow: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) quoteVolume: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) baseVolume: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) start: BN;\n\t@autoserializeAs(String) resolution: CandleResolution;\n}\n\n@inheritSerialization(SerializableCandle)\nexport class UISerializableCandle extends SerializableCandle {\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) fillOpen: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) fillClose: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) fillHigh: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) fillLow: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) oracleOpen: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\toracleClose: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) oracleHigh: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) oracleLow: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tquoteVolume: BigNum;\n\t//@ts-ignore\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns) baseVolume: BigNum;\n\t//@ts-ignore\n\t@autoserializeAs(String) resolution: CandleResolution;\n}\n\nexport class SerializableRollingPnlData implements RollingPnlData {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) spotPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) spotPnlPct: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) perpPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) perpPnlPct: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalPnlPct: BN;\n}\n\nexport class SerializableAllTimePnlData extends SerializableRollingPnlData {\n\t@autoserializeAs(Number) epochTs: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) spotPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) spotPnlPct: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) perpPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) perpPnlPct: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalPnlQuote: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalPnlPct: BN;\n}\n\nexport class UISerializableRollingPnlData extends SerializableRollingPnlData {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tspotPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tspotPnlPct: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperpPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperpPnlPct: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalPnlPct: BigNum;\n}\n\nexport class UISerializableAllTimePnlData extends UISerializableRollingPnlData {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tspotPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tspotPnlPct: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperpPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tperpPnlPct: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalPnlQuote: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalPnlPct: BigNum;\n\n\t@autoserializeAs(Number)\n\tepochTs: number;\n}\n\nexport class UIMatchedOrderRecordAndAction {\n\t@autoserializeAs(UISerializableOrderRecord)\n\torderRecord: UISerializableOrderRecord;\n\t@autoserializeAs(UISerializableOrderActionRecord)\n\tactionRecord: UISerializableOrderActionRecord;\n}\n\nclass SerializablePnlDataPoint implements PnlHistoryDataPoint {\n\t@autoserializeAs(Number) ts: number;\n\t@autoserializeAs(Number) val: number;\n}\n\nclass SerializableLeaderBoardResultRow implements LeaderBoardResultRow {\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuser: PublicKey;\n\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tauthority: PublicKey;\n\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns)\n\tresolution: SnapshotEpochResolution;\n\n\t@autoserializeAs(Number)\n\trollingValue: number;\n\n\t@autoserializeAs(Number)\n\tsubaccountId: number;\n\n\t@autoserializeAsArray(SerializablePnlDataPoint)\n\tpnlHistoryPoints: SerializablePnlDataPoint[];\n}\n\nexport class SerializableLeaderboardResult implements LeaderboardResult {\n\t@autoserializeAs(Number) lastUpdateTs: number;\n\t@autoserializeAs(String) ordering: PnlSnapshotOrderOption;\n\t@autoserializeAsArray(SerializableLeaderBoardResultRow)\n\tresults: SerializableLeaderBoardResultRow[];\n}\n\n@inheritSerialization(SerializableLeaderBoardResultRow)\nclass UISerializableLeaderBoardResultRow extends SerializableLeaderBoardResultRow {}\n\n@inheritSerialization(SerializableLeaderboardResult)\nexport class UISerializableLeaderboardResult extends SerializableLeaderboardResult {\n\t@autoserializeAsArray(UISerializableLeaderBoardResultRow)\n\t//@ts-ignore\n\tresults: UISerializableLeaderBoardResultRow[];\n}\n\nexport class SerializableNewUserRecord implements NewUserRecord {\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuserAuthority: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(Number) userId: number;\n\t@autoserializeAsArray(Number) name: number[];\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) referrer: PublicKey;\n\t@autoserializeAs(Number) subAccountId: number;\n}\n\nexport class SerializableAccountSnapshot implements AccountSnapshot {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) authority: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(Number) epochTs: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\ttotalAccountValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeDepositQuoteValue: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeWithdrawalQuoteValue: BN;\n\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tallTimeTotalPnlPct: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tallTimeTotalPnl: BN;\n\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeReferralReward: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeReferralVolume: BN;\n\t@autoserializeAs(Number) cumulativeReferralCount: number;\n\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tcumulativeSettledPerpPnl: BN;\n}\n\nexport class UISerializableAccountSnapshot implements UIAccountSnapshot {\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) authority: PublicKey;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeAs(Number) epochTs: number;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalAccountValue: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeDepositQuoteValue: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeWithdrawalQuoteValue: BigNum;\n\n\t@autoserializeUsing(PctBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tallTimeTotalPnlPct: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tallTimeTotalPnl: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeReferralReward: BigNum;\n\t@autoserializeUsing(ReferralVolumeBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeReferralVolume: BigNum;\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tcumulativeSettledPerpPnl: BigNum;\n\n\t@autoserializeAs(Number) cumulativeReferralCount: number;\n}\n\nexport class SerializableDlobOrder {\n\t@autoserializeAs(String) user: string;\n\t@autoserializeAs(UISerializableOrder) order: UISerializableOrder;\n}\n\nexport class SerializableDlobOracleInfo {\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns) price: BigNum;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) slot: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) confidence: BN;\n\t@autoserializeAs(Boolean) hasSufficientNumberOfDataPoints: boolean;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) twap: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) twapConfidence: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) maxPrice?: BN;\n}\n\nexport class SerializableDLOBState {\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeAsArray(SerializableDlobOracleInfo)\n\toracles: SerializableDlobOracleInfo[];\n\t@autoserializeAsArray(SerializableDlobOrder) orders: SerializableDlobOrder[];\n}\n\nexport class CompetitionResultEntry {\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) wallet: PublicKey;\n\t@autoserializeAs(Number) value: number;\n\t@autoserializeAs(Number) rank: number;\n\t@autoserializeAsJson() metadata?: any;\n}\n\nexport class CompetitionResult {\n\t@autoserializeAs(String) competitionName: string;\n\t@autoserializeAs(String) lastUpdate: string;\n\t@autoserializeAs(Number) lastUpdateTs: number;\n\t@autoserializeAs(Number) startTs: number;\n\t@autoserializeAs(Number) endTs: number;\n\t@autoserializeAsArray(CompetitionResultEntry)\n\tresults: CompetitionResultEntry[];\n\t@autoserializeAs(CompetitionResultEntry)\n\trequestedAuthorityResult?: CompetitionResultEntry;\n}\n\nexport type InsuranceFundRecordEvent = Event<InsuranceFundRecord>;\n\nexport class SerializableInsuranceFundRecord\n\timplements InsuranceFundRecordEvent\n{\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeAs(Number) spotMarketIndex: number;\n\t@autoserializeAs(Number) perpMarketIndex: number;\n\t@autoserializeAs(Number) userIfFactor: number;\n\t@autoserializeAs(Number) totalIfFactor: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) vaultAmountBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tinsuranceVaultAmountBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalIfSharesBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalIfSharesAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) amount: BN;\n}\n\n@inheritSerialization(SerializableInsuranceFundRecord)\nexport class UISerializableInsuranceFundRecord extends SerializableInsuranceFundRecord {\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tvaultAmountBefore: BigNum;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tinsuranceVaultAmountBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalIfSharesBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalIfSharesAfter: BigNum;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tamount: BigNum;\n\n\tstatic onDeserialized(\n\t\t_data: JsonObject,\n\t\tinstance: UISerializableInsuranceFundRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\ttry {\n\t\t\tconst precisionToUse =\n\t\t\t\tConfig.spotMarketsLookup[instance.spotMarketIndex].precisionExp;\n\n\t\t\tinstance.vaultAmountBefore.precision = precisionToUse;\n\t\t\tinstance.insuranceVaultAmountBefore.precision = precisionToUse;\n\t\t\tinstance.amount.precision = precisionToUse;\n\t\t} catch (e) {\n\t\t\t//console.error('Error in insurance fund serializer', e);\n\t\t}\n\t}\n}\n\nexport type InsuranceFundStakeRecordEvent = Event<InsuranceFundStakeRecord>;\n\nexport class SerializableInsuranceFundStakeRecord\n\timplements InsuranceFundStakeRecordEvent\n{\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuserAuthority: PublicKey;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) action: StakeAction;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) amount: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tinsuranceVaultAmountBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifSharesBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) userIfSharesBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalIfSharesBefore: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ifSharesAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) userIfSharesAfter: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) totalIfSharesAfter: BN;\n}\n\n@inheritSerialization(SerializableInsuranceFundStakeRecord)\nexport class UISerializableInsuranceFundStakeRecord extends SerializableInsuranceFundStakeRecord {\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tamount: BigNum;\n\n\t@autoserializeUsing(MarketBasedBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tinsuranceVaultAmountBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tifSharesBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tuserIfSharesBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalIfSharesBefore: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tifSharesAfter: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tuserIfSharesAfter: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\ttotalIfSharesAfter: BigNum;\n\n\tstatic onDeserialized(\n\t\tdata: JsonObject,\n\t\tinstance: UISerializableInsuranceFundStakeRecord\n\t) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\n\t\thandleOnDeserializedPrecision(\n\t\t\tdata,\n\t\t\tinstance,\n\t\t\tgetPrecisionToUse(MarketType.SPOT, instance.marketIndex),\n\t\t\t['amount', 'insuranceVaultAmountBefore']\n\t\t);\n\t}\n}\n\nexport type LPRecordEvent = Event<LPRecord>;\n\nexport class SerializableLPRecord implements LPRecordEvent {\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns)\n\tuser: PublicKey;\n\t@autoserializeUsing(EnumSerializeAndDeserializeFns) action: LPAction;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) nShares: BN;\n\t@autoserializeAs(Number) marketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tdeltaBaseAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns)\n\tdeltaQuoteAssetAmount: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) pnl: BN;\n}\n\n@inheritSerialization(SerializableLPRecord)\nexport class UISerializableLPRecord extends SerializableLPRecord {\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tnShares: BigNum;\n\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tdeltaBaseAssetAmount: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tdeltaQuoteAssetAmount: BigNum;\n\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns)\n\t//@ts-ignore\n\tpnl: BigNum;\n}\n\n// Swap Record\nexport type SwapRecordEvent = Event<SwapRecord>;\n\nexport class SerializableSwapRecord implements SwapRecordEvent {\n\t@autoserializeAs(Number) id: number;\n\t@autoserializeAs(String) txSig: string;\n\t@autoserializeAs(Number) txSigIndex: number;\n\t@autoserializeAs(Number) slot: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) ts: BN;\n\t@autoserializeUsing(PublicKeySerializeAndDeserializeFns) user: PublicKey;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) amountOut: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) amountIn: BN;\n\t@autoserializeAs(Number) outMarketIndex: number;\n\t@autoserializeAs(Number) inMarketIndex: number;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) outOraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) inOraclePrice: BN;\n\t@autoserializeUsing(BNSerializeAndDeserializeFns) fee: BN;\n}\n\n@inheritSerialization(SerializableSwapRecord)\nexport class UISerializableSwapRecord extends SerializableSwapRecord {\n\t// @ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) amountOut: BigNum;\n\t// @ts-ignore\n\t@autoserializeUsing(QuoteBigNumSerializeAndDeserializeFns) amountIn: BigNum;\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\toutOraclePrice: BigNum;\n\t// @ts-ignore\n\t@autoserializeUsing(PriceBigNumSerializeAndDeserializeFns)\n\t// @ts-ignore\n\tinOraclePrice: BigNum;\n\t// @ts-ignore\n\t@autoserializeUsing(BaseBigNumSerializeAndDeserializeFns) fee: BigNum;\n\n\tstatic onDeserialized(_data: JsonObject, instance: UISerializableSwapRecord) {\n\t\tassert(Config.initialized, 'Common Config Not Initialised');\n\t\ttry {\n\t\t\tconst outPrecision =\n\t\t\t\tConfig.spotMarketsLookup[instance.outMarketIndex].precisionExp;\n\t\t\tconst inPrecision =\n\t\t\t\tConfig.spotMarketsLookup[instance.inMarketIndex].precisionExp;\n\n\t\t\tinstance.amountIn.precision = inPrecision;\n\t\t\tinstance.amountOut.precision = outPrecision;\n\t\t\tinstance.inOraclePrice.precision = inPrecision;\n\t\t\tinstance.outOraclePrice.precision = outPrecision;\n\t\t\tinstance.fee.precision = inPrecision;\n\t\t} catch (e) {\n\t\t\tconsole.error('Error in swap serializer', e);\n\t\t}\n\t}\n}\n\nexport function transformDataApiOrderRecordToUISerializableOrderRecord(\n\tv2Record: JsonObject\n): UISerializableOrderRecord {\n\tconst deserializedV2Record = Deserialize(\n\t\tv2Record,\n\t\tUISerializableOrderRecordV2\n\t);\n\n\tconst transformedRecord: UISerializableOrderRecord = {\n\t\teventType: 'OrderRecord',\n\t\ttxSig: deserializedV2Record.txSig,\n\t\ttxSigIndex: deserializedV2Record.txSigIndex,\n\t\tslot: deserializedV2Record.slot,\n\t\tts: deserializedV2Record.ts,\n\t\tuser: deserializedV2Record.user,\n\t\torder: {\n\t\t\tprice: deserializedV2Record.price,\n\t\t\tbaseAssetAmount: deserializedV2Record.baseAssetAmount,\n\t\t\tbaseAssetAmountFilled: deserializedV2Record.baseAssetAmountFilled,\n\t\t\tquoteAssetAmount: deserializedV2Record.quoteAssetAmount,\n\t\t\tquoteAssetAmountFilled: deserializedV2Record.quoteAssetAmountFilled,\n\t\t\ttriggerPrice: deserializedV2Record.triggerPrice,\n\t\t\toraclePriceOffset: deserializedV2Record.oraclePriceOffset,\n\t\t\tauctionStartPrice: deserializedV2Record.auctionStartPrice,\n\t\t\tauctionEndPrice: deserializedV2Record.auctionEndPrice,\n\t\t\torderType: deserializedV2Record.orderType,\n\t\t\torderId: deserializedV2Record.orderId,\n\t\t\tuserOrderId: deserializedV2Record.userOrderId,\n\t\t\tmarketIndex: deserializedV2Record.marketIndex,\n\t\t\tstatus: deserializedV2Record.status,\n\t\t\tts: deserializedV2Record.ts,\n\t\t\tdirection: deserializedV2Record.direction,\n\t\t\treduceOnly: deserializedV2Record.reduceOnly,\n\t\t\ttriggerCondition: deserializedV2Record.triggerCondition,\n\t\t\tpostOnly: deserializedV2Record.postOnly,\n\t\t\timmediateOrCancel: deserializedV2Record.immediateOrCancel,\n\t\t\texistingPositionDirection: deserializedV2Record.existingPositionDirection,\n\t\t\tauctionDuration: deserializedV2Record.auctionDuration,\n\t\t\tslot: new BN(deserializedV2Record.slot),\n\t\t\tmarketType: deserializedV2Record.marketType,\n\t\t\tmaxTs: new BN(deserializedV2Record.maxTs),\n\t\t\t// @ts-ignore\n\t\t\tbitFlags: deserializedV2Record.bitFlags,\n\t\t\t// @ts-ignore\n\t\t\tpostedSlotTail: deserializedV2Record.postedSlotTail,\n\t\t},\n\t};\n\n\treturn transformedRecord;\n}\n\nexport function transformDataApiOrderRecordToSerializableOrderRecord(\n\tv2Record: JsonObject\n): SerializableOrderRecord {\n\tconst deserializedV2Record = Deserialize(\n\t\tv2Record,\n\t\tUISerializableOrderRecordV2\n\t);\n\n\tconst transformedRecord: SerializableOrderRecord = {\n\t\teventType: 'OrderRecord',\n\t\ttxSig: deserializedV2Record.txSig,\n\t\ttxSigIndex: deserializedV2Record.txSigIndex,\n\t\tslot: deserializedV2Record.slot,\n\t\tts: deserializedV2Record.ts,\n\t\tuser: deserializedV2Record.user,\n\t\torder: {\n\t\t\tprice: deserializedV2Record.price.val,\n\t\t\tbaseAssetAmount: deserializedV2Record.baseAssetAmount.val,\n\t\t\tbaseAssetAmountFilled: deserializedV2Record.baseAssetAmountFilled.val,\n\t\t\tquoteAssetAmount: deserializedV2Record.quoteAssetAmount.val,\n\t\t\tquoteAssetAmountFilled: deserializedV2Record.quoteAssetAmountFilled.val,\n\t\t\ttriggerPrice: deserializedV2Record.triggerPrice.val,\n\t\t\toraclePriceOffset: deserializedV2Record.oraclePriceOffset.toNum(),\n\t\t\tauctionStartPrice: deserializedV2Record.auctionStartPrice.val,\n\t\t\tauctionEndPrice: deserializedV2Record.auctionEndPrice.val,\n\t\t\torderType: deserializedV2Record.orderType,\n\t\t\torderId: deserializedV2Record.orderId,\n\t\t\tuserOrderId: deserializedV2Record.userOrderId,\n\t\t\tmarketIndex: deserializedV2Record.marketIndex,\n\t\t\tstatus: deserializedV2Record.status,\n\t\t\tdirection: deserializedV2Record.direction,\n\t\t\treduceOnly: deserializedV2Record.reduceOnly,\n\t\t\ttriggerCondition: deserializedV2Record.triggerCondition,\n\t\t\tpostOnly: deserializedV2Record.postOnly,\n\t\t\timmediateOrCancel: deserializedV2Record.immediateOrCancel,\n\t\t\texistingPositionDirection: deserializedV2Record.existingPositionDirection,\n\t\t\tauctionDuration: deserializedV2Record.auctionDuration,\n\t\t\tslot: new BN(deserializedV2Record.slot),\n\t\t\tmarketType: deserializedV2Record.marketType,\n\t\t\tmaxTs: new BN(deserializedV2Record.maxTs),\n\t\t\t// @ts-ignore\n\t\t\tbitFlags: deserializedV2Record.bitFlags,\n\t\t\t// @ts-ignore\n\t\t\tpostedSlotTail: deserializedV2Record.postedSlotTail,\n\t\t},\n\t};\n\n\treturn transformedRecord;\n}\n\nexport function transformDataApiOrderActionRecordToUISerializableOrderActionRecord(\n\tv2Record: JsonObject\n): UISerializableOrderActionRecord {\n\tconst deserializedV2Record = Deserialize(\n\t\t{ ...v2Record, eventType: 'OrderActionRecord' },\n\t\tUISerializableOrderActionRecordV2\n\t);\n\n\tconst transformedRecord: UISerializableOrderActionRecord = {\n\t\t...deserializedV2Record,\n\t};\n\n\treturn transformedRecord;\n}\n\nexport function transformDataApiPositionHistoryRecordToUISerializablePositionHistoryRecord(\n\tv2Record: JsonObject\n): UISerializablePositionHistoryRecord {\n\ttry {\n\t\tconst deserializedV2Record = Deserialize(\n\t\t\t{ ...v2Record, eventType: 'PositionHistoryRecord' },\n\t\t\tUISerializablePositionHistoryRecord\n\t\t);\n\t\tconst transformedRecord: UISerializablePositionHistoryRecord = {\n\t\t\t...deserializedV2Record,\n\t\t};\n\n\t\treturn transformedRecord;\n\t} catch (e) {\n\t\tconsole.error(\n\t\t\t'Error in transformDataApiPositionHistoryRecordToUISerializablePositionHistoryRecord',\n\t\t\te\n\t\t);\n\t\tthrow e;\n\t}\n}\n\nexport function transformDataApiOrderActionRecordToSerializableOrderActionRecord(\n\tv2Record: JsonObject\n): SerializableOrderActionRecord {\n\tconst deserializedV2Record = Deserialize(\n\t\t{\n\t\t\t...v2Record,\n\t\t\teventType: 'OrderActionRecord',\n\t\t},\n\t\tUISerializableOrderActionRecordV2\n\t);\n\n\tconst transformedRecord: SerializableOrderActionRecord = {\n\t\t...deserializedV2Record,\n\t\tfillerReward: deserializedV2Record.fillerReward.val,\n\t\tmakerRebate: deserializedV2Record.makerRebate.val,\n\t\ttakerFee: deserializedV2Record.takerFee.val,\n\t\tbaseAssetAmountFilled: deserializedV2Record.baseAssetAmountFilled.val,\n\t\tquoteAssetAmountFilled: deserializedV2Record.quoteAssetAmountFilled.val,\n\t\treferrerReward: deserializedV2Record.referrerReward,\n\t\tts: new BN(deserializedV2Record.ts),\n\t\ttxSig: deserializedV2Record.txSig,\n\t\ttxSigIndex: deserializedV2Record.txSigIndex,\n\t\tquoteAssetAmountSurplus: deserializedV2Record.quoteAssetAmountSurplus.val,\n\t\ttakerOrderBaseAssetAmount:\n\t\t\tdeserializedV2Record.takerOrderBaseAssetAmount.val,\n\t\ttakerOrderCumulativeBaseAssetAmountFilled:\n\t\t\tdeserializedV2Record.takerOrderCumulativeBaseAssetAmountFilled.val,\n\t\ttakerOrderCumulativeQuoteAssetAmountFilled:\n\t\t\tdeserializedV2Record.takerOrderCumulativeQuoteAssetAmountFilled.val,\n\t\tmakerOrderBaseAssetAmount:\n\t\t\tdeserializedV2Record.makerOrderBaseAssetAmount.val,\n\t\tmakerOrderCumulativeBaseAssetAmountFilled:\n\t\t\tdeserializedV2Record.makerOrderCumulativeBaseAssetAmountFilled.val,\n\t\tmakerOrderCumulativeQuoteAssetAmountFilled:\n\t\t\tdeserializedV2Record.makerOrderCumulativeQuoteAssetAmountFilled.val,\n\t\toraclePrice: deserializedV2Record.oraclePrice.val,\n\t\tmakerFee: deserializedV2Record.makerFee.val,\n\t\tspotFulfillmentMethodFee: deserializedV2Record.spotFulfillmentMethodFee.val,\n\t\tbitFlags: deserializedV2Record.bitFlags,\n\t\ttakerExistingQuoteEntryAmount:\n\t\t\tdeserializedV2Record.takerExistingQuoteEntryAmount?.val,\n\t\ttakerExistingBaseAssetAmount:\n\t\t\tdeserializedV2Record.takerExistingBaseAssetAmount?.val,\n\t\tmakerExistingQuoteEntryAmount:\n\t\t\tdeserializedV2Record.makerExistingQuoteEntryAmount?.val,\n\t\tmakerExistingBaseAssetAmount:\n\t\t\tdeserializedV2Record.makerExistingBaseAssetAmount?.val,\n\t};\n\n\treturn transformedRecord;\n}\n\n// Serializer\nexport const Serializer = {\n\tSerialize: {\n\t\tOrder: (cls: any) => Serialize(cls, SerializableOrder),\n\t\tOrderRecord: (cls: any) => Serialize(cls, SerializableOrderRecord),\n\t\tDeposit: (cls: any) => Serialize(cls, SerializableDepositRecord),\n\t\tUIDeposit: (cls: any) => Serialize(cls, UISerializableDepositRecord),\n\t\tFundingRate: (cls: any) => Serialize(cls, SerializableFundingRateRecord),\n\t\tUIFundingRate: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableFundingRateRecord),\n\t\tFundingPayment: (cls: any) =>\n\t\t\tSerialize(cls, SerializableFundingPaymentRecord),\n\t\tUIFundingPayment: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableFundingPaymentRecord),\n\t\tLiquidation: (cls: any) => Serialize(cls, SerializableLiquidationRecord),\n\t\tUILiquidation: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableLiquidationRecord),\n\t\tUILiquidationV2: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableLiquidationRecordV2),\n\t\tSettlePnl: (cls: any) => Serialize(cls, SerializableSettlePnlRecord),\n\t\tUISettlePnl: (cls: any) => Serialize(cls, UISerializableSettlePnlRecord),\n\t\tUIOrderRecord: (cls: any) => Serialize(cls, UISerializableOrderRecord),\n\t\tUIOrderRecordV2: (cls: any) => Serialize(cls, UISerializableOrderRecordV2),\n\t\tUIOrderActionRecordV2: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableOrderActionRecordV2),\n\t\tSpotInterestRecord: (cls: any) =>\n\t\t\tSerialize(cls, SerializableSpotInterestRecord),\n\t\tCurveRecord: (cls: any) => Serialize(cls, SerializableCurveRecord),\n\t\tCandle: (cls: any) => Serialize(cls, SerializableCandle),\n\t\tUICandle: (cls: any) => Serialize(cls, UISerializableCandle),\n\t\tUIOrderActionRecord: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableOrderActionRecord),\n\t\tUIMatchedOrderAction: (cls: any) =>\n\t\t\tSerialize(cls, UIMatchedOrderRecordAndAction),\n\t\tOrderActionRecord: (cls: any) =>\n\t\t\tSerialize(cls, SerializableOrderActionRecord),\n\t\tUserSnapshot: (cls: any) => Serialize(cls, SerializableUserSnapshotRecord),\n\t\tUIUserSnapshot: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableUserSnapshotRecord),\n\t\tUserSnapshotPerpPositions: (cls: any) =>\n\t\t\tSerialize(cls, SerializableUserPerpPositionSnapshot),\n\t\tUserSnapshotSpotPositions: (cls: any) =>\n\t\t\tSerialize(cls, SerializableUserSpotPositionSnapshot),\n\t\tLeaderboardResult: (cls: any) =>\n\t\t\tSerialize(cls, SerializableLeaderboardResult),\n\t\tAccountSnapshotHistory: (cls: any) =>\n\t\t\tSerialize(cls, SerializableAccountSnapshot),\n\t\tNewUser: (cls: any) => Serialize(cls, SerializableNewUserRecord),\n\t\tDLOBState: (cls: any) => Serialize(cls, SerializableDLOBState),\n\t\tCompetitionResult: (cls: any) => Serialize(cls, CompetitionResult),\n\t\tCompetitionResultEntry: (cls: any) =>\n\t\t\tSerialize(cls, CompetitionResultEntry),\n\t\tInsuranceFundRecord: (cls: any) =>\n\t\t\tSerialize(cls, SerializableInsuranceFundRecord),\n\t\tUIInsuranceFundRecord: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableInsuranceFundRecord),\n\t\tInsuranceFundStakeRecord: (cls: any) =>\n\t\t\tSerialize(cls, SerializableInsuranceFundStakeRecord),\n\t\tUIInsuranceFundStakeRecord: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableInsuranceFundStakeRecord),\n\t\tAllTimePnlData: (cls: any) => Serialize(cls, SerializableAllTimePnlData),\n\t\tUIAllTimePnlData: (cls: any) =>\n\t\t\tSerialize(cls, UISerializableAllTimePnlData),\n\t\tLPRecord: (cls: any) => Serialize(cls, SerializableLPRecord),\n\t\tUILPRecord: (cls: any) => Serialize(cls, UISerializableLPRecord),\n\t\tSwapRecord: (cls: any) => Serialize(cls, SerializableSwapRecord),\n\t\tUISwapRecord: (cls: any) => Serialize(cls, UISerializableSwapRecord),\n\t},\n\tDeserialize: {\n\t\tOrder: (cls: JsonObject) => Deserialize(cls, SerializableOrder) as Order,\n\t\tOrderRecord: (cls: JsonObject) =>\n\t\t\t// @ts-ignore\n\t\t\tDeserialize(\n\t\t\t\tcls as JsonObject,\n\t\t\t\tSerializableOrderRecord\n\t\t\t) as OrderRecordEvent,\n\t\tUIOrder: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableOrder) as UISerializableOrder,\n\t\tUIOrderRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableOrderRecord) as UISerializableOrderRecord,\n\t\tUIOrderRecordV2: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tUISerializableOrderRecordV2\n\t\t\t) as UISerializableOrderRecordV2,\n\t\tDataApiOrderRecord: (cls: JsonObject) =>\n\t\t\ttransformDataApiOrderRecordToSerializableOrderRecord(cls),\n\t\tDataApiUIOrderRecord: (cls: JsonObject) =>\n\t\t\ttransformDataApiOrderRecordToUISerializableOrderRecord(cls),\n\t\tUIOrderActionRecordV2: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tUISerializableOrderActionRecordV2\n\t\t\t) as UISerializableOrderActionRecordV2,\n\t\tDataApiOrderActionRecord: (cls: JsonObject) =>\n\t\t\ttransformDataApiOrderActionRecordToSerializableOrderActionRecord(cls),\n\t\tDataApiUIOrderActionRecord: (cls: JsonObject) =>\n\t\t\ttransformDataApiOrderActionRecordToUISerializableOrderActionRecord(cls),\n\t\tDataApiUISerializablePositionHistoryRecord: (cls: JsonObject) =>\n\t\t\ttransformDataApiPositionHistoryRecordToUISerializablePositionHistoryRecord(\n\t\t\t\tcls\n\t\t\t),\n\t\tDeposit: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableDepositRecord) as DepositRecordEvent,\n\t\tUIDeposit: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableDepositRecord),\n\t\tFundingRate: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableFundingRateRecord) as FundingRateRecordEvent,\n\t\tUIFundingRate: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableFundingRateRecord),\n\t\tFundingPayment: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tSerializableFundingPaymentRecord\n\t\t\t) as FundingPaymentRecordEvent,\n\t\tUIFundingPayment: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableFundingPaymentRecord),\n\t\tLiquidation: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableLiquidationRecord) as LiquidationRecordEvent,\n\t\tUILiquidation: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableLiquidationRecord),\n\t\tUILiquidationV2: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableLiquidationRecordV2),\n\t\tSettlePnl: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableSettlePnlRecord) as SettlePnlRecordEvent,\n\t\tSpotInterest: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tSerializableSpotInterestRecord\n\t\t\t) as SpotInterestRecordEvent,\n\t\tCurveRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableCurveRecord) as SerializableCurveRecord,\n\t\tUISettlePnl: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableSettlePnlRecord),\n\t\tCandle: (cls: JsonObject) => Deserialize(cls, SerializableCandle),\n\t\tUICandle: (cls: JsonObject) => Deserialize(cls, UISerializableCandle),\n\t\tOrderActionRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableOrderActionRecord),\n\t\tUIOrderActionRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableOrderActionRecord),\n\t\tUIMatchedOrderAction: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UIMatchedOrderRecordAndAction),\n\t\tUserSnapshot: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableUserSnapshotRecord),\n\t\tUIUserSnapshot: (cls: JsonObject) =>\n\t\t\t// @ts-ignore\n\t\t\tDeserialize(cls, UISerializableUserSnapshotRecord),\n\t\tUserSnapshotPerpPositions: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableUserPerpPositionSnapshot),\n\t\tUserSnapshotSpotPositions: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableUserSpotPositionSnapshot),\n\t\tLeaderboardResult: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableLeaderboardResult),\n\t\tUISerializableLeaderboardResult: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableLeaderboardResult),\n\t\tUIAccountSnapshotHistory: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableAccountSnapshot),\n\t\tNewUser: (cls: JsonObject) => Deserialize(cls, SerializableNewUserRecord),\n\t\tDLOBState: (cls: JsonObject) => Deserialize(cls, SerializableDLOBState),\n\t\tCompetitionResult: (cls: JsonObject) => Deserialize(cls, CompetitionResult),\n\t\tCompetitionResultEntry: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, CompetitionResultEntry),\n\t\tInsuranceFundRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tSerializableInsuranceFundRecord\n\t\t\t) as InsuranceFundRecordEvent,\n\t\tUIInsuranceFundRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableInsuranceFundRecord),\n\t\tInsuranceFundStakeRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(\n\t\t\t\tcls,\n\t\t\t\tSerializableInsuranceFundStakeRecord\n\t\t\t) as InsuranceFundStakeRecordEvent,\n\t\tUIInsuranceFundStakeRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableInsuranceFundStakeRecord),\n\t\tAllTimePnlData: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableAllTimePnlData),\n\t\tUIAllTimePnlData: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableAllTimePnlData),\n\t\tLPRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableLPRecord) as LPRecordEvent,\n\t\tUILPRecord: (cls: JsonObject) => Deserialize(cls, UISerializableLPRecord),\n\t\tSwapRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, SerializableSwapRecord) as SwapRecordEvent,\n\t\tUISwapRecord: (cls: JsonObject) =>\n\t\t\tDeserialize(cls, UISerializableSwapRecord),\n\t},\n\tsetDeserializeFromSnakeCase: () => {\n\t\tSetDeserializeKeyTransform(SnakeCase);\n\t},\n\tsetSerializeFromSnakeCase: () => {\n\t\tSetSerializeKeyTransform(SnakeCase);\n\t},\n};\n"]}
@@ -0,0 +1,26 @@
1
+ import { MarketType } from '@drift-labs/sdk';
2
+ import { Opaque } from './utility';
3
+ export type MarketKey = Opaque<'MarketKey', string>;
4
+ export declare class MarketId {
5
+ readonly marketIndex: number;
6
+ readonly marketType: MarketType;
7
+ private static cache;
8
+ private _key;
9
+ private _isSpot;
10
+ private _isPerp;
11
+ private _marketTypeStr;
12
+ constructor(marketIndex: number, marketType: MarketType);
13
+ private static getOrCreate;
14
+ static createPerpMarket(marketIndex: number): MarketId;
15
+ static createSpotMarket(marketIndex: number): MarketId;
16
+ static getMarketIdFromKey(key: MarketKey): MarketId;
17
+ get isSpot(): boolean;
18
+ get isPerp(): boolean;
19
+ get marketTypeStr(): string;
20
+ static key(marketIndex: number, marketType: MarketType): MarketKey;
21
+ /**
22
+ * Returns a unique string that can be used as a key in a map.
23
+ */
24
+ get key(): MarketKey;
25
+ equals(other: MarketId): boolean;
26
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketId = void 0;
4
+ const sdk_1 = require("@drift-labs/sdk");
5
+ const utils_1 = require("../utils");
6
+ class MarketId {
7
+ constructor(marketIndex, marketType) {
8
+ this.marketIndex = marketIndex;
9
+ this.marketType = marketType;
10
+ this._key = MarketId.key(marketIndex, marketType);
11
+ this._isSpot = utils_1.ENUM_UTILS.match(marketType, sdk_1.MarketType.SPOT);
12
+ this._isPerp = utils_1.ENUM_UTILS.match(marketType, sdk_1.MarketType.PERP);
13
+ this._marketTypeStr = utils_1.ENUM_UTILS.toStr(marketType);
14
+ }
15
+ static getOrCreate(marketIndex, marketType) {
16
+ const key = MarketId.key(marketIndex, marketType);
17
+ if (MarketId.cache.has(key)) {
18
+ return MarketId.cache.get(key);
19
+ }
20
+ const marketId = new MarketId(marketIndex, marketType);
21
+ MarketId.cache.set(key, marketId);
22
+ return marketId;
23
+ }
24
+ static createPerpMarket(marketIndex) {
25
+ return MarketId.getOrCreate(marketIndex, sdk_1.MarketType.PERP);
26
+ }
27
+ static createSpotMarket(marketIndex) {
28
+ return MarketId.getOrCreate(marketIndex, sdk_1.MarketType.SPOT);
29
+ }
30
+ static getMarketIdFromKey(key) {
31
+ if (MarketId.cache.has(key)) {
32
+ return MarketId.cache.get(key);
33
+ }
34
+ const [marketType, marketIndex] = key.split('_');
35
+ const marketId = new MarketId(parseInt(marketIndex), utils_1.ENUM_UTILS.toObj(marketType));
36
+ MarketId.cache.set(key, marketId);
37
+ return marketId;
38
+ }
39
+ get isSpot() {
40
+ return this._isSpot;
41
+ }
42
+ get isPerp() {
43
+ return this._isPerp;
44
+ }
45
+ get marketTypeStr() {
46
+ return this._marketTypeStr;
47
+ }
48
+ static key(marketIndex, marketType) {
49
+ return `${utils_1.ENUM_UTILS.toStr(marketType)}_${marketIndex}`;
50
+ }
51
+ /**
52
+ * Returns a unique string that can be used as a key in a map.
53
+ */
54
+ get key() {
55
+ return this._key; // Micro-optimisation to avoid string concatenation every time the key is accessed
56
+ }
57
+ equals(other) {
58
+ return (utils_1.ENUM_UTILS.match(this.marketType, other.marketType) &&
59
+ this.marketIndex === other.marketIndex);
60
+ }
61
+ }
62
+ exports.MarketId = MarketId;
63
+ MarketId.cache = new Map();
64
+ //# sourceMappingURL=MarketId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketId.js","sourceRoot":"","sources":["../../src/types/MarketId.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarketType } from '@drift-labs/sdk';\nimport { ENUM_UTILS } from '../utils';\nimport { Opaque } from './utility';\n\n// Define MarketKey as an opaque type\nexport type MarketKey = Opaque<'MarketKey', string>;\n\nexport class MarketId {\n\tprivate static cache = new Map<MarketKey, MarketId>();\n\tprivate _key: MarketKey;\n\tprivate _isSpot: boolean;\n\tprivate _isPerp: boolean;\n\tprivate _marketTypeStr: string;\n\n\tconstructor(readonly marketIndex: number, readonly marketType: MarketType) {\n\t\tthis._key = MarketId.key(marketIndex, marketType);\n\t\tthis._isSpot = ENUM_UTILS.match(marketType, MarketType.SPOT);\n\t\tthis._isPerp = ENUM_UTILS.match(marketType, MarketType.PERP);\n\t\tthis._marketTypeStr = ENUM_UTILS.toStr(marketType);\n\t}\n\n\tprivate static getOrCreate(marketIndex: number, marketType: MarketType) {\n\t\tconst key = MarketId.key(marketIndex, marketType);\n\t\tif (MarketId.cache.has(key)) {\n\t\t\treturn MarketId.cache.get(key)!;\n\t\t}\n\t\tconst marketId = new MarketId(marketIndex, marketType);\n\t\tMarketId.cache.set(key, marketId);\n\t\treturn marketId;\n\t}\n\n\tstatic createPerpMarket(marketIndex: number) {\n\t\treturn MarketId.getOrCreate(marketIndex, MarketType.PERP);\n\t}\n\n\tstatic createSpotMarket(marketIndex: number) {\n\t\treturn MarketId.getOrCreate(marketIndex, MarketType.SPOT);\n\t}\n\n\tstatic getMarketIdFromKey(key: MarketKey) {\n\t\tif (MarketId.cache.has(key)) {\n\t\t\treturn MarketId.cache.get(key)!;\n\t\t}\n\t\tconst [marketType, marketIndex] = key.split('_');\n\t\tconst marketId = new MarketId(\n\t\t\tparseInt(marketIndex),\n\t\t\tENUM_UTILS.toObj(marketType)\n\t\t);\n\t\tMarketId.cache.set(key, marketId);\n\t\treturn marketId;\n\t}\n\n\tget isSpot() {\n\t\treturn this._isSpot;\n\t}\n\n\tget isPerp() {\n\t\treturn this._isPerp;\n\t}\n\n\tget marketTypeStr() {\n\t\treturn this._marketTypeStr;\n\t}\n\n\tstatic key(marketIndex: number, marketType: MarketType): MarketKey {\n\t\treturn `${ENUM_UTILS.toStr(marketType)}_${marketIndex}` as MarketKey;\n\t}\n\n\t/**\n\t * Returns a unique string that can be used as a key in a map.\n\t */\n\tget key(): MarketKey {\n\t\treturn this._key; // Micro-optimisation to avoid string concatenation every time the key is accessed\n\t}\n\n\tequals(other: MarketId) {\n\t\treturn (\n\t\t\tENUM_UTILS.match(this.marketType, other.marketType) &&\n\t\t\tthis.marketIndex === other.marketIndex\n\t\t);\n\t}\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export type LstMetrics = {
2
+ loaded: boolean;
3
+ priceInSol: number;
4
+ lstPriceApy30d: number;
5
+ emissionsApy?: number;
6
+ driftEmissions?: number;
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Superstake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Superstake.js","sourceRoot":"","sources":["../../src/types/Superstake.ts"],"names":[],"mappings":"","sourcesContent":["export type LstMetrics = {\n\tloaded: boolean;\n\tpriceInSol: number;\n\tlstPriceApy30d: number;\n\temissionsApy?: number;\n\tdriftEmissions?: number;\n};\n"]}
@@ -0,0 +1,26 @@
1
+ import { DriftEnv } from '@drift-labs/sdk';
2
+ import { Opaque } from './utility';
3
+ export type UIEnvKey = Opaque<'UIEnvKey', string>;
4
+ /**
5
+ * Utility class to handle environment configs in the Drift UI. Note that these environments don't exactly align with the SDK environment (SDK can only be mainnet or devnet, but UI can be devnet, staging, mainnet) so there is a `sdkEnv` getter utility to convert the UI env to SDK env (UI staging => SDK mainnet).
6
+ */
7
+ export declare class UIEnv {
8
+ readonly env: DriftEnv | 'staging';
9
+ constructor(env: DriftEnv | 'staging');
10
+ static createMainnet(): UIEnv;
11
+ static createDevnet(): UIEnv;
12
+ static createStaging(): UIEnv;
13
+ static getUIEnvIdFromKey(key: UIEnvKey): UIEnv;
14
+ get isMainnet(): boolean;
15
+ get isDevnet(): boolean;
16
+ get isStaging(): boolean;
17
+ /**
18
+ * Returns the SDK environment type. Note that 'staging' maps to 'mainnet-beta' for SDK purposes.
19
+ */
20
+ get sdkEnv(): DriftEnv;
21
+ /**
22
+ * Returns a unique string that can be used as a key in a map.
23
+ */
24
+ get key(): UIEnvKey;
25
+ equals(other: UIEnv): boolean;
26
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UIEnv = void 0;
4
+ /**
5
+ * Utility class to handle environment configs in the Drift UI. Note that these environments don't exactly align with the SDK environment (SDK can only be mainnet or devnet, but UI can be devnet, staging, mainnet) so there is a `sdkEnv` getter utility to convert the UI env to SDK env (UI staging => SDK mainnet).
6
+ */
7
+ class UIEnv {
8
+ constructor(env) {
9
+ this.env = env;
10
+ }
11
+ static createMainnet() {
12
+ return new UIEnv('mainnet-beta');
13
+ }
14
+ static createDevnet() {
15
+ return new UIEnv('devnet');
16
+ }
17
+ static createStaging() {
18
+ return new UIEnv('staging');
19
+ }
20
+ static getUIEnvIdFromKey(key) {
21
+ return new UIEnv(key);
22
+ }
23
+ get isMainnet() {
24
+ return this.env === 'mainnet-beta';
25
+ }
26
+ get isDevnet() {
27
+ return this.env === 'devnet';
28
+ }
29
+ get isStaging() {
30
+ return this.env === 'staging';
31
+ }
32
+ /**
33
+ * Returns the SDK environment type. Note that 'staging' maps to 'mainnet-beta' for SDK purposes.
34
+ */
35
+ get sdkEnv() {
36
+ return this.isStaging ? 'mainnet-beta' : this.env;
37
+ }
38
+ /**
39
+ * Returns a unique string that can be used as a key in a map.
40
+ */
41
+ get key() {
42
+ return this.env;
43
+ }
44
+ equals(other) {
45
+ return this.env === other.env;
46
+ }
47
+ }
48
+ exports.UIEnv = UIEnv;
49
+ //# sourceMappingURL=UIEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIEnv.js","sourceRoot":"","sources":["../../src/types/UIEnv.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACH,MAAa,KAAK;IACjB,YAAqB,GAAyB;QAAzB,QAAG,GAAH,GAAG,CAAsB;IAAG,CAAC;IAElD,MAAM,CAAC,aAAa;QACnB,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,YAAY;QAClB,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa;QACnB,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAa;QACrC,OAAO,IAAI,KAAK,CAAC,GAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,GAAG,KAAK,cAAc,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAE,IAAI,CAAC,GAAgB,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,GAAe,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAY;QAClB,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;IAC/B,CAAC;CACD;AAhDD,sBAgDC","sourcesContent":["import { DriftEnv } from '@drift-labs/sdk';\nimport { Opaque } from './utility';\n\n// Define UIEnvKey as an opaque type\nexport type UIEnvKey = Opaque<'UIEnvKey', string>;\n\n/**\n * Utility class to handle environment configs in the Drift UI. Note that these environments don't exactly align with the SDK environment (SDK can only be mainnet or devnet, but UI can be devnet, staging, mainnet) so there is a `sdkEnv` getter utility to convert the UI env to SDK env (UI staging => SDK mainnet).\n */\nexport class UIEnv {\n\tconstructor(readonly env: DriftEnv | 'staging') {}\n\n\tstatic createMainnet() {\n\t\treturn new UIEnv('mainnet-beta');\n\t}\n\n\tstatic createDevnet() {\n\t\treturn new UIEnv('devnet');\n\t}\n\n\tstatic createStaging() {\n\t\treturn new UIEnv('staging');\n\t}\n\n\tstatic getUIEnvIdFromKey(key: UIEnvKey) {\n\t\treturn new UIEnv(key as DriftEnv | 'staging');\n\t}\n\n\tget isMainnet() {\n\t\treturn this.env === 'mainnet-beta';\n\t}\n\n\tget isDevnet() {\n\t\treturn this.env === 'devnet';\n\t}\n\n\tget isStaging() {\n\t\treturn this.env === 'staging';\n\t}\n\n\t/**\n\t * Returns the SDK environment type. Note that 'staging' maps to 'mainnet-beta' for SDK purposes.\n\t */\n\tget sdkEnv(): DriftEnv {\n\t\treturn this.isStaging ? 'mainnet-beta' : (this.env as DriftEnv);\n\t}\n\n\t/**\n\t * Returns a unique string that can be used as a key in a map.\n\t */\n\tget key() {\n\t\treturn this.env as UIEnvKey;\n\t}\n\n\tequals(other: UIEnv) {\n\t\treturn this.env === other.env;\n\t}\n}\n"]}