aftermath-ts-sdk 1.3.28 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/dist/index.d.ts +16828 -5
  2. package/dist/index.js +22695 -19
  3. package/dist/index.js.map +1 -0
  4. package/package.json +69 -60
  5. package/dist/general/apiHelpers/dynamicFieldsApiHelpers.d.ts +0 -41
  6. package/dist/general/apiHelpers/dynamicFieldsApiHelpers.d.ts.map +0 -1
  7. package/dist/general/apiHelpers/dynamicFieldsApiHelpers.js +0 -110
  8. package/dist/general/apiHelpers/eventsApiHelpers.d.ts +0 -43
  9. package/dist/general/apiHelpers/eventsApiHelpers.d.ts.map +0 -1
  10. package/dist/general/apiHelpers/eventsApiHelpers.js +0 -170
  11. package/dist/general/apiHelpers/inspectionsApiHelpers.d.ts +0 -28
  12. package/dist/general/apiHelpers/inspectionsApiHelpers.d.ts.map +0 -1
  13. package/dist/general/apiHelpers/inspectionsApiHelpers.js +0 -58
  14. package/dist/general/apiHelpers/objectsApiHelpers.d.ts +0 -77
  15. package/dist/general/apiHelpers/objectsApiHelpers.d.ts.map +0 -1
  16. package/dist/general/apiHelpers/objectsApiHelpers.js +0 -197
  17. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +0 -50
  18. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +0 -1
  19. package/dist/general/apiHelpers/transactionsApiHelpers.js +0 -256
  20. package/dist/general/dynamicGas/dynamicGas.d.ts +0 -48
  21. package/dist/general/dynamicGas/dynamicGas.d.ts.map +0 -1
  22. package/dist/general/dynamicGas/dynamicGas.js +0 -69
  23. package/dist/general/dynamicGas/dynamicGasTypes.d.ts +0 -37
  24. package/dist/general/dynamicGas/dynamicGasTypes.d.ts.map +0 -1
  25. package/dist/general/dynamicGas/dynamicGasTypes.js +0 -2
  26. package/dist/general/nfts/nftsApi.d.ts +0 -35
  27. package/dist/general/nfts/nftsApi.d.ts.map +0 -1
  28. package/dist/general/nfts/nftsApi.js +0 -124
  29. package/dist/general/nfts/nftsApiCasting.d.ts +0 -11
  30. package/dist/general/nfts/nftsApiCasting.d.ts.map +0 -1
  31. package/dist/general/nfts/nftsApiCasting.js +0 -115
  32. package/dist/general/nfts/nftsTypes.d.ts +0 -31
  33. package/dist/general/nfts/nftsTypes.d.ts.map +0 -1
  34. package/dist/general/nfts/nftsTypes.js +0 -2
  35. package/dist/general/priceFeeds/priceFeeds.d.ts +0 -3
  36. package/dist/general/priceFeeds/priceFeeds.d.ts.map +0 -1
  37. package/dist/general/priceFeeds/priceFeeds.js +0 -26
  38. package/dist/general/priceFeeds/priceFeedsApi.d.ts +0 -3
  39. package/dist/general/priceFeeds/priceFeedsApi.d.ts.map +0 -1
  40. package/dist/general/priceFeeds/priceFeedsApi.js +0 -33
  41. package/dist/general/priceFeeds/priceFeedsTypes.d.ts +0 -3
  42. package/dist/general/priceFeeds/priceFeedsTypes.d.ts.map +0 -1
  43. package/dist/general/priceFeeds/priceFeedsTypes.js +0 -7
  44. package/dist/general/prices/coinGeckoTypes.d.ts +0 -16
  45. package/dist/general/prices/coinGeckoTypes.d.ts.map +0 -1
  46. package/dist/general/prices/coinGeckoTypes.js +0 -2
  47. package/dist/general/prices/prices.d.ts +0 -92
  48. package/dist/general/prices/prices.d.ts.map +0 -1
  49. package/dist/general/prices/prices.js +0 -124
  50. package/dist/general/providers/aftermath.d.ts +0 -200
  51. package/dist/general/providers/aftermath.d.ts.map +0 -1
  52. package/dist/general/providers/aftermath.js +0 -258
  53. package/dist/general/providers/aftermathApi.d.ts +0 -197
  54. package/dist/general/providers/aftermathApi.d.ts.map +0 -1
  55. package/dist/general/providers/aftermathApi.js +0 -255
  56. package/dist/general/providers/index.d.ts +0 -3
  57. package/dist/general/providers/index.d.ts.map +0 -1
  58. package/dist/general/providers/index.js +0 -18
  59. package/dist/general/types/castingTypes.d.ts +0 -51
  60. package/dist/general/types/castingTypes.d.ts.map +0 -1
  61. package/dist/general/types/castingTypes.js +0 -8
  62. package/dist/general/types/configTypes.d.ts +0 -187
  63. package/dist/general/types/configTypes.d.ts.map +0 -1
  64. package/dist/general/types/configTypes.js +0 -2
  65. package/dist/general/types/generalTypes.d.ts +0 -349
  66. package/dist/general/types/generalTypes.d.ts.map +0 -1
  67. package/dist/general/types/generalTypes.js +0 -2
  68. package/dist/general/types/index.d.ts +0 -7
  69. package/dist/general/types/index.d.ts.map +0 -1
  70. package/dist/general/types/index.js +0 -22
  71. package/dist/general/types/moveErrorsInterface.d.ts +0 -6
  72. package/dist/general/types/moveErrorsInterface.d.ts.map +0 -1
  73. package/dist/general/types/moveErrorsInterface.js +0 -2
  74. package/dist/general/types/suiTypes.d.ts +0 -2
  75. package/dist/general/types/suiTypes.d.ts.map +0 -1
  76. package/dist/general/types/suiTypes.js +0 -5
  77. package/dist/general/utils/caller.d.ts +0 -58
  78. package/dist/general/utils/caller.d.ts.map +0 -1
  79. package/dist/general/utils/caller.js +0 -231
  80. package/dist/general/utils/casting.d.ts +0 -212
  81. package/dist/general/utils/casting.d.ts.map +0 -1
  82. package/dist/general/utils/casting.js +0 -273
  83. package/dist/general/utils/fixedUtils.d.ts +0 -109
  84. package/dist/general/utils/fixedUtils.d.ts.map +0 -1
  85. package/dist/general/utils/fixedUtils.js +0 -100
  86. package/dist/general/utils/helpers.d.ts +0 -408
  87. package/dist/general/utils/helpers.d.ts.map +0 -1
  88. package/dist/general/utils/helpers.js +0 -725
  89. package/dist/general/utils/iFixedUtils.d.ts +0 -78
  90. package/dist/general/utils/iFixedUtils.d.ts.map +0 -1
  91. package/dist/general/utils/iFixedUtils.js +0 -109
  92. package/dist/general/utils/index.d.ts +0 -3
  93. package/dist/general/utils/index.d.ts.map +0 -1
  94. package/dist/general/utils/index.js +0 -18
  95. package/dist/general/wallet/wallet.d.ts +0 -89
  96. package/dist/general/wallet/wallet.d.ts.map +0 -1
  97. package/dist/general/wallet/wallet.js +0 -120
  98. package/dist/general/wallet/walletApi.d.ts +0 -20
  99. package/dist/general/wallet/walletApi.d.ts.map +0 -1
  100. package/dist/general/wallet/walletApi.js +0 -66
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/packages/auth/auth.d.ts +0 -135
  103. package/dist/packages/auth/auth.d.ts.map +0 -1
  104. package/dist/packages/auth/auth.js +0 -289
  105. package/dist/packages/auth/authTypes.d.ts +0 -102
  106. package/dist/packages/auth/authTypes.d.ts.map +0 -1
  107. package/dist/packages/auth/authTypes.js +0 -2
  108. package/dist/packages/auth/index.d.ts +0 -2
  109. package/dist/packages/auth/index.d.ts.map +0 -1
  110. package/dist/packages/auth/index.js +0 -17
  111. package/dist/packages/coin/api/coinApi.d.ts +0 -33
  112. package/dist/packages/coin/api/coinApi.d.ts.map +0 -1
  113. package/dist/packages/coin/api/coinApi.js +0 -167
  114. package/dist/packages/coin/coin.d.ts +0 -320
  115. package/dist/packages/coin/coin.d.ts.map +0 -1
  116. package/dist/packages/coin/coin.js +0 -467
  117. package/dist/packages/coin/coinTypes.d.ts +0 -139
  118. package/dist/packages/coin/coinTypes.d.ts.map +0 -1
  119. package/dist/packages/coin/coinTypes.js +0 -2
  120. package/dist/packages/coin/index.d.ts +0 -2
  121. package/dist/packages/coin/index.d.ts.map +0 -1
  122. package/dist/packages/coin/index.js +0 -17
  123. package/dist/packages/dca/api/dcaApi.d.ts +0 -26
  124. package/dist/packages/dca/api/dcaApi.d.ts.map +0 -1
  125. package/dist/packages/dca/api/dcaApi.js +0 -60
  126. package/dist/packages/dca/dca.d.ts +0 -174
  127. package/dist/packages/dca/dca.d.ts.map +0 -1
  128. package/dist/packages/dca/dca.js +0 -230
  129. package/dist/packages/dca/dcaTypes.d.ts +0 -319
  130. package/dist/packages/dca/dcaTypes.d.ts.map +0 -1
  131. package/dist/packages/dca/dcaTypes.js +0 -2
  132. package/dist/packages/dca/index.d.ts +0 -2
  133. package/dist/packages/dca/index.d.ts.map +0 -1
  134. package/dist/packages/dca/index.js +0 -17
  135. package/dist/packages/farms/api/farmsApi.d.ts +0 -996
  136. package/dist/packages/farms/api/farmsApi.d.ts.map +0 -1
  137. package/dist/packages/farms/api/farmsApi.js +0 -1826
  138. package/dist/packages/farms/api/farmsApiCasting.d.ts +0 -39
  139. package/dist/packages/farms/api/farmsApiCasting.d.ts.map +0 -1
  140. package/dist/packages/farms/api/farmsApiCasting.js +0 -427
  141. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts +0 -235
  142. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts.map +0 -1
  143. package/dist/packages/farms/api/farmsApiCastingTypes.js +0 -2
  144. package/dist/packages/farms/farms.d.ts +0 -221
  145. package/dist/packages/farms/farms.d.ts.map +0 -1
  146. package/dist/packages/farms/farms.js +0 -302
  147. package/dist/packages/farms/farmsStakedPosition.d.ts +0 -229
  148. package/dist/packages/farms/farmsStakedPosition.d.ts.map +0 -1
  149. package/dist/packages/farms/farmsStakedPosition.js +0 -473
  150. package/dist/packages/farms/farmsStakingPool.d.ts +0 -285
  151. package/dist/packages/farms/farmsStakingPool.d.ts.map +0 -1
  152. package/dist/packages/farms/farmsStakingPool.js +0 -488
  153. package/dist/packages/farms/farmsTypes.d.ts +0 -571
  154. package/dist/packages/farms/farmsTypes.d.ts.map +0 -1
  155. package/dist/packages/farms/farmsTypes.js +0 -49
  156. package/dist/packages/farms/index.d.ts +0 -4
  157. package/dist/packages/farms/index.d.ts.map +0 -1
  158. package/dist/packages/farms/index.js +0 -19
  159. package/dist/packages/faucet/api/faucetApi.d.ts +0 -37
  160. package/dist/packages/faucet/api/faucetApi.d.ts.map +0 -1
  161. package/dist/packages/faucet/api/faucetApi.js +0 -145
  162. package/dist/packages/faucet/api/faucetApiCasting.d.ts +0 -7
  163. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +0 -1
  164. package/dist/packages/faucet/api/faucetApiCasting.js +0 -33
  165. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +0 -10
  166. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +0 -1
  167. package/dist/packages/faucet/api/faucetApiCastingTypes.js +0 -2
  168. package/dist/packages/faucet/faucet.d.ts +0 -16
  169. package/dist/packages/faucet/faucet.d.ts.map +0 -1
  170. package/dist/packages/faucet/faucet.js +0 -64
  171. package/dist/packages/faucet/faucetTypes.d.ts +0 -20
  172. package/dist/packages/faucet/faucetTypes.d.ts.map +0 -1
  173. package/dist/packages/faucet/faucetTypes.js +0 -2
  174. package/dist/packages/faucet/index.d.ts +0 -2
  175. package/dist/packages/faucet/index.d.ts.map +0 -1
  176. package/dist/packages/faucet/index.js +0 -17
  177. package/dist/packages/index.d.ts +0 -14
  178. package/dist/packages/index.d.ts.map +0 -1
  179. package/dist/packages/index.js +0 -29
  180. package/dist/packages/leveragedStaking/api/leveragedStakingApi.d.ts +0 -202
  181. package/dist/packages/leveragedStaking/api/leveragedStakingApi.d.ts.map +0 -1
  182. package/dist/packages/leveragedStaking/api/leveragedStakingApi.js +0 -1104
  183. package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.d.ts +0 -12
  184. package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.d.ts.map +0 -1
  185. package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.js +0 -69
  186. package/dist/packages/leveragedStaking/api/leveragedStakingApiCastingTypes.d.ts +0 -39
  187. package/dist/packages/leveragedStaking/api/leveragedStakingApiCastingTypes.d.ts.map +0 -1
  188. package/dist/packages/leveragedStaking/api/leveragedStakingApiCastingTypes.js +0 -2
  189. package/dist/packages/leveragedStaking/index.d.ts +0 -2
  190. package/dist/packages/leveragedStaking/index.d.ts.map +0 -1
  191. package/dist/packages/leveragedStaking/index.js +0 -17
  192. package/dist/packages/leveragedStaking/leveragedStaking.d.ts +0 -68
  193. package/dist/packages/leveragedStaking/leveragedStaking.d.ts.map +0 -1
  194. package/dist/packages/leveragedStaking/leveragedStaking.js +0 -154
  195. package/dist/packages/leveragedStaking/leveragedStakingTypes.d.ts +0 -48
  196. package/dist/packages/leveragedStaking/leveragedStakingTypes.d.ts.map +0 -1
  197. package/dist/packages/leveragedStaking/leveragedStakingTypes.js +0 -16
  198. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts +0 -12
  199. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts.map +0 -1
  200. package/dist/packages/limitOrders/api/limitOrdersApi.js +0 -25
  201. package/dist/packages/limitOrders/index.d.ts +0 -2
  202. package/dist/packages/limitOrders/index.d.ts.map +0 -1
  203. package/dist/packages/limitOrders/index.js +0 -17
  204. package/dist/packages/limitOrders/limitOrders.d.ts +0 -143
  205. package/dist/packages/limitOrders/limitOrders.d.ts.map +0 -1
  206. package/dist/packages/limitOrders/limitOrders.js +0 -190
  207. package/dist/packages/limitOrders/limitOrdersTypes.d.ts +0 -211
  208. package/dist/packages/limitOrders/limitOrdersTypes.d.ts.map +0 -1
  209. package/dist/packages/limitOrders/limitOrdersTypes.js +0 -2
  210. package/dist/packages/multisig/api/multisigApi.d.ts +0 -10
  211. package/dist/packages/multisig/api/multisigApi.d.ts.map +0 -1
  212. package/dist/packages/multisig/api/multisigApi.js +0 -39
  213. package/dist/packages/multisig/index.d.ts +0 -2
  214. package/dist/packages/multisig/index.d.ts.map +0 -1
  215. package/dist/packages/multisig/index.js +0 -17
  216. package/dist/packages/multisig/multisig.d.ts +0 -46
  217. package/dist/packages/multisig/multisig.d.ts.map +0 -1
  218. package/dist/packages/multisig/multisig.js +0 -65
  219. package/dist/packages/multisig/multisigTypes.d.ts +0 -26
  220. package/dist/packages/multisig/multisigTypes.d.ts.map +0 -1
  221. package/dist/packages/multisig/multisigTypes.js +0 -2
  222. package/dist/packages/nftAmm/api/nftAmmApi.d.ts +0 -93
  223. package/dist/packages/nftAmm/api/nftAmmApi.d.ts.map +0 -1
  224. package/dist/packages/nftAmm/api/nftAmmApi.js +0 -250
  225. package/dist/packages/nftAmm/api/nftAmmApiCasting.d.ts +0 -6
  226. package/dist/packages/nftAmm/api/nftAmmApiCasting.d.ts.map +0 -1
  227. package/dist/packages/nftAmm/api/nftAmmApiCasting.js +0 -43
  228. package/dist/packages/nftAmm/api/nftAmmApiCastingTypes.d.ts +0 -10
  229. package/dist/packages/nftAmm/api/nftAmmApiCastingTypes.d.ts.map +0 -1
  230. package/dist/packages/nftAmm/api/nftAmmApiCastingTypes.js +0 -2
  231. package/dist/packages/nftAmm/index.d.ts +0 -2
  232. package/dist/packages/nftAmm/index.d.ts.map +0 -1
  233. package/dist/packages/nftAmm/index.js +0 -17
  234. package/dist/packages/nftAmm/nftAmm.d.ts +0 -18
  235. package/dist/packages/nftAmm/nftAmm.d.ts.map +0 -1
  236. package/dist/packages/nftAmm/nftAmm.js +0 -73
  237. package/dist/packages/nftAmm/nftAmmMarket.d.ts +0 -54
  238. package/dist/packages/nftAmm/nftAmmMarket.d.ts.map +0 -1
  239. package/dist/packages/nftAmm/nftAmmMarket.js +0 -154
  240. package/dist/packages/nftAmm/nftAmmTypes.d.ts +0 -51
  241. package/dist/packages/nftAmm/nftAmmTypes.d.ts.map +0 -1
  242. package/dist/packages/nftAmm/nftAmmTypes.js +0 -2
  243. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +0 -44
  244. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +0 -1
  245. package/dist/packages/perpetuals/api/perpetualsApi.js +0 -1420
  246. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +0 -27
  247. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +0 -1
  248. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +0 -463
  249. package/dist/packages/perpetuals/index.d.ts +0 -5
  250. package/dist/packages/perpetuals/index.d.ts.map +0 -1
  251. package/dist/packages/perpetuals/index.js +0 -20
  252. package/dist/packages/perpetuals/perpetuals.d.ts +0 -860
  253. package/dist/packages/perpetuals/perpetuals.d.ts.map +0 -1
  254. package/dist/packages/perpetuals/perpetuals.js +0 -1102
  255. package/dist/packages/perpetuals/perpetualsAccount.d.ts +0 -780
  256. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +0 -1
  257. package/dist/packages/perpetuals/perpetualsAccount.js +0 -1406
  258. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +0 -170
  259. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +0 -1
  260. package/dist/packages/perpetuals/perpetualsCastingTypes.js +0 -2
  261. package/dist/packages/perpetuals/perpetualsMarket.d.ts +0 -360
  262. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +0 -1
  263. package/dist/packages/perpetuals/perpetualsMarket.js +0 -475
  264. package/dist/packages/perpetuals/perpetualsTypes.d.ts +0 -2968
  265. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +0 -1
  266. package/dist/packages/perpetuals/perpetualsTypes.js +0 -165
  267. package/dist/packages/perpetuals/perpetualsVault.d.ts +0 -438
  268. package/dist/packages/perpetuals/perpetualsVault.d.ts.map +0 -1
  269. package/dist/packages/perpetuals/perpetualsVault.js +0 -601
  270. package/dist/packages/perpetuals/utils/index.d.ts +0 -2
  271. package/dist/packages/perpetuals/utils/index.d.ts.map +0 -1
  272. package/dist/packages/perpetuals/utils/index.js +0 -17
  273. package/dist/packages/perpetuals/utils/perpetualsOrderUtils.d.ts +0 -12
  274. package/dist/packages/perpetuals/utils/perpetualsOrderUtils.d.ts.map +0 -1
  275. package/dist/packages/perpetuals/utils/perpetualsOrderUtils.js +0 -60
  276. package/dist/packages/pools/api/poolsApi.d.ts +0 -342
  277. package/dist/packages/pools/api/poolsApi.d.ts.map +0 -1
  278. package/dist/packages/pools/api/poolsApi.js +0 -857
  279. package/dist/packages/pools/api/poolsApiCasting.d.ts +0 -13
  280. package/dist/packages/pools/api/poolsApiCasting.d.ts.map +0 -1
  281. package/dist/packages/pools/api/poolsApiCasting.js +0 -91
  282. package/dist/packages/pools/api/poolsApiCastingTypes.d.ts +0 -64
  283. package/dist/packages/pools/api/poolsApiCastingTypes.d.ts.map +0 -1
  284. package/dist/packages/pools/api/poolsApiCastingTypes.js +0 -2
  285. package/dist/packages/pools/index.d.ts +0 -3
  286. package/dist/packages/pools/index.d.ts.map +0 -1
  287. package/dist/packages/pools/index.js +0 -18
  288. package/dist/packages/pools/pool.d.ts +0 -459
  289. package/dist/packages/pools/pool.d.ts.map +0 -1
  290. package/dist/packages/pools/pool.js +0 -647
  291. package/dist/packages/pools/pools.d.ts +0 -405
  292. package/dist/packages/pools/pools.d.ts.map +0 -1
  293. package/dist/packages/pools/pools.js +0 -533
  294. package/dist/packages/pools/poolsTypes.d.ts +0 -469
  295. package/dist/packages/pools/poolsTypes.d.ts.map +0 -1
  296. package/dist/packages/pools/poolsTypes.js +0 -2
  297. package/dist/packages/pools/utils/cmmmCalculations.d.ts +0 -42
  298. package/dist/packages/pools/utils/cmmmCalculations.d.ts.map +0 -1
  299. package/dist/packages/pools/utils/cmmmCalculations.js +0 -1380
  300. package/dist/packages/referralVault/api/referralVaultApi.d.ts +0 -39
  301. package/dist/packages/referralVault/api/referralVaultApi.d.ts.map +0 -1
  302. package/dist/packages/referralVault/api/referralVaultApi.js +0 -125
  303. package/dist/packages/referralVault/index.d.ts +0 -2
  304. package/dist/packages/referralVault/index.d.ts.map +0 -1
  305. package/dist/packages/referralVault/index.js +0 -17
  306. package/dist/packages/referralVault/referralVault.d.ts +0 -47
  307. package/dist/packages/referralVault/referralVault.d.ts.map +0 -1
  308. package/dist/packages/referralVault/referralVault.js +0 -71
  309. package/dist/packages/referralVault/referralVaultTypes.d.ts +0 -2
  310. package/dist/packages/referralVault/referralVaultTypes.d.ts.map +0 -1
  311. package/dist/packages/referralVault/referralVaultTypes.js +0 -2
  312. package/dist/packages/referrals/index.d.ts +0 -2
  313. package/dist/packages/referrals/index.d.ts.map +0 -1
  314. package/dist/packages/referrals/index.js +0 -17
  315. package/dist/packages/referrals/referrals.d.ts +0 -27
  316. package/dist/packages/referrals/referrals.d.ts.map +0 -1
  317. package/dist/packages/referrals/referrals.js +0 -95
  318. package/dist/packages/referrals/referralsTypes.d.ts +0 -166
  319. package/dist/packages/referrals/referralsTypes.d.ts.map +0 -1
  320. package/dist/packages/referrals/referralsTypes.js +0 -2
  321. package/dist/packages/rewards/index.d.ts +0 -2
  322. package/dist/packages/rewards/index.d.ts.map +0 -1
  323. package/dist/packages/rewards/index.js +0 -17
  324. package/dist/packages/rewards/rewards.d.ts +0 -21
  325. package/dist/packages/rewards/rewards.d.ts.map +0 -1
  326. package/dist/packages/rewards/rewards.js +0 -65
  327. package/dist/packages/rewards/rewardsTypes.d.ts +0 -169
  328. package/dist/packages/rewards/rewardsTypes.d.ts.map +0 -1
  329. package/dist/packages/rewards/rewardsTypes.js +0 -2
  330. package/dist/packages/router/api/routerApi.d.ts +0 -35
  331. package/dist/packages/router/api/routerApi.d.ts.map +0 -1
  332. package/dist/packages/router/api/routerApi.js +0 -88
  333. package/dist/packages/router/api/routerApiCasting.d.ts +0 -6
  334. package/dist/packages/router/api/routerApiCasting.d.ts.map +0 -1
  335. package/dist/packages/router/api/routerApiCasting.js +0 -22
  336. package/dist/packages/router/api/routerApiCastingTypes.d.ts +0 -12
  337. package/dist/packages/router/api/routerApiCastingTypes.d.ts.map +0 -1
  338. package/dist/packages/router/api/routerApiCastingTypes.js +0 -2
  339. package/dist/packages/router/index.d.ts +0 -2
  340. package/dist/packages/router/index.d.ts.map +0 -1
  341. package/dist/packages/router/index.js +0 -17
  342. package/dist/packages/router/router.d.ts +0 -224
  343. package/dist/packages/router/router.d.ts.map +0 -1
  344. package/dist/packages/router/router.js +0 -283
  345. package/dist/packages/router/routerTypes.d.ts +0 -300
  346. package/dist/packages/router/routerTypes.d.ts.map +0 -1
  347. package/dist/packages/router/routerTypes.js +0 -2
  348. package/dist/packages/staking/api/stakingApi.d.ts +0 -129
  349. package/dist/packages/staking/api/stakingApi.d.ts.map +0 -1
  350. package/dist/packages/staking/api/stakingApi.js +0 -487
  351. package/dist/packages/staking/api/stakingApiCasting.d.ts +0 -11
  352. package/dist/packages/staking/api/stakingApiCasting.d.ts.map +0 -1
  353. package/dist/packages/staking/api/stakingApiCasting.js +0 -87
  354. package/dist/packages/staking/api/stakingApiCastingTypes.d.ts +0 -97
  355. package/dist/packages/staking/api/stakingApiCastingTypes.d.ts.map +0 -1
  356. package/dist/packages/staking/api/stakingApiCastingTypes.js +0 -2
  357. package/dist/packages/staking/index.d.ts +0 -2
  358. package/dist/packages/staking/index.d.ts.map +0 -1
  359. package/dist/packages/staking/index.js +0 -17
  360. package/dist/packages/staking/staking.d.ts +0 -385
  361. package/dist/packages/staking/staking.d.ts.map +0 -1
  362. package/dist/packages/staking/staking.js +0 -501
  363. package/dist/packages/staking/stakingTypes.d.ts +0 -575
  364. package/dist/packages/staking/stakingTypes.d.ts.map +0 -1
  365. package/dist/packages/staking/stakingTypes.js +0 -45
  366. package/dist/packages/sui/api/suiApi.d.ts +0 -21
  367. package/dist/packages/sui/api/suiApi.d.ts.map +0 -1
  368. package/dist/packages/sui/api/suiApi.js +0 -46
  369. package/dist/packages/sui/index.d.ts +0 -2
  370. package/dist/packages/sui/index.d.ts.map +0 -1
  371. package/dist/packages/sui/index.js +0 -17
  372. package/dist/packages/sui/sui.d.ts +0 -53
  373. package/dist/packages/sui/sui.d.ts.map +0 -1
  374. package/dist/packages/sui/sui.js +0 -77
  375. package/dist/packages/suiFrens/api/suiFrensApi.d.ts +0 -204
  376. package/dist/packages/suiFrens/api/suiFrensApi.d.ts.map +0 -1
  377. package/dist/packages/suiFrens/api/suiFrensApi.js +0 -756
  378. package/dist/packages/suiFrens/api/suiFrensApiCasting.d.ts +0 -21
  379. package/dist/packages/suiFrens/api/suiFrensApiCasting.d.ts.map +0 -1
  380. package/dist/packages/suiFrens/api/suiFrensApiCasting.js +0 -181
  381. package/dist/packages/suiFrens/api/suiFrensApiCastingTypes.d.ts +0 -77
  382. package/dist/packages/suiFrens/api/suiFrensApiCastingTypes.d.ts.map +0 -1
  383. package/dist/packages/suiFrens/api/suiFrensApiCastingTypes.js +0 -2
  384. package/dist/packages/suiFrens/index.d.ts +0 -4
  385. package/dist/packages/suiFrens/index.d.ts.map +0 -1
  386. package/dist/packages/suiFrens/index.js +0 -19
  387. package/dist/packages/suiFrens/stakedSuiFren.d.ts +0 -31
  388. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +0 -1
  389. package/dist/packages/suiFrens/stakedSuiFren.js +0 -90
  390. package/dist/packages/suiFrens/suiFren.d.ts +0 -32
  391. package/dist/packages/suiFrens/suiFren.d.ts.map +0 -1
  392. package/dist/packages/suiFrens/suiFren.js +0 -150
  393. package/dist/packages/suiFrens/suiFrens.d.ts +0 -56
  394. package/dist/packages/suiFrens/suiFrens.d.ts.map +0 -1
  395. package/dist/packages/suiFrens/suiFrens.js +0 -218
  396. package/dist/packages/suiFrens/suiFrensTypes.d.ts +0 -148
  397. package/dist/packages/suiFrens/suiFrensTypes.d.ts.map +0 -1
  398. package/dist/packages/suiFrens/suiFrensTypes.js +0 -8
  399. package/dist/packages/userData/index.d.ts +0 -2
  400. package/dist/packages/userData/index.d.ts.map +0 -1
  401. package/dist/packages/userData/index.js +0 -17
  402. package/dist/packages/userData/userData.d.ts +0 -89
  403. package/dist/packages/userData/userData.d.ts.map +0 -1
  404. package/dist/packages/userData/userData.js +0 -119
  405. package/dist/packages/userData/userDataTypes.d.ts +0 -29
  406. package/dist/packages/userData/userDataTypes.d.ts.map +0 -1
  407. package/dist/packages/userData/userDataTypes.js +0 -2
  408. package/dist/types.d.ts +0 -15
  409. package/dist/types.d.ts.map +0 -1
  410. package/dist/types.js +0 -31
