Skip to content

Commit

Permalink
chore: redeploy v2 strategies (#174)
Browse files Browse the repository at this point in the history
  • Loading branch information
0xsambugs authored Jan 12, 2025
1 parent 2e98669 commit 3ea6d39
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 93 deletions.
11 changes: 6 additions & 5 deletions script/strategies/aave-v3/BaseDeployStrategies.sol
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,17 @@ contract BaseDeployStrategies is BaseDeployPeriphery {
address[] memory guardians,
address[] memory judges,
Fees memory fees,
bytes32 guard
bytes32 guard,
string memory description
)
internal
returns (IEarnBalmyStrategy strategy, StrategyId strategyId)
{
address implementation = deployContract("V1_S_AAVEV3", abi.encodePacked(type(AaveV3Strategy).creationCode));
address implementation = deployContract("V2_S_AAVEV3", abi.encodePacked(type(AaveV3Strategy).creationCode));
console2.log("Implementation deployed: ", implementation);
AaveV3StrategyFactory aaveV3StrategyFactory = AaveV3StrategyFactory(
deployContract(
"V1_F_AAVEV3", abi.encodePacked(type(AaveV3StrategyFactory).creationCode, abi.encode(implementation))
"V2_F_AAVEV3", abi.encodePacked(type(AaveV3StrategyFactory).creationCode, abi.encode(implementation))
)
);
console2.log("Factory deployed: ", address(aaveV3StrategyFactory));
Expand Down Expand Up @@ -88,8 +89,8 @@ contract BaseDeployStrategies is BaseDeployPeriphery {
salt
);

console2.log("Strategy:", address(strategy));
console2.log("Strategy ID:", StrategyId.unwrap(strategyId));
console2.log(string.concat(description, ":"), address(strategy));
console2.log(string.concat(description, " id:"), StrategyId.unwrap(strategyId));
}
}
}
62 changes: 30 additions & 32 deletions script/strategies/aave-v3/base/DeployStrategies.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import { BaseDeployStrategies, IAToken, IEarnBalmyStrategy } from "../BaseDeployStrategies.sol";
import { console2 } from "forge-std/console2.sol";
import { BaseDeployStrategies, IAToken } from "../BaseDeployStrategies.sol";
import { Fees } from "src/strategies/layers/fees/external/FeeManager.sol";
import { DeployPeriphery } from "script/DeployPeriphery.sol";

Expand All @@ -24,10 +23,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
address[] memory judges = new address[](1);
judges[0] = getMsig();

IEarnBalmyStrategy strategy;
// Tier 0 = default fees
// USDC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB),
Expand All @@ -36,9 +34,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - usdc"
});
console2.log("strategy tier 0 - usdc", address(strategy));
// WETH
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
Expand All @@ -49,11 +47,11 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - weth"
});
console2.log("strategy tier 0 - weth", address(strategy));
// cbBTC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xBdb9300b7CDE636d9cD4AFF00f6F009fFBBc8EE6),
Expand All @@ -62,14 +60,14 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - cbbtc"
});
console2.log("strategy tier 0 - cbbtc", address(strategy));
// Tier 1 = 7.5% performance fee + 3.75% rescue fee
Fees memory tier1Fees = Fees({ depositFee: 0, withdrawFee: 0, performanceFee: 750, rescueFee: 375 });

// USDC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB),
Expand All @@ -78,12 +76,12 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier1Fees,
guard: "v1-t1"
guard: "v1-t1",
description: "strategy tier 1 - usdc"
});
console2.log("strategy tier 1 - usdc", address(strategy));

// WETH
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7),
Expand All @@ -92,11 +90,11 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier1Fees,
guard: "v1-t1"
guard: "v1-t1",
description: "strategy tier 1 - weth"
});
console2.log("strategy tier 1 - weth", address(strategy));
// cbBTC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xBdb9300b7CDE636d9cD4AFF00f6F009fFBBc8EE6),
Expand All @@ -105,14 +103,14 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier1Fees,
guard: "v1-t1"
guard: "v1-t1",
description: "strategy tier 1 - cbbtc"
});
console2.log("strategy tier 1 - cbbtc", address(strategy));

// Tier 2 = 5% performance fee + 2.5% rescue fee
Fees memory tier2Fees = Fees({ depositFee: 0, withdrawFee: 0, performanceFee: 500, rescueFee: 250 });
// USDC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB),
Expand All @@ -121,12 +119,12 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier2Fees,
guard: "v1-t2"
guard: "v1-t2",
description: "strategy tier 2 - usdc"
});
console2.log("strategy tier 2 - usdc", address(strategy));

// WETH
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7),
Expand All @@ -135,14 +133,14 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier2Fees,
guard: "v1-t2"
guard: "v1-t2",
description: "strategy tier 2 - weth"
});
console2.log("strategy tier 2 - weth", address(strategy));
// Tier 3 = 2.5% performance fee + 1% rescue fee
Fees memory tier3Fees = Fees({ depositFee: 0, withdrawFee: 0, performanceFee: 250, rescueFee: 100 });

