@gearbox-protocol/sdk 3.0.0-next.6 → 3.0.0-next.60

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 (465) hide show
  1. package/contracts/IAirdropDistributor.sol +55 -0
  2. package/contracts/IDegenDistributor.sol +28 -0
  3. package/contracts/IOffchainOracle.sol +17 -0
  4. package/contracts/IWETHGateway.sol +33 -0
  5. package/contracts/IwstETHGateway.sol +24 -0
  6. package/contracts/index.sol +26 -3
  7. package/lib/apy/curveAPY.js +2 -1
  8. package/lib/apy/index.d.ts +2 -2
  9. package/lib/apy/yearnAPY.js +1 -1
  10. package/lib/config.d.ts +0 -1
  11. package/lib/config.js +1 -2
  12. package/lib/core/assets.d.ts +4 -4
  13. package/lib/core/assets.js +28 -17
  14. package/lib/core/creditAccount.d.ts +32 -8
  15. package/lib/core/creditAccount.js +101 -44
  16. package/lib/core/creditAccount.spec.js +693 -10
  17. package/lib/core/creditManager.d.ts +24 -9
  18. package/lib/core/creditManager.js +93 -31
  19. package/lib/core/events.js +14 -14
  20. package/lib/core/gauge.d.ts +26 -0
  21. package/lib/core/gauge.js +63 -0
  22. package/lib/core/gaugeMath.d.ts +40 -0
  23. package/lib/core/gaugeMath.js +108 -0
  24. package/lib/core/gaugeMath.spec.d.ts +1 -0
  25. package/lib/core/gaugeMath.spec.js +388 -0
  26. package/lib/core/{pool/data.d.ts → pool.d.ts} +18 -10
  27. package/lib/core/{pool/data.js → pool.js} +69 -24
  28. package/lib/core/rewardClaimer.d.ts +2 -2
  29. package/lib/core/strategy.js +2 -2
  30. package/lib/core/trade.d.ts +14 -32
  31. package/lib/core/trade.js +33 -82
  32. package/lib/core/transactions.d.ts +65 -3
  33. package/lib/core/transactions.js +162 -105
  34. package/lib/index.d.ts +3 -0
  35. package/lib/index.js +3 -0
  36. package/lib/parsers/abstractParser.js +1 -2
  37. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +10 -8
  38. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +9 -6
  39. package/lib/parsers/convexBoosterAdapterParser.js +6 -6
  40. package/lib/parsers/convexBoosterAdapterParser.spec.js +4 -4
  41. package/lib/parsers/creditFacadeParser.d.ts +2 -1
  42. package/lib/parsers/creditFacadeParser.js +25 -5
  43. package/lib/parsers/creditFacadeParser.spec.js +2 -3
  44. package/lib/parsers/curveAdapterParser.js +10 -11
  45. package/lib/parsers/curveAdapterParser.spec.js +6 -2
  46. package/lib/parsers/lidoAdapterParser.js +3 -2
  47. package/lib/parsers/lidoAdapterParser.spec.js +2 -2
  48. package/lib/parsers/txParser.d.ts +4 -4
  49. package/lib/parsers/txParser.js +9 -3
  50. package/lib/parsers/uniV2AdapterParser.js +5 -4
  51. package/lib/parsers/uniV2AdapterParser.spec.js +3 -2
  52. package/lib/parsers/uniV3AdapterParser.js +9 -7
  53. package/lib/parsers/uniV3AdapterParser.spec.js +3 -2
  54. package/lib/parsers/wstETHAdapterParser.js +6 -4
  55. package/lib/parsers/wstETHAdapterParser.spec.js +4 -4
  56. package/lib/parsers/yearnAdapterParser.spec.js +4 -4
  57. package/lib/parsers/yearnV2AdapterParser.js +13 -3
  58. package/lib/pathfinder/core.d.ts +11 -9
  59. package/lib/pathfinder/pathOptions.d.ts +2 -1
  60. package/lib/pathfinder/pathOptions.js +20 -1
  61. package/lib/pathfinder/pathOptions.spec.js +2 -2
  62. package/lib/pathfinder/pathfinder.d.ts +37 -10
  63. package/lib/pathfinder/pathfinder.js +46 -33
  64. package/lib/pathfinder/pathfinder.spec.js +7 -3
  65. package/lib/payload/creditAccount.d.ts +3 -4
  66. package/lib/payload/gauge.d.ts +12 -0
  67. package/lib/payload/pool.d.ts +6 -1
  68. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +171 -0
  69. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +290 -0
  70. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +124 -0
  71. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +73 -0
  72. package/lib/types/IAirdropDistributor.sol/index.d.ts +2 -0
  73. package/lib/types/IBalancerV2Vault.sol/IBalancerV2Vault.d.ts +308 -0
  74. package/lib/types/IBalancerV2Vault.sol/IBalancerV2VaultGetters.d.ts +112 -0
  75. package/lib/types/IBalancerV2Vault.sol/index.d.ts +2 -0
  76. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.d.ts +466 -0
  77. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.d.ts +43 -0
  78. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.d.ts} +6 -18
  79. package/lib/types/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  80. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.d.ts +216 -0
  81. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.d.ts +27 -0
  82. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  83. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  84. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  85. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  86. package/lib/types/IConvexToken.d.ts +9 -1
  87. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +46 -30
  88. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +40 -21
  89. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  90. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  91. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +716 -0
  92. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js +2 -0
  93. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +275 -0
  94. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js +2 -0
  95. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  96. package/lib/types/ICreditConfiguratorV3.sol/index.js +2 -0
  97. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  98. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +199 -94
  99. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +29 -33
  100. package/lib/types/ICreditFacadeV3Multicall.d.ts +66 -51
  101. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +360 -98
  102. package/lib/types/ICurveV1Adapter.d.ts +41 -105
  103. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +41 -105
  104. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +41 -105
  105. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +41 -105
  106. package/lib/types/IDataCompressorV2_10.d.ts +44 -36
  107. package/lib/types/IDataCompressorV3_00.d.ts +141 -37
  108. package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +96 -0
  109. package/lib/types/IDegenDistributor.sol/IDegenDistributor.js +2 -0
  110. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +53 -0
  111. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.js +2 -0
  112. package/lib/types/IDegenDistributor.sol/index.d.ts +2 -0
  113. package/lib/types/IDegenDistributor.sol/index.js +2 -0
  114. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.d.ts +339 -0
  115. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.js +2 -0
  116. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.d.ts +61 -0
  117. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.js +2 -0
  118. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.d.ts +27 -0
  119. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.js +2 -0
  120. package/lib/types/IDegenNFTV2.sol/index.d.ts +3 -0
  121. package/lib/types/IDegenNFTV2.sol/index.js +2 -0
  122. package/lib/types/IERC165.d.ts +42 -0
  123. package/lib/types/IERC165.js +2 -0
  124. package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
  125. package/lib/types/IERC20Permit.js +2 -0
  126. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  127. package/lib/types/IERC20ZapperDeposits.js +2 -0
  128. package/lib/types/IERC4626Adapter.d.ts +238 -0
  129. package/lib/types/IERC4626Adapter.js +2 -0
  130. package/lib/types/IERC721.d.ts +220 -0
  131. package/lib/types/IERC721.js +2 -0
  132. package/lib/types/IERC721Metadata.d.ts +244 -0
  133. package/lib/types/IERC721Metadata.js +2 -0
  134. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  135. package/lib/types/IETHZapperDeposits.js +2 -0
  136. package/lib/types/IGasPricer.d.ts +44 -0
  137. package/lib/types/IGasPricer.js +2 -0
  138. package/lib/types/IGaugeV3.sol/IGaugeV3.d.ts +366 -0
  139. package/lib/types/IGaugeV3.sol/IGaugeV3.js +2 -0
  140. package/lib/types/IGaugeV3.sol/IGaugeV3Events.d.ts +114 -0
  141. package/lib/types/IGaugeV3.sol/IGaugeV3Events.js +2 -0
  142. package/lib/types/IGaugeV3.sol/index.d.ts +2 -0
  143. package/lib/types/IGaugeV3.sol/index.js +2 -0
  144. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  145. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  146. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  147. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  148. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  149. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  150. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +13 -48
  151. package/lib/types/ILidoV1Adapter.js +2 -0
  152. package/lib/types/ILinearInterestRateModelV3.d.ts +120 -0
  153. package/lib/types/ILinearInterestRateModelV3.js +2 -0
  154. package/lib/types/IOffchainOracle.d.ts +58 -0
  155. package/lib/types/IOffchainOracle.js +2 -0
  156. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.d.ts +473 -0
  157. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.js +2 -0
  158. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.d.ts +113 -0
  159. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.js +2 -0
  160. package/lib/types/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  161. package/lib/types/IPoolQuotaKeeperV3.sol/index.js +2 -0
  162. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -11
  163. package/lib/types/IPoolV3.sol/index.d.ts +0 -1
  164. package/lib/types/IPriceFeed.sol/IPriceFeed.d.ts +109 -0
  165. package/lib/types/IPriceFeed.sol/IPriceFeed.js +2 -0
  166. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.d.ts +133 -0
  167. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.js +2 -0
  168. package/lib/types/IPriceFeed.sol/index.d.ts +2 -0
  169. package/lib/types/IPriceFeed.sol/index.js +2 -0
  170. package/lib/types/IPriceOracle.sol/IPriceOracleV2.d.ts +166 -0
  171. package/lib/types/IPriceOracle.sol/IPriceOracleV2.js +2 -0
  172. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.d.ts +43 -0
  173. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.js +2 -0
  174. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts → IPriceOracle.sol/IPriceOracleV2Exceptions.d.ts} +3 -3
  175. package/lib/types/IPriceOracle.sol/IPriceOracleV2Exceptions.js +2 -0
  176. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.d.ts +182 -0
  177. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.js +2 -0
  178. package/lib/types/IPriceOracle.sol/index.d.ts +4 -0
  179. package/lib/types/IPriceOracle.sol/index.js +2 -0
  180. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.d.ts +272 -0
  181. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.js +2 -0
  182. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.d.ts +79 -0
  183. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.js +2 -0
  184. package/lib/types/IPriceOracleV3.sol/index.d.ts +2 -0
  185. package/lib/types/IPriceOracleV3.sol/index.js +2 -0
  186. package/lib/types/IRouter.d.ts +47 -34
  187. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +10 -9
  188. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +27 -21
  189. package/lib/types/IVotingContractV3.d.ts +74 -0
  190. package/lib/types/IVotingContractV3.js +2 -0
  191. package/lib/types/IWETHGateway.d.ts +90 -0
  192. package/lib/types/IWETHGateway.js +2 -0
  193. package/lib/types/IYearnV2Adapter.d.ts +22 -22
  194. package/lib/types/IZapper.d.ts +130 -0
  195. package/lib/types/IZapper.js +2 -0
  196. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +70 -0
  197. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +2 -0
  198. package/lib/types/IwstETHGateway.sol/index.d.ts +1 -0
  199. package/lib/types/IwstETHGateway.sol/index.js +2 -0
  200. package/lib/types/IwstETHV1Adapter.d.ts +17 -17
  201. package/lib/types/factories/AddressProvider__factory.d.ts +1 -1
  202. package/lib/types/factories/AddressProvider__factory.js +1 -1
  203. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +1 -1
  204. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +1 -1
  205. package/lib/types/factories/Claimable__factory.d.ts +1 -1
  206. package/lib/types/factories/Claimable__factory.js +1 -1
  207. package/lib/types/factories/Errors__factory.d.ts +1 -1
  208. package/lib/types/factories/Errors__factory.js +1 -1
  209. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.d.ts +158 -0
  210. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.js +215 -0
  211. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.d.ts +252 -0
  212. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.js +341 -0
  213. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +63 -0
  214. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +88 -0
  215. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +119 -0
  216. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +161 -0
  217. package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +2 -0
  218. package/lib/types/factories/IAirdropDistributor.sol/index.js +10 -0
  219. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.d.ts +78 -0
  220. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.js +111 -0
  221. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.d.ts +360 -0
  222. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.js +475 -0
  223. package/lib/types/factories/IBalancerV2Vault.sol/index.d.ts +2 -0
  224. package/lib/types/factories/IBalancerV2Vault.sol/index.js +10 -0
  225. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.d.ts +23 -0
  226. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.js +38 -0
  227. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.d.ts +12 -0
  228. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.js} +4 -4
  229. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.d.ts +514 -0
  230. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.js +675 -0
  231. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  232. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.js +12 -0
  233. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.d.ts +196 -0
  234. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.js +267 -0
  235. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.d.ts +16 -0
  236. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.js} +6 -8
  237. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  238. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.js +10 -0
  239. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  240. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  241. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.d.ts +134 -0
  242. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.js +186 -0
  243. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  244. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  245. package/lib/types/factories/IConvexToken__factory.d.ts +10 -0
  246. package/lib/types/factories/IConvexToken__factory.js +13 -0
  247. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +38 -6
  248. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +48 -6
  249. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  250. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  251. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +26 -3
  252. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +31 -2
  253. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  254. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  255. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +273 -0
  256. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +357 -0
  257. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +605 -0
  258. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +785 -0
  259. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  260. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +10 -0
  261. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -4
  262. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -5
  263. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +14 -24
  264. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +15 -27
  265. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +146 -72
  266. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +183 -85
  267. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +57 -29
  268. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +71 -36
  269. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +339 -147
  270. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +427 -180
  271. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +13 -71
  272. package/lib/types/factories/ICurveV1Adapter__factory.js +14 -91
  273. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +13 -71
  274. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +14 -91
  275. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +13 -71
  276. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +14 -91
  277. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +13 -71
  278. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +14 -91
  279. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +110 -54
  280. package/lib/types/factories/IDataCompressorV2_10__factory.js +138 -68
  281. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +379 -79
  282. package/lib/types/factories/IDataCompressorV3_00__factory.js +481 -100
  283. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +38 -0
  284. package/lib/types/factories/{AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.js → IDegenDistributor.sol/IDegenDistributorEvents__factory.js} +13 -25
  285. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +84 -0
  286. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +117 -0
  287. package/lib/types/factories/IDegenDistributor.sol/index.d.ts +2 -0
  288. package/lib/types/factories/IDegenDistributor.sol/index.js +10 -0
  289. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.d.ts +38 -0
  290. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.js +58 -0
  291. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.d.ts +24 -0
  292. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.js +39 -0
  293. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts → IDegenNFTV2.sol/IDegenNFTV2__factory.d.ts} +190 -180
  294. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js → IDegenNFTV2.sol/IDegenNFTV2__factory.js} +212 -195
  295. package/lib/types/factories/IDegenNFTV2.sol/index.d.ts +3 -0
  296. package/lib/types/factories/IDegenNFTV2.sol/index.js +12 -0
  297. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  298. package/lib/types/factories/IERC165__factory.js +38 -0
  299. package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
  300. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  301. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  302. package/lib/types/factories/IERC4626Adapter__factory.d.ts +220 -0
  303. package/lib/types/factories/IERC4626Adapter__factory.js +297 -0
  304. package/lib/types/factories/IERC721Metadata__factory.d.ts +262 -0
  305. package/lib/types/factories/IERC721Metadata__factory.js +349 -0
  306. package/lib/types/factories/IERC721__factory.d.ts +228 -0
  307. package/lib/types/factories/IERC721__factory.js +304 -0
  308. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  309. package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
  310. package/lib/types/factories/IGasPricer__factory.d.ts +22 -0
  311. package/lib/types/factories/IGasPricer__factory.js +38 -0
  312. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.d.ts +118 -0
  313. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.js +157 -0
  314. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.d.ts +342 -0
  315. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.js +448 -0
  316. package/lib/types/factories/IGaugeV3.sol/index.d.ts +2 -0
  317. package/lib/types/factories/IGaugeV3.sol/index.js +10 -0
  318. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts → IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts} +33 -63
  319. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js → IGearStakingV3.sol/IGearStakingV3Events__factory.js} +34 -70
  320. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  321. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  322. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  323. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  324. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +7 -37
  325. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +8 -46
  326. package/lib/types/factories/ILinearInterestRateModelV3__factory.d.ts +98 -0
  327. package/lib/types/factories/ILinearInterestRateModelV3__factory.js +136 -0
  328. package/lib/types/factories/IOffchainOracle__factory.d.ts +48 -0
  329. package/lib/types/factories/IOffchainOracle__factory.js +72 -0
  330. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.d.ts +103 -0
  331. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.js +140 -0
  332. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.d.ts +441 -0
  333. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.js +580 -0
  334. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  335. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.js +10 -0
  336. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +62 -14
  337. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +79 -17
  338. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -1
  339. package/lib/types/factories/IPoolV3.sol/index.js +1 -3
  340. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.d.ts → IPriceFeed.sol/IPriceFeed__factory.d.ts} +39 -35
  341. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.js → IPriceFeed.sol/IPriceFeed__factory.js} +40 -35
  342. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.d.ts +104 -0
  343. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.js +143 -0
  344. package/lib/types/factories/IPriceFeed.sol/index.d.ts +2 -0
  345. package/lib/types/factories/IPriceFeed.sol/index.js +10 -0
  346. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.d.ts +23 -0
  347. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.js +38 -0
  348. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.d.ts +20 -0
  349. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +34 -0
  350. package/lib/types/factories/{IAToken__factory.d.ts → IPriceOracle.sol/IPriceOracleV2Ext__factory.d.ts} +98 -99
  351. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +267 -0
  352. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2__factory.d.ts +183 -0
  353. package/lib/types/factories/{IAToken__factory.js → IPriceOracle.sol/IPriceOracleV2__factory.js} +94 -112
  354. package/lib/types/factories/IPriceOracle.sol/index.d.ts +4 -0
  355. package/lib/types/factories/IPriceOracle.sol/index.js +14 -0
  356. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.d.ts +78 -0
  357. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.js +106 -0
  358. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.d.ts +326 -0
  359. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.js +433 -0
  360. package/lib/types/factories/IPriceOracleV3.sol/index.d.ts +2 -0
  361. package/lib/types/factories/IPriceOracleV3.sol/index.js +10 -0
  362. package/lib/types/factories/IRouter__factory.d.ts +74 -5
  363. package/lib/types/factories/IRouter__factory.js +96 -6
  364. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +5 -1
  365. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +6 -1
  366. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +12 -4
  367. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +14 -4
  368. package/lib/types/factories/IVotingContractV3__factory.d.ts +44 -0
  369. package/lib/types/factories/IVotingContractV3__factory.js +65 -0
  370. package/lib/types/factories/IWETHGateway__factory.d.ts +58 -0
  371. package/lib/types/factories/IWETHGateway__factory.js +83 -0
  372. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +21 -13
  373. package/lib/types/factories/IYearnV2Adapter__factory.js +27 -15
  374. package/lib/types/factories/{WERC20ZapperBase__factory.d.ts → IZapper__factory.d.ts} +57 -61
  375. package/lib/types/factories/{WERC20ZapperBase__factory.js → IZapper__factory.js} +65 -71
  376. package/lib/types/factories/{ZapperBase__factory.d.ts → IwstETHGateway.sol/IwstETHGateWay__factory.d.ts} +22 -34
  377. package/lib/types/factories/{ZapperBase__factory.js → IwstETHGateway.sol/IwstETHGateWay__factory.js} +22 -39
  378. package/lib/types/factories/IwstETHGateway.sol/index.d.ts +1 -0
  379. package/lib/types/factories/IwstETHGateway.sol/index.js +8 -0
  380. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +12 -4
  381. package/lib/types/factories/IwstETHV1Adapter__factory.js +16 -4
  382. package/lib/types/factories/SafeERC20__factory.d.ts +1 -1
  383. package/lib/types/factories/SafeERC20__factory.js +1 -1
  384. package/lib/types/factories/index.d.ts +32 -13
  385. package/lib/types/factories/index.js +50 -24
  386. package/lib/types/index.d.ts +134 -44
  387. package/lib/types/index.js +103 -36
  388. package/lib/utils/formatter.d.ts +0 -3
  389. package/lib/utils/formatter.js +1 -67
  390. package/lib/utils/math.d.ts +2 -0
  391. package/lib/utils/math.js +2 -0
  392. package/lib/utils/types.d.ts +1 -0
  393. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  394. package/lib/watchers/creditAccountWatcher.js +19 -13
  395. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  396. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  397. package/lib/watchers/creditManagerWatcher.js +32 -10
  398. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  399. package/package.json +10 -9
  400. package/contracts/IRouter.sol +0 -100
  401. package/lib/core/pool/index.d.ts +0 -1
  402. package/lib/core/pool/index.js +0 -17
  403. package/lib/types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.d.ts +0 -60
  404. package/lib/types/AaveV2_WrappedAToken.sol/WrappedAToken.d.ts +0 -332
  405. package/lib/types/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  406. package/lib/types/ERC20.d.ts +0 -198
  407. package/lib/types/IAToken.d.ts +0 -182
  408. package/lib/types/ILendingPool.d.ts +0 -140
  409. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  410. package/lib/types/IPoolV3.sol/IPoolBase.d.ts +0 -102
  411. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  412. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  413. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  414. package/lib/types/WATokenZapper.d.ts +0 -134
  415. package/lib/types/WERC20ZapperBase.d.ts +0 -134
  416. package/lib/types/WETHZapper.d.ts +0 -122
  417. package/lib/types/WstETHZapper.d.ts +0 -134
  418. package/lib/types/ZapperBase.d.ts +0 -70
  419. package/lib/types/draft-IERC20Permit.sol/index.d.ts +0 -1
  420. package/lib/types/factories/AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.d.ts +0 -48
  421. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.d.ts +0 -397
  422. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.js +0 -535
  423. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  424. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.js +0 -10
  425. package/lib/types/factories/ERC20__factory.d.ts +0 -239
  426. package/lib/types/factories/ERC20__factory.js +0 -328
  427. package/lib/types/factories/ILendingPool__factory.d.ts +0 -134
  428. package/lib/types/factories/ILendingPool__factory.js +0 -183
  429. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts +0 -18
  430. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  431. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  432. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  433. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  434. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  435. package/lib/types/factories/WATokenZapper__factory.d.ts +0 -161
  436. package/lib/types/factories/WATokenZapper__factory.js +0 -227
  437. package/lib/types/factories/WETHZapper__factory.d.ts +0 -138
  438. package/lib/types/factories/WETHZapper__factory.js +0 -198
  439. package/lib/types/factories/WstETHZapper__factory.d.ts +0 -161
  440. package/lib/types/factories/WstETHZapper__factory.js +0 -227
  441. package/lib/types/factories/draft-IERC20Permit.sol/index.d.ts +0 -1
  442. package/lib/types/factories/draft-IERC20Permit.sol/index.js +0 -8
  443. /package/lib/{types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.js → payload/gauge.js} +0 -0
  444. /package/lib/types/{AaveV2_WrappedAToken.sol/WrappedAToken.js → IAaveV2_LendingPoolAdapter.js} +0 -0
  445. /package/lib/types/{AaveV2_WrappedAToken.sol/index.js → IAaveV2_WrappedATokenAdapter.js} +0 -0
  446. /package/lib/types/{ERC20.js → IAirdropDistributor.sol/IAirdropDistributor.js} +0 -0
  447. /package/lib/types/{IAToken.js → IAirdropDistributor.sol/IAirdropDistributorEvents.js} +0 -0
  448. /package/lib/types/{ILidoV1Adapter.sol → IAirdropDistributor.sol}/index.js +0 -0
  449. /package/lib/types/{IConvexV1BoosterAdapter.js → IBalancerV2Vault.sol/IBalancerV2Vault.js} +0 -0
  450. /package/lib/types/{ILendingPool.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters.js} +0 -0
  451. /package/lib/types/{IWithdrawalManagerV3.sol → IBalancerV2Vault.sol}/index.js +0 -0
  452. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.js} +0 -0
  453. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.js} +0 -0
  454. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.js} +0 -0
  455. /package/lib/types/{draft-IERC20Permit.sol → IBalancerV2VaultAdapter.sol}/index.js +0 -0
  456. /package/lib/types/{IPoolV3.sol/IPoolBase.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.js} +0 -0
  457. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.js} +0 -0
  458. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js → ICompoundV2_CTokenAdapter.sol/index.js} +0 -0
  459. /package/lib/types/{WATokenZapper.js → IContractsRegister.sol/IContractsRegister.js} +0 -0
  460. /package/lib/types/{WERC20ZapperBase.js → IContractsRegister.sol/IContractsRegisterEvents.js} +0 -0
  461. /package/lib/types/{WETHZapper.js → IContractsRegister.sol/index.js} +0 -0
  462. /package/lib/types/{WstETHZapper.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js} +0 -0
  463. /package/lib/types/{ZapperBase.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js} +0 -0
  464. /package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.js → IConvexV1BoosterAdapter.sol/index.js} +0 -0
  465. /package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.5.0;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+
