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,186 +1,134 @@
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 ethers_1 = require("ethers");
13
- const onchainTypes_1 = require("../onchainTypes");
14
- const weths_1 = require("../../config/contracts/weths");
15
- const general_1 = require("../../config/general");
16
- const MAX_UINT256 = ethers_1.ethers.constants.MaxUint256;
17
- const EIP712DOMAIN = [
18
- { name: "name", type: "string" },
19
- { name: "version", type: "string" },
20
- { name: "chainId", type: "uint256" },
21
- { name: "verifyingContract", type: "address" },
22
- ];
23
- const PERMIT = [
24
- { name: "owner", type: "address" },
25
- { name: "spender", type: "address" },
26
- { name: "value", type: "uint256" },
27
- { name: "nonce", type: "uint256" },
28
- { name: "deadline", type: "uint256" },
29
- ];
30
- const TYPES = {
31
- EIP712Domain: EIP712DOMAIN,
32
- Permit: PERMIT,
33
- BorrowPermit: PERMIT,
34
- };
35
- class OnchainInteractionsPoolToken {
36
- constructor() {
37
- this.getPoolToken = () => this.poolToken;
38
- // Shortcuts
39
- this.getAccountAddress = () => this.getInteractions().getAccountAddress();
40
- this.getOnchain = () => this.getInteractions().getOnchain();
41
- }
42
- send(method, onTransactionHash, value) {
43
- return this.getInteractions().send(method, onTransactionHash, value);
44
- }
45
- //send = this.getInteractions().send;
46
- getOwnerSpender() {
47
- return {
48
- owner: this.getAccountAddress(),
49
- spender: this.getRouterContract()._address,
50
- };
51
- }
52
- isWETH() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- const token = yield this.poolToken.getToken();
55
- return token._address.toLowerCase() == weths_1.WETH[this.getOnchain().network].toLowerCase();
56
- });
57
- }
58
- getAllowance(approvalType) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- const poolToken = yield this.poolToken.getPoolToken();
61
- const token = yield this.poolToken.getToken();
62
- if ((yield this.isWETH()) && approvalType == onchainTypes_1.ApprovalType.UNDERLYING)
63
- return MAX_UINT256;
64
- const { owner, spender } = this.getOwnerSpender();
65
- const allowance = (approvalType == onchainTypes_1.ApprovalType.POOL_TOKEN) ? yield poolToken.methods.allowance(owner, spender).call() :
66
- (approvalType == onchainTypes_1.ApprovalType.UNDERLYING) ? yield token.methods.allowance(owner, spender).call() :
67
- (approvalType == onchainTypes_1.ApprovalType.BORROW) ? yield poolToken.methods.borrowAllowance(owner, spender).call() : 0;
68
- return ethers_1.BigNumber.from(allowance);
69
- });
70
- }
71
- approve(approvalType, amount, onTransactionHash) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- const { spender } = this.getOwnerSpender();
74
- const poolToken = yield this.poolToken.getPoolToken();
75
- const token = yield this.poolToken.getToken();
76
- let method;
77
- if (approvalType == onchainTypes_1.ApprovalType.POOL_TOKEN)
78
- method = poolToken.methods.approve(spender, amount);
79
- if (approvalType == onchainTypes_1.ApprovalType.UNDERLYING)
80
- method = token.methods.approve(spender, amount);
81
- if (approvalType == onchainTypes_1.ApprovalType.BORROW)
82
- method = poolToken.methods.borrowApprove(spender, amount);
83
- return this.send(method, onTransactionHash);
84
- });
85
- }
86
- _getPermitData(approvalType, amount, deadlineArg, callBack) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const { owner, spender } = this.getOwnerSpender();
89
- const poolToken = yield this.poolToken.getPoolToken();
90
- const token = yield this.poolToken.getToken();
91
- const contract = approvalType == onchainTypes_1.ApprovalType.UNDERLYING ? token : poolToken;
92
- const nonce = yield contract.methods.nonces(owner).call();
93
- const name = yield contract.methods.name().call();
94
- const deadline = deadlineArg ? deadlineArg : general_1.DEADLINE;
95
- const data = JSON.stringify({
96
- types: TYPES,
97
- domain: {
98
- name: name,
99
- version: "1",
100
- chainId: this.getOnchain().chainId,
101
- verifyingContract: contract._address,
102
- },
103
- primaryType: approvalType == onchainTypes_1.ApprovalType.BORROW ? "BorrowPermit" : "Permit",
104
- message: {
105
- owner: owner,
106
- spender: spender,
107
- value: amount.toString(),
108
- nonce: ethers_1.BigNumber.from(nonce).toHexString(),
109
- deadline: deadline.toNumber(),
110
- }
111
- });
112
- this.getOnchain().web3.currentProvider.send({
113
- method: "eth_signTypedData_v4",
114
- params: [owner, data],
115
- from: owner
116
- }, (err, data) => {
117
- if (err) {
118
- console.error(err);
119
- return callBack(null);
120
- }
121
- const signature = data.result.substring(2);
122
- const r = "0x" + signature.substring(0, 64);
123
- const s = "0x" + signature.substring(64, 128);
124
- let v = parseInt(signature.substring(128, 130), 16);
125
- if (v == 0 || v == 1)
126
- v = v + 27;
127
- //console.log(v, r, s);
128
- const permitData = ethers_1.ethers.utils.defaultAbiCoder.encode(['bool', 'uint8', 'bytes32', 'bytes32'], [false, v, r, s]);
129
- callBack({ permitData, deadline, amount });
130
- });
131
- });
132
- }
133
- getPermitData(approvalType, amount, deadlineArg, callBack) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- if (approvalType === onchainTypes_1.ApprovalType.UNDERLYING)
136
- return callBack(null);
137
- this._getPermitData(approvalType, amount, deadlineArg, callBack);
138
- });
139
- }
140
- getSendData(permitData) {
141
- return __awaiter(this, void 0, void 0, function* () {
142
- return {
143
- router: this.getRouterContract(),
144
- ptAddress: (yield this.poolToken.getPoolToken())._address,
145
- account: this.getInteractions().getAccountAddress(),
146
- data: permitData ? permitData.permitData : '0x',
147
- deadline: permitData ? permitData.deadline : general_1.DEADLINE,
148
- };
149
- });
150
- }
151
- mintETH(amount, permitData, onTransactionHash) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- const { router, ptAddress, account, deadline } = yield this.getSendData(permitData);
154
- return this.send(router.methods.mintETH(ptAddress, account, deadline), onTransactionHash, amount);
155
- });
156
- }
157
- mint(amount, permitData, onTransactionHash) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- const { router, ptAddress, account, deadline } = yield this.getSendData(permitData);
160
- return this.send(router.methods.mint(ptAddress, amount, account, deadline), onTransactionHash);
161
- });
162
- }
163
- ;
164
- deposit(amount, permitData, onTransactionHash) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- if (yield this.isWETH()) {
167
- return this.mintETH(amount, permitData, onTransactionHash);
168
- }
169
- else {
170
- return this.mint(amount, permitData, onTransactionHash);
171
- }
172
- });
173
- }
174
- withdraw(tokens, permitData, onTransactionHash) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- const { router, ptAddress, account, data, deadline } = yield this.getSendData(permitData);
177
- if (yield this.isWETH()) {
178
- return this.send(router.methods.redeemETH(ptAddress, tokens, account, deadline, data), onTransactionHash);
179
- }
180
- else {
181
- return this.send(router.methods.redeem(ptAddress, tokens, account, deadline, data), onTransactionHash);
182
- }
183
- });
184
- }
185
- }
186
- exports.default = OnchainInteractionsPoolToken;
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 ethers_1 = require("ethers");
13
+ const weths_1 = require("../../config/contracts/weths");
14
+ const MAX_UINT256 = ethers_1.ethers.constants.MaxUint256;
15
+ const EIP712DOMAIN = [
16
+ { name: "name", type: "string" },
17
+ { name: "version", type: "string" },
18
+ { name: "chainId", type: "uint256" },
19
+ { name: "verifyingContract", type: "address" },
20
+ ];
21
+ const PERMIT = [
22
+ { name: "owner", type: "address" },
23
+ { name: "spender", type: "address" },
24
+ { name: "value", type: "uint256" },
25
+ { name: "nonce", type: "uint256" },
26
+ { name: "deadline", type: "uint256" },
27
+ ];
28
+ const TYPES = {
29
+ EIP712Domain: EIP712DOMAIN,
30
+ Permit: PERMIT,
31
+ BorrowPermit: PERMIT,
32
+ };
33
+ class OnchainInteractionsPoolToken {
34
+ constructor() {
35
+ this.getPoolToken = () => this.poolToken;
36
+ // Shortcuts
37
+ this.getAccountAddress = () => this.getInteractions().getAccountAddress();
38
+ this.getOnchain = () => this.getInteractions().getOnchain();
39
+ this.getPermitHelper = () => this.getOnchain().getPermitHelper();
40
+ }
41
+ send(method, onTransactionHash, value) {
42
+ return this.getInteractions().send(method, onTransactionHash, value);
43
+ }
44
+ //send = this.getInteractions().send;
45
+ getOwnerSpender() {
46
+ return {
47
+ owner: this.getAccountAddress(),
48
+ spender: this.getPoolTokenRouter()._address,
49
+ };
50
+ }
51
+ isWETH() {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const token = yield this.poolToken.getToken();
54
+ return token._address.toLowerCase() == weths_1.WETH[this.getOnchain().network].toLowerCase();
55
+ });
56
+ }
57
+ getPoolTokenAllowance() {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const poolToken = yield this.poolToken.getPoolToken();
60
+ const { owner, spender } = this.getOwnerSpender();
61
+ const allowance = yield poolToken.methods.allowance(owner, spender).call();
62
+ return ethers_1.BigNumber.from(allowance);
63
+ });
64
+ }
65
+ getUnderlyingAllowance() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ if (yield this.isWETH())
68
+ return MAX_UINT256;
69
+ const token = yield this.poolToken.getToken();
70
+ const { owner, spender } = this.getOwnerSpender();
71
+ const allowance = yield token.methods.allowance(owner, spender).call();
72
+ return ethers_1.BigNumber.from(allowance);
73
+ });
74
+ }
75
+ approvePoolToken(amount, onTransactionHash) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const { spender } = this.getOwnerSpender();
78
+ const poolToken = yield this.poolToken.getPoolToken();
79
+ return this.send(poolToken.methods.approve(spender, amount), onTransactionHash);
80
+ });
81
+ }
82
+ approveUnderlying(amount, onTransactionHash) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ const { spender } = this.getOwnerSpender();
85
+ const token = yield this.poolToken.getToken();
86
+ return this.send(token.methods.approve(spender, amount), onTransactionHash);
87
+ });
88
+ }
89
+ getSendData(permits) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ return {
92
+ router: this.getPoolTokenRouter(),
93
+ ptAddress: (yield this.poolToken.getPoolToken())._address,
94
+ account: this.getInteractions().getAccountAddress(),
95
+ permitsData: this.getPermitHelper().encodePermits(permits),
96
+ };
97
+ });
98
+ }
99
+ mintETH(amount, onTransactionHash) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ const { router, ptAddress, account } = yield this.getSendData([]);
102
+ return this.send(router.methods.mintETH(ptAddress, account), onTransactionHash, amount);
103
+ });
104
+ }
105
+ mint(amount, permits, onTransactionHash) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ const { router, ptAddress, account, permitsData } = yield this.getSendData(permits);
108
+ return this.send(router.methods.mint(ptAddress, amount, account, permitsData), onTransactionHash);
109
+ });
110
+ }
111
+ ;
112
+ deposit(amount, permits, onTransactionHash) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ if (yield this.isWETH()) {
115
+ return this.mintETH(amount, onTransactionHash);
116
+ }
117
+ else {
118
+ return this.mint(amount, permits, onTransactionHash);
119
+ }
120
+ });
121
+ }
122
+ withdraw(tokens, permits, onTransactionHash) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const { router, ptAddress, account, permitsData } = yield this.getSendData(permits);
125
+ if (yield this.isWETH()) {
126
+ return this.send(router.methods.redeemETH(ptAddress, tokens, account, permitsData), onTransactionHash);
127
+ }
128
+ else {
129
+ return this.send(router.methods.redeem(ptAddress, tokens, account, permitsData), onTransactionHash);
130
+ }
131
+ });
132
+ }
133
+ }
134
+ exports.default = OnchainInteractionsPoolToken;
@@ -0,0 +1,31 @@
1
+ import { ethers, BigNumber } from "ethers";
2
+ import { ApprovalType, Contract, PermitData } from "../types";
3
+ import Interactions from './index';
4
+ import * as onchain from '../index';
5
+ export default abstract class PoolToken {
6
+ interactions: Interactions;
7
+ poolToken: onchain.PoolToken;
8
+ getAccountAddress: () => string;
9
+ abstract getRouterContract(): Contract;
10
+ getOnchain: () => onchain.default;
11
+ send(method: any, onTransactionHash: Function, value?: BigNumber): Promise<any>;
12
+ getOwnerSpender(): {
13
+ owner: string;
14
+ spender: any;
15
+ };
16
+ isWETH(): Promise<boolean>;
17
+ getAllowance(approvalType: ApprovalType): Promise<ethers.BigNumber>;
18
+ approve(approvalType: ApprovalType, amount: BigNumber, onTransactionHash: Function): Promise<any>;
19
+ getPermitData(approvalType: ApprovalType, amount: BigNumber, deadlineArg: BigNumber | null, callBack: (permitData: PermitData | null) => void): Promise<void>;
20
+ protected getSendData(permitData: PermitData | null): Promise<{
21
+ router: any;
22
+ ptAddress: any;
23
+ account: string;
24
+ data: string;
25
+ deadline: ethers.BigNumber;
26
+ }>;
27
+ protected mintETH(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
28
+ protected mint(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
29
+ deposit(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
30
+ withdraw(tokens: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
31
+ }
@@ -0,0 +1,181 @@
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 ethers_1 = require("ethers");
13
+ const types_1 = require("../types");
14
+ const types_2 = require("../../config/types");
15
+ const weths_1 = require("../../config/contracts/weths");
16
+ const general_1 = require("../../config/general");
17
+ const MAX_UINT256 = ethers_1.ethers.constants.MaxUint256;
18
+ const EIP712DOMAIN = [
19
+ { name: "name", type: "string" },
20
+ { name: "version", type: "string" },
21
+ { name: "chainId", type: "uint256" },
22
+ { name: "verifyingContract", type: "address" },
23
+ ];
24
+ const PERMIT = [
25
+ { name: "owner", type: "address" },
26
+ { name: "spender", type: "address" },
27
+ { name: "value", type: "uint256" },
28
+ { name: "nonce", type: "uint256" },
29
+ { name: "deadline", type: "uint256" },
30
+ ];
31
+ const TYPES = {
32
+ EIP712Domain: EIP712DOMAIN,
33
+ Permit: PERMIT,
34
+ BorrowPermit: PERMIT,
35
+ };
36
+ class PoolToken {
37
+ constructor() {
38
+ // Shortcuts
39
+ this.getAccountAddress = () => this.interactions.account;
40
+ this.getOnchain = () => this.interactions.onchain;
41
+ }
42
+ send(method, onTransactionHash, value) {
43
+ return this.interactions.send(method, onTransactionHash, value);
44
+ }
45
+ //send = this.getInteractions().send;
46
+ getOwnerSpender() {
47
+ return {
48
+ owner: this.getAccountAddress(),
49
+ spender: this.getRouterContract()._address,
50
+ };
51
+ }
52
+ isWETH() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const token = yield this.onchainPoolToken.getToken();
55
+ return token._address.toLowerCase() == weths_1.WETH[this.getOnchain().network].toLowerCase();
56
+ });
57
+ }
58
+ getAllowance(approvalType) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const poolToken = yield this.onchainPoolToken.getPoolToken();
61
+ const token = yield this.onchainPoolToken.getToken();
62
+ if ((yield this.isWETH()) && approvalType == types_1.ApprovalType.UNDERLYING)
63
+ return MAX_UINT256;
64
+ const { owner, spender } = this.getOwnerSpender();
65
+ const allowance = (approvalType == types_1.ApprovalType.POOL_TOKEN) ? yield poolToken.methods.allowance(owner, spender).call() :
66
+ (approvalType == types_1.ApprovalType.UNDERLYING) ? yield token.methods.allowance(owner, spender).call() :
67
+ (approvalType == types_1.ApprovalType.BORROW) ? yield poolToken.methods.borrowAllowance(owner, spender).call() : 0;
68
+ return ethers_1.BigNumber.from(allowance);
69
+ });
70
+ }
71
+ approve(approvalType, amount, onTransactionHash) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const { spender } = this.getOwnerSpender();
74
+ const poolToken = yield this.onchainPoolToken.getPoolToken();
75
+ const token = yield this.onchainPoolToken.getToken();
76
+ let method;
77
+ if (approvalType == types_1.ApprovalType.POOL_TOKEN)
78
+ method = poolToken.methods.approve(spender, amount);
79
+ if (approvalType == types_1.ApprovalType.UNDERLYING)
80
+ method = token.methods.approve(spender, amount);
81
+ if (approvalType == types_1.ApprovalType.BORROW)
82
+ method = poolToken.methods.borrowApprove(spender, amount);
83
+ return this.send(method, onTransactionHash);
84
+ });
85
+ }
86
+ getPermitData(approvalType, amount, deadlineArg, callBack) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ if (approvalType === types_1.ApprovalType.UNDERLYING && this.onchainPoolToken.poolTokenType != types_2.PoolTokenType.Collateral)
89
+ return callBack(null);
90
+ const { owner, spender } = this.getOwnerSpender();
91
+ const poolToken = yield this.onchainPoolToken.getPoolToken();
92
+ const token = yield this.onchainPoolToken.getToken();
93
+ const contract = approvalType == types_1.ApprovalType.UNDERLYING ? token : poolToken;
94
+ const nonce = yield contract.methods.nonces(owner).call();
95
+ const name = yield contract.methods.name().call();
96
+ const deadline = deadlineArg ? deadlineArg : general_1.DEADLINE;
97
+ const data = JSON.stringify({
98
+ types: TYPES,
99
+ domain: {
100
+ name: name,
101
+ version: "1",
102
+ chainId: this.getOnchain().chainId,
103
+ verifyingContract: contract._address,
104
+ },
105
+ primaryType: approvalType == types_1.ApprovalType.BORROW ? "BorrowPermit" : "Permit",
106
+ message: {
107
+ owner: owner,
108
+ spender: spender,
109
+ value: amount.toString(),
110
+ nonce: ethers_1.BigNumber.from(nonce).toHexString(),
111
+ deadline: deadline.toNumber(),
112
+ }
113
+ });
114
+ this.getOnchain().web3.currentProvider.send({
115
+ method: "eth_signTypedData_v4",
116
+ params: [owner, data],
117
+ from: owner
118
+ }, (err, data) => {
119
+ if (err) {
120
+ console.error(err);
121
+ return callBack(null);
122
+ }
123
+ const signature = data.result.substring(2);
124
+ const r = "0x" + signature.substring(0, 64);
125
+ const s = "0x" + signature.substring(64, 128);
126
+ let v = parseInt(signature.substring(128, 130), 16);
127
+ if (v == 0 || v == 1)
128
+ v = v + 27;
129
+ //console.log(v, r, s);
130
+ const permitData = ethers_1.ethers.utils.defaultAbiCoder.encode(['bool', 'uint8', 'bytes32', 'bytes32'], [false, v, r, s]);
131
+ callBack({ permitData, deadline, amount });
132
+ });
133
+ });
134
+ }
135
+ getSendData(permitData) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ return {
138
+ router: this.getRouterContract(),
139
+ ptAddress: (yield this.onchainPoolToken.getPoolToken())._address,
140
+ account: this.interactions.account,
141
+ data: permitData ? permitData.permitData : '0x',
142
+ deadline: permitData ? permitData.deadline : general_1.DEADLINE,
143
+ };
144
+ });
145
+ }
146
+ mintETH(amount, permitData, onTransactionHash) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ const { router, ptAddress, account, deadline } = yield this.getSendData(permitData);
149
+ return this.send(router.methods.mintETH(ptAddress, account, deadline), onTransactionHash, amount);
150
+ });
151
+ }
152
+ mint(amount, permitData, onTransactionHash) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ const { router, ptAddress, account, deadline } = yield this.getSendData(permitData);
155
+ return this.send(router.methods.mint(ptAddress, amount, account, deadline), onTransactionHash);
156
+ });
157
+ }
158
+ ;
159
+ deposit(amount, permitData, onTransactionHash) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ if (yield this.isWETH()) {
162
+ return this.mintETH(amount, permitData, onTransactionHash);
163
+ }
164
+ else {
165
+ return this.mint(amount, permitData, onTransactionHash);
166
+ }
167
+ });
168
+ }
169
+ withdraw(tokens, permitData, onTransactionHash) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ const { router, ptAddress, account, data, deadline } = yield this.getSendData(permitData);
172
+ if (yield this.isWETH()) {
173
+ return this.send(router.methods.redeemETH(ptAddress, tokens, account, deadline, data), onTransactionHash);
174
+ }
175
+ else {
176
+ return this.send(router.methods.redeem(ptAddress, tokens, account, deadline, data), onTransactionHash);
177
+ }
178
+ });
179
+ }
180
+ }
181
+ exports.default = PoolToken;
@@ -0,0 +1,17 @@
1
+ import PoolToken from "./poolToken";
2
+ import { Contract } from "ethers";
3
+ import { Address } from '../config/types';
4
+ import OnChain from './index';
5
+ export default class LendingVault extends PoolToken {
6
+ router: OnChain;
7
+ vaultAddress: Address;
8
+ lendingVaultCache: {};
9
+ constructor(router: OnChain, vaultAddress: Address);
10
+ cleanCache(): void;
11
+ getContractHelper: () => import("./contractsHelper").default;
12
+ getPoolTokenAddress(): Promise<Address>;
13
+ getOffchainPoolToken(): Promise<import("../offchain").OffchainLendingVault>;
14
+ initializePoolToken(): Promise<Contract>;
15
+ initializeToken(): Promise<Contract>;
16
+ getAvailableLiquidity(): Promise<number>;
17
+ }
@@ -0,0 +1,56 @@
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 poolToken_1 = __importDefault(require("./poolToken"));
16
+ class LendingVault extends poolToken_1.default {
17
+ constructor(router, vaultAddress) {
18
+ super();
19
+ this.lendingVaultCache = {};
20
+ this.getContractHelper = () => this.router.contractsHelper;
21
+ this.router = router;
22
+ this.vaultAddress = vaultAddress;
23
+ }
24
+ cleanCache() {
25
+ this.cache = {};
26
+ this.lendingVaultCache = {};
27
+ }
28
+ getPoolTokenAddress() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return this.vaultAddress;
31
+ });
32
+ }
33
+ getOffchainPoolToken() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ return yield this.onchain.offchain.getLendingVault(this.vaultAddress);
36
+ });
37
+ }
38
+ initializePoolToken() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return this.getContractHelper().newLendingVault(yield this.getPoolTokenAddress());
41
+ });
42
+ }
43
+ initializeToken() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const poolToken = yield this.getPoolToken();
46
+ return this.getContractHelper().newERC20(yield poolToken.methods.underlying().call());
47
+ });
48
+ }
49
+ // Available Liquidity
50
+ getAvailableLiquidity() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return 0;
53
+ });
54
+ }
55
+ }
56
+ exports.default = LendingVault;