@typus/typus-perp-sdk 1.1.32 → 1.1.34

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 (253) hide show
  1. package/dist/src/api/sentio.d.ts +5 -5
  2. package/dist/src/api/sentio.js +690 -541
  3. package/dist/src/client.d.ts +28 -0
  4. package/dist/src/client.js +171 -0
  5. package/dist/src/fetch.d.ts +540 -36
  6. package/dist/src/fetch.js +545 -661
  7. package/dist/src/generated/typus_perp/admin.d.ts +274 -0
  8. package/dist/src/generated/typus_perp/admin.js +321 -0
  9. package/dist/src/generated/typus_perp/competition.d.ts +60 -0
  10. package/dist/src/generated/typus_perp/competition.js +104 -0
  11. package/dist/src/generated/typus_perp/deps/std/type_name.d.ts +17 -0
  12. package/dist/src/generated/typus_perp/deps/std/type_name.js +25 -0
  13. package/dist/src/generated/typus_perp/deps/sui/balance.d.ts +12 -0
  14. package/dist/src/generated/typus_perp/deps/sui/balance.js +20 -0
  15. package/dist/src/generated/typus_perp/deps/sui/object.d.ts +8 -0
  16. package/dist/src/generated/typus_perp/deps/sui/object.js +16 -0
  17. package/dist/src/generated/typus_perp/deps/sui/object_table.d.ts +19 -0
  18. package/dist/src/generated/typus_perp/deps/sui/object_table.js +59 -0
  19. package/dist/src/generated/typus_perp/deps/sui/table.d.ts +31 -0
  20. package/dist/src/generated/typus_perp/deps/sui/table.js +71 -0
  21. package/dist/src/generated/typus_perp/deps/sui/vec_set.d.ts +18 -0
  22. package/dist/src/generated/typus_perp/deps/sui/vec_set.js +25 -0
  23. package/dist/src/generated/typus_perp/deps/typus/keyed_big_vector.d.ts +30 -0
  24. package/dist/src/generated/typus_perp/deps/typus/keyed_big_vector.js +67 -0
  25. package/dist/src/generated/typus_perp/deps/typus/linked_object_table.d.ts +32 -0
  26. package/dist/src/generated/typus_perp/deps/typus/linked_object_table.js +71 -0
  27. package/dist/src/generated/typus_perp/deps/typus_framework/vault.d.ts +15 -0
  28. package/dist/src/{_framework/init-loader.js → generated/typus_perp/deps/typus_framework/vault.js} +18 -10
  29. package/dist/src/generated/typus_perp/error.d.ts +443 -0
  30. package/dist/src/generated/typus_perp/error.js +788 -0
  31. package/dist/src/generated/typus_perp/escrow.d.ts +109 -0
  32. package/dist/src/generated/typus_perp/escrow.js +139 -0
  33. package/dist/src/generated/typus_perp/lp_pool.d.ts +1853 -0
  34. package/dist/src/generated/typus_perp/lp_pool.js +1483 -0
  35. package/dist/src/generated/typus_perp/math.d.ts +95 -0
  36. package/dist/src/generated/typus_perp/math.js +97 -0
  37. package/dist/src/generated/typus_perp/position.d.ts +1251 -0
  38. package/dist/src/generated/typus_perp/position.js +1393 -0
  39. package/dist/src/generated/typus_perp/profit_vault.d.ts +272 -0
  40. package/dist/src/generated/typus_perp/profit_vault.js +321 -0
  41. package/dist/src/generated/typus_perp/symbol.d.ts +47 -0
  42. package/dist/src/generated/typus_perp/symbol.js +97 -0
  43. package/dist/src/generated/typus_perp/trading.d.ts +2134 -0
  44. package/dist/src/generated/typus_perp/trading.js +2050 -0
  45. package/dist/src/generated/typus_perp/treasury_caps.d.ts +44 -0
  46. package/dist/src/generated/typus_perp/treasury_caps.js +92 -0
  47. package/dist/src/generated/typus_perp/user_account.d.ts +146 -0
  48. package/dist/src/generated/typus_perp/user_account.js +221 -0
  49. package/dist/src/generated/typus_stake_pool/admin.d.ts +218 -0
  50. package/dist/src/generated/typus_stake_pool/admin.js +247 -0
  51. package/dist/src/generated/typus_stake_pool/deps/std/type_name.d.ts +17 -0
  52. package/dist/src/generated/typus_stake_pool/deps/std/type_name.js +25 -0
  53. package/dist/src/generated/typus_stake_pool/deps/sui/object.d.ts +8 -0
  54. package/dist/src/generated/typus_stake_pool/deps/sui/object.js +16 -0
  55. package/dist/src/generated/typus_stake_pool/deps/sui/vec_map.d.ts +30 -0
  56. package/dist/src/generated/typus_stake_pool/deps/sui/vec_map.js +37 -0
  57. package/dist/src/generated/typus_stake_pool/deps/sui/vec_set.d.ts +18 -0
  58. package/dist/src/generated/typus_stake_pool/deps/sui/vec_set.js +25 -0
  59. package/dist/src/generated/typus_stake_pool/stake_pool.d.ts +988 -0
  60. package/dist/src/generated/typus_stake_pool/stake_pool.js +937 -0
  61. package/dist/src/generated/utils/index.d.ts +11 -0
  62. package/dist/src/generated/utils/index.js +138 -0
  63. package/dist/src/grpc/graphql.d.ts +26 -0
  64. package/dist/src/grpc/graphql.js +126 -0
  65. package/dist/src/grpc/grpc.d.ts +1 -0
  66. package/dist/src/grpc/grpc.js +38 -0
  67. package/dist/src/grpc/ledgerService.js +64 -0
  68. package/dist/src/grpc/liveDataService.d.ts +0 -0
  69. package/dist/src/grpc/liveDataService.js +49 -0
  70. package/dist/src/index.d.ts +2 -8
  71. package/dist/src/index.js +30 -56
  72. package/dist/src/user/history.d.ts +1 -1
  73. package/dist/src/user/history.js +649 -679
  74. package/dist/src/user/order.d.ts +21 -11
  75. package/dist/src/user/order.js +204 -301
  76. package/dist/src/user/orderWithBidReceipt.d.ts +17 -6
  77. package/dist/src/user/orderWithBidReceipt.js +164 -224
  78. package/dist/src/user/tlp.d.ts +25 -25
  79. package/dist/src/user/tlp.js +317 -468
  80. package/package.json +11 -2
  81. package/dist/src/_dependencies/source/0x1/ascii/structs.d.ts +0 -88
  82. package/dist/src/_dependencies/source/0x1/ascii/structs.js +0 -398
  83. package/dist/src/_dependencies/source/0x1/index.d.ts +0 -3
  84. package/dist/src/_dependencies/source/0x1/index.js +0 -6
  85. package/dist/src/_dependencies/source/0x1/option/structs.d.ts +0 -50
  86. package/dist/src/_dependencies/source/0x1/option/structs.js +0 -271
  87. package/dist/src/_dependencies/source/0x1/string/structs.d.ts +0 -48
  88. package/dist/src/_dependencies/source/0x1/string/structs.js +0 -256
  89. package/dist/src/_dependencies/source/0x1/type-name/structs.d.ts +0 -49
  90. package/dist/src/_dependencies/source/0x1/type-name/structs.js +0 -223
  91. package/dist/src/_dependencies/source/0x2/bag/structs.d.ts +0 -54
  92. package/dist/src/_dependencies/source/0x2/bag/structs.js +0 -229
  93. package/dist/src/_dependencies/source/0x2/balance/structs.d.ts +0 -84
  94. package/dist/src/_dependencies/source/0x2/balance/structs.js +0 -386
  95. package/dist/src/_dependencies/source/0x2/coin/structs.d.ts +0 -406
  96. package/dist/src/_dependencies/source/0x2/coin/structs.js +0 -1247
  97. package/dist/src/_dependencies/source/0x2/index.d.ts +0 -3
  98. package/dist/src/_dependencies/source/0x2/index.js +0 -6
  99. package/dist/src/_dependencies/source/0x2/linked-table/structs.d.ts +0 -132
  100. package/dist/src/_dependencies/source/0x2/linked-table/structs.js +0 -438
  101. package/dist/src/_dependencies/source/0x2/object/structs.d.ts +0 -86
  102. package/dist/src/_dependencies/source/0x2/object/structs.js +0 -364
  103. package/dist/src/_dependencies/source/0x2/object-table/structs.d.ts +0 -54
  104. package/dist/src/_dependencies/source/0x2/object-table/structs.js +0 -248
  105. package/dist/src/_dependencies/source/0x2/sui/structs.d.ts +0 -44
  106. package/dist/src/_dependencies/source/0x2/sui/structs.js +0 -222
  107. package/dist/src/_dependencies/source/0x2/table/structs.d.ts +0 -54
  108. package/dist/src/_dependencies/source/0x2/table/structs.js +0 -248
  109. package/dist/src/_dependencies/source/0x2/table-vec/structs.d.ts +0 -59
  110. package/dist/src/_dependencies/source/0x2/table-vec/structs.js +0 -274
  111. package/dist/src/_dependencies/source/0x2/token/structs.d.ts +0 -421
  112. package/dist/src/_dependencies/source/0x2/token/structs.js +0 -1095
  113. package/dist/src/_dependencies/source/0x2/transfer-policy/structs.d.ts +0 -348
  114. package/dist/src/_dependencies/source/0x2/transfer-policy/structs.js +0 -1091
  115. package/dist/src/_dependencies/source/0x2/url/structs.d.ts +0 -49
  116. package/dist/src/_dependencies/source/0x2/url/structs.js +0 -223
  117. package/dist/src/_dependencies/source/0x2/vec-map/structs.d.ts +0 -106
  118. package/dist/src/_dependencies/source/0x2/vec-map/structs.js +0 -446
  119. package/dist/src/_dependencies/source/0x2/vec-set/structs.d.ts +0 -49
  120. package/dist/src/_dependencies/source/0x2/vec-set/structs.js +0 -270
  121. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/airdrop/structs.d.ts +0 -422
  122. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/airdrop/structs.js +0 -1084
  123. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/big-vector/structs.d.ts +0 -130
  124. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/big-vector/structs.js +0 -456
  125. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/critbit/structs.d.ts +0 -208
  126. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/critbit/structs.js +0 -653
  127. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/ecosystem/structs.d.ts +0 -362
  128. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/ecosystem/structs.js +0 -899
  129. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/index.d.ts +0 -8
  130. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/index.js +0 -11
  131. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/init.d.ts +0 -2
  132. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/init.js +0 -102
  133. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/keyed-big-vector/structs.d.ts +0 -202
  134. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/keyed-big-vector/structs.js +0 -632
  135. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/leaderboard/structs.d.ts +0 -600
  136. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/leaderboard/structs.js +0 -1459
  137. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/linked-object-table/structs.d.ts +0 -136
  138. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/linked-object-table/structs.js +0 -438
  139. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/linked-set/structs.d.ts +0 -127
  140. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/linked-set/structs.js +0 -430
  141. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/tails-staking/structs.d.ts +0 -957
  142. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/tails-staking/structs.js +0 -2261
  143. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/tgld/structs.d.ts +0 -244
  144. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/tgld/structs.js +0 -733
  145. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/user/structs.d.ts +0 -294
  146. package/dist/src/_dependencies/source/0x4b0f4ee1a40ce37ec81c987cc4e76a665419e74b863319492fc7d26f708b835a/user/structs.js +0 -892
  147. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/authority/structs.d.ts +0 -73
  148. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/authority/structs.js +0 -263
  149. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/balance-pool/structs.d.ts +0 -294
  150. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/balance-pool/structs.js +0 -591
  151. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/big-vector/structs.d.ts +0 -64
  152. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/big-vector/structs.js +0 -258
  153. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/dutch/structs.d.ts +0 -756
  154. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/dutch/structs.js +0 -1721
  155. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/i64/structs.d.ts +0 -44
  156. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/i64/structs.js +0 -222
  157. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/index.d.ts +0 -3
  158. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/index.js +0 -6
  159. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/init.d.ts +0 -2
  160. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/init.js +0 -89
  161. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/linked-list/structs.d.ts +0 -135
  162. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/linked-list/structs.js +0 -444
  163. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/vault/structs.d.ts +0 -2106
  164. package/dist/src/_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/vault/structs.js +0 -4952
  165. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/discount-mint/structs.d.ts +0 -390
  166. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/discount-mint/structs.js +0 -844
  167. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/index.d.ts +0 -6
  168. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/index.js +0 -9
  169. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/init.d.ts +0 -2
  170. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/init.js +0 -69
  171. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/royalty-rule/structs.d.ts +0 -89
  172. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/royalty-rule/structs.js +0 -376
  173. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/staking/structs.d.ts +0 -386
  174. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/staking/structs.js +0 -881
  175. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/table-vec/structs.d.ts +0 -59
  176. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/table-vec/structs.js +0 -274
  177. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/typus-nft/structs.d.ts +0 -974
  178. package/dist/src/_dependencies/source/0xbd147bc7f12f38f175d78947a61364e8e077b9b188b00e7094bc0c3623162196/typus-nft/structs.js +0 -2387
  179. package/dist/src/_framework/init-loader.d.ts +0 -2
  180. package/dist/src/_framework/loader.d.ts +0 -17
  181. package/dist/src/_framework/loader.js +0 -108
  182. package/dist/src/_framework/reified.d.ts +0 -108
  183. package/dist/src/_framework/reified.js +0 -237
  184. package/dist/src/_framework/util.d.ts +0 -35
  185. package/dist/src/_framework/util.js +0 -396
  186. package/dist/src/_framework/vector.d.ts +0 -42
  187. package/dist/src/_framework/vector.js +0 -112
  188. package/dist/src/pyth.js +0 -1
  189. package/dist/src/typus_perp/admin/functions.d.ts +0 -59
  190. package/dist/src/typus_perp/admin/functions.js +0 -122
  191. package/dist/src/typus_perp/admin/structs.d.ts +0 -467
  192. package/dist/src/typus_perp/admin/structs.js +0 -1065
  193. package/dist/src/typus_perp/competition/functions.d.ts +0 -24
  194. package/dist/src/typus_perp/competition/functions.js +0 -38
  195. package/dist/src/typus_perp/competition/structs.d.ts +0 -80
  196. package/dist/src/typus_perp/competition/structs.js +0 -288
  197. package/dist/src/typus_perp/error/functions.d.ts +0 -73
  198. package/dist/src/typus_perp/error/functions.js +0 -363
  199. package/dist/src/typus_perp/escrow/functions.d.ts +0 -17
  200. package/dist/src/typus_perp/escrow/functions.js +0 -36
  201. package/dist/src/typus_perp/escrow/structs.d.ts +0 -160
  202. package/dist/src/typus_perp/escrow/structs.js +0 -324
  203. package/dist/src/typus_perp/index.d.ts +0 -1
  204. package/dist/src/typus_perp/index.js +0 -7
  205. package/dist/src/typus_perp/init.d.ts +0 -2
  206. package/dist/src/typus_perp/init.js +0 -118
  207. package/dist/src/typus_perp/lending/functions.d.ts +0 -15
  208. package/dist/src/typus_perp/lending/functions.js +0 -22
  209. package/dist/src/typus_perp/lp-pool/functions.d.ts +0 -460
  210. package/dist/src/typus_perp/lp-pool/functions.js +0 -732
  211. package/dist/src/typus_perp/lp-pool/structs.d.ts +0 -3705
  212. package/dist/src/typus_perp/lp-pool/structs.js +0 -6789
  213. package/dist/src/typus_perp/math/functions.d.ts +0 -29
  214. package/dist/src/typus_perp/math/functions.js +0 -61
  215. package/dist/src/typus_perp/position/functions.d.ts +0 -379
  216. package/dist/src/typus_perp/position/functions.js +0 -713
  217. package/dist/src/typus_perp/position/structs.d.ts +0 -905
  218. package/dist/src/typus_perp/position/structs.js +0 -1450
  219. package/dist/src/typus_perp/symbol/functions.d.ts +0 -9
  220. package/dist/src/typus_perp/symbol/functions.js +0 -24
  221. package/dist/src/typus_perp/symbol/structs.d.ts +0 -70
  222. package/dist/src/typus_perp/symbol/structs.js +0 -235
  223. package/dist/src/typus_perp/tlp/functions.d.ts +0 -19
  224. package/dist/src/typus_perp/tlp/functions.js +0 -40
  225. package/dist/src/typus_perp/tlp/structs.d.ts +0 -89
  226. package/dist/src/typus_perp/tlp/structs.js +0 -365
  227. package/dist/src/typus_perp/token-interface/functions.d.ts +0 -11
  228. package/dist/src/typus_perp/token-interface/functions.js +0 -22
  229. package/dist/src/typus_perp/trading/functions.d.ts +0 -812
  230. package/dist/src/typus_perp/trading/functions.js +0 -1218
  231. package/dist/src/typus_perp/trading/structs.d.ts +0 -3060
  232. package/dist/src/typus_perp/trading/structs.js +0 -5813
  233. package/dist/src/typus_perp/treasury-caps/functions.d.ts +0 -9
  234. package/dist/src/typus_perp/treasury-caps/functions.js +0 -36
  235. package/dist/src/typus_perp/treasury-caps/structs.d.ts +0 -49
  236. package/dist/src/typus_perp/treasury-caps/structs.js +0 -223
  237. package/dist/src/typus_perp/user-account/functions.d.ts +0 -36
  238. package/dist/src/typus_perp/user-account/functions.js +0 -70
  239. package/dist/src/typus_perp/user-account/structs.d.ts +0 -148
  240. package/dist/src/typus_perp/user-account/structs.js +0 -448
  241. package/dist/src/typus_stake_pool/admin/functions.d.ts +0 -49
  242. package/dist/src/typus_stake_pool/admin/functions.js +0 -105
  243. package/dist/src/typus_stake_pool/admin/structs.d.ts +0 -365
  244. package/dist/src/typus_stake_pool/admin/structs.js +0 -789
  245. package/dist/src/typus_stake_pool/index.d.ts +0 -1
  246. package/dist/src/typus_stake_pool/index.js +0 -7
  247. package/dist/src/typus_stake_pool/init.d.ts +0 -2
  248. package/dist/src/typus_stake_pool/init.js +0 -69
  249. package/dist/src/typus_stake_pool/stake-pool/functions.d.ts +0 -229
  250. package/dist/src/typus_stake_pool/stake-pool/functions.js +0 -380
  251. package/dist/src/typus_stake_pool/stake-pool/structs.d.ts +0 -2199
  252. package/dist/src/typus_stake_pool/stake-pool/structs.js +0 -4653
  253. /package/dist/src/{pyth.d.ts → grpc/ledgerService.d.ts} +0 -0
