OwnershipTransferred Event in Stratax.transferOwnership()Unlike StrataxOracle.transferOwnership() which correctly emits an OwnershipTransferred event, the Stratax.transferOwnership() silently changes ownership with no event:
Likelihood:
Every ownership transfer on the Stratax contract is affected
The inconsistency with StrataxOracle suggests this was an oversight
Impact:
Off-chain monitoring services, block explorers, and indexing services cannot detect ownership changes
Security dashboards that track privileged role changes will miss Stratax ownership transfers
Forensic analysis after an incident is harder without an event trail
How the issue manifests:
Owner calls transferOwnership(newOwner) on the Stratax contract
The ownership changes on-chain, but no event is emitted
A monitoring service watching for OwnershipTransferred events sees nothing
If the new owner is a compromised address, there is no on-chain record of when the transfer occurred
Expected outcome: No event is emitted, making ownership changes invisible to off-chain systems.
The root cause is a missing event emission in the transferOwnership function, which is already correctly implemented in the sibling contract StrataxOracle.
Primary fix — Add event emission (matching StrataxOracle pattern):
Why this works: The event provides an on-chain record of every ownership change, enabling monitoring services, block explorers, and security dashboards to track privileged role changes. The pattern is consistent with StrataxOracle and the broader Solidity ecosystem (OpenZeppelin's Ownable emits this event).
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.