• Mark Tyneway's avatar
    contracts-bedrock: `StorageSetter` contract · 356effb9
    Mark Tyneway authored
    Add + test a `StorageSetter` contract that can be
    used by upgrades and storage migrations. This contract
    exists to decouple migrations from implementations.
    The existing contracts use `Initialize` which is a leaky
    abstraction because it includes the fact that the implementation
    is behind a proxy in the implementation code itself.
    The logic in `initialize` must include logic that can
    ensure the storage is correct for any version upgrading
    to any version as well as going from empty storage for
    new deployments, adding a lot of complexity. This contract
    should be used as an intermediate step in upgrades, so that
    this contract can be used to migrate storage between
    different implementations.
    356effb9
Name
Last commit
Last update
..
ast Loading commit data...
bindings Loading commit data...
foundry Loading commit data...
gen Loading commit data...
hardhat Loading commit data...
legacy-bindings Loading commit data...
predeploys Loading commit data...
solc Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
artifacts.json Loading commit data...
doc.go Loading commit data...