From 23d5097b11a7db49979825cbf44f36bee10bf42a Mon Sep 17 00:00:00 2001 From: Alien Deployer Date: Fri, 3 Jan 2025 14:11:15 +0300 Subject: [PATCH] EF 1.0.2: fix _compound --- src/strategies/EqualizerFarmStrategy.sol | 4 +- test/strategies/EF.Upgrade.Sonic.t.sol | 59 ++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 test/strategies/EF.Upgrade.Sonic.t.sol diff --git a/src/strategies/EqualizerFarmStrategy.sol b/src/strategies/EqualizerFarmStrategy.sol index dfb74c73..18341ff0 100644 --- a/src/strategies/EqualizerFarmStrategy.sol +++ b/src/strategies/EqualizerFarmStrategy.sol @@ -34,7 +34,7 @@ contract EqualizerFarmStrategy is LPStrategyBase, FarmingStrategyBase { /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ /// @inheritdoc IControllable - string public constant VERSION = "1.0.1"; + string public constant VERSION = "1.0.2"; /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ /* INITIALIZATION */ @@ -283,7 +283,7 @@ contract EqualizerFarmStrategy is LPStrategyBase, FarmingStrategyBase { /// @inheritdoc StrategyBase function _compound() internal override { uint[] memory amountsToDeposit = _swapForDepositProportion(getAssetsProportions()[0]); - if (amountsToDeposit[0] != 0 && amountsToDeposit[1] != 0) { + if (amountsToDeposit[0] > 2500 && amountsToDeposit[1] > 2500) { _depositAssets(amountsToDeposit, true); } } diff --git a/test/strategies/EF.Upgrade.Sonic.t.sol b/test/strategies/EF.Upgrade.Sonic.t.sol new file mode 100644 index 00000000..bc94c105 --- /dev/null +++ b/test/strategies/EF.Upgrade.Sonic.t.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.23; + +import "forge-std/Test.sol"; +import {IHardWorker} from "../../src/interfaces/IHardWorker.sol"; +import {IPlatform} from "../../src/interfaces/IPlatform.sol"; +import {IStrategy} from "../../src/interfaces/IStrategy.sol"; +import {IFactory} from "../../src/interfaces/IFactory.sol"; +import {StrategyIdLib} from "../../src/strategies/libs/StrategyIdLib.sol"; +import {EqualizerFarmStrategy} from "../../src/strategies/EqualizerFarmStrategy.sol"; +// import "../../chains/SonicLib.sol"; + +contract EFUpgradeTest is Test { + address public constant PLATFORM = 0x4Aca671A420eEB58ecafE83700686a2AD06b20D8; + address public constant STRATEGY = 0x2488359A89Da677605186f68780C3475745155e9; + + constructor() { + vm.selectFork(vm.createFork(vm.envString("SONIC_RPC_URL"))); + vm.rollFork(2346485); // Jan-03-2025 10:36:37 AM +UTC + } + + function testEFUpgrade() public { + IFactory factory = IFactory(IPlatform(PLATFORM).factory()); + address multisig = IPlatform(PLATFORM).multisig(); + IHardWorker hw = IHardWorker(IPlatform(PLATFORM).hardWorker()); + + vm.prank(multisig); + hw.setDedicatedServerMsgSender(address(this), true); + + address[] memory vaultsForHardWork = new address[](1); + vaultsForHardWork[0] = IStrategy(STRATEGY).vault(); + + // test + //deal(SonicLib.TOKEN_USDC, STRATEGY, 1700); + /////// + + vm.expectRevert(); + hw.call(vaultsForHardWork); + + // deploy new impl and upgrade + address strategyImplementation = address(new EqualizerFarmStrategy()); + vm.prank(multisig); + factory.setStrategyLogicConfig( + IFactory.StrategyLogicConfig({ + id: StrategyIdLib.EQUALIZER_FARM, + implementation: strategyImplementation, + deployAllowed: true, + upgradeAllowed: true, + farming: true, + tokenId: 0 + }), + address(this) + ); + + factory.upgradeStrategyProxy(STRATEGY); + + hw.call(vaultsForHardWork); + } +}