To make my contract upgradable, I have a proxy contract that stores all of my data.
As I understand it, when using delegatecall the storage layout needs to match for both the caller and callee. Due to the nature of my contract, I have many mappings that are subject to change on upgrades. Do these need to be defined in both contracts? Am I at risk of corrupting storage if not?
My thought is no, since mappings are not stored the same way and do not have fixed sizes. I want to be sure though.