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,230 +1,277 @@
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 offchainCollateral_1 = __importDefault(require("./offchainCollateral"));
17
- const offchainBorrowable_1 = __importDefault(require("./offchainBorrowable"));
18
- const farms_1 = require("../../config/farms");
19
- const utils_1 = require("../../utils");
20
- const amms_1 = require("../../config/amms");
21
- const factories_1 = require("../../config/factories");
22
- class OffchainLendingPool {
23
- constructor(offchain, factory, pairAddress) {
24
- this.getOffchain = () => this.offchain;
25
- this.getFactory = () => this.factory;
26
- this.getPairAddress = () => this.pairAddress;
27
- // Shortcuts
28
- this.getBorrowableA = () => this.poolTokens[types_1.PoolTokenType.BorrowableA];
29
- this.getBorrowableB = () => this.poolTokens[types_1.PoolTokenType.BorrowableB];
30
- this.getCollateral = () => this.poolTokens[types_1.PoolTokenType.Collateral];
31
- this.offchain = offchain;
32
- this.factory = factory;
33
- this.pairAddress = pairAddress;
34
- this.poolTokens = {
35
- [types_1.PoolTokenType.Collateral]: new offchainCollateral_1.default(this),
36
- [types_1.PoolTokenType.BorrowableA]: new offchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableA),
37
- [types_1.PoolTokenType.BorrowableB]: new offchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableB),
38
- };
39
- }
40
- getPoolToken(poolTokenType) {
41
- return this.poolTokens[poolTokenType];
42
- }
43
- // Offchain calls
44
- getLendingPoolData() {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- return this.offchain.getLendingPoolData(this.factory, this.pairAddress);
47
- });
48
- }
49
- // Whitelist State
50
- getWhitelistState() {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- return this.offchain.getWhitelistState(this.factory, this.pairAddress);
53
- });
54
- }
55
- // Safety Margin
56
- getSafetyMargin() {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const lendingPoolData = yield this.getLendingPoolData();
59
- return parseFloat(lendingPoolData[types_1.PoolTokenType.Collateral].safetyMargin);
60
- });
61
- }
62
- // Liquidation Penalty
63
- getLiquidationIncentive() {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const lendingPoolData = yield this.getLendingPoolData();
66
- return parseFloat(lendingPoolData[types_1.PoolTokenType.Collateral].liquidationIncentive);
67
- });
68
- }
69
- getLiquidationFee() {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const lendingPoolData = yield this.getLendingPoolData();
72
- const liquidationFee = lendingPoolData[types_1.PoolTokenType.Collateral].liquidationFee;
73
- return liquidationFee ? parseFloat(liquidationFee) : 0;
74
- });
75
- }
76
- getLiquidationPenalty() {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- return (yield this.getLiquidationIncentive()) + (yield this.getLiquidationFee());
79
- });
80
- }
81
- // Uniswap APR
82
- getUniswapAPR() {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- const lendingPoolData = yield this.getLendingPoolData();
85
- return lendingPoolData.pair.uniswapAPR;
86
- });
87
- }
88
- // Staking
89
- isStakedLPToken() {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- const lendingPoolData = yield this.getLendingPoolData();
92
- return lendingPoolData.pair.isStakedLPToken;
93
- });
94
- }
95
- getStakedLPExchangeRate() {
96
- return __awaiter(this, void 0, void 0, function* () {
97
- const lendingPoolData = yield this.getLendingPoolData();
98
- return parseFloat(lendingPoolData.pair.exchangeRate);
99
- });
100
- }
101
- getStakingRewards() {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const farm = yield this.getFarm();
104
- const lendingPoolData = yield this.getLendingPoolData();
105
- if (farm === farms_1.Farms.solidex || farm === farms_1.Farms.solidexB || farm === farms_1.Farms.solidexUSDC || farm === farms_1.Farms.solidexUSDCB) {
106
- const solidexLPDetails = yield this.offchain.getSolidexHelper().getSolidexLPDetails();
107
- const result = solidexLPDetails[lendingPoolData.pair.uniswapV2PairAddress];
108
- if (result)
109
- return result;
110
- }
111
- const FINISH_DELAY = 3600 * 24 * 1;
112
- const rewards = [];
113
- const stakedTotalSupply = parseFloat(lendingPoolData.pair.stakedTotalSupply);
114
- const underlyingLPPrice = yield this.getUnderlyingLPPrice(true);
115
- for (const reward of lendingPoolData.pair.rewards) {
116
- const multiplier = farm === farms_1.Farms.traderJoeV2 ? 0.5 : 1;
117
- const periodFinish = parseInt(reward.periodFinish);
118
- if ((new Date).getTime() / 1000 - FINISH_DELAY > periodFinish && periodFinish !== 0)
119
- continue;
120
- let rewardRate = parseFloat(reward.rewardRate);
121
- if (farm == farms_1.Farms.traderJoeV4)
122
- rewardRate = rewardRate * 0.45;
123
- const rewardPrice = yield this.offchain.getPriceHelper().getDebankTokenPrice(reward.rewardsToken.id);
124
- rewards.push({
125
- APR: (0, utils_1.toAPR)((rewardPrice * rewardRate) / (stakedTotalSupply * underlyingLPPrice) * multiplier),
126
- symbol: reward.rewardsToken.symbol,
127
- });
128
- }
129
- return rewards;
130
- });
131
- }
132
- getStakingAPR() {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const rewards = yield this.getStakingRewards();
135
- let APR = 0;
136
- for (const reward of rewards) {
137
- APR += reward.APR;
138
- }
139
- return APR;
140
- });
141
- }
142
- //Shown Leverage
143
- getShownLeverage() {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- const safetyMargin = yield this.getSafetyMargin();
146
- if (safetyMargin < 1.25)
147
- return 20;
148
- if (safetyMargin < 1.51)
149
- return 10;
150
- if (safetyMargin < 2.01)
151
- return 5;
152
- return 3;
153
- });
154
- }
155
- // Past Data
156
- getLendingPoolDataPast24h() {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- return (yield this.getLendingPoolData()).past24h;
159
- });
160
- }
161
- getLendingPoolDataPast7d() {
162
- return __awaiter(this, void 0, void 0, function* () {
163
- return (yield this.getLendingPoolData()).past7d;
164
- });
165
- }
166
- // Amms and farms
167
- getAmm() {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- const lendingPoolData = yield this.getLendingPoolData();
170
- return (0, amms_1.getAmmByFactory)(this.offchain.network, lendingPoolData.pair.uniswapV2Factory);
171
- });
172
- }
173
- getFarm() {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- const lendingPoolData = yield this.getLendingPoolData();
176
- return (0, farms_1.getFarmByStakedLPFactory)(this.offchain.network, lendingPoolData.pair.factory);
177
- });
178
- }
179
- // getCollateralPrice -> returns the price of the collateral, not necessarily of the underlying LP
180
- calculateCollateralPrice(reserve0, reserve1, totalSupply, price0, price1) {
181
- if (totalSupply === 0)
182
- return 0;
183
- const reserve0USD = reserve0 * price0;
184
- const reserve1USD = reserve1 * price1;
185
- // adjust reserves taking the latest price passed as parameters
186
- const adjustedReserveUSD = Math.sqrt(reserve0USD * reserve1USD) * 2;
187
- return adjustedReserveUSD / totalSupply;
188
- }
189
- getCollateralPrice(fast = true) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- const lendingPoolData = yield this.getLendingPoolData();
192
- return this.calculateCollateralPrice(parseFloat(lendingPoolData.pair.reserve0), parseFloat(lendingPoolData.pair.reserve1), parseFloat(lendingPoolData.pair.totalSupply), fast ?
193
- yield this.getBorrowableA().getTokenPriceFast() :
194
- yield this.getBorrowableA().getTokenPriceAccurate(), fast ?
195
- yield this.getBorrowableB().getTokenPriceFast() :
196
- yield this.getBorrowableB().getTokenPriceAccurate());
197
- });
198
- }
199
- getUnderlyingLPPrice(fast = true) {
200
- return __awaiter(this, void 0, void 0, function* () {
201
- return (yield this.getCollateralPrice(fast)) / (yield this.getStakedLPExchangeRate());
202
- });
203
- }
204
- // Kink Multiplier
205
- getKinkMultiplier() {
206
- if (factories_1.OLD_KINK_MULTIPLIER_FACTORIES.includes(this.factory))
207
- return 5;
208
- return 2;
209
- }
210
- // Stats
211
- getTotalBorrowsUSD() {
212
- return __awaiter(this, void 0, void 0, function* () {
213
- const totalBorrowsUSDA = yield this.getBorrowableA().getTotalBorrowsUSD();
214
- const totalBorrowsUSDB = yield this.getBorrowableB().getTotalBorrowsUSD();
215
- return totalBorrowsUSDA + totalBorrowsUSDB;
216
- });
217
- }
218
- getTotalAPR() {
219
- return __awaiter(this, void 0, void 0, function* () {
220
- const uniswapV2Pair = (yield this.getLendingPoolData()).pair.uniswapV2PairAddress;
221
- // If llama fails/apr is 0 we get the uniswapAPR and stakingAPR through subgraph
222
- const apr = yield this.offchain.getAPRHelper().getLlamaAPR(uniswapV2Pair, this.offchain.network);
223
- if (apr > 0)
224
- return apr;
225
- const [uniswapAPR, stakingAPR] = yield Promise.all([this.getUniswapAPR(), this.getStakingAPR()]);
226
- return uniswapAPR + stakingAPR;
227
- });
228
- }
229
- }
230
- exports.default = OffchainLendingPool;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LendingPoolVersion = void 0;
16
+ const types_1 = require("../../config/types");
17
+ const offchainCollateral_1 = __importDefault(require("./offchainCollateral"));
18
+ const offchainBorrowable_1 = __importDefault(require("./offchainBorrowable"));
19
+ const farms_1 = require("../../config/farms");
20
+ const utils_1 = require("../../utils");
21
+ const amms_1 = require("../../config/amms");
22
+ const factories_1 = require("../../config/factories");
23
+ var LendingPoolVersion;
24
+ (function (LendingPoolVersion) {
25
+ LendingPoolVersion[LendingPoolVersion["V1"] = 0] = "V1";
26
+ LendingPoolVersion[LendingPoolVersion["V2"] = 1] = "V2";
27
+ LendingPoolVersion[LendingPoolVersion["V3"] = 2] = "V3";
28
+ })(LendingPoolVersion = exports.LendingPoolVersion || (exports.LendingPoolVersion = {}));
29
+ class OffchainLendingPool {
30
+ constructor(offchain, factory, pairAddress) {
31
+ this.getOffchain = () => this.offchain;
32
+ this.getFactory = () => this.factory;
33
+ this.getPairAddress = () => this.pairAddress;
34
+ this.getBorrowable = (borrowable) => borrowable == types_1.Borrowable.A ? this.getBorrowableA() : this.getBorrowableB();
35
+ // Shortcuts
36
+ this.getBorrowableA = () => this.poolTokens[types_1.PoolTokenType.BorrowableA];
37
+ this.getBorrowableB = () => this.poolTokens[types_1.PoolTokenType.BorrowableB];
38
+ this.getCollateral = () => this.poolTokens[types_1.PoolTokenType.Collateral];
39
+ this.offchain = offchain;
40
+ this.factory = factory;
41
+ this.pairAddress = pairAddress;
42
+ this.poolTokens = {
43
+ [types_1.PoolTokenType.Collateral]: new offchainCollateral_1.default(this),
44
+ [types_1.PoolTokenType.BorrowableA]: new offchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableA),
45
+ [types_1.PoolTokenType.BorrowableB]: new offchainBorrowable_1.default(this, types_1.PoolTokenType.BorrowableB),
46
+ };
47
+ }
48
+ getPoolToken(poolTokenType) {
49
+ return this.poolTokens[poolTokenType];
50
+ }
51
+ // Offchain calls
52
+ getLendingPoolData() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ return this.offchain.getLendingPoolData(this.factory, this.pairAddress);
55
+ });
56
+ }
57
+ // Whitelist State
58
+ getWhitelistState() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ return this.offchain.getWhitelistState(this.factory, this.pairAddress);
61
+ });
62
+ }
63
+ // Safety Margin
64
+ getSafetyMargin() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const lendingPoolData = yield this.getLendingPoolData();
67
+ return parseFloat(lendingPoolData[types_1.PoolTokenType.Collateral].safetyMargin);
68
+ });
69
+ }
70
+ // Liquidation Penalty
71
+ getLiquidationIncentive() {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const lendingPoolData = yield this.getLendingPoolData();
74
+ return parseFloat(lendingPoolData[types_1.PoolTokenType.Collateral].liquidationIncentive);
75
+ });
76
+ }
77
+ getLiquidationFee() {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const lendingPoolData = yield this.getLendingPoolData();
80
+ const liquidationFee = lendingPoolData[types_1.PoolTokenType.Collateral].liquidationFee;
81
+ return liquidationFee ? parseFloat(liquidationFee) : 0;
82
+ });
83
+ }
84
+ getLiquidationPenalty() {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ return (yield this.getLiquidationIncentive()) + (yield this.getLiquidationFee());
87
+ });
88
+ }
89
+ // Uniswap APR
90
+ getUniswapAPR() {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const lendingPoolData = yield this.getLendingPoolData();
93
+ return lendingPoolData.pair.uniswapAPR;
94
+ });
95
+ }
96
+ // Staking
97
+ isStakedLPToken() {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const lendingPoolData = yield this.getLendingPoolData();
100
+ return lendingPoolData.pair.isStakedLPToken;
101
+ });
102
+ }
103
+ getStakedLPExchangeRate() {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const lendingPoolData = yield this.getLendingPoolData();
106
+ return parseFloat(lendingPoolData.pair.exchangeRate);
107
+ });
108
+ }
109
+ getStakingRewards() {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ const farm = yield this.getFarm();
112
+ const lendingPoolData = yield this.getLendingPoolData();
113
+ if (farm === farms_1.Farms.solidex || farm === farms_1.Farms.solidexB || farm === farms_1.Farms.solidexUSDC || farm === farms_1.Farms.solidexUSDCB) {
114
+ const solidexLPDetails = yield this.offchain.getSolidexHelper().getSolidexLPDetails();
115
+ const result = solidexLPDetails[lendingPoolData.pair.uniswapV2PairAddress];
116
+ if (result)
117
+ return result;
118
+ }
119
+ const FINISH_DELAY = 3600 * 24 * 1;
120
+ const rewards = [];
121
+ const stakedTotalSupply = parseFloat(lendingPoolData.pair.stakedTotalSupply);
122
+ const underlyingLPPrice = yield this.getUnderlyingLPPrice(true);
123
+ for (const reward of lendingPoolData.pair.rewards) {
124
+ const multiplier = farm === farms_1.Farms.traderJoeV2 ? 0.5 : 1;
125
+ const periodFinish = parseInt(reward.periodFinish);
126
+ if ((new Date).getTime() / 1000 - FINISH_DELAY > periodFinish && periodFinish !== 0)
127
+ continue;
128
+ let rewardRate = parseFloat(reward.rewardRate);
129
+ if (farm == farms_1.Farms.traderJoeV4)
130
+ rewardRate = rewardRate * 0.45;
131
+ const rewardPrice = yield this.offchain.getPriceHelper().getDebankTokenPrice(reward.rewardsToken.id);
132
+ rewards.push({
133
+ APR: (0, utils_1.toAPR)((rewardPrice * rewardRate) / (stakedTotalSupply * underlyingLPPrice) * multiplier),
134
+ symbol: reward.rewardsToken.symbol,
135
+ });
136
+ }
137
+ return rewards;
138
+ });
139
+ }
140
+ getStakingAPR() {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ const rewards = yield this.getStakingRewards();
143
+ let APR = 0;
144
+ for (const reward of rewards) {
145
+ APR += reward.APR;
146
+ }
147
+ return APR;
148
+ });
149
+ }
150
+ //Shown Leverage
151
+ getShownLeverage() {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ const safetyMargin = yield this.getSafetyMargin();
154
+ if (safetyMargin < 1.25)
155
+ return 20;
156
+ if (safetyMargin < 1.51)
157
+ return 10;
158
+ if (safetyMargin < 2.01)
159
+ return 5;
160
+ return 3;
161
+ });
162
+ }
163
+ // Past Data
164
+ getLendingPoolDataPast24h() {
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ return (yield this.getLendingPoolData()).past24h;
167
+ });
168
+ }
169
+ getLendingPoolDataPast7d() {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ return (yield this.getLendingPoolData()).past7d;
172
+ });
173
+ }
174
+ // Amms and farms
175
+ getAmm() {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const lendingPoolData = yield this.getLendingPoolData();
178
+ return (0, amms_1.getAmmByFactory)(this.offchain.network, lendingPoolData.pair.uniswapV2Factory);
179
+ });
180
+ }
181
+ getFarm() {
182
+ return __awaiter(this, void 0, void 0, function* () {
183
+ const lendingPoolData = yield this.getLendingPoolData();
184
+ return (0, farms_1.getFarmByStakedLPFactory)(this.offchain.network, lendingPoolData.pair.factory);
185
+ });
186
+ }
187
+ // getCollateralPrice -> returns the price of the collateral, not necessarily of the underlying LP
188
+ calculateCollateralPrice(reserve0, reserve1, totalSupply, price0, price1) {
189
+ if (totalSupply === 0)
190
+ return 0;
191
+ const reserve0USD = reserve0 * price0;
192
+ const reserve1USD = reserve1 * price1;
193
+ // adjust reserves taking the latest price passed as parameters
194
+ const adjustedReserveUSD = Math.sqrt(reserve0USD * reserve1USD) * 2;
195
+ return adjustedReserveUSD / totalSupply;
196
+ }
197
+ getCollateralPrice(fast = true) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const lendingPoolData = yield this.getLendingPoolData();
200
+ return this.calculateCollateralPrice(parseFloat(lendingPoolData.pair.reserve0), parseFloat(lendingPoolData.pair.reserve1), parseFloat(lendingPoolData.pair.totalSupply), fast ?
201
+ yield this.getBorrowableA().getTokenPriceFast() :
202
+ yield this.getBorrowableA().getTokenPriceAccurate(), fast ?
203
+ yield this.getBorrowableB().getTokenPriceFast() :
204
+ yield this.getBorrowableB().getTokenPriceAccurate());
205
+ });
206
+ }
207
+ getUnderlyingLPPrice(fast = true) {
208
+ return __awaiter(this, void 0, void 0, function* () {
209
+ return (yield this.getCollateralPrice(fast)) / (yield this.getStakedLPExchangeRate());
210
+ });
211
+ }
212
+ // Kink Multiplier
213
+ getKinkMultiplier() {
214
+ if (factories_1.OLD_KINK_MULTIPLIER_FACTORIES.includes(this.factory))
215
+ return 5;
216
+ return 2;
217
+ }
218
+ // Stats
219
+ getTotalBorrowsUSD() {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ const totalBorrowsUSDA = yield this.getBorrowableA().getTotalBorrowsUSD();
222
+ const totalBorrowsUSDB = yield this.getBorrowableB().getTotalBorrowsUSD();
223
+ return totalBorrowsUSDA + totalBorrowsUSDB;
224
+ });
225
+ }
226
+ getTotalAPR() {
227
+ return __awaiter(this, void 0, void 0, function* () {
228
+ const uniswapV2Pair = (yield this.getLendingPoolData()).pair.uniswapV2PairAddress;
229
+ // If llama fails/apr is 0 we get the uniswapAPR and stakingAPR through subgraph
230
+ const apr = yield this.offchain.getAPRHelper().getLlamaAPR(uniswapV2Pair, this.offchain.network);
231
+ if (apr > 0)
232
+ return apr;
233
+ const [uniswapAPR, stakingAPR] = yield Promise.all([this.getUniswapAPR(), this.getStakingAPR()]);
234
+ return uniswapAPR + stakingAPR;
235
+ });
236
+ }
237
+ getTVL() {
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ // TODO
240
+ return 1;
241
+ });
242
+ }
243
+ // Flags
244
+ isDeprecated() {
245
+ return __awaiter(this, void 0, void 0, function* () {
246
+ return false;
247
+ });
248
+ }
249
+ isBlacklisted() {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ return false;
252
+ });
253
+ }
254
+ isStable() {
255
+ return __awaiter(this, void 0, void 0, function* () {
256
+ return false;
257
+ });
258
+ }
259
+ isLowTVL() {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ return false;
262
+ });
263
+ }
264
+ isHighTVL() {
265
+ return __awaiter(this, void 0, void 0, function* () {
266
+ return false;
267
+ });
268
+ }
269
+ // Versions Specfics
270
+ getLendingPoolVersion() {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ // TODO
273
+ return LendingPoolVersion.V2;
274
+ });
275
+ }
276
+ }
277
+ exports.default = OffchainLendingPool;
@@ -0,0 +1,22 @@
1
+ import Offchain from "./index";
2
+ import { Address } from '../config/types';
3
+ import PoolToken from './poolToken';
4
+ import { PoolTokenData } from './types';
5
+ export default class LendingVault extends PoolToken {
6
+ offchain: Offchain;
7
+ vaultAddress: Address;
8
+ constructor(offchain: Offchain, vaultAddress: Address);
9
+ getOffchain: () => Offchain;
10
+ getPoolTokenData(): Promise<PoolTokenData>;
11
+ getAccrualTimestamp(): Promise<number>;
12
+ getVaultSupply(): Promise<number>;
13
+ getCurrentVaultSupply(): Promise<number>;
14
+ getVaultSupplyUSD(): Promise<number>;
15
+ getAvailableLiquidity(): Promise<number>;
16
+ getCurrentAvailableLiquidity(): Promise<number>;
17
+ getAvailableLiquidityUSD(): Promise<number>;
18
+ getSupplyRate(): Promise<number>;
19
+ getSupplyAPR(): Promise<number>;
20
+ getTokenPriceFast(fallback?: boolean): Promise<number>;
21
+ getTokenPriceAccurate(): Promise<number>;
22
+ }