6
+ struct DistributionData {
7
+ address account;
8
+ uint8 campaignId;
9
+ uint256 amount;
10
+ }
11
+
12
+ struct ClaimedData {
13
+ address account;
14
+ uint256 amount;
15
+ }
16
+
17
+ interface IAirdropDistributorEvents {
18
+ /// @dev Emits when a user claims tokens
19
+ event Claimed(
20
+ address indexed account,
21
+ uint256 amount,
22
+ bool indexed historic
23
+ );
24
+
25
+ /// @dev Emits when the owner replaces the merkle root
26
+ event RootUpdated(bytes32 oldRoot, bytes32 indexed newRoot);
27
+
28
+ /// @dev Emitted from a special function after updating the root to index allocations
29
+ event TokenAllocated(
30
+ address indexed account,
31
+ uint8 indexed campaignId,
32
+ uint256 amount
33
+ );
34
+ }
35
+
36
+ interface IAirdropDistributor is IAirdropDistributorEvents {
37
+ /// @dev Returns the token distributed by this contract.
38
+ function token() external view returns (IERC20);
39
+
40
+ /// @dev Returns the current merkle root containing total claimable balances
41
+ function merkleRoot() external view returns (bytes32);
42
+
43
+ /// @dev Returns the total amount of token claimed by the user
44
+ function claimed(address user) external view returns (uint256);
45
+
46
+ // Claim the given amount of the token to the given address. Reverts if the inputs are invalid.
47
+ /// @dev Claims the given amount of the token for the account. Reverts if the inputs are not a leaf in the tree
48
+ /// or the total claimed amount for the account is more than the leaf amount.
49
+ function claim(
50
+ uint256 index,
51
+ address account,
52
+ uint256 totalAmount,
53
+ bytes32[] calldata merkleProof
54
+ ) external;
55
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.5.0;
3
+
4
+ interface IDegenDistributorEvents {
5
+ /// @dev Emits when a user claims tokens
6
+ event Claimed(address indexed account, uint256 amount);
7
+
8
+ /// @dev Emits when the owner replaces the merkle root
9
+ event RootUpdated(bytes32 oldRoot, bytes32 indexed newRoot);
10
+ }
11
+
12
+ interface IDegenDistributor is IDegenDistributorEvents {
13
+ // Returns the merkle root of the merkle tree containing account balances available to claim.
14
+ function merkleRoot() external view returns (bytes32);
15
+
16
+ /// @dev Returns the total amount of token claimed by the user
17
+ function claimed(address user) external view returns (uint256);
18
+
19
+ // Claim the given amount of the token to the given address. Reverts if the inputs are invalid.
20
+ /// @dev Claims the remaining unclaimed amount of the token for the account. Reverts if the inputs are not a leaf in the tree
21
+ /// or the total claimed amount for the account is more than the leaf amount.
22
+ function claim(
23
+ uint256 index,
24
+ address account,
25
+ uint256 totalAmount,
26
+ bytes32[] calldata merkleProof
27
+ ) external;
28
+ }
@@ -0,0 +1,17 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ // Gearbox Protocol. Generalized leverage for DeFi protocols
3
+ // (c) Gearbox Holdings, 2021
4
+ pragma solidity ^0.8.10;
5
+
6
+ interface IOffchainOracle {
7
+ function getRate(
8
+ address srcToken,
9
+ address dstToken,
10
+ bool useWrappers
11
+ ) external view returns (uint256 weightedRate);
12
+
13
+ function getRateToEth(address srcToken, bool useSrcWrappers)
14
+ external
15
+ view
16
+ returns (uint256 weightedRate);
17
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Gearbox Protocol. Generalized leverage for DeFi protocols
3
+ // (c) Gearbox Holdings, 2022
4
+ pragma solidity ^0.8.10;
5
+
6
+ interface IWETHGateway {
7
+ /// @dev Converts ETH to WETH and add liqudity to the pool
8
+ /// @param pool Address of PoolService contract to add liquidity to. This pool must have WETH as an underlying.
9
+ /// @param onBehalfOf The address that will receive the diesel token.
10
+ /// @param referralCode Code used to log the transaction facilitator, for potential rewards. 0 if non-applicable.
11
+ function addLiquidityETH(
12
+ address pool,
13
+ address onBehalfOf,
14
+ uint16 referralCode
15
+ ) external payable;
16
+
17
+ /// @dev Removes liquidity from the pool and converts WETH to ETH
18
+ /// - burns lp's diesel (LP) tokens
19
+ /// - unwraps WETH to ETH and sends to the LP
20
+ /// @param pool Address of PoolService contract to withdraw liquidity from. This pool must have WETH as an underlying.
21
+ /// @param amount Amount of Diesel tokens to send.
22
+ /// @param to Address to transfer ETH to.
23
+ function removeLiquidityETH(
24
+ address pool,
25
+ uint256 amount,
26
+ address payable to
27
+ ) external;
28
+
29
+ /// @dev Converts WETH to ETH, and sends to the passed address
30
+ /// @param to Address to send ETH to
31
+ /// @param amount Amount of WETH to unwrap
32
+ function unwrapWETH(address to, uint256 amount) external;
33
+ }
@@ -0,0 +1,24 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.10;
3
+
4
+ interface IwstETHGateWay {
5
+ error NonRegisterPoolException();
6
+
7
+ /**
8
+ * @dev Adds stETH liquidity to wstETH pool
9
+ * - transfers the underlying to the pool
10
+ * - mints Diesel (LP) tokens to onBehalfOf
11
+ * @param amount Amount of tokens to be deposited
12
+ * @param onBehalfOf The address that will receive the dToken
13
+ * @param referralCode Code used to register the integrator originating the operation, for potential rewards.
14
+ * 0 if the action is executed directly by the user, without a facilitator.
15
+ */
16
+ function addLiquidity(uint256 amount, address onBehalfOf, uint256 referralCode) external;
17
+
18
+ /// @dev Removes liquidity from pool
19
+ /// - burns LP's Diesel (LP) tokens
20
+ /// - returns the equivalent amount of underlying to 'to'
21
+ /// @param amount Amount of Diesel tokens to burn
22
+ /// @param to Address to transfer the underlying to
23
+ function removeLiquidity(uint256 amount, address to) external returns (uint256 amountGet);
24
+ }
@@ -7,16 +7,32 @@ pragma solidity ^0.8.10;
7
7
  import {IDataCompressorV2_10} from "@gearbox-protocol/periphery-v3/contracts/interfaces/IDataCompressorV2_10.sol";
8
8
  import {IDataCompressorV3_00} from "@gearbox-protocol/periphery-v3/contracts/interfaces/IDataCompressorV3_00.sol";
9
9
  import {IAddressProviderV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IAddressProviderV3.sol";
10
+ import {IContractsRegister} from "@gearbox-protocol/core-v2/contracts/interfaces/IContractsRegister.sol";
10
11
  import {IPoolV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IPoolV3.sol";
12
+ import {ILinearInterestRateModelV3} from "@gearbox-protocol/core-v3/contracts/interfaces/ILinearInterestRateModelV3.sol";
13
+ import {IPoolQuotaKeeperV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IPoolQuotaKeeperV3.sol";
14
+ import {IGaugeV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IGaugeV3.sol";
11
15
  import {ICreditFacadeV3} from "@gearbox-protocol/core-v3/contracts/interfaces/ICreditFacadeV3.sol";
12
16
  import {IPoolService} from "@gearbox-protocol/core-v2/contracts/interfaces/IPoolService.sol";
13
17
  import {ICreditFacadeV2} from "@gearbox-protocol/core-v2/contracts/interfaces/ICreditFacadeV2.sol";
14
18
  import {ICreditConfiguratorV2} from "@gearbox-protocol/core-v2/contracts/interfaces/ICreditConfiguratorV2.sol";
15
- import {WATokenZapper} from "@gearbox-protocol/integrations-v3/contracts/zappers/WATokenZapper.sol";
16
- import {WETHZapper} from "@gearbox-protocol/integrations-v3/contracts/zappers/WETHZapper.sol";
17
- import {WstETHZapper} from "@gearbox-protocol/integrations-v3/contracts/zappers/WstETHZapper.sol";
19
+ import {IERC20ZapperDeposits} from
20
+ "@gearbox-protocol/integrations-v3/contracts/interfaces/zappers/IERC20ZapperDeposits.sol";
21
+ import {IETHZapperDeposits} from "@gearbox-protocol/integrations-v3/contracts/interfaces/zappers/IETHZapperDeposits.sol";
22
+ import {IZapper} from "@gearbox-protocol/integrations-v3/contracts/interfaces/zappers/IZapper.sol";
23
+ import {IDegenNFTV2} from "@gearbox-protocol/core-v2/contracts/interfaces/IDegenNFTV2.sol";
24
+
25
+ import {IGearStakingV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IGearStakingV3.sol";
18
26
 
19
27
  // Adapters
28
+ import {IAaveV2_LendingPoolAdapter} from
29
+ "@gearbox-protocol/integrations-v3/contracts/interfaces/aave/IAaveV2_LendingPoolAdapter.sol";
30
+ import {IAaveV2_WrappedATokenAdapter} from
31
+ "@gearbox-protocol/integrations-v3/contracts/interfaces/aave/IAaveV2_WrappedATokenAdapter.sol";
32
+ import {IBalancerV2VaultAdapter} from
33
+ "@gearbox-protocol/integrations-v3/contracts/interfaces/balancer/IBalancerV2VaultAdapter.sol";
34
+ import {ICompoundV2_CTokenAdapter} from
35
+ "@gearbox-protocol/integrations-v3/contracts/interfaces/compound/ICompoundV2_CTokenAdapter.sol";
20
36
  import {ILidoV1Adapter} from "@gearbox-protocol/integrations-v3/contracts/interfaces/lido/ILidoV1Adapter.sol";
21
37
  import {IBaseRewardPool} from "@gearbox-protocol/integrations-v3/contracts/integrations/convex/IBaseRewardPool.sol";
22
38
  import {IConvexToken} from "@gearbox-protocol/integrations-v3/contracts/integrations/convex/IConvexToken.sol";
@@ -25,6 +41,7 @@ import {IConvexV1BaseRewardPoolAdapter} from
25
41
  "@gearbox-protocol/integrations-v3/contracts/interfaces/convex/IConvexV1BaseRewardPoolAdapter.sol";
26
42
  import {IConvexV1BoosterAdapter} from
27
43
  "@gearbox-protocol/integrations-v3/contracts/interfaces/convex/IConvexV1BoosterAdapter.sol";
44
+ import {IERC4626Adapter} from "@gearbox-protocol/integrations-v3/contracts/interfaces/erc4626/IERC4626Adapter.sol";
28
45
 
29
46
  import {IInterestRateModel} from "@gearbox-protocol/core-v2/contracts/interfaces/IInterestRateModel.sol";
30
47
  import {IUniswapV2Adapter} from "@gearbox-protocol/integrations-v3/contracts/interfaces/uniswap/IUniswapV2Adapter.sol";
@@ -34,7 +51,11 @@ import {IYearnV2Adapter} from "@gearbox-protocol/integrations-v3/contracts/inter
34
51
 
35
52
  import {IwstETHV1Adapter} from "@gearbox-protocol/integrations-v3/contracts/interfaces/lido/IwstETHV1Adapter.sol";
36
53
  import {IstETH} from "@gearbox-protocol/integrations-v3/contracts/integrations/lido/IstETH.sol";
54
+ import {IwstETH} from "@gearbox-protocol/integrations-v3/contracts/integrations/lido/IwstETH.sol";
37
55
  import {IPriceOracleBase} from "@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracleBase.sol";
56
+ import {IPriceOracleV2} from "@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracle.sol";
57
+ import {IPriceOracleV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IPriceOracleV3.sol";
58
+ import {IPriceFeed} from "@gearbox-protocol/core-v2/contracts/interfaces/IPriceFeed.sol";
38
59
 
39
60
  import {ICurveV1_2AssetsAdapter} from
40
61
  "@gearbox-protocol/integrations-v3/contracts/interfaces/curve/ICurveV1_2AssetsAdapter.sol";
@@ -44,3 +65,5 @@ import {ICurveV1_3AssetsAdapter} from
44
65
 
45
66
  import {ICurveV1_4AssetsAdapter} from
46
67
  "@gearbox-protocol/integrations-v3/contracts/interfaces/curve/ICurveV1_4AssetsAdapter.sol";
68
+
69
+ import {IRouter} from "@gearbox-protocol/router-v3/contracts/interfaces/IRouter.sol";
@@ -25,7 +25,8 @@ const APY_DICTIONARY = {
25
25
  crvUSDUSDC: "factory-crvusd-0",
26
26
  crvUSDUSDT: "factory-crvusd-1",
27
27
  crvUSDFRAX: "factory-crvusd-4",
28
- crvUSDETHCRV: "factory-tricrypto-4", // 0x4eBdF703948ddCEA3B11f675B4D1Fba9d2414A14
28
+ crvUSDETHCRV: "factory-tricrypto-4",
29
+ rETH_f: "factory-crypto-210", // 0x0f3159811670c117c372428D4E69AC32325e4D0F
29
30
  };
30
31
  const CRV_APY_RESPONSE_DECIMALS = 100;
31
32
  // const CRYPTO = "https://api.curve.fi/api/getPools/ethereum/crypto";
@@ -1,8 +1,8 @@
1
- import { LPTokens, SupportedToken } from "@gearbox-protocol/sdk-gov";
1
+ import { LPTokens, PartialRecord, SupportedToken } from "@gearbox-protocol/sdk-gov";
2
2
  export type AdditionalTokenWithAPY = Extract<SupportedToken, "STETH">;
3
3
  export declare const additionalTokensWIthAPY: Record<AdditionalTokenWithAPY, true>;
4
4
  export type TokensWithAPY = LPTokens | Extract<SupportedToken, "STETH">;
5
- export type LpTokensAPY = Record<TokensWithAPY, number>;
5
+ export type LpTokensAPY = PartialRecord<TokensWithAPY, number>;
6
6
  export declare const isTokenWithAPY: (t: unknown) => t is TokensWithAPY;
7
7
  export * from "./convexAPY";
8
8
  export * from "./curveAPY";
@@ -8,7 +8,7 @@ const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  const formatter_1 = require("../utils/formatter");
10
10
  const RESPONSE_DECIMALS = 1;
11
- const URL = "https://api.yearn.finance/v1/chains/1/vaults/all";
11
+ const URL = "https://api.yexporter.io/v1/chains/1/vaults/all";
12
12
  const transformSymbol = (s) => s.replaceAll("_", "-").toLowerCase();
13
13
  async function getYearnAPY() {
14
14
  try {
package/lib/config.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  export declare const STATIC_TOKEN = "https://static.gearbox.fi/tokens/";
2
- export declare const MULTICALL_ADDRESS = "0x5ba1e12693dc8f9c48aad8770482f4739beed696";
package/lib/config.js CHANGED
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MULTICALL_ADDRESS = exports.STATIC_TOKEN = void 0;
3
+ exports.STATIC_TOKEN = void 0;
4
4
  exports.STATIC_TOKEN = "https://static.gearbox.fi/tokens/";
5
- exports.MULTICALL_ADDRESS = "0x5ba1e12693dc8f9c48aad8770482f4739beed696";
@@ -16,20 +16,20 @@ interface NextAssetProps<T extends Asset> {
16
16
  tokensList: Record<string, TokenData>;
17
17
  prices?: Record<string, bigint>;
18
18
  }
19
- export type WrapResult<T> = [Array<T>, bigint, bigint];
19
+ export type WrapResult = [Array<Asset>, bigint, bigint];
20
20
  export declare class AssetUtils {
21
21
  static nextAsset<T extends Asset>({ allowedTokens, selectedAssets, balances, tokensList, prices, }: NextAssetProps<T>): string | undefined;
22
22
  static getBalances(allowedTokens: Array<string>, externalBalances: Record<string, bigint>): Record<string, bigint>;
23
23
  static constructAssetRecord<A extends Asset>(a: Array<A>): Record<string, A>;
24
- static memoWrapETH: (ethAddress: string, wethAddress: string) => <T extends Asset>(assets: T[]) => WrapResult<T>;
24
+ static memoWrap: (unwrappedAddress: string, wrappedAddress: string, prices: Record<string, bigint>, tokensList: Record<string, TokenData>) => (assets: Array<Asset>) => WrapResult;
25
25
  /**
26
26
  * Sums the the second assets list into the first assets list
27
- * Creates new assets.
27
+ * Balances cant be negative; Creates new assets.
28
28
  */
29
29
  static sumAssets<A extends Asset, B extends Asset>(a: Array<A>, b: Array<B>): Array<A | B>;
30
30
  /**
31
31
  * Subtracts the the second assets list from the first assets list
32
- * Balance cant be negative; doesn't create new assets.
32
+ * Balances cant be negative; doesn't create new assets.
33
33
  */
34
34
  static subAssets<A extends Asset, B extends Asset>(a: Array<A>, b: Array<B>): Array<A>;
35
35
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AssetUtils = void 0;
4
4
  const math_1 = require("../utils/math");
5
+ const price_1 = require("../utils/price");
5
6
  const creditAccount_1 = require("./creditAccount");
6
7
  class AssetUtils {
7
8
  static nextAsset({ allowedTokens, selectedAssets, balances, tokensList, prices = {}, }) {
@@ -33,28 +34,38 @@ class AssetUtils {
33
34
  }, {});
34
35
  return record;
35
36
  }
36
- static memoWrapETH = (ethAddress, wethAddress) => function wrapETH(assets) {
37
+ static memoWrap = (unwrappedAddress, wrappedAddress, prices, tokensList) => function wrap(assets) {
37
38
  const assetsRecord = AssetUtils.constructAssetRecord(assets);
38
- const weth = assetsRecord[wethAddress];
39
- const { balance: wethAmount = 0n } = weth || {};
40
- const eth = assetsRecord[ethAddress];
41
- const { balance: ethAmount = 0n } = eth || {};
42
- const wethOrETH = weth || eth;
43
- if (wethOrETH) {
44
- assetsRecord[wethAddress] = {
45
- ...wethOrETH,
46
- token: wethAddress,
47
- balance: (0, math_1.nonNegativeBn)(ethAmount) + (0, math_1.nonNegativeBn)(wethAmount),
39
+ const unwrapped = assetsRecord[unwrappedAddress];
40
+ const wrapped = assetsRecord[wrappedAddress];
41
+ const { balance: wrappedAmount = 0n } = wrapped || {};
42
+ // if there unwrapped token
43
+ if (unwrapped) {
44
+ const { balance: unwrappedAmount = 0n } = unwrapped || {};
45
+ const unwrappedToken = tokensList[unwrappedAddress];
46
+ const unwrappedPrice = prices[unwrappedAddress] || 0n;
47
+ const wrappedToken = tokensList[wrappedAddress];
48
+ const wrappedPrice = prices[wrappedAddress] || 0n;
49
+ // convert unwrapped into wrapped by price
50
+ const unwrappedInWrapped = price_1.PriceUtils.convertByPrice(price_1.PriceUtils.calcTotalPrice(unwrappedPrice, (0, math_1.nonNegativeBn)(unwrappedAmount), unwrappedToken.decimals), {
51
+ price: wrappedPrice,
52
+ decimals: wrappedToken.decimals,
53
+ });
54
+ // sum them
55
+ assetsRecord[wrappedAddress] = {
56
+ token: wrappedAddress,
57
+ balance: (0, math_1.nonNegativeBn)(wrappedAmount) + unwrappedInWrapped,
48
58
  };
59
+ // remove unwrapped
60
+ delete assetsRecord[unwrappedAddress];
61
+ return [Object.values(assetsRecord), unwrappedInWrapped, wrappedAmount];
49
62
  }
50
- if (eth) {
51
- delete assetsRecord[ethAddress];
52
- }
53
- return [Object.values(assetsRecord), ethAmount, wethAmount];
63
+ // else no actions needed
64
+ return [Object.values(assetsRecord), 0n, wrappedAmount];
54
65
  };
55
66
  /**
56
67
  * Sums the the second assets list into the first assets list
57
- * Creates new assets.
68
+ * Balances cant be negative; Creates new assets.
58
69
  */
59
70
  static sumAssets(a, b) {
60
71
  const aRecord = AssetUtils.constructAssetRecord(a);
@@ -73,7 +84,7 @@ class AssetUtils {
73
84
  }
74
85
  /**
75
86
  * Subtracts the the second assets list from the first assets list
76
- * Balance cant be negative; doesn't create new assets.
87
+ * Balances cant be negative; doesn't create new assets.
77
88
  */
78
89
  static subAssets(a, b) {
79
90
  const bRecord = AssetUtils.constructAssetRecord(b);
@@ -1,24 +1,47 @@
1
1
  import { LpTokensAPY } from "../apy";
2
- import { CaTokenBalance, CreditAccountDataPayload, ScheduledWithdrawal } from "../payload/creditAccount";
2
+ import { CaTokenBalance, CreditAccountDataPayload } from "../payload/creditAccount";
3
+ import { QuotaInfo } from "../payload/creditManager";
3
4
  import { TokenData } from "../tokens/tokenData";
4
- import { Asset } from "./assets";
5
+ import { Asset, AssetWithAmountInTarget } from "./assets";
5
6
  export interface CalcOverallAPYProps {
6
7
  caAssets: Array<Asset>;
7
8
  lpAPY: LpTokensAPY | undefined;
9
+ quotas: Record<string, Asset>;
10
+ quotaRates: Record<string, Pick<QuotaInfo, "isActive" | "rate">>;
8
11
  prices: Record<string, bigint>;
9
12
  totalValue: bigint | undefined;
10
13
  debt: bigint | undefined;
11
- borrowRate: number;
14
+ baseBorrowRate: number;
12
15
  underlyingToken: string;
13
16
  }
14
17
  export interface CalcHealthFactorProps {
15
18
  assets: Array<Asset>;
19
+ quotas: Record<string, Asset>;
20
+ quotasInfo: Record<string, Pick<QuotaInfo, "isActive">>;
16
21
  prices: Record<string, bigint>;
17
22
  liquidationThresholds: Record<string, bigint>;
18
23
  underlyingToken: string;
19
24
  borrowed: bigint;
20
25
  }
26
+ export interface CalcQuotaUpdateProps {
27
+ quotas: Record<string, Pick<QuotaInfo, "isActive" | "token">>;
28
+ initialQuotas: Record<string, Pick<CaTokenBalance, "quota">>;
29
+ assetsAfterUpdate: Record<string, AssetWithAmountInTarget>;
30
+ allowedToSpend: Record<string, {}>;
31
+ allowedToObtain: Record<string, {}>;
32
+ }
33
+ interface CalcQuotaUpdateReturnType {
34
+ desiredQuota: Record<string, Asset>;
35
+ quotaIncrease: Array<Asset>;
36
+ quotaDecrease: Array<Asset>;
37
+ }
38
+ export interface CalcQuotaBorrowRateProps {
39
+ quotas: Record<string, Asset>;
40
+ quotaRates: Record<string, Pick<QuotaInfo, "isActive" | "rate">>;
41
+ borrowAmount: bigint;
42
+ }
21
43
  export declare class CreditAccountData {
44
+ readonly isSuccessful: boolean;
22
45
  readonly addr: string;
23
46
  readonly borrower: string;
24
47
  readonly creditManager: string;
@@ -27,6 +50,7 @@ export declare class CreditAccountData {
27
50
  readonly since: number;
28
51
  readonly expirationDate: number;
29
52
  readonly version: number;
53
+ readonly cmName: string;
30
54
  readonly enabledTokenMask: bigint;
31
55
  readonly healthFactor: number;
32
56
  isDeleting: boolean;
@@ -40,7 +64,6 @@ export declare class CreditAccountData {
40
64
  readonly totalValue: bigint;
41
65
  readonly totalValueUSD: bigint;
42
66
  readonly twvUSD: bigint;
43
- readonly cumulativeIndexNow: bigint;
44
67
  readonly cumulativeIndexLastUpdate: bigint;
45
68
  readonly cumulativeQuotaInterest: bigint;
46
69
  readonly activeBots: string[];
@@ -50,10 +73,8 @@ export declare class CreditAccountData {
50
73
  readonly allBalances: Record<string, CaTokenBalance>;
51
74
  readonly forbiddenTokens: Record<string, true>;
52
75
  readonly quotedTokens: Record<string, true>;
53
- readonly schedultedWithdrawals: Array<ScheduledWithdrawal>;
54
76
  constructor(payload: CreditAccountDataPayload);
55
77
  setDeleteInProgress(d: boolean): void;
56
- balancesSorted(prices: Record<string, bigint>, tokens: Record<string, TokenData>): Array<Asset>;
57
78
  static sortBalances(balances: Record<string, bigint>, prices: Record<string, bigint>, tokens: Record<string, TokenData>): Array<[string, bigint]>;
58
79
  static tokensAbcComparator(t1?: TokenData, t2?: TokenData): 1 | -1;
59
80
  static amountAbcComparator(t1: bigint, t2: bigint): 1 | -1;
@@ -62,8 +83,11 @@ export declare class CreditAccountData {
62
83
  isTokenEnabled(index: number): boolean;
63
84
  static isTokenEnabled(index: number, enabledTokenMask: bigint): boolean;
64
85
  static calcMaxDebtIncrease(healthFactor: number, borrowAmountPlusInterest: bigint, underlyingLT: number, minHf?: number): bigint;
65
- static calcOverallAPY({ caAssets, lpAPY, prices, totalValue, debt, borrowRate, underlyingToken, }: CalcOverallAPYProps): number | undefined;
86
+ static calcOverallAPY({ caAssets, lpAPY, prices, quotas, quotaRates, totalValue, debt, baseBorrowRate, underlyingToken, }: CalcOverallAPYProps): bigint | undefined;
66
87
  hash(): string;
67
88
  static hash(creditManager: string, borrower: string): string;
68
- static calcHealthFactor({ assets, prices, liquidationThresholds, underlyingToken, borrowed, }: CalcHealthFactorProps): number;
89
+ static calcHealthFactor({ assets, quotas, quotasInfo, liquidationThresholds, underlyingToken, borrowed, prices, }: CalcHealthFactorProps): number;
90
+ static calcQuotaUpdate({ quotas, initialQuotas, assetsAfterUpdate, allowedToSpend, allowedToObtain, }: CalcQuotaUpdateProps): CalcQuotaUpdateReturnType;
91
+ static calcQuotaBorrowRate({ quotas, quotaRates, borrowAmount, }: CalcQuotaBorrowRateProps): number;
69
92
  }
93
+ export {};