package/dist/src/fetch.js CHANGED
@@ -1,51 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
45
- }
46
- };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
2
  Object.defineProperty(exports, "__esModule", { value: true });
50
3
  exports.getLpPools = getLpPools;
51
4
  exports.getLpPool = getLpPool;
@@ -56,293 +9,187 @@ exports.getUserOrders = getUserOrders;
56
9
  exports.getUserPositions = getUserPositions;
57
10
  exports.parseOptionBidReceipts = parseOptionBidReceipts;
58
11
  exports.getUserStake = getUserStake;
59
- exports.getUserStakeById = getUserStakeById;
60
12
  exports.getDeactivatingShares = getDeactivatingShares;
61
13
  exports.getLiquidationPriceAndPnl = getLiquidationPriceAndPnl;
62
- exports.getPositionCount = getPositionCount;
63
14
  exports.getAllPositions = getAllPositions;
64
15
  exports.getAllPositionsWithTradingSymbol = getAllPositionsWithTradingSymbol;
65
- var client_1 = require("@mysten/sui/client");
66
- var transactions_1 = require("@mysten/sui/transactions");
67
- var bcs_1 = require("@mysten/bcs");
68
- var structs_1 = require("./typus_perp/trading/structs");
69
- var structs_2 = require("./typus_perp/lp-pool/structs");
70
- var structs_3 = require("./typus_perp/position/structs");
71
- var functions_1 = require("./typus_perp/trading/functions");
72
- var functions_2 = require("./typus_stake_pool/stake-pool/functions");
73
- var structs_4 = require("./typus_stake_pool/stake-pool/structs");
74
- var constants_1 = require("@typus/typus-sdk/dist/src/constants");
75
- var utils_1 = require("@typus/typus-sdk/dist/src/utils");
76
- var _1 = require(".");
77
- var structs_5 = require("./_dependencies/source/0xb4f25230ba74837d8299e92951306100c4a532e8c48cc3d8828abe9b91c8b274/vault/structs");
78
- var typus_perp_1 = require("./typus_perp");
79
- var functions_3 = require("./typus_perp/lp-pool/functions");
80
- function getLpPools(config) {
81
- return __awaiter(this, void 0, void 0, function () {
82
- var provider, dynamicFields, lpPools, _a, _b, field, lpPool, e_1_1;
83
- var e_1, _c;
84
- return __generator(this, function (_d) {
85
- switch (_d.label) {
86
- case 0:
87
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
88
- return [4 /*yield*/, provider.getDynamicFields({
89
- parentId: _1.LIQUIDITY_POOL,
90
- })];
91
- case 1:
92
- dynamicFields = _d.sent();
93
- lpPools = [];
94
- _d.label = 2;
95
- case 2:
96
- _d.trys.push([2, 7, 8, 9]);
97
- _a = __values(dynamicFields.data), _b = _a.next();
98
- _d.label = 3;
99
- case 3:
100
- if (!!_b.done) return [3 /*break*/, 6];
101
- field = _b.value;
102
- return [4 /*yield*/, structs_2.LiquidityPool.fetch(provider, field.objectId)];
103
- case 4:
104
- lpPool = _d.sent();
105
- // console.log(lpPool);
106
- lpPools.push(lpPool);
107
- _d.label = 5;
108
- case 5:
109
- _b = _a.next();
110
- return [3 /*break*/, 3];
111
- case 6: return [3 /*break*/, 9];
112
- case 7:
113
- e_1_1 = _d.sent();
114
- e_1 = { error: e_1_1 };
115
- return [3 /*break*/, 9];
116
- case 8:
117
- try {
118
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
119
- }
120
- finally { if (e_1) throw e_1.error; }
121
- return [7 /*endfinally*/];
122
- case 9: return [2 /*return*/, lpPools];
123
- }
124
- });
125
- });
16
+ exports.fetchUserProfits = fetchUserProfits;
17
+ exports.fetchLockedUserProfits = fetchLockedUserProfits;
18
+ exports.fetchAllUserProfits = fetchAllUserProfits;
19
+ exports.fetchAllLockedUserProfits = fetchAllLockedUserProfits;
20
+ const transactions_1 = require("@mysten/sui/transactions");
21
+ const client_1 = require("@mysten/sui/client");
22
+ const bcs_1 = require("@mysten/bcs");
23
+ const constants_1 = require("@typus/typus-sdk/dist/src/constants");
24
+ const utils_1 = require("@typus/typus-sdk/dist/src/utils");
25
+ const utils_2 = require("@typus/typus-sdk/dist/src/utils");
26
+ const _1 = require(".");
27
+ const trading_1 = require("./generated/typus_perp/trading");
28
+ const lp_pool_1 = require("./generated/typus_perp/lp_pool");
29
+ const position_1 = require("./generated/typus_perp/position");
30
+ const trading_2 = require("./generated/typus_perp/trading");
31
+ const lp_pool_2 = require("./generated/typus_perp/lp_pool");
32
+ const stake_pool_1 = require("./generated/typus_stake_pool/stake_pool");
33
+ const vault_1 = require("./generated/typus_perp/deps/typus_framework/vault");
34
+ async function getLpPools(client) {
35
+ // let dynamicFields = await client.getDynamicFields({
36
+ // parentId: LIQUIDITY_POOL,
37
+ // });
38
+ // let lpPools: (typeof LiquidityPool.$inferType)[] = [];
39
+ // for (const field of dynamicFields.data) {
40
+ // let lpPool = await getLpPool(client, field.objectId);
41
+ // // console.log(lpPool);
42
+ // lpPools.push(lpPool);
43
+ // }
44
+ // return lpPools.sort((a, b) => Number(a.index) - Number(b.index));
45
+ return (await client.getDynamicObjectFieldsBcs(_1.LIQUIDITY_POOL).then((x) => x.map((x) => lp_pool_2.LiquidityPool.parse(x)))).sort((a, b) => Number(a.index) - Number(b.index));
126
46
  }
127
- function getLpPool(config_1) {
128
- return __awaiter(this, arguments, void 0, function (config, objectId) {
129
- var provider, lpPool;
130
- if (objectId === void 0) { objectId = _1.LIQUIDITY_POOL_0; }
131
- return __generator(this, function (_a) {
132
- switch (_a.label) {
133
- case 0:
134
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
135
- return [4 /*yield*/, structs_2.LiquidityPool.fetch(provider, objectId)];
136
- case 1:
137
- lpPool = _a.sent();
138
- return [2 /*return*/, lpPool];
139
- }
140
- });
141
- });
47
+ async function getLpPool(client, objectId) {
48
+ // const data = await client.getObject({
49
+ // id: objectId,
50
+ // options: {
51
+ // // request the bcs data when loading your object
52
+ // showBcs: true,
53
+ // },
54
+ // });
55
+ // if (data.data?.bcs?.dataType !== "moveObject") {
56
+ // throw new Error("Expected a move object");
57
+ // }
58
+ // // console.log(data.data.bcs.bcsBytes);
59
+ // return LiquidityPool.fromBase64(data.data.bcs.bcsBytes);
60
+ const bcs = await client.getObjectBcs(objectId);
61
+ return lp_pool_2.LiquidityPool.parse(bcs);
142
62
  }
143
- function getStakePools(config) {
144
- return __awaiter(this, void 0, void 0, function () {
145
- var provider, dynamicFields, stakePools, _a, _b, field, stakePool, e_2_1;
146
- var e_2, _c;
147
- return __generator(this, function (_d) {
148
- switch (_d.label) {
149
- case 0:
150
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
151
- return [4 /*yield*/, provider.getDynamicFields({
152
- parentId: _1.STAKE_POOL,
153
- })];
154
- case 1:
155
- dynamicFields = _d.sent();
156
- stakePools = [];
157
- _d.label = 2;
158
- case 2:
159
- _d.trys.push([2, 7, 8, 9]);
160
- _a = __values(dynamicFields.data), _b = _a.next();
161
- _d.label = 3;
162
- case 3:
163
- if (!!_b.done) return [3 /*break*/, 6];
164
- field = _b.value;
165
- return [4 /*yield*/, structs_4.StakePool.fetch(provider, field.objectId)];
166
- case 4:
167
- stakePool = _d.sent();
168
- // console.log(stakePool);
169
- stakePools.push(stakePool);
170
- _d.label = 5;
171
- case 5:
172
- _b = _a.next();
173
- return [3 /*break*/, 3];
174
- case 6: return [3 /*break*/, 9];
175
- case 7:
176
- e_2_1 = _d.sent();
177
- e_2 = { error: e_2_1 };
178
- return [3 /*break*/, 9];
179
- case 8:
180
- try {
181
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
182
- }
183
- finally { if (e_2) throw e_2.error; }
184
- return [7 /*endfinally*/];
185
- case 9: return [2 /*return*/, stakePools];
186
- }
187
- });
188
- });
63
+ // getLpPool(client).then((x) => console.log(x));
64
+ async function getStakePools(client) {
65
+ // let dynamicFields = await client.getDynamicFields({
66
+ // parentId: STAKE_POOL,
67
+ // });
68
+ // let stakePools: (typeof StakePool.$inferType)[] = [];
69
+ // for (const field of dynamicFields.data) {
70
+ // let stakePool = await getStakePool(client, field.objectId);
71
+ // // console.log(stakePool);
72
+ // stakePools.push(stakePool);
73
+ // }
74
+ // return stakePools.sort((a, b) => Number(a.pool_info.index) - Number(b.pool_info.index));
75
+ return (await client.getDynamicObjectFieldsBcs(_1.STAKE_POOL).then((x) => x.map((x) => stake_pool_1.StakePool.parse(x)))).sort((a, b) => Number(a.pool_info.index) - Number(b.pool_info.index));
189
76
  }
190
- function getStakePool(config_1) {
191
- return __awaiter(this, arguments, void 0, function (config, objectId) {
192
- var provider, stakePool;
193
- if (objectId === void 0) { objectId = _1.STAKE_POOL_0; }
194
- return __generator(this, function (_a) {
195
- switch (_a.label) {
196
- case 0:
197
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
198
- return [4 /*yield*/, structs_4.StakePool.fetch(provider, objectId)];
199
- case 1:
200
- stakePool = _a.sent();
201
- return [2 /*return*/, stakePool];
202
- }
203
- });
204
- });
77
+ async function getStakePool(client, objectId) {
78
+ // const data = await client.getObject({
79
+ // id: objectId,
80
+ // options: {
81
+ // // request the bcs data when loading your object
82
+ // showBcs: true,
83
+ // },
84
+ // });
85
+ // if (data.data?.bcs?.dataType !== "moveObject") {
86
+ // throw new Error("Expected a move object");
87
+ // }
88
+ // // console.log(data.data.bcs.bcsBytes);
89
+ // return StakePool.fromBase64(data.data.bcs.bcsBytes);
90
+ const bcs = await client.getObjectBcs(objectId);
91
+ return stake_pool_1.StakePool.parse(bcs);
205
92
  }
206
- function getMarkets(config, input) {
207
- return __awaiter(this, void 0, void 0, function () {
208
- var provider, transaction, devInspectTransactionBlockResult, bytes, reader, marketIndex, results;
209
- return __generator(this, function (_a) {
210
- switch (_a.label) {
211
- case 0:
212
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
213
- transaction = new transactions_1.Transaction();
214
- transaction.moveCall({
215
- target: "".concat(typus_perp_1.PUBLISHED_AT, "::trading::get_markets_bcs"),
216
- arguments: [transaction.object(_1.MARKET), transaction.pure.vector("u64", input.indexes)],
217
- });
218
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: constants_1.SENDER, transactionBlock: transaction })];
219
- case 1:
220
- devInspectTransactionBlockResult = _a.sent();
221
- bytes = devInspectTransactionBlockResult.results[0].returnValues[0][0];
222
- reader = new bcs_1.BcsReader(new Uint8Array(bytes));
223
- marketIndex = 0;
224
- results = [];
225
- reader.readVec(function (reader, i) {
226
- if (i == marketIndex) {
227
- var length_1 = reader.readULEB();
228
- var bytes_1 = reader.readBytes(length_1);
229
- var markets = structs_1.Markets.fromBcs(Uint8Array.from(Array.from(bytes_1)));
230
- results.push({ markets: markets, symbolMarkets: [] });
231
- marketIndex = i + markets.symbols.length + 1;
232
- }
233
- else {
234
- var length_2 = reader.readULEB();
235
- var bytes_2 = reader.readBytes(length_2);
236
- var symbolMarket = structs_1.SymbolMarket.fromBcs(Uint8Array.from(Array.from(bytes_2)));
237
- results[results.length - 1].symbolMarkets.push(symbolMarket);
238
- }
239
- });
240
- return [2 /*return*/, results];
241
- }
242
- });
93
+ /**
94
+ * @returns [Markets, SymbolMarket[]][]
95
+ */
96
+ async function getMarkets(client, input) {
97
+ let tx = new transactions_1.Transaction();
98
+ tx.add((0, trading_1.getMarketsBcs)({ arguments: { registry: _1.MARKET, indexes: input.indexes.map((x) => BigInt(x)) } }));
99
+ // tx.setSender(SENDER);
100
+ // let bcs = await tx.build({ client: client.jsonRpcClient, onlyTransactionKind: true });
101
+ // // console.log("bcs", bcs);
102
+ // let res = await client.simulateTransaction(bcs);
103
+ let devInspectTransactionBlockResult = await client.devInspectTransactionBlock({ sender: constants_1.SENDER, transactionBlock: tx });
104
+ // @ts-ignore
105
+ let bytes = devInspectTransactionBlockResult.results[0].returnValues[0][0];
106
+ let reader = new bcs_1.BcsReader(new Uint8Array(bytes));
107
+ let marketIndex = 0;
108
+ let results = [];
109
+ reader.readVec((reader, i) => {
110
+ if (i == marketIndex) {
111
+ let length = reader.readULEB();
112
+ let bytes = reader.readBytes(length);
113
+ let markets = trading_1.Markets.parse(bytes);
114
+ results.push([markets, []]);
115
+ marketIndex = i + markets.symbols.length + 1;
116
+ }
117
+ else {
118
+ let length = reader.readULEB();
119
+ let bytes = reader.readBytes(length);
120
+ let symbolMarket = trading_1.SymbolMarket.parse(bytes);
121
+ results[results.length - 1][1].push(symbolMarket);
122
+ }
243
123
  });
124
+ return results;
244
125
  }
245
- // export async function getMarkets(config: TypusConfig): Promise<Markets[]> {
246
- // let provider = new SuiClient({ url: config.rpcEndpoint });
247
- // // const marketRegistry = await MarketRegistry.fetch(provider, MARKET);
248
- // // console.log(marketRegistry.markets.vid);
249
- // let dynamicFields = await provider.getDynamicFields({
250
- // // @ts-ignore
251
- // parentId: config.object.perpMarketVid,
252
- // });
253
- // let markets: Markets[] = [];
254
- // for (const field of dynamicFields.data) {
255
- // let market = await Markets.fetch(provider, field.objectId);
256
- // // console.log(market);
257
- // markets.push(market);
258
- // }
259
- // return markets;
260
- // }
261
- // export async function getSymbolMarkets(provider: SuiClient, market: Markets): Promise<Map<string, SymbolMarket>> {
262
- // let symbolMarkets = new Map<string, SymbolMarket>();
263
- // let dynamicFields = await provider.getDynamicFields({
264
- // parentId: market.symbolMarkets.id,
265
- // });
266
- // for (const field of dynamicFields.data) {
267
- // let symbolMarket = await SymbolMarket.fetch(provider, field.objectId);
268
- // // @ts-ignore
269
- // let key = field.name.value.name;
270
- // // console.log(key);
271
- // // console.log(symbolMarket);
272
- // symbolMarkets.set(key, symbolMarket);
273
- // }
274
- // return symbolMarkets;
275
- // }
276
- function getUserOrders(config, user) {
277
- return __awaiter(this, void 0, void 0, function () {
278
- var provider, tx, res, returnValues, reader, orders;
279
- return __generator(this, function (_a) {
280
- switch (_a.label) {
281
- case 0:
282
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
283
- tx = new transactions_1.Transaction();
284
- (0, functions_1.getUserOrders)(tx, {
285
- version: _1.PERP_VERSION,
286
- registry: _1.MARKET,
287
- marketIndex: BigInt(0),
288
- user: user,
289
- });
290
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: user, transactionBlock: tx })];
291
- case 1:
292
- res = _a.sent();
293
- returnValues = res.results[0].returnValues[0][0];
294
- reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
295
- orders = [];
296
- reader.readVec(function (reader) {
297
- var length = reader.readULEB();
298
- var bytes = reader.readBytes(length);
299
- var order = structs_3.TradingOrder.fromBcs(Uint8Array.from(Array.from(bytes)));
300
- orders.push(order);
301
- });
302
- // let orders: TradingOrder[] = readVecOrder(Uint8Array.from(returnValues));
303
- // console.log(orders);
304
- return [2 /*return*/, orders];
305
- }
126
+ async function getUserOrders(client, input) {
127
+ let tx = new transactions_1.Transaction();
128
+ for (let i of input.indexes) {
129
+ tx.add((0, trading_2.getUserOrders)({
130
+ arguments: {
131
+ version: _1.PERP_VERSION,
132
+ registry: _1.MARKET,
133
+ marketIndex: BigInt(i),
134
+ user: input.user,
135
+ },
136
+ }));
137
+ }
138
+ let res = await client.devInspectTransactionBlock({ sender: input.user, transactionBlock: tx });
139
+ // console.log(res);
140
+ let orders = [];
141
+ for (var x = 0; x < input.indexes.length; x++) {
142
+ // @ts-ignore
143
+ let returnValues = res.results[x].returnValues[0][0];
144
+ // console.log(returnValues);
145
+ let reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
146
+ reader.readVec((reader) => {
147
+ let length = reader.readULEB();
148
+ let bytes = reader.readBytes(length);
149
+ let order = position_1.TradingOrder.parse(bytes);
150
+ orders.push({ ...order, marketIndex: x });
306
151
  });
307
- });
152
+ }
153
+ return orders;
308
154
  }
309
- function getUserPositions(config, user) {
310
- return __awaiter(this, void 0, void 0, function () {
311
- var provider, tx, res, returnValues, reader, positions;
312
- return __generator(this, function (_a) {
313
- switch (_a.label) {
314
- case 0:
315
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
316
- tx = new transactions_1.Transaction();
317
- (0, functions_1.getUserPositions)(tx, {
318
- version: _1.PERP_VERSION,
319
- registry: _1.MARKET,
320
- marketIndex: BigInt(0),
321
- user: user,
322
- });
323
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: user, transactionBlock: tx })];
324
- case 1:
325
- res = _a.sent();
326
- returnValues = res.results[0].returnValues[0][0];
327
- reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
328
- positions = [];
329
- reader.readVec(function (reader) {
330
- var length = reader.readULEB();
331
- var bytes = reader.readBytes(length);
332
- var position = structs_3.Position.fromBcs(Uint8Array.from(Array.from(bytes)));
333
- positions.push(position);
334
- });
335
- // let positions: Position[] = readVecPosition(Uint8Array.from(returnValues));
336
- // console.log(positions);
337
- return [2 /*return*/, positions];
338
- }
155
+ async function getUserPositions(client, input) {
156
+ let tx = new transactions_1.Transaction();
157
+ for (let i of input.indexes) {
158
+ tx.add((0, trading_2.getUserPositions)({
159
+ arguments: {
160
+ version: _1.PERP_VERSION,
161
+ registry: _1.MARKET,
162
+ marketIndex: BigInt(i),
163
+ user: input.user,
164
+ },
165
+ }));
166
+ }
167
+ let res = await client.devInspectTransactionBlock({ sender: input.user, transactionBlock: tx });
168
+ // console.log(res);
169
+ let positions = [];
170
+ for (var x = 0; x < input.indexes.length; x++) {
171
+ // @ts-ignore
172
+ let returnValues = res.results[x].returnValues[0][0];
173
+ // console.log(returnValues);
174
+ let reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
175
+ reader.readVec((reader) => {
176
+ let length = reader.readULEB();
177
+ let bytes = reader.readBytes(length);
178
+ let position = position_1.Position.parse(bytes);
179
+ positions.push({
180
+ ...position,
181
+ marketIndex: x,
182
+ });
339
183
  });
340
- });
184
+ }
185
+ // let positions: Position[] = readVecPosition(Uint8Array.from(returnValues));
186
+ // console.log(positions);
187
+ return positions;
341
188
  }
342
189
  function parseOptionBidReceipts(positions) {
343
- return positions.map(function (position) {
344
- if (position.optionCollateralInfo) {
345
- var bidReceipt = structs_5.TypusBidReceipt.fromBcs(Uint8Array.from(Array.from(position.optionCollateralInfo.bidReceiptsBcs[0])));
190
+ return positions.map((position) => {
191
+ if (position.option_collateral_info) {
192
+ let bidReceipt = vault_1.TypusBidReceipt.parse(Uint8Array.from(Array.from(position.option_collateral_info.bid_receipts_bcs[0])));
346
193
  // console.log(bidReceipt);
347
194
  return bidReceipt;
348
195
  }
@@ -352,365 +199,402 @@ function parseOptionBidReceipts(positions) {
352
199
  });
353
200
  }
354
201
  /**
355
- * @returns [lpShare, incentives]
202
+ * @returns [lpShare, incentives][]
356
203
  */
357
- function getUserStake(config, user) {
358
- return __awaiter(this, void 0, void 0, function () {
359
- var provider, tx, res, returnValues, reader, length_3, lpShare, incentives_1;
360
- return __generator(this, function (_a) {
361
- switch (_a.label) {
362
- case 0:
363
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
364
- tx = new transactions_1.Transaction();
365
- // allocateIncentive(tx, {
366
- // version: STAKE_POOL_VERSION,
367
- // registry: STAKE_POOL,
368
- // index: BigInt(0),
369
- // clock: CLOCK,
370
- // });
371
- (0, functions_2.getUserShares)(tx, {
372
- registry: _1.STAKE_POOL,
373
- index: BigInt(0),
374
- user: user,
375
- });
376
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: user, transactionBlock: tx })];
377
- case 1:
378
- res = _a.sent();
379
- // console.log(res);
380
- if (res.results) {
381
- returnValues = res.results[0].returnValues[0][0];
382
- reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
383
- length_3 = reader.readULEB();
384
- // console.log(length);
385
- if (length_3 == 0) {
386
- return [2 /*return*/, null];
387
- }
388
- lpShare = structs_4.LpUserShare.fromFields(structs_4.LpUserShare.bcs.read(reader));
389
- incentives_1 = [];
390
- reader.readVec(function (reader) {
391
- var incentive = reader.read64();
392
- incentives_1.push(incentive);
393
- });
394
- return [2 /*return*/, [lpShare, incentives_1]];
395
- }
396
- else {
397
- return [2 /*return*/, null];
398
- }
399
- return [2 /*return*/];
400
- }
401
- });
402
- });
403
- }
404
- /**
405
- * @returns [lpShare, incentives]
406
- */
407
- function getUserStakeById(config, userShareId) {
408
- return __awaiter(this, void 0, void 0, function () {
409
- var provider, tx, res, returnValues, reader, length_4, lpShare, incentives_2;
410
- return __generator(this, function (_a) {
411
- switch (_a.label) {
412
- case 0:
413
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
414
- tx = new transactions_1.Transaction();
415
- (0, functions_2.allocateIncentive)(tx, {
416
- version: _1.STAKE_POOL_VERSION,
417
- registry: _1.STAKE_POOL,
418
- index: BigInt(0),
419
- clock: constants_1.CLOCK,
420
- });
421
- (0, functions_2.getUserSharesByUserShareId)(tx, {
422
- registry: _1.STAKE_POOL,
423
- index: BigInt(0),
424
- userShareId: BigInt(userShareId),
425
- });
426
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: constants_1.SENDER, transactionBlock: tx })];
427
- case 1:
428
- res = _a.sent();
429
- // console.log(res);
430
- if (res.results) {
431
- returnValues = res.results[1].returnValues[0][0];
432
- reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
433
- length_4 = reader.readULEB();
434
- // console.log(length);
435
- if (length_4 == 0) {
436
- return [2 /*return*/, null];
437
- }
438
- lpShare = structs_4.LpUserShare.fromFields(structs_4.LpUserShare.bcs.read(reader));
439
- incentives_2 = [];
440
- reader.readVec(function (reader) {
441
- var incentive = reader.read64();
442
- incentives_2.push(incentive);
443
- });
444
- return [2 /*return*/, [lpShare, incentives_2]];
445
- }
446
- else {
447
- return [2 /*return*/, null];
448
- }
449
- return [2 /*return*/];
204
+ async function getUserStake(client, input) {
205
+ let tx = new transactions_1.Transaction();
206
+ for (let i of input.indexes) {
207
+ tx.add((0, stake_pool_1.allocateIncentive)({
208
+ arguments: {
209
+ version: _1.STAKE_POOL_VERSION,
210
+ registry: _1.STAKE_POOL,
211
+ index: BigInt(i),
212
+ },
213
+ }));
214
+ tx.add((0, stake_pool_1.getUserShares)({
215
+ arguments: {
216
+ registry: _1.STAKE_POOL,
217
+ index: BigInt(i),
218
+ user: input.user,
219
+ },
220
+ }));
221
+ }
222
+ let res = await client.devInspectTransactionBlock({ sender: input.user, transactionBlock: tx });
223
+ // console.log(res);
224
+ if (res.results) {
225
+ let results = [];
226
+ for (var x = 0; x < input.indexes.length; x++) {
227
+ // @ts-ignore
228
+ var returnValues = res.results[2 * x + 1].returnValues[0][0];
229
+ // console.log(returnValues);
230
+ var reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
231
+ let length = reader.readULEB();
232
+ if (length == 0) {
233
+ results.push([null, []]);
234
+ continue;
450
235
  }
451
- });
452
- });
236
+ // let lpShare = LpUserShare.fromFields(LpUserShare.bcs.read(reader));
237
+ let lpShare = stake_pool_1.LpUserShare.read(reader);
238
+ let incentives = [];
239
+ reader.readVec((reader) => {
240
+ let incentive = reader.read64();
241
+ incentives.push(incentive);
242
+ });
243
+ results.push([lpShare, incentives]);
244
+ }
245
+ return results;
246
+ }
247
+ else {
248
+ return [];
249
+ }
453
250
  }
454
251
  /**
455
252
  * @returns deactivatingShares[]
456
253
  */
457
- function getDeactivatingShares(config, user) {
458
- return __awaiter(this, void 0, void 0, function () {
459
- var provider, tx, res, returnValues, reader, deactivatingShares_1;
460
- return __generator(this, function (_a) {
461
- switch (_a.label) {
462
- case 0:
463
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
464
- tx = new transactions_1.Transaction();
465
- (0, functions_3.getUserDeactivatingShares)(tx, _1.TLP_TOKEN, {
466
- registry: _1.LP_POOL,
467
- index: BigInt(0),
468
- user: user,
469
- });
470
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: user, transactionBlock: tx })];
471
- case 1:
472
- res = _a.sent();
473
- // console.log(res);
474
- if (res.results) {
475
- returnValues = res.results[0].returnValues[0][0];
476
- reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
477
- deactivatingShares_1 = [];
478
- reader.readVec(function (reader) {
479
- var length = reader.readULEB();
480
- var lpShare = structs_2.DeactivatingShares.bcs.read(reader);
481
- // @ts-ignore
482
- deactivatingShares_1.push(lpShare);
483
- });
484
- // console.log(deactivatingShares);
485
- return [2 /*return*/, deactivatingShares_1];
486
- }
487
- else {
488
- return [2 /*return*/, []];
489
- }
490
- return [2 /*return*/];
491
- }
492
- });
493
- });
254
+ async function getDeactivatingShares(client, input) {
255
+ let tx = new transactions_1.Transaction();
256
+ for (let i of input.indexes) {
257
+ tx.add((0, lp_pool_1.getUserDeactivatingShares)({
258
+ arguments: {
259
+ registry: _1.LP_POOL,
260
+ index: BigInt(i),
261
+ user: input.user,
262
+ },
263
+ typeArguments: ["TLP_TOKEN"],
264
+ }));
265
+ }
266
+ let res = await client.devInspectTransactionBlock({ sender: input.user, transactionBlock: tx });
267
+ // console.log(res);
268
+ if (res.results) {
269
+ let deactivatingShares = [];
270
+ for (var x = 0; x < input.indexes.length; x++) {
271
+ // @ts-ignore
272
+ var returnValues = res.results[0].returnValues[0][0];
273
+ // console.log(returnValues);
274
+ var reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
275
+ reader.readVec((reader) => {
276
+ let length = reader.readULEB();
277
+ let lpShare = lp_pool_1.DeactivatingShares.read(reader);
278
+ // @ts-ignore
279
+ deactivatingShares.push(lpShare);
280
+ });
281
+ }
282
+ // console.log(deactivatingShares);
283
+ return deactivatingShares;
284
+ }
285
+ else {
286
+ return [];
287
+ }
494
288
  }
495
289
  /**
496
290
  * @returns [liquidationPrice, pnl(in USD)]
497
291
  */
498
- function getLiquidationPriceAndPnl(config, pythClient, input) {
499
- return __awaiter(this, void 0, void 0, function () {
500
- var provider, tx, tokens, _a, _b, position, TOKEN, BASE_TOKEN, _c, _d, token, _e, _f, position, TOKEN, BASE_TOKEN, res, results;
501
- var e_3, _g, e_4, _h, e_5, _j;
502
- return __generator(this, function (_k) {
503
- switch (_k.label) {
504
- case 0:
505
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
506
- tx = new transactions_1.Transaction();
507
- tokens = [];
508
- try {
509
- for (_a = __values(input.positions), _b = _a.next(); !_b.done; _b = _a.next()) {
510
- position = _b.value;
511
- TOKEN = (0, constants_1.typeArgToAsset)(position.collateralToken.name);
512
- BASE_TOKEN = (0, constants_1.typeArgToAsset)(position.symbol.baseToken.name);
513
- tokens.push(TOKEN);
514
- tokens.push(BASE_TOKEN);
515
- }
516
- }
517
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
518
- finally {
519
- try {
520
- if (_b && !_b.done && (_g = _a.return)) _g.call(_a);
521
- }
522
- finally { if (e_3) throw e_3.error; }
523
- }
524
- return [4 /*yield*/, (0, utils_1.updatePyth)(pythClient, tx, Array.from(new Set(tokens)))];
525
- case 1:
526
- _k.sent();
527
- try {
528
- for (_c = __values(Array.from(new Set(tokens))), _d = _c.next(); !_d.done; _d = _c.next()) {
529
- token = _d.value;
530
- (0, utils_1.updateOracleWithPythUsd)(pythClient, tx, config.package.oracle, token);
531
- }
532
- }
533
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
534
- finally {
535
- try {
536
- if (_d && !_d.done && (_h = _c.return)) _h.call(_c);
537
- }
538
- finally { if (e_4) throw e_4.error; }
539
- }
540
- try {
541
- for (_e = __values(input.positions), _f = _e.next(); !_f.done; _f = _e.next()) {
542
- position = _f.value;
543
- TOKEN = (0, constants_1.typeArgToAsset)(position.collateralToken.name);
544
- BASE_TOKEN = (0, constants_1.typeArgToAsset)(position.symbol.baseToken.name);
545
- (0, functions_1.getEstimatedLiquidationPriceAndPnl)(tx, [position.collateralToken.name, position.symbol.baseToken.name], {
546
- version: _1.PERP_VERSION,
547
- registry: _1.MARKET,
548
- poolRegistry: _1.LP_POOL,
549
- marketIndex: BigInt(0),
550
- poolIndex: BigInt(0),
551
- typusOracleCToken: constants_1.oracle[_1.NETWORK][TOKEN],
552
- typusOracleTradingSymbol: constants_1.oracle[_1.NETWORK][BASE_TOKEN],
553
- clock: constants_1.CLOCK,
554
- positionId: position.positionId,
555
- dovRegistry: config.registry.dov.dovSingle,
556
- });
557
- }
558
- }
559
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
560
- finally {
561
- try {
562
- if (_f && !_f.done && (_j = _e.return)) _j.call(_e);
563
- }
564
- finally { if (e_5) throw e_5.error; }
565
- }
566
- return [4 /*yield*/, provider.devInspectTransactionBlock({ sender: input.user, transactionBlock: tx })];
567
- case 2:
568
- res = _k.sent();
569
- results = res.results
570
- ? res.results.slice(-input.positions.length).map(function (x) {
571
- // console.log(x);
572
- var liquidationPrice = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[0][0])));
573
- var isProfit = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[1][0]));
574
- var pnl = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[2][0])));
575
- pnl = isProfit ? pnl : -pnl;
576
- // including closeFee
577
- var isCost = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[3][0]));
578
- var cost = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[4][0])));
579
- cost = isCost ? cost : -cost;
580
- // cost = unrealized_loss + unrealized_trading_fee + unrealized_borrow_fee + unrealized_funding_fee;
581
- var fundingFeeSign = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[5][0]));
582
- var fundingFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[6][0])));
583
- fundingFee = fundingFeeSign ? fundingFee : -fundingFee;
584
- var borrowFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[7][0])));
585
- var closeFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[8][0])));
586
- return {
587
- liquidationPrice: liquidationPrice,
588
- pnl: pnl + closeFee,
589
- fundingFee: fundingFee,
590
- borrowFee: borrowFee,
591
- closeFee: closeFee,
592
- pnlAfterFee: pnl - cost,
593
- };
594
- })
595
- : [];
596
- // console.log(results);
597
- return [2 /*return*/, results];
598
- }
599
- });
292
+ async function getLiquidationPriceAndPnl(client, input) {
293
+ let tx = new transactions_1.Transaction();
294
+ let tokens = [];
295
+ for (let position of input.positions) {
296
+ // parse from Position
297
+ let TOKEN = (0, constants_1.typeArgToAsset)(position.collateral_token.name);
298
+ let BASE_TOKEN = (0, constants_1.typeArgToAsset)(position.symbol.base_token.name);
299
+ tokens.push(TOKEN);
300
+ tokens.push(BASE_TOKEN);
301
+ }
302
+ const tokensWithoutTypus = tokens.filter((token) => token !== "TYPUS");
303
+ await (0, utils_1.updatePyth)(client.pythClient, tx, Array.from(new Set(tokensWithoutTypus)));
304
+ for (let token of Array.from(new Set(tokensWithoutTypus))) {
305
+ (0, utils_1.updateOracleWithPythUsd)(client.pythClient, tx, client.config.package.oracle, token);
306
+ }
307
+ if (tokens.includes("TYPUS")) {
308
+ tx = await (0, utils_2.updateOracleWithSignatureTx)(_1.NETWORK, tx, client.config.package.oracle, constants_1.tokenType[_1.NETWORK]["TYPUS"]);
309
+ }
310
+ for (let position of input.positions) {
311
+ // parse from Position
312
+ let TOKEN = (0, constants_1.typeArgToAsset)(position.collateral_token.name);
313
+ let BASE_TOKEN = (0, constants_1.typeArgToAsset)(position.symbol.base_token.name);
314
+ // @ts-ignore
315
+ let index = position.marketIndex;
316
+ tx.add((0, trading_2.getEstimatedLiquidationPriceAndPnl)({
317
+ arguments: {
318
+ version: _1.PERP_VERSION,
319
+ registry: _1.MARKET,
320
+ poolRegistry: _1.LP_POOL,
321
+ marketIndex: BigInt(index),
322
+ poolIndex: BigInt(index),
323
+ typusOracleCToken: constants_1.oracle[_1.NETWORK][TOKEN],
324
+ typusOracleTradingSymbol: constants_1.oracle[_1.NETWORK][BASE_TOKEN],
325
+ positionId: BigInt(position.position_id),
326
+ dovRegistry: client.config.registry.dov.dovSingle,
327
+ },
328
+ typeArguments: [position.collateral_token.name, position.symbol.base_token.name],
329
+ }));
330
+ }
331
+ let res = await client.devInspectTransactionBlock({ sender: constants_1.SENDER, transactionBlock: tx });
332
+ // console.log(res);
333
+ // 0 estimated_liquidation_price,
334
+ // 1 has_profit,
335
+ // 2 pnl_usd,
336
+ // 3 is_cost,
337
+ // 4 unrealized_cost_in_usd,
338
+ // 5 unrealized_funding_sign,
339
+ // 6 unrealized_funding_fee_usd,
340
+ // 7 unrealized_borrow_fee_usd,
341
+ // 8 close_fee_usd
342
+ let results = res.results
343
+ ? res.results.slice(-input.positions.length).map((x) => {
344
+ // console.log(x);
345
+ let liquidationPrice = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[0][0])));
346
+ let isProfit = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[1][0]));
347
+ var pnl = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[2][0])));
348
+ pnl = isProfit ? pnl : -pnl;
349
+ // including closeFee
350
+ let isCost = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[3][0]));
351
+ var cost = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[4][0])));
352
+ cost = isCost ? cost : -cost;
353
+ // cost = unrealized_loss + unrealized_trading_fee + unrealized_borrow_fee + unrealized_funding_fee;
354
+ let fundingFeeSign = bcs_1.bcs.bool().parse(Uint8Array.from(x.returnValues[5][0]));
355
+ var fundingFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[6][0])));
356
+ fundingFee = fundingFeeSign ? fundingFee : -fundingFee;
357
+ let borrowFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[7][0])));
358
+ let closeFee = Number(bcs_1.bcs.u64().parse(Uint8Array.from(x.returnValues[8][0])));
359
+ return {
360
+ liquidationPrice,
361
+ pnl: pnl + closeFee,
362
+ fundingFee,
363
+ borrowFee,
364
+ closeFee,
365
+ pnlAfterFee: pnl - cost,
366
+ };
367
+ })
368
+ : [];
369
+ // console.log(results);
370
+ return results;
371
+ }
372
+ async function getAllPositions(client, input) {
373
+ let tx = new transactions_1.Transaction();
374
+ tx.add((0, trading_2.getAllPositions)({
375
+ arguments: {
376
+ version: _1.PERP_VERSION,
377
+ registry: _1.MARKET,
378
+ marketIndex: BigInt(input.marketIndex),
379
+ slice: BigInt(input.slice),
380
+ page: BigInt(input.page),
381
+ },
382
+ typeArguments: [constants_1.tokenType[_1.NETWORK][input.baseToken]],
383
+ }));
384
+ let res = await client.devInspectTransactionBlock({
385
+ sender: constants_1.SENDER,
386
+ transactionBlock: tx,
600
387
  });
388
+ if (!res.results?.[0]?.returnValues?.[0]?.[0]) {
389
+ return { positions: [], maxPage: 0 };
390
+ }
391
+ // -- 解析回傳值 -------------------------------------------------
392
+ const raw = new Uint8Array(res.results[0].returnValues[0][0]);
393
+ // 1) 至少要有 8 bytes 的 max_page
394
+ if (raw.length < 8)
395
+ return { positions: [], maxPage: 0 };
396
+ const reader = new bcs_1.BcsReader(raw);
397
+ // 2) 第一個 u8 = user_positions_len + 1
398
+ const userPositionsLen = reader.readULEB() - 1;
399
+ // console.log("userPositionsLen", userPositionsLen);
400
+ const positions = [];
401
+ for (let i = 0; i < userPositionsLen; i++) {
402
+ reader.readULEB();
403
+ const pos = position_1.Position.read(reader);
404
+ positions.push(pos);
405
+ }
406
+ reader.readULEB();
407
+ const maxPage = Number(reader.read64());
408
+ // console.log("maxPage", maxPage);
409
+ return { positions, maxPage };
601
410
  }
