impermax-sdk 1.2.112 → 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 (357) hide show
  1. package/lib/abis/ImpermaxABI.d.ts +2 -2
  2. package/lib/abis/ImpermaxABI.js +3 -3
  3. package/lib/abis/contracts/ClaimAggregator.json +2015 -2015
  4. package/lib/abis/contracts/IAllowanceTransfer.json +3772 -0
  5. package/lib/abis/contracts/IBorrowable.json +13207 -13207
  6. package/lib/abis/contracts/IClaimable.json +406 -406
  7. package/lib/abis/contracts/ICollateral.json +9052 -9052
  8. package/lib/abis/contracts/IERC20.json +2376 -2376
  9. package/lib/abis/contracts/IERC721.json +3515 -0
  10. package/lib/abis/contracts/IFactory.json +3660 -3660
  11. package/lib/abis/contracts/IFarmingPool.json +3584 -3584
  12. package/lib/abis/contracts/ILendingVaultV1.json +8358 -8358
  13. package/lib/abis/contracts/IMerkleDistributor.json +1134 -1134
  14. package/lib/abis/contracts/IRouter02.json +7283 -7283
  15. package/lib/abis/contracts/ISimpleUniswapOracle.json +1469 -1469
  16. package/lib/abis/contracts/IStakedLPToken.json +7309 -7309
  17. package/lib/abis/contracts/IStakingRewards.json +1036 -1036
  18. package/lib/abis/contracts/ITokenizedUniswapV2Position.json +4167 -0
  19. package/lib/abis/contracts/ITokenizedUniswapV3Position.json +5539 -0
  20. package/lib/abis/contracts/IUniswapV2Factory.json +1690 -1690
  21. package/lib/abis/contracts/IUniswapV2Pair.json +6761 -6761
  22. package/lib/abis/contracts/IUniswapV3Pool.json +6606 -0
  23. package/lib/abis/contracts/ImpermaxChef.json +20945 -20945
  24. package/lib/abis/contracts/ImpermaxConfigManager.json +31595 -31595
  25. package/lib/abis/contracts/ImpermaxV3Borrowable.json +22131 -0
  26. package/lib/abis/contracts/ImpermaxV3Collateral.json +22988 -0
  27. package/lib/abis/contracts/ImpermaxV3Factory.json +17645 -0
  28. package/lib/abis/contracts/ImpermaxV3UniV2Router01.json +32488 -0
  29. package/lib/abis/contracts/ImpermaxV3UniV3Router01.json +37742 -0
  30. package/lib/abis/contracts/LendingVaultWatcher01.json +4076 -4076
  31. package/lib/abis/contracts/PoolTokenRouter01.json +9058 -0
  32. package/lib/config/amms.d.ts +102 -104
  33. package/lib/config/amms.js +433 -436
  34. package/lib/config/chainId.d.ts +2 -0
  35. package/lib/config/chainId.js +26 -0
  36. package/lib/config/contracts/claim-aggregators.d.ts +2 -2
  37. package/lib/config/contracts/claim-aggregators.js +26 -26
  38. package/lib/config/contracts/impermax-chef.d.ts +2 -2
  39. package/lib/config/contracts/impermax-chef.js +27 -27
  40. package/lib/config/contracts/impermax-config-manager.d.ts +2 -2
  41. package/lib/config/contracts/impermax-config-manager.js +26 -26
  42. package/lib/config/contracts/impermax-factories.d.ts +4 -4
  43. package/lib/config/contracts/impermax-factories.js +87 -87
  44. package/lib/config/contracts/imxes.d.ts +2 -2
  45. package/lib/config/contracts/imxes.js +26 -26
  46. package/lib/config/contracts/lending-vault-watcher.d.ts +2 -2
  47. package/lib/config/contracts/lending-vault-watcher.js +26 -26
  48. package/lib/config/contracts/merkle-distributors.d.ts +4 -4
  49. package/lib/config/contracts/merkle-distributors.js +70 -70
  50. package/lib/config/contracts/routers.d.ts +4 -3
  51. package/lib/config/contracts/routers.js +118 -94
  52. package/lib/config/contracts/simple-uniswap-oracles.d.ts +2 -2
  53. package/lib/config/contracts/simple-uniswap-oracles.js +49 -49
  54. package/lib/config/contracts/weths.d.ts +2 -2
  55. package/lib/config/contracts/weths.js +27 -27
  56. package/lib/config/debank-ids.d.ts +2 -2
  57. package/lib/config/debank-ids.js +26 -26
  58. package/lib/config/endpoints/merkle-distributors.d.ts +4 -4
  59. package/lib/config/endpoints/merkle-distributors.js +70 -70
  60. package/lib/config/eth.d.ts +3 -3
  61. package/lib/config/eth.js +48 -48
  62. package/lib/config/factories.d.ts +7 -7
  63. package/lib/config/factories.js +31 -30
  64. package/lib/config/farms.d.ts +109 -111
  65. package/lib/config/farms.js +207 -210
  66. package/lib/config/general.d.ts +5 -5
  67. package/lib/config/general.js +8 -8
  68. package/lib/config/subgraphs.d.ts +45 -45
  69. package/lib/config/subgraphs.js +187 -187
  70. package/lib/config/types.d.ts +85 -72
  71. package/lib/config/types.js +72 -58
  72. package/lib/index.d.ts +36 -35
  73. package/lib/index.js +159 -152
  74. package/lib/offchain/account/index.d.ts +9 -7
  75. package/lib/offchain/account/index.js +43 -39
  76. package/lib/offchain/account/lendingPool/borrowable.d.ts +14 -0
  77. package/lib/offchain/account/lendingPool/borrowable.js +73 -0
  78. package/lib/offchain/account/lendingPool/collateral.d.ts +12 -0
  79. package/lib/offchain/account/lendingPool/collateral.js +42 -0
  80. package/lib/offchain/account/lendingPool/index.d.ts +6 -5
  81. package/lib/offchain/account/lendingPool/index.js +14 -12
  82. package/lib/offchain/account/lendingPool/offchainAccountBorrowable.d.ts +14 -17
  83. package/lib/offchain/account/lendingPool/offchainAccountBorrowable.js +45 -71
  84. package/lib/offchain/account/lendingPool/offchainAccountCollateral.d.ts +11 -13
  85. package/lib/offchain/account/lendingPool/offchainAccountCollateral.js +31 -43
  86. package/lib/offchain/account/lendingPool/offchainAccountLendingPool.d.ts +28 -21
  87. package/lib/offchain/account/lendingPool/offchainAccountLendingPool.js +69 -68
  88. package/lib/offchain/account/lendingPool/offchainLeveragedPosition.d.ts +25 -0
  89. package/lib/offchain/account/lendingPool/offchainLeveragedPosition.js +116 -0
  90. package/lib/offchain/account/lendingVault.d.ts +11 -0
  91. package/lib/offchain/account/lendingVault.js +38 -0
  92. package/lib/offchain/account/offchainAccount.d.ts +25 -25
  93. package/lib/offchain/account/offchainAccount.js +129 -129
  94. package/lib/offchain/account/offchainAccountLendingVault.d.ts +16 -16
  95. package/lib/offchain/account/offchainAccountLendingVault.js +64 -64
  96. package/lib/offchain/account/offchainAccountPoolToken.d.ts +7 -7
  97. package/lib/offchain/account/offchainAccountPoolToken.js +24 -24
  98. package/lib/offchain/account/offchainMultichainAccount.d.ts +34 -0
  99. package/lib/offchain/account/offchainMultichainAccount.js +66 -0
  100. package/lib/offchain/account/poolToken.d.ts +6 -0
  101. package/lib/offchain/account/poolToken.js +21 -0
  102. package/lib/offchain/account/vault/index.d.ts +3 -0
  103. package/lib/offchain/account/vault/index.js +7 -0
  104. package/lib/offchain/account/vault/offchainAccountVault.d.ts +16 -0
  105. package/lib/offchain/account/vault/offchainAccountVault.js +64 -0
  106. package/lib/offchain/configManager/index.d.ts +5 -5
  107. package/lib/offchain/configManager/index.js +12 -12
  108. package/lib/offchain/configManager/offchainConfigManager.d.ts +25 -25
  109. package/lib/offchain/configManager/offchainConfigManager.js +76 -76
  110. package/lib/offchain/configManager/offchainConfigManagerInitializer.d.ts +6 -6
  111. package/lib/offchain/configManager/offchainConfigManagerInitializer.js +53 -53
  112. package/lib/offchain/configManager/offchainPairConfig.d.ts +40 -40
  113. package/lib/offchain/configManager/offchainPairConfig.js +86 -86
  114. package/lib/offchain/configManager/offchainProposal.d.ts +17 -17
  115. package/lib/offchain/configManager/offchainProposal.js +53 -53
  116. package/lib/offchain/index.d.ts +15 -14
  117. package/lib/offchain/index.js +55 -53
  118. package/lib/offchain/initializer.d.ts +32 -0
  119. package/lib/offchain/initializer.js +627 -0
  120. package/lib/offchain/lendingPool/borrowable.d.ts +55 -0
  121. package/lib/offchain/lendingPool/borrowable.js +351 -0
  122. package/lib/offchain/lendingPool/collateral.d.ts +17 -0
  123. package/lib/offchain/lendingPool/collateral.js +72 -0
  124. package/lib/offchain/lendingPool/index.d.ts +5 -5
  125. package/lib/offchain/lendingPool/index.js +12 -12
  126. package/lib/offchain/lendingPool/offchainBorrowable.d.ts +59 -59
  127. package/lib/offchain/lendingPool/offchainBorrowable.js +366 -366
  128. package/lib/offchain/lendingPool/offchainCollateral.d.ts +20 -19
  129. package/lib/offchain/lendingPool/offchainCollateral.js +81 -75
  130. package/lib/offchain/lendingPool/offchainLendingPool.d.ts +60 -47
  131. package/lib/offchain/lendingPool/offchainLendingPool.js +277 -230
  132. package/lib/offchain/lendingVault.d.ts +22 -0
  133. package/lib/offchain/lendingVault.js +115 -0
  134. package/lib/offchain/offchain.d.ts +106 -113
  135. package/lib/offchain/offchain.js +248 -251
  136. package/lib/offchain/offchainAPRHelper.d.ts +45 -45
  137. package/lib/offchain/offchainAPRHelper.js +239 -239
  138. package/lib/offchain/offchainEndpointManager.d.ts +25 -25
  139. package/lib/offchain/offchainEndpointManager.js +126 -126
  140. package/lib/offchain/offchainInitializer.d.ts +52 -52
  141. package/lib/offchain/offchainInitializer.js +792 -792
  142. package/lib/offchain/offchainLendingVault.d.ts +25 -25
  143. package/lib/offchain/offchainLendingVault.js +114 -114
  144. package/lib/offchain/offchainMultichain.d.ts +50 -0
  145. package/lib/offchain/offchainMultichain.js +75 -0
  146. package/lib/offchain/offchainPoolToken.d.ts +21 -21
  147. package/lib/offchain/offchainPoolToken.js +128 -128
  148. package/lib/offchain/offchainPriceHelper.d.ts +22 -22
  149. package/lib/offchain/offchainPriceHelper.js +364 -364
  150. package/lib/offchain/offchainSolidexHelper.d.ts +16 -16
  151. package/lib/offchain/offchainSolidexHelper.js +58 -58
  152. package/lib/offchain/offchainTypes.d.ts +212 -212
  153. package/lib/offchain/offchainTypes.js +3 -3
  154. package/lib/offchain/poolToken.d.ts +20 -0
  155. package/lib/offchain/poolToken.js +120 -0
  156. package/lib/offchain/priceHelper.d.ts +21 -0
  157. package/lib/offchain/priceHelper.js +195 -0
  158. package/lib/offchain/queries/apis/ponder/index.d.ts +14 -14
  159. package/lib/offchain/queries/apis/ponder/index.js +281 -281
  160. package/lib/offchain/queries/apis/thegraph/index.d.ts +19 -19
  161. package/lib/offchain/queries/apis/thegraph/index.js +355 -355
  162. package/lib/offchain/queries/index.d.ts +20 -20
  163. package/lib/offchain/queries/index.js +51 -51
  164. package/lib/offchain/queries/interfaces/query-builder.d.ts +19 -19
  165. package/lib/offchain/queries/interfaces/query-builder.js +2 -2
  166. package/lib/offchain/queries/interfaces/transformers.js +9 -9
  167. package/lib/offchain/query.d.ts +15 -0
  168. package/lib/offchain/query.js +323 -0
  169. package/lib/offchain/solidexHelper.d.ts +16 -0
  170. package/lib/offchain/solidexHelper.js +58 -0
  171. package/lib/offchain/types.d.ts +150 -0
  172. package/lib/offchain/types.js +3 -0
  173. package/lib/offchain/vault/index.d.ts +6 -0
  174. package/lib/offchain/vault/index.js +14 -0
  175. package/lib/offchain/vault/offchainHedgedVault.d.ts +9 -0
  176. package/lib/offchain/vault/offchainHedgedVault.js +57 -0
  177. package/lib/offchain/vault/offchainLendingVault.d.ts +16 -0
  178. package/lib/offchain/vault/offchainLendingVault.js +73 -0
  179. package/lib/offchain/vault/offchainLeveragedVault.d.ts +9 -0
  180. package/lib/offchain/vault/offchainLeveragedVault.js +57 -0
  181. package/lib/offchain/vault/offchainVault.d.ts +34 -0
  182. package/lib/offchain/vault/offchainVault.js +130 -0
  183. package/lib/onchain/account/index.d.ts +6 -6
  184. package/lib/onchain/account/index.js +38 -38
  185. package/lib/onchain/account/interactions/index.d.ts +28 -0
  186. package/lib/onchain/account/interactions/index.js +158 -0
  187. package/lib/onchain/account/interactions/lendingPool/borrowable.d.ts +16 -0
  188. package/lib/onchain/account/interactions/lendingPool/borrowable.js +49 -0
  189. package/lib/onchain/account/interactions/lendingPool/collateral.d.ts +15 -0
  190. package/lib/onchain/account/interactions/lendingPool/collateral.js +33 -0
  191. package/lib/onchain/account/interactions/lendingPool/index.d.ts +41 -0
  192. package/lib/onchain/account/interactions/lendingPool/index.js +120 -0
  193. package/lib/onchain/account/interactions/lendingVault.d.ts +10 -0
  194. package/lib/onchain/account/interactions/lendingVault.js +12 -0
  195. package/lib/onchain/account/interactions/poolToken.d.ts +33 -0
  196. package/lib/onchain/account/interactions/poolToken.js +180 -0
  197. package/lib/onchain/account/lendingPool/borrowable.d.ts +29 -0
  198. package/lib/onchain/account/lendingPool/borrowable.js +135 -0
  199. package/lib/onchain/account/lendingPool/collateral.d.ts +15 -0
  200. package/lib/onchain/account/lendingPool/collateral.js +66 -0
  201. package/lib/onchain/account/lendingPool/index.d.ts +12 -5
  202. package/lib/onchain/account/lendingPool/index.js +49 -12
  203. package/lib/onchain/account/lendingPool/nftlp/index.d.ts +4 -0
  204. package/lib/onchain/account/lendingPool/nftlp/index.js +11 -0
  205. package/lib/onchain/account/lendingPool/nftlp/onchainAccountNftlp.d.ts +7 -0
  206. package/lib/onchain/account/lendingPool/nftlp/onchainAccountNftlp.js +12 -0
  207. package/lib/onchain/account/lendingPool/nftlp/onchainAccountNftlpUniswapV3.d.ts +4 -0
  208. package/lib/onchain/account/lendingPool/nftlp/onchainAccountNftlpUniswapV3.js +13 -0
  209. package/lib/onchain/account/lendingPool/onchainAccountBorrowable.d.ts +39 -34
  210. package/lib/onchain/account/lendingPool/onchainAccountBorrowable.js +131 -176
  211. package/lib/onchain/account/lendingPool/onchainAccountBorrowableV2.d.ts +10 -0
  212. package/lib/onchain/account/lendingPool/onchainAccountBorrowableV2.js +55 -0
  213. package/lib/onchain/account/lendingPool/onchainAccountBorrowableV3.d.ts +10 -0
  214. package/lib/onchain/account/lendingPool/onchainAccountBorrowableV3.js +28 -0
  215. package/lib/onchain/account/lendingPool/onchainAccountCollateral.d.ts +10 -23
  216. package/lib/onchain/account/lendingPool/onchainAccountCollateral.js +26 -109
  217. package/lib/onchain/account/lendingPool/onchainAccountCollateralV2.d.ts +25 -0
  218. package/lib/onchain/account/lendingPool/onchainAccountCollateralV2.js +99 -0
  219. package/lib/onchain/account/lendingPool/onchainAccountCollateralV3.d.ts +18 -0
  220. package/lib/onchain/account/lendingPool/onchainAccountCollateralV3.js +44 -0
  221. package/lib/onchain/account/lendingPool/onchainAccountLendingPool.d.ts +42 -57
  222. package/lib/onchain/account/lendingPool/onchainAccountLendingPool.js +142 -352
  223. package/lib/onchain/account/lendingPool/onchainAccountLendingPoolV2.d.ts +44 -0
  224. package/lib/onchain/account/lendingPool/onchainAccountLendingPoolV2.js +285 -0
  225. package/lib/onchain/account/lendingPool/onchainAccountLendingPoolV3.d.ts +27 -0
  226. package/lib/onchain/account/lendingPool/onchainAccountLendingPoolV3.js +32 -0
  227. package/lib/onchain/account/lendingVault.d.ts +10 -0
  228. package/lib/onchain/account/lendingVault.js +35 -0
  229. package/lib/onchain/account/onchainAccount.d.ts +32 -32
  230. package/lib/onchain/account/onchainAccount.js +166 -167
  231. package/lib/onchain/account/onchainAccountLendingVault.d.ts +19 -19
  232. package/lib/onchain/account/onchainAccountLendingVault.js +48 -48
  233. package/lib/onchain/account/onchainAccountPoolToken.d.ts +30 -30
  234. package/lib/onchain/account/onchainAccountPoolToken.js +86 -86
  235. package/lib/onchain/account/poolToken.d.ts +24 -0
  236. package/lib/onchain/account/poolToken.js +84 -0
  237. package/lib/onchain/configManager/index.d.ts +5 -5
  238. package/lib/onchain/configManager/index.js +12 -12
  239. package/lib/onchain/configManager/onchainConfigManager.d.ts +12 -12
  240. package/lib/onchain/configManager/onchainConfigManager.js +38 -38
  241. package/lib/onchain/configManager/onchainPairConfig.d.ts +38 -38
  242. package/lib/onchain/configManager/onchainPairConfig.js +85 -85
  243. package/lib/onchain/configManager/onchainProposal.d.ts +17 -17
  244. package/lib/onchain/configManager/onchainProposal.js +55 -55
  245. package/lib/onchain/contractsHelper.d.ts +29 -0
  246. package/lib/onchain/contractsHelper.js +52 -0
  247. package/lib/onchain/impermaxFactory/index.d.ts +7 -5
  248. package/lib/onchain/impermaxFactory/index.js +39 -35
  249. package/lib/onchain/impermaxFactory/lendingPool/borrowable.d.ts +36 -0
  250. package/lib/onchain/impermaxFactory/lendingPool/borrowable.js +153 -0
  251. package/lib/onchain/impermaxFactory/lendingPool/collateral.d.ts +17 -0
  252. package/lib/onchain/impermaxFactory/lendingPool/collateral.js +59 -0
  253. package/lib/onchain/impermaxFactory/lendingPool/index.d.ts +12 -5
  254. package/lib/onchain/impermaxFactory/lendingPool/index.js +50 -12
  255. package/lib/onchain/impermaxFactory/lendingPool/nftlp/index.d.ts +4 -0
  256. package/lib/onchain/impermaxFactory/lendingPool/nftlp/index.js +11 -0
  257. package/lib/onchain/impermaxFactory/lendingPool/nftlp/onchainNftlp.d.ts +22 -0
  258. package/lib/onchain/impermaxFactory/lendingPool/nftlp/onchainNftlp.js +19 -0
  259. package/lib/onchain/impermaxFactory/lendingPool/nftlp/onchainNftlpUniswapV3.d.ts +24 -0
  260. package/lib/onchain/impermaxFactory/lendingPool/nftlp/onchainNftlpUniswapV3.js +90 -0
  261. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowable.d.ts +38 -34
  262. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowable.js +137 -156
  263. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowableV2.d.ts +9 -0
  264. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowableV2.js +36 -0
  265. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowableV3.d.ts +7 -0
  266. package/lib/onchain/impermaxFactory/lendingPool/onchainBorrowableV3.js +23 -0
  267. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateral.d.ts +8 -19
  268. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateral.js +24 -61
  269. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateralV2.d.ts +20 -0
  270. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateralV2.js +58 -0
  271. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateralV3.d.ts +13 -0
  272. package/lib/onchain/impermaxFactory/lendingPool/onchainCollateralV3.js +36 -0
  273. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPool.d.ts +43 -58
  274. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPool.js +81 -367
  275. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPoolV2.d.ts +76 -0
  276. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPoolV2.js +338 -0
  277. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPoolV3.d.ts +42 -0
  278. package/lib/onchain/impermaxFactory/lendingPool/onchainLendingPoolV3.js +39 -0
  279. package/lib/onchain/impermaxFactory/onchainImpermaxFactory.d.ts +26 -16
  280. package/lib/onchain/impermaxFactory/onchainImpermaxFactory.js +42 -52
  281. package/lib/onchain/impermaxFactory/onchainImpermaxFactoryV2.d.ts +16 -0
  282. package/lib/onchain/impermaxFactory/onchainImpermaxFactoryV2.js +81 -0
  283. package/lib/onchain/impermaxFactory/onchainImpermaxFactoryV3.d.ts +16 -0
  284. package/lib/onchain/impermaxFactory/onchainImpermaxFactoryV3.js +88 -0
  285. package/lib/onchain/index.d.ts +10 -10
  286. package/lib/onchain/index.js +49 -49
  287. package/lib/onchain/interactions/index.d.ts +8 -8
  288. package/lib/onchain/interactions/index.js +41 -41
  289. package/lib/onchain/interactions/lendingPool/borrowable.d.ts +14 -0
  290. package/lib/onchain/interactions/lendingPool/borrowable.js +47 -0
  291. package/lib/onchain/interactions/lendingPool/collateral.d.ts +13 -0
  292. package/lib/onchain/interactions/lendingPool/collateral.js +31 -0
  293. package/lib/onchain/interactions/lendingPool/index.d.ts +12 -5
  294. package/lib/onchain/interactions/lendingPool/index.js +49 -12
  295. package/lib/onchain/interactions/lendingPool/nftlp/index.d.ts +4 -0
  296. package/lib/onchain/interactions/lendingPool/nftlp/index.js +11 -0
  297. package/lib/onchain/interactions/lendingPool/nftlp/onchainInteractionsNftlp.d.ts +7 -0
  298. package/lib/onchain/interactions/lendingPool/nftlp/onchainInteractionsNftlp.js +12 -0
  299. package/lib/onchain/interactions/lendingPool/nftlp/onchainInteractionsNftlpUniswapV3.d.ts +4 -0
  300. package/lib/onchain/interactions/lendingPool/nftlp/onchainInteractionsNftlpUniswapV3.js +13 -0
  301. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowable.d.ts +17 -21
  302. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowable.js +24 -56
  303. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowableV2.d.ts +15 -0
  304. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowableV2.js +63 -0
  305. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowableV3.d.ts +9 -0
  306. package/lib/onchain/interactions/lendingPool/onchainInteractionsBorrowableV3.js +14 -0
  307. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateral.d.ts +7 -19
  308. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateral.js +11 -43
  309. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateralV2.d.ts +20 -0
  310. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateralV2.js +48 -0
  311. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateralV3.d.ts +13 -0
  312. package/lib/onchain/interactions/lendingPool/onchainInteractionsCollateralV3.js +20 -0
  313. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPool.d.ts +31 -46
  314. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPool.js +53 -135
  315. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPoolV2.d.ts +42 -0
  316. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPoolV2.js +114 -0
  317. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPoolV3.d.ts +27 -0
  318. package/lib/onchain/interactions/lendingPool/onchainInteractionsLendingPoolV3.js +32 -0
  319. package/lib/onchain/interactions/lendingVault.d.ts +8 -0
  320. package/lib/onchain/interactions/lendingVault.js +15 -0
  321. package/lib/onchain/interactions/onchainInteractions.d.ts +31 -31
  322. package/lib/onchain/interactions/onchainInteractions.js +136 -137
  323. package/lib/onchain/interactions/onchainInteractionsConfigManager.d.ts +17 -17
  324. package/lib/onchain/interactions/onchainInteractionsConfigManager.js +44 -44
  325. package/lib/onchain/interactions/onchainInteractionsLendingVault.d.ts +14 -14
  326. package/lib/onchain/interactions/onchainInteractionsLendingVault.js +21 -21
  327. package/lib/onchain/interactions/onchainInteractionsPoolToken.d.ts +35 -35
  328. package/lib/onchain/interactions/onchainInteractionsPoolToken.js +134 -186
  329. package/lib/onchain/interactions/poolToken.d.ts +31 -0
  330. package/lib/onchain/interactions/poolToken.js +181 -0
  331. package/lib/onchain/lendingVault.d.ts +17 -0
  332. package/lib/onchain/lendingVault.js +56 -0
  333. package/lib/onchain/onchain.d.ts +38 -35
  334. package/lib/onchain/onchain.js +78 -70
  335. package/lib/onchain/onchainContractsHelper.d.ts +42 -31
  336. package/lib/onchain/onchainContractsHelper.js +90 -56
  337. package/lib/onchain/onchainLendingVault.d.ts +22 -22
  338. package/lib/onchain/onchainLendingVault.js +69 -69
  339. package/lib/onchain/onchainPermitHelper.d.ts +21 -0
  340. package/lib/onchain/onchainPermitHelper.js +198 -0
  341. package/lib/onchain/onchainPoolToken.d.ts +35 -35
  342. package/lib/onchain/onchainPoolToken.js +129 -129
  343. package/lib/onchain/onchainTypes.d.ts +70 -64
  344. package/lib/onchain/onchainTypes.js +14 -14
  345. package/lib/onchain/poolToken.d.ts +32 -0
  346. package/lib/onchain/poolToken.js +121 -0
  347. package/lib/onchain/types.d.ts +45 -0
  348. package/lib/onchain/types.js +14 -0
  349. package/lib/utils/ether-utils.d.ts +5 -5
  350. package/lib/utils/ether-utils.js +26 -26
  351. package/lib/utils/index.d.ts +3 -3
  352. package/lib/utils/index.js +16 -16
  353. package/lib/utils/lliquidity-math.d.ts +30 -30
  354. package/lib/utils/lliquidity-math.js +139 -139
  355. package/lib/utils/price-from-reserves.d.ts +2 -0
  356. package/lib/utils/price-from-reserves.js +19 -0
  357. package/package.json +36 -36
