@d8x/perpetuals-sdk 2.0.13-alpha → 2.1.1-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/cjs/abi/IPerpetualManager.json +154 -4
  2. package/dist/cjs/abi/OracleFactory.json +94 -25
  3. package/dist/cjs/abi/PerpetualManagerProxy.json +212 -2
  4. package/dist/cjs/accountTrade.d.ts +3 -3
  5. package/dist/cjs/accountTrade.js +1 -1
  6. package/dist/cjs/accountTrade.js.map +1 -1
  7. package/dist/cjs/brokerTool.d.ts +5 -1
  8. package/dist/cjs/brokerTool.js +20 -7
  9. package/dist/cjs/brokerTool.js.map +1 -1
  10. package/dist/cjs/config/defaultConfig.json +0 -12
  11. package/dist/cjs/config/priceFeedConfig.json +1 -19
  12. package/dist/cjs/constants.d.ts +0 -1
  13. package/dist/cjs/constants.js +2 -3
  14. package/dist/cjs/constants.js.map +1 -1
  15. package/dist/cjs/contracts/IPerpetualManager.d.ts +93 -13
  16. package/dist/cjs/contracts/OracleFactory.d.ts +69 -20
  17. package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +109 -4
  18. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +118 -4
  19. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +154 -4
  20. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  21. package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +75 -20
  22. package/dist/cjs/contracts/factories/OracleFactory__factory.js +94 -25
  23. package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
  24. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +159 -2
  25. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +212 -2
  26. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  27. package/dist/cjs/d8XMath.d.ts +59 -1
  28. package/dist/cjs/d8XMath.js +259 -3
  29. package/dist/cjs/d8XMath.js.map +1 -1
  30. package/dist/cjs/liquidatorTool.d.ts +1 -0
  31. package/dist/cjs/liquidatorTool.js +24 -7
  32. package/dist/cjs/liquidatorTool.js.map +1 -1
  33. package/dist/cjs/marketData.d.ts +45 -23
  34. package/dist/cjs/marketData.js +292 -197
  35. package/dist/cjs/marketData.js.map +1 -1
  36. package/dist/cjs/nodeSDKTypes.d.ts +24 -1
  37. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  38. package/dist/cjs/orderExecutorTool.d.ts +3 -3
  39. package/dist/cjs/orderExecutorTool.js +38 -13
  40. package/dist/cjs/orderExecutorTool.js.map +1 -1
  41. package/dist/cjs/perpetualDataHandler.d.ts +28 -17
  42. package/dist/cjs/perpetualDataHandler.js +71 -45
  43. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  44. package/dist/cjs/perpetualEventHandler.d.ts +1 -1
  45. package/dist/cjs/perpetualEventHandler.js +6 -7
  46. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  47. package/dist/cjs/polyMktsPxFeed.d.ts +5 -3
  48. package/dist/cjs/polyMktsPxFeed.js +34 -2
  49. package/dist/cjs/polyMktsPxFeed.js.map +1 -1
  50. package/dist/cjs/priceFeeds.d.ts +6 -7
  51. package/dist/cjs/priceFeeds.js +36 -14
  52. package/dist/cjs/priceFeeds.js.map +1 -1
  53. package/dist/cjs/version.d.ts +1 -1
  54. package/dist/cjs/version.js +1 -1
  55. package/dist/cjs/writeAccessHandler.js +1 -1
  56. package/dist/cjs/writeAccessHandler.js.map +1 -1
  57. package/dist/esm/abi/IPerpetualManager.json +154 -4
  58. package/dist/esm/abi/OracleFactory.json +94 -25
  59. package/dist/esm/abi/PerpetualManagerProxy.json +212 -2
  60. package/dist/esm/accountTrade.d.ts +3 -3
  61. package/dist/esm/accountTrade.js +1 -1
  62. package/dist/esm/accountTrade.js.map +1 -1
  63. package/dist/esm/brokerTool.d.ts +5 -1
  64. package/dist/esm/brokerTool.js +21 -8
  65. package/dist/esm/brokerTool.js.map +1 -1
  66. package/dist/esm/config/defaultConfig.json +0 -12
  67. package/dist/esm/config/priceFeedConfig.json +1 -19
  68. package/dist/esm/constants.d.ts +0 -1
  69. package/dist/esm/constants.js +1 -2
  70. package/dist/esm/constants.js.map +1 -1
  71. package/dist/esm/contracts/IPerpetualManager.d.ts +93 -13
  72. package/dist/esm/contracts/OracleFactory.d.ts +69 -20
  73. package/dist/esm/contracts/PerpetualManagerProxy.d.ts +109 -4
  74. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +118 -4
  75. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +154 -4
  76. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  77. package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +75 -20
  78. package/dist/esm/contracts/factories/OracleFactory__factory.js +94 -25
  79. package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
  80. package/dist/{cjs/contracts/factories/MockToken__factory.d.ts → esm/contracts/factories/PerpStorage__factory.d.ts} +115 -128
  81. package/dist/esm/contracts/factories/{MockToken__factory.js → PerpStorage__factory.js} +128 -139
  82. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +1 -0
  83. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +159 -2
  84. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +212 -2
  85. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  86. package/dist/esm/d8XMath.d.ts +59 -1
  87. package/dist/esm/d8XMath.js +251 -2
  88. package/dist/esm/d8XMath.js.map +1 -1
  89. package/dist/esm/liquidatorTool.d.ts +1 -0
  90. package/dist/esm/liquidatorTool.js +25 -8
  91. package/dist/esm/liquidatorTool.js.map +1 -1
  92. package/dist/esm/marketData.d.ts +45 -23
  93. package/dist/esm/marketData.js +295 -200
  94. package/dist/esm/marketData.js.map +1 -1
  95. package/dist/esm/nodeSDKTypes.d.ts +24 -1
  96. package/dist/esm/nodeSDKTypes.js.map +1 -1
  97. package/dist/esm/orderExecutorTool.d.ts +3 -3
  98. package/dist/esm/orderExecutorTool.js +38 -13
  99. package/dist/esm/orderExecutorTool.js.map +1 -1
  100. package/dist/esm/perpetualDataHandler.d.ts +28 -17
  101. package/dist/esm/perpetualDataHandler.js +74 -48
  102. package/dist/esm/perpetualDataHandler.js.map +1 -1
  103. package/dist/esm/perpetualEventHandler.d.ts +1 -1
  104. package/dist/esm/perpetualEventHandler.js +6 -7
  105. package/dist/esm/perpetualEventHandler.js.map +1 -1
  106. package/dist/esm/polyMktsPxFeed.d.ts +5 -3
  107. package/dist/esm/polyMktsPxFeed.js +34 -2
  108. package/dist/esm/polyMktsPxFeed.js.map +1 -1
  109. package/dist/esm/priceFeeds.d.ts +6 -7
  110. package/dist/esm/priceFeeds.js +36 -14
  111. package/dist/esm/priceFeeds.js.map +1 -1
  112. package/dist/esm/version.d.ts +1 -1
  113. package/dist/esm/version.js +1 -1
  114. package/dist/esm/writeAccessHandler.js +3 -3
  115. package/dist/esm/writeAccessHandler.js.map +1 -1
  116. package/doc/brokerTool.md +3 -1
  117. package/doc/d8x-perpetuals-sdk.md +804 -132
  118. package/doc/marketData.md +813 -0
  119. package/doc/perpetualDataHandler.md +76 -7
  120. package/package.json +1 -1
  121. package/src/abi/IPerpetualManager.json +154 -4
  122. package/src/abi/OracleFactory.json +523 -454
  123. package/src/abi/PerpetualManagerProxy.json +1596 -1386
  124. package/src/accountTrade.ts +3 -3
  125. package/src/brokerTool.ts +22 -8
  126. package/src/config/defaultConfig.json +0 -13
  127. package/src/config/priceFeedConfig.json +1 -19
  128. package/src/constants.ts +1 -2
  129. package/src/contracts/IPerpetualManager.ts +140 -10
  130. package/src/contracts/OracleFactory.ts +100 -26
  131. package/src/contracts/PerpetualManagerProxy.ts +192 -3
  132. package/src/contracts/factories/IPerpetualManager__factory.ts +154 -4
  133. package/src/contracts/factories/OracleFactory__factory.ts +94 -25
  134. package/src/contracts/factories/PerpetualManagerProxy__factory.ts +212 -2
  135. package/src/d8XMath.ts +327 -2
  136. package/src/liquidatorTool.ts +29 -14
  137. package/src/marketData.ts +448 -250
  138. package/src/nodeSDKTypes.ts +30 -1
  139. package/src/orderExecutorTool.ts +48 -20
  140. package/src/perpetualDataHandler.ts +108 -55
  141. package/src/perpetualEventHandler.ts +6 -7
  142. package/src/polyMktsPxFeed.ts +40 -4
  143. package/src/priceFeeds.ts +41 -17
  144. package/src/version.ts +1 -1
  145. package/src/writeAccessHandler.ts +2 -2
  146. package/dist/cjs/abi/BeaconProxy.json +0 -71
  147. package/dist/cjs/abi/Maintainer.json +0 -774
  148. package/dist/cjs/abi/MockToken.json +0 -347
  149. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  150. package/dist/cjs/abi/WeETH.json +0 -310
  151. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  152. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  153. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  154. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  155. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  156. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  157. package/dist/cjs/contracts/Maintainer.js +0 -3
  158. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  159. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  160. package/dist/cjs/contracts/MockToken.js +0 -3
  161. package/dist/cjs/contracts/MockToken.js.map +0 -1
  162. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  163. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  164. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  165. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  166. package/dist/cjs/contracts/WeETH.js +0 -3
  167. package/dist/cjs/contracts/WeETH.js.map +0 -1
  168. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  169. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  170. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  171. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  172. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  173. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  174. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  175. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  176. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  177. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  178. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  179. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  180. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  181. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  182. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  183. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  184. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  185. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  186. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  187. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  188. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  189. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  190. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  191. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  192. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  193. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  194. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  195. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  196. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  197. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  198. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  199. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  200. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  201. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  202. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  203. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  204. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  205. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  206. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  207. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  208. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  209. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  210. package/dist/cjs/contracts/lean0/index.js +0 -3
  211. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  212. package/dist/esm/abi/BeaconProxy.json +0 -71
  213. package/dist/esm/abi/Maintainer.json +0 -774
  214. package/dist/esm/abi/MockToken.json +0 -347
  215. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  216. package/dist/esm/abi/WeETH.json +0 -310
  217. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  218. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  219. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  220. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  221. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  222. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  223. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  224. package/dist/esm/contracts/BeaconProxy.js +0 -2
  225. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  226. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  227. package/dist/esm/contracts/Maintainer.js +0 -2
  228. package/dist/esm/contracts/Maintainer.js.map +0 -1
  229. package/dist/esm/contracts/MockToken.d.ts +0 -263
  230. package/dist/esm/contracts/MockToken.js +0 -2
  231. package/dist/esm/contracts/MockToken.js.map +0 -1
  232. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  233. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  234. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  235. package/dist/esm/contracts/WeETH.d.ts +0 -503
  236. package/dist/esm/contracts/WeETH.js +0 -2
  237. package/dist/esm/contracts/WeETH.js.map +0 -1
  238. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  239. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  240. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  241. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  242. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  243. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  244. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  245. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  246. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  247. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  248. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  249. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  250. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  251. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  252. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  253. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  254. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  255. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  256. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  257. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  258. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  259. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  260. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  261. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  262. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  263. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  264. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  265. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  266. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  267. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  268. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  269. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  270. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  271. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  272. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  273. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  274. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  275. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  276. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  277. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  278. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  279. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  280. package/dist/esm/contracts/lean0/index.js +0 -2
  281. package/dist/esm/contracts/lean0/index.js.map +0 -1
  282. package/src/abi-zkevm/IPerpetualManager.json +0 -5366
@@ -67,6 +67,9 @@ Send event variables to event handler &quot;on<EventName>&quot; - this updates m
67
67
  <li>[x] async onUpdateMarginAccount : emitted on proxy; updates position data and open interest</li>
68
68
  <li>[x] onTrade : emitted on proxy; returns TradeEvent to be displayed</li>
69
69
  </ul></dd>
70
+ <dt><a href="#PolyMktsPxFeed">PolyMktsPxFeed</a></dt>
71
+ <dd><p>PolyMktsPxFeed gets prices from the official polymarket api
72
+ and applies the 1+px transformation</p></dd>
70
73
  <dt><a href="#PriceFeeds">PriceFeeds</a></dt>
71
74
  <dd><p>This class communicates with the REST API that provides price-data that is
72
75
  to be submitted to the smart contracts for certain functions such as
@@ -99,6 +102,26 @@ require gas-payments.</p></dd>
99
102
  on-chain</p></dd>
100
103
  </dl>
101
104
 
105
+ ## Constants
106
+
107
+ <dl>
108
+ <dt><a href="#referralDomain">referralDomain</a></dt>
109
+ <dd><p>LiquidityPoolData corresponding to the data in the smart contract</p></dd>
110
+ </dl>
111
+
112
+ ## Typedefs
113
+
114
+ <dl>
115
+ <dt><a href="#ExchangeInfo">ExchangeInfo</a> : <code>Object</code></dt>
116
+ <dd></dd>
117
+ <dt><a href="#PoolState">PoolState</a> : <code>Object</code></dt>
118
+ <dd></dd>
119
+ <dt><a href="#SmartContractOrder">SmartContractOrder</a> : <code>Object</code></dt>
120
+ <dd></dd>
121
+ <dt><a href="#ClientOrder">ClientOrder</a> : <code>Object</code></dt>
122
+ <dd></dd>
123
+ </dl>
124
+
102
125
  <a name="module_d8xMath"></a>
