@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.
- package/README.md +110 -5
- package/contracts/base/Controller.sol +125 -0
- package/contracts/base/ControllerV2.sol +363 -0
- package/contracts/base/FeeRewardForwarder.sol +163 -0
- package/contracts/base/PotPool.sol +360 -0
- package/contracts/base/ProfitSharingReceiver.sol +39 -0
- package/contracts/base/RewardForwarderV2.sol +109 -0
- package/contracts/base/Vault.sol +344 -0
- package/contracts/base/VaultERC4626.sol +113 -0
- package/contracts/base/VaultProxy.sol +35 -0
- package/contracts/base/VaultStorage.sol +199 -0
- package/contracts/base/VaultStorageV2.sol +196 -0
- package/contracts/base/VaultV2.sol +369 -0
- package/contracts/base/ape-base/MiniApeV2Strategy.sol +322 -0
- package/contracts/base/ape-base/interface/IMiniChefV2.sol +31 -0
- package/contracts/base/ape-base/interface/IRewarder.sol +10 -0
- package/contracts/base/factory/MegaFactory.sol +120 -0
- package/contracts/base/factory/interface/IPoolFactory.sol +6 -0
- package/contracts/base/factory/interface/IStrategyFactory.sol +6 -0
- package/contracts/base/factory/interface/IVaultFactory.sol +7 -0
- package/contracts/base/factory/pool/PotPoolFactory.sol +43 -0
- package/contracts/base/factory/strategy/UpgradableStrategyFactory.sol +19 -0
- package/contracts/base/factory/vault/RegularVaultFactory.sol +34 -0
- package/contracts/base/incentives/GlobalIncentivesHelper.sol +167 -0
- package/contracts/base/incentives/NotifyHelperGeneric.sol +61 -0
- package/contracts/base/incentives/NotifyHelperStateful.sol +290 -0
- package/contracts/base/inheritance/Controllable.sol +26 -0
- package/contracts/base/inheritance/ControllableInit.sol +31 -0
- package/contracts/base/inheritance/Governable.sol +29 -0
- package/contracts/base/inheritance/GovernableInit.sol +51 -0
- package/contracts/base/inheritance/IUpgradeSource.sol +8 -0
- package/contracts/base/inheritance/OwnableWhitelist.sol +17 -0
- package/contracts/base/inheritance/RewardTokenProfitNotifier.sol +48 -0
- package/contracts/base/inheritance/Storage.sol +36 -0
- package/contracts/base/interface/IController.sol +30 -0
- package/contracts/base/interface/IControllerV2.sol +135 -0
- package/contracts/base/interface/IERC4626.sol +263 -0
- package/contracts/base/interface/IFeeRewardForwarder.sol +9 -0
- package/contracts/base/interface/IProfitSharingReceiver.sol +10 -0
- package/contracts/base/interface/IRewardForwarder.sol +58 -0
- package/contracts/base/interface/IRewardPool.sol +34 -0
- package/contracts/base/interface/IStrategy.sol +25 -0
- package/contracts/base/interface/IUniversalLiquidator.sol +21 -0
- package/contracts/base/interface/IUniversalLiquidatorRegistry.sol +20 -0
- package/contracts/base/interface/IUpgradeSource.sol +8 -0
- package/contracts/base/interface/IVault.sol +35 -0
- package/contracts/base/interface/aave/DataTypes.sol +266 -0
- package/contracts/base/interface/aave/IAToken.sol +37 -0
- package/contracts/base/interface/aave/IPool.sol +13 -0
- package/contracts/base/interface/balancer/Gauge.sol +22 -0
- package/contracts/base/interface/balancer/IBVault.sol +557 -0
- package/contracts/base/interface/balancer/IBalancerMinter.sol +114 -0
- package/contracts/base/interface/balancer/linearPool/ILinearPool.sol +185 -0
- package/contracts/base/interface/balancer/linearPool/ILinearPoolFactory.sol +16 -0
- package/contracts/base/interface/balancer/linearPool/ILinearPoolRebalancer.sol +8 -0
- package/contracts/base/interface/balancer/linearPool/IPoolSwapStructs.sol +57 -0
- package/contracts/base/interface/caviar/ICaviarChef.sol +16 -0
- package/contracts/base/interface/compound/IComet.sol +114 -0
- package/contracts/base/interface/compound/ICometRewards.sol +17 -0
- package/contracts/base/interface/curve/Gauge.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_2token.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_2token_underlying.sol +31 -0
- package/contracts/base/interface/curve/ICurveDeposit_3token.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_3token_meta.sol +20 -0
- package/contracts/base/interface/curve/ICurveDeposit_3token_underlying.sol +31 -0
- package/contracts/base/interface/curve/ICurveDeposit_4token.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_4token_meta.sol +20 -0
- package/contracts/base/interface/curve/ICurveDeposit_4token_underlying.sol +31 -0
- package/contracts/base/interface/curve/ICurveDeposit_5token.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_5token_meta.sol +20 -0
- package/contracts/base/interface/curve/ICurveDeposit_5token_underlying.sol +31 -0
- package/contracts/base/interface/curve/ICurveDeposit_6token.sol +25 -0
- package/contracts/base/interface/curve/ICurveDeposit_6token_meta.sol +20 -0
- package/contracts/base/interface/gamma/IClearing.sol +8 -0
- package/contracts/base/interface/gamma/IHypervisor.sol +17 -0
- package/contracts/base/interface/gamma/IStakingRewards.sol +35 -0
- package/contracts/base/interface/gamma/IUniProxy.sol +15 -0
- package/contracts/base/interface/kyber/IDMMExchangeRouter.sol +69 -0
- package/contracts/base/interface/kyber/IDMMFactory.sol +35 -0
- package/contracts/base/interface/kyber/IDMMLiquidityRouter.sol +204 -0
- package/contracts/base/interface/kyber/IDMMPool.sol +42 -0
- package/contracts/base/interface/kyber/IDMMRouter01.sol +12 -0
- package/contracts/base/interface/kyber/IDMMRouter02.sol +55 -0
- package/contracts/base/interface/kyber/IKyberZap.sol +7 -0
- package/contracts/base/interface/merkl/IDistributor.sol +6 -0
- package/contracts/base/interface/morpho/IMetaMorpho.sol +7 -0
- package/contracts/base/interface/pearl/IGauge.sol +13 -0
- package/contracts/base/interface/pearl/IPair.sol +44 -0
- package/contracts/base/interface/pearl/IRouter.sol +305 -0
- package/contracts/base/interface/quickswap/IDragonLair.sol +25 -0
- package/contracts/base/interface/quickswap/IMasterChef.sol +13 -0
- package/contracts/base/interface/uniswap/IUniswapV2Factory.sol +15 -0
- package/contracts/base/interface/uniswap/IUniswapV2Migrator.sol +6 -0
- package/contracts/base/interface/uniswap/IUniswapV2Pair.sol +59 -0
- package/contracts/base/interface/uniswap/IUniswapV2Router01.sol +96 -0
- package/contracts/base/interface/uniswap/IUniswapV2Router02.sol +137 -0
- package/contracts/base/interface/uniswap/IUniswapV3Pool.sol +24 -0
- package/contracts/base/interface/uniswap/IUniswapV3Router.sol +64 -0
- package/contracts/base/interface/uniswap/IWETH.sol +8 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolActions.sol +103 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolDerivedState.sol +40 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolEvents.sol +121 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolImmutables.sol +35 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolOwnerActions.sol +23 -0
- package/contracts/base/interface/uniswap/pool/IUniswapV3PoolState.sol +116 -0
- package/contracts/base/masterchef-base/MasterChefHodlStrategy.sol +240 -0
- package/contracts/base/masterchef-base/MasterChefStrategy.sol +364 -0
- package/contracts/base/masterchef-base/interfaces/IMasterChef.sol +12 -0
- package/contracts/base/migration/vaultMigratable_2JPYv2.sol +87 -0
- package/contracts/base/migration/vaultMigratable_bal2EUR_PAR.sol +121 -0
- package/contracts/base/migration/vaultMigratable_bal2EUR_agEUR.sol +121 -0
- package/contracts/base/migration/vaultMigratable_balMaticX.sol +153 -0
- package/contracts/base/migration/vaultMigratable_balStMatic.sol +153 -0
- package/contracts/base/noop/NoopStrategy.sol +89 -0
- package/contracts/base/noop/NoopStrategyUpgradeable.sol +92 -0
- package/contracts/base/sushi-base/MiniChefV2Strategy.sol +380 -0
- package/contracts/base/sushi-base/interface/IMiniChefV2.sol +31 -0
- package/contracts/base/sushi-base/interface/IRewarder.sol +9 -0
- package/contracts/base/sushi-base/lib/BoringERC20.sol +30 -0
- package/contracts/base/upgradability/Address.sol +33 -0
- package/contracts/base/upgradability/BaseUpgradeabilityProxy.sol +61 -0
- package/contracts/base/upgradability/BaseUpgradeableStrategy.sol +111 -0
- package/contracts/base/upgradability/BaseUpgradeableStrategyStorage.sol +176 -0
- package/contracts/base/upgradability/BaseUpgradeableStrategyStorageV2.sol +290 -0
- package/contracts/base/upgradability/BaseUpgradeableStrategyV2.sol +145 -0
- package/contracts/base/upgradability/IUpgradable.sol +7 -0
- package/contracts/base/upgradability/Proxy.sol +71 -0
- package/contracts/base/upgradability/ReentrancyGuard.sol +57 -0
- package/contracts/base/upgradability/ReentrancyGuardUpgradeable.sol +51 -0
- package/contracts/base/upgradability/StrategyProxy.sol +35 -0
- package/contracts/base/wmatic/WMATIC.sol +8 -0
- package/contracts/strategies/aave/AaveSupplyStrategy.sol +213 -0
- package/contracts/strategies/aave/AaveSupplyStrategyMainnet_DAI.sol +23 -0
- package/contracts/strategies/aave/AaveSupplyStrategyMainnet_EURS.sol +23 -0
- package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDC.sol +23 -0
- package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDCe.sol +23 -0
- package/contracts/strategies/aave/AaveSupplyStrategyMainnet_USDT.sol +23 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_BANANA_MATIC.sol +36 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_BNB_MATIC.sol +36 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_BTC_MATIC.sol +36 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_DAI_MATIC.sol +36 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_DAI_USDC.sol +37 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_ETH_MATIC.sol +36 -0
- package/contracts/strategies/ape/ApeStrategyMainnet_USDT_MATIC.sol +36 -0
- package/contracts/strategies/aura/AuraStrategy.sol +347 -0
- package/contracts/strategies/aura/AuraStrategyMainnet_jEUR_PAR.sol +30 -0
- package/contracts/strategies/aura/interface/IAuraBaseRewardPool.sol +25 -0
- package/contracts/strategies/aura/interface/IAuraBooster.sol +17 -0
- package/contracts/strategies/aura/interface/IAuraDepositor.sol +7 -0
- package/contracts/strategies/balancer/BalancerStrategyV3.sol +509 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2BRL.sol +39 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2BRLUSD.sol +38 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_PAR.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_PARv2.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_2EUR_agEUR.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MATIC_USDC_ETH_BAL.sol +32 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MaticX.sol +37 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_MaticX_amMatic.sol +38 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_SPHERE_MATIC.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_TNGBL_USDC.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_WBTC_ETH_USDC.sol +32 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_bbamusd.sol +36 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_frxETH.sol +32 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_frxETH_amWETH.sol +35 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stETH.sol +35 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stMatic.sol +36 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_stMatic_amMatic.sol +39 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_tetuBal.sol +36 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_wUSDR_USDC.sol +34 -0
- package/contracts/strategies/balancer/BalancerStrategyV3Mainnet_wstETH_amWETH.sol +37 -0
- package/contracts/strategies/balancer/interface/Gauge.sol +26 -0
- package/contracts/strategies/balancer/interface/IBVault.sol +557 -0
- package/contracts/strategies/balancer/interface/IBalanceMinter.sol +114 -0
- package/contracts/strategies/complifi/ComplifiDerivStrategy.sol +381 -0
- package/contracts/strategies/complifi/ComplifiDerivStrategyMainnet_ETH5x.sol +35 -0
- package/contracts/strategies/complifi/ComplifiStrategy.sol +362 -0
- package/contracts/strategies/complifi/ComplifiStrategyMainnet_COMFI_WETH.sol +34 -0
- package/contracts/strategies/complifi/interfaces/ILiquidityMining.sol +13 -0
- package/contracts/strategies/complifi/interfaces/ILiquidityPool.sol +63 -0
- package/contracts/strategies/complifi/interfaces/IProxyActions.sol +10 -0
- package/contracts/strategies/complifi/interfaces/IUSDCVault.sol +55 -0
- package/contracts/strategies/compound/CompoundStrategy.sol +296 -0
- package/contracts/strategies/compound/CompoundStrategyMainnet_USDC.sol +28 -0
- package/contracts/strategies/compound/CompoundStrategyMainnet_USDT.sol +28 -0
- package/contracts/strategies/compound-blue/CompoundBlueStrategy.sol +292 -0
- package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_ETH.sol +27 -0
- package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_USDC.sol +27 -0
- package/contracts/strategies/compound-blue/CompoundBlueStrategyMainnet_USDT.sol +27 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_3CRV.sol +40 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_3CRYPTO.sol +37 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_CRV_3CRYPTO copy.sol +37 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_MATIC_3CRYPTO.sol +37 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_USDR.sol +40 -0
- package/contracts/strategies/convex/ConvexStrategyMainnet_aCRV.sol +38 -0
- package/contracts/strategies/convex/base/ConvexStrategy.sol +480 -0
- package/contracts/strategies/convex/interface/IBaseRewardPool.sol +13 -0
- package/contracts/strategies/convex/interface/IBooster.sol +10 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategy.sol +272 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_ETH_USDC.sol +25 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_ETH_USDT.sol +25 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_MATIC_USDT.sol +25 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_TBTC_ETH.sol +25 -0
- package/contracts/strategies/gamma-merkl/GammaMerklStrategyMainnet_QS_WBTC_ETH_w.sol +25 -0
- package/contracts/strategies/genomes/NoopStrategy_GENE_ETH.sol +23 -0
- package/contracts/strategies/genomes/NoopStrategy_GNOME_ETH.sol +23 -0
- package/contracts/strategies/idle/IdleFinanceStrategy.sol +240 -0
- package/contracts/strategies/idle/IdleStrategyDAIMainnet.sol +33 -0
- package/contracts/strategies/idle/IdleStrategyUSDCMainnet.sol +33 -0
- package/contracts/strategies/idle/IdleStrategyWETHMainnet.sol +30 -0
- package/contracts/strategies/idle/interface/IdleToken.sol +58 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3.sol +351 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2CAD.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_EURT.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_EURe.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2EUR_PAR.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2JPY.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2JPYv2.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2NZD.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_2SGD.sol +34 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jCHF_USDC.sol +35 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jCHF_WETH.sol +35 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jEUR_USDC.sol +35 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jEUR_WETH.sol +35 -0
- package/contracts/strategies/jarvis/JarvisHodlStrategyV3Mainnet_jGBP_USDC.sol +35 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3.sol +281 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_AUR3_USDC.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_AURJUL22_WETH.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN2_4EUR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN3_4EUR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_DEN4_4EUR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTANGLENOV22_2EURagEUR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTANGLE_2EURagEUR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTJUL22_USDC.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMAY22_USDC.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMIMONOV22_2EURPAR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTMIMO_2EURPAR.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTNOV22_USDC.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_JRTSEP22_USDC.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_QUI_2CAD.sol +27 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_SES_2JPY.sol +28 -0
- package/contracts/strategies/jarvis/JarvisStrategyV3Mainnet_agDEN_2EUR.sol +27 -0
- package/contracts/strategies/jarvis/interface/IElysianFields.sol +11 -0
- package/contracts/strategies/jarvis/interface/IKyberFairLaunch.sol +13 -0
- package/contracts/strategies/jarvis/interface/IKyberRewardLocker.sol +9 -0
- package/contracts/strategies/meshswap/MeshswapStrategy.sol +304 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_MESH_oMOOI.sol +30 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_MESH_oZEMIT.sol +30 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_USDC_oUSDC.sol +31 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_USDT_oUSDT.sol +31 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_MESH.sol +27 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_USDC.sol +28 -0
- package/contracts/strategies/meshswap/MeshswapStrategyMainnet_WMATIC_USDT.sol +28 -0
- package/contracts/strategies/meshswap/interface/IExchange.sol +9 -0
- package/contracts/strategies/meshswap/interface/IRouter.sol +68 -0
- package/contracts/strategies/pearl/CaviarStrategy.sol +244 -0
- package/contracts/strategies/pearl/CaviarStrategyMainnet_CVR.sol +26 -0
- package/contracts/strategies/pearl/PearlHodlStrategy.sol +254 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_CVR_PEARL.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_DAI_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_ETH_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_MATIC_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_PEARL_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_STAR_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_TNGBL_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_USDC_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_USDT_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_WBTC_USDR.sol +27 -0
- package/contracts/strategies/pearl/PearlHodlStrategyMainnet_wUSDR_USDR.sol +27 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategy.sol +400 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_ETH_narrow.sol +31 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_ETH_wide.sol +31 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_USDC_narrow.sol +31 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_MATIC_USDC_wide.sol +31 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_USDC_ETH_narrow.sol +34 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyMainnet_USDC_ETH_wide.sol +34 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2.sol +348 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_USDC_DAI.sol +28 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_USDC_USDT.sol +29 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_WBTC_ETH_narrow.sol +28 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_WBTC_USDC_narrow.sol +28 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_cbETH_ETH.sol +28 -0
- package/contracts/strategies/quick-gamma/QuickGammaStrategyV2Mainnet_wstETH_ETH.sol +28 -0
- package/contracts/strategies/uniswap-gamma/UniswapGammaStrategy.sol +312 -0
- package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_DAI.sol +28 -0
- package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_USDT.sol +28 -0
- package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_USDC_WETH.sol +28 -0
- package/contracts/strategies/uniswap-gamma/UniswapGammaStrategyMainnet_WMATIC_USDC.sol +28 -0
- package/contracts/strategies/yel/YelStrategy.sol +350 -0
- package/contracts/strategies/yel/YelStrategyMainnet_YEL_WETH.sol +29 -0
- package/hardhat.config.js +58 -0
- package/index.js +42 -0
- package/package.json +56 -6
- package/scripts/01-deploy-vault-regular-with-upgradable-strategy.js +41 -0
- package/scripts/02-deploy-vault-regular.js +35 -0
- package/scripts/03-deploy-upgradable-strategy.js +34 -0
- package/scripts/04-deploy-new-implementation.js +24 -0
- package/scripts/README.md +55 -0
- package/scripts/utils.js +42 -0
- package/test/aave/dai.js +207 -0
- package/test/aave/eurs.js +207 -0
- package/test/aave/usdc.js +206 -0
- package/test/aave/usdce.js +206 -0
- package/test/aave/usdt.js +206 -0
- package/test/ape/banana-matic.js +157 -0
- package/test/ape/bnb-matic.js +159 -0
- package/test/ape/btc-matic.js +159 -0
- package/test/ape/dai-matic.js +159 -0
- package/test/ape/dai-usdc.js +163 -0
- package/test/ape/eth-matic.js +158 -0
- package/test/ape/usdt-matic.js +159 -0
- package/test/aura/jeur-par.js +135 -0
- package/test/balancer/2brl_v3.js +123 -0
- package/test/balancer/2brlusd_v3.js +123 -0
- package/test/balancer/2eur_ageur.js +141 -0
- package/test/balancer/2eur_par.js +141 -0
- package/test/balancer/2eur_par_v2.js +123 -0
- package/test/balancer/bbamusd_v3.js +124 -0
- package/test/balancer/btc.js +131 -0
- package/test/balancer/frxETH.js +123 -0
- package/test/balancer/frxeth_amweth.js +123 -0
- package/test/balancer/matic_usdc_eth_bal.js +123 -0
- package/test/balancer/maticx_ammatic.js +123 -0
- package/test/balancer/maticx_v2.js +120 -0
- package/test/balancer/maticx_v3.js +141 -0
- package/test/balancer/polybase.js +131 -0
- package/test/balancer/polybase_v2.js +121 -0
- package/test/balancer/polydefi.js +131 -0
- package/test/balancer/polydefi2.js +131 -0
- package/test/balancer/qipool.js +136 -0
- package/test/balancer/sphere_matic.js +123 -0
- package/test/balancer/stETH.js +123 -0
- package/test/balancer/stable.js +131 -0
- package/test/balancer/stable_v2.js +121 -0
- package/test/balancer/stmatic_ammatic.js +123 -0
- package/test/balancer/stmatic_v2.js +120 -0
- package/test/balancer/stmatic_v3.js +141 -0
- package/test/balancer/tetubal_v3.js +123 -0
- package/test/balancer/tngbl_usdc.js +123 -0
- package/test/balancer/tricrypto.js +131 -0
- package/test/balancer/tusd_stable.js +142 -0
- package/test/balancer/usdc_weth.js +136 -0
- package/test/balancer/usdc_weth_v2.js +123 -0
- package/test/balancer/wbtc_eth_usdc.js +123 -0
- package/test/balancer/wbtc_weth.js +136 -0
- package/test/balancer/wsteth_amweth.js +123 -0
- package/test/balancer/wusdr_usdc.js +123 -0
- package/test/compound/usdc.js +127 -0
- package/test/compound/usdt.js +129 -0
- package/test/compound-blue/eth.js +136 -0
- package/test/compound-blue/usdc.js +136 -0
- package/test/compound-blue/usdt.js +136 -0
- package/test/convex/3crv.js +123 -0
- package/test/convex/3crypto.js +123 -0
- package/test/convex/acrv.js +123 -0
- package/test/convex/crv_3crypto.js +123 -0
- package/test/convex/matic_3crypto.js +123 -0
- package/test/convex/usdr.js +123 -0
- package/test/core/emission-fork.js +197 -0
- package/test/core/emission.js +209 -0
- package/test/core/vault_upgrade.js +129 -0
- package/test/curve/aave.js +132 -0
- package/test/curve/atricrypto3.js +135 -0
- package/test/curve/eurtusd.js +135 -0
- package/test/gamma-merkl/qs-eth-usdc.js +212 -0
- package/test/gamma-merkl/qs-eth-usdt.js +213 -0
- package/test/gamma-merkl/qs-matic-usdt.js +213 -0
- package/test/gamma-merkl/qs-tbtc-eth.js +213 -0
- package/test/gamma-merkl/qs-wbtc-eth-w.js +213 -0
- package/test/genomes/gene-eth.js +115 -0
- package/test/genomes/gnome-eth.js +115 -0
- package/test/idle/dai.js +129 -0
- package/test/idle/usdc.js +128 -0
- package/test/idle/weth.js +128 -0
- package/test/jarvis/2cad-hodl.js +183 -0
- package/test/jarvis/2cad-update-nov22.js +182 -0
- package/test/jarvis/2cad-update.js +177 -0
- package/test/jarvis/2cad-update2.js +182 -0
- package/test/jarvis/2cad-update3.js +182 -0
- package/test/jarvis/2eur-ageur-update-nov22.js +182 -0
- package/test/jarvis/2eur-ageur-update.js +182 -0
- package/test/jarvis/2eur-eure-hodl.js +176 -0
- package/test/jarvis/2eur-eurt-hodl.js +176 -0
- package/test/jarvis/2eur-eurt-update-nov22.js +182 -0
- package/test/jarvis/2eur-hodl.js +176 -0
- package/test/jarvis/2eur-par-hodl.js +176 -0
- package/test/jarvis/2eur-par-update-nov22.js +182 -0
- package/test/jarvis/2jpy-hodl.js +244 -0
- package/test/jarvis/2jpy-update-nov22.js +182 -0
- package/test/jarvis/2jpy-update.js +177 -0
- package/test/jarvis/2jpy-update2.js +182 -0
- package/test/jarvis/2jpyv2-upgrade.js +184 -0
- package/test/jarvis/2nzd-hodl.js +176 -0
- package/test/jarvis/2nzd-update.js +182 -0
- package/test/jarvis/2sgd-hodl.js +176 -0
- package/test/jarvis/2sgd-update-nov22.js +182 -0
- package/test/jarvis/2sgd-update.js +182 -0
- package/test/jarvis/2sgd-update2.js +182 -0
- package/test/jarvis/4eur-hodl-upgrade.js +177 -0
- package/test/jarvis/4eur-hodl.js +183 -0
- package/test/jarvis/4eur-update.js +181 -0
- package/test/jarvis/4eur-update2.js +181 -0
- package/test/jarvis/agden-2eur.js +222 -0
- package/test/jarvis/aur-usdc-v2.js +115 -0
- package/test/jarvis/aur-usdc.js +127 -0
- package/test/jarvis/aur3-usdc.js +115 -0
- package/test/jarvis/aurjul22-weth.js +222 -0
- package/test/jarvis/den-4eur.js +115 -0
- package/test/jarvis/den2-4eur.js +220 -0
- package/test/jarvis/den3-4eur.js +220 -0
- package/test/jarvis/den4-4eur.js +220 -0
- package/test/jarvis/jchf-usdc-hodl-v2.js +184 -0
- package/test/jarvis/jchf-usdc-hodl-v3.js +178 -0
- package/test/jarvis/jchf-usdc-hodl.js +193 -0
- package/test/jarvis/jchf-weth-hodl.js +176 -0
- package/test/jarvis/jeur-usdc-hodl-v2.js +184 -0
- package/test/jarvis/jeur-usdc-hodl-v3.js +178 -0
- package/test/jarvis/jeur-usdc-hodl.js +193 -0
- package/test/jarvis/jeur-weth-hodl.js +176 -0
- package/test/jarvis/jgbp-usdc-hodl-v2.js +184 -0
- package/test/jarvis/jgbp-usdc-hodl-v3.js +178 -0
- package/test/jarvis/jgbp-usdc-hodl.js +193 -0
- package/test/jarvis/jrtangle-2eurageur.js +220 -0
- package/test/jarvis/jrtanglenov22-2eurageur.js +220 -0
- package/test/jarvis/jrtjul22-usdc.js +115 -0
- package/test/jarvis/jrtmay22-usdc.js +115 -0
- package/test/jarvis/jrtmimo-2eurpar.js +220 -0
- package/test/jarvis/jrtmimonov22-2eurpar.js +220 -0
- package/test/jarvis/jrtnov22-usdc.js +220 -0
- package/test/jarvis/jrtsep22-usdc.js +220 -0
- package/test/jarvis/qui-2cad.js +218 -0
- package/test/jarvis/ses-2jpy.js +222 -0
- package/test/meshswap/mesh-omooi.js +197 -0
- package/test/meshswap/mesh-ozemit.js +197 -0
- package/test/meshswap/usdc-ousdc.js +197 -0
- package/test/meshswap/usdt-ousdt.js +197 -0
- package/test/meshswap/wmatic-mesh.js +197 -0
- package/test/meshswap/wmatic-usdc.js +197 -0
- package/test/meshswap/wmatic-usdt.js +197 -0
- package/test/mstable/musd.js +123 -0
- package/test/pearl/cvr-pearl.js +198 -0
- package/test/pearl/cvr.js +133 -0
- package/test/pearl/dai-usdr.js +198 -0
- package/test/pearl/eth-usdr.js +198 -0
- package/test/pearl/matic-usdr.js +198 -0
- package/test/pearl/pearl-usdr.js +198 -0
- package/test/pearl/star-usdr.js +186 -0
- package/test/pearl/tngbl-usdr.js +198 -0
- package/test/pearl/usdc-usdr.js +198 -0
- package/test/pearl/usdt-usdr.js +198 -0
- package/test/pearl/wbtc-usdr.js +198 -0
- package/test/pearl/wusdr-usdr.js +198 -0
- package/test/popsicle/ice-weth.js +128 -0
- package/test/quick/eth-matic.js +132 -0
- package/test/quick/eth-usdt.js +140 -0
- package/test/quick/ifarm-quick.js +147 -0
- package/test/quick/matic-usdc.js +145 -0
- package/test/quick/psp-matic.js +124 -0
- package/test/quick/wbtc-eth.js +145 -0
- package/test/quick-gamma/cbeth-eth.js +207 -0
- package/test/quick-gamma/matic-eth-narrow.js +201 -0
- package/test/quick-gamma/matic-eth-wide.js +197 -0
- package/test/quick-gamma/matic-usdc-narrow.js +197 -0
- package/test/quick-gamma/matic-usdc-wide.js +197 -0
- package/test/quick-gamma/upgrade/matic-eth-narrow.js +204 -0
- package/test/quick-gamma/upgrade/matic-usdc-narrow.js +199 -0
- package/test/quick-gamma/usdc-dai.js +209 -0
- package/test/quick-gamma/usdc-eth-narrow.js +197 -0
- package/test/quick-gamma/usdc-eth-wide.js +197 -0
- package/test/quick-gamma/usdc-usdt.js +209 -0
- package/test/quick-gamma/wbtc-eth-narrow.js +207 -0
- package/test/quick-gamma/wbtc-usdc-narrow.js +209 -0
- package/test/quick-gamma/wsteth-eth.js +207 -0
- package/test/sushi/eth-usdt.js +153 -0
- package/test/sushi/matic-eth.js +138 -0
- package/test/sushi/usdc-eth.js +153 -0
- package/test/test-config.js +24 -0
- package/test/uniswap-gamma/usdc-dai.js +212 -0
- package/test/uniswap-gamma/usdc-usdt.js +212 -0
- package/test/uniswap-gamma/usdc-weth.js +212 -0
- package/test/uniswap-gamma/wmatic-usdc.js +210 -0
- package/test/utilities/Utils.js +96 -0
- package/test/utilities/hh-utils.js +242 -0
- package/test/utilities/make-vault.js +10 -0
- package/test/yel/yel-wmatic.js +129 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
pragma solidity 0.6.12;
|
3
|
+
|
4
|
+
interface IPair {
|
5
|
+
function initialize(address _token0, address _token1, bool _stable) external;
|
6
|
+
|
7
|
+
function metadata() external view returns (uint256 dec0, uint256 dec1, uint256 r0, uint256 r1, bool st, address t0, address t1);
|
8
|
+
|
9
|
+
function claimFees() external returns (uint256, uint256);
|
10
|
+
|
11
|
+
function tokens() external view returns (address, address);
|
12
|
+
|
13
|
+
function token0() external view returns (address);
|
14
|
+
|
15
|
+
function token1() external view returns (address);
|
16
|
+
|
17
|
+
function transferFrom(address src, address dst, uint256 amount) external returns (bool);
|
18
|
+
|
19
|
+
function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
|
20
|
+
|
21
|
+
function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;
|
22
|
+
|
23
|
+
function burn(address to) external returns (uint256 amount0, uint256 amount1);
|
24
|
+
|
25
|
+
function mint(address to) external returns (uint256 liquidity);
|
26
|
+
|
27
|
+
function getReserves() external view returns (uint256 _reserve0, uint256 _reserve1, uint256 _blockTimestampLast);
|
28
|
+
|
29
|
+
function getAmountOut(uint256, address) external view returns (uint256);
|
30
|
+
|
31
|
+
function name() external view returns (string memory);
|
32
|
+
|
33
|
+
function symbol() external view returns (string memory);
|
34
|
+
|
35
|
+
function totalSupply() external view returns (uint256);
|
36
|
+
|
37
|
+
function decimals() external view returns (uint8);
|
38
|
+
|
39
|
+
function claimable0(address _user) external view returns (uint256);
|
40
|
+
|
41
|
+
function claimable1(address _user) external view returns (uint256);
|
42
|
+
|
43
|
+
function stable() external view returns (bool);
|
44
|
+
}
|
@@ -0,0 +1,305 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
pragma solidity 0.6.12;
|
3
|
+
pragma experimental ABIEncoderV2;
|
4
|
+
|
5
|
+
interface IRouter {
|
6
|
+
struct Route {
|
7
|
+
address from;
|
8
|
+
address to;
|
9
|
+
bool stable;
|
10
|
+
}
|
11
|
+
|
12
|
+
/// @dev Struct containing information necessary to zap in and out of pools
|
13
|
+
/// @param tokenA .
|
14
|
+
/// @param tokenB .
|
15
|
+
/// @param stable Stable or volatile pool
|
16
|
+
/// @param amountOutMinA Minimum amount expected from swap leg of zap via routesA
|
17
|
+
/// @param amountOutMinB Minimum amount expected from swap leg of zap via routesB
|
18
|
+
/// @param amountAMin Minimum amount of tokenA expected from liquidity leg of zap
|
19
|
+
/// @param amountBMin Minimum amount of tokenB expected from liquidity leg of zap
|
20
|
+
struct Zap {
|
21
|
+
address tokenA;
|
22
|
+
address tokenB;
|
23
|
+
bool stable;
|
24
|
+
uint256 amountOutMinA;
|
25
|
+
uint256 amountOutMinB;
|
26
|
+
uint256 amountAMin;
|
27
|
+
uint256 amountBMin;
|
28
|
+
}
|
29
|
+
|
30
|
+
/// @notice Sort two tokens by which address value is less than the other
|
31
|
+
/// @param tokenA Address of token to sort
|
32
|
+
/// @param tokenB Address of token to sort
|
33
|
+
/// @return token0 Lower address value between tokenA and tokenB
|
34
|
+
/// @return token1 Higher address value between tokenA and tokenB
|
35
|
+
function sortTokens(address tokenA, address tokenB) external pure returns (address token0, address token1);
|
36
|
+
|
37
|
+
/// @notice Calculate the address of a pool by its' factory.
|
38
|
+
/// Used by all Router functions containing a `Route[]` or `_factory` argument.
|
39
|
+
/// Reverts if _factory is not approved by the FactoryRegistry
|
40
|
+
/// @dev Returns a randomly generated address for a nonexistent pool
|
41
|
+
/// @param tokenA Address of token to query
|
42
|
+
/// @param tokenB Address of token to query
|
43
|
+
/// @param stable True if pool is stable, false if volatile
|
44
|
+
function poolFor(
|
45
|
+
address tokenA,
|
46
|
+
address tokenB,
|
47
|
+
bool stable
|
48
|
+
) external view returns (address pool);
|
49
|
+
|
50
|
+
/// @notice Fetch and sort the reserves for a pool
|
51
|
+
/// @param tokenA .
|
52
|
+
/// @param tokenB .
|
53
|
+
/// @param stable True if pool is stable, false if volatile
|
54
|
+
/// @return reserveA Amount of reserves of the sorted token A
|
55
|
+
/// @return reserveB Amount of reserves of the sorted token B
|
56
|
+
function getReserves(
|
57
|
+
address tokenA,
|
58
|
+
address tokenB,
|
59
|
+
bool stable
|
60
|
+
) external view returns (uint256 reserveA, uint256 reserveB);
|
61
|
+
|
62
|
+
/// @notice Perform chained getAmountOut calculations on any number of pools
|
63
|
+
function getAmountsOut(uint256 amountIn, Route[] memory routes) external view returns (uint256[] memory amounts);
|
64
|
+
|
65
|
+
// **** ADD LIQUIDITY ****
|
66
|
+
|
67
|
+
/// @notice Quote the amount deposited into a Pool
|
68
|
+
/// @param tokenA .
|
69
|
+
/// @param tokenB .
|
70
|
+
/// @param stable True if pool is stable, false if volatile
|
71
|
+
/// @param amountADesired Amount of tokenA desired to deposit
|
72
|
+
/// @param amountBDesired Amount of tokenB desired to deposit
|
73
|
+
/// @return amountA Amount of tokenA to actually deposit
|
74
|
+
/// @return amountB Amount of tokenB to actually deposit
|
75
|
+
/// @return liquidity Amount of liquidity token returned from deposit
|
76
|
+
function quoteAddLiquidity(
|
77
|
+
address tokenA,
|
78
|
+
address tokenB,
|
79
|
+
bool stable,
|
80
|
+
uint256 amountADesired,
|
81
|
+
uint256 amountBDesired
|
82
|
+
) external view returns (uint256 amountA, uint256 amountB, uint256 liquidity);
|
83
|
+
|
84
|
+
/// @notice Quote the amount of liquidity removed from a Pool
|
85
|
+
/// @param tokenA .
|
86
|
+
/// @param tokenB .
|
87
|
+
/// @param stable True if pool is stable, false if volatile
|
88
|
+
/// @param liquidity Amount of liquidity to remove
|
89
|
+
/// @return amountA Amount of tokenA received
|
90
|
+
/// @return amountB Amount of tokenB received
|
91
|
+
function quoteRemoveLiquidity(
|
92
|
+
address tokenA,
|
93
|
+
address tokenB,
|
94
|
+
bool stable,
|
95
|
+
uint256 liquidity
|
96
|
+
) external view returns (uint256 amountA, uint256 amountB);
|
97
|
+
|
98
|
+
/// @notice Add liquidity of two tokens to a Pool
|
99
|
+
/// @param tokenA .
|
100
|
+
/// @param tokenB .
|
101
|
+
/// @param stable True if pool is stable, false if volatile
|
102
|
+
/// @param amountADesired Amount of tokenA desired to deposit
|
103
|
+
/// @param amountBDesired Amount of tokenB desired to deposit
|
104
|
+
/// @param amountAMin Minimum amount of tokenA to deposit
|
105
|
+
/// @param amountBMin Minimum amount of tokenB to deposit
|
106
|
+
/// @param to Recipient of liquidity token
|
107
|
+
/// @param deadline Deadline to receive liquidity
|
108
|
+
/// @return amountA Amount of tokenA to actually deposit
|
109
|
+
/// @return amountB Amount of tokenB to actually deposit
|
110
|
+
/// @return liquidity Amount of liquidity token returned from deposit
|
111
|
+
function addLiquidity(
|
112
|
+
address tokenA,
|
113
|
+
address tokenB,
|
114
|
+
bool stable,
|
115
|
+
uint256 amountADesired,
|
116
|
+
uint256 amountBDesired,
|
117
|
+
uint256 amountAMin,
|
118
|
+
uint256 amountBMin,
|
119
|
+
address to,
|
120
|
+
uint256 deadline
|
121
|
+
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
|
122
|
+
|
123
|
+
/// @notice Add liquidity of a token and WETH (transferred as ETH) to a Pool
|
124
|
+
/// @param token .
|
125
|
+
/// @param stable True if pool is stable, false if volatile
|
126
|
+
/// @param amountTokenDesired Amount of token desired to deposit
|
127
|
+
/// @param amountTokenMin Minimum amount of token to deposit
|
128
|
+
/// @param amountETHMin Minimum amount of ETH to deposit
|
129
|
+
/// @param to Recipient of liquidity token
|
130
|
+
/// @param deadline Deadline to add liquidity
|
131
|
+
/// @return amountToken Amount of token to actually deposit
|
132
|
+
/// @return amountETH Amount of tokenETH to actually deposit
|
133
|
+
/// @return liquidity Amount of liquidity token returned from deposit
|
134
|
+
function addLiquidityETH(
|
135
|
+
address token,
|
136
|
+
bool stable,
|
137
|
+
uint256 amountTokenDesired,
|
138
|
+
uint256 amountTokenMin,
|
139
|
+
uint256 amountETHMin,
|
140
|
+
address to,
|
141
|
+
uint256 deadline
|
142
|
+
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
|
143
|
+
|
144
|
+
// **** REMOVE LIQUIDITY ****
|
145
|
+
|
146
|
+
/// @notice Remove liquidity of two tokens from a Pool
|
147
|
+
/// @param tokenA .
|
148
|
+
/// @param tokenB .
|
149
|
+
/// @param stable True if pool is stable, false if volatile
|
150
|
+
/// @param liquidity Amount of liquidity to remove
|
151
|
+
/// @param amountAMin Minimum amount of tokenA to receive
|
152
|
+
/// @param amountBMin Minimum amount of tokenB to receive
|
153
|
+
/// @param to Recipient of tokens received
|
154
|
+
/// @param deadline Deadline to remove liquidity
|
155
|
+
/// @return amountA Amount of tokenA received
|
156
|
+
/// @return amountB Amount of tokenB received
|
157
|
+
function removeLiquidity(
|
158
|
+
address tokenA,
|
159
|
+
address tokenB,
|
160
|
+
bool stable,
|
161
|
+
uint256 liquidity,
|
162
|
+
uint256 amountAMin,
|
163
|
+
uint256 amountBMin,
|
164
|
+
address to,
|
165
|
+
uint256 deadline
|
166
|
+
) external returns (uint256 amountA, uint256 amountB);
|
167
|
+
|
168
|
+
/// @notice Remove liquidity of a token and WETH (returned as ETH) from a Pool
|
169
|
+
/// @param token .
|
170
|
+
/// @param stable True if pool is stable, false if volatile
|
171
|
+
/// @param liquidity Amount of liquidity to remove
|
172
|
+
/// @param amountTokenMin Minimum amount of token to receive
|
173
|
+
/// @param amountETHMin Minimum amount of ETH to receive
|
174
|
+
/// @param to Recipient of liquidity token
|
175
|
+
/// @param deadline Deadline to receive liquidity
|
176
|
+
/// @return amountToken Amount of token received
|
177
|
+
/// @return amountETH Amount of ETH received
|
178
|
+
function removeLiquidityETH(
|
179
|
+
address token,
|
180
|
+
bool stable,
|
181
|
+
uint256 liquidity,
|
182
|
+
uint256 amountTokenMin,
|
183
|
+
uint256 amountETHMin,
|
184
|
+
address to,
|
185
|
+
uint256 deadline
|
186
|
+
) external returns (uint256 amountToken, uint256 amountETH);
|
187
|
+
|
188
|
+
/// @notice Remove liquidity of a fee-on-transfer token and WETH (returned as ETH) from a Pool
|
189
|
+
/// @param token .
|
190
|
+
/// @param stable True if pool is stable, false if volatile
|
191
|
+
/// @param liquidity Amount of liquidity to remove
|
192
|
+
/// @param amountTokenMin Minimum amount of token to receive
|
193
|
+
/// @param amountETHMin Minimum amount of ETH to receive
|
194
|
+
/// @param to Recipient of liquidity token
|
195
|
+
/// @param deadline Deadline to receive liquidity
|
196
|
+
/// @return amountETH Amount of ETH received
|
197
|
+
function removeLiquidityETHSupportingFeeOnTransferTokens(
|
198
|
+
address token,
|
199
|
+
bool stable,
|
200
|
+
uint256 liquidity,
|
201
|
+
uint256 amountTokenMin,
|
202
|
+
uint256 amountETHMin,
|
203
|
+
address to,
|
204
|
+
uint256 deadline
|
205
|
+
) external returns (uint256 amountETH);
|
206
|
+
|
207
|
+
// **** SWAP ****
|
208
|
+
|
209
|
+
/// @notice Swap one token for another
|
210
|
+
/// @param amountIn Amount of token in
|
211
|
+
/// @param amountOutMin Minimum amount of desired token received
|
212
|
+
/// @param routes Array of trade routes used in the swap
|
213
|
+
/// @param to Recipient of the tokens received
|
214
|
+
/// @param deadline Deadline to receive tokens
|
215
|
+
/// @return amounts Array of amounts returned per route
|
216
|
+
function swapExactTokensForTokens(
|
217
|
+
uint256 amountIn,
|
218
|
+
uint256 amountOutMin,
|
219
|
+
Route[] calldata routes,
|
220
|
+
address to,
|
221
|
+
uint256 deadline
|
222
|
+
) external returns (uint256[] memory amounts);
|
223
|
+
|
224
|
+
/// @notice Swap ETH for a token
|
225
|
+
/// @param amountOutMin Minimum amount of desired token received
|
226
|
+
/// @param routes Array of trade routes used in the swap
|
227
|
+
/// @param to Recipient of the tokens received
|
228
|
+
/// @param deadline Deadline to receive tokens
|
229
|
+
/// @return amounts Array of amounts returned per route
|
230
|
+
function swapExactETHForTokens(
|
231
|
+
uint256 amountOutMin,
|
232
|
+
Route[] calldata routes,
|
233
|
+
address to,
|
234
|
+
uint256 deadline
|
235
|
+
) external payable returns (uint256[] memory amounts);
|
236
|
+
|
237
|
+
/// @notice Swap a token for WETH (returned as ETH)
|
238
|
+
/// @param amountIn Amount of token in
|
239
|
+
/// @param amountOutMin Minimum amount of desired ETH
|
240
|
+
/// @param routes Array of trade routes used in the swap
|
241
|
+
/// @param to Recipient of the tokens received
|
242
|
+
/// @param deadline Deadline to receive tokens
|
243
|
+
/// @return amounts Array of amounts returned per route
|
244
|
+
function swapExactTokensForETH(
|
245
|
+
uint256 amountIn,
|
246
|
+
uint256 amountOutMin,
|
247
|
+
Route[] calldata routes,
|
248
|
+
address to,
|
249
|
+
uint256 deadline
|
250
|
+
) external returns (uint256[] memory amounts);
|
251
|
+
|
252
|
+
/// @notice Swap one token for another without slippage protection
|
253
|
+
/// @return amounts Array of amounts to swap per route
|
254
|
+
/// @param routes Array of trade routes used in the swap
|
255
|
+
/// @param to Recipient of the tokens received
|
256
|
+
/// @param deadline Deadline to receive tokens
|
257
|
+
function UNSAFE_swapExactTokensForTokens(
|
258
|
+
uint256[] memory amounts,
|
259
|
+
Route[] calldata routes,
|
260
|
+
address to,
|
261
|
+
uint256 deadline
|
262
|
+
) external returns (uint256[] memory);
|
263
|
+
|
264
|
+
// **** SWAP (supporting fee-on-transfer tokens) ****
|
265
|
+
|
266
|
+
/// @notice Swap one token for another supporting fee-on-transfer tokens
|
267
|
+
/// @param amountIn Amount of token in
|
268
|
+
/// @param amountOutMin Minimum amount of desired token received
|
269
|
+
/// @param routes Array of trade routes used in the swap
|
270
|
+
/// @param to Recipient of the tokens received
|
271
|
+
/// @param deadline Deadline to receive tokens
|
272
|
+
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
|
273
|
+
uint256 amountIn,
|
274
|
+
uint256 amountOutMin,
|
275
|
+
Route[] calldata routes,
|
276
|
+
address to,
|
277
|
+
uint256 deadline
|
278
|
+
) external;
|
279
|
+
|
280
|
+
/// @notice Swap ETH for a token supporting fee-on-transfer tokens
|
281
|
+
/// @param amountOutMin Minimum amount of desired token received
|
282
|
+
/// @param routes Array of trade routes used in the swap
|
283
|
+
/// @param to Recipient of the tokens received
|
284
|
+
/// @param deadline Deadline to receive tokens
|
285
|
+
function swapExactETHForTokensSupportingFeeOnTransferTokens(
|
286
|
+
uint256 amountOutMin,
|
287
|
+
Route[] calldata routes,
|
288
|
+
address to,
|
289
|
+
uint256 deadline
|
290
|
+
) external payable;
|
291
|
+
|
292
|
+
/// @notice Swap a token for WETH (returned as ETH) supporting fee-on-transfer tokens
|
293
|
+
/// @param amountIn Amount of token in
|
294
|
+
/// @param amountOutMin Minimum amount of desired ETH
|
295
|
+
/// @param routes Array of trade routes used in the swap
|
296
|
+
/// @param to Recipient of the tokens received
|
297
|
+
/// @param deadline Deadline to receive tokens
|
298
|
+
function swapExactTokensForETHSupportingFeeOnTransferTokens(
|
299
|
+
uint256 amountIn,
|
300
|
+
uint256 amountOutMin,
|
301
|
+
Route[] calldata routes,
|
302
|
+
address to,
|
303
|
+
uint256 deadline
|
304
|
+
) external;
|
305
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
|
3
|
+
pragma solidity 0.6.12;
|
4
|
+
|
5
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
6
|
+
|
7
|
+
interface IDragonLair {
|
8
|
+
|
9
|
+
function quick() external view returns (IERC20);
|
10
|
+
|
11
|
+
// Enter the lair. Pay some QUICK. Earn some dragon QUICK.
|
12
|
+
function enter(uint256 _quickAmount) external;
|
13
|
+
|
14
|
+
// Leave the lair. Claim back your QUICK.
|
15
|
+
function leave(uint256 _dQuickAmount) external;
|
16
|
+
|
17
|
+
// returns the total amount of QUICK an address has in the contract including fees earned
|
18
|
+
function QUICKBalance(address _account) external view returns (uint256 quickAmount_);
|
19
|
+
|
20
|
+
//returns how much QUICK someone gets for depositing dQUICK
|
21
|
+
function dQUICKForQUICK(uint256 _dQuickAmount) external view returns (uint256 quickAmount_);
|
22
|
+
|
23
|
+
//returns how much dQUICK someone gets for depositing QUICK
|
24
|
+
function QUICKForDQUICK(uint256 _quickAmount) external view returns (uint256 dQuickAmount_);
|
25
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
//SPDX-License-Identifier: Unlicense
|
2
|
+
|
3
|
+
pragma solidity 0.6.12;
|
4
|
+
|
5
|
+
interface IMasterChef {
|
6
|
+
function deposit(uint256 _pid, uint256 _amount, address _to) external;
|
7
|
+
function withdraw(uint256 _pid, uint256 _amount, address _to) external;
|
8
|
+
function emergencyWithdraw(uint256 _pid, address _to) external;
|
9
|
+
function userInfo(uint256 _pid, address _user) external view returns (uint256, uint256);
|
10
|
+
function lpToken(uint256 _pid) external view returns(address);
|
11
|
+
function poolInfo(uint256 _pid) external view returns (uint256, uint256, uint256);
|
12
|
+
function harvest(uint256 _pid, address _to) external;
|
13
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
pragma solidity >=0.5.0;
|
3
|
+
|
4
|
+
interface IUniswapV2Factory {
|
5
|
+
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
|
6
|
+
|
7
|
+
function getPair(address tokenA, address tokenB) external view returns (address pair);
|
8
|
+
function allPairs(uint) external view returns (address pair);
|
9
|
+
function allPairsLength() external view returns (uint);
|
10
|
+
|
11
|
+
function feeTo() external view returns (address);
|
12
|
+
function feeToSetter() external view returns (address);
|
13
|
+
|
14
|
+
function createPair(address tokenA, address tokenB) external returns (address pair);
|
15
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
/**
|
3
|
+
*Submitted for verification at Etherscan.io on 2020-05-05
|
4
|
+
*/
|
5
|
+
|
6
|
+
// File: contracts/interfaces/IUniswapV2Pair.sol
|
7
|
+
|
8
|
+
pragma solidity >=0.5.0;
|
9
|
+
|
10
|
+
interface IUniswapV2Pair {
|
11
|
+
event Approval(address indexed owner, address indexed spender, uint value);
|
12
|
+
event Transfer(address indexed from, address indexed to, uint value);
|
13
|
+
|
14
|
+
function name() external pure returns (string memory);
|
15
|
+
function symbol() external pure returns (string memory);
|
16
|
+
function decimals() external pure returns (uint8);
|
17
|
+
function totalSupply() external view returns (uint);
|
18
|
+
function balanceOf(address owner) external view returns (uint);
|
19
|
+
function allowance(address owner, address spender) external view returns (uint);
|
20
|
+
|
21
|
+
function approve(address spender, uint value) external returns (bool);
|
22
|
+
function transfer(address to, uint value) external returns (bool);
|
23
|
+
function transferFrom(address from, address to, uint value) external returns (bool);
|
24
|
+
|
25
|
+
function DOMAIN_SEPARATOR() external view returns (bytes32);
|
26
|
+
function PERMIT_TYPEHASH() external pure returns (bytes32);
|
27
|
+
function nonces(address owner) external view returns (uint);
|
28
|
+
|
29
|
+
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
|
30
|
+
|
31
|
+
event Mint(address indexed sender, uint amount0, uint amount1);
|
32
|
+
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
|
33
|
+
event Swap(
|
34
|
+
address indexed sender,
|
35
|
+
uint amount0In,
|
36
|
+
uint amount1In,
|
37
|
+
uint amount0Out,
|
38
|
+
uint amount1Out,
|
39
|
+
address indexed to
|
40
|
+
);
|
41
|
+
event Sync(uint112 reserve0, uint112 reserve1);
|
42
|
+
|
43
|
+
function MINIMUM_LIQUIDITY() external pure returns (uint);
|
44
|
+
function factory() external view returns (address);
|
45
|
+
function token0() external view returns (address);
|
46
|
+
function token1() external view returns (address);
|
47
|
+
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
|
48
|
+
function price0CumulativeLast() external view returns (uint);
|
49
|
+
function price1CumulativeLast() external view returns (uint);
|
50
|
+
function kLast() external view returns (uint);
|
51
|
+
|
52
|
+
function mint(address to) external returns (uint liquidity);
|
53
|
+
function burn(address to) external returns (uint amount0, uint amount1);
|
54
|
+
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
|
55
|
+
function skim(address to) external;
|
56
|
+
function sync() external;
|
57
|
+
|
58
|
+
function initialize(address, address) external;
|
59
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
pragma solidity >=0.5.0;
|
3
|
+
|
4
|
+
interface IUniswapV2Router01 {
|
5
|
+
function factory() external pure returns (address);
|
6
|
+
function WETH() external pure returns (address);
|
7
|
+
|
8
|
+
function addLiquidity(
|
9
|
+
address tokenA,
|
10
|
+
address tokenB,
|
11
|
+
uint amountADesired,
|
12
|
+
uint amountBDesired,
|
13
|
+
uint amountAMin,
|
14
|
+
uint amountBMin,
|
15
|
+
address to,
|
16
|
+
uint deadline
|
17
|
+
) external returns (uint amountA, uint amountB, uint liquidity);
|
18
|
+
function addLiquidityETH(
|
19
|
+
address token,
|
20
|
+
uint amountTokenDesired,
|
21
|
+
uint amountTokenMin,
|
22
|
+
uint amountETHMin,
|
23
|
+
address to,
|
24
|
+
uint deadline
|
25
|
+
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
|
26
|
+
function removeLiquidity(
|
27
|
+
address tokenA,
|
28
|
+
address tokenB,
|
29
|
+
uint liquidity,
|
30
|
+
uint amountAMin,
|
31
|
+
uint amountBMin,
|
32
|
+
address to,
|
33
|
+
uint deadline
|
34
|
+
) external returns (uint amountA, uint amountB);
|
35
|
+
function removeLiquidityETH(
|
36
|
+
address token,
|
37
|
+
uint liquidity,
|
38
|
+
uint amountTokenMin,
|
39
|
+
uint amountETHMin,
|
40
|
+
address to,
|
41
|
+
uint deadline
|
42
|
+
) external returns (uint amountToken, uint amountETH);
|
43
|
+
function removeLiquidityWithPermit(
|
44
|
+
address tokenA,
|
45
|
+
address tokenB,
|
46
|
+
uint liquidity,
|
47
|
+
uint amountAMin,
|
48
|
+
uint amountBMin,
|
49
|
+
address to,
|
50
|
+
uint deadline,
|
51
|
+
bool approveMax, uint8 v, bytes32 r, bytes32 s
|
52
|
+
) external returns (uint amountA, uint amountB);
|
53
|
+
function removeLiquidityETHWithPermit(
|
54
|
+
address token,
|
55
|
+
uint liquidity,
|
56
|
+
uint amountTokenMin,
|
57
|
+
uint amountETHMin,
|
58
|
+
address to,
|
59
|
+
uint deadline,
|
60
|
+
bool approveMax, uint8 v, bytes32 r, bytes32 s
|
61
|
+
) external returns (uint amountToken, uint amountETH);
|
62
|
+
function swapExactTokensForTokens(
|
63
|
+
uint amountIn,
|
64
|
+
uint amountOutMin,
|
65
|
+
address[] calldata path,
|
66
|
+
address to,
|
67
|
+
uint deadline
|
68
|
+
) external returns (uint[] memory amounts);
|
69
|
+
function swapTokensForExactTokens(
|
70
|
+
uint amountOut,
|
71
|
+
uint amountInMax,
|
72
|
+
address[] calldata path,
|
73
|
+
address to,
|
74
|
+
uint deadline
|
75
|
+
) external returns (uint[] memory amounts);
|
76
|
+
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
|
77
|
+
external
|
78
|
+
payable
|
79
|
+
returns (uint[] memory amounts);
|
80
|
+
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
|
81
|
+
external
|
82
|
+
returns (uint[] memory amounts);
|
83
|
+
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
|
84
|
+
external
|
85
|
+
returns (uint[] memory amounts);
|
86
|
+
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
|
87
|
+
external
|
88
|
+
payable
|
89
|
+
returns (uint[] memory amounts);
|
90
|
+
|
91
|
+
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
|
92
|
+
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
|
93
|
+
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
|
94
|
+
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
|
95
|
+
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
|
96
|
+
}
|