Add dry-run auction ceremony rehearsal#141
Conversation
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a local Foundry rehearsal script exercising the end-to-end auction ceremony (signed drop, mint, bid, settle, withdraw, and accounting assertions), integrates it into make/CI/check pipelines, adds a focused test, and updates docs, changelog, roadmap, and release checksum metadata. ChangesAuction Ceremony Rehearsal
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ops/AUTONOMOUS_RUN.md`:
- Around line 154-171: Update the "Initial candidate files" list in
AUTONOMOUS_RUN.md to include the regenerated release artifacts under
release-artifacts/latest/* so the durable run state matches the changed surface
for Queue Item 73; specifically add entries for the generated release
manifest(s) and checksum evidence referenced by the PR (the
release-artifacts/latest files) and ensure the manifest/checksum names included
match the outputs produced by the release pipeline referenced by this change.
In `@script/RehearseAuctionCeremony.s.sol`:
- Around line 96-106: After minting via drops.mintDrop and getting tokenId
(retrieveTokenID), add an assertion that the token's hash written by the
deterministic randomizer is non-zero and (preferably) equals the expected
deterministic value: read the minted token hash from StreamCore (e.g.,
core.tokenHash(tokenId) or the actual getter on StreamCore) and assert it !=
bytes32(0); then compute the expected deterministic hash using the wired
AuctionCeremonyRandomizer helper (call the randomizer's deterministic hash
function, e.g., AuctionCeremonyRandomizer.computeDeterministicHash or similar
with the same inputs used in the rehearsal) and assert equality to ensure the
drop-to-randomizer callback actually wrote the expected hash.
- Around line 222-230: The current _withdrawFor uses account.balance -
balanceBefore which is flaky due to gas costs; instead have _withdrawFor not
compute balance deltas but accept or reuse the canonical credit amount obtained
by _withdrawProceeds (the value read from the auctions credit query) as the
withdrawn amount, call
auctions.withdrawAuctionProceedsCreditTo(payable(account)) only to execute the
transfer, and then perform any zero-credit or post-withdrawal assertions; update
callers (e.g., _withdrawProceeds) to pass the previously-read credit value into
_withdrawFor (or return that credit directly) so withdrawAuctionProceedsCreditTo
is only responsible for side effects and the canonical withdrawn value comes
from the credit-reading logic.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 2be36760-819c-4e45-b8f0-88a5a1578dcf
📒 Files selected for processing (18)
.github/workflows/ci.ymlCHANGELOG.mdMakefiledocs/deployment.mddocs/known-blockers.mddocs/status.mddocs/tooling.mdops/AUTONOMOUS_RUN.mdops/ROADMAP.mdrelease-artifacts/latest/SHA256SUMSrelease-artifacts/latest/release-checksums.jsonrelease-artifacts/latest/release-manifest.jsonscript/README.mdscript/RehearseAuctionCeremony.s.solscripts/check.ps1scripts/check.shtest/README.mdtest/StreamDeploymentManifest.t.sol
Summary
Closes #140.
Adds a local Anvil auction ceremony rehearsal for Gate E. The new
RehearseAuctionCeremonyscript builds on the local deployment rehearsal, configures a deterministic local randomizer, signs and mints an auction drop through the EIP-712 path, verifies active NFT custody inStreamAuctions, places a bid, settles after the auction end, withdraws poster/protocol/curator proceeds, and asserts zero owed funds.The PR also wires the ceremony into
make deploy-rehearsal,scripts/check.sh,scripts/check.ps1, and CI, then updates deployment/tooling/status/blocker/test/script docs plus the roadmap/run-state and generated release manifest/checksum evidence.Validation
forge fmt script\RehearseAuctionCeremony.s.sol test\StreamDeploymentManifest.t.solforge fmt --check script\RehearseAuctionCeremony.s.sol test\StreamDeploymentManifest.t.solforge test --match-path test\StreamDeploymentManifest.t.sol -vvvforge script script\RehearseAuctionCeremony.s.sol:RehearseAuctionCeremony --sig "run()" --via-irpython scripts\test_release_manifest.pypython scripts\generate_release_manifest.py --checkpython scripts\test_release_checksums.pypython scripts\generate_release_checksums.py --checkpython scripts\test_changelog_check.pypython scripts\check_changelog.pyforge buildforge test -vvvforge build --sizes --via-ir --skip test --skip script --forcemake checkbash -n scripts/check.sh scripts/bootstrap-ec2.shscripts/check.ps1andscripts/bootstrap-windows.ps1powershell -NoProfile -ExecutionPolicy Bypass -File scripts\check.ps1git diff --cached --checkNotes
This is local Anvil evidence only. Fork, testnet, and production broadcast ceremony evidence remain Gate E release work.
Summary by CodeRabbit
New Features
Tests
Documentation
Chores