Skip to content

Commit

Permalink
GQF -> GQMF, farm fix
Browse files Browse the repository at this point in the history
  • Loading branch information
a17 committed Feb 3, 2024
1 parent ce822fc commit 358fd3b
Show file tree
Hide file tree
Showing 14 changed files with 177 additions and 159 deletions.
104 changes: 48 additions & 56 deletions chains/PolygonLib.sol
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ library PolygonLib {
//endregion -- Reward tokens -----

//region ----- Deploy strategy logics -----
DeployStrategyLib.deployStrategy(platform, StrategyIdLib.GAMMA_QUICKSWAP_FARM, true);
DeployStrategyLib.deployStrategy(platform, StrategyIdLib.GAMMA_QUICKSWAP_MERKL_FARM, true);
DeployStrategyLib.deployStrategy(platform, StrategyIdLib.QUICKSWAPV3_STATIC_FARM, true);
DeployStrategyLib.deployStrategy(platform, StrategyIdLib.COMPOUND_FARM, true);
DeployStrategyLib.deployStrategy(platform, StrategyIdLib.DEFIEDGE_QUICKSWAP_MERKL_FARM, true);
Expand Down Expand Up @@ -392,12 +392,13 @@ library PolygonLib {
}

function farms() public view returns (IFactory.Farm[] memory _farms) {
_farms = new IFactory.Farm[](17);
_farms = new IFactory.Farm[](16);
address[] memory rewardAssets;
address[] memory addresses;
uint[] memory nums;
int24[] memory ticks;

uint i;

//region ----- QuickSwap V3 farms -----
// [0] Earn dQUICK, WMATIC by static position in USDC/DAI pool on QuickSwap V3
rewardAssets = new address[](2);
Expand All @@ -412,7 +413,8 @@ library PolygonLib {
ticks = new int24[](2);
ticks[0] = 276240;
ticks[1] = 276420;
_farms[0] = IFactory.Farm({

_farms[i++] = IFactory.Farm({
status: 0,
pool: POOL_QUICKSWAPV3_USDCe_DAI,
strategyLogicId: StrategyIdLib.QUICKSWAPV3_STATIC_FARM,
Expand All @@ -423,54 +425,54 @@ library PolygonLib {
});
//endregion -- QuickSwap V3 farms -----

//region ----- Gamma QuickSwap farms -----
_farms[1] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_DAI_USDT, GAMMA_UNIPROXY, 55, uint(GammaLib.Presets.STABLE)
);
_farms[2] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_WMATIC, GAMMA_POS_USDCe_USDT, GAMMA_UNIPROXY_2, 11, uint(GammaLib.Presets.STABLE)
//region ----- Gamma QuickSwap Merkl farms -----
// _farms[i++] = _makeGammaQuickSwapMerklFarm(
// TOKEN_dQUICK, GAMMA_POS_DAI_USDT, GAMMA_UNIPROXY, uint(GammaLib.Presets.STABLE)
// );
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_USDCe_USDT, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.STABLE)
);
_farms[3] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WMATIC_WETH_NARROW, GAMMA_UNIPROXY_2, 0, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_WETH_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[4] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WBTC_WETH_NARROW, GAMMA_UNIPROXY_2, 8, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WBTC_WETH_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[5] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_WMATIC, GAMMA_POS_USDCe_WETH_NARROW, GAMMA_UNIPROXY_2, 4, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_USDCe_WETH_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[6] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_WMATIC, GAMMA_POS_WMATIC_USDCe_NARROW, GAMMA_UNIPROXY_2, 2, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_USDCe_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[7] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WMATIC_WETH_WIDE, GAMMA_UNIPROXY_2, 1, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_WETH_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[8] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WBTC_USDCe_NARROW, GAMMA_UNIPROXY_2, 6, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WBTC_USDCe_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[9] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WMATIC_USDT_NARROW, GAMMA_UNIPROXY_2, 16, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_USDT_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[10] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_WMATIC, GAMMA_POS_USDCe_WETH_WIDE, GAMMA_UNIPROXY_2, 5, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_USDCe_WETH_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[11] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WBTC_WETH_WIDE, GAMMA_UNIPROXY_2, 9, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WBTC_WETH_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[12] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_dQUICK, GAMMA_POS_WETH_USDT_NARROW, GAMMA_UNIPROXY_2, 26, uint(GammaLib.Presets.NARROW)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WETH_USDT_NARROW, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.NARROW)
);
_farms[13] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_WMATIC, GAMMA_POS_WMATIC_USDCe_WIDE, GAMMA_UNIPROXY_2, 3, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_USDCe_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[14] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WBTC_USDCe_WIDE, GAMMA_UNIPROXY_2, 7, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WBTC_USDCe_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[15] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, TOKEN_dQUICK, GAMMA_POS_WETH_USDT_WIDE, GAMMA_UNIPROXY_2, 27, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WETH_USDT_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
_farms[16] = _makeGammaQuickSwapFarm(
TOKEN_dQUICK, address(0), GAMMA_POS_WMATIC_USDT_WIDE, GAMMA_UNIPROXY_2, 17, uint(GammaLib.Presets.WIDE)
_farms[i++] = _makeGammaQuickSwapMerklFarm(
TOKEN_dQUICK, GAMMA_POS_WMATIC_USDT_WIDE, GAMMA_UNIPROXY_2, uint(GammaLib.Presets.WIDE)
);
//endregion -- Gamma QuickSwap farms -----
}
Expand Down Expand Up @@ -642,33 +644,23 @@ library PolygonLib {
});
}

