docs(natspec): document authorizer-trust assumption in call-sites - #323
docs(natspec): document authorizer-trust assumption in call-sites#323thedavidmeister wants to merge 1 commit into
Conversation
Adds @dev notes to setAuthorizer, authorizeReceiptTransfer3, certify, and _update explaining the non-view authorizer call, the CEI/reentrancy argument at each site, and the remaining governance-trust assumption that the owner installs a non-hostile authorizer. Addresses the defense-in-depth residuals from the reentrancy audit documented in #315. Co-Authored-By: Claude <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 42 minutes and 4 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy 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. Comment |
|
Rejecting for an incomplete enumeration: this @dev on The rework is this same PR with the full 7-site enumeration ( |
Closes #315
Adds
@devnotes to four functions inOffchainAssetReceiptVaultthatcall
s.authorizer.authorize(...)(a non-view call on an owner-swappableexternal contract):
setAuthorizer— documents that every downstream authorize call-siteassumes the owner installs a non-hostile authorizer; a malicious
authorizer can brick the vault or perform external mutations outside
nonReentrant-guarded entrypoints.authorizeReceiptTransfer3— all receipt accounting and freezechecks complete before the authorize call; a re-entrant authorizer
cannot extract value from guarded entrypoints (
deposit/withdraw/confiscate*).certify— authorize is called AFTER writingcertifiedUntil(CEIpattern); a re-entrant authorizer re-reads the already-updated value
with no state to corrupt.
_update— authorize is called BEFOREsuper._update; reentrancysafety rests on the ERC20 underflow guard and allowance requirements
preventing overspend on re-entry.
NatSpec-only change; no bytecode impact.
Co-Authored-By: Claude noreply@anthropic.com