Root Cause: Swapped event is emitted during NFT escrow to contract instead of actual user claim
Impact: Off-chain systems could misinterpret NFT ownership and transaction state
In the trick scenario where insufficient ETH is sent, the contract:
Mints the NFT to itself (contract) as escrow
Incorrectly emits a Swapped
event showing the user as the recipient
Actually transfers the NFT to user only later in resolveTrick
No event is emitted when the actual transfer to user happens
Here is the current implementation:
This creates several issues:
Off-chain systems might think user owns NFT before they actually do
No event is emitted when actual ownership transfer happens
Initial event has incorrect ownership information
Makes tracking NFT state more difficult
Off chain system will report wrong data regarding nft ownership
Manual Review
The protocol emits a Swapped event even when the user has not sent enough ETH to complete the transaction.
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.