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,58 +1,43 @@
1
- import OnchainImpermaxFactory from '../index';
2
- import { Address, PoolTokenType } from '../../../config/types';
3
- import OnchainCollateral from './onchainCollateral';
4
- import OnchainBorrowable from './onchainBorrowable';
5
- import { PendingRewardUI } from '../../onchainTypes';
6
- import OnchainPoolToken from '../../onchainPoolToken';
7
- export default class OnchainLendingPool {
8
- private readonly impermaxFactory;
9
- private readonly pairAddress;
10
- private readonly poolTokens;
11
- private cache;
12
- constructor(impermaxFactory: OnchainImpermaxFactory, pairAddress: Address);
13
- getImpermaxFactory: () => OnchainImpermaxFactory;
14
- getPairAddress: () => string;
15
- getPoolToken(poolTokenType: PoolTokenType): OnchainPoolToken;
16
- getBorrowableA: () => OnchainBorrowable;
17
- getBorrowableB: () => OnchainBorrowable;
18
- getCollateral: () => OnchainCollateral;
19
- private getContractHelper;
20
- cleanCache(): void;
21
- getOffchainLendingPool(): Promise<import("../../..").OffchainLendingPool>;
22
- private initializePoolTokenAddresses;
23
- getPoolTokenAddresses(): Promise<{
24
- collateral: string;
25
- borrowable0: string;
26
- borrowable1: string;
27
- }>;
28
- private initializeIsStakedLPToken;
29
- getIsStakedLPToken(): Promise<boolean>;
30
- private initializeStakedLPToken;
31
- getStakedLPToken(): Promise<any>;
32
- private initializeUniswapV2Pair;
33
- getUniswapV2Pair(): Promise<any>;
34
- private initializeReserves;
35
- getReserves(): Promise<[number, number]>;
36
- private initializeLPTotalSupply;
37
- getLPTotalSupply(): Promise<number>;
38
- private initializePriceDenomLP;
39
- getPriceDenomLP(): Promise<[number, number]>;
40
- getMarketPriceDenomLP(): Promise<[number, number]>;
41
- getMarketPrice(): Promise<number>;
42
- private initializeTwapReservesValueRatio;
43
- getTwapReservesValueRatio(): Promise<number>;
44
- getTwapReservesWeights(): Promise<[number, number]>;
45
- private initializeMarketReservesValueRatio;
46
- getMarketReservesValueRatio(): Promise<number>;
47
- getMarketReservesWeights(): Promise<[number, number]>;
48
- private initializeTWAPPrice;
49
- getTWAPPrice(): Promise<number>;
50
- private initializeStakedLPExchangeRate;
51
- getStakedLPExchangeRate(): Promise<number>;
52
- private initializePendingReward;
53
- getPendingReward(): Promise<PendingRewardUI | null>;
54
- private initializeReinvestBountyFactor;
55
- getReinvestBountyFactor(): Promise<number>;
56
- getReinvestBounty(): Promise<number>;
57
- hasFarming(): Promise<boolean>;
58
- }
1
+ import OnchainImpermaxFactory from '../index';
2
+ import { Address, Borrowable } from '../../../config/types';
3
+ import OnchainCollateral from './onchainCollateral';
4
+ import OnchainBorrowable from './onchainBorrowable';
5
+ import OnchainAccountLendingPool from "../../account/lendingPool";
6
+ import OnchainInteractions, { OnchainInteractionsLendingPool } from "../../interactions";
7
+ import OnchainAccount from "../../account";
8
+ export default abstract class OnchainLendingPool {
9
+ protected readonly id: Address;
10
+ protected readonly impermaxFactory: OnchainImpermaxFactory;
11
+ protected readonly collateral: OnchainCollateral;
12
+ protected readonly borrowables: {
13
+ [Borrowable.A]: OnchainBorrowable;
14
+ [Borrowable.B]: OnchainBorrowable;
15
+ };
16
+ protected cache: {
17
+ lendingPoolAddresses?: Promise<{
18
+ collateral: Address;
19
+ borrowables: {
20
+ [key in Borrowable]: Address;
21
+ };
22
+ }>;
23
+ };
24
+ protected abstract getNewCollateralObject(): OnchainCollateral;
25
+ protected abstract getNewBorrowableObject(borrowable: Borrowable): OnchainBorrowable;
26
+ abstract getNewAccountLendingPoolObject(account: OnchainAccount): OnchainAccountLendingPool;
27
+ abstract getNewInteractionLendingPoolObject(interactions: OnchainInteractions): OnchainInteractionsLendingPool;
28
+ constructor(impermaxFactory: OnchainImpermaxFactory, id: Address);
29
+ getImpermaxFactory: () => OnchainImpermaxFactory;
30
+ getId: () => string;
31
+ getBorrowable: (borrowable: Borrowable) => OnchainBorrowable;
32
+ getBorrowableA: () => OnchainBorrowable;
33
+ getBorrowableB: () => OnchainBorrowable;
34
+ getCollateral: () => OnchainCollateral;
35
+ protected getContractHelper: () => import("../..").OnchainContractsHelper;
36
+ cleanCache(): void;
37
+ getOffchainLendingPool(): Promise<import("../../..").OffchainLendingPool>;
38
+ private initializeLendingPoolAddresses;
39
+ private getLendingPoolAddresses;
40
+ getCollateralAddress(): Promise<string>;
41
+ getBorrowableAddress(borrowable: Borrowable): Promise<string>;
42
+ hasFarming(): Promise<boolean>;
43
+ }
@@ -1,367 +1,81 @@
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 onchainCollateral_1 = __importDefault(require("./onchainCollateral"));
17
- const onchainBorrowable_1 = __importDefault(require("./onchainBorrowable"));
18
- const factories_1 = require("../../../config/factories");
19
- const lliquidity_math_1 = require("../../../utils/lliquidity-math");
20
- class OnchainLendingPool {
21
- constructor(impermaxFactory, pairAddress) {
22
- this.cache = {};
23
- this.getImpermaxFactory = () => this.impermaxFactory;
24
- this.getPairAddress = () => this.pairAddress;
25
- // Shortcuts
26
- this.getBorrowableA = () => this.poolTokens[types_1.PoolTokenType.BorrowableA];
27
- this.getBorrowableB = () => this.poolTokens[types_1.PoolTokenType.BorrowableB];
28
- this.getCollateral = () => this.poolTokens[types_1.PoolTokenType.Collateral];
29
- this.getContractHelper = () => this.impermaxFactory.getOnchain().getContractHelper();
30
- this.impermaxFactory = impermaxFactory;
31
- this.pairAddress = pairAddress;
32
- this.poolTokens = {
33
- [types_1.PoolTokenType.Collateral]: new onchainCollateral_1.default(this),
34
- [types_1.PoolTokenType.BorrowableA]: new onchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableA),
35
- [types_1.PoolTokenType.BorrowableB]: new onchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableB),
36
- };
37
- }
38
- getPoolToken(poolTokenType) {
39
- return this.poolTokens[poolTokenType];
40
- }
41
- cleanCache() {
42
- this.cache = {};
43
- this.getBorrowableA().cleanCache();
44
- this.getBorrowableB().cleanCache();
45
- this.getCollateral().cleanCache();
46
- }
47
- getOffchainLendingPool() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- return this.impermaxFactory.getOnchain().getOffchain().getLendingPool(this.impermaxFactory.getFactory(), this.pairAddress);
50
- });
51
- }
52
- initializePoolTokenAddresses() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- const lPool = yield this.impermaxFactory.getRouter().methods.getLendingPool(this.pairAddress).call();
55
- return {
56
- [types_1.PoolTokenType.Collateral]: lPool.collateral,
57
- [types_1.PoolTokenType.BorrowableA]: lPool.borrowableA,
58
- [types_1.PoolTokenType.BorrowableB]: lPool.borrowableB,
59
- };
60
- });
61
- }
62
- getPoolTokenAddresses() {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- if (!this.cache.poolTokenAddresses)
65
- this.cache.poolTokenAddresses = this.initializePoolTokenAddresses();
66
- return this.cache.poolTokenAddresses;
67
- });
68
- }
69
- initializeIsStakedLPToken() {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- try {
72
- return yield this.impermaxFactory.getRouter().methods.isStakedLPToken(this.pairAddress).call();
73
- }
74
- catch (e) {
75
- return false;
76
- }
77
- });
78
- }
79
- getIsStakedLPToken() {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- if (!this.cache.isStakedLPToken)
82
- this.cache.isStakedLPToken = this.initializeIsStakedLPToken();
83
- return this.cache.isStakedLPToken;
84
- });
85
- }
86
- initializeStakedLPToken() {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- if (!(yield this.getIsStakedLPToken()))
89
- return null;
90
- return this.getContractHelper().newStakedLPToken(this.pairAddress);
91
- });
92
- }
93
- getStakedLPToken() {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- if (!this.cache.stakedLPToken)
96
- this.cache.stakedLPToken = this.initializeStakedLPToken();
97
- return this.cache.stakedLPToken;
98
- });
99
- }
100
- initializeUniswapV2Pair() {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const stakedLPToken = yield this.getStakedLPToken();
103
- return this.getContractHelper().newUniswapV2Pair(stakedLPToken
104
- ? yield (stakedLPToken.methods.underlying().call())
105
- : this.pairAddress);
106
- });
107
- }
108
- getUniswapV2Pair() {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- if (!this.cache.uniswapV2Pair)
111
- this.cache.uniswapV2Pair = this.initializeUniswapV2Pair();
112
- return this.cache.uniswapV2Pair;
113
- });
114
- }
115
- // Reserves
116
- initializeReserves() {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- const uniswapV2Pair = yield this.getUniswapV2Pair();
119
- const { reserve0, reserve1 } = yield uniswapV2Pair.methods.getReserves().call();
120
- return [
121
- yield this.getBorrowableA().normalize(reserve0),
122
- yield this.getBorrowableB().normalize(reserve1),
123
- ];
124
- });
125
- }
126
- getReserves() {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- if (!this.cache.reserves)
129
- this.cache.reserves = this.initializeReserves();
130
- return this.cache.reserves;
131
- });
132
- }
133
- // LP Total Supply
134
- initializeLPTotalSupply() {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- const uniswapV2Pair = yield this.getUniswapV2Pair();
137
- const totalSupply = yield uniswapV2Pair.methods.totalSupply().call();
138
- return this.getCollateral().normalize(totalSupply);
139
- });
140
- }
141
- getLPTotalSupply() {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- if (!this.cache.LPTotalSupply)
144
- this.cache.LPTotalSupply = this.initializeLPTotalSupply();
145
- return this.cache.LPTotalSupply;
146
- });
147
- }
148
- // Price Denom LP
149
- initializePriceDenomLP() {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- const collateral = yield this.getCollateral().getPoolToken();
152
- const { price0, price1 } = yield collateral.methods.getPrices().call();
153
- const decimalsA = yield this.getBorrowableA().getDecimals();
154
- const decimalsB = yield this.getBorrowableB().getDecimals();
155
- let stakedLPExchangeRate = yield this.getStakedLPExchangeRate();
156
- return [
157
- price0 / 1e18 / 1e18 * Math.pow(10, decimalsA) * stakedLPExchangeRate,
158
- price1 / 1e18 / 1e18 * Math.pow(10, decimalsB) * stakedLPExchangeRate
159
- ];
160
- });
161
- }
162
- getPriceDenomLP() {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- if (!this.cache.priceDenomLP)
165
- this.cache.priceDenomLP = this.initializePriceDenomLP();
166
- return this.cache.priceDenomLP;
167
- });
168
- }
169
- getMarketPriceDenomLP() {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- const [reserve0, reserve1] = yield this.getReserves();
172
- const totalSupply = yield this.getLPTotalSupply();
173
- const [reservesWeight0, reservesWeight1] = yield this.getMarketReservesWeights();
174
- return [
175
- totalSupply / reserve0 * reservesWeight0,
176
- totalSupply / reserve1 * reservesWeight1,
177
- ];
178
- });
179
- }
180
- // Market Price
181
- getMarketPrice() {
182
- return __awaiter(this, void 0, void 0, function* () {
183
- const [reserve0, reserve1] = yield this.getReserves();
184
- const priceInverted = this.impermaxFactory.getOnchain().priceInverted;
185
- if (factories_1.STABLE_FACTORIES.includes(this.impermaxFactory.getFactory()))
186
- return (0, lliquidity_math_1.solidlyStable_getPriceFromReserves)(reserve0, reserve1, priceInverted);
187
- else
188
- return (0, lliquidity_math_1.uniswapV2_getPriceFromReserves)(reserve0, reserve1, priceInverted);
189
- });
190
- }
191
- // Value of reserveA / reserveB
192
- initializeTwapReservesValueRatio() {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- if (factories_1.STABLE_FACTORIES.includes(this.impermaxFactory.getFactory())) {
195
- const collateral = yield this.getCollateral().getPoolToken();
196
- let { twapReserve0, twapReserve1 } = yield collateral.methods.getTwapReserves().call();
197
- const [price0, price1] = yield this.getPriceDenomLP();
198
- twapReserve0 = yield this.getBorrowableA().normalize(twapReserve0);
199
- twapReserve1 = yield this.getBorrowableB().normalize(twapReserve1);
200
- return twapReserve0 * price0 / (twapReserve1 * price1);
201
- }
202
- else {
203
- return 1;
204
- }
205
- });
206
- }
207
- getTwapReservesValueRatio() {
208
- return __awaiter(this, void 0, void 0, function* () {
209
- if (!this.cache.twapReservesValueRatio)
210
- this.cache.twapReservesValueRatio = this.initializeTwapReservesValueRatio();
211
- return this.cache.twapReservesValueRatio;
212
- });
213
- }
214
- getTwapReservesWeights() {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const reservesRatio = yield this.getTwapReservesValueRatio();
217
- const reservesWeight0 = reservesRatio / (1 + reservesRatio);
218
- const reservesWeight1 = 1 / (1 + reservesRatio);
219
- return [reservesWeight0, reservesWeight1];
220
- });
221
- }
222
- initializeMarketReservesValueRatio() {
223
- return __awaiter(this, void 0, void 0, function* () {
224
- if (factories_1.STABLE_FACTORIES.includes(this.impermaxFactory.getFactory())) {
225
- const [reserve0, reserve1] = yield this.getReserves();
226
- const price = (0, lliquidity_math_1.solidlyStable_getPriceFromReserves)(reserve0, reserve1);
227
- return reserve0 * price / reserve1;
228
- }
229
- else {
230
- return 1;
231
- }
232
- });
233
- }
234
- getMarketReservesValueRatio() {
235
- return __awaiter(this, void 0, void 0, function* () {
236
- if (!this.cache.marketReservesValueRatio)
237
- this.cache.marketReservesValueRatio = this.initializeMarketReservesValueRatio();
238
- return this.cache.marketReservesValueRatio;
239
- });
240
- }
241
- getMarketReservesWeights() {
242
- return __awaiter(this, void 0, void 0, function* () {
243
- const reservesRatio = yield this.getMarketReservesValueRatio();
244
- const reservesWeight0 = reservesRatio / (1 + reservesRatio);
245
- const reservesWeight1 = 1 / (1 + reservesRatio);
246
- return [reservesWeight0, reservesWeight1];
247
- });
248
- }
249
- // TWAP Price
250
- initializeTWAPPrice() {
251
- return __awaiter(this, void 0, void 0, function* () {
252
- try {
253
- const collateral = yield this.getCollateral().getPoolToken();
254
- const decimalsA = yield this.getBorrowableA().getDecimals();
255
- const decimalsB = yield this.getBorrowableB().getDecimals();
256
- if (factories_1.STABLE_FACTORIES.includes(this.impermaxFactory.getFactory())) {
257
- const { twapReserve0, twapReserve1 } = yield collateral.methods.getTwapReserves().call();
258
- return (0, lliquidity_math_1.solidlyStable_getPriceFromReserves)(twapReserve0 / Math.pow(10, decimalsA), twapReserve1 / Math.pow(10, decimalsB));
259
- }
260
- let price;
261
- if (factories_1.SOLIDEX_FACTORIES.includes(this.impermaxFactory.getFactory())) {
262
- price = yield collateral.methods.getTwapPrice112x112().call();
263
- }
264
- else {
265
- price = (yield this.impermaxFactory.getSimpleUniswapOracle().methods.getResult(this.pairAddress).call()).price;
266
- }
267
- return price / Math.pow(2, 112) * Math.pow(10, decimalsA) / Math.pow(10, decimalsB);
268
- }
269
- catch (e) {
270
- // Oracle is not initialized yet
271
- return 0;
272
- }
273
- });
274
- }
275
- getTWAPPrice() {
276
- return __awaiter(this, void 0, void 0, function* () {
277
- if (!this.cache.TWAPPrice)
278
- this.cache.TWAPPrice = this.initializeTWAPPrice();
279
- return !this.impermaxFactory.getOnchain().priceInverted ? (yield this.cache.TWAPPrice) : 1 / (yield this.cache.TWAPPrice);
280
- });
281
- }
282
- // Exchange rate
283
- initializeStakedLPExchangeRate() {
284
- return __awaiter(this, void 0, void 0, function* () {
285
- const stakedLPToken = yield this.getStakedLPToken();
286
- if (!stakedLPToken)
287
- return 1;
288
- return (yield stakedLPToken.methods.exchangeRate().call()) / 1e18;
289
- });
290
- }
291
- getStakedLPExchangeRate() {
292
- return __awaiter(this, void 0, void 0, function* () {
293
- if (!this.cache.stakedLPExchangeRate)
294
- this.cache.stakedLPExchangeRate = this.initializeStakedLPExchangeRate();
295
- return this.cache.stakedLPExchangeRate;
296
- });
297
- }
298
- // Pending Reward
299
- initializePendingReward() {
300
- return __awaiter(this, void 0, void 0, function* () {
301
- const stakedLPToken = yield this.getStakedLPToken();
302
- if (!stakedLPToken)
303
- return null;
304
- const rewardTokenAddress = yield stakedLPToken.methods.rewardsToken().call();
305
- const rewardToken = this.getContractHelper().newERC20(rewardTokenAddress);
306
- const decimals = yield rewardToken.methods.decimals().call();
307
- let result = {
308
- amount: 0,
309
- symbol: yield rewardToken.methods.symbol().call(),
310
- };
311
- try {
312
- const pendingReward = yield stakedLPToken.methods.getReward().call();
313
- result.amount = pendingReward / Math.pow(10, decimals);
314
- }
315
- catch (_a) {
316
- try {
317
- const stakingRewardsAddress = yield stakedLPToken.methods.stakingRewards().call();
318
- const stakingRewards = this.getContractHelper().newStakingRewards(stakingRewardsAddress);
319
- const earned = yield stakingRewards.methods.earned(stakedLPToken._address).call();
320
- result.amount = earned / Math.pow(10, decimals);
321
- }
322
- catch (_b) { }
323
- }
324
- return result;
325
- });
326
- }
327
- getPendingReward() {
328
- return __awaiter(this, void 0, void 0, function* () {
329
- if (!this.cache.pendingReward)
330
- this.cache.pendingReward = this.initializePendingReward();
331
- return this.cache.pendingReward;
332
- });
333
- }
334
- // Reinvest Bounty Factor
335
- initializeReinvestBountyFactor() {
336
- return __awaiter(this, void 0, void 0, function* () {
337
- const stakedLPToken = yield this.getStakedLPToken();
338
- if (!stakedLPToken)
339
- return 0;
340
- return (yield stakedLPToken.methods.REINVEST_BOUNTY().call()) / 1e18;
341
- });
342
- }
343
- getReinvestBountyFactor() {
344
- return __awaiter(this, void 0, void 0, function* () {
345
- if (!this.cache.reinvestBountyFactor)
346
- this.cache.reinvestBountyFactor = this.initializeReinvestBountyFactor();
347
- return this.cache.reinvestBountyFactor;
348
- });
349
- }
350
- // Reinvest Bounty
351
- getReinvestBounty() {
352
- return __awaiter(this, void 0, void 0, function* () {
353
- const pendingReward = yield this.getPendingReward();
354
- if (!pendingReward)
355
- return 0;
356
- const reinvestBountyFactor = yield this.getReinvestBountyFactor();
357
- return pendingReward.amount * reinvestBountyFactor;
358
- });
359
- }
360
- // Has Farming
361
- hasFarming() {
362
- return __awaiter(this, void 0, void 0, function* () {
363
- return (yield this.getBorrowableA().hasFarming()) || (yield this.getBorrowableB().hasFarming());
364
- });
365
- }
366
- }
367
- exports.default = OnchainLendingPool;
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 OnchainLendingPool {
14
+ constructor(impermaxFactory, id) {
15
+ this.cache = {};
16
+ this.getImpermaxFactory = () => this.impermaxFactory;
17
+ this.getId = () => this.id;
18
+ this.getBorrowable = (borrowable) => this.borrowables[borrowable];
19
+ // Shortcuts
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.getContractHelper = () => this.impermaxFactory.getOnchain().getContractHelper();
24
+ this.impermaxFactory = impermaxFactory;
25
+ this.id = id;
26
+ this.collateral = this.getNewCollateralObject();
27
+ this.borrowables = {
28
+ [types_1.Borrowable.A]: this.getNewBorrowableObject(types_1.Borrowable.A),
29
+ [types_1.Borrowable.B]: this.getNewBorrowableObject(types_1.Borrowable.B),
30
+ };
31
+ }
32
+ cleanCache() {
33
+ this.cache = {};
34
+ this.getBorrowableA().cleanCache();
35
+ this.getBorrowableB().cleanCache();
36
+ this.getCollateral().cleanCache();
37
+ }
38
+ getOffchainLendingPool() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return this.impermaxFactory.getOnchain().getOffchain().getLendingPool(this.impermaxFactory.getFactory(), this.id);
41
+ });
42
+ }
43
+ initializeLendingPoolAddresses() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const lPool = yield (yield this.impermaxFactory.getFactoryContract()).methods.getLendingPool(this.id).call();
46
+ return {
47
+ collateral: lPool.collateral,
48
+ borrowables: {
49
+ [types_1.Borrowable.A]: lPool.borrowable0,
50
+ [types_1.Borrowable.B]: lPool.borrowable1,
51
+ }
52
+ };
53
+ });
54
+ }
55
+ getLendingPoolAddresses() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ if (!this.cache.lendingPoolAddresses)
58
+ this.cache.lendingPoolAddresses = this.initializeLendingPoolAddresses();
59
+ return this.cache.lendingPoolAddresses;
60
+ });
61
+ }
62
+ getCollateralAddress() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ return (yield this.getLendingPoolAddresses()).collateral;
65
+ });
66
+ }
67
+ ;
68
+ getBorrowableAddress(borrowable) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ return (yield this.getLendingPoolAddresses()).borrowables[borrowable];
71
+ });
72
+ }
73
+ ;
74
+ // Has Farming
75
+ hasFarming() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return (yield this.getBorrowableA().hasFarming()) || (yield this.getBorrowableB().hasFarming());
78
+ });
79
+ }
80
+ }
81
+ exports.default = OnchainLendingPool;
@@ -0,0 +1,76 @@
1
+ import { Address, Borrowable } from '../../../config/types';
2
+ import { Contract, PendingRewardUI } from '../../onchainTypes';
3
+ import OnchainLendingPool from "./onchainLendingPool";
4
+ import OnchainCollateralV2 from "./onchainCollateralV2";
5
+ import OnchainBorrowableV2 from "./onchainBorrowableV2";
6
+ import OnchainImpermaxFactoryV2 from "../onchainImpermaxFactoryV2";
7
+ import { OnchainAccountLendingPoolV2 } from "../../account/lendingPool";
8
+ import OnchainAccount from "../../account";
9
+ import OnchainInteractionsLendingPoolV2 from "../../interactions/lendingPool/onchainInteractionsLendingPoolV2";
10
+ import OnchainInteractions from "../../interactions";
11
+ export default class OnchainLendingPoolV2 extends OnchainLendingPool {
12
+ protected readonly impermaxFactory: OnchainImpermaxFactoryV2;
13
+ protected readonly collateral: OnchainCollateralV2;
14
+ protected readonly borrowables: {
15
+ [Borrowable.A]: OnchainBorrowableV2;
16
+ [Borrowable.B]: OnchainBorrowableV2;
17
+ };
18
+ protected cache: {
19
+ lendingPoolAddresses?: Promise<{
20
+ collateral: Address;
21
+ borrowables: {
22
+ [key in Borrowable]: Address;
23
+ };
24
+ }>;
25
+ isStakedLPToken?: Promise<boolean>;
26
+ uniswapV2Pair?: Promise<Contract>;
27
+ stakedLPToken?: Promise<Contract | null>;
28
+ reserves?: Promise<[number, number]>;
29
+ LPTotalSupply?: Promise<number>;
30
+ marketPrice?: Promise<number>;
31
+ priceDenomLP?: Promise<[number, number]>;
32
+ twapReservesValueRatio?: Promise<number>;
33
+ marketReservesValueRatio?: Promise<number>;
34
+ TWAPPrice?: Promise<number>;
35
+ pendingReward?: Promise<PendingRewardUI | null>;
36
+ reinvestBountyFactor?: Promise<number>;
37
+ stakedLPExchangeRate?: Promise<number>;
38
+ };
39
+ protected getNewCollateralObject(): OnchainCollateralV2;
40
+ protected getNewBorrowableObject(borrowable: Borrowable): OnchainBorrowableV2;
41
+ getNewAccountLendingPoolObject(account: OnchainAccount): OnchainAccountLendingPoolV2;
42
+ getNewInteractionLendingPoolObject(interactions: OnchainInteractions): OnchainInteractionsLendingPoolV2;
43
+ getBorrowable: (borrowable: Borrowable) => OnchainBorrowableV2;
44
+ getBorrowableA: () => OnchainBorrowableV2;
45
+ getBorrowableB: () => OnchainBorrowableV2;
46
+ getCollateral: () => OnchainCollateralV2;
47
+ private initializeIsStakedLPToken;
48
+ getIsStakedLPToken(): Promise<boolean>;
49
+ private initializeStakedLPToken;
50
+ getStakedLPToken(): Promise<any>;
51
+ private initializeUniswapV2Pair;
52
+ getUniswapV2Pair(): Promise<any>;
53
+ private initializeReserves;
54
+ getReserves(): Promise<[number, number]>;
55
+ private initializeLPTotalSupply;
56
+ getLPTotalSupply(): Promise<number>;
57
+ private initializePriceDenomLP;
58
+ getPriceDenomLP(): Promise<[number, number]>;
59
+ getMarketPriceDenomLP(): Promise<[number, number]>;
60
+ getMarketPrice(): Promise<number>;
61
+ private initializeTwapReservesValueRatio;
62
+ getTwapReservesValueRatio(): Promise<number>;
63
+ getTwapReservesWeights(): Promise<[number, number]>;
64
+ private initializeMarketReservesValueRatio;
65
+ getMarketReservesValueRatio(): Promise<number>;
66
+ getMarketReservesWeights(): Promise<[number, number]>;
67
+ private initializeTWAPPrice;
68
+ getTWAPPrice(): Promise<number>;
69
+ private initializeStakedLPExchangeRate;
70
+ getStakedLPExchangeRate(): Promise<number>;
71
+ private initializePendingReward;
72
+ getPendingReward(): Promise<PendingRewardUI | null>;
73
+ private initializeReinvestBountyFactor;
74
+ getReinvestBountyFactor(): Promise<number>;
75
+ getReinvestBounty(): Promise<number>;
76
+ }