Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 deletions script/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,13 @@ contract Deploy is BaseScript {
struct ExternalAddresses {
address usdc;
address usdt;
address usds;
address usdcStrategy;
address usdtStrategy;
address usdsStrategy;
address usdcPriceFeed;
address usdtPriceFeed;
address usdsPriceFeed;
address oneInchRouter;
}

Expand All @@ -66,6 +69,7 @@ contract Deploy is BaseScript {
OneInchSwapper swapper;
GenericVault usdcVault;
GenericVault usdtVault;
GenericVault usdsVault;
}

function run() public broadcast {
Expand All @@ -82,7 +86,8 @@ contract Deploy is BaseScript {
gusd: GenericUSD(address(0)),
swapper: OneInchSwapper(address(0)),
usdcVault: GenericVault(address(0)),
usdtVault: GenericVault(address(0))
usdtVault: GenericVault(address(0)),
usdsVault: GenericVault(address(0))
});

address deployer = broadcaster;
Expand All @@ -98,7 +103,7 @@ contract Deploy is BaseScript {
new TransparentUpgradeableProxy(address(deployment.controllerImpl), controllerOperators.proxyAdmin, "")
)
);
deployment.gunit = new GenericUnit(address(deployment.controller), "Generic Unit USD", "GU_USD");
deployment.gunit = new GenericUnit(address(deployment.controller), "Generic USD Unit", "G_USD_U");

deployment.swapper = new OneInchSwapper(IOneInchAggregationRouterLike(externalAddresses.oneInchRouter));

Expand Down Expand Up @@ -128,12 +133,16 @@ contract Deploy is BaseScript {

deployment.controller
.setPriceFeed(
externalAddresses.usdc, IChainlinkAggregatorLike(externalAddresses.usdcPriceFeed), 86_400 seconds
externalAddresses.usdc, IChainlinkAggregatorLike(externalAddresses.usdcPriceFeed), 82_800 seconds
);
deployment.controller
.setPriceFeed(
externalAddresses.usdt, IChainlinkAggregatorLike(externalAddresses.usdtPriceFeed), 86_400 seconds
);
deployment.controller
.setPriceFeed(
externalAddresses.usds, IChainlinkAggregatorLike(externalAddresses.usdsPriceFeed), 82_800 seconds
);

deployment.usdcVault = new GenericVault(
IERC20(externalAddresses.usdc),
Expand All @@ -147,11 +156,19 @@ contract Deploy is BaseScript {
IERC4626(externalAddresses.usdtStrategy),
controllerOperators.vaultOwner
);
deployment.usdsVault = new GenericVault(
IERC20(externalAddresses.usds),
deployment.controller,
IERC4626(externalAddresses.usdsStrategy),
controllerOperators.vaultOwner
);

deployment.controller
.addVault(address(deployment.usdcVault), BaseController.VaultSettings(1_000_000e18, 0, 10_000), true);
deployment.controller
.addVault(address(deployment.usdtVault), BaseController.VaultSettings(1_000_000e18, 0, 10_000), true);
deployment.controller
.addVault(address(deployment.usdsVault), BaseController.VaultSettings(1_000_000e18, 0, 10_000), true);

// Setup
// // Controller
Expand Down Expand Up @@ -194,14 +211,18 @@ contract Deploy is BaseScript {
console2.log("-- Vaults --");
console2.log("USDC vault:", address(deployment.usdcVault));
console2.log("USDT vault:", address(deployment.usdtVault));
console2.log("USDS vault:", address(deployment.usdsVault));

console2.log("-- External Addresses --");
console2.log("USDC token:", externalAddresses.usdc);
console2.log("USDT token:", externalAddresses.usdt);
console2.log("USDS token:", externalAddresses.usds);
console2.log("USDC strategy:", externalAddresses.usdcStrategy);
console2.log("USDT strategy:", externalAddresses.usdtStrategy);
console2.log("USDS strategy:", externalAddresses.usdsStrategy);
console2.log("USDC price feed:", externalAddresses.usdcPriceFeed);
console2.log("USDT price feed:", externalAddresses.usdtPriceFeed);
console2.log("USDS price feed:", externalAddresses.usdsPriceFeed);
console2.log("1inch router:", externalAddresses.oneInchRouter);

console2.log("-- Controller Operators --");
Expand Down Expand Up @@ -259,10 +280,13 @@ contract Deploy is BaseScript {
addresses = ExternalAddresses({
usdc: vm.envAddress("USDC_TOKEN"),
usdt: vm.envAddress("USDT_TOKEN"),
usds: vm.envAddress("USDS_TOKEN"),
usdcStrategy: vm.envAddress("USDC_STRATEGY"),
usdtStrategy: vm.envAddress("USDT_STRATEGY"),
usdsStrategy: vm.envAddress("USDS_STRATEGY"),
usdcPriceFeed: vm.envAddress("USDC_PRICE_FEED"),
usdtPriceFeed: vm.envAddress("USDT_PRICE_FEED"),
usdsPriceFeed: vm.envAddress("USDS_PRICE_FEED"),
oneInchRouter: vm.envAddress("ONE_INCH_ROUTER")
});
}
Expand Down