-
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 | ||
| bindings | ||
| foundry | ||
| gen | ||
| hardhat | ||
| legacy-bindings | ||
| predeploys | ||
| solc | ||
| Makefile | ||
| README.md | ||
| artifacts.json | ||
| doc.go |