docs: plan UUPS bank demo implementation

This commit is contained in:
golem
2026-08-17 15:41:10 -06:00
parent 2c34694e38
commit d7883a3684
2 changed files with 1624 additions and 1 deletions
@@ -196,7 +196,7 @@ OpenZeppelin Foundry Upgrades deploys an ERC-1967 proxy whose implementation is
initialize(address asset, address initialOwner)
```
The initializer rejects zero addresses and initializes `OwnableUpgradeable`, `PausableUpgradeable`, `ReentrancyGuardUpgradeable`, and `UUPSUpgradeable`. The implementation constructor calls `_disableInitializers()` so the implementation cannot be initialized directly.
The initializer rejects zero addresses and initializes the stateful `OwnableUpgradeable` and `PausableUpgradeable` modules. With the pinned OpenZeppelin Contracts 5.6.1 release, `Initializable`, `UUPSUpgradeable`, and `ReentrancyGuard` are stateless shared modules imported from `@openzeppelin/contracts`; they have no upgradeable initializer calls. The implementation constructor calls `_disableInitializers()` so the implementation cannot be initialized directly.
The implementation may use OpenZeppelin's narrowly scoped `@custom:oz-upgrades-unsafe-allow constructor` annotation only on that initializer-disabling constructor. No storage-layout, missing-initializer, delegate-call, self-destruct, or UUPS-compatibility validation bypass is permitted.