103
126
 
104
127
  ## d8xMath
@@ -108,19 +131,29 @@ on-chain</p></dd>
108
131
  * [~ABK64x64ToFloat(x)](#module_d8xMath..ABK64x64ToFloat) ⇒ <code>number</code>
109
132
  * [~decNToFloat(x)](#module_d8xMath..decNToFloat) ⇒ <code>number</code>
110
133
  * [~dec18ToFloat(x)](#module_d8xMath..dec18ToFloat) ⇒ <code>number</code>
111
- * [~floatToABK64x64(x)](#module_d8xMath..floatToABK64x64) ⇒ <code>BigNumber</code>
134
+ * [~floatToABK64x64(x)](#module_d8xMath..floatToABK64x64) ⇒ <code>bigint</code>
112
135
  * [~floatToDec18(x)](#module_d8xMath..floatToDec18) ⇒ <code>BigNumber</code>
113
136
  * [~floatToDecN(x, decimals)](#module_d8xMath..floatToDecN) ⇒ <code>BigNumber</code>
114
137
  * [~countDecimalsOf(x, precision)](#module_d8xMath..countDecimalsOf) ⇒
115
138
  * [~roundToLotString(x, lot, precision)](#module_d8xMath..roundToLotString) ⇒
116
- * [~mul64x64(x, y)](#module_d8xMath..mul64x64) ⇒ <code>BigNumber</code>
117
- * [~div64x64(x, y)](#module_d8xMath..div64x64) ⇒ <code>BigNumber</code>
139
+ * [~mul64x64(x, y)](#module_d8xMath..mul64x64) ⇒ <code>bigint</code>
140
+ * [~div64x64(x, y)](#module_d8xMath..div64x64) ⇒ <code>bigint</code>
118
141
  * [~calculateLiquidationPriceCollateralBase(LockedInValueQC, position, cash_cc, maintenance_margin_rate, S3)](#module_d8xMath..calculateLiquidationPriceCollateralBase) ⇒ <code>number</code>
119
142
  * [~calculateLiquidationPriceCollateralQuanto(LockedInValueQC, position, cash_cc, maintenance_margin_rate, S3, Sm)](#module_d8xMath..calculateLiquidationPriceCollateralQuanto) ⇒ <code>number</code>
120
143
  * [~calculateLiquidationPriceCollateralQuote(LockedInValueQC, position, cash_cc, maintenance_margin_rate, S3)](#module_d8xMath..calculateLiquidationPriceCollateralQuote) ⇒ <code>number</code>
121
144
  * [~getMarginRequiredForLeveragedTrade(targetLeverage, currentPosition, currentLockedInValue, tradeAmount, markPrice, indexPriceS2, indexPriceS3, tradePrice, feeRate)](#module_d8xMath..getMarginRequiredForLeveragedTrade) ⇒ <code>number</code>
122
145
  * [~getNewPositionLeverage(tradeAmount, marginCollateral, currentPosition, currentLockedInValue, price, indexPriceS3, markPrice)](#module_d8xMath..getNewPositionLeverage) ⇒
123
- * [~getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark)](#module_d8xMath..getDepositAmountForLvgTrade) ⇒ <code>number</code>
146
+ * [~getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark, isPredMkt)](#module_d8xMath..getDepositAmountForLvgTrade) ⇒ <code>number</code>
147
+ * [~priceToProb(px)](#module_d8xMath..priceToProb) ⇒
148
+ * [~probToPrice(prob)](#module_d8xMath..probToPrice) ⇒
149
+ * [~pmMarginThresh(pos, s2, s3, m)](#module_d8xMath..pmMarginThresh) ⇒
150
+ * [~pmMaintenanceMarginRate(posSign, sm, m)](#module_d8xMath..pmMaintenanceMarginRate) ⇒
151
+ * [~pmInitialMarginRate(posSign, sm, m)](#module_d8xMath..pmInitialMarginRate) ⇒
152
+ * [~expectedLoss(p, m, totLong, totShort, tradeAmt, tradeMgnRate)](#module_d8xMath..expectedLoss)
153
+ * [~pmExchangeFee(prob, m, totShort, totLong, tradeAmt, tradeMgnRate)](#module_d8xMath..pmExchangeFee) ⇒
154
+ * [~pmMarginBalance(pos, s2, s3, ell, mc)](#module_d8xMath..pmMarginBalance) ⇒
155
+ * [~excessMargin(tradeAmt, currentCashCC, currentPos, currentLockedInQC, limitPrice, Sm, S3, totLong, totShort)](#module_d8xMath..excessMargin) ⇒
156
+ * [~pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedInValue, limitPrice, Sm, S3, totLong, totShort, maxShort, maxLong)](#module_d8xMath..pmFindMaxTradeSize) ⇒
124
157
 
125
158
  <a name="module_d8xMath..ABDK29ToFloat"></a>
126
159
 
@@ -171,11 +204,11 @@ Result = x/2^64 if big number, x/2^29 if number</p>
171
204
 
172
205
  <a name="module_d8xMath..floatToABK64x64"></a>
173
206
 
174
- ### d8xMath~floatToABK64x64(x) ⇒ <code>BigNumber</code>
207
+ ### d8xMath~floatToABK64x64(x) ⇒ <code>bigint</code>
175
208
  <p>Converts x into ABDK64x64 format</p>
176
209
 
177
210
  **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
178
- **Returns**: <code>BigNumber</code> - <p>x^64 in big number format</p>
211
+ **Returns**: <code>bigint</code> - <p>x^64 in big number format</p>
179
212
 
180
213
  | Param | Type | Description |
181
214
  | --- | --- | --- |
@@ -232,25 +265,25 @@ to for this lot-size</p>
232
265
 
233
266
  <a name="module_d8xMath..mul64x64"></a>
234
267
 
235
- ### d8xMath~mul64x64(x, y) ⇒ <code>BigNumber</code>
268
+ ### d8xMath~mul64x64(x, y) ⇒ <code>bigint</code>
236
269
  **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
237
- **Returns**: <code>BigNumber</code> - <p>x * y</p>
270
+ **Returns**: <code>bigint</code> - <p>x * y</p>
238
271
 
239
272
  | Param | Type |
240
273
  | --- | --- |
241
- | x | <code>BigNumber</code> |
242
- | y | <code>BigNumber</code> |
274
+ | x | <code>bigint</code> |
275
+ | y | <code>bigint</code> |
243
276
 
244
277
  <a name="module_d8xMath..div64x64"></a>
245
278
 
246
- ### d8xMath~div64x64(x, y) ⇒ <code>BigNumber</code>
279
+ ### d8xMath~div64x64(x, y) ⇒ <code>bigint</code>
247
280
  **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
248
- **Returns**: <code>BigNumber</code> - <p>x / y</p>
281
+ **Returns**: <code>bigint</code> - <p>x / y</p>
249
282
 
250
283
  | Param | Type |
251
284
  | --- | --- |
252
- | x | <code>BigNumber</code> |
253
- | y | <code>BigNumber</code> |
285
+ | x | <code>bigint</code> |
286
+ | y | <code>bigint</code> |
254
287
 
255
288
  <a name="module_d8xMath..calculateLiquidationPriceCollateralBase"></a>
256
289
 
@@ -339,7 +372,7 @@ to for this lot-size</p>
339
372
 
340
373
  <a name="module_d8xMath..getDepositAmountForLvgTrade"></a>
341
374
 
342
- ### d8xMath~getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark) ⇒ <code>number</code>
375
+ ### d8xMath~getDepositAmountForLvgTrade(pos0, b0, tradeAmnt, targetLvg, price, S3, S2Mark, isPredMkt) ⇒ <code>number</code>
343
376
  <p>Determine amount to be deposited into margin account so that the given leverage
344
377
  is obtained when trading a position pos (trade amount = position)
345
378
  Does NOT include fees
@@ -357,6 +390,169 @@ Smart contract equivalent: calcMarginForTargetLeverage(..., _ignorePosBalance =
357
390
  | price | <code>number</code> | <p>price to trade amount 'tradeAmnt'</p> |
358
391
  | S3 | <code>number</code> | <p>collateral to quote conversion (=S2 if base-collateral, =1 if quote collateral, = index S3 if quanto)</p> |
359
392
  | S2Mark | <code>number</code> | <p>mark price</p> |
393
+ | isPredMkt | <code>boolean</code> | <p>true if prediction market</p> |
394
+
395
+ <a name="module_d8xMath..priceToProb"></a>
396
+
397
+ ### d8xMath~priceToProb(px) ⇒
398
+ <p>Convert a perpetual price to probability (predtictive markets)</p>
399
+
400
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
401
+ **Returns**: <p>Probability in [0,1]</p>
402
+
403
+ | Param | Description |
404
+ | --- | --- |
405
+ | px | <p>Perpetual price</p> |
406
+
407
+ <a name="module_d8xMath..probToPrice"></a>
408
+
409
+ ### d8xMath~probToPrice(prob) ⇒
410
+ <p>Convert a probability to a predictive market price</p>
411
+
412
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
413
+ **Returns**: <p>Perpetual price</p>
414
+
415
+ | Param | Description |
416
+ | --- | --- |
417
+ | prob | <p>Probability in [0,1]</p> |
418
+
419
+ <a name="module_d8xMath..pmMarginThresh"></a>
420
+
421
+ ### d8xMath~pmMarginThresh(pos, s2, s3, m) ⇒
422
+ <p>Maintenance margin requirement for prediction markets</p>
423
+
424
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
425
+ **Returns**: <p>required margin balance</p>
426
+
427
+ | Param | Default | Description |
428
+ | --- | --- | --- |
429
+ | pos | | <p>signed position</p> |
430
+ | s2 | | <p>mark price</p> |
431
+ | s3 | | <p>collateral to quote conversion</p> |
432
+ | m | <code>0.18</code> | <p>base margin rate</p> |
433
+
434
+ <a name="module_d8xMath..pmMaintenanceMarginRate"></a>
435
+
436
+ ### d8xMath~pmMaintenanceMarginRate(posSign, sm, m) ⇒
437
+ <p>Maintenance margin rate for prediction markets.</p>
438
+
439
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
440
+ **Returns**: <p>margin rate to be applied (Math.abs(pos) * p * tau) / s3;</p>
441
+
442
+ | Param | Default | Description |
443
+ | --- | --- | --- |
444
+ | posSign | | <p>sign of position in base currency (can be signed position or -1, 1)</p> |
445
+ | sm | | <p>mark-price (=1+p)</p> |
446
+ | m | <code>0.18</code> | <p>max margin rate from fInitialMarginRate</p> |
447
+
448
+ <a name="module_d8xMath..pmInitialMarginRate"></a>
449
+
450
+ ### d8xMath~pmInitialMarginRate(posSign, sm, m) ⇒
451
+ <p>Maintenance margin rate for prediction markets.</p>
452
+
453
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
454
+ **Returns**: <p>margin rate to be applied (Math.abs(pos) * p * tau) / s3;</p>
455
+
456
+ | Param | Default | Description |
457
+ | --- | --- | --- |
458
+ | posSign | | <p>sign of position in base currency (can be signed position or -1, 1)</p> |
459
+ | sm | | <p>mark-price (=1+p)</p> |
460
+ | m | <code>0.2</code> | <p>max margin rate from fMaintenanceMarginRate</p> |
461
+
462
+ <a name="module_d8xMath..expectedLoss"></a>
463
+
464
+ ### d8xMath~expectedLoss(p, m, totLong, totShort, tradeAmt, tradeMgnRate)
465
+ <p>Calculate the expected loss for a prediction market trade used for
466
+ prediction market fees</p>
467
+
468
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
469
+
470
+ | Param | Description |
471
+ | --- | --- |
472
+ | p | <p>probability derived from mark price (long)</p> |
473
+ | m | <p>maximal maintenance rate from which we defer the actual maintenance margin rate</p> |
474
+ | totLong | <p>total long in base currency</p> |
475
+ | totShort | <p>total short</p> |
476
+ | tradeAmt | <p>signed trade amount, can be zero</p> |
477
+ | tradeMgnRate | <p>margin rate of the trader</p> |
478
+
479
+ <a name="module_d8xMath..pmExchangeFee"></a>
480
+
481
+ ### d8xMath~pmExchangeFee(prob, m, totShort, totLong, tradeAmt, tradeMgnRate) ⇒
482
+ <p>Exchange fee as a rate for prediction markets</p>
483
+
484
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
485
+ **Returns**: <p>fee relative to tradeAmt</p>
486
+
487
+ | Param | Description |
488
+ | --- | --- |
489
+ | prob | <p>long probability</p> |
490
+ | m | <p>max maintenance margin rate (0.18)</p> |
491
+ | totShort | |
492
+ | totLong | |
493
+ | tradeAmt | <p>trade amount in base currency</p> |
494
+ | tradeMgnRate | <p>margin rate for this trade</p> |
495
+
496
+ <a name="module_d8xMath..pmMarginBalance"></a>
497
+
498
+ ### d8xMath~pmMarginBalance(pos, s2, s3, ell, mc) ⇒
499
+ <p>Margin balance for prediction markets</p>
500
+
501
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
502
+ **Returns**: <p>current margin balance</p>
503
+
504
+ | Param | Description |
505
+ | --- | --- |
506
+ | pos | <p>signed position</p> |
507
+ | s2 | <p>mark price</p> |
508
+ | s3 | <p>collateral to quote conversion</p> |
509
+ | ell | <p>locked in value</p> |
510
+ | mc | <p>margin cash in collateral currency</p> |
511
+
512
+ <a name="module_d8xMath..excessMargin"></a>
513
+
514
+ ### d8xMath~excessMargin(tradeAmt, currentCashCC, currentPos, currentLockedInQC, limitPrice, Sm, S3, totLong, totShort) ⇒
515
+ <p>Calculate the excess margin defined as
516
+ excess := margin balance - trading fee - initial margin threshold
517
+ for the given trade and position</p>
518
+
519
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
520
+ **Returns**: <p>excess margin as defined above</p>
521
+
522
+ | Param |
523
+ | --- |
524
+ | tradeAmt |
525
+ | currentCashCC |
526
+ | currentPos |
527
+ | currentLockedInQC |
528
+ | limitPrice |
529
+ | Sm |
530
+ | S3 |
531
+ | totLong |
532
+ | totShort |
533
+
534
+ <a name="module_d8xMath..pmFindMaxTradeSize"></a>
535
+
536
+ ### d8xMath~pmFindMaxTradeSize(dir, currentPosition, currentCashCC, currentLockedInValue, limitPrice, Sm, S3, totLong, totShort, maxShort, maxLong) ⇒
537
+ <p>Find maximal trade size (short dir=-1 or long dir=1) for prediction
538
+ markets.</p>
539
+
540
+ **Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
541
+ **Returns**: <p>signed max trade size</p>
542
+
543
+ | Param |
544
+ | --- |
545
+ | dir |
546
+ | currentPosition |
547
+ | currentCashCC |
548
+ | currentLockedInValue |
549
+ | limitPrice |
550
+ | Sm |
551
+ | S3 |
552
+ | totLong |
553
+ | totShort |
554
+ | maxShort |
555
+ | maxLong |
360
556
 
361
557
  <a name="module_utils"></a>
362
558
 
@@ -485,6 +681,7 @@ require gas-payments.</p>
485
681
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
486
682
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
487
683
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
684
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
488
685
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
489
686
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
490
687
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -509,6 +706,7 @@ require gas-payments.</p>
509
706
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
510
707
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
511
708
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
709
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
512
710
 
513
711
  <a name="new_AccountTrade_new"></a>
514
712
 
@@ -766,7 +964,7 @@ about perpetual currencies</p>
766
964
 
767
965
  **Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
768
966
  **Overrides**: [<code>setAllowance</code>](#WriteAccessHandler+setAllowance)
769
- **Returns**: <p>ContractTransaction</p>
967
+ **Returns**: <p>Contract Transaction</p>
770
968
 
771
969
  | Param | Description |
772
970
  | --- | --- |
@@ -809,6 +1007,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
809
1007
  | --- | --- |
810
1008
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
811
1009
 
1010
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
1011
+
1012
+ ### accountTrade.getOrderBookAddress(symbol) ⇒
1013
+ <p>Returns the order-book contract for the symbol if found or fails</p>
1014
+
1015
+ **Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
1016
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
1017
+ **Returns**: <p>order book contract for the perpetual</p>
1018
+
1019
+ | Param | Description |
1020
+ | --- | --- |
1021
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
1022
+
812
1023
  <a name="PerpetualDataHandler+getPerpetuals"></a>
813
1024
 
814
1025
  ### accountTrade.getPerpetuals(ids, overrides) ⇒
@@ -1166,6 +1377,19 @@ main();
1166
1377
  | --- | --- |
1167
1378
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
1168
1379
 
1380
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
1381
+
1382
+ ### accountTrade.isPredictionMarket(symbol) ⇒
1383
+ <p>Determines whether a given perpetual represents a prediction market</p>
1384
+
1385
+ **Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
1386
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
1387
+ **Returns**: <p>True if this is a prediction market</p>
1388
+
1389
+ | Param | Description |
1390
+ | --- | --- |
1391
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
1392
+
1169
1393
  <a name="BrokerTool"></a>
1170
1394
 
1171
1395
  ## BrokerTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
@@ -1195,6 +1419,7 @@ require gas-payments.</p>
1195
1419
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
1196
1420
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
1197
1421
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
1422
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
1198
1423
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
1199
1424
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
1200
1425
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -1219,6 +1444,7 @@ require gas-payments.</p>
1219
1444
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
1220
1445
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
1221
1446
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
1447
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
1222
1448
 
1223
1449
  <a name="new_BrokerTool_new"></a>
1224
1450
 
@@ -1372,10 +1598,12 @@ main();
1372
1598
  ### brokerTool.determineExchangeFee(order, traderAddr) ⇒ <code>number</code>
1373
1599
  <p>Determine exchange fee based on an order and a trader.
1374
1600
  This is the fee charged by the exchange only, excluding the white-label partner fee,
1375
- and it takes into account whether the order given here has been signed by a white-label partner or not.
1601
+ For regular perpetuals, the result takes into account whether the order given here has been
1602
+ signed by a white-label partner or not.
1376
1603
  Use this, for instance, to verify that the fee to be charged for a given order is as expected,
1377
1604
  before and after signing it with brokerTool.signOrder.
1378
1605
  This fee is equal or lower than the white-label partner induced fee, provided the order is properly signed.</p>
1606
+ <p>For prediction markets, the correct fee is to be applied as tradeamt * fee/s3.</p>
1379
1607
 
1380
1608
  **Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
1381
1609
  **Returns**: <code>number</code> - <p>Fee in decimals (i.e. 0.1% is 0.001).</p>
@@ -1577,7 +1805,7 @@ to be routed through this white-label partner and benefits from the white-label
1577
1805
 
1578
1806
  | Param | Type | Description |
1579
1807
  | --- | --- | --- |
1580
- | scOrder | <code>SmartContractOrder</code> | <p>Order to sign. It must contain valid white-label partner fee, white-label partner address, and order deadline.</p> |
1808
+ | scOrder | [<code>SmartContractOrder</code>](#SmartContractOrder) | <p>Order to sign. It must contain valid white-label partner fee, white-label partner address, and order deadline.</p> |
1581
1809
  | traderAddr | <code>string</code> | <p>Address of trader submitting the order.</p> |
1582
1810
 
1583
1811
  **Example**
@@ -1658,7 +1886,7 @@ about perpetual currencies</p>
1658
1886
 
1659
1887
  **Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
1660
1888
  **Overrides**: [<code>setAllowance</code>](#WriteAccessHandler+setAllowance)
1661
- **Returns**: <p>ContractTransaction</p>
1889
+ **Returns**: <p>Contract Transaction</p>
1662
1890
 
1663
1891
  | Param | Description |
1664
1892
  | --- | --- |
@@ -1701,6 +1929,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
1701
1929
  | --- | --- |
1702
1930
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
1703
1931
 
1932
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
1933
+
1934
+ ### brokerTool.getOrderBookAddress(symbol) ⇒
1935
+ <p>Returns the order-book contract for the symbol if found or fails</p>
1936
+
1937
+ **Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
1938
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
1939
+ **Returns**: <p>order book contract for the perpetual</p>
1940
+
1941
+ | Param | Description |
1942
+ | --- | --- |
1943
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
1944
+
1704
1945
  <a name="PerpetualDataHandler+getPerpetuals"></a>
1705
1946
 
1706
1947
  ### brokerTool.getPerpetuals(ids, overrides) ⇒
@@ -2058,6 +2299,19 @@ main();
2058
2299
  | --- | --- |
2059
2300
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
2060
2301
 
2302
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
2303
+
2304
+ ### brokerTool.isPredictionMarket(symbol) ⇒
2305
+ <p>Determines whether a given perpetual represents a prediction market</p>
2306
+
2307
+ **Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
2308
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
2309
+ **Returns**: <p>True if this is a prediction market</p>
2310
+
2311
+ | Param | Description |
2312
+ | --- | --- |
2313
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
2314
+
2061
2315
  <a name="LiquidatorTool"></a>
2062
2316
 
2063
2317
  ## LiquidatorTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
@@ -2079,6 +2333,7 @@ and executes smart-contract interactions that require gas-payments.</p>
2079
2333
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
2080
2334
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
2081
2335
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
2336
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
2082
2337
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
2083
2338
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
2084
2339
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -2103,6 +2358,7 @@ and executes smart-contract interactions that require gas-payments.</p>
2103
2358
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
2104
2359
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
2105
2360
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
2361
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
2106
2362
 
2107
2363
  <a name="new_LiquidatorTool_new"></a>
2108
2364
 
@@ -2302,7 +2558,7 @@ about perpetual currencies</p>
2302
2558
 
2303
2559
  **Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
2304
2560
  **Overrides**: [<code>setAllowance</code>](#WriteAccessHandler+setAllowance)
2305
- **Returns**: <p>ContractTransaction</p>
2561
+ **Returns**: <p>Contract Transaction</p>
2306
2562
 
2307
2563
  | Param | Description |
2308
2564
  | --- | --- |
@@ -2345,6 +2601,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
2345
2601
  | --- | --- |
2346
2602
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
2347
2603
 
2604
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
2605
+
2606
+ ### liquidatorTool.getOrderBookAddress(symbol) ⇒
2607
+ <p>Returns the order-book contract for the symbol if found or fails</p>
2608
+
2609
+ **Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
2610
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
2611
+ **Returns**: <p>order book contract for the perpetual</p>
2612
+
2613
+ | Param | Description |
2614
+ | --- | --- |
2615
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
2616
+
2348
2617
  <a name="PerpetualDataHandler+getPerpetuals"></a>
2349
2618
 
2350
2619
  ### liquidatorTool.getPerpetuals(ids, overrides) ⇒
@@ -2702,6 +2971,19 @@ main();
2702
2971
  | --- | --- |
2703
2972
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
2704
2973
 
2974
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
2975
+
2976
+ ### liquidatorTool.isPredictionMarket(symbol) ⇒
2977
+ <p>Determines whether a given perpetual represents a prediction market</p>
2978
+
2979
+ **Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
2980
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
2981
+ **Returns**: <p>True if this is a prediction market</p>
2982
+
2983
+ | Param | Description |
2984
+ | --- | --- |
2985
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
2986
+
2705
2987
  <a name="LiquidityProviderTool"></a>
2706
2988
 
2707
2989
  ## LiquidityProviderTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
@@ -2721,6 +3003,7 @@ smart-contract interactions that require gas-payments.</p>
2721
3003
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
2722
3004
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
2723
3005
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
3006
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
2724
3007
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
2725
3008
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
2726
3009
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -2745,6 +3028,7 @@ smart-contract interactions that require gas-payments.</p>
2745
3028
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
2746
3029
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
2747
3030
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
3031
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
2748
3032
 
2749
3033
  <a name="new_LiquidityProviderTool_new"></a>
2750
3034
 
@@ -2883,7 +3167,7 @@ about perpetual currencies</p>
2883
3167
 
2884
3168
  **Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
2885
3169
  **Overrides**: [<code>setAllowance</code>](#WriteAccessHandler+setAllowance)
2886
- **Returns**: <p>ContractTransaction</p>
3170
+ **Returns**: <p>Contract Transaction</p>
2887
3171
 
2888
3172
  | Param | Description |
2889
3173
  | --- | --- |
@@ -2926,6 +3210,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
2926
3210
  | --- | --- |
2927
3211
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
2928
3212
 
3213
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
3214
+
3215
+ ### liquidityProviderTool.getOrderBookAddress(symbol) ⇒
3216
+ <p>Returns the order-book contract for the symbol if found or fails</p>
3217
+
3218
+ **Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
3219
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
3220
+ **Returns**: <p>order book contract for the perpetual</p>
3221
+
3222
+ | Param | Description |
3223
+ | --- | --- |
3224
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
3225
+
2929
3226
  <a name="PerpetualDataHandler+getPerpetuals"></a>
2930
3227
 
2931
3228
  ### liquidityProviderTool.getPerpetuals(ids, overrides) ⇒
@@ -3283,6 +3580,19 @@ main();
3283
3580
  | --- | --- |
3284
3581
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
3285
3582
 
3583
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
3584
+
3585
+ ### liquidityProviderTool.isPredictionMarket(symbol) ⇒
3586
+ <p>Determines whether a given perpetual represents a prediction market</p>
3587
+
3588
+ **Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
3589
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
3590
+ **Returns**: <p>True if this is a prediction market</p>
3591
+
3592
+ | Param | Description |
3593
+ | --- | --- |
3594
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
3595
+
3286
3596
  <a name="MarketData"></a>
3287
3597
 
3288
3598
  ## MarketData ⇐ [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
@@ -3295,61 +3605,67 @@ No gas required for the queries here.</p>
3295
3605
 
3296
3606
  * [MarketData](#MarketData) ⇐ [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
3297
3607
  * [new MarketData(config)](#new_MarketData_new)
3298
- * [.createProxyInstance(providerOrMarketData)](#MarketData+createProxyInstance)
3299
- * [.getProxyAddress()](#MarketData+getProxyAddress) ⇒ <code>string</code>
3300
- * [.getTriangulations()](#MarketData+getTriangulations) ⇒
3301
- * [.smartContractOrderToOrder(smOrder)](#MarketData+smartContractOrderToOrder) ⇒ <code>Order</code>
3302
- * [.getReadOnlyProxyInstance()](#MarketData+getReadOnlyProxyInstance) ⇒ <code>Contract</code>
3303
- * [.exchangeInfo()](#MarketData+exchangeInfo) ⇒ <code>ExchangeInfo</code>
3304
- * [.openOrders(traderAddr, symbol)](#MarketData+openOrders) ⇒
3305
- * [.positionRisk(traderAddr, symbol)](#MarketData+positionRisk) ⇒ <code>Array.&lt;MarginAccount&gt;</code>
3306
- * [.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo)](#MarketData+positionRiskOnTrade) ⇒
3307
- * [.positionRiskOnCollateralAction(deltaCollateral, account)](#MarketData+positionRiskOnCollateralAction) ⇒ <code>MarginAccount</code>
3308
- * [.getWalletBalance(address, symbol)](#MarketData+getWalletBalance) ⇒
3309
- * [.getPoolShareTokenBalance(address, symbolOrId)](#MarketData+getPoolShareTokenBalance) ⇒ <code>number</code>
3310
- * [.getShareTokenPrice(symbolOrId)](#MarketData+getShareTokenPrice) ⇒ <code>number</code>
3311
- * [.getParticipationValue(address, symbolOrId)](#MarketData+getParticipationValue) ⇒
3312
- * [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
3313
- * [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
3314
- * [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
3315
- * [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
3316
- * [.getOrdersStatus(symbol, orderId)](#MarketData+getOrdersStatus) ⇒
3317
- * [.getMarkPrice(symbol)](#MarketData+getMarkPrice) ⇒ <code>number</code>
3318
- * [.getPerpetualPrice(symbol, quantity)](#MarketData+getPerpetualPrice) ⇒ <code>number</code>
3319
- * [.getPerpetualState(symbol)](#MarketData+getPerpetualState) ⇒ <code>PerpetualState</code>
3320
- * [.getPoolState(poolSymbol)](#MarketData+getPoolState) ⇒ <code>PoolState</code>
3321
- * [.getPerpetualStaticInfo(symbol)](#MarketData+getPerpetualStaticInfo) ⇒ <code>PerpetualStaticInfo</code>
3322
- * [.getPerpetualMidPrice(symbol)](#MarketData+getPerpetualMidPrice) ⇒ <code>number</code>
3323
- * [.getAvailableMargin(traderAddr, symbol, indexPrices)](#MarketData+getAvailableMargin) ⇒
3324
- * [.getTraderLoyalityScore(traderAddr)](#MarketData+getTraderLoyalityScore) ⇒ <code>number</code>
3325
- * [.isMarketClosed(symbol)](#MarketData+isMarketClosed) ⇒ <code>boolean</code>
3326
- * [.getPriceInUSD(symbol)](#MarketData+getPriceInUSD) ⇒ <code>Map.&lt;string, number&gt;</code>
3327
- * [.fetchPricesForPerpetual(symbol)](#MarketData+fetchPricesForPerpetual) ⇒
3328
- * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
3329
- * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
3330
- * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
3331
- * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
3332
- * [.initSettlementToken(perpStaticInfos)](#PerpetualDataHandler+initSettlementToken)
3333
- * [.getSymbolFromPoolId(poolId)](#PerpetualDataHandler+getSymbolFromPoolId) ⇒ <code>symbol</code>
3334
- * [.getPoolIdFromSymbol(symbol)](#PerpetualDataHandler+getPoolIdFromSymbol) ⇒ <code>number</code>
3335
- * [.getPerpIdFromSymbol(symbol)](#PerpetualDataHandler+getPerpIdFromSymbol) ⇒ <code>number</code>
3336
- * [.getSymbolFromPerpId(perpId)](#PerpetualDataHandler+getSymbolFromPerpId) ⇒ <code>string</code>
3337
- * [.symbol4BToLongSymbol(sym)](#PerpetualDataHandler+symbol4BToLongSymbol) ⇒ <code>string</code>
3338
- * [.fetchPriceSubmissionInfoForPerpetual(symbol)](#PerpetualDataHandler+fetchPriceSubmissionInfoForPerpetual) ⇒
3339
- * [.getIndexSymbols(symbol)](#PerpetualDataHandler+getIndexSymbols) ⇒
3340
- * [.fetchLatestFeedPriceInfo(symbol)](#PerpetualDataHandler+fetchLatestFeedPriceInfo) ⇒
3341
- * [.fetchCollateralToSettlementConversion(symbol)](#PerpetualDataHandler+fetchCollateralToSettlementConversion)
3342
- * [.getPriceIds(symbol)](#PerpetualDataHandler+getPriceIds) ⇒
3343
- * [.getPerpetualSymbolsInPool(poolSymbol)](#PerpetualDataHandler+getPerpetualSymbolsInPool) ⇒
3344
- * [.getAllOpenOrders(symbol)](#PerpetualDataHandler+getAllOpenOrders)
3345
- * [.numberOfOpenOrders(symbol)](#PerpetualDataHandler+numberOfOpenOrders) ⇒ <code>number</code>
3346
- * [.pollLimitOrders(symbol, numElements, [startAfter])](#PerpetualDataHandler+pollLimitOrders) ⇒
3347
- * [.getPoolStaticInfoIndexFromSymbol(symbol)](#PerpetualDataHandler+getPoolStaticInfoIndexFromSymbol) ⇒
3348
- * [.getMarginTokenFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenFromSymbol) ⇒
3349
- * [.getSettlementTokenFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenFromSymbol) ⇒
3350
- * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
3351
- * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
3352
- * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
3608
+ * _instance_
3609
+ * [.createProxyInstance(providerOrMarketData)](#MarketData+createProxyInstance)
3610
+ * [.getProxyAddress()](#MarketData+getProxyAddress) ⇒ <code>string</code>
3611
+ * [.getTriangulations()](#MarketData+getTriangulations) ⇒
3612
+ * [.smartContractOrderToOrder(smOrder)](#MarketData+smartContractOrderToOrder) ⇒ <code>Order</code>
3613
+ * [.getReadOnlyProxyInstance()](#MarketData+getReadOnlyProxyInstance) ⇒
3614
+ * [.exchangeInfo()](#MarketData+exchangeInfo) ⇒ [<code>ExchangeInfo</code>](#ExchangeInfo)
3615
+ * [.openOrders(traderAddr, symbol)](#MarketData+openOrders) ⇒
3616
+ * [.positionRisk(traderAddr, symbol)](#MarketData+positionRisk) ⇒ <code>Array.&lt;MarginAccount&gt;</code>
3617
+ * [.positionRiskOnTrade(traderAddr, order, signedPositionNotionalBaseCCY, tradingFeeTbps, indexPriceInfo)](#MarketData+positionRiskOnTrade) ⇒
3618
+ * [.positionRiskOnCollateralAction(deltaCollateral, account)](#MarketData+positionRiskOnCollateralAction) ⇒ <code>MarginAccount</code>
3619
+ * [.getWalletBalance(address, symbol)](#MarketData+getWalletBalance) ⇒
3620
+ * [.getPoolShareTokenBalance(address, symbolOrId)](#MarketData+getPoolShareTokenBalance) ⇒ <code>number</code>
3621
+ * [.getShareTokenPrice(symbolOrId)](#MarketData+getShareTokenPrice) ⇒ <code>number</code>
3622
+ * [.getParticipationValue(address, symbolOrId)](#MarketData+getParticipationValue) ⇒
3623
+ * [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
3624
+ * [.getMaxShortLongPos(perpId, currentTraderPos, overrides)](#MarketData+getMaxShortLongPos) ⇒
3625
+ * [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
3626
+ * [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
3627
+ * [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
3628
+ * [.getOrdersStatus(symbol, orderId)](#MarketData+getOrdersStatus) ⇒
3629
+ * [.getMarkPrice(symbol, indexPrices)](#MarketData+getMarkPrice) ⇒ <code>number</code>
3630
+ * [.getPerpetualPrice(symbol, quantity, priceInfo)](#MarketData+getPerpetualPrice) ⇒ <code>number</code>
3631
+ * [.getPerpetualState(symbol)](#MarketData+getPerpetualState) ⇒ <code>PerpetualState</code>
3632
+ * [.getPoolState(poolSymbol)](#MarketData+getPoolState) ⇒ [<code>PoolState</code>](#PoolState)
3633
+ * [.getPerpetualStaticInfo(symbol)](#MarketData+getPerpetualStaticInfo) ⇒ <code>PerpetualStaticInfo</code>
3634
+ * [.getPerpetualMidPrice(symbol)](#MarketData+getPerpetualMidPrice) ⇒ <code>number</code>
3635
+ * [.getAvailableMargin(traderAddr, symbol, indexPrices)](#MarketData+getAvailableMargin) ⇒
3636
+ * [.getTraderLoyalityScore(traderAddr)](#MarketData+getTraderLoyalityScore) ⇒ <code>number</code>
3637
+ * [.isMarketClosed(symbol)](#MarketData+isMarketClosed) ⇒ <code>boolean</code>
3638
+ * [.getPriceInUSD(symbol)](#MarketData+getPriceInUSD) ⇒ <code>Map.&lt;string, number&gt;</code>
3639
+ * [.fetchPricesForPerpetual(symbol)](#MarketData+fetchPricesForPerpetual) ⇒
3640
+ * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
3641
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress)
3642
+ * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals)
3643
+ * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
3644
+ * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
3645
+ * [.initSettlementToken(perpStaticInfos)](#PerpetualDataHandler+initSettlementToken)
3646
+ * [.getSymbolFromPoolId(poolId)](#PerpetualDataHandler+getSymbolFromPoolId) ⇒ <code>symbol</code>
3647
+ * [.getPoolIdFromSymbol(symbol)](#PerpetualDataHandler+getPoolIdFromSymbol) ⇒ <code>number</code>
3648
+ * [.getPerpIdFromSymbol(symbol)](#PerpetualDataHandler+getPerpIdFromSymbol) ⇒ <code>number</code>
3649
+ * [.getSymbolFromPerpId(perpId)](#PerpetualDataHandler+getSymbolFromPerpId) ⇒ <code>string</code>
3650
+ * [.symbol4BToLongSymbol(sym)](#PerpetualDataHandler+symbol4BToLongSymbol) ⇒ <code>string</code>
3651
+ * [.fetchPriceSubmissionInfoForPerpetual(symbol)](#PerpetualDataHandler+fetchPriceSubmissionInfoForPerpetual)
3652
+ * [.getIndexSymbols(symbol)](#PerpetualDataHandler+getIndexSymbols) ⇒
3653
+ * [.fetchLatestFeedPriceInfo(symbol)](#PerpetualDataHandler+fetchLatestFeedPriceInfo) ⇒
3654
+ * [.fetchCollateralToSettlementConversion(symbol)](#PerpetualDataHandler+fetchCollateralToSettlementConversion)
3655
+ * [.getPriceIds(symbol)](#PerpetualDataHandler+getPriceIds) ⇒
3656
+ * [.getPerpetualSymbolsInPool(poolSymbol)](#PerpetualDataHandler+getPerpetualSymbolsInPool) ⇒
3657
+ * [.getAllOpenOrders(symbol)](#PerpetualDataHandler+getAllOpenOrders) ⇒
3658
+ * [.numberOfOpenOrders(symbol)](#PerpetualDataHandler+numberOfOpenOrders) ⇒ <code>number</code>
3659
+ * [.pollLimitOrders(symbol, numElements, [startAfter])](#PerpetualDataHandler+pollLimitOrders) ⇒
3660
+ * [.getPoolStaticInfoIndexFromSymbol(symbol)](#PerpetualDataHandler+getPoolStaticInfoIndexFromSymbol) ⇒
3661
+ * [.getMarginTokenFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenFromSymbol) ⇒
3662
+ * [.getSettlementTokenFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenFromSymbol) ⇒
3663
+ * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
3664
+ * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
3665
+ * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
3666
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
3667
+ * _static_
3668
+ * [.exchangeFeePrdMkts(state, maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate)](#MarketData.exchangeFeePrdMkts) ⇒
3353
3669
 
3354
3670
  <a name="new_MarketData_new"></a>
3355
3671
 
@@ -3412,15 +3728,15 @@ about perpetual currencies</p>
3412
3728
 
3413
3729
  | Param | Type | Description |
3414
3730
  | --- | --- | --- |
3415
- | smOrder | <code>SmartContractOrder</code> | <p>SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event</p> |
3731
+ | smOrder | [<code>SmartContractOrder</code>](#SmartContractOrder) | <p>SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event</p> |
3416
3732
 
3417
3733
  <a name="MarketData+getReadOnlyProxyInstance"></a>
3418
3734
 
3419
- ### marketData.getReadOnlyProxyInstance() ⇒ <code>Contract</code>
3735
+ ### marketData.getReadOnlyProxyInstance() ⇒
3420
3736
  <p>Get contract instance. Useful for event listening.</p>
3421
3737
 
3422
3738
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
3423
- **Returns**: <code>Contract</code> - <p>read-only proxy instance</p>
3739
+ **Returns**: <p>read-only proxy instance</p>
3424
3740
  **Example**
3425
3741
  ```js
3426
3742
  import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
@@ -3438,11 +3754,11 @@ main();
3438
3754
  ```
3439
3755
  <a name="MarketData+exchangeInfo"></a>
3440
3756
 
3441
- ### marketData.exchangeInfo() ⇒ <code>ExchangeInfo</code>
3757
+ ### marketData.exchangeInfo() ⇒ [<code>ExchangeInfo</code>](#ExchangeInfo)
3442
3758
  <p>Information about the products traded in the exchange.</p>
3443
3759
 
3444
3760
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
3445
- **Returns**: <code>ExchangeInfo</code> - <p>Array of static data for all the pools and perpetuals in the system.</p>
3761
+ **Returns**: [<code>ExchangeInfo</code>](#ExchangeInfo) - <p>Array of static data for all the pools and perpetuals in the system.</p>
3446
3762
  **Example**
3447
3763
  ```js
3448
3764
  import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
@@ -3519,7 +3835,7 @@ main();
3519
3835
  ```
3520
3836
  <a name="MarketData+positionRiskOnTrade"></a>
3521
3837
 
3522
- ### marketData.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo) ⇒
3838
+ ### marketData.positionRiskOnTrade(traderAddr, order, signedPositionNotionalBaseCCY, tradingFeeTbps, indexPriceInfo) ⇒
3523
3839
  <p>Estimates what the position risk will be if a given order is executed.</p>
3524
3840
 
3525
3841
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
@@ -3529,7 +3845,8 @@ main();
3529
3845
  | --- | --- |
3530
3846
  | traderAddr | <p>Address of trader</p> |
3531
3847
  | order | <p>Order to be submitted</p> |
3532
- | account | <p>Position risk before trade. Defaults to current position if not given.</p> |
3848
+ | signedPositionNotionalBaseCCY | <p>signed position notional of current position (before trade)</p> |
3849
+ | tradingFeeTbps | <p>trading fee in tenth of basis points (exchange fee and broker fee)</p> |
3533
3850
  | indexPriceInfo | <p>Index prices and market status (open/closed). Defaults to current market status if not given.</p> |
3534
3851
 
3535
3852
  **Example**
@@ -3550,7 +3867,7 @@ async function main() {
3550
3867
  executionTimestamp: Date.now()/1000,
3551
3868
  };
3552
3869
  // Get position risk conditional on this order being executed
3553
- const posRisk = await mktData.positionRiskOnTrade("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B", order);
3870
+ const posRisk = await mktData.positionRiskOnTrade("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B", order, 0, 60);
3554
3871
  console.log(posRisk);
3555
3872
  }
3556
3873
  main();
@@ -3728,6 +4045,21 @@ async function main() {
3728
4045
  }
3729
4046
  main();
3730
4047
  ```
4048
+ <a name="MarketData+getMaxShortLongPos"></a>
4049
+
4050
+ ### marketData.getMaxShortLongPos(perpId, currentTraderPos, overrides) ⇒
4051
+ <p>Returns the maximal allowed short pos and long pos (signed) for a trader
4052
+ with given notional (in ABDK format) in the perpetual, ignoring the traders wallet balance</p>
4053
+
4054
+ **Kind**: instance method of [<code>MarketData</code>](#MarketData)
4055
+ **Returns**: <p>[maxShortPos, maxLongPos] signed maximal position sizes</p>
4056
+
4057
+ | Param | Description |
4058
+ | --- | --- |
4059
+ | perpId | |
4060
+ | currentTraderPos | <p>ABDK64x64 notional position of trader</p> |
4061
+ | overrides | |
4062
+
3731
4063
  <a name="MarketData+maxSignedPosition"></a>
3732
4064
 
3733
4065
  ### marketData.maxSignedPosition(side, symbol) ⇒ <code>number</code>
@@ -3843,7 +4175,7 @@ main();
3843
4175
  ```
3844
4176
  <a name="MarketData+getMarkPrice"></a>
3845
4177
 
3846
- ### marketData.getMarkPrice(symbol) ⇒ <code>number</code>
4178
+ ### marketData.getMarkPrice(symbol, indexPrices) ⇒ <code>number</code>
3847
4179
  <p>Get the current mark price</p>
3848
4180
 
3849
4181
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
@@ -3852,6 +4184,7 @@ main();
3852
4184
  | Param | Description |
3853
4185
  | --- | --- |
3854
4186
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
4187
+ | indexPrices | <p>optional. IdxPriceInfo</p> |
3855
4188
 
3856
4189
  **Example**
3857
4190
  ```js
@@ -3870,7 +4203,7 @@ main();
3870
4203
  ```
3871
4204
  <a name="MarketData+getPerpetualPrice"></a>
3872
4205
 
3873
- ### marketData.getPerpetualPrice(symbol, quantity) ⇒ <code>number</code>
4206
+ ### marketData.getPerpetualPrice(symbol, quantity, priceInfo) ⇒ <code>number</code>
3874
4207
  <p>get the current price for a given quantity</p>
3875
4208
 
3876
4209
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
@@ -3880,6 +4213,7 @@ main();
3880
4213
  | --- | --- |
3881
4214
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
3882
4215
  | quantity | <p>quantity to be traded, negative if short</p> |
4216
+ | priceInfo | <p>[s2, s3, conf, params]; for non-prediction markets conf/params can be 0</p> |
3883
4217
 
3884
4218
  **Example**
3885
4219
  ```js
@@ -3910,11 +4244,11 @@ main();
3910
4244
 
3911
4245
  <a name="MarketData+getPoolState"></a>
3912
4246
 
3913
- ### marketData.getPoolState(poolSymbol) ⇒ <code>PoolState</code>
4247
+ ### marketData.getPoolState(poolSymbol) ⇒ [<code>PoolState</code>](#PoolState)
3914
4248
  <p>Query recent pool state from blockchain, not including perpetual states</p>
3915
4249
 
3916
4250
  **Kind**: instance method of [<code>MarketData</code>](#MarketData)
3917
- **Returns**: <code>PoolState</code> - <p>PoolState copy</p>
4251
+ **Returns**: [<code>PoolState</code>](#PoolState) - <p>PoolState copy</p>
3918
4252
 
3919
4253
  | Param | Type | Description |
3920
4254
  | --- | --- | --- |
@@ -3973,7 +4307,7 @@ Result is in collateral currency</p>
3973
4307
  | --- | --- | --- |
3974
4308
  | traderAddr | <code>string</code> | <p>address of the trader</p> |
3975
4309
  | symbol | <code>string</code> | <p>perpetual symbol of the form BTC-USD-MATIC</p> |
3976
- | indexPrices | | <p>optional index prices, will otherwise fetch from REST API</p> |
4310
+ | indexPrices | | <p>optional indexPriceInfo</p> |
3977
4311
 
3978
4312
  **Example**
3979
4313
  ```js
@@ -4096,6 +4430,19 @@ main();
4096
4430
  | --- | --- |
4097
4431
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
4098
4432
 
4433
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
4434
+
4435
+ ### marketData.getOrderBookAddress(symbol) ⇒
4436
+ <p>Returns the order-book contract for the symbol if found or fails</p>
4437
+
4438
+ **Kind**: instance method of [<code>MarketData</code>](#MarketData)
4439
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
4440
+ **Returns**: <p>order book contract for the perpetual</p>
4441
+
4442
+ | Param | Description |
4443
+ | --- | --- |
4444
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
4445
+
4099
4446
  <a name="PerpetualDataHandler+getPerpetuals"></a>
4100
4447
 
4101
4448
  ### marketData.getPerpetuals(ids, overrides) ⇒
@@ -4453,6 +4800,35 @@ main();
4453
4800
  | --- | --- |
4454
4801
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
4455
4802
 
4803
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
4804
+
4805
+ ### marketData.isPredictionMarket(symbol) ⇒
4806
+ <p>Determines whether a given perpetual represents a prediction market</p>
4807
+
4808
+ **Kind**: instance method of [<code>MarketData</code>](#MarketData)
4809
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
4810
+ **Returns**: <p>True if this is a prediction market</p>
4811
+
4812
+ | Param | Description |
4813
+ | --- | --- |
4814
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
4815
+
4816
+ <a name="MarketData.exchangeFeePrdMkts"></a>
4817
+
4818
+ ### MarketData.exchangeFeePrdMkts(state, maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate) ⇒
4819
+ <p>Fee is relative to base-currency amount (=trade amount)</p>
4820
+
4821
+ **Kind**: static method of [<code>MarketData</code>](#MarketData)
4822
+ **Returns**: <p>relative exchange fee in decimals</p>
4823
+
4824
+ | Param | Description |
4825
+ | --- | --- |
4826
+ | state | <p>current perpetual state (need longBC and shortBC)</p> |
4827
+ | maxMaintMgnRate | <p>maintenance margin rate param for pred mkts</p> |
4828
+ | Sm | <p>Mark price</p> |
4829
+ | tradeAmtBC | <p>signed trade amount</p> |
4830
+ | tradeMgnRate | <p>margin rate param from perpetual</p> |
4831
+
4456
4832
  <a name="OnChainPxFeed"></a>
4457
4833
 
4458
4834
  ## OnChainPxFeed
@@ -4495,6 +4871,7 @@ gas-payments.</p>
4495
4871
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
4496
4872
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
4497
4873
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
4874
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
4498
4875
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
4499
4876
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
4500
4877
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -4519,6 +4896,7 @@ gas-payments.</p>
4519
4896
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
4520
4897
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
4521
4898
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
4899
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
4522
4900
 
4523
4901
  <a name="new_OrderExecutorTool_new"></a>
4524
4902
 
@@ -4764,7 +5142,7 @@ about perpetual currencies</p>
4764
5142
 
4765
5143
  **Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
4766
5144
  **Overrides**: [<code>setAllowance</code>](#WriteAccessHandler+setAllowance)
4767
- **Returns**: <p>ContractTransaction</p>
5145
+ **Returns**: <p>Contract Transaction</p>
4768
5146
 
4769
5147
  | Param | Description |
4770
5148
  | --- | --- |
@@ -4807,6 +5185,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
4807
5185
  | --- | --- |
4808
5186
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
4809
5187
 
5188
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
5189
+
5190
+ ### orderExecutorTool.getOrderBookAddress(symbol) ⇒
5191
+ <p>Returns the order-book contract for the symbol if found or fails</p>
5192
+
5193
+ **Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
5194
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
5195
+ **Returns**: <p>order book contract for the perpetual</p>
5196
+
5197
+ | Param | Description |
5198
+ | --- | --- |
5199
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
5200
+
4810
5201
  <a name="PerpetualDataHandler+getPerpetuals"></a>
4811
5202
 
4812
5203
  ### orderExecutorTool.getPerpetuals(ids, overrides) ⇒
@@ -5164,6 +5555,19 @@ main();
5164
5555
  | --- | --- |
5165
5556
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
5166
5557
 
5558
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
5559
+
5560
+ ### orderExecutorTool.isPredictionMarket(symbol) ⇒
5561
+ <p>Determines whether a given perpetual represents a prediction market</p>
5562
+
5563
+ **Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
5564
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
5565
+ **Returns**: <p>True if this is a prediction market</p>
5566
+
5567
+ | Param | Description |
5568
+ | --- | --- |
5569
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
5570
+
5167
5571
  <a name="PerpetualDataHandler"></a>
5168
5572
 
5169
5573
  ## PerpetualDataHandler
@@ -5176,6 +5580,7 @@ common data and chain operations.</p>
5176
5580
  * [new PerpetualDataHandler(config)](#new_PerpetualDataHandler_new)
5177
5581
  * _instance_
5178
5582
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
5583
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
5179
5584
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
5180
5585
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
5181
5586
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -5200,13 +5605,16 @@ common data and chain operations.</p>
5200
5605
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
5201
5606
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
5202
5607
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
5608
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
5203
5609
  * _static_
5204
5610
  * [.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList)](#PerpetualDataHandler.getPerpetualStaticInfo) ⇒
5205
5611
  * [.nestedIDsToChunks(chunkSize, nestedIDs)](#PerpetualDataHandler.nestedIDsToChunks) ⇒ <code>Array.&lt;Array.&lt;number&gt;&gt;</code>
5206
5612
  * [._getLiquidityPools(ids, _proxyContract, _symbolList, overrides)](#PerpetualDataHandler._getLiquidityPools) ⇒
5207
5613
  * [._getPerpetuals(ids, _proxyContract, _symbolList, overrides)](#PerpetualDataHandler._getPerpetuals) ⇒
5208
- * [.getMarginAccount(traderAddr, symbol, symbolToPerpStaticInfo, _proxyContract, _pxS2S3, overrides)](#PerpetualDataHandler.getMarginAccount) ⇒
5209
- * [.getMarginAccounts(traderAddrs, symbols, symbolToPerpStaticInfo, _multicall, _proxyContract, _pxS2S3s, overrides)](#PerpetualDataHandler.getMarginAccounts) ⇒
5614
+ * [.getMarginAccount(traderAddr, symbol, symbolToPerpStaticInfo, _proxyContract, _pxInfo, overrides)](#PerpetualDataHandler.getMarginAccount) ⇒
5615
+ * [.getMarginAccounts(traderAddrs, symbols, symbolToPerpStaticInfo, _multicall, _proxyContract, _pxInfo, overrides)](#PerpetualDataHandler.getMarginAccounts) ⇒
5616
+ * [._queryPerpetualMarkPrice(symbol, symbolToPerpStaticInfo, _proxyContract, indexPrices, isPredMkt, overrides)](#PerpetualDataHandler._queryPerpetualMarkPrice) ⇒
5617
+ * [._oiAndAmmPosToLongShort(oi, ammPos)](#PerpetualDataHandler._oiAndAmmPosToLongShort) ⇒
5210
5618
  * [._calculateLiquidationPrice(symbol, traderState, S2, symbolToPerpStaticInfo)](#PerpetualDataHandler._calculateLiquidationPrice) ⇒
5211
5619
  * [.symbolToPerpetualId(symbol, symbolToPerpStaticInfo)](#PerpetualDataHandler.symbolToPerpetualId) ⇒
5212
5620
  * [.toSmartContractOrder(order, traderAddr, symbolToPerpetualMap)](#PerpetualDataHandler.toSmartContractOrder) ⇒
@@ -5222,6 +5630,7 @@ common data and chain operations.</p>
5222
5630
  * [._getABIFromContract(contract, functionName)](#PerpetualDataHandler._getABIFromContract) ⇒
5223
5631
  * [.checkOrder(order, traderAccount, perpStaticInfo)](#PerpetualDataHandler.checkOrder)
5224
5632
  * [.fromClientOrderToTypeSafeOrder(order)](#PerpetualDataHandler.fromClientOrderToTypeSafeOrder) ⇒
5633
+ * [.isPredictionMarketStatic(staticInfo)](#PerpetualDataHandler.isPredictionMarketStatic) ⇒
5225
5634
 
5226
5635
  <a name="new_PerpetualDataHandler_new"></a>
5227
5636
 
@@ -5245,6 +5654,18 @@ common data and chain operations.</p>
5245
5654
  | --- | --- |
5246
5655
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
5247
5656
 
5657
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
5658
+
5659
+ ### perpetualDataHandler.getOrderBookAddress(symbol) ⇒
5660
+ <p>Returns the order-book contract for the symbol if found or fails</p>
5661
+
5662
+ **Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
5663
+ **Returns**: <p>order book contract for the perpetual</p>
5664
+
5665
+ | Param | Description |
5666
+ | --- | --- |
5667
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
5668
+
5248
5669
  <a name="PerpetualDataHandler+getPerpetuals"></a>
5249
5670
 
5250
5671
  ### perpetualDataHandler.getPerpetuals(ids, overrides) ⇒
@@ -5578,6 +5999,18 @@ main();
5578
5999
  | --- | --- |
5579
6000
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
5580
6001
 
6002
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
6003
+
6004
+ ### perpetualDataHandler.isPredictionMarket(symbol) ⇒
6005
+ <p>Determines whether a given perpetual represents a prediction market</p>
6006
+
6007
+ **Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
6008
+ **Returns**: <p>True if this is a prediction market</p>
6009
+
6010
+ | Param | Description |
6011
+ | --- | --- |
6012
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
6013
+
5581
6014
  <a name="PerpetualDataHandler.getPerpetualStaticInfo"></a>
5582
6015
 
5583
6016
  ### PerpetualDataHandler.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList) ⇒
@@ -5637,7 +6070,7 @@ main();
5637
6070
 
5638
6071
  <a name="PerpetualDataHandler.getMarginAccount"></a>
5639
6072
 
5640
- ### PerpetualDataHandler.getMarginAccount(traderAddr, symbol, symbolToPerpStaticInfo, _proxyContract, _pxS2S3, overrides) ⇒
6073
+ ### PerpetualDataHandler.getMarginAccount(traderAddr, symbol, symbolToPerpStaticInfo, _proxyContract, _pxInfo, overrides) ⇒
5641
6074
  <p>Get trader state from the blockchain and parse into a human-readable margin account</p>
5642
6075
 
5643
6076
  **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
@@ -5649,12 +6082,12 @@ main();
5649
6082
  | symbol | <p>Perpetual symbol</p> |
5650
6083
  | symbolToPerpStaticInfo | <p>Symbol to perp static info mapping</p> |
5651
6084
  | _proxyContract | <p>Proxy contract instance</p> |
5652
- | _pxS2S3 | <p>Prices [S2, S3]</p> |
6085
+ | _pxInfo | <p>index price info</p> |
5653
6086
  | overrides | <p>Optional overrides for eth_call</p> |
5654
6087
 
5655
6088
  <a name="PerpetualDataHandler.getMarginAccounts"></a>
5656
6089
 
5657
- ### PerpetualDataHandler.getMarginAccounts(traderAddrs, symbols, symbolToPerpStaticInfo, _multicall, _proxyContract, _pxS2S3s, overrides) ⇒
6090
+ ### PerpetualDataHandler.getMarginAccounts(traderAddrs, symbols, symbolToPerpStaticInfo, _multicall, _proxyContract, _pxInfo, overrides) ⇒
5658
6091
  <p>Get trader states from the blockchain and parse into a list of human-readable margin accounts</p>
5659
6092
 
5660
6093
  **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
@@ -5667,9 +6100,37 @@ main();
5667
6100
  | symbolToPerpStaticInfo | <p>Symbol to perp static info mapping</p> |
5668
6101
  | _multicall | <p>Multicall3 contract instance</p> |
5669
6102
  | _proxyContract | <p>Proxy contract instance</p> |
5670
- | _pxS2S3s | <p>List of price pairs, [[S2, S3] (1st perp), [S2, S3] (2nd perp), ... ]</p> |
6103
+ | _pxInfo | <p>List of price info</p> |
5671
6104
  | overrides | <p>Optional eth_call overrides</p> |
5672
6105
 
6106
+ <a name="PerpetualDataHandler._queryPerpetualMarkPrice"></a>
6107
+
6108
+ ### PerpetualDataHandler.\_queryPerpetualMarkPrice(symbol, symbolToPerpStaticInfo, _proxyContract, indexPrices, isPredMkt, overrides) ⇒
6109
+ **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
6110
+ **Returns**: <p>mark price</p>
6111
+
6112
+ | Param | Description |
6113
+ | --- | --- |
6114
+ | symbol | <p>perpetual symbol of the form BTC-USDC-USDC</p> |
6115
+ | symbolToPerpStaticInfo | <p>mapping</p> |
6116
+ | _proxyContract | <p>contract instance</p> |
6117
+ | indexPrices | <p>IdxPriceInfo</p> |
6118
+ | isPredMkt | <p>true if prediction market perpetual</p> |
6119
+ | overrides | |
6120
+
6121
+ <a name="PerpetualDataHandler._oiAndAmmPosToLongShort"></a>
6122
+
6123
+ ### PerpetualDataHandler.\_oiAndAmmPosToLongShort(oi, ammPos) ⇒
6124
+ <p>Calculate long and short exposures from open interest and long/short</p>
6125
+
6126
+ **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
6127
+ **Returns**: <p>long, short exposure</p>
6128
+
6129
+ | Param | Description |
6130
+ | --- | --- |
6131
+ | oi | <p>open interest</p> |
6132
+ | ammPos | <p>amm net exposure</p> |
6133
+
5673
6134
  <a name="PerpetualDataHandler._calculateLiquidationPrice"></a>
5674
6135
 
5675
6136
  ### PerpetualDataHandler.\_calculateLiquidationPrice(symbol, traderState, S2, symbolToPerpStaticInfo) ⇒
@@ -5840,7 +6301,7 @@ main();
5840
6301
  <a name="PerpetualDataHandler._getABIFromContract"></a>
5841
6302
 
5842
6303
  ### PerpetualDataHandler.\_getABIFromContract(contract, functionName) ⇒
5843
- <p>Get the ABI of a function in a given contract</p>
6304
+ <p>Get the ABI of a function in a given contract. Undefined if it doesn't exist.</p>
5844
6305
 
5845
6306
  **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
5846
6307
  **Returns**: <p>Function ABI as a single JSON string</p>
@@ -5875,6 +6336,18 @@ main();
5875
6336
  | --- | --- |
5876
6337
  | order | <p>Client order</p> |
5877
6338
 
6339
+ <a name="PerpetualDataHandler.isPredictionMarketStatic"></a>
6340
+
6341
+ ### PerpetualDataHandler.isPredictionMarketStatic(staticInfo) ⇒
6342
+ <p>Determines whether a given perpetual represents a prediction market</p>
6343
+
6344
+ **Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
6345
+ **Returns**: <p>True if this is a prediction market</p>
6346
+
6347
+ | Param | Description |
6348
+ | --- | --- |
6349
+ | staticInfo | <p>Perpetual static info</p> |
6350
+
5878
6351
  <a name="PerpetualEventHandler"></a>
5879
6352
 
5880
6353
  ## PerpetualEventHandler
@@ -6147,13 +6620,20 @@ int128 fSpotIndexPrice
6147
6620
  )</p>
6148
6621
 
6149
6622
  **Kind**: static method of [<code>PerpetualEventHandler</code>](#PerpetualEventHandler)
6150
- **Returns**: <p>mark price and spot index in float</p>
6623
+ **Returns**: <p>midPrice, markPricePremium, indexPrice in float</p>
6151
6624
 
6152
6625
  | Param | Description |
6153
6626
  | --- | --- |
6154
6627
  | fMarkPricePremium | <p>premium rate in ABDK format</p> |
6155
6628
  | fSpotIndexPrice | <p>spot index price in ABDK format</p> |
6156
6629
 
6630
+ <a name="PolyMktsPxFeed"></a>
6631
+
6632
+ ## PolyMktsPxFeed
6633
+ <p>PolyMktsPxFeed gets prices from the official polymarket api
6634
+ and applies the 1+px transformation</p>
6635
+
6636
+ **Kind**: global class
6157
6637
  <a name="PriceFeeds"></a>
6158
6638
 
6159
6639
  ## PriceFeeds
@@ -6169,7 +6649,7 @@ trader liquidations, trade executions, change of trader margin amount.</p>
6169
6649
  * [.getTriangulations()](#PriceFeeds+getTriangulations) ⇒
6170
6650
  * [.setTriangulations()](#PriceFeeds+setTriangulations)
6171
6651
  * [.fetchFeedPriceInfoAndIndicesForPerpetual(symbol)](#PriceFeeds+fetchFeedPriceInfoAndIndicesForPerpetual) ⇒
6172
- * [.fetchPrices()](#PriceFeeds+fetchPrices) ⇒
6652
+ * [.fetchPrices(symbol)](#PriceFeeds+fetchPrices) ⇒
6173
6653
  * [.fetchPricesForPerpetual(symbol)](#PriceFeeds+fetchPricesForPerpetual) ⇒
6174
6654
  * [.fetchFeedPrices(symbols)](#PriceFeeds+fetchFeedPrices) ⇒
6175
6655
  * [.fetchAllFeedPrices()](#PriceFeeds+fetchAllFeedPrices) ⇒
@@ -6210,8 +6690,8 @@ trader liquidations, trade executions, change of trader margin amount.</p>
6210
6690
  <a name="PriceFeeds+fetchFeedPriceInfoAndIndicesForPerpetual"></a>
6211
6691
 
6212
6692
  ### priceFeeds.fetchFeedPriceInfoAndIndicesForPerpetual(symbol) ⇒
6213
- <p>Get required information to be able to submit a blockchain transaction with price-update
6214
- such as trade execution, liquidation</p>
6693
+ <p>Get required information to be able to submit a blockchain transaction with
6694
+ price-update such as trade execution, liquidation. Uses write price feed endpoints.</p>
6215
6695
 
6216
6696
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6217
6697
  **Returns**: <p>PriceFeedSubmission, index prices, market closed information</p>
@@ -6222,20 +6702,26 @@ such as trade execution, liquidation</p>
6222
6702
 
6223
6703
  <a name="PriceFeeds+fetchPrices"></a>
6224
6704
 
6225
- ### priceFeeds.fetchPrices() ⇒
6705
+ ### priceFeeds.fetchPrices(symbol) ⇒
6226
6706
  <p>Get all prices/isMarketClosed for the provided symbols via
6227
- &quot;latest_price_feeds&quot; and triangulation. Triangulation must be defined in config, unless
6228
- it is a direct price feed.</p>
6707
+ &quot;latest_price_feeds&quot; and triangulation. Triangulation must be defined in
6708
+ config, unless it is a direct price feed. Uses read endpoints.</p>
6229
6709
 
6230
6710
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6231
6711
  **Returns**: <p>map of feed-price symbol to price/isMarketClosed</p>
6712
+
6713
+ | Param | Description |
6714
+ | --- | --- |
6715
+ | symbol | <p>perpetual symbol of the form BTC-USD-MATIC</p> |
6716
+
6232
6717
  <a name="PriceFeeds+fetchPricesForPerpetual"></a>
6233
6718
 
6234
6719
  ### priceFeeds.fetchPricesForPerpetual(symbol) ⇒
6235
6720
  <p>Get index prices and market closed information for the given perpetual</p>
6236
6721
 
6237
6722
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6238
- **Returns**: <p>Index prices and market closed information</p>
6723
+ **Returns**: <p>Index prices and market closed information; for prediction markets also
6724
+ ema, confidence, and order book parameters.</p>
6239
6725
 
6240
6726
  | Param | Description |
6241
6727
  | --- | --- |
@@ -6248,11 +6734,13 @@ it is a direct price feed.</p>
6248
6734
  <ul>
6249
6735
  <li>requires the feeds to be defined in priceFeedConfig.json</li>
6250
6736
  <li>if symbols undefined, all feeds are queried</li>
6251
- <li>vaas are not of interest here</li>
6737
+ <li>vaas are not of interest here, therefore only readonly price feed
6738
+ endpoints are used</li>
6252
6739
  </ul>
6253
6740
 
6254
6741
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6255
- **Returns**: <p>mapping symbol-&gt; [price, isMarketClosed]</p>
6742
+ **Returns**: <p>mapping symbol-&gt; [price, isMarketClosed], also has an entry
6743
+ <symbol>:ema for each polymarket symbol that maps to the ema price</p>
6256
6744
 
6257
6745
  | Param | Description |
6258
6746
  | --- | --- |
@@ -6261,7 +6749,7 @@ it is a direct price feed.</p>
6261
6749
  <a name="PriceFeeds+fetchAllFeedPrices"></a>
6262
6750
 
6263
6751
  ### priceFeeds.fetchAllFeedPrices() ⇒
6264
- <p>Get all configured feed prices via &quot;latest_price_feeds&quot;</p>
6752
+ <p>Get all configured feed prices via &quot;latest_price_feeds&quot;.</p>
6265
6753
 
6266
6754
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6267
6755
  **Returns**: <p>map of feed-price symbol to price/isMarketClosed</p>
@@ -6269,11 +6757,11 @@ it is a direct price feed.</p>
6269
6757
 
6270
6758
  ### priceFeeds.fetchLatestFeedPriceInfoForPerpetual(symbol) ⇒
6271
6759
  <p>Get the latest prices for a given perpetual from the offchain oracle
6272
- networks</p>
6760
+ networks. Uses write price feed endpoints.</p>
6273
6761
 
6274
6762
  **Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
6275
- **Returns**: <p>array of price feed updates that can be submitted to the smart contract
6276
- and corresponding price information</p>
6763
+ **Returns**: <p>array of price feed updates that can be submitted to the smart
6764
+ contract and corresponding price information</p>
6277
6765
 
6278
6766
  | Param | Description |
6279
6767
  | --- | --- |
@@ -6391,8 +6879,11 @@ one chain, unless the backend employs code transferrals</p>
6391
6879
  * [ReferralCodeSigner](#ReferralCodeSigner)
6392
6880
  * [.getSignatureForNewReferral(rc, signingFun)](#ReferralCodeSigner.getSignatureForNewReferral) ⇒
6393
6881
  * [.getSignatureForNewCode(rc, signingFun)](#ReferralCodeSigner.getSignatureForNewCode) ⇒
6882
+ * [.newReferralPayloadToTypedData(rc)](#ReferralCodeSigner.newReferralPayloadToTypedData) ⇒
6394
6883
  * [._referralCodeNewCodePayloadToMessage(rc)](#ReferralCodeSigner._referralCodeNewCodePayloadToMessage) ⇒
6884
+ * [.referralCodeNewCodePayloadToTypedData(rc)](#ReferralCodeSigner.referralCodeNewCodePayloadToTypedData) ⇒
6395
6885
  * [._codeSelectionPayloadToMessage(rc)](#ReferralCodeSigner._codeSelectionPayloadToMessage) ⇒
6886
+ * [.codeSelectionPayloadToTypedData(rc)](#ReferralCodeSigner.codeSelectionPayloadToTypedData) ⇒
6396
6887
  * [.checkNewCodeSignature(rc)](#ReferralCodeSigner.checkNewCodeSignature) ⇒
6397
6888
 
6398
6889
  <a name="ReferralCodeSigner.getSignatureForNewReferral"></a>
@@ -6423,6 +6914,18 @@ rc.PassOnPercTDF must be in 100*percentage unit</p>
6423
6914
  | rc | <p>APIReferralCodePayload without signature</p> |
6424
6915
  | signingFun | <p>function that signs</p> |
6425
6916
 
6917
+ <a name="ReferralCodeSigner.newReferralPayloadToTypedData"></a>
6918
+
6919
+ ### ReferralCodeSigner.newReferralPayloadToTypedData(rc) ⇒
6920
+ <p>Convert payload to data struct to sign</p>
6921
+
6922
+ **Kind**: static method of [<code>ReferralCodeSigner</code>](#ReferralCodeSigner)
6923
+ **Returns**: <p>typed data</p>
6924
+
6925
+ | Param | Description |
6926
+ | --- | --- |
6927
+ | rc | <p>payload</p> |
6928
+
6426
6929
  <a name="ReferralCodeSigner._referralCodeNewCodePayloadToMessage"></a>
6427
6930
 
6428
6931
  ### ReferralCodeSigner.\_referralCodeNewCodePayloadToMessage(rc) ⇒
@@ -6435,6 +6938,18 @@ rc.PassOnPercTDF must be in 100*percentage unit</p>
6435
6938
  | --- | --- |
6436
6939
  | rc | <p>payload</p> |
6437
6940
 
6941
+ <a name="ReferralCodeSigner.referralCodeNewCodePayloadToTypedData"></a>
6942
+
6943
+ ### ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc) ⇒
6944
+ <p>Convert payload to data struct to sign</p>
6945
+
6946
+ **Kind**: static method of [<code>ReferralCodeSigner</code>](#ReferralCodeSigner)
6947
+ **Returns**: <p>typed data</p>
6948
+
6949
+ | Param | Description |
6950
+ | --- | --- |
6951
+ | rc | <p>payload</p> |
6952
+
6438
6953
  <a name="ReferralCodeSigner._codeSelectionPayloadToMessage"></a>
6439
6954
 
6440
6955
  ### ReferralCodeSigner.\_codeSelectionPayloadToMessage(rc) ⇒
@@ -6447,6 +6962,18 @@ rc.PassOnPercTDF must be in 100*percentage unit</p>
6447
6962
  | --- | --- |
6448
6963
  | rc | <p>payload</p> |
6449
6964
 
6965
+ <a name="ReferralCodeSigner.codeSelectionPayloadToTypedData"></a>
6966
+
6967
+ ### ReferralCodeSigner.codeSelectionPayloadToTypedData(rc) ⇒
6968
+ <p>Convert payload to data struct to sign</p>
6969
+
6970
+ **Kind**: static method of [<code>ReferralCodeSigner</code>](#ReferralCodeSigner)
6971
+ **Returns**: <p>typed data</p>
6972
+
6973
+ | Param | Description |
6974
+ | --- | --- |
6975
+ | rc | <p>payload</p> |
6976
+
6450
6977
  <a name="ReferralCodeSigner.checkNewCodeSignature"></a>
6451
6978
 
6452
6979
  ### ReferralCodeSigner.checkNewCodeSignature(rc) ⇒
@@ -6490,25 +7017,26 @@ so that signatures can be handled in frontend via wallet</p>
6490
7017
  * [.getProxyAddress()](#MarketData+getProxyAddress) ⇒ <code>string</code>
6491
7018
  * [.getTriangulations()](#MarketData+getTriangulations) ⇒
6492
7019
  * [.smartContractOrderToOrder(smOrder)](#MarketData+smartContractOrderToOrder) ⇒ <code>Order</code>
6493
- * [.getReadOnlyProxyInstance()](#MarketData+getReadOnlyProxyInstance) ⇒ <code>Contract</code>
6494
- * [.exchangeInfo()](#MarketData+exchangeInfo) ⇒ <code>ExchangeInfo</code>
7020
+ * [.getReadOnlyProxyInstance()](#MarketData+getReadOnlyProxyInstance) ⇒
7021
+ * [.exchangeInfo()](#MarketData+exchangeInfo) ⇒ [<code>ExchangeInfo</code>](#ExchangeInfo)
6495
7022
  * [.openOrders(traderAddr, symbol)](#MarketData+openOrders) ⇒
6496
7023
  * [.positionRisk(traderAddr, symbol)](#MarketData+positionRisk) ⇒ <code>Array.&lt;MarginAccount&gt;</code>
6497
- * [.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo)](#MarketData+positionRiskOnTrade) ⇒
7024
+ * [.positionRiskOnTrade(traderAddr, order, signedPositionNotionalBaseCCY, tradingFeeTbps, indexPriceInfo)](#MarketData+positionRiskOnTrade) ⇒
6498
7025
  * [.positionRiskOnCollateralAction(deltaCollateral, account)](#MarketData+positionRiskOnCollateralAction) ⇒ <code>MarginAccount</code>
6499
7026
  * [.getWalletBalance(address, symbol)](#MarketData+getWalletBalance) ⇒
6500
7027
  * [.getPoolShareTokenBalance(address, symbolOrId)](#MarketData+getPoolShareTokenBalance) ⇒ <code>number</code>
6501
7028
  * [.getShareTokenPrice(symbolOrId)](#MarketData+getShareTokenPrice) ⇒ <code>number</code>
6502
7029
  * [.getParticipationValue(address, symbolOrId)](#MarketData+getParticipationValue) ⇒
6503
7030
  * [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
7031
+ * [.getMaxShortLongPos(perpId, currentTraderPos, overrides)](#MarketData+getMaxShortLongPos) ⇒
6504
7032
  * [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
6505
7033
  * [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
6506
7034
  * [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
6507
7035
  * [.getOrdersStatus(symbol, orderId)](#MarketData+getOrdersStatus) ⇒
6508
- * [.getMarkPrice(symbol)](#MarketData+getMarkPrice) ⇒ <code>number</code>
6509
- * [.getPerpetualPrice(symbol, quantity)](#MarketData+getPerpetualPrice) ⇒ <code>number</code>
7036
+ * [.getMarkPrice(symbol, indexPrices)](#MarketData+getMarkPrice) ⇒ <code>number</code>
7037
+ * [.getPerpetualPrice(symbol, quantity, priceInfo)](#MarketData+getPerpetualPrice) ⇒ <code>number</code>
6510
7038
  * [.getPerpetualState(symbol)](#MarketData+getPerpetualState) ⇒ <code>PerpetualState</code>
6511
- * [.getPoolState(poolSymbol)](#MarketData+getPoolState) ⇒ <code>PoolState</code>
7039
+ * [.getPoolState(poolSymbol)](#MarketData+getPoolState) ⇒ [<code>PoolState</code>](#PoolState)
6512
7040
  * [.getPerpetualStaticInfo(symbol)](#MarketData+getPerpetualStaticInfo) ⇒ <code>PerpetualStaticInfo</code>
6513
7041
  * [.getPerpetualMidPrice(symbol)](#MarketData+getPerpetualMidPrice) ⇒ <code>number</code>
6514
7042
  * [.getAvailableMargin(traderAddr, symbol, indexPrices)](#MarketData+getAvailableMargin) ⇒
@@ -6541,6 +7069,7 @@ so that signatures can be handled in frontend via wallet</p>
6541
7069
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
6542
7070
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
6543
7071
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
7072
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
6544
7073
  * _static_
6545
7074
  * [.chainOrders(orders, ids)](#TraderInterface.chainOrders) ⇒
6546
7075
 
@@ -6645,6 +7174,7 @@ main();
6645
7174
  <p>Get the order book address for a perpetual</p>
6646
7175
 
6647
7176
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
7177
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
6648
7178
  **Returns**: <p>order book address for the perpetual</p>
6649
7179
 
6650
7180
  | Param | Description |
@@ -6695,7 +7225,7 @@ Order must contain broker fee and broker address if there is supposed to be a br
6695
7225
  <a name="TraderInterface+getProxyABI"></a>
6696
7226
 
6697
7227
  ### traderInterface.getProxyABI(method) ⇒
6698
- <p>Get the ABI of a method in the proxy contract</p>
7228
+ <p>Get the ABI of a method in the proxy contract. Throws if non-existent</p>
6699
7229
 
6700
7230
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
6701
7231
  **Returns**: <p>ABI as a single string</p>
@@ -6847,16 +7377,16 @@ about perpetual currencies</p>
6847
7377
 
6848
7378
  | Param | Type | Description |
6849
7379
  | --- | --- | --- |
6850
- | smOrder | <code>SmartContractOrder</code> | <p>SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event</p> |
7380
+ | smOrder | [<code>SmartContractOrder</code>](#SmartContractOrder) | <p>SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event</p> |
6851
7381
 
6852
7382
  <a name="MarketData+getReadOnlyProxyInstance"></a>
6853
7383
 
6854
- ### traderInterface.getReadOnlyProxyInstance() ⇒ <code>Contract</code>
7384
+ ### traderInterface.getReadOnlyProxyInstance() ⇒
6855
7385
  <p>Get contract instance. Useful for event listening.</p>
6856
7386
 
6857
7387
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
6858
7388
  **Overrides**: [<code>getReadOnlyProxyInstance</code>](#MarketData+getReadOnlyProxyInstance)
6859
- **Returns**: <code>Contract</code> - <p>read-only proxy instance</p>
7389
+ **Returns**: <p>read-only proxy instance</p>
6860
7390
  **Example**
6861
7391
  ```js
6862
7392
  import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
@@ -6874,12 +7404,12 @@ main();
6874
7404
  ```
6875
7405
  <a name="MarketData+exchangeInfo"></a>
6876
7406
 
6877
- ### traderInterface.exchangeInfo() ⇒ <code>ExchangeInfo</code>
7407
+ ### traderInterface.exchangeInfo() ⇒ [<code>ExchangeInfo</code>](#ExchangeInfo)
6878
7408
  <p>Information about the products traded in the exchange.</p>
6879
7409
 
6880
7410
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
6881
7411
  **Overrides**: [<code>exchangeInfo</code>](#MarketData+exchangeInfo)
6882
- **Returns**: <code>ExchangeInfo</code> - <p>Array of static data for all the pools and perpetuals in the system.</p>
7412
+ **Returns**: [<code>ExchangeInfo</code>](#ExchangeInfo) - <p>Array of static data for all the pools and perpetuals in the system.</p>
6883
7413
  **Example**
6884
7414
  ```js
6885
7415
  import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
@@ -6958,7 +7488,7 @@ main();
6958
7488
  ```
6959
7489
  <a name="MarketData+positionRiskOnTrade"></a>
6960
7490
 
6961
- ### traderInterface.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo) ⇒
7491
+ ### traderInterface.positionRiskOnTrade(traderAddr, order, signedPositionNotionalBaseCCY, tradingFeeTbps, indexPriceInfo) ⇒
6962
7492
  <p>Estimates what the position risk will be if a given order is executed.</p>
6963
7493
 
6964
7494
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
@@ -6969,7 +7499,8 @@ main();
6969
7499
  | --- | --- |
6970
7500
  | traderAddr | <p>Address of trader</p> |
6971
7501
  | order | <p>Order to be submitted</p> |
6972
- | account | <p>Position risk before trade. Defaults to current position if not given.</p> |
7502
+ | signedPositionNotionalBaseCCY | <p>signed position notional of current position (before trade)</p> |
7503
+ | tradingFeeTbps | <p>trading fee in tenth of basis points (exchange fee and broker fee)</p> |
6973
7504
  | indexPriceInfo | <p>Index prices and market status (open/closed). Defaults to current market status if not given.</p> |
6974
7505
 
6975
7506
  **Example**
@@ -6990,7 +7521,7 @@ async function main() {
6990
7521
  executionTimestamp: Date.now()/1000,
6991
7522
  };
6992
7523
  // Get position risk conditional on this order being executed
6993
- const posRisk = await mktData.positionRiskOnTrade("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B", order);
7524
+ const posRisk = await mktData.positionRiskOnTrade("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B", order, 0, 60);
6994
7525
  console.log(posRisk);
6995
7526
  }
6996
7527
  main();
@@ -7174,6 +7705,22 @@ async function main() {
7174
7705
  }
7175
7706
  main();
7176
7707
  ```
7708
+ <a name="MarketData+getMaxShortLongPos"></a>
7709
+
7710
+ ### traderInterface.getMaxShortLongPos(perpId, currentTraderPos, overrides) ⇒
7711
+ <p>Returns the maximal allowed short pos and long pos (signed) for a trader
7712
+ with given notional (in ABDK format) in the perpetual, ignoring the traders wallet balance</p>
7713
+
7714
+ **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
7715
+ **Overrides**: [<code>getMaxShortLongPos</code>](#MarketData+getMaxShortLongPos)
7716
+ **Returns**: <p>[maxShortPos, maxLongPos] signed maximal position sizes</p>
7717
+
7718
+ | Param | Description |
7719
+ | --- | --- |
7720
+ | perpId | |
7721
+ | currentTraderPos | <p>ABDK64x64 notional position of trader</p> |
7722
+ | overrides | |
7723
+
7177
7724
  <a name="MarketData+maxSignedPosition"></a>
7178
7725
 
7179
7726
  ### traderInterface.maxSignedPosition(side, symbol) ⇒ <code>number</code>
@@ -7293,7 +7840,7 @@ main();
7293
7840
  ```
7294
7841
  <a name="MarketData+getMarkPrice"></a>
7295
7842
 
7296
- ### traderInterface.getMarkPrice(symbol) ⇒ <code>number</code>
7843
+ ### traderInterface.getMarkPrice(symbol, indexPrices) ⇒ <code>number</code>
7297
7844
  <p>Get the current mark price</p>
7298
7845
 
7299
7846
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
@@ -7303,6 +7850,7 @@ main();
7303
7850
  | Param | Description |
7304
7851
  | --- | --- |
7305
7852
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
7853
+ | indexPrices | <p>optional. IdxPriceInfo</p> |
7306
7854
 
7307
7855
  **Example**
7308
7856
  ```js
@@ -7321,7 +7869,7 @@ main();
7321
7869
  ```
7322
7870
  <a name="MarketData+getPerpetualPrice"></a>
7323
7871
 
7324
- ### traderInterface.getPerpetualPrice(symbol, quantity) ⇒ <code>number</code>
7872
+ ### traderInterface.getPerpetualPrice(symbol, quantity, priceInfo) ⇒ <code>number</code>
7325
7873
  <p>get the current price for a given quantity</p>
7326
7874
 
7327
7875
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
@@ -7332,6 +7880,7 @@ main();
7332
7880
  | --- | --- |
7333
7881
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
7334
7882
  | quantity | <p>quantity to be traded, negative if short</p> |
7883
+ | priceInfo | <p>[s2, s3, conf, params]; for non-prediction markets conf/params can be 0</p> |
7335
7884
 
7336
7885
  **Example**
7337
7886
  ```js
@@ -7363,12 +7912,12 @@ main();
7363
7912
 
7364
7913
  <a name="MarketData+getPoolState"></a>
7365
7914
 
7366
- ### traderInterface.getPoolState(poolSymbol) ⇒ <code>PoolState</code>
7915
+ ### traderInterface.getPoolState(poolSymbol) ⇒ [<code>PoolState</code>](#PoolState)
7367
7916
  <p>Query recent pool state from blockchain, not including perpetual states</p>
7368
7917
 
7369
7918
  **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
7370
7919
  **Overrides**: [<code>getPoolState</code>](#MarketData+getPoolState)
7371
- **Returns**: <code>PoolState</code> - <p>PoolState copy</p>
7920
+ **Returns**: [<code>PoolState</code>](#PoolState) - <p>PoolState copy</p>
7372
7921
 
7373
7922
  | Param | Type | Description |
7374
7923
  | --- | --- | --- |
@@ -7430,7 +7979,7 @@ Result is in collateral currency</p>
7430
7979
  | --- | --- | --- |
7431
7980
  | traderAddr | <code>string</code> | <p>address of the trader</p> |
7432
7981
  | symbol | <code>string</code> | <p>perpetual symbol of the form BTC-USD-MATIC</p> |
7433
- | indexPrices | | <p>optional index prices, will otherwise fetch from REST API</p> |
7982
+ | indexPrices | | <p>optional indexPriceInfo</p> |
7434
7983
 
7435
7984
  **Example**
7436
7985
  ```js
@@ -7914,6 +8463,19 @@ main();
7914
8463
  | --- | --- |
7915
8464
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
7916
8465
 
8466
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
8467
+
8468
+ ### traderInterface.isPredictionMarket(symbol) ⇒
8469
+ <p>Determines whether a given perpetual represents a prediction market</p>
8470
+
8471
+ **Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
8472
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
8473
+ **Returns**: <p>True if this is a prediction market</p>
8474
+
8475
+ | Param | Description |
8476
+ | --- | --- |
8477
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
8478
+
7917
8479
  <a name="TraderInterface.chainOrders"></a>
7918
8480
 
7919
8481
  ### TraderInterface.chainOrders(orders, ids) ⇒
@@ -7946,6 +8508,7 @@ require gas-payments.</p>
7946
8508
  * [.getAddress()](#WriteAccessHandler+getAddress) ⇒ <code>string</code>
7947
8509
  * [.swapForMockToken(symbol, amountToPay)](#WriteAccessHandler+swapForMockToken) ⇒
7948
8510
  * [.getOrderBookContract(symbol)](#PerpetualDataHandler+getOrderBookContract) ⇒
8511
+ * [.getOrderBookAddress(symbol)](#PerpetualDataHandler+getOrderBookAddress) ⇒
7949
8512
  * [.getPerpetuals(ids, overrides)](#PerpetualDataHandler+getPerpetuals) ⇒
7950
8513
  * [.getLiquidityPools(fromIdx, toIdx, overrides)](#PerpetualDataHandler+getLiquidityPools) ⇒
7951
8514
  * [._fillSymbolMaps()](#PerpetualDataHandler+_fillSymbolMaps)
@@ -7970,6 +8533,7 @@ require gas-payments.</p>
7970
8533
  * [.getMarginTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getMarginTokenDecimalsFromSymbol) ⇒
7971
8534
  * [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
7972
8535
  * [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
8536
+ * [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
7973
8537
 
7974
8538
  <a name="new_WriteAccessHandler_new"></a>
7975
8539
 
@@ -8000,7 +8564,7 @@ about perpetual currencies</p>
8000
8564
  <p>Set allowance for ar margin token (e.g., MATIC, ETH, USDC)</p>
8001
8565
 
8002
8566
  **Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
8003
- **Returns**: <p>ContractTransaction</p>
8567
+ **Returns**: <p>Contract Transaction</p>
8004
8568
 
8005
8569
  | Param | Description |
8006
8570
  | --- | --- |
@@ -8041,6 +8605,19 @@ into a mock token used for trading on testnet, with a rate of 1:100_000</p>
8041
8605
  | --- | --- |
8042
8606
  | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
8043
8607
 
8608
+ <a name="PerpetualDataHandler+getOrderBookAddress"></a>
8609
+
8610
+ ### writeAccessHandler.getOrderBookAddress(symbol) ⇒
8611
+ <p>Returns the order-book contract for the symbol if found or fails</p>
8612
+
8613
+ **Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
8614
+ **Overrides**: [<code>getOrderBookAddress</code>](#PerpetualDataHandler+getOrderBookAddress)
8615
+ **Returns**: <p>order book contract for the perpetual</p>
8616
+
8617
+ | Param | Description |
8618
+ | --- | --- |
8619
+ | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
8620
+
8044
8621
  <a name="PerpetualDataHandler+getPerpetuals"></a>
8045
8622
 
8046
8623
  ### writeAccessHandler.getPerpetuals(ids, overrides) ⇒
@@ -8398,6 +8975,19 @@ main();
8398
8975
  | --- | --- |
8399
8976
  | contract | <p>name of contract: proxy|lob|sharetoken</p> |
8400
8977
 
8978
+ <a name="PerpetualDataHandler+isPredictionMarket"></a>
8979
+
8980
+ ### writeAccessHandler.isPredictionMarket(symbol) ⇒
8981
+ <p>Determines whether a given perpetual represents a prediction market</p>
8982
+
8983
+ **Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
8984
+ **Overrides**: [<code>isPredictionMarket</code>](#PerpetualDataHandler+isPredictionMarket)
8985
+ **Returns**: <p>True if this is a prediction market</p>
8986
+
8987
+ | Param | Description |
8988
+ | --- | --- |
8989
+ | symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
8990
+
8401
8991
  <a name="default"></a>
8402
8992
 
8403
8993
  ## default ⇒
@@ -8411,3 +9001,85 @@ on-chain</p>
8411
9001
  | --- | --- |
8412
9002
  | provider | <p>arbitrum provider</p> |
8413
9003
 
9004
+ <a name="referralDomain"></a>
9005
+
9006
+ ## referralDomain
9007
+ <p>LiquidityPoolData corresponding to the data in the smart contract</p>
9008
+
9009
+ **Kind**: global constant
9010
+ <a name="ExchangeInfo"></a>
9011
+
9012
+ ## ExchangeInfo : <code>Object</code>
9013
+ **Kind**: global typedef
9014
+ **Properties**
9015
+
9016
+ | Name | Type | Description |
9017
+ | --- | --- | --- |
9018
+ | pools | [<code>Array.&lt;PoolState&gt;</code>](#PoolState) | <p>Array of state objects for all pools in the exchange.</p> |
9019
+ | oracleFactoryAddr | <code>string</code> | <p>Address of the oracle factory used by the pools in the exchange.</p> |
9020
+
9021
+ <a name="PoolState"></a>
9022
+
9023
+ ## PoolState : <code>Object</code>
9024
+ **Kind**: global typedef
9025
+ **Properties**
9026
+
9027
+ | Name | Type | Description |
9028
+ | --- | --- | --- |
9029
+ | isRunning | <code>boolean</code> | <p>True if the pool is running.</p> |
9030
+ | marginTokenAddr | <code>string</code> | <p>Address of the token used by the pool. This is the token used for margin deposits, liquidity provision, and trading fees.</p> |
9031
+ | poolShareTokenAddr | <code>string</code> | <p>Address of the pool share token. This is the token issued to external liquidity providers.</p> |
9032
+ | defaultFundCashCC | <code>number</code> | <p>Amount of cash in the default fund of this pool, denominated in margin tokens.</p> |
9033
+ | pnlParticipantCashCC | <code>number</code> | <p>Amount of cash in the PnL participation pool, i.e. cash deposited by external liquidity providers.</p> |
9034
+ | totalTargetAMMFundSizeCC | <code>number</code> | <p>Target AMM funds aggregated across all perpetuals in this pool.</p> |
9035
+ | brokerCollateralLotSize | <code>number</code> | <p>Price of one lot for brokers who wish to participate in this pool. Denominated in margin tokens.</p> |
9036
+ | perpetuals | <code>Array.&lt;PerpetualState&gt;</code> | <p>Array of all perpetuals in this pool.</p> |
9037
+
9038
+ <a name="SmartContractOrder"></a>
9039
+
9040
+ ## SmartContractOrder : <code>Object</code>
9041
+ **Kind**: global typedef
9042
+ **Properties**
9043
+
9044
+ | Name | Type |
9045
+ | --- | --- |
9046
+ | flags | <code>bigint</code> |
9047
+ | iPerpetualId | <code>number</code> |
9048
+ | brokerFeeTbps | <code>number</code> |
9049
+ | traderAddr | <code>string</code> |
9050
+ | brokerAddr | <code>string</code> |
9051
+ | executorAddr | <code>string</code> |
9052
+ | brokerSignature | <code>BytesLike</code> |
9053
+ | fAmount | <code>bigint</code> |
9054
+ | fLimitPrice | <code>bigint</code> |
9055
+ | fTriggerPrice | <code>bigint</code> |
9056
+ | leverageTDR | <code>number</code> |
9057
+ | iDeadline | <code>number</code> |
9058
+ | executionTimestamp | <code>number</code> |
9059
+ | submittedTimestamp | <code>number</code> |
9060
+
9061
+ <a name="ClientOrder"></a>
9062
+
9063
+ ## ClientOrder : <code>Object</code>
9064
+ **Kind**: global typedef
9065
+ **Properties**
9066
+
9067
+ | Name | Type |
9068
+ | --- | --- |
9069
+ | flags | <code>bigint</code> |
9070
+ | iPerpetualId | <code>bigint</code> |
9071
+ | brokerFeeTbps | <code>bigint</code> |
9072
+ | traderAddr | <code>string</code> |
9073
+ | brokerAddr | <code>string</code> |
9074
+ | executorAddr | <code>string</code> |
9075
+ | brokerSignature | <code>BytesLike</code> |
9076
+ | fAmount | <code>bigint</code> |
9077
+ | fLimitPrice | <code>bigint</code> |
9078
+ | fTriggerPrice | <code>bigint</code> |
9079
+ | leverageTDR | <code>bigint</code> |
9080
+ | iDeadline | <code>bigint</code> |
9081
+ | executionTimestamp | <code>bigint</code> |
9082
+ | parentChildDigest1 | <code>string</code> |
9083
+ | parentChildDigest2 | <code>string</code> |
9084
+ | callbackTarget | <code>string</code> |
9085
+