logos-co / staking

SNT Staking contracts
Creative Commons Zero v1.0 Universal
0 stars 4 forks source link

feat(script): add deployment script for new `StakeManager`s #72

Closed 0x-r4bbit closed 6 months ago

0x-r4bbit commented 6 months ago

This is needed to deploy individual new StakeManager instances in both, production environment and testing.

The script can be used as follows:

Within tests, to get a new StakeManager instance that has a reference to an older StakeManager instance, run:

function setUp() public virtual override {
    super.setUp();
    DeployMigrationStakeManager deployment = new DeployMigrationStakeManager(address(stakeManager), stakeToken);
    newStakeManager = deployment.run();
}

Where address(stakeManager) is the address of the current StakeManager and stakeToken is the address of the stake token.

To deploy a new instance from the CLI using forge, one can make use of the PREV_STAKE_MANAGER and STAKE_TOKEN_ADDRESS environment variables like this:

$ PREV_STAKE_MANAGER=0x123 STAKE_TOKEN_ADDRES=0x456 forge script script/DeployMigrationStakeManager.s.sol

The script will revert when STAKE_TOKEN_ADDRESS is address(0).

Closes #71

Checklist

Ensure you completed all of the steps below before submitting your pull request: