refactor: cleanup, move code around, and adjust deployscript

This commit is contained in:
r4bbit
2025-02-28 10:03:59 +01:00
parent 5755138d8a
commit 60081c14fb
15 changed files with 653 additions and 515 deletions

View File

@@ -9,7 +9,7 @@ import { Karma } from "../src/Karma.sol";
contract DeployKarmaScript is BaseScript {
function run() public returns (Karma) {
DeploymentConfig deploymentConfig = new DeploymentConfig(broadcaster);
(address deployer,) = deploymentConfig.activeNetworkConfig();
(address deployer,,) = deploymentConfig.activeNetworkConfig();
vm.startBroadcast(deployer);
address karma = address(new Karma());

View File

@@ -15,7 +15,7 @@ import { VaultFactory } from "../src/VaultFactory.sol";
contract DeployRewardsStreamerMPScript is BaseScript {
function run() public returns (RewardsStreamerMP, VaultFactory, DeploymentConfig) {
DeploymentConfig deploymentConfig = new DeploymentConfig(broadcaster);
(address deployer, address stakingToken) = deploymentConfig.activeNetworkConfig();
(address deployer, address stakingToken,) = deploymentConfig.activeNetworkConfig();
bytes memory initializeData = abi.encodeCall(RewardsStreamerMP.initialize, (deployer, stakingToken));

View File

@@ -13,6 +13,7 @@ contract DeploymentConfig is Script {
struct NetworkConfig {
address deployer;
address stakingToken;
address currentImplProxy;
}
NetworkConfig public activeNetworkConfig;
@@ -22,6 +23,9 @@ contract DeploymentConfig is Script {
// solhint-disable-next-line var-name-mixedcase
address internal SNT_ADDRESS_SEPOLIA = 0xE452027cdEF746c7Cd3DB31CB700428b16cD8E51;
// solhint-disable-next-line var-name-mixedcase
address internal STAKING_MANAGER_PROXY_ADDRESS_SEPOLIA = 0xD302Bd9F60c5192e46258028a2F3b4B2B846F61F;
constructor(address _broadcaster) {
if (_broadcaster == address(0)) revert DeploymentConfig_InvalidDeployerAddress();
deployer = _broadcaster;
@@ -36,11 +40,15 @@ contract DeploymentConfig is Script {
function getOrCreateAnvilEthConfig() public returns (NetworkConfig memory) {
MockToken stakingToken = new MockToken("Staking Token", "ST");
return NetworkConfig({ deployer: deployer, stakingToken: address(stakingToken) });
return NetworkConfig({ deployer: deployer, stakingToken: address(stakingToken), currentImplProxy: address(0) });
}
function getSepoliaConfig() public view returns (NetworkConfig memory) {
return NetworkConfig({ deployer: deployer, stakingToken: SNT_ADDRESS_SEPOLIA });
return NetworkConfig({
deployer: deployer,
stakingToken: SNT_ADDRESS_SEPOLIA,
currentImplProxy: STAKING_MANAGER_PROXY_ADDRESS_SEPOLIA
});
}
// This function is a hack to have it excluded by `forge coverage` until

View File

@@ -5,9 +5,16 @@ import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils
import { BaseScript } from "./Base.s.sol";
import { RewardsStreamerMP } from "../src/RewardsStreamerMP.sol";
import { IStakeManagerProxy } from "../src/interfaces/IStakeManagerProxy.sol";
import { DeploymentConfig } from "./DeploymentConfig.s.sol";
contract UpgradeRewardsStreamerMPScript is BaseScript {
function run(address admin, IStakeManagerProxy currentImplProxy) public {
function run() public returns (address) {
DeploymentConfig deploymentConfig = new DeploymentConfig(broadcaster);
(address deployer,, address currentImplProxy) = deploymentConfig.activeNetworkConfig();
return runWithAdminAndProxy(deployer, IStakeManagerProxy(currentImplProxy));
}
function runWithAdminAndProxy(address admin, IStakeManagerProxy currentImplProxy) public returns (address) {
address deployer = broadcaster;
if (admin != address(0)) {
deployer = admin;
@@ -18,5 +25,6 @@ contract UpgradeRewardsStreamerMPScript is BaseScript {
bytes memory initializeData;
UUPSUpgradeable(address(currentImplProxy)).upgradeToAndCall(nextImpl, initializeData);
vm.stopBroadcast();
return nextImpl;
}
}