602
- function getPositionCount(config, input) {
603
- return __awaiter(this, void 0, void 0, function () {
604
- var provider, tx, res, raw, maxPageBytes, view, maxPage;
605
- var _a, _b, _c, _d;
606
- return __generator(this, function (_e) {
607
- switch (_e.label) {
608
- case 0:
609
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
610
- tx = new transactions_1.Transaction();
611
- // Rust 實作是呼叫 get_all_positions(slice = 1, page = 1) 然後取最後 8 bytes。
612
- // 這裡直接複用相同邏輯,只需要 max_page。
613
- (0, functions_1.getAllPositions)(tx, constants_1.tokenType[_1.NETWORK][input.baseToken], {
614
- version: _1.PERP_VERSION,
615
- registry: _1.MARKET,
616
- marketIndex: BigInt(0),
617
- slice: BigInt(1),
618
- page: BigInt(1),
619
- });
620
- return [4 /*yield*/, provider.devInspectTransactionBlock({
621
- sender: "0x0000000000000000000000000000000000000000000000000000000000000000",
622
- transactionBlock: tx,
623
- })];
624
- case 1:
625
- res = _e.sent();
626
- // 沒有資料時,回傳 0
627
- if (!((_d = (_c = (_b = (_a = res.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.returnValues) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[0])) {
628
- return [2 /*return*/, 0];
629
- }
630
- raw = new Uint8Array(res.results[0].returnValues[0][0]);
631
- // 至少要含 8 bytes 的 max_page;不足代表無 Position
632
- if (raw.length < 8)
633
- return [2 /*return*/, 0];
634
- maxPageBytes = raw.slice(raw.length - 8);
635
- view = new DataView(maxPageBytes.buffer, maxPageBytes.byteOffset, 8);
636
- maxPage = Number(view.getBigUint64(0, true));
637
- return [2 /*return*/, maxPage];
638
- }
411
+ const SLICE = 100;
412
+ async function getAllPositionsWithTradingSymbol(client, input) {
413
+ var { positions: pos, maxPage } = await getAllPositions(client, {
414
+ baseToken: input.baseToken,
415
+ slice: SLICE.toString(),
416
+ page: "1",
417
+ marketIndex: input.marketIndex,
418
+ });
419
+ // console.log(maxPage);
420
+ var positions = pos;
421
+ for (let page = 2; page <= maxPage; page++) {
422
+ console.log(page);
423
+ var { positions: pos, maxPage } = await getAllPositions(client, {
424
+ baseToken: input.baseToken,
425
+ slice: SLICE.toString(),
426
+ page: page.toString(),
427
+ marketIndex: input.marketIndex,
639
428
  });
429
+ positions = positions.concat(pos);
430
+ }
431
+ return positions;
432
+ }
433
+ const TypeNameBcs = bcs_1.bcs.struct("TypeName", {
434
+ name: bcs_1.bcs.string(),
435
+ });
436
+ const UserProfitBcs = bcs_1.bcs.struct("UserProfit", {
437
+ collateral_token: TypeNameBcs,
438
+ base_token: TypeNameBcs,
439
+ position_id: bcs_1.bcs.u64(),
440
+ order_id: bcs_1.bcs.u64(),
441
+ amount: bcs_1.bcs.u64(),
442
+ create_ts_ms: bcs_1.bcs.u64(),
443
+ });
444
+ const LockedUserProfitBcs = bcs_1.bcs.struct("LockedUserProfit", {
445
+ user_profit: UserProfitBcs,
446
+ create_ts_ms: bcs_1.bcs.u64(),
447
+ });
448
+ async function fetchUserProfits(client, input) {
449
+ let tx = new transactions_1.Transaction();
450
+ tx.moveCall({
451
+ target: `${_1.PERP_PACKAGE_ID}::profit_vault::get_user_profits`,
452
+ arguments: [tx.object(input.version), tx.object(input.profitVault), tx.pure.address(input.user)],
453
+ });
454
+ const res = await client.devInspectTransactionBlock({
455
+ sender: constants_1.SENDER,
456
+ transactionBlock: tx,
640
457
  });
458
+ if (!res.results?.[0]?.returnValues?.[0]?.[0]) {
459
+ return [];
460
+ }
461
+ const returnValues = res.results[0].returnValues[0][0];
462
+ const reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
463
+ const profits = [];
464
+ reader.readVec((reader) => {
465
+ const length = reader.readULEB();
466
+ const bytes = reader.readBytes(length);
467
+ const profit = UserProfitBcs.parse(Uint8Array.from(Array.from(bytes)));
468
+ profits.push(profit);
469
+ });
470
+ return profits;
641
471
  }
642
- function getAllPositions(config, input) {
643
- return __awaiter(this, void 0, void 0, function () {
644
- var provider, tx, res, raw, withoutMaxPage, reader, userPositionsLen, positions, i, fields, pos;
645
- var _a, _b, _c, _d;
646
- return __generator(this, function (_e) {
647
- switch (_e.label) {
648
- case 0:
649
- provider = new client_1.SuiClient({ url: config.rpcEndpoint });
650
- tx = new transactions_1.Transaction();
651
- (0, functions_1.getAllPositions)(tx, constants_1.tokenType[_1.NETWORK][input.baseToken], {
652
- version: _1.PERP_VERSION,
653
- registry: _1.MARKET,
654
- marketIndex: BigInt(0),
655
- slice: BigInt(input.slice),
656
- page: BigInt(input.page),
657
- });
658
- return [4 /*yield*/, provider.devInspectTransactionBlock({
659
- sender: "0x0000000000000000000000000000000000000000000000000000000000000000",
660
- transactionBlock: tx,
661
- })];
662
- case 1:
663
- res = _e.sent();
664
- if (!((_d = (_c = (_b = (_a = res.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.returnValues) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[0])) {
665
- return [2 /*return*/, []];
666
- }
667
- raw = new Uint8Array(res.results[0].returnValues[0][0]);
668
- // 1) 至少要有 8 bytes 的 max_page
669
- if (raw.length < 8)
670
- return [2 /*return*/, []];
671
- withoutMaxPage = raw.slice(0, raw.length - 8);
672
- reader = new bcs_1.BcsReader(withoutMaxPage);
673
- userPositionsLen = reader.read8() - 1;
674
- positions = [];
675
- for (i = 0; i < userPositionsLen; i++) {
676
- reader.read16();
677
- fields = structs_3.Position.bcs.read(reader);
678
- pos = structs_3.Position.fromFields(fields);
679
- positions.push(pos);
680
- }
681
- return [2 /*return*/, positions];
682
- }
683
- });
472
+ async function fetchLockedUserProfits(client, input) {
473
+ let tx = new transactions_1.Transaction();
474
+ tx.moveCall({
475
+ target: `${_1.PERP_PACKAGE_ID}::profit_vault::get_locked_user_profits`,
476
+ arguments: [tx.object(_1.PERP_VERSION), tx.object(input.lockVault), tx.pure.address(input.user)],
477
+ });
478
+ const res = await client.devInspectTransactionBlock({
479
+ sender: constants_1.SENDER,
480
+ transactionBlock: tx,
481
+ });
482
+ if (!res.results?.[0]?.returnValues?.[0]?.[0]) {
483
+ return [];
484
+ }
485
+ const returnValues = res.results[0].returnValues[0][0];
486
+ const reader = new bcs_1.BcsReader(new Uint8Array(returnValues));
487
+ const lockedUserProfits = [];
488
+ reader.readVec((reader) => {
489
+ const length = reader.readULEB();
490
+ const bytes = reader.readBytes(length);
491
+ const profit = LockedUserProfitBcs.parse(Uint8Array.from(Array.from(bytes)));
492
+ lockedUserProfits.push(profit);
684
493
  });
494
+ return lockedUserProfits;
685
495
  }
686
- function getAllPositionsWithTradingSymbol(config, input) {
687
- return __awaiter(this, void 0, void 0, function () {
688
- var total, slice, pages, pagePromises, page, results;
689
- return __generator(this, function (_a) {
690
- switch (_a.label) {
691
- case 0: return [4 /*yield*/, getPositionCount(config, { baseToken: input.baseToken })];
692
- case 1:
693
- total = _a.sent();
694
- // 2) 若無倉位直接回傳 []
695
- if (total === 0) {
696
- return [2 /*return*/, []];
697
- }
698
- slice = Math.min(total, 100);
699
- pages = Math.ceil(total / slice);
700
- pagePromises = [];
701
- for (page = 1; page <= pages; page++) {
702
- pagePromises.push(getAllPositions(config, {
703
- baseToken: input.baseToken,
704
- slice: slice.toString(),
705
- page: page.toString(),
706
- }));
707
- }
708
- return [4 /*yield*/, Promise.all(pagePromises)];
709
- case 2:
710
- results = _a.sent();
711
- // 5) 扁平化後回傳
712
- return [2 /*return*/, results.flat()];
713
- }
496
+ async function fetchAllUserProfits(client, input) {
497
+ const provider = new client_1.SuiClient({ url: client.config.rpcEndpoint });
498
+ const profitVaultId = input?.profitVault ?? _1.PROFIT_VAULT;
499
+ // 1. Read ProfitVault object to get user_profits Table ID
500
+ const vaultResponse = await provider.getObject({
501
+ id: profitVaultId,
502
+ options: { showContent: true },
503
+ });
504
+ if (!vaultResponse.data?.content || vaultResponse.data.content.dataType !== "moveObject") {
505
+ return [];
506
+ }
507
+ const fields = vaultResponse.data.content.fields;
508
+ const tableId = fields?.user_profits?.fields?.id?.id;
509
+ if (!tableId) {
510
+ return [];
511
+ }
512
+ // 2. Get all dynamic fields (user addresses) from the Table
513
+ let cursor = null;
514
+ const allUsers = [];
515
+ while (true) {
516
+ const dynamicFields = await provider.getDynamicFields({
517
+ parentId: tableId,
518
+ cursor,
519
+ limit: 50,
714
520
  });
521
+ for (const field of dynamicFields.data) {
522
+ const userAddress = field.name.value;
523
+ if (userAddress) {
524
+ allUsers.push(userAddress);
525
+ }
526
+ }
527
+ if (!dynamicFields.hasNextPage) {
528
+ break;
529
+ }
530
+ cursor = dynamicFields.nextCursor ?? null;
531
+ }
532
+ // 3. For each user, fetch their profits
533
+ const fetchUserProfitsPromises = [];
534
+ for (const user of allUsers) {
535
+ try {
536
+ const fetchUserProfitsWithUser = async () => {
537
+ const profits = await fetchUserProfits(client, { profitVault: profitVaultId, version: _1.PERP_VERSION, user });
538
+ return { user, profits };
539
+ };
540
+ fetchUserProfitsPromises.push(fetchUserProfitsWithUser());
541
+ }
542
+ catch (e) {
543
+ console.error(`Failed to get profits for user ${user}:`, e);
544
+ }
545
+ }
546
+ const results = await Promise.all(fetchUserProfitsPromises);
547
+ return results;
548
+ }
549
+ async function fetchAllLockedUserProfits(client, input) {
550
+ const provider = new client_1.SuiClient({ url: client.config.rpcEndpoint });
551
+ // 1. Read LockVault object to get locked_user_profits Table ID
552
+ const vaultResponse = await provider.getObject({
553
+ id: input?.lockVault ?? _1.LOCK_VAULT,
554
+ options: { showContent: true },
715
555
  });
556
+ if (!vaultResponse.data?.content || vaultResponse.data.content.dataType !== "moveObject") {
557
+ return [];
558
+ }
559
+ const fields = vaultResponse.data.content.fields;
560
+ const tableId = fields?.locked_user_profits?.fields?.id?.id;
561
+ if (!tableId) {
562
+ return [];
563
+ }
564
+ // 2. Get all dynamic fields (user addresses) from the Table
565
+ let cursor = null;
566
+ const allUsers = [];
567
+ while (true) {
568
+ const dynamicFields = await provider.getDynamicFields({
569
+ parentId: tableId,
570
+ cursor,
571
+ limit: 50,
572
+ });
573
+ for (const field of dynamicFields.data) {
574
+ const userAddress = field.name.value;
575
+ if (userAddress) {
576
+ allUsers.push(userAddress);
577
+ }
578
+ }
579
+ if (!dynamicFields.hasNextPage) {
580
+ break;
581
+ }
582
+ cursor = dynamicFields.nextCursor ?? null;
583
+ }
584
+ // 3. For each user, fetch their locked profits
585
+ const fetchLockedUserProfitsPromises = [];
586
+ for (const user of allUsers) {
587
+ try {
588
+ const fetchLockedUserProfitsWithUser = async () => {
589
+ const lockedUserProfits = await fetchLockedUserProfits(client, { lockVault: _1.LOCK_VAULT, version: _1.PERP_VERSION, user });
590
+ return { user, lockedUserProfits };
591
+ };
592
+ fetchLockedUserProfitsPromises.push(fetchLockedUserProfitsWithUser());
593
+ }
594
+ catch (e) {
595
+ console.error(`Failed to get locked profits for user ${user}:`, e);
596
+ }
597
+ }
598
+ const results = await Promise.all(fetchLockedUserProfitsPromises);
599
+ return results;
716
600
  }