In contract Enscrow.sol the functions _depositIntoEscrow() and _withdrawFromEscrow() are not following the Check-Effects-Interactions pattern. I am submitting this as an informational.
In the functions _depositIntoEscrow() and _withdrawFromEscrow() the state is updated after the external call which is not recommended due to security reasons. To follow the CEI first need to update the state and then the external call.
Not following Solidity best practises may cause additional security issues in future code changes.
Slither, manual review
Impact: - NFT already bridged won’t be bridgeable anymore without being stuck. Likelyhood: Low. - Attackers will corrupt their own tokens, deploying a risky contract interacting with an upgradable proxy. They have to buy and sell them without real benefits, except being mean. Some really specific and rare scenario can also trigger that bug.
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.