[#25] Forward MCV2_Bond creation fee in createStoryline#26
Conversation
MCV2_Bond on Base mainnet charges 0.0007 ETH creation fee. Forward msg.value to BOND.createToken to fix InvalidCreationFee revert on mainnet. Fixes #25 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New address: 0xc278F4099298118efA8dF30DF0F4876632571948 Verified on Sourcify (exact_match) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
T2b APPROVE
Two-line fix, clean and correct:
createStorylinemarkedpayable✓BOND.createToken{value: msg.value}(tp, bp)forwards the creation fee ✓
- Fixes
MCV2_Bond__InvalidCreationFeerevert on mainnet (0.0007 ETH fee) - New deployment
0xc278F4099298118efA8dF30DF0F4876632571948— broadcast artifacts match, constructor args correct - CI green, 26 tests pass
LGTM.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The production fix is the expected minimal change, and the redeploy artifact is internally consistent. The blocker is that the test suite still does not prove the bug fix: nothing asserts that msg.value actually reaches BOND.createToken.
Findings
- [medium] No regression test verifies that
createStoryline()forwards the creation fee toIMCV2_Bond.createToken.- File:
test/StoryFactory.t.sol - Suggestion: capture
msg.valuein the mock bond and add a test that callscreateStoryline{value: ...}()and asserts the mock received that exact value. Right now all 26 tests can pass even if the payable forwarding path is broken, which is the specific mainnet bug this PR is fixing.
- File:
Decision
Request changes until the fee-forwarding behavior is covered by a deterministic test. For a redeploy driven by a production bug, the regression needs to be explicit.
Capture msg.value in MockBond and assert createStoryline forwards the exact fee (0.0007 ETH) and also works with zero fee. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The follow-up commit closes the only review gap by explicitly asserting that createStoryline() forwards msg.value into IMCV2_Bond.createToken. The production fix remains minimal, and the redeploy record is consistent.
Findings
- [info]
test/StoryFactory.t.solnow capturesmsg.valuein the mock bond and verifies both0.0007 ETHforwarding and the zero-fee case.
Decision
Approve because the mainnet creation-fee bug is now both fixed and covered by deterministic regression tests.
Summary
createStorylinepayable and forwardmsg.valuetoBOND.createToken{value: msg.value}()MCV2_Bond__InvalidCreationFeerevert on Base mainnet (0.0007 ETH fee)0xc278F4099298118efA8dF30DF0F4876632571948Post-deploy verification
Test plan
forge test— all 26 tests passforge fmtcleancreateStorylinewith 0.0007 ETH value succeeds on mainnetFixes #25
🤖 Generated with Claude Code