If I upgrade a struct within an upgradable contract (as described here,) that's being contained in a mapping, will the contract handle it gracefully if I refer to the new member on an existing mapping?
For example, if I had this contract:
contract LoyaltyV1 {
struct Account {
uint balance;
}
mapping (address => Account) accounts;
}
Let's say I get a few accounts, then I upgrade the Account
struct by adding a new member uint points
. What happens if I call accounts[0].points (where accounts[0] was added before the upgrade)?
Will it return something like 0x0 or will it crash?