Stratax uses OpenZeppelin's BeaconProxy pattern with Initializable specifically to support upgrades. StrataxOracle uses a plain constructor, making it non-upgradeable. Any fix or enhancement to oracle logic requires deploying a new contract and manually calling setStrataxOracle() on every Stratax proxy.
Likelihood:
Any bug discovered in StrataxOracle requires a full redeployment and migration
Multiple Stratax proxies sharing the same beacon may point to different oracle versions during the migration window
Impact:
Inconsistent oracle versions across proxies during migration — different proxies receive different prices simultaneously
If the oracle owner key is compromised, there is no upgrade path to patch the oracle — only redeployment
Convert StrataxOracle to use the same Initializable + BeaconProxy pattern as Stratax. A single beacon upgrade atomically updates the oracle logic for all Stratax proxies simultaneously, eliminating migration windows where different proxies operate with different oracle versions.
Deploy behind its own BeaconProxy so oracle upgrades propagate atomically to all Stratax instances.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.