tornado-governance/contracts/v1/Mocks/ProposalUpgrade.sol

34 lines
699 B
Solidity
Raw Normal View History

2021-11-08 21:22:55 +01:00
// SPDX-License-Identifier: MIT
2020-12-15 16:07:50 +01:00
//SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
pragma experimental ABIEncoderV2;
import "./MockGovernance.sol";
interface IProxy {
function upgradeTo(address newImplementation) external;
}
contract NewImplementation is MockGovernance {
uint256 public newVariable;
event Overriden(uint256 x);
2021-11-08 21:22:55 +01:00
function execute(uint256 proposalId) public payable override {
2020-12-15 16:07:50 +01:00
newVariable = 999;
emit Overriden(proposalId);
}
}
contract ProposalUpgrade {
2021-11-08 21:22:55 +01:00
address public immutable newLogic;
constructor(address _newLogic) public {
newLogic = _newLogic;
}
2020-12-15 16:07:50 +01:00
function executeProposal() public {
2021-11-08 21:22:55 +01:00
IProxy(address(this)).upgradeTo(newLogic);
2020-12-15 16:07:50 +01:00
}
}