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,135 +1,53 @@
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 onchainInteractionsCollateral_1 = __importDefault(require("./onchainInteractionsCollateral"));
17
- const onchainInteractionsBorrowable_1 = __importDefault(require("./onchainInteractionsBorrowable"));
18
- const utils_1 = require("../../../utils");
19
- const general_1 = require("../../../config/general");
20
- class OnchainInteractionsLendingPool {
21
- constructor(interactions, lendingPool) {
22
- this.getInteractions = () => this.interactions;
23
- this.getLendingPool = () => this.lendingPool;
24
- // Shortcuts
25
- this.getBorrowableA = () => this.poolTokens[types_1.PoolTokenType.BorrowableA];
26
- this.getBorrowableB = () => this.poolTokens[types_1.PoolTokenType.BorrowableB];
27
- this.getCollateral = () => this.poolTokens[types_1.PoolTokenType.Collateral];
28
- this.getFactory = () => this.lendingPool.getImpermaxFactory().getFactory();
29
- this.getPairAddress = () => this.lendingPool.getPairAddress();
30
- this.getRouterContract = () => this.lendingPool.getImpermaxFactory().getRouter();
31
- this.getAccountAddress = () => this.interactions.getAccountAddress();
32
- this.send = (method, onTransactionHash) => this.interactions.send(method, onTransactionHash);
33
- this.interactions = interactions;
34
- this.lendingPool = lendingPool;
35
- this.poolTokens = {
36
- [types_1.PoolTokenType.Collateral]: new onchainInteractionsCollateral_1.default(this),
37
- [types_1.PoolTokenType.BorrowableA]: new onchainInteractionsBorrowable_1.default(this, types_1.PoolTokenType.BorrowableA),
38
- [types_1.PoolTokenType.BorrowableB]: new onchainInteractionsBorrowable_1.default(this, types_1.PoolTokenType.BorrowableB),
39
- };
40
- }
41
- getPoolToken(poolTokenType) {
42
- return this.poolTokens[poolTokenType];
43
- }
44
- getAccountLendingPool() {
45
- return this.interactions.getAccount().getLendingPool(this.getFactory(), this.getPairAddress());
46
- }
47
- getLeverageAmounts(leverage, slippage) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
50
- // This function must use the market price, but the account leverage is calculated with the TWAP, so we need an adjustFactor
51
- const [priceATWAP, priceBTWAP] = yield this.lendingPool.getPriceDenomLP();
52
- const diff = priceA > priceATWAP ? priceA / priceATWAP : priceATWAP / priceA;
53
- const adjustFactor = Math.pow((0, utils_1.impermanentLoss)(Math.pow(diff, 2)), leverage);
54
- const accountLendingPool = yield this.getAccountLendingPool();
55
- const currentLeverage = yield accountLendingPool.getLeverage();
56
- const collateralValue = yield accountLendingPool.getCollateral().getDeposited();
57
- const changeCollateralValue = (collateralValue * leverage / currentLeverage - collateralValue) * adjustFactor;
58
- const [reservesWeightA, reservesWeightB] = yield this.lendingPool.getMarketReservesWeights();
59
- const changeValueA = changeCollateralValue * reservesWeightA;
60
- const changeValueB = changeCollateralValue * reservesWeightB;
61
- const bAmountA = priceA > 0 ? changeValueA / priceA : 0;
62
- const bAmountB = priceB > 0 ? changeValueB / priceB : 0;
63
- const cAmount = changeCollateralValue ? changeCollateralValue : 0;
64
- return {
65
- bAmountA: bAmountA,
66
- bAmountB: bAmountB,
67
- cAmount: cAmount,
68
- bAmountAMin: bAmountA / slippage,
69
- bAmountBMin: bAmountB / slippage,
70
- cAmountMin: cAmount / Math.sqrt(slippage),
71
- };
72
- });
73
- }
74
- leverage(amountA, amountB, amountAMin, amountBMin, permitDataA, permitDataB, onTransactionHash) {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- const router = this.getRouterContract();
77
- const dataA = permitDataA ? permitDataA.permitData : '0x';
78
- const dataB = permitDataB ? permitDataB.permitData : '0x';
79
- if (permitDataA && permitDataB && !permitDataA.deadline.eq(permitDataB.deadline))
80
- return console.error("Permits deadline are not equal");
81
- const deadline = permitDataA ? permitDataA.deadline : permitDataB ? permitDataB.deadline : general_1.DEADLINE;
82
- const pairAddress = this.getPairAddress();
83
- const account = this.getAccountAddress();
84
- return this.send(router.methods.leverage(pairAddress, amountA, amountB, amountAMin, amountBMin, account, deadline, dataA, dataB), onTransactionHash);
85
- });
86
- }
87
- getDeleverageAmounts(changeCollateralValue, slippage) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- changeCollateralValue = changeCollateralValue !== null && changeCollateralValue !== void 0 ? changeCollateralValue : 0;
90
- const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
91
- const [reservesWeightA, reservesWeightB] = yield this.lendingPool.getMarketReservesWeights();
92
- const changeValueA = changeCollateralValue * reservesWeightA;
93
- const changeValueB = changeCollateralValue * reservesWeightB;
94
- const bAmountA = priceA > 0 ? changeValueA / priceA : 0;
95
- const bAmountB = priceB > 0 ? changeValueB / priceB : 0;
96
- return {
97
- bAmountA: bAmountA,
98
- bAmountB: bAmountB,
99
- cAmount: changeCollateralValue,
100
- bAmountAMin: bAmountA / Math.sqrt(slippage),
101
- bAmountBMin: bAmountB / Math.sqrt(slippage),
102
- };
103
- });
104
- }
105
- deleverage(tokens, amountAMin, amountBMin, permitData, onTransactionHash) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const router = this.getRouterContract();
108
- const data = permitData ? permitData.permitData : '0x';
109
- const deadline = permitData ? permitData.deadline : general_1.DEADLINE;
110
- const pairAddress = this.getPairAddress();
111
- return this.send(router.methods.deleverage(pairAddress, tokens, amountAMin, amountBMin, deadline, data), onTransactionHash);
112
- });
113
- }
114
- trackBorrows(onTransactionHash) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const account = this.getAccountAddress();
117
- const claimAggregator = this.interactions.getOnchain().getContractHelper().claimAggregator;
118
- const toTrack = [];
119
- const accountLendingPool = yield this.getAccountLendingPool();
120
- for (const b of [accountLendingPool.getBorrowableA(), accountLendingPool.getBorrowableB()]) {
121
- if ((yield b.getBorrowed()) === 0 || (yield b.getFarmingShares()) > 0)
122
- continue;
123
- toTrack.push(yield b.getPoolToken().getPoolTokenAddress());
124
- }
125
- return this.send(claimAggregator.methods.trackBorrows(account, toTrack), onTransactionHash);
126
- });
127
- }
128
- reinvest(onTransactionHash) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- const stakedLPToken = yield this.lendingPool.getStakedLPToken();
131
- return this.send(stakedLPToken.methods.reinvest(), onTransactionHash);
132
- });
133
- }
134
- }
135
- exports.default = OnchainInteractionsLendingPool;
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 OnchainInteractionsLendingPool {
14
+ constructor(interactions, lendingPool) {
15
+ // Shortcuts
16
+ this.getInteractions = () => this.interactions;
17
+ this.getLendingPool = () => this.lendingPool;
18
+ this.getBorrowable = (borrowable) => this.borrowables[borrowable];
19
+ this.getBorrowableA = () => this.getBorrowable(types_1.Borrowable.A);
20
+ this.getBorrowableB = () => this.getBorrowable(types_1.Borrowable.B);
21
+ this.getCollateral = () => this.collateral;
22
+ this.getFactory = () => this.lendingPool.getImpermaxFactory().getFactory();
23
+ this.getId = () => this.lendingPool.getId();
24
+ this.getPoolTokenRouter = () => this.lendingPool.getImpermaxFactory().getPoolTokenRouter();
25
+ this.getAccountAddress = () => this.interactions.getAccountAddress();
26
+ this.send = (method, onTransactionHash) => this.interactions.send(method, onTransactionHash);
27
+ this.interactions = interactions;
28
+ this.lendingPool = lendingPool;
29
+ this.collateral = this.getNewCollateralObject();
30
+ this.borrowables = {
31
+ [types_1.Borrowable.A]: this.getNewBorrowableObject(types_1.Borrowable.A),
32
+ [types_1.Borrowable.B]: this.getNewBorrowableObject(types_1.Borrowable.B),
33
+ };
34
+ }
35
+ getAccountLendingPool() {
36
+ return this.interactions.getAccount().getLendingPool(this.getFactory(), this.getId());
37
+ }
38
+ trackBorrows(onTransactionHash) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const account = this.getAccountAddress();
41
+ const claimAggregator = this.interactions.getOnchain().getContractHelper().claimAggregator;
42
+ const toTrack = [];
43
+ const accountLendingPool = yield this.getAccountLendingPool();
44
+ for (const b of [accountLendingPool.getBorrowableA(), accountLendingPool.getBorrowableB()]) {
45
+ if ((yield b.getBorrowed()) === 0 || (yield b.getFarmingShares()) > 0)
46
+ continue;
47
+ toTrack.push(yield b.getPoolToken().getPoolTokenAddress());
48
+ }
49
+ return this.send(claimAggregator.methods.trackBorrows(account, toTrack), onTransactionHash);
50
+ });
51
+ }
52
+ }
53
+ exports.default = OnchainInteractionsLendingPool;
@@ -0,0 +1,42 @@
1
+ import { Borrowable } from '../../../config/types';
2
+ import { PermitData } from '../../onchainTypes';
3
+ import { BigNumber } from 'ethers';
4
+ import { OnchainLendingPoolV2 } from '../../impermaxFactory/lendingPool';
5
+ import { OnchainAccountLendingPoolV2 } from '../../account/lendingPool';
6
+ import OnchainInteractionsLendingPool from "./onchainInteractionsLendingPool";
7
+ import OnchainInteractionsCollateralV2 from "./onchainInteractionsCollateralV2";
8
+ import OnchainInteractionsBorrowableV2 from "./onchainInteractionsBorrowableV2";
9
+ export default class OnchainInteractionsLendingPoolV2 extends OnchainInteractionsLendingPool {
10
+ protected readonly lendingPool: OnchainLendingPoolV2;
11
+ protected readonly collateral: OnchainInteractionsCollateralV2;
12
+ protected readonly borrowables: {
13
+ [Borrowable.A]: OnchainInteractionsBorrowableV2;
14
+ [Borrowable.B]: OnchainInteractionsBorrowableV2;
15
+ };
16
+ protected getNewCollateralObject(): OnchainInteractionsCollateralV2;
17
+ protected getNewBorrowableObject(borrowable: Borrowable): OnchainInteractionsBorrowableV2;
18
+ getLendingPool: () => OnchainLendingPoolV2;
19
+ getBorrowable: (borrowable: Borrowable) => OnchainInteractionsBorrowableV2;
20
+ getBorrowableA: () => OnchainInteractionsBorrowableV2;
21
+ getBorrowableB: () => OnchainInteractionsBorrowableV2;
22
+ getCollateral: () => OnchainInteractionsCollateralV2;
23
+ getAccountLendingPool(): OnchainAccountLendingPoolV2;
24
+ getLeverageAmounts(leverage: number, slippage: number): Promise<{
25
+ bAmountA: number;
26
+ bAmountB: number;
27
+ cAmount: number;
28
+ bAmountAMin: number;
29
+ bAmountBMin: number;
30
+ cAmountMin: number;
31
+ }>;
32
+ leverage(amountA: BigNumber, amountB: BigNumber, amountAMin: BigNumber, amountBMin: BigNumber, permitDataA: PermitData, permitDataB: PermitData, onTransactionHash: Function): Promise<any>;
33
+ getDeleverageAmounts(changeCollateralValue: number, slippage: number): Promise<{
34
+ bAmountA: number;
35
+ bAmountB: number;
36
+ cAmount: number;
37
+ bAmountAMin: number;
38
+ bAmountBMin: number;
39
+ }>;
40
+ deleverage(tokens: BigNumber, amountAMin: BigNumber, amountBMin: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
41
+ reinvest(onTransactionHash: Function): Promise<any>;
42
+ }
@@ -0,0 +1,114 @@
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 utils_1 = require("../../../utils");
17
+ const general_1 = require("../../../config/general");
18
+ const onchainInteractionsLendingPool_1 = __importDefault(require("./onchainInteractionsLendingPool"));
19
+ const onchainInteractionsCollateralV2_1 = __importDefault(require("./onchainInteractionsCollateralV2"));
20
+ const onchainInteractionsBorrowableV2_1 = __importDefault(require("./onchainInteractionsBorrowableV2"));
21
+ class OnchainInteractionsLendingPoolV2 extends onchainInteractionsLendingPool_1.default {
22
+ constructor() {
23
+ super(...arguments);
24
+ // Shortcuts
25
+ this.getLendingPool = () => this.lendingPool;
26
+ this.getBorrowable = (borrowable) => this.borrowables[borrowable];
27
+ this.getBorrowableA = () => this.getBorrowable(types_1.Borrowable.A);
28
+ this.getBorrowableB = () => this.getBorrowable(types_1.Borrowable.B);
29
+ this.getCollateral = () => this.collateral;
30
+ }
31
+ getNewCollateralObject() {
32
+ return new onchainInteractionsCollateralV2_1.default(this);
33
+ }
34
+ getNewBorrowableObject(borrowable) {
35
+ return new onchainInteractionsBorrowableV2_1.default(this, borrowable);
36
+ }
37
+ getAccountLendingPool() {
38
+ return this.interactions.getAccount().getLendingPool(this.getFactory(), this.getId());
39
+ }
40
+ getLeverageAmounts(leverage, slippage) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
43
+ // This function must use the market price, but the account leverage is calculated with the TWAP, so we need an adjustFactor
44
+ const [priceATWAP, priceBTWAP] = yield this.lendingPool.getPriceDenomLP();
45
+ const diff = priceA > priceATWAP ? priceA / priceATWAP : priceATWAP / priceA;
46
+ const adjustFactor = Math.pow((0, utils_1.impermanentLoss)(Math.pow(diff, 2)), leverage);
47
+ const accountLendingPool = yield this.getAccountLendingPool();
48
+ const currentLeverage = yield accountLendingPool.getLeverage();
49
+ const collateralValue = yield accountLendingPool.getCollateral().getDeposited();
50
+ const changeCollateralValue = (collateralValue * leverage / currentLeverage - collateralValue) * adjustFactor;
51
+ const [reservesWeightA, reservesWeightB] = yield this.lendingPool.getMarketReservesWeights();
52
+ const changeValueA = changeCollateralValue * reservesWeightA;
53
+ const changeValueB = changeCollateralValue * reservesWeightB;
54
+ const bAmountA = priceA > 0 ? changeValueA / priceA : 0;
55
+ const bAmountB = priceB > 0 ? changeValueB / priceB : 0;
56
+ const cAmount = changeCollateralValue ? changeCollateralValue : 0;
57
+ return {
58
+ bAmountA: bAmountA,
59
+ bAmountB: bAmountB,
60
+ cAmount: cAmount,
61
+ bAmountAMin: bAmountA / slippage,
62
+ bAmountBMin: bAmountB / slippage,
63
+ cAmountMin: cAmount / Math.sqrt(slippage),
64
+ };
65
+ });
66
+ }
67
+ leverage(amountA, amountB, amountAMin, amountBMin, permitDataA, permitDataB, onTransactionHash) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const router = this.getPoolTokenRouter();
70
+ const dataA = permitDataA ? permitDataA.permitData : '0x';
71
+ const dataB = permitDataB ? permitDataB.permitData : '0x';
72
+ if (permitDataA && permitDataB && !permitDataA.deadline.eq(permitDataB.deadline))
73
+ return console.error("Permits deadline are not equal");
74
+ const deadline = permitDataA ? permitDataA.deadline : permitDataB ? permitDataB.deadline : general_1.DEADLINE;
75
+ const pairAddress = this.getId();
76
+ const account = this.getAccountAddress();
77
+ return this.send(router.methods.leverage(pairAddress, amountA, amountB, amountAMin, amountBMin, account, deadline, dataA, dataB), onTransactionHash);
78
+ });
79
+ }
80
+ getDeleverageAmounts(changeCollateralValue, slippage) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ changeCollateralValue = changeCollateralValue !== null && changeCollateralValue !== void 0 ? changeCollateralValue : 0;
83
+ const [priceA, priceB] = yield this.lendingPool.getMarketPriceDenomLP();
84
+ const [reservesWeightA, reservesWeightB] = yield this.lendingPool.getMarketReservesWeights();
85
+ const changeValueA = changeCollateralValue * reservesWeightA;
86
+ const changeValueB = changeCollateralValue * reservesWeightB;
87
+ const bAmountA = priceA > 0 ? changeValueA / priceA : 0;
88
+ const bAmountB = priceB > 0 ? changeValueB / priceB : 0;
89
+ return {
90
+ bAmountA: bAmountA,
91
+ bAmountB: bAmountB,
92
+ cAmount: changeCollateralValue,
93
+ bAmountAMin: bAmountA / Math.sqrt(slippage),
94
+ bAmountBMin: bAmountB / Math.sqrt(slippage),
95
+ };
96
+ });
97
+ }
98
+ deleverage(tokens, amountAMin, amountBMin, permitData, onTransactionHash) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ const router = this.getPoolTokenRouter();
101
+ const data = permitData ? permitData.permitData : '0x';
102
+ const deadline = permitData ? permitData.deadline : general_1.DEADLINE;
103
+ const pairAddress = this.getId();
104
+ return this.send(router.methods.deleverage(pairAddress, tokens, amountAMin, amountBMin, deadline, data), onTransactionHash);
105
+ });
106
+ }
107
+ reinvest(onTransactionHash) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ const stakedLPToken = yield this.lendingPool.getStakedLPToken();
110
+ return this.send(stakedLPToken.methods.reinvest(), onTransactionHash);
111
+ });
112
+ }
113
+ }
114
+ exports.default = OnchainInteractionsLendingPoolV2;
@@ -0,0 +1,27 @@
1
+ import { Borrowable } from '../../../config/types';
2
+ import { OnchainLendingPoolV3 } from '../../impermaxFactory/lendingPool';
3
+ import { OnchainAccountLendingPoolV3 } from '../../account/lendingPool';
4
+ import OnchainInteractionsLendingPool from "./onchainInteractionsLendingPool";
5
+ import OnchainInteractionsBorrowableV3 from "./onchainInteractionsBorrowableV3";
6
+ import OnchainInteractionsCollateralV3 from './onchainInteractionsCollateralV3';
7
+ import OnchainInteractions from "../index";
8
+ import OnchainInteractionsNftlp from "./nftlp";
9
+ export default class OnchainInteractionsLendingPoolV3 extends OnchainInteractionsLendingPool {
10
+ protected readonly lendingPool: OnchainLendingPoolV3;
11
+ protected readonly collateral: OnchainInteractionsCollateralV3;
12
+ protected readonly borrowables: {
13
+ [Borrowable.A]: OnchainInteractionsBorrowableV3;
14
+ [Borrowable.B]: OnchainInteractionsBorrowableV3;
15
+ };
16
+ protected readonly nftlp: OnchainInteractionsNftlp;
17
+ constructor(interactions: OnchainInteractions, lendingPool: OnchainLendingPoolV3);
18
+ protected getNewCollateralObject(): OnchainInteractionsCollateralV3;
19
+ protected getNewBorrowableObject(borrowable: Borrowable): OnchainInteractionsBorrowableV3;
20
+ getLendingPool: () => OnchainLendingPoolV3;
21
+ getBorrowable: (borrowable: Borrowable) => OnchainInteractionsBorrowableV3;
22
+ getBorrowableA: () => OnchainInteractionsBorrowableV3;
23
+ getBorrowableB: () => OnchainInteractionsBorrowableV3;
24
+ getCollateral: () => OnchainInteractionsCollateralV3;
25
+ getNftlp: () => OnchainInteractionsNftlp;
26
+ getAccountLendingPool(): OnchainAccountLendingPoolV3;
27
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const types_1 = require("../../../config/types");
7
+ const onchainInteractionsLendingPool_1 = __importDefault(require("./onchainInteractionsLendingPool"));
8
+ const onchainInteractionsBorrowableV3_1 = __importDefault(require("./onchainInteractionsBorrowableV3"));
9
+ const onchainInteractionsCollateralV3_1 = __importDefault(require("./onchainInteractionsCollateralV3"));
10
+ class OnchainInteractionsLendingPoolV3 extends onchainInteractionsLendingPool_1.default {
11
+ constructor(interactions, lendingPool) {
12
+ super(interactions, lendingPool);
13
+ // Shortcuts
14
+ this.getLendingPool = () => this.lendingPool;
15
+ this.getBorrowable = (borrowable) => this.borrowables[borrowable];
16
+ this.getBorrowableA = () => this.getBorrowable(types_1.Borrowable.A);
17
+ this.getBorrowableB = () => this.getBorrowable(types_1.Borrowable.B);
18
+ this.getCollateral = () => this.collateral;
19
+ this.getNftlp = () => this.nftlp;
20
+ this.nftlp = lendingPool.getNftlp().getNewInteractionsNftlpObject(this);
21
+ }
22
+ getNewCollateralObject() {
23
+ return new onchainInteractionsCollateralV3_1.default(this);
24
+ }
25
+ getNewBorrowableObject(borrowable) {
26
+ return new onchainInteractionsBorrowableV3_1.default(this, borrowable);
27
+ }
28
+ getAccountLendingPool() {
29
+ return this.interactions.getAccount().getLendingPool(this.getFactory(), this.getId());
30
+ }
31
+ }
32
+ exports.default = OnchainInteractionsLendingPoolV3;
@@ -0,0 +1,8 @@
1
+ import Interactions from "./index";
2
+ import * as onchain from '../index';
3
+ import PoolToken from './poolToken';
4
+ export default class LendingVault extends PoolToken {
5
+ poolToken: onchain.LendingVault;
6
+ constructor(interactions: Interactions, lendingVault: onchain.LendingVault);
7
+ getRouterContract: () => any;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const poolToken_1 = __importDefault(require("./poolToken"));
7
+ class LendingVault extends poolToken_1.default {
8
+ constructor(interactions, lendingVault) {
9
+ super();
10
+ this.getRouterContract = () => this.interactions.getDefaultRouterContract();
11
+ this.interactions = interactions;
12
+ this.poolToken = lendingVault;
13
+ }
14
+ }
15
+ exports.default = LendingVault;
@@ -1,31 +1,31 @@
1
- import Onchain from '../index';
2
- import { Address, Factory, FactoryIndex } from '../../config/types';
3
- import OnchainInteractionsLendingPool from './lendingPool';
4
- import OnchainInteractionsLendingVault from './onchainInteractionsLendingVault';
5
- import { AirdropData, Contract } from '../onchainTypes';
6
- import { BigNumber } from 'ethers';
7
- import OnchainAccount from '../account';
8
- import OnchainInteractionsConfigManager from './onchainInteractionsConfigManager';
9
- export default class OnchainInteractions {
10
- private readonly onchain;
11
- private readonly accountAddress;
12
- private readonly configManager;
13
- private readonly lendingPools;
14
- private readonly lendingVaults;
15
- private cache;
16
- constructor(onchain: Onchain, accountAddress: Address);
17
- getOnchain: () => Onchain;
18
- getAccountAddress: () => string;
19
- getAccount(): OnchainAccount;
20
- cleanCache(): Promise<void>;
21
- getConfigManager: () => OnchainInteractionsConfigManager;
22
- private initializeLendingPool;
23
- getLendingPool(factory: Factory, pair: Address): OnchainInteractionsLendingPool;
24
- private initializeLendingVault;
25
- getLendingVault(vaultAddress: Address): OnchainInteractionsLendingVault;
26
- send(method: any, onTransactionHash: Function, value?: BigNumber): Promise<any>;
27
- getDefaultRouterContract(): any;
28
- claimAirdrop(airdropData: AirdropData, merkleDistributor: Contract, onTransactionHash: Function): Promise<any>;
29
- claims(pairAddresses: FactoryIndex<Address[]>, onTransactionHash: Function): Promise<any>;
30
- claimDistributor(claimableAddress: Address, onTransactionHash: Function): Promise<any>;
31
- }
1
+ import Onchain from '../index';
2
+ import { Address, Factory, FactoryIndex } from '../../config/types';
3
+ import OnchainInteractionsLendingPool from './lendingPool';
4
+ import OnchainInteractionsLendingVault from './onchainInteractionsLendingVault';
5
+ import { AirdropData, Contract } from '../onchainTypes';
6
+ import { BigNumber } from 'ethers';
7
+ import OnchainAccount from '../account';
8
+ import OnchainInteractionsConfigManager from './onchainInteractionsConfigManager';
9
+ export default class OnchainInteractions {
10
+ private readonly onchain;
11
+ private readonly accountAddress;
12
+ private readonly configManager;
13
+ private readonly lendingPools;
14
+ private readonly lendingVaults;
15
+ private cache;
16
+ constructor(onchain: Onchain, accountAddress: Address);
17
+ getOnchain: () => Onchain;
18
+ getAccountAddress: () => string;
19
+ getAccount(): OnchainAccount;
20
+ cleanCache(): Promise<void>;
21
+ getConfigManager: () => OnchainInteractionsConfigManager;
22
+ private initializeLendingPool;
23
+ getLendingPool(factory: Factory, pair: Address): OnchainInteractionsLendingPool;
24
+ private initializeLendingVault;
25
+ getLendingVault(vaultAddress: Address): OnchainInteractionsLendingVault;
26
+ send(method: any, onTransactionHash: Function, value?: BigNumber): Promise<any>;
27
+ getDefaultRouterContract(): any;
28
+ claimAirdrop(airdropData: AirdropData, merkleDistributor: Contract, onTransactionHash: Function): Promise<any>;
29
+ claims(pairAddresses: FactoryIndex<Address[]>, onTransactionHash: Function): Promise<any>;
30
+ claimDistributor(claimableAddress: Address, onTransactionHash: Function): Promise<any>;
31
+ }