@harvest-finance/harvest-strategy-polygon 0.0.1-security → 1.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.

Potentially problematic release.


This version of @harvest-finance/harvest-strategy-polygon might be problematic. Click here for more details.

Files changed (485) hide show
  1. package/README.md +110 -5
  2. package/contracts/base/Controller.sol +125 -0
  3. package/contracts/base/ControllerV2.sol +363 -0
  4. package/contracts/base/FeeRewardForwarder.sol +163 -0
  5. package/contracts/base/PotPool.sol +360 -0
  6. package/contracts/base/ProfitSharingReceiver.sol +39 -0
  7. package/contracts/base/RewardForwarderV2.sol +109 -0
  8. package/contracts/base/Vault.sol +344 -0
  9. package/contracts/base/VaultERC4626.sol +113 -0
  10. package/contracts/base/VaultProxy.sol +35 -0
  11. package/contracts/base/VaultStorage.sol +199 -0
  12. package/contracts/base/VaultStorageV2.sol +196 -0
  13. package/contracts/base/VaultV2.sol +369 -0
  14. package/contracts/base/ape-base/MiniApeV2Strategy.sol +322 -0
  15. package/contracts/base/ape-base/interface/IMiniChefV2.sol +31 -0
  16. package/contracts/base/ape-base/interface/IRewarder.sol +10 -0
  17. package/contracts/base/factory/MegaFactory.sol +120 -0
  18. package/contracts/base/factory/interface/IPoolFactory.sol +6 -0
  19. package/contracts/base/factory/interface/IStrategyFactory.sol +6 -0
  20. package/contracts/base/factory/interface/IVaultFactory.sol +7 -0
  21. package/contracts/base/factory/pool/PotPoolFactory.sol +43 -0
  22. package/contracts/base/factory/strategy/UpgradableStrategyFactory.sol +19 -0
  23. package/contracts/base/factory/vault/RegularVaultFactory.sol +34 -0
  24. package/contracts/base/incentives/GlobalIncentivesHelper.sol +167 -0
  25. package/contracts/base/incentives/NotifyHelperGeneric.sol +61 -0
  26. package/contracts/base/incentives/NotifyHelperStateful.sol +290 -0
  27. package/contracts/base/inheritance/Controllable.sol +26 -0
  28. package/contracts/base/inheritance/ControllableInit.sol +31 -0
  29. package/contracts/base/inheritance/Governable.sol +29 -0
  30. package/contracts/base/inheritance/GovernableInit.sol +51 -0
  31. package/contracts/base/inheritance/IUpgradeSource.sol +8 -0
  32. package/contracts/base/inheritance/OwnableWhitelist.sol +17 -0
  33. package/contracts/base/inheritance/RewardTokenProfitNotifier.sol +48 -0
  34. package/contracts/base/inheritance/Storage.sol +36 -0
  35. package/contracts/base/interface/IController.sol +30 -0
  36. package/contracts/base/interface/IControllerV2.sol +135 -0
  37. package/contracts/base/interface/IERC4626.sol +263 -0
  38. package/contracts/base/interface/IFeeRewardForwarder.sol +9 -0
  39. package/contracts/base/interface/IProfitSharingReceiver.sol +10 -0
  40. package/contracts/base/interface/IRewardForwarder.sol +58 -0
  41. package/contracts/base/interface/IRewardPool.sol +34 -0
  42. package/contracts/base/interface/IStrategy.sol +25 -0
  43. package/contracts/base/interface/IUniversalLiquidator.sol +21 -0
  44. package/contracts/base/interface/IUniversalLiquidatorRegistry.sol +20 -0
  45. package/contracts/base/interface/IUpgradeSource.sol +8 -0
  46. package/contracts/base/interface/IVault.sol +35 -0
  47. package/contracts/base/interface/aave/DataTypes.sol +266 -0
  48. package/contracts/base/interface/aave/IAToken.sol +37 -0
  49. package/contracts/base/interface/aave/IPool.sol +13 -0
  50. package/contracts/base/interface/balancer/Gauge.sol +22 -0
  51. package/contracts/base/interface/balancer/IBVault.sol +557 -0
  52. package/contracts/base/interface/balancer/IBalancerMinter.sol +114 -0
  53. package/contracts/base/interface/balancer/linearPool/ILinearPool.sol +185 -0
  54. package/contracts/base/interface/balancer/linearPool/ILinearPoolFactory.sol +16 -0
  55. package/contracts/base/interface/balancer/linearPool/ILinearPoolRebalancer.sol +8 -0
  56. package/contracts/base/interface/balancer/linearPool/IPoolSwapStructs.sol +57 -0
  57. package/contracts/base/interface/caviar/ICaviarChef.sol +16 -0
  58. package/contracts/base/interface/compound/IComet.sol +114 -0
  59. package/contracts/base/interface/compound/ICometRewards.sol +17 -0
  60. package/contracts/base/interface/curve/Gauge.sol +25 -0
  61. package/contracts/base/interface/curve/ICurveDeposit_2token.sol +25 -0
  62. package/contracts/base/interface/curve/ICurveDeposit_2token_underlying.sol +31 -0
  63. package/contracts/base/interface/curve/ICurveDeposit_3token.sol +25 -0
  64. package/contracts/base/interface/curve/ICurveDeposit_3token_meta.sol +20 -0
  65. package/contracts/base/interface/curve/ICurveDeposit_3token_underlying.sol +31 -0
  66. package/contracts/base/interface/curve/ICurveDeposit_4token.sol +25 -0
  67. package/contracts/base/interface/curve/ICurveDeposit_4token_meta.sol +20 -0
  68. package/contracts/base/interface/curve/ICurveDeposit_4token_underlying.sol +31 -0
  69. package/contracts/base/interface/curve/ICurveDeposit_5token.sol +25 -0
  70. package/contracts/base/interface/curve/ICurveDeposit_5token_meta.sol +20 -0
  71. package/contracts/base/interface/curve/ICurveDeposit_5token_underlying.sol +31 -0
  72. package/contracts/base/interface/curve/ICurveDeposit_6token.sol +25 -0
  73. package/contracts/base/interface/curve/ICurveDeposit_6token_meta.sol +20 -0
  74. package/contracts/base/interface/gamma/IClearing.sol +8 -0
  75. package/contracts/base/interface/gamma/IHypervisor.sol +17 -0
  76. package/contracts/base/interface/gamma/IStakingRewards.sol +35 -0
  77. package/contracts/base/interface/gamma/IUniProxy.sol +15 -0
  78. package/contracts/base/interface/kyber/IDMMExchangeRouter.sol +69 -0
  79. package/contracts/base/interface/kyber/IDMMFactory.sol +35 -0
  80. package/contracts/base/interface/kyber/IDMMLiquidityRouter.sol +204 -0
  81. package/contracts/base/interface/kyber/IDMMPool.sol +42 -0
  82. package/contracts/base/interface/kyber/IDMMRouter01.sol +12 -0
  83. package/contracts/base/interface/kyber/IDMMRouter02.sol +55 -0
  84. package/contracts/base/interface/kyber/IKyberZap.sol +7 -0
  85. package/contracts/base/interface/merkl/IDistributor.sol +6 -0
  86. package/contracts/base/interface/morpho/IMetaMorpho.sol +7 -0
  87. package/contracts/base/interface/pearl/IGauge.sol +13 -0
  88. package/contracts/base/interface/pearl/IPair.sol +44 -0
  89. package/contracts/base/interface/pearl/IRouter.sol +305 -0
  90. package/contracts/base/interface/quickswap/IDragonLair.sol +25 -0
  91. package/contracts/base/interface/quickswap/IMasterChef.sol +13 -0
  92. package/contracts/base/interface/uniswap/IUniswapV2Factory.sol +15 -0
  93. package/contracts/base/interface/uniswap/IUniswapV2Migrator.sol +6 -0
  94. package/contracts/base/interface/uniswap/IUniswapV2Pair.sol +59 -0
  95. package/contracts/base/interface/uniswap/IUniswapV2Router01.sol +96 -0
  96. package/contracts/base/interface/uniswap/IUniswapV2Router02.sol +137 -0
  97. package/contracts/base/interface/uniswap/IUniswapV3Pool.sol +24 -0
  98. package/contracts/base/interface/uniswap/IUniswapV3Router.sol +64 -0
  99. package/contracts/base/interface/uniswap/IWETH.sol +8 -0
  100. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolActions.sol +103 -0
  101. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolDerivedState.sol +40 -0
  102. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolEvents.sol +121 -0
  103. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolImmutables.sol +35 -0
  104. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolOwnerActions.sol +23 -0
  105. package/contracts/base/interface/uniswap/pool/IUniswapV3PoolState.sol +116 -0
  106. package/contracts/base/masterchef-base/MasterChefHodlStrategy.sol +240 -0
  107. package/contracts/base/masterchef-base/MasterChefStrategy.sol +364 -0
  108. package/contracts/base/masterchef-base/interfaces/IMasterChef.sol +12 -0
  109. package/contracts/base/migration/vaultMigratable_2JPYv2.sol +87 -0
  110. package/contracts/base/migration/vaultMigratable_bal2EUR_PAR.sol +121 -0
  111. package/contracts/base/migration/vaultMigratable_bal2EUR_agEUR.sol +121 -0
  112. package/contracts/base/migration/vaultMigratable_balMaticX.sol +153 -0
  113. package/contracts/base/migration/vaultMigratable_balStMatic.sol +153 -0
  114. package/contracts/base/noop/NoopStrategy.sol +89 -0
  115. package/contracts/base/noop/NoopStrategyUpgradeable.sol +92 -0
  116. package/contracts/base/sushi-base/MiniChefV2Strategy.sol +380 -0
  117. package/contracts/base/sushi-base/interface/IMiniChefV2.sol +31 -0
  118. package/contracts/base/sushi-base/interface/IRewarder.sol +9 -0
  119. package/contracts/base/sushi-base/lib/BoringERC20.sol +30 -0
  120. package/contracts/base/upgradability/Address.sol +33 -0
  121. package/contracts/base/upgradability/BaseUpgradeabilityProxy.sol +61 -0
  122. package/contracts/base/upgradability/BaseUpgradeableStrategy.sol +111 -0
  123. package/contracts/base/upgradability/BaseUpgradeableStrategyStorage.sol +176 -0
  124. package/contracts/base/upgradability/BaseUpgradeableStrategyStorageV2.sol +290 -0
  125. package/contracts/base/upgradability/BaseUpgradeableStrategyV2.sol +145 -0
  126. package/contracts/base/upgradability/IUpgradable.sol +7 -0
  127. package/contracts/base/upgradability/Proxy.sol +71 -0
  128. package/contracts/base/upgradability/ReentrancyGuard.sol +57 -0
  129. package/contracts/base/upgradability/ReentrancyGuardUpgradeable.sol +51 -0
  130. package/contracts/base/upgradability/StrategyProxy.sol +35 -0
  131. package/contracts/base/wmatic/WMATIC.sol +8 -0
  132. package/contracts/strategies/aave/AaveSupplyStrategy.sol +213 -0
  133. package/contracts/strategies/aave/AaveSupplyStrategyMainnet_DAI.sol +23 -0
  134. package/contracts/strategies/aave/AaveSupplyStrategyMainnet_EURS.sol +23 -0
  135. package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDC.sol +23 -0
  136. package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDCe.sol +23 -0
  137. package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDT.sol +23 -0
  138. package/contracts/strategies/ape/ApeStrategyMainnet_BANANA_MATIC.sol +36 -0
  139. package/contracts/strategies/ape/ApeStrategyMainnet_BNB_MATIC.sol +36 -0
  140. package/contracts/strategies/ape/ApeStrategyMainnet_BTC_MATIC.sol +36 -0
  141. package/contracts/strategies/ape/ApeStrategyMainnet_DAI_MATIC.sol +36 -0
  142. package/contracts/strategies/ape/ApeStrategyMainnet_DAI_USDC.sol +37 -0
  143. package/contracts/strategies/ape/ApeStrategyMainnet_ETH_MATIC.sol +36 -0
  144. package/contracts/strategies/ape/ApeStrategyMainnet_USDT_MATIC.sol +36 -0
  145. package/contracts/strategies/aura/AuraStrategy.sol +347 -0
  146. package/contracts/strategies/aura/AuraStrategyMainnet_jEUR_PAR.sol +30 -0
  147. package/contracts/strategies/aura/interface/IAuraBaseRewardPool.sol +25 -0
  148. package/contracts/strategies/aura/interface/IAuraBooster.sol +17 -0
  149. package/contracts/strategies/aura/interface/IAuraDepositor.sol +7 -0
  150. package/contracts/strategies/balancer/BalancerStrategyV3.sol +509 -0
  151. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2BRL.sol +39 -0
  152. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2BRLUSD.sol +38 -0
  153. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_PAR.sol +34 -0
  154. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_PARv2.sol +34 -0
  155. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_agEUR.sol +34 -0
  156. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MATIC_USDC_ETH_BAL.sol +32 -0
  157. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MaticX.sol +37 -0
  158. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MaticX_amMatic.sol +38 -0
  159. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_SPHERE_MATIC.sol +34 -0
  160. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_TNGBL_USDC.sol +34 -0
  161. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_WBTC_ETH_USDC.sol +32 -0
  162. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_bbamusd.sol +36 -0
  163. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_frxETH.sol +32 -0
  164. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_frxETH_amWETH.sol +35 -0
  165. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stETH.sol +35 -0
  166. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stMatic.sol +36 -0
  167. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stMatic_amMatic.sol +39 -0
  168. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_tetuBal.sol +36 -0
  169. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_wUSDR_USDC.sol +34 -0
  170. package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_wstETH_amWETH.sol +37 -0
  171. package/contracts/strategies/balancer/interface/Gauge.sol +26 -0
  172. package/contracts/strategies/balancer/interface/IBVault.sol +557 -0
  173. package/contracts/strategies/balancer/interface/IBalanceMinter.sol +114 -0
  174. package/contracts/strategies/complifi/ComplifiDerivStrategy.sol +381 -0
  175. package/contracts/strategies/complifi/ComplifiDerivStrategyMainnet_ETH5x.sol +35 -0
  176. package/contracts/strategies/complifi/ComplifiStrategy.sol +362 -0
  177. package/contracts/strategies/complifi/ComplifiStrategyMainnet_COMFI_WETH.sol +34 -0
  178. package/contracts/strategies/complifi/interfaces/ILiquidityMining.sol +13 -0
  179. package/contracts/strategies/complifi/interfaces/ILiquidityPool.sol +63 -0
  180. package/contracts/strategies/complifi/interfaces/IProxyActions.sol +10 -0
  181. package/contracts/strategies/complifi/interfaces/IUSDCVault.sol +55 -0
  182. package/contracts/strategies/compound/CompoundStrategy.sol +296 -0
  183. package/contracts/strategies/compound/CompoundStrategyMainnet_USDC.sol +28 -0
  184. package/contracts/strategies/compound/CompoundStrategyMainnet_USDT.sol +28 -0
  185. package/contracts/strategies/compound-blue/CompoundBlueStrategy.sol +292 -0
  186. package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_ETH.sol +27 -0
  187. package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_USDC.sol +27 -0
  188. package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_USDT.sol +27 -0
  189. package/contracts/strategies/convex/ConvexStrategyMainnet_3CRV.sol +40 -0
  190. package/contracts/strategies/convex/ConvexStrategyMainnet_3CRYPTO.sol +37 -0
  191. package/contracts/strategies/convex/ConvexStrategyMainnet_CRV_3CRYPTO copy.sol +37 -0
  192. package/contracts/strategies/convex/ConvexStrategyMainnet_MATIC_3CRYPTO.sol +37 -0
  193. package/contracts/strategies/convex/ConvexStrategyMainnet_USDR.sol +40 -0
  194. package/contracts/strategies/convex/ConvexStrategyMainnet_aCRV.sol +38 -0
  195. package/contracts/strategies/convex/base/ConvexStrategy.sol +480 -0
  196. package/contracts/strategies/convex/interface/IBaseRewardPool.sol +13 -0
  197. package/contracts/strategies/convex/interface/IBooster.sol +10 -0
  198. package/contracts/strategies/gamma-merkl/GammaMerklStrategy.sol +272 -0
  199. package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_ETH_USDC.sol +25 -0
  200. package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_ETH_USDT.sol +25 -0
  201. package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_MATIC_USDT.sol +25 -0
  202. package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_TBTC_ETH.sol +25 -0
  203. package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_WBTC_ETH_w.sol +25 -0
  204. package/contracts/strategies/genomes/NoopStrategy_GENE_ETH.sol +23 -0
  205. package/contracts/strategies/genomes/NoopStrategy_GNOME_ETH.sol +23 -0
  206. package/contracts/strategies/idle/IdleFinanceStrategy.sol +240 -0
  207. package/contracts/strategies/idle/IdleStrategyDAIMainnet.sol +33 -0
  208. package/contracts/strategies/idle/IdleStrategyUSDCMainnet.sol +33 -0
  209. package/contracts/strategies/idle/IdleStrategyWETHMainnet.sol +30 -0
  210. package/contracts/strategies/idle/interface/IdleToken.sol +58 -0
  211. package/contracts/strategies/jarvis/JarvisHodlStrategyV3.sol +351 -0
  212. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2CAD.sol +34 -0
  213. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR.sol +34 -0
  214. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_EURT.sol +34 -0
  215. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_EURe.sol +34 -0
  216. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_PAR.sol +34 -0
  217. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2JPY.sol +34 -0
  218. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2JPYv2.sol +34 -0
  219. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2NZD.sol +34 -0
  220. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2SGD.sol +34 -0
  221. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jCHF_USDC.sol +35 -0
  222. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jCHF_WETH.sol +35 -0
  223. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jEUR_USDC.sol +35 -0
  224. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jEUR_WETH.sol +35 -0
  225. package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jGBP_USDC.sol +35 -0
  226. package/contracts/strategies/jarvis/JarvisStrategyV3.sol +281 -0
  227. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_AUR3_USDC.sol +27 -0
  228. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_AURJUL22_WETH.sol +27 -0
  229. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN2_4EUR.sol +27 -0
  230. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN3_4EUR.sol +27 -0
  231. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN4_4EUR.sol +27 -0
  232. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTANGLENOV22_2EURagEUR.sol +27 -0
  233. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTANGLE_2EURagEUR.sol +27 -0
  234. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTJUL22_USDC.sol +27 -0
  235. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMAY22_USDC.sol +27 -0
  236. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMIMONOV22_2EURPAR.sol +27 -0
  237. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMIMO_2EURPAR.sol +27 -0
  238. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTNOV22_USDC.sol +27 -0
  239. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTSEP22_USDC.sol +27 -0
  240. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_QUI_2CAD.sol +27 -0
  241. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_SES_2JPY.sol +28 -0
  242. package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_agDEN_2EUR.sol +27 -0
  243. package/contracts/strategies/jarvis/interface/IElysianFields.sol +11 -0
  244. package/contracts/strategies/jarvis/interface/IKyberFairLaunch.sol +13 -0
  245. package/contracts/strategies/jarvis/interface/IKyberRewardLocker.sol +9 -0
  246. package/contracts/strategies/meshswap/MeshswapStrategy.sol +304 -0
  247. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_MESH_oMOOI.sol +30 -0
  248. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_MESH_oZEMIT.sol +30 -0
  249. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_USDC_oUSDC.sol +31 -0
  250. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_USDT_oUSDT.sol +31 -0
  251. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_MESH.sol +27 -0
  252. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_USDC.sol +28 -0
  253. package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_USDT.sol +28 -0
  254. package/contracts/strategies/meshswap/interface/IExchange.sol +9 -0
  255. package/contracts/strategies/meshswap/interface/IRouter.sol +68 -0
  256. package/contracts/strategies/pearl/CaviarStrategy.sol +244 -0
  257. package/contracts/strategies/pearl/CaviarStrategyMainnet_CVR.sol +26 -0
  258. package/contracts/strategies/pearl/PearlHodlStrategy.sol +254 -0
  259. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_CVR_PEARL.sol +27 -0
  260. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_DAI_USDR.sol +27 -0
  261. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_ETH_USDR.sol +27 -0
  262. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_MATIC_USDR.sol +27 -0
  263. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_PEARL_USDR.sol +27 -0
  264. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_STAR_USDR.sol +27 -0
  265. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_TNGBL_USDR.sol +27 -0
  266. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_USDC_USDR.sol +27 -0
  267. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_USDT_USDR.sol +27 -0
  268. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_WBTC_USDR.sol +27 -0
  269. package/contracts/strategies/pearl/PearlHodlStrategyMainnet_wUSDR_USDR.sol +27 -0
  270. package/contracts/strategies/quick-gamma/QuickGammaStrategy.sol +400 -0
  271. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_ETH_narrow.sol +31 -0
  272. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_ETH_wide.sol +31 -0
  273. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_USDC_narrow.sol +31 -0
  274. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_USDC_wide.sol +31 -0
  275. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_USDC_ETH_narrow.sol +34 -0
  276. package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_USDC_ETH_wide.sol +34 -0
  277. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2.sol +348 -0
  278. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_USDC_DAI.sol +28 -0
  279. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_USDC_USDT.sol +29 -0
  280. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_WBTC_ETH_narrow.sol +28 -0
  281. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_WBTC_USDC_narrow.sol +28 -0
  282. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_cbETH_ETH.sol +28 -0
  283. package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_wstETH_ETH.sol +28 -0
  284. package/contracts/strategies/uniswap-gamma/UniswapGammaStrategy.sol +312 -0
  285. package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_DAI.sol +28 -0
  286. package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_USDT.sol +28 -0
  287. package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_WETH.sol +28 -0
  288. package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_WMATIC_USDC.sol +28 -0
  289. package/contracts/strategies/yel/YelStrategy.sol +350 -0
  290. package/contracts/strategies/yel/YelStrategyMainnet_YEL_WETH.sol +29 -0
  291. package/hardhat.config.js +58 -0
  292. package/index.js +42 -0
  293. package/package.json +56 -6
  294. package/scripts/01-deploy-vault-regular-with-upgradable-strategy.js +41 -0
  295. package/scripts/02-deploy-vault-regular.js +35 -0
  296. package/scripts/03-deploy-upgradable-strategy.js +34 -0
  297. package/scripts/04-deploy-new-implementation.js +24 -0
  298. package/scripts/README.md +55 -0
  299. package/scripts/utils.js +42 -0
  300. package/test/aave/dai.js +207 -0
  301. package/test/aave/eurs.js +207 -0
  302. package/test/aave/usdc.js +206 -0
  303. package/test/aave/usdce.js +206 -0
  304. package/test/aave/usdt.js +206 -0
  305. package/test/ape/banana-matic.js +157 -0
  306. package/test/ape/bnb-matic.js +159 -0
  307. package/test/ape/btc-matic.js +159 -0
  308. package/test/ape/dai-matic.js +159 -0
  309. package/test/ape/dai-usdc.js +163 -0
  310. package/test/ape/eth-matic.js +158 -0
  311. package/test/ape/usdt-matic.js +159 -0
  312. package/test/aura/jeur-par.js +135 -0
  313. package/test/balancer/2brl_v3.js +123 -0
  314. package/test/balancer/2brlusd_v3.js +123 -0
  315. package/test/balancer/2eur_ageur.js +141 -0
  316. package/test/balancer/2eur_par.js +141 -0
  317. package/test/balancer/2eur_par_v2.js +123 -0
  318. package/test/balancer/bbamusd_v3.js +124 -0
  319. package/test/balancer/btc.js +131 -0
  320. package/test/balancer/frxETH.js +123 -0
  321. package/test/balancer/frxeth_amweth.js +123 -0
  322. package/test/balancer/matic_usdc_eth_bal.js +123 -0
  323. package/test/balancer/maticx_ammatic.js +123 -0
  324. package/test/balancer/maticx_v2.js +120 -0
  325. package/test/balancer/maticx_v3.js +141 -0
  326. package/test/balancer/polybase.js +131 -0
  327. package/test/balancer/polybase_v2.js +121 -0
  328. package/test/balancer/polydefi.js +131 -0
  329. package/test/balancer/polydefi2.js +131 -0
  330. package/test/balancer/qipool.js +136 -0
  331. package/test/balancer/sphere_matic.js +123 -0
  332. package/test/balancer/stETH.js +123 -0
  333. package/test/balancer/stable.js +131 -0
  334. package/test/balancer/stable_v2.js +121 -0
  335. package/test/balancer/stmatic_ammatic.js +123 -0
  336. package/test/balancer/stmatic_v2.js +120 -0
  337. package/test/balancer/stmatic_v3.js +141 -0
  338. package/test/balancer/tetubal_v3.js +123 -0
  339. package/test/balancer/tngbl_usdc.js +123 -0
  340. package/test/balancer/tricrypto.js +131 -0
  341. package/test/balancer/tusd_stable.js +142 -0
  342. package/test/balancer/usdc_weth.js +136 -0
  343. package/test/balancer/usdc_weth_v2.js +123 -0
  344. package/test/balancer/wbtc_eth_usdc.js +123 -0
  345. package/test/balancer/wbtc_weth.js +136 -0
  346. package/test/balancer/wsteth_amweth.js +123 -0
  347. package/test/balancer/wusdr_usdc.js +123 -0
  348. package/test/compound/usdc.js +127 -0
  349. package/test/compound/usdt.js +129 -0
  350. package/test/compound-blue/eth.js +136 -0
  351. package/test/compound-blue/usdc.js +136 -0
  352. package/test/compound-blue/usdt.js +136 -0
  353. package/test/convex/3crv.js +123 -0
  354. package/test/convex/3crypto.js +123 -0
  355. package/test/convex/acrv.js +123 -0
  356. package/test/convex/crv_3crypto.js +123 -0
  357. package/test/convex/matic_3crypto.js +123 -0
  358. package/test/convex/usdr.js +123 -0
  359. package/test/core/emission-fork.js +197 -0
  360. package/test/core/emission.js +209 -0
  361. package/test/core/vault_upgrade.js +129 -0
  362. package/test/curve/aave.js +132 -0
  363. package/test/curve/atricrypto3.js +135 -0
  364. package/test/curve/eurtusd.js +135 -0
  365. package/test/gamma-merkl/qs-eth-usdc.js +212 -0
  366. package/test/gamma-merkl/qs-eth-usdt.js +213 -0
  367. package/test/gamma-merkl/qs-matic-usdt.js +213 -0
  368. package/test/gamma-merkl/qs-tbtc-eth.js +213 -0
  369. package/test/gamma-merkl/qs-wbtc-eth-w.js +213 -0
  370. package/test/genomes/gene-eth.js +115 -0
  371. package/test/genomes/gnome-eth.js +115 -0
  372. package/test/idle/dai.js +129 -0
  373. package/test/idle/usdc.js +128 -0
  374. package/test/idle/weth.js +128 -0
  375. package/test/jarvis/2cad-hodl.js +183 -0
  376. package/test/jarvis/2cad-update-nov22.js +182 -0
  377. package/test/jarvis/2cad-update.js +177 -0
  378. package/test/jarvis/2cad-update2.js +182 -0
  379. package/test/jarvis/2cad-update3.js +182 -0
  380. package/test/jarvis/2eur-ageur-update-nov22.js +182 -0
  381. package/test/jarvis/2eur-ageur-update.js +182 -0
  382. package/test/jarvis/2eur-eure-hodl.js +176 -0
  383. package/test/jarvis/2eur-eurt-hodl.js +176 -0
  384. package/test/jarvis/2eur-eurt-update-nov22.js +182 -0
  385. package/test/jarvis/2eur-hodl.js +176 -0
  386. package/test/jarvis/2eur-par-hodl.js +176 -0
  387. package/test/jarvis/2eur-par-update-nov22.js +182 -0
  388. package/test/jarvis/2jpy-hodl.js +244 -0
  389. package/test/jarvis/2jpy-update-nov22.js +182 -0
  390. package/test/jarvis/2jpy-update.js +177 -0
  391. package/test/jarvis/2jpy-update2.js +182 -0
  392. package/test/jarvis/2jpyv2-upgrade.js +184 -0
  393. package/test/jarvis/2nzd-hodl.js +176 -0
  394. package/test/jarvis/2nzd-update.js +182 -0
  395. package/test/jarvis/2sgd-hodl.js +176 -0
  396. package/test/jarvis/2sgd-update-nov22.js +182 -0
  397. package/test/jarvis/2sgd-update.js +182 -0
  398. package/test/jarvis/2sgd-update2.js +182 -0
  399. package/test/jarvis/4eur-hodl-upgrade.js +177 -0
  400. package/test/jarvis/4eur-hodl.js +183 -0
  401. package/test/jarvis/4eur-update.js +181 -0
  402. package/test/jarvis/4eur-update2.js +181 -0
  403. package/test/jarvis/agden-2eur.js +222 -0
  404. package/test/jarvis/aur-usdc-v2.js +115 -0
  405. package/test/jarvis/aur-usdc.js +127 -0
  406. package/test/jarvis/aur3-usdc.js +115 -0
  407. package/test/jarvis/aurjul22-weth.js +222 -0
  408. package/test/jarvis/den-4eur.js +115 -0
  409. package/test/jarvis/den2-4eur.js +220 -0
  410. package/test/jarvis/den3-4eur.js +220 -0
  411. package/test/jarvis/den4-4eur.js +220 -0
  412. package/test/jarvis/jchf-usdc-hodl-v2.js +184 -0
  413. package/test/jarvis/jchf-usdc-hodl-v3.js +178 -0
  414. package/test/jarvis/jchf-usdc-hodl.js +193 -0
  415. package/test/jarvis/jchf-weth-hodl.js +176 -0
  416. package/test/jarvis/jeur-usdc-hodl-v2.js +184 -0
  417. package/test/jarvis/jeur-usdc-hodl-v3.js +178 -0
  418. package/test/jarvis/jeur-usdc-hodl.js +193 -0
  419. package/test/jarvis/jeur-weth-hodl.js +176 -0
  420. package/test/jarvis/jgbp-usdc-hodl-v2.js +184 -0
  421. package/test/jarvis/jgbp-usdc-hodl-v3.js +178 -0
  422. package/test/jarvis/jgbp-usdc-hodl.js +193 -0
  423. package/test/jarvis/jrtangle-2eurageur.js +220 -0
  424. package/test/jarvis/jrtanglenov22-2eurageur.js +220 -0
  425. package/test/jarvis/jrtjul22-usdc.js +115 -0
  426. package/test/jarvis/jrtmay22-usdc.js +115 -0
  427. package/test/jarvis/jrtmimo-2eurpar.js +220 -0
  428. package/test/jarvis/jrtmimonov22-2eurpar.js +220 -0
  429. package/test/jarvis/jrtnov22-usdc.js +220 -0
  430. package/test/jarvis/jrtsep22-usdc.js +220 -0
  431. package/test/jarvis/qui-2cad.js +218 -0
  432. package/test/jarvis/ses-2jpy.js +222 -0
  433. package/test/meshswap/mesh-omooi.js +197 -0
  434. package/test/meshswap/mesh-ozemit.js +197 -0
  435. package/test/meshswap/usdc-ousdc.js +197 -0
  436. package/test/meshswap/usdt-ousdt.js +197 -0
  437. package/test/meshswap/wmatic-mesh.js +197 -0
  438. package/test/meshswap/wmatic-usdc.js +197 -0
  439. package/test/meshswap/wmatic-usdt.js +197 -0
  440. package/test/mstable/musd.js +123 -0
  441. package/test/pearl/cvr-pearl.js +198 -0
  442. package/test/pearl/cvr.js +133 -0
  443. package/test/pearl/dai-usdr.js +198 -0
  444. package/test/pearl/eth-usdr.js +198 -0
  445. package/test/pearl/matic-usdr.js +198 -0
  446. package/test/pearl/pearl-usdr.js +198 -0
  447. package/test/pearl/star-usdr.js +186 -0
  448. package/test/pearl/tngbl-usdr.js +198 -0
  449. package/test/pearl/usdc-usdr.js +198 -0
  450. package/test/pearl/usdt-usdr.js +198 -0
  451. package/test/pearl/wbtc-usdr.js +198 -0
  452. package/test/pearl/wusdr-usdr.js +198 -0
  453. package/test/popsicle/ice-weth.js +128 -0
  454. package/test/quick/eth-matic.js +132 -0
  455. package/test/quick/eth-usdt.js +140 -0
  456. package/test/quick/ifarm-quick.js +147 -0
  457. package/test/quick/matic-usdc.js +145 -0
  458. package/test/quick/psp-matic.js +124 -0
  459. package/test/quick/wbtc-eth.js +145 -0
  460. package/test/quick-gamma/cbeth-eth.js +207 -0
  461. package/test/quick-gamma/matic-eth-narrow.js +201 -0
  462. package/test/quick-gamma/matic-eth-wide.js +197 -0
  463. package/test/quick-gamma/matic-usdc-narrow.js +197 -0
  464. package/test/quick-gamma/matic-usdc-wide.js +197 -0
  465. package/test/quick-gamma/upgrade/matic-eth-narrow.js +204 -0
  466. package/test/quick-gamma/upgrade/matic-usdc-narrow.js +199 -0
  467. package/test/quick-gamma/usdc-dai.js +209 -0
  468. package/test/quick-gamma/usdc-eth-narrow.js +197 -0
  469. package/test/quick-gamma/usdc-eth-wide.js +197 -0
  470. package/test/quick-gamma/usdc-usdt.js +209 -0
  471. package/test/quick-gamma/wbtc-eth-narrow.js +207 -0
  472. package/test/quick-gamma/wbtc-usdc-narrow.js +209 -0
  473. package/test/quick-gamma/wsteth-eth.js +207 -0
  474. package/test/sushi/eth-usdt.js +153 -0
  475. package/test/sushi/matic-eth.js +138 -0
  476. package/test/sushi/usdc-eth.js +153 -0
  477. package/test/test-config.js +24 -0
  478. package/test/uniswap-gamma/usdc-dai.js +212 -0
  479. package/test/uniswap-gamma/usdc-usdt.js +212 -0
  480. package/test/uniswap-gamma/usdc-weth.js +212 -0
  481. package/test/uniswap-gamma/wmatic-usdc.js +210 -0
  482. package/test/utilities/Utils.js +96 -0
  483. package/test/utilities/hh-utils.js +242 -0
  484. package/test/utilities/make-vault.js +10 -0
  485. package/test/yel/yel-wmatic.js +129 -0