@@ -1,352 +1,142 @@
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
- const types_1 = require("../../../config/types");
16
- const onchainAccountCollateral_1 = __importDefault(require("./onchainAccountCollateral"));
17
- const onchainAccountBorrowable_1 = __importDefault(require("./onchainAccountBorrowable"));
18
- const onchainTypes_1 = require("../../onchainTypes");
19
- const factories_1 = require("../../../config/factories");
20
- const lliquidity_math_1 = require("../../../utils/lliquidity-math");
21
- const utils_1 = require("../../../utils");
22
- class OnchainAccountLendingPool {
23
- constructor(account, lendingPool) {
24
- this.cache = {};
25
- this.getAccount = () => this.account;
26
- this.getLendingPool = () => this.lendingPool;
27
- // Shortcuts
28
- this.getBorrowableA = () => this.poolTokens[types_1.PoolTokenType.BorrowableA];
29
- this.getBorrowableB = () => this.poolTokens[types_1.PoolTokenType.BorrowableB];
30
- this.getCollateral = () => this.poolTokens[types_1.PoolTokenType.Collateral];
31
- this.getFactory = () => this.lendingPool.getImpermaxFactory().getFactory();
32
- this.getPairAddress = () => this.lendingPool.getPairAddress();
33
- this.getSafetyMargin = () => __awaiter(this, void 0, void 0, function* () { return (yield this.lendingPool.getOffchainLendingPool()).getSafetyMargin(); });
34
- this.getLiquidationPenalty = () => __awaiter(this, void 0, void 0, function* () { return (yield this.lendingPool.getOffchainLendingPool()).getLiquidationPenalty(); });
35
- this.getUiMargin = () => this.account.getOnchain().uiMargin;
36
- this.account = account;
37
- this.lendingPool = lendingPool;
38
- this.poolTokens = {
39
- [types_1.PoolTokenType.Collateral]: new onchainAccountCollateral_1.default(this),
40
- [types_1.PoolTokenType.BorrowableA]: new onchainAccountBorrowable_1.default(this, types_1.PoolTokenType.BorrowableA),
41
- [types_1.PoolTokenType.BorrowableB]: new onchainAccountBorrowable_1.default(this, types_1.PoolTokenType.BorrowableB),
42
- };
43
- }
44
- getPoolToken(poolTokenType) {
45
- return this.poolTokens[poolTokenType];
46
- }
47
- getInteractionsLendingPool() {
48
- return this.account.getInteractions().getLendingPool(this.getFactory(), this.getPairAddress());
49
- }
50
- getOffchainAccountLendingPool() {
51
- return this.account.getOffchainAccount().getLendingPool(this.getFactory(), this.getPairAddress());
52
- }
53
- cleanCache() {
54
- this.cache = {};
55
- this.getBorrowableA().cleanCache();
56
- this.getBorrowableB().cleanCache();
57
- this.getCollateral().cleanCache();
58
- }
59
- // Balance
60
- getBalanceUSD() {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
63
- const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
64
- const depositedCUSD = yield this.getCollateral().getDepositedUSD();
65
- return depositedAUSD + depositedBUSD + depositedCUSD;
66
- });
67
- }
68
- // Supplied
69
- getSuppliedUSD() {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
72
- const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
73
- return depositedAUSD + depositedBUSD;
74
- });
75
- }
76
- // Debt
77
- getDebtUSD() {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- const borrowedAUSD = yield this.getBorrowableA().getBorrowedUSD();
80
- const borrowedBUSD = yield this.getBorrowableB().getBorrowedUSD();
81
- return borrowedAUSD + borrowedBUSD;
82
- });
83
- }
84
- // Equity
85
- getEquityUSD() {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const balanceUSD = yield this.getBalanceUSD();
88
- const debtUSD = yield this.getDebtUSD();
89
- return balanceUSD - debtUSD;
90
- });
91
- }
92
- getLPEquityUSD() {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const collateralUSD = yield this.getCollateral().getDepositedUSD();
95
- const debtUSD = yield this.getDebtUSD();
96
- return collateralUSD - debtUSD;
97
- });
98
- }
99
- getLPEquity() {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- const lpEquityUSD = yield this.getLPEquityUSD();
102
- const tokenPrice = yield this.getCollateral().getTokenPriceAccurate();
103
- const stakedLPExchangeRate = yield this.lendingPool.getStakedLPExchangeRate();
104
- return lpEquityUSD / tokenPrice * stakedLPExchangeRate;
105
- });
106
- }
107
- // Debt
108
- getAccountAPR() {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
111
- const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
112
- const totalSupplied = depositedAUSD + depositedBUSD;
113
- const supplyAPRA = yield this.getBorrowableA().getSupplyAPR();
114
- const supplyAPRB = yield this.getBorrowableB().getSupplyAPR();
115
- return totalSupplied > 0 ? (depositedAUSD * supplyAPRA + depositedBUSD * supplyAPRB) / totalSupplied : 0;
116
- });
117
- }
118
- // Values
119
- getValuesFromPrice(changes, priceA, priceB) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- const valueCollateral = (yield this.getCollateral().getDeposited()) + changes.changeCollateral;
122
- const amountA = (yield this.getBorrowableA().getBorrowed()) + changes.changeBorrowedA;
123
- const amountB = (yield this.getBorrowableB().getBorrowed()) + changes.changeBorrowedB;
124
- const valueA = amountA * priceA;
125
- const valueB = amountB * priceB;
126
- return {
127
- valueCollateral: valueCollateral > 0 ? valueCollateral : 0,
128
- valueA: valueA > 0 ? valueA : 0,
129
- valueB: valueB > 0 ? valueB : 0,
130
- };
131
- });
132
- }
133
- getValues(changes) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- const [priceA, priceB] = yield this.lendingPool.getPriceDenomLP();
136
- return this.getValuesFromPrice(changes, priceA, priceB);
137
- });
138
- }
139
- getMarketValues(changes) {
140
- return __awaiter(this, void 0, void 0, function* () {
141
- const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
142
- return this.getValuesFromPrice(changes, priceA, priceB);
143
- });
144
- }
145
- // Leverage
146
- getLeverage(changes) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- if (!changes)
149
- changes = onchainTypes_1.NO_CHANGES;
150
- const { valueCollateral, valueA, valueB } = yield this.getValues(changes);
151
- const valueDebt = valueA + valueB;
152
- if (valueDebt == 0)
153
- return 1;
154
- const equity = valueCollateral - valueDebt;
155
- if (equity <= 0)
156
- return Infinity;
157
- return valueDebt / equity + 1;
158
- });
159
- }
160
- // Liquidation Threshold
161
- /*public async getLiquidationPriceSwingsGivenValues(values: Values) : Promise<[number, number]> {
162
- if (!values) return [Infinity, Infinity];
163
- const { valueCollateral, valueA, valueB } = values;
164
- if (valueA + valueB == 0) return [Infinity, Infinity];
165
- const safetyMargin = await this.getSafetyMargin();
166
- const liquidationPenalty = await this.getLiquidationPenalty();
167
- const actualCollateral = valueCollateral / liquidationPenalty;
168
- const rad = Math.sqrt(actualCollateral ** 2 - 4 * valueA * valueB);
169
- if (!rad) return [0, 0];
170
- const t = (actualCollateral + rad) / (2 * Math.sqrt(safetyMargin));
171
- let priceSwingA = (t / valueA) ** 2;
172
- let priceSwingB = (t / valueB) ** 2;
173
- return [priceSwingA, priceSwingB];
174
- }
175
- public async getLiquidationPricesGivenValues(values: Values) : Promise<[number, number]> {
176
- const currentPrice = await this.lendingPool.getTWAPPrice();
177
- const [priceSwingA, priceSwingB] = await this.getLiquidationPriceSwingsGivenValues(values);
178
- return !this.account.getOnchain().priceInverted ? [currentPrice / priceSwingB, currentPrice * priceSwingA] : [currentPrice / priceSwingA, currentPrice * priceSwingB];
179
- }
180
- public async getLiquidationPriceSwings(changes?: Changes) {
181
- if (!changes) changes = NO_CHANGES;
182
- const values = await this.getValues(changes);
183
- return this.getLiquidationPriceSwingsGivenValues(values);
184
- }
185
- public async getLiquidationPrices(changes?: Changes) {
186
- if (!changes) changes = NO_CHANGES;
187
- const values = await this.getValues(changes);
188
- return this.getLiquidationPricesGivenValues(values);
189
- }*/
190
- getLiquidationPrices(changes) {
191
- return __awaiter(this, void 0, void 0, function* () {
192
- if (!changes)
193
- changes = onchainTypes_1.NO_CHANGES;
194
- const collateralAmount = Math.max((yield this.getCollateral().getDeposited()) + changes.changeCollateral, 0);
195
- const debtA = Math.max((yield this.getBorrowableA().getBorrowed()) + changes.changeBorrowedA, 0);
196
- const debtB = Math.max((yield this.getBorrowableB().getBorrowed()) + changes.changeBorrowedB, 0);
197
- const safetyMargin = yield this.getSafetyMargin();
198
- const liquidationPenalty = yield this.getLiquidationPenalty();
199
- const actualCollateral = collateralAmount / liquidationPenalty;
200
- const [reservesWeight0, reservesWeight1] = yield this.lendingPool.getTwapReservesWeights();
201
- const [priceA, priceB] = yield this.lendingPool.getPriceDenomLP();
202
- const collateralA = actualCollateral * reservesWeight0 / priceA;
203
- const collateralB = actualCollateral * reservesWeight1 / priceB;
204
- let priceSwingA, priceSwingB;
205
- if (factories_1.STABLE_FACTORIES.includes(this.lendingPool.getImpermaxFactory().getFactory())) {
206
- priceSwingA = (0, lliquidity_math_1.solidlyStable_getLiquidatableXPriceDecrease)(collateralA, collateralB, debtA, debtB) * safetyMargin;
207
- priceSwingB = (0, lliquidity_math_1.solidlyStable_getLiquidatableXPriceDecrease)(collateralB, collateralA, debtB, debtA) * safetyMargin;
208
- }
209
- else {
210
- priceSwingA = (0, lliquidity_math_1.uniswapV2_getLiquidatableXPriceDecrease)(collateralA, collateralB, debtA, debtB) * safetyMargin;
211
- priceSwingB = (0, lliquidity_math_1.uniswapV2_getLiquidatableXPriceDecrease)(collateralB, collateralA, debtB, debtA) * safetyMargin;
212
- }
213
- const twapPrice = yield this.lendingPool.getTWAPPrice();
214
- return !this.account.getOnchain().priceInverted
215
- ? [twapPrice * priceSwingA, twapPrice / priceSwingB]
216
- : [twapPrice * priceSwingB, twapPrice / priceSwingA];
217
- });
218
- }
219
- // Max Leverage
220
- /*public async getMaxLeverage() : Promise<number> {
221
- const availableCashA = await this.getBorrowableA().getPoolToken().getTotalBalance();
222
- const availableCashB = await this.getBorrowableB().getPoolToken().getTotalBalance();
223
- const [priceA, priceB] = await this.lendingPool.getMarketPriceDenomLP();
224
- const [priceATWAP,] = await this.lendingPool.getPriceDenomLP();
225
- const diff = priceA > priceATWAP ? priceA / priceATWAP : priceATWAP / priceA;
226
- const adjustFactor = 1 / diff;
227
- const availableCashValue1 = availableCashA * priceA;
228
- const availableCashValue2 = availableCashB * priceB;
229
- const { valueCollateral, valueA, valueB } = await this.getValues(NO_CHANGES);
230
- const safetyMargin = (await this.getSafetyMargin()) * this.getUiMargin();
231
- const liquidationPenalty = await this.getLiquidationPenalty();
232
- const actualCollateral = valueCollateral / liquidationPenalty;
233
- const num1 = actualCollateral * Math.sqrt(safetyMargin) - valueA * safetyMargin - valueB;
234
- const num2 = actualCollateral * Math.sqrt(safetyMargin) - valueB * safetyMargin - valueA;
235
- const den = safetyMargin + 1 - 2 * Math.sqrt(safetyMargin) / liquidationPenalty;
236
- const additionalValueBorrowablePerSide = Math.min(num1 / den, num2 / den, availableCashValue1, availableCashValue2) * adjustFactor;
237
- const valueDebt = valueA + valueB;
238
- const equity = valueCollateral - valueDebt;
239
- if (equity == 0) return 1;
240
- return (valueDebt + additionalValueBorrowablePerSide * 2) / equity + 1;
241
- }*/
242
- // binary search how much additional leverage we can get
243
- getMaxLeverage() {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- const availableCashA = yield this.getBorrowableA().getPoolToken().getTotalBalance();
246
- const availableCashB = yield this.getBorrowableB().getPoolToken().getTotalBalance();
247
- const collateralAmount = yield this.getCollateral().getDeposited();
248
- const [reservesWeight0, reservesWeight1] = yield this.lendingPool.getMarketReservesWeights();
249
- //const [priceA, priceB] = await this.lendingPool.getPriceDenomLP();
250
- //TODO come posso adattare l'aggiustamento alle stable pairs?
251
- const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
252
- const [priceATWAP,] = yield this.lendingPool.getPriceDenomLP();
253
- const diff = priceA > priceATWAP ? priceA / priceATWAP : priceATWAP / priceA;
254
- const collateralA = collateralAmount * reservesWeight0 / priceA;
255
- const collateralB = collateralAmount * reservesWeight1 / priceB;
256
- const twapPrice = yield this.lendingPool.getTWAPPrice();
257
- // start search
258
- let addLev = 100;
259
- let addLevPrev = 0;
260
- let bestChanges = onchainTypes_1.NO_CHANGES;
261
- for (let i = 0; i < 1000; i++) {
262
- const jump = Math.abs(addLev - addLevPrev) / 2;
263
- if (jump < 0.01)
264
- break;
265
- addLevPrev = addLev;
266
- const adjustFactor = Math.pow((0, utils_1.impermanentLoss)(Math.pow(diff, 2)), addLev);
267
- const actualAddLev = addLev * adjustFactor;
268
- const changeCollateral = collateralAmount * actualAddLev;
269
- const changeBorrowedA = collateralA * actualAddLev;
270
- const changeBorrowedB = collateralB * actualAddLev;
271
- if (changeBorrowedA > availableCashA || changeBorrowedB > availableCashB) {
272
- addLev -= jump;
273
- continue;
274
- }
275
- const changes = { changeCollateral, changeBorrowedA, changeBorrowedB };
276
- const [liqPriceA, liqPriceB] = yield this.getLiquidationPrices(changes);
277
- if (liqPriceA * this.getUiMargin() > twapPrice || liqPriceB / this.getUiMargin() < twapPrice)
278
- addLev -= jump;
279
- else {
280
- bestChanges = changes;
281
- addLev += jump;
282
- }
283
- }
284
- const maxLeverage = yield this.getLeverage(bestChanges);
285
- return Math.floor(maxLeverage * 100) / 100;
286
- });
287
- }
288
- // Max Deleverage
289
- getMaxDeleverage(slippage) {
290
- return __awaiter(this, void 0, void 0, function* () {
291
- const { valueCollateral, valueA, valueB } = yield this.getMarketValues(onchainTypes_1.NO_CHANGES);
292
- const [reservesWeight0, reservesWeight1] = yield this.lendingPool.getMarketReservesWeights();
293
- const collateralValueA = valueCollateral * reservesWeight0;
294
- const collateralValueB = valueCollateral * reservesWeight1;
295
- if (collateralValueA >= valueA && collateralValueB >= valueB) {
296
- return (yield this.getCollateral().getDeposited()) * this.account.getOnchain().dust;
297
- }
298
- if (valueCollateral < valueA + valueB) {
299
- return 0;
300
- }
301
- if (valueA / collateralValueA < valueB / collateralValueB) {
302
- return (valueA + valueA / collateralValueA * collateralValueB);
303
- }
304
- else {
305
- return (valueB + valueB / collateralValueB * collateralValueA);
306
- }
307
- });
308
- }
309
- // Available Reward
310
- getAvailableReward() {
311
- return __awaiter(this, void 0, void 0, function* () {
312
- const result = [];
313
- const farmingAmount = (yield this.getBorrowableA().getAvailableFarmingReward()) + (yield this.getBorrowableB().getAvailableFarmingReward());
314
- if (farmingAmount > 0) {
315
- const farmingSymbol = yield this.getBorrowableA().getPoolToken().getFarmingTokenSymbol();
316
- result.push({
317
- symbol: farmingSymbol,
318
- amount: farmingAmount
319
- });
320
- }
321
- const rewarderSymbols = [
322
- yield this.getBorrowableA().getPoolToken().getRewarderTokenSymbol(),
323
- yield this.getBorrowableB().getPoolToken().getRewarderTokenSymbol()
324
- ];
325
- const rewarderAmounts = [
326
- yield this.getBorrowableA().getAvailableRewarderReward(),
327
- yield this.getBorrowableB().getAvailableRewarderReward()
328
- ];
329
- if (rewarderSymbols[0] === rewarderSymbols[1]) {
330
- const rewarderAmount = rewarderAmounts[0] + rewarderAmounts[1];
331
- if (rewarderAmount === 0)
332
- return result;
333
- result.push({
334
- symbol: rewarderSymbols[0],
335
- amount: rewarderAmount
336
- });
337
- }
338
- else {
339
- for (let i = 0; i < 2; i++) {
340
- if (rewarderAmounts[i] === 0)
341
- continue;
342
- result.push({
343
- symbol: rewarderSymbols[i],
344
- amount: rewarderAmounts[i]
345
- });
346
- }
347
- }
348
- return result;
349
- });
350
- }
351
- }
352
- exports.default = OnchainAccountLendingPool;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const types_1 = require("../../../config/types");
13
+ class OnchainAccountLendingPool {
14
+ constructor(account, lendingPool) {
15
+ this.cache = {};
16
+ // Shortcuts
17
+ this.getAccount = () => this.account;
18
+ this.getLendingPool = () => this.lendingPool;
19
+ this.getBorrowable = (borrowable) => this.borrowables[borrowable];
20
+ this.getBorrowableA = () => this.getBorrowable(types_1.Borrowable.A);
21
+ this.getBorrowableB = () => this.getBorrowable(types_1.Borrowable.B);
22
+ this.getCollateral = () => this.collateral;
23
+ this.getFactory = () => this.lendingPool.getImpermaxFactory().getFactory();
24
+ this.getId = () => this.lendingPool.getId();
25
+ this.getSafetyMargin = () => __awaiter(this, void 0, void 0, function* () { return (yield this.lendingPool.getOffchainLendingPool()).getSafetyMargin(); });
26
+ this.getLiquidationPenalty = () => __awaiter(this, void 0, void 0, function* () { return (yield this.lendingPool.getOffchainLendingPool()).getLiquidationPenalty(); });
27
+ this.getUiMargin = () => this.account.getOnchain().uiMargin;
28
+ this.account = account;
29
+ this.lendingPool = lendingPool;
30
+ this.collateral = this.getNewCollateralObject();
31
+ this.borrowables = {
32
+ [types_1.Borrowable.A]: this.getNewBorrowableObject(types_1.Borrowable.A),
33
+ [types_1.Borrowable.B]: this.getNewBorrowableObject(types_1.Borrowable.B),
34
+ };
35
+ }
36
+ cleanCache() {
37
+ this.cache = {};
38
+ this.getBorrowableA().cleanCache();
39
+ this.getBorrowableB().cleanCache();
40
+ this.getCollateral().cleanCache();
41
+ }
42
+ getInteractionsLendingPool() {
43
+ return this.account.getInteractions().getLendingPool(this.getFactory(), this.getId());
44
+ }
45
+ getOffchainAccountLendingPool() {
46
+ return this.account.getOffchainAccount().getLendingPool(this.getFactory(), this.getId());
47
+ }
48
+ // Balance
49
+ getBalanceUSD() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
52
+ const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
53
+ const depositedCUSD = yield this.getCollateral().getDepositedUSD();
54
+ return depositedAUSD + depositedBUSD + depositedCUSD;
55
+ });
56
+ }
57
+ // Supplied
58
+ getSuppliedUSD() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
61
+ const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
62
+ return depositedAUSD + depositedBUSD;
63
+ });
64
+ }
65
+ // Debt
66
+ getDebtUSD() {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const borrowedAUSD = yield this.getBorrowableA().getBorrowedUSD();
69
+ const borrowedBUSD = yield this.getBorrowableB().getBorrowedUSD();
70
+ return borrowedAUSD + borrowedBUSD;
71
+ });
72
+ }
73
+ // Equity
74
+ getEquityUSD() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const balanceUSD = yield this.getBalanceUSD();
77
+ const debtUSD = yield this.getDebtUSD();
78
+ return balanceUSD - debtUSD;
79
+ });
80
+ }
81
+ getLPEquityUSD() {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const collateralUSD = yield this.getCollateral().getDepositedUSD();
84
+ const debtUSD = yield this.getDebtUSD();
85
+ return collateralUSD - debtUSD;
86
+ });
87
+ }
88
+ // APR
89
+ getAccountAPR() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const depositedAUSD = yield this.getBorrowableA().getDepositedUSD();
92
+ const depositedBUSD = yield this.getBorrowableB().getDepositedUSD();
93
+ const totalSupplied = depositedAUSD + depositedBUSD;
94
+ const supplyAPRA = yield this.getBorrowableA().getSupplyAPR();
95
+ const supplyAPRB = yield this.getBorrowableB().getSupplyAPR();
96
+ return totalSupplied > 0 ? (depositedAUSD * supplyAPRA + depositedBUSD * supplyAPRB) / totalSupplied : 0;
97
+ });
98
+ }
99
+ // Available Reward
100
+ getAvailableReward() {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ const result = [];
103
+ const farmingAmount = (yield this.getBorrowableA().getAvailableFarmingReward()) + (yield this.getBorrowableB().getAvailableFarmingReward());
104
+ if (farmingAmount > 0) {
105
+ const farmingSymbol = yield this.getBorrowableA().getPoolToken().getFarmingTokenSymbol();
106
+ result.push({
107
+ symbol: farmingSymbol,
108
+ amount: farmingAmount
109
+ });
110
+ }
111
+ const rewarderSymbols = [
112
+ yield this.getBorrowableA().getPoolToken().getRewarderTokenSymbol(),
113
+ yield this.getBorrowableB().getPoolToken().getRewarderTokenSymbol()
114
+ ];
115
+ const rewarderAmounts = [
116
+ yield this.getBorrowableA().getAvailableRewarderReward(),
117
+ yield this.getBorrowableB().getAvailableRewarderReward()
118
+ ];
119
+ if (rewarderSymbols[0] === rewarderSymbols[1]) {
120
+ const rewarderAmount = rewarderAmounts[0] + rewarderAmounts[1];
121
+ if (rewarderAmount === 0)
122
+ return result;
123
+ result.push({
124
+ symbol: rewarderSymbols[0],
125
+ amount: rewarderAmount
126
+ });
127
+ }
128
+ else {
129
+ for (let i = 0; i < 2; i++) {
130
+ if (rewarderAmounts[i] === 0)
131
+ continue;
132
+ result.push({
133
+ symbol: rewarderSymbols[i],
134
+ amount: rewarderAmounts[i]
135
+ });
136
+ }
137
+ }
138
+ return result;
139
+ });
140
+ }
141
+ }
142
+ exports.default = OnchainAccountLendingPool;
@@ -0,0 +1,44 @@
1
+ import { Borrowable } from '../../../config/types';
2
+ import { Changes, PendingRewardUI } from '../../onchainTypes';
3
+ import { OnchainLendingPoolV2 } from '../../impermaxFactory/lendingPool';
4
+ import OnchainAccountLendingPool from "./onchainAccountLendingPool";
5
+ import OnchainAccountBorrowableV2 from "./onchainAccountBorrowableV2";
6
+ import OnchainAccountCollateralV2 from "./onchainAccountCollateralV2";
7
+ import OnchainInteractionsLendingPoolV2 from "../../interactions/lendingPool/onchainInteractionsLendingPoolV2";
8
+ export default class OnchainAccountLendingPoolV2 extends OnchainAccountLendingPool {
9
+ protected readonly lendingPool: OnchainLendingPoolV2;
10
+ protected readonly collateral: OnchainAccountCollateralV2;
11
+ protected readonly borrowables: {
12
+ [Borrowable.A]: OnchainAccountBorrowableV2;
13
+ [Borrowable.B]: OnchainAccountBorrowableV2;
14
+ };
15
+ protected getNewCollateralObject(): OnchainAccountCollateralV2;
16
+ protected getNewBorrowableObject(borrowable: Borrowable): OnchainAccountBorrowableV2;
17
+ getLendingPool: () => OnchainLendingPoolV2;
18
+ getBorrowable: (borrowable: Borrowable) => OnchainAccountBorrowableV2;
19
+ getBorrowableA: () => OnchainAccountBorrowableV2;
20
+ getBorrowableB: () => OnchainAccountBorrowableV2;
21
+ getCollateral: () => OnchainAccountCollateralV2;
22
+ getInteractionsLendingPool(): OnchainInteractionsLendingPoolV2;
23
+ getLPEquity(): Promise<number>;
24
+ getValuesFromPrice(changes: Changes, priceA: number, priceB: number): Promise<{
25
+ valueCollateral: number;
26
+ valueA: number;
27
+ valueB: number;
28
+ }>;
29
+ getValues(changes: Changes): Promise<{
30
+ valueCollateral: number;
31
+ valueA: number;
32
+ valueB: number;
33
+ }>;
34
+ getMarketValues(changes: Changes): Promise<{
35
+ valueCollateral: number;
36
+ valueA: number;
37
+ valueB: number;
38
+ }>;
39
+ getLeverage(changes?: Changes): Promise<number>;
40
+ getLiquidationPrices(changes?: Changes): Promise<number[]>;
41
+ getMaxLeverage(): Promise<number>;
42
+ getMaxDeleverage(slippage: number): Promise<number>;
43
+ getAvailableReward(): Promise<PendingRewardUI[]>;
44
+ }