enumerate LibFlow.flow reentrancy surface in NatSpec#440
enumerate LibFlow.flow reentrancy surface in NatSpec#440thedavidmeister wants to merge 1 commit intomainfrom
Conversation
The existing "responsibility of the caller" line is correct but a future caller had to re-derive the surface from scratch. NatSpec now lists the four entry points: interpreterStore.set, ERC721 onERC721Received, ERC1155 onERC1155Received, and ERC777-style ERC20 callbacks via ERC1820. Closes #309. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 42 minutes and 18 seconds.Comment |
Summary
LibFlow.flowNatSpec already says "DOES NOT prevent reentrancy attacks. This is the responsibility of the caller" — correct, but a future caller had to re-derive the actual reentrancy surface from scratch.Now enumerated:
interpreterStore.set— external call to an arbitrary store contract chosen by the flow deployer.safeTransferFrom— invokesonERC721Receivedon a contract recipient.safeTransferFrom— invokesonERC1155Receivedon a contract recipient.safeTransfer/safeTransferFrom— non-reentrant for compliant ERC20s, but ERC777 (presents an ERC20 interface) invokestokensToSend/tokensReceivedvia the ERC1820 registry.Closes #309.
Test plan
rainix-sol-testrainix-sol-static🤖 Generated with Claude Code