@@ -1,1104 +0,0 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.LeveragedStakingApi = void 0;
16
- const utils_1 = require("../../../general/utils");
17
- const eventsApiHelpers_1 = require("../../../general/apiHelpers/eventsApiHelpers");
18
- const coin_1 = require("../../coin");
19
- const sui_1 = require("../../sui");
20
- const dayjs_1 = __importDefault(require("dayjs"));
21
- // import BigNumber from "bignumber.js";
22
- // import {
23
- // BalanceSheet,
24
- // BorrowIndex,
25
- // InterestModel,
26
- // ScallopTxBlock,
27
- // SupportPoolCoins,
28
- // } from "@scallop-io/sui-scallop-sdk";
29
- /**
30
- * Represents the API for interacting with the Leveraged Staking module.
31
- */
32
- class LeveragedStakingApi {
33
- // =========================================================================
34
- // Constructor
35
- // =========================================================================
36
- /**
37
- * Creates an instance of the LeveragedStakingApi class.
38
- * @param {AftermathApi} Provider - The AftermathApi instance.
39
- * @param {ScallopProviders} ScallopProviders - The ScallopProviders instance.
40
- * @throws {Error} If not all required addresses have been set in AfSdk
41
- */
42
- constructor(Provider, ScallopProviders // ScallopProviders
43
- ) {
44
- this.Provider = Provider;
45
- this.ScallopProviders = ScallopProviders;
46
- // =========================================================================
47
- // Objects
48
- // =========================================================================
49
- /**
50
- * Fetches the leveraged stake position for a given wallet address.
51
- * @param inputs - The input parameters for fetching the leveraged stake position.
52
- * @returns A promise that resolves to the leveraged stake position response.
53
- */
54
- this.fetchLeveragedStakePosition = (inputs) => __awaiter(this, void 0, void 0, function* () {
55
- const { walletAddress } = inputs;
56
- const leveragedAfSuiPositions = yield this.Provider.Objects().fetchCastObjectsOwnedByAddressOfType({
57
- walletAddress,
58
- objectType: this.objectTypes.leveragedAfSuiPosition,
59
- objectFromSuiObjectResponse: utils_1.Casting.leveragedStaking
60
- .leveragedAfSuiPositionFromSuiObjectResponse,
61
- });
62
- if (leveragedAfSuiPositions.length <= 0)
63
- return "none";
64
- return leveragedAfSuiPositions[0];
65
- });
66
- /**
67
- * Fetches the SUI market pool.
68
- * @returns A promise that resolves to the ScallopMarketPool object representing the SUI market pool.
69
- * @throws An error if the SUI market pool is not found.
70
- */
71
- this.fetchSuiMarketPool = () => __awaiter(this, void 0, void 0, function* () {
72
- // ScallopMarketPool
73
- if (!this.ScallopProviders)
74
- throw new Error("Scallop providers not set");
75
- const suiMarketPool = yield this.ScallopProviders.Query.getMarketPool("sui");
76
- if (!suiMarketPool)
77
- throw new Error("sui market pool not found");
78
- return suiMarketPool;
79
- });
80
- /**
81
- * Fetches the LeveragedAfSuiState.
82
- * @returns A promise that resolves to the LeveragedAfSuiState.
83
- */
84
- this.fetchLeveragedAfSuiState = () => __awaiter(this, void 0, void 0, function* () {
85
- return this.Provider.Objects().fetchCastObject({
86
- objectId: this.addresses.leveragedStaking.objects.leveragedAfSuiState,
87
- objectFromSuiObjectResponse: utils_1.Casting.leveragedStaking
88
- .leveragedAfSuiStateFromSuiObjectResponse,
89
- });
90
- });
91
- /**
92
- * Fetches the market collateral for the AfSui market.
93
- * @returns A promise that resolves to the ScallopMarketCollateral object.
94
- * @throws An error if the Sui market pool is not found.
95
- */
96
- this.fetchAfSuiMarketCollateral = () => __awaiter(this, void 0, void 0, function* () {
97
- // ScallopMarketCollateral
98
- if (!this.ScallopProviders)
99
- throw new Error("Scallop providers not set");
100
- const afSuiMarketCollateral = yield this.ScallopProviders.Query.getMarketCollateral("afsui");
101
- if (!afSuiMarketCollateral)
102
- throw new Error("sui market pool not found");
103
- return afSuiMarketCollateral;
104
- });
105
- this.fetchLeveragedAfSuiPosition = (inputs) => __awaiter(this, void 0, void 0, function* () {
106
- if (!this.ScallopProviders)
107
- throw new Error("Scallop providers not set");
108
- // ia. Obtain the owned `LeveragedAfSuiPosition` object.
109
- const leveragedAfSuiPosition = yield this.Provider.Objects().fetchCastObject({
110
- objectId: inputs.leveragedAfSuiPositionId,
111
- objectFromSuiObjectResponse: utils_1.Casting.leveragedStaking
112
- .leveragedAfSuiPositionFromSuiObjectResponse,
113
- });
114
- // ib. Obtain the shared `Obligation` object.
115
- const obligation = yield this.ScallopProviders.Query.queryObligation(inputs.obligationId.toString());
116
- // ic. Obtain Scallop's SUI Market.
117
- const marketData = yield this.getMarketData(Object.assign(Object.assign({}, inputs), { poolCoinName: "sui" }));
118
- const oldBorrowIndex = Math.ceil(Number(marketData.borrowIndex));
119
- // ii. Update the position's Borrow Index to account for increase in the SUI Borrow Rate.
120
- // new_borrow_index = old_borrow_index + (old_borrow_index * interest_rate * time_delta)
121
- const currentTimestamp = Math.ceil((0, dayjs_1.default)().valueOf() / 1000);
122
- const lastUpdated = Number(marketData.lastUpdated);
123
- const timeDelta = currentTimestamp - lastUpdated;
124
- const interestRate = Number(marketData.interestRate.value);
125
- const interestRateScale = Number(marketData.interestRateScale) * 100;
126
- const borrowIndexDelta = (oldBorrowIndex * interestRate * timeDelta) / interestRateScale;
127
- const newBorrowIndex = oldBorrowIndex + borrowIndexDelta;
128
- // iii. Increase the Position's debt.
129
- const positionBorrowIndex = Number(obligation.debts[0].borrowIndex || 0);
130
- const increasedRate = newBorrowIndex / positionBorrowIndex - 1;
131
- // const positionSuiDebt = BigNumber(obligation.debts[0].amount || 0);
132
- // const availableRepayAmount = positionSuiDebt
133
- // .multipliedBy(increasedRate + 1)
134
- // // .multipliedBy(1.01)
135
- // .toNumber();
136
- // const positionSuiDebtUpdated = BigInt(Math.ceil(availableRepayAmount));
137
- const positionSuiDebtUpdated = BigInt(0);
138
- return Object.assign(Object.assign({}, leveragedAfSuiPosition), { suiDebt: positionSuiDebtUpdated });
139
- });
140
- // =========================================================================
141
- // Transaction Commands
142
- // =========================================================================
143
- this.newLeveragedAfSuiPositionTx = (inputs) => {
144
- const { tx } = inputs;
145
- return tx.moveCall({
146
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames
147
- .leveragedAfSuiPosition, "new_leveraged_afsui_position"),
148
- typeArguments: [],
149
- arguments: [
150
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
151
- utils_1.Helpers.addTxObject(tx, inputs.obligationKeyId), // ObligationKey
152
- ],
153
- });
154
- };
155
- this.initiateLeverageStakeTx = (inputs) => {
156
- const { tx } = inputs;
157
- return tx.moveCall({
158
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "initiate_leverage_stake"),
159
- typeArguments: [],
160
- arguments: [
161
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
162
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
163
- utils_1.Helpers.addTxObject(tx, inputs.afSuiCoinId), // Coin
164
- ],
165
- });
166
- };
167
- this.initiateLeverageUnstakeTx = (inputs) => {
168
- const { tx } = inputs;
169
- return tx.moveCall({
170
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "initiate_leverage_unstake"),
171
- typeArguments: [],
172
- arguments: [
173
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
174
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
175
- tx.pure.u64(inputs.unstakeAmount), // withdraw_amount
176
- ],
177
- });
178
- };
179
- this.initiateChangeLeverageTx = (inputs) => {
180
- const { tx } = inputs;
181
- return tx.moveCall({
182
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "initiate_change_leverage"),
183
- typeArguments: [],
184
- arguments: [
185
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
186
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
187
- ],
188
- });
189
- };
190
- this.completeActionTx = (inputs) => {
191
- const { tx } = inputs;
192
- return tx.moveCall({
193
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "complete_action"),
194
- typeArguments: [],
195
- arguments: [
196
- utils_1.Helpers.addTxObject(tx, inputs.leveragedActionCapId), // LeveragedActionCap
197
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
198
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
199
- utils_1.Helpers.addTxObject(tx, inputs.obligationId), // Obligation,
200
- tx.object(this.addresses.staking.objects.stakedSuiVault), // StakedSuiVault
201
- tx.object(this.addresses.staking.objects.safe), // Safe<TreasuryCap<AFSUI>>
202
- ],
203
- });
204
- };
205
- this.depositAfSuiCollateralTx = (inputs) => {
206
- const { tx } = inputs;
207
- return tx.moveCall({
208
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "deposit_afsui_collateral"),
209
- typeArguments: [],
210
- arguments: [
211
- utils_1.Helpers.addTxObject(tx, inputs.leveragedActionCapId), // LeveragedActionCap
212
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
213
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
214
- tx.object(this.addresses.scallop.objects.version), // Version
215
- utils_1.Helpers.addTxObject(tx, inputs.obligationId), // Obligation
216
- tx.object(this.addresses.scallop.objects.afSuiMarket), // Market
217
- utils_1.Helpers.addTxObject(tx, inputs.afSuiCoinId), // Coin
218
- ],
219
- });
220
- };
221
- this.withdrawAfSuiCollateralTx = (inputs) => {
222
- const { tx } = inputs;
223
- return tx.moveCall({
224
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "withdraw_afsui_collateral"),
225
- typeArguments: [],
226
- arguments: [
227
- utils_1.Helpers.addTxObject(tx, inputs.leveragedActionCapId), // LeveragedActionCap
228
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
229
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
230
- tx.object(this.addresses.scallop.objects.version), // Version
231
- utils_1.Helpers.addTxObject(tx, inputs.obligationId), // Obligation
232
- tx.object(this.addresses.scallop.objects.afSuiMarket), // Market
233
- tx.object(this.addresses.scallop.objects.coinDecimalsRegistry), // CoinDecimalsRegistry
234
- tx.pure.u64(inputs.withdrawAmount), // withdraw_amount
235
- tx.object(this.addresses.scallop.objects.xOracle), // XOracle
236
- tx.object(sui_1.Sui.constants.addresses.suiClockId), // Clock
237
- ],
238
- });
239
- };
240
- this.borrowSuiTx = (inputs) => {
241
- const { tx } = inputs;
242
- return tx.moveCall({
243
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "borrow_sui"),
244
- typeArguments: [],
245
- arguments: [
246
- utils_1.Helpers.addTxObject(tx, inputs.leveragedActionCapId), // LeveragedActionCap
247
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
248
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
249
- tx.object(this.addresses.scallop.objects.version), // Version
250
- utils_1.Helpers.addTxObject(tx, inputs.obligationId), // Obligation
251
- tx.object(this.addresses.scallop.objects.afSuiMarket), // Market
252
- tx.object(this.addresses.scallop.objects.coinDecimalsRegistry), // CoinDecimalsRegistry
253
- tx.pure.u64(inputs.borrowAmount), // borrow_amount
254
- tx.object(this.addresses.scallop.objects.xOracle), // XOracle
255
- tx.object(sui_1.Sui.constants.addresses.suiClockId), // Clock
256
- ],
257
- });
258
- };
259
- this.repaySuiTx = (inputs) => {
260
- const { tx } = inputs;
261
- return tx.moveCall({
262
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.leveragedStaking.packages.leveragedAfSui, LeveragedStakingApi.constants.moduleNames.interface, "repay_sui"),
263
- typeArguments: [],
264
- arguments: [
265
- utils_1.Helpers.addTxObject(tx, inputs.leveragedActionCapId), // LeveragedActionCap
266
- utils_1.Helpers.addTxObject(tx, inputs.leveragedAfSuiPositionId), // LeveragedAfSuiPosition
267
- tx.object(this.addresses.leveragedStaking.objects.leveragedAfSuiState), // LeveragedAfSuiState
268
- tx.object(this.addresses.scallop.objects.version), // Version
269
- utils_1.Helpers.addTxObject(tx, inputs.obligationId), // Obligation
270
- tx.object(this.addresses.scallop.objects.afSuiMarket), // Market
271
- utils_1.Helpers.addTxObject(tx, inputs.suiCoinId), // Coin
272
- tx.object(sui_1.Sui.constants.addresses.suiClockId), // Clock
273
- ],
274
- });
275
- };
276
- // =========================================================================
277
- // Transaction Builders
278
- // =========================================================================
279
- // ERROR Notes:
280
- // > [ScallopLeveragedAfSui] [interface] 0: EInvalidLeveragedAfSuiPosition
281
- // > [ScallopLeveragedAfSui] [leveraged_afsui_state] 0: EInvalidProtocolVersion
282
- // > [Scallop] 513 -> 0x201: version_mismatch_error
283
- // > [Scallop] 1025 -> 0x401: oracle_stale_price_error
284
- // > [Scallop] [borrow] 1281 -> 0x501: borrow_too_much_error
285
- // > [Scallop] [reserve] 1283 -> 0x503: flash_loan_repay_not_enough_error
286
- // > [Scallop] [deposit_collateral] 1793 -> 0x701: max_collateral_reached_error
287
- // > [Scallop] [withdraw_collateral] 1795 -> 0x703: withdraw_collateral_too_much_error
288
- // > [afSUI] [actions] 3: ELessThanMinimumStakingThreshold
289
- // > [Pyth] [pyth_adaptor] 70146: assert_price_not_stale
290
- // { address: 910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a}}
291
- // > [SUI] [dynamic_field] 1: EFieldDoesNotExist (The object does not have a dynamic field with
292
- // this name (with the value and type specified))
293
- this.fetchBuildWithdrawAfSuiCollateralTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
294
- const { scallopTx } = inputs;
295
- // i. Update Scallop's price feeds for SUI and afSUI.
296
- yield scallopTx.updateAssetPricesQuick(["sui", "afsui"]);
297
- // ii. Withdraw `withdrawAmount` worth of afSUI collateral.
298
- return this.withdrawAfSuiCollateralTx(Object.assign(Object.assign({}, inputs), {
299
- // @ts-ignore
300
- tx: scallopTx.txBlock, leveragedActionCapId: inputs.leveragedActionCapId, withdrawAmount: inputs.withdrawAmount }));
301
- });
302
- // TODO(kevin): Documentation
303
- this.fetchBuildOpenLeveragedStakeTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
304
- if (!this.ScallopProviders)
305
- throw new Error("Scallop providers not set");
306
- const scallopTx = this.ScallopProviders.Builder.createTxBlock();
307
- const tx = scallopTx.txBlock;
308
- tx.setSender(inputs.walletAddress);
309
- // i. Create an `Obligation` on Scallop.
310
- const [obligationId, obligationKeyId, obligationHotPotatoId] = scallopTx.openObligation();
311
- // ii. Open a new `LeveragedAfSuiPosition` position.
312
- const [leveragedAfSuiPositionId] = this.newLeveragedAfSuiPositionTx({
313
- // @ts-ignore
314
- tx,
315
- obligationKeyId,
316
- });
317
- // iii. Leverage stake.
318
- yield this.buildLeveragedStakeTx(Object.assign(Object.assign({}, inputs), { scallopTx,
319
- leveragedAfSuiPositionId,
320
- obligationId, baseAfSuiCollateral: BigInt(0), totalAfSuiCollateral: BigInt(0), totalSuiDebt: BigInt(0) }));
321
- // iv. Return the `LeveragedAfSuiPosition` to the sender.
322
- tx.transferObjects([leveragedAfSuiPositionId], inputs.walletAddress);
323
- // v. Share the associated `Obligation` object.
324
- scallopTx.returnObligation(obligationId, obligationHotPotatoId);
325
- // @ts-ignore
326
- return tx;
327
- });
328
- // TODO(kevin): Documentation
329
- this.fetchBuildLeveragedStakeTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
330
- if (!this.ScallopProviders)
331
- throw new Error("Scallop providers not set");
332
- const scallopTx = this.ScallopProviders.Builder.createTxBlock();
333
- const tx = scallopTx.txBlock;
334
- tx.setSender(inputs.walletAddress);
335
- // i. Leverage stake.
336
- yield this.buildLeveragedStakeTx(Object.assign(Object.assign({}, inputs), { scallopTx }));
337
- // @ts-ignore
338
- return tx;
339
- });
340
- // TODO(kevin): Documentation
341
- this.buildLeveragedStakeTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
342
- const { scallopTx, referrer, walletAddress, leveragedAfSuiPositionId, obligationId, stakeAmount, isSponsoredTx, } = inputs;
343
- const tx = scallopTx.txBlock;
344
- // TODO(Collin/Kevin): assert that `leverage` is less than or equal to `1 / (1 - collateralWeight)`.
345
- if (referrer)
346
- this.Provider.ReferralVault().updateReferrerTx({
347
- // @ts-ignore
348
- tx,
349
- referrer,
350
- });
351
- let newBaseAfSuiCollateral;
352
- let afSuiCoinId;
353
- // i. Obtain the amount and ID of the afSUI collateral to be deposited. The user can choose to
354
- // leverage stake starting in SUI in which case their SUI needs to be staked to afSUI.
355
- if (inputs.stakeCoinType === "sui") {
356
- // ia. If the input was denominated in SUI, stake to afSUI.
357
- const suiCoin = yield this.Provider.Coin().fetchCoinWithAmountTx({
358
- // @ts-ignore
359
- tx,
360
- walletAddress,
361
- isSponsoredTx,
362
- coinType: coin_1.Coin.constants.suiCoinType,
363
- coinAmount: stakeAmount,
364
- });
365
- const swapOrStakeResult = yield this.swapOrStakeSuiToAfSui({
366
- // @ts-ignore
367
- tx,
368
- suiAmount: stakeAmount,
369
- suiCoinId: suiCoin,
370
- });
371
- newBaseAfSuiCollateral = swapOrStakeResult.minAmountOut;
372
- afSuiCoinId = swapOrStakeResult.afSuiCoinId;
373
- }
374
- else {
375
- // ib. Obtain afSUI coin with `stakeAmount` value.
376
- newBaseAfSuiCollateral = stakeAmount;
377
- afSuiCoinId = yield this.Provider.Coin().fetchCoinWithAmountTx({
378
- // @ts-ignore
379
- tx,
380
- walletAddress,
381
- isSponsoredTx,
382
- coinType: this.Provider.Staking().coinTypes.afSui,
383
- coinAmount: stakeAmount,
384
- });
385
- }
386
- // ii. Initiate Stake tx.
387
- const leveragedActionCapId = this.initiateLeverageStakeTx({
388
- // @ts-ignore
389
- tx,
390
- leveragedAfSuiPositionId,
391
- afSuiCoinId,
392
- });
393
- // iii. Deposit afSUI as collateral on Scallop.
394
- this.depositAfSuiCollateralTx(Object.assign(Object.assign({}, inputs), {
395
- // @ts-ignore
396
- tx,
397
- leveragedActionCapId,
398
- afSuiCoinId, obligationId: inputs.obligationId }));
399
- if (inputs.leverage > 1) {
400
- // iv. Increase the leverage to the desired leverage ratio.
401
- yield this.fetchBuildIncreaseLeverageTx(Object.assign(Object.assign({}, inputs), { baseAfSuiCollateral: inputs.baseAfSuiCollateral + newBaseAfSuiCollateral, totalAfSuiCollateral: inputs.totalAfSuiCollateral + newBaseAfSuiCollateral, totalSuiDebt: inputs.totalSuiDebt, newLeverage: inputs.leverage, leveragedActionCapId }));
402
- }
403
- // v. Complete the Stake transaction and emit an event.
404
- this.completeActionTx({
405
- // @ts-ignore
406
- tx,
407
- leveragedActionCapId,
408
- leveragedAfSuiPositionId,
409
- obligationId,
410
- });
411
- });
412
- // TODO(Kevin): Documentation.
413
- this.fetchBuildLeveragedUnstakeTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
414
- throw new Error("TODO");
415
- // if (!this.ScallopProviders)
416
- // throw new Error("Scallop providers not set");
417
- // const {
418
- // referrer,
419
- // walletAddress,
420
- // leveragedAfSuiPositionId,
421
- // obligationId,
422
- // unstakeAmount,
423
- // desiredUnstakeCoinType,
424
- // slippage,
425
- // } = inputs;
426
- // const scallopTx = this.ScallopProviders.Builder.createTxBlock();
427
- // const tx = scallopTx.txBlock;
428
- // tx.setSender(walletAddress);
429
- // // i. Set the users referrer address.
430
- // if (referrer)
431
- // this.Provider.ReferralVault().updateReferrerTx({
432
- // // @ts-ignore
433
- // tx,
434
- // referrer,
435
- // });
436
- // // ii. Obtain the user's `LeveragedAfSuiPosition`.
437
- // const leveragedAfSuiPosition = await this.fetchLeveragedAfSuiPosition({
438
- // leveragedAfSuiPositionId,
439
- // obligationId,
440
- // });
441
- // // iii. Initiate Unstake tx.
442
- // const leveragedActionCapId = this.initiateLeverageUnstakeTx({
443
- // // @ts-ignore
444
- // tx,
445
- // leveragedAfSuiPositionId,
446
- // unstakeAmount,
447
- // });
448
- // const afSuiToSuiExchangeRate =
449
- // await this.Provider.Staking().fetchAfSuiToSuiExchangeRate();
450
- // // iv. Calculate current leverage ratio.
451
- // const currentLeverageRatio = LeveragedStaking.calcLeverage({
452
- // totalSuiDebt: leveragedAfSuiPosition.suiDebt,
453
- // totalAfSuiCollateral: leveragedAfSuiPosition.afSuiCollateral,
454
- // afSuiToSuiExchangeRate,
455
- // });
456
- // let unstakedCoinId;
457
- // let unstakedCoinType;
458
- // // [Edge Case] Position has no debt.
459
- // if (leveragedAfSuiPosition.suiDebt === BigInt(0)) {
460
- // // va. Withdraw `unstakeAmount` worth of afSUI collateral.
461
- // const [unstakedAfSuiCollateral] =
462
- // await this.fetchBuildWithdrawAfSuiCollateralTx({
463
- // ...inputs,
464
- // scallopTx,
465
- // leveragedActionCapId,
466
- // withdrawAmount: unstakeAmount,
467
- // });
468
- // unstakedCoinId = unstakedAfSuiCollateral;
469
- // unstakedCoinType = "afsui";
470
- // } /* (leveragedAfSuiPosition.suiDebt > BigInt(0)) */ else {
471
- // // vb. Decrease the leverage to the desired leverage ratio.
472
- // const remainingSuiCoinId = await this.fetchBuildDecreaseLeverageTx({
473
- // scallopTx,
474
- // leveragedActionCapId,
475
- // leveragedAfSuiPositionId,
476
- // obligationId,
477
- // totalSuiDebt: leveragedAfSuiPosition.suiDebt,
478
- // totalAfSuiCollateral: leveragedAfSuiPosition.afSuiCollateral,
479
- // // REVIEW(Kevin): should we be subtracting from here too?
480
- // //
481
- // // totalAfSuiCollateral:
482
- // // inputs.totalAfSuiCollateral - unstakeAmount,
483
- // newLeverage: currentLeverageRatio,
484
- // baseAfSuiCollateral: inputs.baseAfSuiCollateral - unstakeAmount,
485
- // slippage,
486
- // });
487
- // unstakedCoinId = remainingSuiCoinId;
488
- // unstakedCoinType = "sui";
489
- // }
490
- // // vi. Return the unstaked coin to the user in their desired coin (SUI or afSUI).
491
- // if (unstakedCoinType === inputs.desiredUnstakeCoinType) {
492
- // // via. Unstaked coin already in desired coin type; no extra work needed.
493
- // tx.transferObjects([unstakedCoinId], walletAddress);
494
- // } else if (desiredUnstakeCoinType === "sui") {
495
- // // vib. Swap withdrawn afSUI into SUI and return to the user.
496
- // const poolObject = await this.Provider.Pools().fetchPool({
497
- // objectId:
498
- // this.addresses.leveragedStaking.objects.afSuiSuiPoolId,
499
- // });
500
- // const pool = new Pool(poolObject);
501
- // const swappedSuiCoinId =
502
- // await this.Provider.Pools().fetchAddTradeTx({
503
- // // @ts-ignore
504
- // tx,
505
- // pool,
506
- // coinInAmount: unstakeAmount,
507
- // coinInId: unstakedCoinId,
508
- // coinInType: this.Provider.Staking().coinTypes.afSui,
509
- // coinOutType: Coin.constants.suiCoinType,
510
- // slippage,
511
- // });
512
- // tx.transferObjects([swappedSuiCoinId], walletAddress);
513
- // } /* if (desiredUnstakeCoinType === "afsui") */ else {
514
- // // vic. Stake the withdrawn SUI for afSUI and return to the user.
515
- // let [unstakedAfSuiCollateral] = this.Provider.Staking().stakeTx({
516
- // // @ts-ignore
517
- // tx,
518
- // validatorAddress:
519
- // this.addresses.staking.objects.aftermathValidator,
520
- // suiCoin: unstakedCoinId,
521
- // });
522
- // tx.transferObjects([unstakedAfSuiCollateral], walletAddress);
523
- // }
524
- // // vii. Complete Unstake tx.
525
- // this.completeActionTx({
526
- // // @ts-ignore
527
- // tx,
528
- // leveragedActionCapId,
529
- // leveragedAfSuiPositionId,
530
- // obligationId,
531
- // });
532
- // // @ts-ignore
533
- // return tx;
534
- });
535
- // TODO(Kevin): Documentation.
536
- this.fetchBuildChangeLeverageTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
537
- if (!this.ScallopProviders)
538
- throw new Error("Scallop providers not set");
539
- const { referrer, walletAddress, leveragedAfSuiPositionId, obligationId, } = inputs;
540
- // TODO(Collin/Kevin): assert that `leverage` is less than or equal to `1 / (1 - collateralWeight)`.
541
- // If leverage is greater than this then the user's collateral will not be enough to support the amount
542
- // of SUI that must be borrowed to reach that leverage ratio.
543
- const scallopTx = this.ScallopProviders.Builder.createTxBlock();
544
- const tx = scallopTx.txBlock;
545
- tx.setSender(walletAddress);
546
- if (referrer)
547
- this.Provider.ReferralVault().updateReferrerTx({
548
- // @ts-ignore
549
- tx,
550
- referrer,
551
- });
552
- // i. Initiate Change Leverage tx.
553
- const leveragedActionCapId = this.initiateChangeLeverageTx({
554
- // @ts-ignore
555
- tx,
556
- leveragedAfSuiPositionId,
557
- });
558
- // ii. Update the leverage in the desired direction.
559
- if (inputs.newLeverage < inputs.currentLeverage) {
560
- // iia. Remove afSUI Collateral and repay debt to reach desired leverage.
561
- const remainingSuiCoinId = yield this.fetchBuildDecreaseLeverageTx(Object.assign(Object.assign({}, inputs), { scallopTx,
562
- leveragedActionCapId }));
563
- // iib. Use remaining SUI to pay off SUI debt on Scallop.
564
- this.repaySuiTx(Object.assign(Object.assign({}, inputs), {
565
- // @ts-ignore
566
- tx,
567
- leveragedActionCapId, suiCoinId: remainingSuiCoinId }));
568
- }
569
- else {
570
- // iic. Borrow SUI and deposit more afSUI Collateral to reach desired leverage.
571
- yield this.fetchBuildIncreaseLeverageTx(Object.assign(Object.assign({}, inputs), { scallopTx,
572
- leveragedActionCapId }));
573
- }
574
- // iii. Complete Change Leverage tx.
575
- this.completeActionTx({
576
- // @ts-ignore
577
- tx,
578
- leveragedActionCapId,
579
- leveragedAfSuiPositionId,
580
- obligationId,
581
- });
582
- return tx;
583
- });
584
- // TODO(Kevin): Documentation.
585
- this.fetchBuildIncreaseLeverageTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
586
- throw new Error("TODO");
587
- // const { scallopTx } = inputs;
588
- // const tx = scallopTx.txBlock;
589
- // const afSuiToSuiExchangeRate =
590
- // await this.Provider.Staking().fetchAfSuiToSuiExchangeRate();
591
- // const newTotalAfSuiCollateral = BigInt(
592
- // Math.floor(Number(inputs.baseAfSuiCollateral) * inputs.newLeverage)
593
- // );
594
- // // ia. Calculate the extra amount of afSUI collateral that must be deposited to reach the new
595
- // // desired leverage.
596
- // const increaseInTotalAfSuiCollateral =
597
- // newTotalAfSuiCollateral - inputs.totalAfSuiCollateral;
598
- // // ib. Calculate amount of SUI that must be flash loaned to account for
599
- // // `increaseInAfSuiCollateral`.
600
- // const flashLoanAmount: Balance = BigInt(
601
- // Math.floor(
602
- // Number(increaseInTotalAfSuiCollateral) * afSuiToSuiExchangeRate
603
- // )
604
- // );
605
- // // ii. Flash loan the required amount of SUI from Scallop to increase the position by
606
- // // `increaseInAfSuiCollateral` afSUI.
607
- // const [flashLoanedSuiCoinId, loan] = scallopTx.borrowFlashLoan(
608
- // flashLoanAmount,
609
- // "sui"
610
- // );
611
- // const { afSuiCoinId } = await this.swapOrStakeSuiToAfSui({
612
- // // @ts-ignore
613
- // tx,
614
- // suiAmount: flashLoanAmount,
615
- // suiCoinId: flashLoanedSuiCoinId,
616
- // });
617
- // // iv. Deposit the staked afSUI as collateral on Scallop.
618
- // this.depositAfSuiCollateralTx({
619
- // ...inputs,
620
- // // @ts-ignore
621
- // tx,
622
- // afSuiCoinId,
623
- // obligationId: inputs.obligationId,
624
- // });
625
- // // REVIEW(Kevin): check if both assets need to be updated.
626
- // //
627
- // await scallopTx.updateAssetPricesQuick(["sui", "afsui"]);
628
- // // v. Borrow amount of SUI required to pay off flash loan.
629
- // const [borrowedSuiCoinId] = this.borrowSuiTx({
630
- // ...inputs,
631
- // // @ts-ignore
632
- // tx,
633
- // borrowAmount: flashLoanAmount + BigInt(/*0__0*/ 50_000_000),
634
- // // borrowAmount: flashLoanAmount,
635
- // });
636
- // const repayLoanSuiCoinId = tx.splitCoins(borrowedSuiCoinId, [
637
- // flashLoanAmount,
638
- // ]);
639
- // // vi. Repay flash loan on Scallop.
640
- // scallopTx.repayFlashLoan(
641
- // // flashLoanedSuiCoinId,
642
- // repayLoanSuiCoinId,
643
- // // borrowedSuiCoinId,
644
- // loan,
645
- // "sui"
646
- // );
647
- // // Leftover SUI is used to repay SUI debt.
648
- // this.repaySuiTx({
649
- // ...inputs,
650
- // // @ts-ignore
651
- // tx,
652
- // suiCoinId: borrowedSuiCoinId,
653
- // });
654
- // // REVIEW(kevin): will there even be any leftover SUI to repay?
655
- // //
656
- // // // vii. [Potentially] Use remaining SUI to repay debt.
657
- // // this.repaySuiTx({
658
- // // tx,
659
- // // leveragedActionCapId,
660
- // // obligationId,
661
- // // suiCoinId: borrowedSuiCoinId,
662
- // // });
663
- });
664
- // TODO(Kevin): Documentation.
665
- //
666
- // To decrease leverage, a user needs to withdraw afSUI collateral. To withdraw collateral, a user must first
667
- // repay some or all of their SUI debt. The decrease leverage flow is as follows:
668
- // 1. Calculate how much SUI debt must be repayed to allow withdrawing desired afSUI collateral.
669
- // 2. Flash loan SUI.
670
- // 3. Use SUI to repay debt on Scallop.
671
- // 4. Withdraw afSUI collateral on Scallop.
672
- // 5. Convert afSUI to SUI.
673
- // 6. Repay flash loan.
674
- this.fetchBuildDecreaseLeverageTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
675
- throw new Error("TODO");
676
- // const { scallopTx, slippage } = inputs;
677
- // const tx = scallopTx.txBlock;
678
- // const afSuiToSuiExchangeRate =
679
- // await this.Provider.Staking().fetchAfSuiToSuiExchangeRate();
680
- // let decreaseInAfSuiCollateral;
681
- // let decreaseInSuiDebt;
682
- // // [Edge Case] User wants to unstake their entire position.
683
- // if (inputs.baseAfSuiCollateral === BigInt(0)) {
684
- // // TODO: [edge case] handle closing of position.
685
- // //
686
- // decreaseInAfSuiCollateral = BigInt(inputs.totalAfSuiCollateral);
687
- // // decreaseInAfSuiCollateral = inputs.totalAfSuiCollateral;
688
- // decreaseInSuiDebt = inputs.totalSuiDebt;
689
- // } else {
690
- // // ia. Calculate the amount of afSUI collateral that must be withdrawn to reach
691
- // // a leverage ratio of `newLeverage`.
692
- // const newTotalAfSuiCollateral = BigInt(
693
- // Math.floor(
694
- // Number(inputs.baseAfSuiCollateral) * inputs.newLeverage
695
- // )
696
- // );
697
- // decreaseInAfSuiCollateral =
698
- // inputs.totalAfSuiCollateral - newTotalAfSuiCollateral;
699
- // // ib. Calculate the amount of SUI debt that must be repayed to allow withdrawing
700
- // // `decreaseInAfSuiCollateral` worth of afSUI collateral.
701
- // const newSuiDebt = BigInt(
702
- // Math.floor(
703
- // Number(
704
- // newTotalAfSuiCollateral - inputs.baseAfSuiCollateral
705
- // ) * afSuiToSuiExchangeRate
706
- // )
707
- // );
708
- // decreaseInSuiDebt = inputs.totalSuiDebt - newSuiDebt;
709
- // }
710
- // // ii. Flash loan `decreaseInSuiDebt` worth of SUI from Scallop.
711
- // const [flashLoanedSuiCoinId, loan] = scallopTx.borrowFlashLoan(
712
- // decreaseInSuiDebt,
713
- // "sui"
714
- // );
715
- // // iii. Repay `decreaseInSuiDebt` of SUI debt.
716
- // this.repaySuiTx({
717
- // ...inputs,
718
- // // @ts-ignore
719
- // tx,
720
- // suiCoinId: flashLoanedSuiCoinId,
721
- // });
722
- // // iv. Withdraw `decreaseInCollateralAmount` worth of afSUI collateral.
723
- // const [afSuiId] = await this.fetchBuildWithdrawAfSuiCollateralTx({
724
- // ...inputs,
725
- // withdrawAmount: decreaseInAfSuiCollateral,
726
- // });
727
- // // v. Convert `decreaseInCollateralAmount` of withdrawn collateral into SUI.
728
- // const poolObject = await this.Provider.Pools().fetchPool({
729
- // objectId: this.addresses.leveragedStaking.objects.afSuiSuiPoolId,
730
- // });
731
- // const pool = new Pool(poolObject);
732
- // const swappedSuiCoinId = await this.Provider.Pools().fetchAddTradeTx({
733
- // // @ts-ignore
734
- // tx,
735
- // pool,
736
- // coinInAmount: BigInt(
737
- // Math.floor(Number(decreaseInSuiDebt) * afSuiToSuiExchangeRate)
738
- // ),
739
- // coinInId: afSuiId,
740
- // coinInType: this.Provider.Staking().coinTypes.afSui,
741
- // coinOutType: Coin.constants.suiCoinType,
742
- // slippage,
743
- // });
744
- // const repayLoanSuiCoinId = tx.splitCoins(swappedSuiCoinId, [
745
- // decreaseInSuiDebt,
746
- // ]);
747
- // // vi. Repay flash loan with converted SUI.
748
- // scallopTx.repayFlashLoan(repayLoanSuiCoinId, loan, "sui");
749
- // return swappedSuiCoinId;
750
- });
751
- // =========================================================================
752
- // Helpers
753
- // =========================================================================
754
- this.swapOrStakeSuiToAfSui = (inputs) => __awaiter(this, void 0, void 0, function* () {
755
- throw new Error("TODO");
756
- // const { tx, suiAmount, suiCoinId } = inputs;
757
- // const estimatedSlippageLowerBound = 0.0001; // 0.01%
758
- // let afSuiCoinId: TransactionObjectArgument;
759
- // let minAmountOut: Balance;
760
- // if (suiAmount >= Staking.constants.bounds.minStake) {
761
- // // Stake SUI into afSUI.
762
- // afSuiCoinId = this.Provider.Staking().stakeTx({
763
- // tx,
764
- // validatorAddress:
765
- // this.addresses.staking.objects.aftermathValidator,
766
- // suiCoin: suiCoinId,
767
- // });
768
- // const afSuiToSuiExchangeRate =
769
- // await this.Provider.Staking().fetchAfSuiToSuiExchangeRate();
770
- // minAmountOut = BigInt(
771
- // Math.floor(Number(suiAmount) * afSuiToSuiExchangeRate)
772
- // );
773
- // } else {
774
- // const poolObject = await this.Provider.Pools().fetchPool({
775
- // objectId:
776
- // this.addresses.leveragedStaking.objects.afSuiSuiPoolId,
777
- // });
778
- // const pool = new Pool(poolObject);
779
- // minAmountOut = BigInt(
780
- // Math.floor(
781
- // Number(
782
- // pool.getTradeAmountOut({
783
- // coinInAmount: suiAmount,
784
- // coinInType: Coin.constants.suiCoinType,
785
- // coinOutType:
786
- // this.Provider.Staking().coinTypes.afSui,
787
- // })
788
- // ) *
789
- // (1 - estimatedSlippageLowerBound)
790
- // )
791
- // );
792
- // afSuiCoinId = await this.Provider.Pools().fetchAddTradeTx({
793
- // tx,
794
- // pool,
795
- // slippage: 1, // 100%
796
- // coinInAmount: suiAmount,
797
- // coinInId: suiCoinId,
798
- // coinInType: Coin.constants.suiCoinType,
799
- // coinOutType: this.Provider.Staking().coinTypes.afSui,
800
- // });
801
- // }
802
- // return { afSuiCoinId, minAmountOut };
803
- });
804
- // REVIEW: this is only needed if a user's Obligation can have its debt increased by another address.
805
- // If that isn't possible, then obligation's debt amount + borrow index will always be accurate after
806
- // a call to `completeActionTx`. -- needed because `liquidate` and `repay` don't require `ObligationKey`
807
- // to be called.
808
- //
809
- this.updateTotalSuiDebt = (inputs) => __awaiter(this, void 0, void 0, function* () {
810
- if (!this.ScallopProviders)
811
- throw new Error("Scallop providers not set");
812
- const suiMarket = yield this.ScallopProviders.Query.getMarketPool("sui");
813
- const newBorrowIndex = suiMarket.borrowIndex;
814
- const obligationAccount = yield this.ScallopProviders.Query.queryObligation(inputs.obligationId.toString());
815
- const [positionSuiDebt, positionBorrowIndex] = obligationAccount.debts
816
- ? [
817
- BigInt(obligationAccount.debts[0].amount),
818
- Number(obligationAccount.debts[0].borrowIndex),
819
- ]
820
- : [BigInt(0), 0];
821
- if (positionBorrowIndex === newBorrowIndex)
822
- return { totalSuiDebt: positionSuiDebt };
823
- return {
824
- // REVIEW: calc. (seems to be undershooting/off by a little)
825
- totalSuiDebt: BigInt(Math.floor((Number(positionSuiDebt) * newBorrowIndex) /
826
- positionBorrowIndex)),
827
- };
828
- });
829
- // =========================================================================
830
- // Event Types
831
- // =========================================================================
832
- this.leveragedStakedEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.staking.packages.events, LeveragedStakingApi.constants.moduleNames.events, LeveragedStakingApi.constants.eventNames.leveragedStaked);
833
- this.leveragedUnstakedEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.staking.packages.events, LeveragedStakingApi.constants.moduleNames.events, LeveragedStakingApi.constants.eventNames.leveragedUnstaked);
834
- this.leverageChangedEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.staking.packages.events, LeveragedStakingApi.constants.moduleNames.events, LeveragedStakingApi.constants.eventNames.leverageChanged);
835
- const leveragedStaking = this.Provider.addresses.leveragedStaking;
836
- const staking = this.Provider.addresses.staking;
837
- const pools = this.Provider.addresses.pools;
838
- const scallop = this.Provider.addresses.scallop;
839
- if (!leveragedStaking || !staking || !pools || !scallop)
840
- throw new Error("not all required addresses have been set in provider");
841
- this.addresses = {
842
- leveragedStaking,
843
- staking,
844
- pools,
845
- scallop,
846
- };
847
- this.eventTypes = {
848
- leveragedStaked: this.leveragedStakedEventType(),
849
- leveragedUnstaked: this.leveragedUnstakedEventType(),
850
- leverageChanged: this.leverageChangedEventType(),
851
- };
852
- this.objectTypes = {
853
- leveragedAfSuiPosition: `${leveragedStaking.packages.leveragedAfSuiInitial}::leveraged_afsui_position::LeveragedAfSuiPosition`,
854
- };
855
- }
856
- // =========================================================================
857
- // Events
858
- // =========================================================================
859
- /**
860
- * Fetches events for a specific user.
861
- * @param inputs - The input parameters for fetching events.
862
- * @returns A promise that resolves to an object containing the fetched events and a cursor for pagination.
863
- */
864
- fetchEventsForUser(inputs) {
865
- return __awaiter(this, void 0, void 0, function* () {
866
- throw new Error("TODO");
867
- // const { walletAddress, cursor, limit } = inputs;
868
- // return this.Provider.indexerCaller.fetchIndexerEvents(
869
- // `leveraged-staking/${walletAddress}/events`,
870
- // {
871
- // cursor,
872
- // limit,
873
- // },
874
- // (event) => {
875
- // const eventType = (event as EventOnChain<any>).type;
876
- // return eventType.includes(this.eventTypes.leveragedStaked)
877
- // ? Casting.leveragedStaking.leveragedStakedEventFromOnChain(
878
- // event as LeveragedStakedEventOnChain
879
- // )
880
- // : eventType.includes(this.eventTypes.leveragedUnstaked)
881
- // ? Casting.leveragedStaking.leveragedUnstakedEventFromOnChain(
882
- // event as LeveragedUnstakedEventOnChain
883
- // )
884
- // : Casting.leveragedStaking.leveragedStakeChangedEventFromOnChain(
885
- // event as LeveragedStakeChangedLeverageEventOnChain
886
- // );
887
- // }
888
- // );
889
- });
890
- }
891
- // =========================================================================
892
- // Graph Data
893
- // =========================================================================
894
- /**
895
- * Fetches the performance data for leveraged staking.
896
- * @param inputs - The inputs for fetching performance data.
897
- * @returns A promise that resolves to an array of LeveragedStakingPerformanceDataPoint objects.
898
- */
899
- fetchPerformanceData(inputs) {
900
- return __awaiter(this, void 0, void 0, function* () {
901
- // const { timeframe, borrowRate, maxLeverage } = inputs;
902
- // dayjs.extend(duration);
903
- // const limit = // days ~ epochs
904
- // dayjs
905
- // .duration(
906
- // LeveragedStakingApi.dataTimeframesToDays[timeframe],
907
- // "days"
908
- // )
909
- // // + 2 to account for apy being calculated from events delta
910
- // // (and possible initial 0 afsui supply)
911
- // .asDays() + 2;
912
- // // TODO: fetch borrow rate historically once scallop implements
913
- // const [recentEpochChanges] = await Promise.all([
914
- // this.Provider.Staking().fetchEpochWasChangedEvents({
915
- // limit,
916
- // }),
917
- // ]);
918
- // if (recentEpochChanges.events.length <= 2) return [];
919
- // const daysInYear = 365;
920
- // const timeData = recentEpochChanges.events
921
- // .slice(2)
922
- // .map((event, index) => {
923
- // const currentRate = Number(event.totalAfSuiSupply)
924
- // ? Number(event.totalSuiAmount) /
925
- // Number(event.totalAfSuiSupply)
926
- // : 1;
927
- // const pastEvent = recentEpochChanges.events[index + 1];
928
- // const pastRate = Number(pastEvent.totalAfSuiSupply)
929
- // ? Number(pastEvent.totalSuiAmount) /
930
- // Number(pastEvent.totalAfSuiSupply)
931
- // : 1;
932
- // const afSuiApy =
933
- // ((currentRate - pastRate) / pastRate) * daysInYear;
934
- // return {
935
- // time: event.timestamp ?? 0,
936
- // sui: 0,
937
- // afSui: afSuiApy,
938
- // leveragedAfSui:
939
- // maxLeverage *
940
- // (afSuiApy - borrowRate * (1 - 1 / maxLeverage)),
941
- // };
942
- // });
943
- // return timeData;
944
- throw new Error("not implemented");
945
- });
946
- }
947
- // NOTE: ported from Scallop's SDK.
948
- //
949
- getMarketData(inputs) {
950
- return __awaiter(this, void 0, void 0, function* () {
951
- if (!this.ScallopProviders)
952
- throw new Error("Scallop providers not set");
953
- let { poolCoinName } = inputs;
954
- const marketId = this.ScallopProviders.Query.address.get("core.market");
955
- const marketObject = (yield this.ScallopProviders.Query.suiKit.client().getObject({
956
- id: marketId,
957
- options: {
958
- showContent: true,
959
- },
960
- })).data;
961
- let balanceSheet; // BalanceSheet | undefined;
962
- let borrowIndex; // BorrowIndex | undefined;
963
- let interestModel; // InterestModel | undefined;
964
- let borrowFeeRate;
965
- if (marketObject) {
966
- if (marketObject.content && "fields" in marketObject.content) {
967
- const fields = marketObject.content.fields;
968
- const coinType = this.ScallopProviders.Query.utils.parseCoinType(poolCoinName);
969
- // Get balance sheet.
970
- const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id
971
- .id;
972
- const balanceSheetDdynamicFieldObjectResponse = yield this.ScallopProviders.Query.suiKit
973
- .client()
974
- .getDynamicFieldObject({
975
- parentId: balanceSheetParentId,
976
- name: {
977
- type: "0x1::type_name::TypeName",
978
- value: {
979
- name: coinType.substring(2),
980
- },
981
- },
982
- });
983
- const balanceSheetDdynamicFieldObject = balanceSheetDdynamicFieldObjectResponse.data;
984
- if (balanceSheetDdynamicFieldObject &&
985
- balanceSheetDdynamicFieldObject.content &&
986
- "fields" in balanceSheetDdynamicFieldObject.content) {
987
- const dynamicFields = balanceSheetDdynamicFieldObject
988
- .content.fields;
989
- balanceSheet = dynamicFields.value.fields;
990
- }
991
- // Get borrow index.
992
- const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
993
- const borrowIndexDynamicFieldObjectResponse = yield this.ScallopProviders.Query.suiKit
994
- .client()
995
- .getDynamicFieldObject({
996
- parentId: borrowIndexParentId,
997
- name: {
998
- type: "0x1::type_name::TypeName",
999
- value: {
1000
- name: coinType.substring(2),
1001
- },
1002
- },
1003
- });
1004
- const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse.data;
1005
- if (borrowIndexDynamicFieldObject &&
1006
- borrowIndexDynamicFieldObject.content &&
1007
- "fields" in borrowIndexDynamicFieldObject.content) {
1008
- const dynamicFields = borrowIndexDynamicFieldObject.content
1009
- .fields;
1010
- borrowIndex = dynamicFields.value.fields;
1011
- }
1012
- // Get interest models.
1013
- const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
1014
- const interestModelDynamicFieldObjectResponse = yield this.ScallopProviders.Query.suiKit
1015
- .client()
1016
- .getDynamicFieldObject({
1017
- parentId: interestModelParentId,
1018
- name: {
1019
- type: "0x1::type_name::TypeName",
1020
- value: {
1021
- name: coinType.substring(2),
1022
- },
1023
- },
1024
- });
1025
- const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse.data;
1026
- if (interestModelDynamicFieldObject &&
1027
- interestModelDynamicFieldObject.content &&
1028
- "fields" in interestModelDynamicFieldObject.content) {
1029
- const dynamicFields = interestModelDynamicFieldObject
1030
- .content.fields;
1031
- interestModel = dynamicFields.value.fields;
1032
- }
1033
- // Get borrow fee.
1034
- const borrowFeeDynamicFieldObjectResponse = yield this.ScallopProviders.Query.suiKit
1035
- .client()
1036
- .getDynamicFieldObject({
1037
- parentId: marketId,
1038
- name: {
1039
- // TODO: obtain through ScallopSDK
1040
- //
1041
- type: `0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da::market_dynamic_keys::BorrowFeeKey`,
1042
- value: {
1043
- type: {
1044
- name: coinType.substring(2),
1045
- },
1046
- },
1047
- },
1048
- });
1049
- const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse.data;
1050
- if (borrowFeeDynamicFieldObject &&
1051
- borrowFeeDynamicFieldObject.content &&
1052
- "fields" in borrowFeeDynamicFieldObject.content) {
1053
- const dynamicFields = borrowFeeDynamicFieldObject.content
1054
- .fields;
1055
- borrowFeeRate = dynamicFields.value.fields;
1056
- }
1057
- }
1058
- }
1059
- if (!balanceSheet || !borrowIndex || !interestModel || !borrowFeeRate)
1060
- throw Error("Could not load MarketData");
1061
- return {
1062
- type: interestModel.type.fields,
1063
- maxBorrowRate: interestModel.max_borrow_rate.fields,
1064
- interestRate: borrowIndex.interest_rate.fields,
1065
- interestRateScale: borrowIndex.interest_rate_scale,
1066
- borrowIndex: borrowIndex.borrow_index,
1067
- lastUpdated: borrowIndex.last_updated,
1068
- cash: balanceSheet.cash,
1069
- debt: balanceSheet.debt,
1070
- marketCoinSupply: balanceSheet.market_coin_supply,
1071
- reserve: balanceSheet.revenue,
1072
- reserveFactor: interestModel.revenue_factor.fields,
1073
- borrowWeight: interestModel.borrow_weight.fields,
1074
- borrowFeeRate: borrowFeeRate,
1075
- baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
1076
- borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
1077
- borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
1078
- highKink: interestModel.high_kink.fields,
1079
- midKink: interestModel.mid_kink.fields,
1080
- minBorrowAmount: interestModel.min_borrow_amount,
1081
- };
1082
- });
1083
- }
1084
- }
1085
- exports.LeveragedStakingApi = LeveragedStakingApi;
1086
- // =========================================================================
1087
- // Constants
1088
- // =========================================================================
1089
- LeveragedStakingApi.constants = {
1090
- moduleNames: {
1091
- leveragedAfSuiPosition: "leveraged_afsui_position",
1092
- leveragedAfSuiState: "leveraged_afsui_state",
1093
- interface: "interface",
1094
- events: "events",
1095
- },
1096
- eventNames: {
1097
- leveragedStaked: "StakedEvent",
1098
- leveragedUnstaked: "UnstakedEvent",
1099
- leverageChanged: "ChangedLeverageEvent",
1100
- },
1101
- };
1102
- LeveragedStakingApi.dataTimeframesToDays = {
1103
- "1M": 30,
1104
- };