@@ -0,0 +1,32 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_MATIC_USDC_ETH_BAL is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x0297e37f1873D2DAb4487Aa67cD56B58E2F27875);
16
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
17
+ address gauge = address(0x0aea1abC694a3608C8aC5F131d8310f95039111A);
18
+ BalancerStrategyV3.initializeBaseStrategy(
19
+ _storage,
20
+ underlying,
21
+ _vault,
22
+ gauge,
23
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
24
+ 0x0297e37f1873d2dab4487aa67cd56b58e2f27875000100000000000000000002, // Pool id
25
+ weth, //depositToken
26
+ false //boosted
27
+ );
28
+ rewardTokens = [bal];
29
+ reward2WETH[bal] = [bal, weth];
30
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
31
+ }
32
+ }
@@ -0,0 +1,37 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_MaticX is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0xb20fC01D21A50d2C734C4a1262B4404d41fA7BF0);
16
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address sd = address(0x1d734A02eF1e1f5886e66b0673b71Af5B53ffA94);
19
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
20
+ address gauge = address(0xdFFe97094394680362Ec9706a759eB9366d804C2);
21
+ BalancerStrategyV3.initializeBaseStrategy(
22
+ _storage,
23
+ underlying,
24
+ _vault,
25
+ gauge,
26
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
27
+ 0xb20fc01d21a50d2c734c4a1262b4404d41fa7bf000000000000000000000075c, // Pool id
28
+ wmatic, //depositToken
29
+ true //boosted
30
+ );
31
+ rewardTokens = [bal, sd];
32
+ reward2WETH[bal] = [bal, weth];
33
+ reward2WETH[sd] = [sd, usdc, weth];
34
+ WETH2deposit = [weth, wmatic];
35
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
36
+ }
37
+ }
@@ -0,0 +1,38 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_MaticX_amMatic is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0xE78b25c06dB117fdF8F98583CDaaa6c92B79E917);
16
+ address maticX = address(0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6);
17
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
18
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
19
+ address sd = address(0x1d734A02eF1e1f5886e66b0673b71Af5B53ffA94);
20
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
21
+ address gauge = address(0x956074628A64a316086f7125074a8A52d3306321);
22
+ BalancerStrategyV3.initializeBaseStrategy(
23
+ _storage,
24
+ underlying,
25
+ _vault,
26
+ gauge,
27
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
28
+ 0xe78b25c06db117fdf8f98583cdaaa6c92b79e917000000000000000000000b2b, // Pool id
29
+ maticX, //depositToken
30
+ true //boosted
31
+ );
32
+ rewardTokens = [bal, sd];
33
+ reward2WETH[bal] = [bal, weth];
34
+ reward2WETH[sd] = [sd, usdc, weth];
35
+ WETH2deposit = [weth, wmatic, maticX];
36
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
37
+ }
38
+ }
@@ -0,0 +1,34 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_SPHERE_MATIC is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0xf3312968c7D768C19107731100Ece7d4780b47B2);
16
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
17
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
18
+ address gauge = address(0xFB0243ffDC5309A4ec13b9de9111Da02294b2571);
19
+ BalancerStrategyV3.initializeBaseStrategy(
20
+ _storage,
21
+ underlying,
22
+ _vault,
23
+ gauge,
24
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
25
+ 0xf3312968c7d768c19107731100ece7d4780b47b2000200000000000000000a50, // Pool id
26
+ wmatic, //depositToken
27
+ false //boosted
28
+ );
29
+ rewardTokens = [bal];
30
+ reward2WETH[bal] = [bal, weth];
31
+ WETH2deposit = [weth, wmatic];
32
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
33
+ }
34
+ }
@@ -0,0 +1,34 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_TNGBL_USDC is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x9F9F548354B7C66Dc9a9f3373077D86AAACCF8F2);
16
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
17
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
18
+ address gauge = address(0xb2A8f0f477Aae4D78Ea78d85234233285c91bB08);
19
+ BalancerStrategyV3.initializeBaseStrategy(
20
+ _storage,
21
+ underlying,
22
+ _vault,
23
+ gauge,
24
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
25
+ 0x9f9f548354b7c66dc9a9f3373077d86aaaccf8f2000200000000000000000a4a, // Pool id
26
+ usdc, //depositToken
27
+ false //boosted
28
+ );
29
+ rewardTokens = [bal];
30
+ reward2WETH[bal] = [bal, weth];
31
+ WETH2deposit = [weth, usdc];
32
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
33
+ }
34
+ }
@@ -0,0 +1,32 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_WBTC_ETH_USDC is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x03cD191F589d12b0582a99808cf19851E468E6B5);
16
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
17
+ address gauge = address(0x219b3a4a2D2351582277A87048995034ca7e9aEF);
18
+ BalancerStrategyV3.initializeBaseStrategy(
19
+ _storage,
20
+ underlying,
21
+ _vault,
22
+ gauge,
23
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
24
+ 0x03cd191f589d12b0582a99808cf19851e468e6b500010000000000000000000a, // Pool id
25
+ weth, //depositToken
26
+ false //boosted
27
+ );
28
+ rewardTokens = [bal];
29
+ reward2WETH[bal] = [bal, weth];
30
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
31
+ }
32
+ }
@@ -0,0 +1,36 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_bbamusd is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x48e6B98ef6329f8f0A30eBB8c7C960330d648085);
16
+ address bbamdai = address(0x178E029173417b1F9C8bC16DCeC6f697bC323746);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address dai = address(0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063);
19
+ address gauge = address(0x1c514fEc643AdD86aeF0ef14F4add28cC3425306);
20
+ BalancerStrategyV3.initializeBaseStrategy(
21
+ _storage,
22
+ underlying,
23
+ _vault,
24
+ gauge,
25
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
26
+ 0x48e6b98ef6329f8f0a30ebb8c7c960330d64808500000000000000000000075b, // Pool id
27
+ bbamdai, //depositToken
28
+ true //boosted
29
+ );
30
+ rewardTokens = [bal];
31
+ reward2WETH[bal] = [bal, weth];
32
+ WETH2deposit = [weth, dai, bbamdai];
33
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
34
+ poolIds[dai][bbamdai] = 0x178e029173417b1f9c8bc16dcec6f697bc323746000000000000000000000758;
35
+ }
36
+ }
@@ -0,0 +1,32 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_frxETH is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x5DEe84FfA2DC27419Ba7b3419d7146E53e4F7dEd);
16
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
17
+ address gauge = address(0xF75Bf196b64f2FCf942C29b5bE7f4742e4fD16Bd);
18
+ BalancerStrategyV3.initializeBaseStrategy(
19
+ _storage,
20
+ underlying,
21
+ _vault,
22
+ gauge,
23
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
24
+ 0x5dee84ffa2dc27419ba7b3419d7146e53e4f7ded000200000000000000000a4e, // Pool id
25
+ weth, //depositToken
26
+ false //boosted
27
+ );
28
+ rewardTokens = [bal];
29
+ reward2WETH[bal] = [bal, weth];
30
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
31
+ }
32
+ }
@@ -0,0 +1,35 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_frxETH_amWETH is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0xD00f9Ca46ce0E4A63067c4657986f0167b0De1E5);
16
+ address bbaWETH = address(0x43894DE14462B421372bCFe445fA51b1b4A0Ff3D);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address gauge = address(0x83Ed440E7122FE3EFA28d3BC9d9eFca1952Ccb4b);
19
+ BalancerStrategyV3.initializeBaseStrategy(
20
+ _storage,
21
+ underlying,
22
+ _vault,
23
+ gauge,
24
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
25
+ 0xd00f9ca46ce0e4a63067c4657986f0167b0de1e5000000000000000000000b42, // Pool id
26
+ bbaWETH, //depositToken
27
+ true //boosted
28
+ );
29
+ rewardTokens = [bal];
30
+ reward2WETH[bal] = [bal, weth];
31
+ WETH2deposit = [weth, bbaWETH];
32
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
33
+ poolIds[weth][bbaWETH] = 0x43894de14462b421372bcfe445fa51b1b4a0ff3d000000000000000000000b36;
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_stETH is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x65Fe9314bE50890Fb01457be076fAFD05Ff32B9A);
16
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address ldo = address(0xC3C7d422809852031b44ab29EEC9F1EfF2A58756);
19
+ address gauge = address(0x94e5C0270250d9E13B0545279807eF8c6c4Ed2a3);
20
+ BalancerStrategyV3.initializeBaseStrategy(
21
+ _storage,
22
+ underlying,
23
+ _vault,
24
+ gauge,
25
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
26
+ 0x65fe9314be50890fb01457be076fafd05ff32b9a000000000000000000000a96, // Pool id
27
+ weth, //depositToken
28
+ true //boosted
29
+ );
30
+ rewardTokens = [bal, ldo];
31
+ reward2WETH[bal] = [bal, weth];
32
+ reward2WETH[ldo] = [ldo, wmatic, weth];
33
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
34
+ }
35
+ }
@@ -0,0 +1,36 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_stMatic is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x8159462d255C1D24915CB51ec361F700174cD994);
16
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address ldo = address(0xC3C7d422809852031b44ab29EEC9F1EfF2A58756);
19
+ address gauge = address(0x2Aa6fB79EfE19A3fcE71c46AE48EFc16372ED6dD);
20
+ BalancerStrategyV3.initializeBaseStrategy(
21
+ _storage,
22
+ underlying,
23
+ _vault,
24
+ gauge,
25
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
26
+ 0x8159462d255c1d24915cb51ec361f700174cd99400000000000000000000075d, // Pool id
27
+ wmatic, //depositToken
28
+ true //boosted
29
+ );
30
+ rewardTokens = [bal, ldo];
31
+ reward2WETH[bal] = [bal, weth];
32
+ reward2WETH[ldo] = [ldo, wmatic, weth];
33
+ WETH2deposit = [weth, wmatic];
34
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
35
+ }
36
+ }
@@ -0,0 +1,39 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_stMatic_amMatic is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x216690738Aac4aa0C4770253CA26a28f0115c595);
16
+ address stMatic = address(0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4);
17
+ address wmatic = address(0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270);
18
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
19
+ address ldo = address(0xC3C7d422809852031b44ab29EEC9F1EfF2A58756);
20
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
21
+ address gauge = address(0x1e916950A659Da9813EE34479BFf04C732E03deb);
22
+ BalancerStrategyV3.initializeBaseStrategy(
23
+ _storage,
24
+ underlying,
25
+ _vault,
26
+ gauge,
27
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
28
+ 0x216690738aac4aa0c4770253ca26a28f0115c595000000000000000000000b2c, // Pool id
29
+ stMatic, //depositToken
30
+ true //boosted
31
+ );
32
+ rewardTokens = [bal, ldo, usdc];
33
+ reward2WETH[bal] = [bal, weth];
34
+ reward2WETH[ldo] = [ldo, wmatic, weth];
35
+ reward2WETH[usdc] = [usdc, weth];
36
+ WETH2deposit = [weth, wmatic, stMatic];
37
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
38
+ }
39
+ }
@@ -0,0 +1,36 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_tetuBal is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0xB797AdfB7b268faeaA90CAdBfEd464C76ee599Cd);
16
+ address wethBal = address(0x3d468AB2329F296e1b9d8476Bb54Dd77D8c2320f);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address gauge = address(0xAA59736b80cf77d1E7D56B7bbA5A8050805F5064);
19
+ BalancerStrategyV3.initializeBaseStrategy(
20
+ _storage,
21
+ underlying,
22
+ _vault,
23
+ gauge,
24
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
25
+ 0xb797adfb7b268faeaa90cadbfed464c76ee599cd0002000000000000000005ba, // Pool id
26
+ wethBal, //depositToken
27
+ false //boosted
28
+ );
29
+ rewardTokens = [bal];
30
+ reward2WETH[bal] = [bal, weth];
31
+ WETH2deposit = [weth, wethBal];
32
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
33
+ poolIds[weth][wethBal] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
34
+ deposit[weth][wethBal] = true;
35
+ }
36
+ }
@@ -0,0 +1,34 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_wUSDR_USDC is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x34A81e8956BF20b7448b31990A2c06F96830a6e4);
16
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address gauge = address(0x80f392Bf3FA6973C3e14bb276e04931Ec12DE05E);
19
+ BalancerStrategyV3.initializeBaseStrategy(
20
+ _storage,
21
+ underlying,
22
+ _vault,
23
+ gauge,
24
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
25
+ 0x34a81e8956bf20b7448b31990a2c06f96830a6e4000200000000000000000a14, // Pool id
26
+ usdc, //depositToken
27
+ false //boosted
28
+ );
29
+ rewardTokens = [bal];
30
+ reward2WETH[bal] = [bal, weth];
31
+ WETH2deposit = [weth, usdc];
32
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
33
+ }
34
+ }
@@ -0,0 +1,37 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+ pragma experimental ABIEncoderV2;
4
+
5
+ import "./BalancerStrategyV3.sol";
6
+
7
+ contract BalancerStrategyV3Mainnet_wstETH_amWETH is BalancerStrategyV3 {
8
+
9
+ constructor() public {}
10
+
11
+ function initializeStrategy(
12
+ address _storage,
13
+ address _vault
14
+ ) public initializer {
15
+ address underlying = address(0x4a77eF015ddcd972fd9BA2C7D5D658689D090f1A);
16
+ address bbaWETH = address(0x43894DE14462B421372bCFe445fA51b1b4A0Ff3D);
17
+ address bal = address(0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3);
18
+ address usdc = address(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);
19
+ address gauge = address(0xB95397A17ACbb5824535ebE69Cd9DCF8fA7aFC50);
20
+ BalancerStrategyV3.initializeBaseStrategy(
21
+ _storage,
22
+ underlying,
23
+ _vault,
24
+ gauge,
25
+ address(0xBA12222222228d8Ba445958a75a0704d566BF2C8), //balancer vault
26
+ 0x4a77ef015ddcd972fd9ba2c7d5d658689d090f1a000000000000000000000b38, // Pool id
27
+ bbaWETH, //depositToken
28
+ true //boosted
29
+ );
30
+ rewardTokens = [bal, usdc];
31
+ reward2WETH[bal] = [bal, weth];
32
+ reward2WETH[usdc] = [usdc, weth];
33
+ WETH2deposit = [weth, bbaWETH];
34
+ poolIds[bal][weth] = 0x3d468ab2329f296e1b9d8476bb54dd77d8c2320f000200000000000000000426;
35
+ poolIds[weth][bbaWETH] = 0x43894de14462b421372bcfe445fa51b1b4a0ff3d000000000000000000000b36;
36
+ }
37
+ }
@@ -0,0 +1,26 @@
1
+ //SPDX-License-Identifier: Unlicense
2
+ pragma solidity 0.6.12;
3
+
4
+ interface Gauge {
5
+ function deposit(uint) external;
6
+ function balanceOf(address) external view returns (uint);
7
+ function withdraw(uint) external;
8
+ function user_checkpoint(address) external;
9
+ function claim_rewards() external;
10
+ function bal_pseudo_minter() external view returns (address);
11
+ }
12
+
13
+ interface VotingEscrow {
14
+ function create_lock(uint256 v, uint256 time) external;
15
+ function increase_amount(uint256 _value) external;
16
+ function increase_unlock_time(uint256 _unlock_time) external;
17
+ function withdraw() external;
18
+ }
19
+
20
+ interface Mintr {
21
+ function mint(address) external;
22
+ }
23
+
24
+ interface ICurveLP {
25
+ function minter() external view returns(address);
26
+ }