function _makeGammaQuickSwapFarm(
function _makeGammaQuickSwapMerklFarm(
address rewardAsset0,
address rewardAsset1,
address hypervisor,
address uniProxy,
uint pid,
uint preset
) internal view returns (IFactory.Farm memory) {
IFactory.Farm memory farm;
farm.status = 0;
farm.pool = IHypervisor(hypervisor).pool();
farm.strategyLogicId = StrategyIdLib.GAMMA_QUICKSWAP_FARM;
if (rewardAsset1 == address(0)) {
farm.rewardAssets = new address[](1);
farm.rewardAssets[0] = rewardAsset0;
} else {
farm.rewardAssets = new address[](2);
farm.rewardAssets[0] = rewardAsset0;
farm.rewardAssets[1] = rewardAsset1;
}
farm.addresses = new address[](3);
farm.strategyLogicId = StrategyIdLib.GAMMA_QUICKSWAP_MERKL_FARM;
farm.rewardAssets = new address[](1);
farm.rewardAssets[0] = rewardAsset0;
farm.addresses = new address[](2);
farm.addresses[0] = uniProxy;
farm.addresses[1] = GAMMA_QUICKSWAP_MASTERCHEF;
farm.addresses[2] = hypervisor;
farm.nums = new uint[](2);
farm.nums[0] = pid;
farm.nums[1] = preset;
farm.addresses[1] = hypervisor;
farm.nums = new uint[](1);
farm.nums[0] = preset;
farm.ticks = new int24[](0);
return farm;
}
Expand Down
51 changes: 51 additions & 0 deletions script/DeployStrategyGQMF.Polygon.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

import "forge-std/Script.sol";
import "../src/strategies/GammaQuickSwapMerklFarmStrategy.sol";
import "../src/strategies/libs/ALMPositionNameLib.sol";
import "../chains/PolygonLib.sol";


contract DeployStrategyGQMFPolygon is Script {
address public constant PLATFORM = 0xb2a0737ef27b5Cc474D24c779af612159b1c3e60;

function run() external {
uint deployerPrivateKey = vm.envUint("PRIVATE_KEY");
vm.startBroadcast(deployerPrivateKey);

new GammaQuickSwapMerklFarmStrategy();

IFactory factory = IFactory(IPlatform(PLATFORM).factory());
IFactory.Farm[] memory _farms = new IFactory.Farm[](1);
_farms[0] = _makeGammaQuickSwapMerklFarm(
PolygonLib.TOKEN_dQUICK, PolygonLib.GAMMA_POS_USDCe_USDT, PolygonLib.GAMMA_UNIPROXY_2, ALMPositionNameLib.STABLE
);
factory.addFarms(_farms);

vm.stopBroadcast();
}

function _makeGammaQuickSwapMerklFarm(
address rewardAsset0,
address hypervisor,
address uniProxy,
uint preset
) internal view returns (IFactory.Farm memory) {
IFactory.Farm memory farm;
farm.status = 0;
farm.pool = IHypervisor(hypervisor).pool();
farm.strategyLogicId = StrategyIdLib.GAMMA_QUICKSWAP_MERKL_FARM;
farm.rewardAssets = new address[](1);
farm.rewardAssets[0] = rewardAsset0;
farm.addresses = new address[](2);
farm.addresses[0] = uniProxy;
farm.addresses[1] = hypervisor;
farm.nums = new uint[](1);
farm.nums[0] = preset;
farm.ticks = new int24[](0);
return farm;
}

function testDeployPolygon() external {}
}
6 changes: 3 additions & 3 deletions script/libs/DeployStrategyLib.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import "../../src/interfaces/IPlatform.sol";
import "../../src/interfaces/IFactory.sol";
import "../../src/strategies/libs/StrategyIdLib.sol";
import "../../src/strategies/QuickswapV3StaticFarmStrategy.sol";
import "../../src/strategies/GammaQuickSwapFarmStrategy.sol";
import "../../src/strategies/GammaQuickSwapMerklFarmStrategy.sol";
import "../../src/strategies/CompoundFarmStrategy.sol";
import "../../src/strategies/DefiEdgeQuickSwapMerklFarmStrategy.sol";
import "../../src/strategies/IchiQuickSwapMerklFarmStrategy.sol";
Expand All @@ -28,8 +28,8 @@ library DeployStrategyLib {
implementation = address(new QuickSwapV3StaticFarmStrategy());
}

if (CommonLib.eq(id, StrategyIdLib.GAMMA_QUICKSWAP_FARM)) {
implementation = address(new GammaQuickSwapFarmStrategy());
if (CommonLib.eq(id, StrategyIdLib.GAMMA_QUICKSWAP_MERKL_FARM)) {
implementation = address(new GammaQuickSwapMerklFarmStrategy());
}

if (CommonLib.eq(id, StrategyIdLib.COMPOUND_FARM)) {
Expand Down
Loading

0 comments on commit 358fd3b

Please sign in to comment.