3

OpenZeppelin uses the "unstructured storage" proxy pattern. See the documentation for details: https://docs.openzeppelin.com/sdk/2.5/pattern OpenZeppelin in the proxy patterns blog post (https://blog.openzeppelin.com/proxy-patterns/) explored three proxy pattern options: Inherited Storage Eternal Storage Unstructured Storage An upgradeable contract ...


1

The address you provided is 95 characters long. That means 190 bytes. That will not fit in any byte arrays Solidity supports. Your only options for storing it are either a string or bytes (dynamically-sized arrays, see https://solidity.readthedocs.io/en/v0.5.3/types.html#arrays for more details). But there are no efficiency improvements between those two ...


1

These 4 are really very well-know patters. (1) After analysing Delegatecall-based approach, I give up it because of two main reasons: you can only add new variables not delete or change existing ones. So, if you have a struct defined and you want to change a type or add an existing field, if you want to delete a variable etc.... you cannot. Also, it makes ...


Only top voted, non community-wiki answers of a minimum length are eligible