[#1] Contract Repo Setup#9
Conversation
Set up Foundry project targeting Solc 0.8.28 with Base/Base Sepolia RPC endpoints. Add IMCV2_Bond interface (createToken, updateBondCreator, mint, burn, getReserveForToken, claimRoyalties) matching the deployed Mint Club V2 Bond at 0xc5a076...FAa27. Add minimal IERC20 interface. Add placeholder StoryFactory with BOND and PLOT_TOKEN immutables. Fixes #1 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: REQUEST CHANGES
Summary
The PR is close to the requested repo scaffold, but it is not merge-ready because the required GitHub Actions check is failing. The failure is a real formatting issue in IMCV2_Bond.sol, so the merge checklist item forge build succeeds is not enough on its own here.
Findings
- [medium] CI is red because
forge fmt --checkfails on the multiline function signatures insrc/interfaces/IMCV2_Bond.sol. Until this is reformatted to Foundry's expected style, the PR does not pass the repo's required checks.- File:
src/interfaces/IMCV2_Bond.sol:40 - Suggestion: run
forge fmt(or manually match its output) so the interface passes theFoundry projectworkflow.
- File:
Decision
Request changes because the PR currently fails required CI, so it is not safe to approve yet even though the overall scaffold and interface coverage look directionally correct.
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 formatting issue is fixed and the required Foundry CI checks are now passing. The PR provides the requested repo scaffold, Base RPC configuration, external interfaces, and placeholder factory contract in a focused setup change.
Findings
- None.
Decision
Approve because the prior CI blocker is resolved and the PR now satisfies the issue #1 merge criteria.
project7-interns
left a comment
There was a problem hiding this comment.
T2b Review: REQUEST CHANGES
Blocking: IMCV2_Bond interface does not match deployed contract
Verified against the deployed MCV2_Bond on Base (0xc5a076...FAa27). Multiple signature mismatches that would cause on-chain reverts:
a) createToken — Real contract uses struct params (TokenParams, BondParams), not flattened individual params. The PR also adds a non-existent creatorAddress param (real contract uses msg.sender), uses uint256 instead of uint128, and swaps royalty/reserveToken order.
b) mint — Missing returns (uint256) (reserve amount spent).
c) burn — Missing returns (uint256) (refund amount).
d) getReserveForToken — Missing second return value. Real: returns (uint256 reserveAmount, uint256 royalty).
e) claimRoyalties — Param should be address reserveToken, not address token. NatSpec is misleading.
f) updateBondCreator — Minor: param name newCreator should be creator to match deployed contract.
Blocking: CI failing
forge fmt --check fails. Run forge fmt and push.
Required actions
- Fix all IMCV2_Bond signatures to match the deployed contract (struct-based
createTokenis critical) - Run
forge fmt
Update interface to match actual Mint Club V2 Bond (Steemhunt): - createToken uses (TokenParams, BondParams) struct params - mint/burn return uint256 - getReserveForToken returns (reserveAmount, royalty) - Add getRefundForTokens - claimRoyalties takes reserveToken address (not token) - Add TokenParams and BondParams struct definitions 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 fix resolves the remaining contract interface concern: IMCV2_Bond now matches the deployed Mint Club V2 Bond shape closely enough for the setup ticket, including struct-based createToken, corrected return values, and the additional quote helper. Foundry CI is green on the updated head commit.
Findings
- None.
Decision
Approve because the prior interface/CI blockers are resolved and the PR now satisfies the contract repo setup merge criteria.
project7-interns
left a comment
There was a problem hiding this comment.
T2b Review: APPROVE
All previous blockers resolved:
- IMCV2_Bond interface — All signatures now match deployed contract exactly: struct-based
createToken,mint/burnwith return values,getReserveForTokendual return,claimRoyalties(reserveToken). - CI —
forge build+forge fmt --checkboth passing.
Foundry scaffold is clean. IERC20 and placeholder StoryFactory compile correctly.
Foundry project (Solc 0.8.28, Base RPCs). IMCV2_Bond + IERC20 interfaces. Placeholder StoryFactory. Fixes #1