// USDC
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB),
Expand All @@ -151,11 +149,11 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier3Fees,
guard: "v1-t3"
guard: "v1-t3",
description: "strategy tier 3 - usdc"
});
console2.log("strategy tier 3 - usdc", address(strategy));
// WETH
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7),
Expand All @@ -164,8 +162,8 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: tier3Fees,
guard: "v1-t3"
guard: "v1-t3",
description: "strategy tier 3 - weth"
});
console2.log("strategy tier 3 - weth", address(strategy));
}
}
46 changes: 22 additions & 24 deletions script/strategies/aave-v3/optimism/DeployStrategies.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import { BaseDeployStrategies, IAToken, IEarnBalmyStrategy } from "../BaseDeployStrategies.sol";
import { BaseDeployStrategies, IAToken } from "../BaseDeployStrategies.sol";
import { DeployPeriphery } from "script/DeployPeriphery.sol";
import { console2 } from "forge-std/console2.sol";

contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
function run() external override(DeployPeriphery) {
Expand All @@ -24,10 +23,8 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
address[] memory judges = new address[](1);
judges[0] = getMsig();

IEarnBalmyStrategy strategy;

// WETH
(strategy,) = deployAaveV3Strategy({
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
aToken: IAToken(0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8),
Expand All @@ -36,11 +33,11 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - weth"
});
console2.log("strategy tier 0 - weth", address(strategy));

// USDC
// Bridged USDC
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
Expand All @@ -50,9 +47,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - bridged usdc"
});
console2.log("strategy tier 0 - usdc", address(strategy));

// WBTC
deployAaveV3Strategy({
Expand All @@ -64,9 +61,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - wbtc"
});
console2.log("strategy tier 0 - wbtc", address(strategy));

// USDT
deployAaveV3Strategy({
Expand All @@ -78,9 +75,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - usdt"
});
console2.log("strategy tier 0 - usdt", address(strategy));

// OP
deployAaveV3Strategy({
Expand All @@ -92,9 +89,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - op"
});
console2.log("strategy tier 0 - op", address(strategy));

// SUSD
deployAaveV3Strategy({
Expand All @@ -106,11 +103,11 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - susd"
});
console2.log("strategy tier 0 - susd", address(strategy));

// USDCn
// USDC
deployAaveV3Strategy({
aaveV3Pool: aaveV3Pool,
aaveV3Rewards: aaveV3Rewards,
Expand All @@ -120,9 +117,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - usdc"
});
console2.log("strategy tier 0 - usdcn", address(strategy));

// DAI
deployAaveV3Strategy({
Expand All @@ -134,9 +131,9 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - dai"
});
console2.log("strategy tier 0 - dai", address(strategy));

// LUSD
deployAaveV3Strategy({
Expand All @@ -148,7 +145,8 @@ contract DeployStrategies is DeployPeriphery, BaseDeployStrategies {
guardians: guardians,
judges: judges,
fees: DEFAULT_FEES,
guard: "v1-t0"
guard: "v1-t0",
description: "strategy tier 0 - lusd"
});
}
}
11 changes: 6 additions & 5 deletions script/strategies/morpho/BaseDeployStrategies.sol
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,17 @@ contract BaseDeployStrategies is BaseDeployPeriphery {
address[] memory guardians,
address[] memory judges,
Fees memory fees,
bytes32 guard
bytes32 guard,
string memory description
)
internal
returns (IEarnBalmyStrategy strategy, StrategyId strategyId)
{
address implementation = deployContract("V1_S_MORPHO", abi.encodePacked(type(MorphoStrategy).creationCode));
address implementation = deployContract("V2_S_MORPHO", abi.encodePacked(type(MorphoStrategy).creationCode));
console2.log("Implementation deployed: ", implementation);
MorphoStrategyFactory morphoStrategyFactory = MorphoStrategyFactory(
deployContract(
"V1_F_MORPHO", abi.encodePacked(type(MorphoStrategyFactory).creationCode, abi.encode(implementation))
"V2_F_MORPHO", abi.encodePacked(type(MorphoStrategyFactory).creationCode, abi.encode(implementation))
)
);
console2.log("Factory deployed: ", address(morphoStrategyFactory));
Expand Down Expand Up @@ -75,8 +76,8 @@ contract BaseDeployStrategies is BaseDeployPeriphery {
),
salt
);
console2.log("Strategy:", address(strategy));
console2.log("Strategy ID:", StrategyId.unwrap(strategyId));
console2.log(string.concat(description, ":"), address(strategy));
console2.log(string.concat(description, " id:"), StrategyId.unwrap(strategyId));
}
}
}
Loading

0 comments on commit 3ea6d39

Please sign in to comment.