The NFTFactory contract currently does not emit events when critical actions namely minting and burning NFTs are performed. This omission reduces the on-chain traceability of estate transactions, making it difficult to audit and monitor estate-related activities. The absence of these events can complicate off-chain monitoring and forensic analysis, increasing the risk of disputes or oversight in the inheritance process.
Affected Functions:
createEstate(string memory description)
burnEstate(uint256 _id)
Issue Description:
The contract performs essential operations (minting and burning of NFTs) without emitting events. Without event logs, external systems and auditors cannot reliably track when these actions occur, which is crucial for transparency in an inheritance management system.
The root cause is that the NFTFactory contract lacks event declarations and corresponding emit
statements within the critical functions. This design oversight prevents the contract from logging the creation or destruction of NFTs, thereby reducing the observability of state changes.
Technical Impact:
Reduced transparency in the NFT lifecycle, complicating debugging and analysis of contract activity.
Difficulties in building off-chain services (like UIs, alerts, or monitoring tools) that rely on event logs to track NFT-related actions.
Increased risk in forensic investigations during any suspected fraudulent activity or inheritance dispute.
To mitigate this issue and improve traceability, implement the following changes:
Define and Emit Events:
Declare events for NFT creation and burning at the top of the contract.
Modify the createEstate
and burnEstate
functions to emit these events.
Sample Code Fix:
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.