Hi, I was writing an upgradeable contract using openzeppelin's upgrades contract.
Is it possible to change the storage of the upgrade implementation ?
I was thinking of adding new variables to the end. Will it work?
For example if my contract is something like this
contract TestContract is Initializable {
address public DAO;
address public Treasury;
struct Protocol{
mapping(address => bool) protocolAssets;
address depositor;
uint256[] whitelistGroup;
address admin;
}
mapping(address => bool) assets;
function something() public {
dao = address(0)
}
Will adding a new variable after the assets mapping, for the new upgrade implementation, work?