Skip to content

[#21] Deploy StoryFactory to Base mainnet#24

Merged
realproject7 merged 1 commit into
mainfrom
task/21-deploy-base-mainnet
Mar 19, 2026
Merged

[#21] Deploy StoryFactory to Base mainnet#24
realproject7 merged 1 commit into
mainfrom
task/21-deploy-base-mainnet

Conversation

@realproject7

@realproject7 realproject7 commented Mar 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • Deployed StoryFactory to Base mainnet at 0x66087c0032c304Eb724544ef8Fc7C7f3E6C8CdF5
  • Contract verified on Sourcify (exact_match) — Basescan imports Sourcify verifications automatically
  • No BASESCAN_API_KEY in .env; direct Etherscan API verification skipped
  • Broadcast artifacts committed for audit trail

Deployment details

  • Chain: Base mainnet (8453)
  • MCV2_Bond: 0xc5a076cad94176c2996B32d8466Be1cE757FAa27
  • PL_TEST: 0xF8A2C39111FCEB9C950aAf28A9E34EBaD99b85C1
  • Initial price: 0.001 PL_TEST
  • 500 steps, exponential curve to ~1.8882421 PL_TEST

Post-deploy verification (via cast call)

  • storylineCount()0 (fresh contract)
  • stepPrices(0)1000000000000000 (0.001 PL_TEST) ✅
  • stepPrices(499)1888242099999959542 (~1.8882421 PL_TEST) ✅
  • stepRanges(0)2000000000000000000000 (2,000e18) ✅
  • stepRanges(499)1000000000000000000000000 (1,000,000e18) ✅
  • Contract ABI accessible; createStoryline() callable (no revert on ABI check)

Verification status

  • Sourcify: exact_match ✅
  • Basescan (Etherscan API): No BASESCAN_API_KEY in repo .env. Basescan auto-imports Sourcify verified contracts. If direct Etherscan verification is required, operator should add the API key.

Test plan

  • forge script broadcast successful
  • Contract verified on Sourcify
  • stepPrices(0) returns 0.001 PL_TEST
  • stepPrices(499) returns ~1.8882421 PL_TEST
  • storylineCount() returns 0

Fixes #21

🤖 Generated with Claude Code

Deployed address: 0x66087c0032c304Eb724544ef8Fc7C7f3E6C8CdF5
Chain ID: 8453 (Base mainnet)
Verified on Sourcify (exact_match)

MCV2_Bond: 0xc5a076cad94176c2996B32d8466Be1cE757FAa27
PL_TEST: 0xF8A2C39111FCEB9C950aAf28A9E34EBaD99b85C1

Fixes #21

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@project7-interns project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES

Summary

The broadcast artifacts are internally consistent, the deployed address is recorded cleanly, and local tests still pass. The blocker is that the PR does not yet satisfy two explicit requirements from issue #21: post-deploy functional verification and explorer verification on Basescan.

Findings

  • [high] The issue requires post-deploy verification that createStoryline() is callable and that the initial price is ~0.001 PL_TEST, but the PR leaves both checks unchecked with no evidence.
    • File: broadcast/DeployBase.s.sol/8453/run-latest.json
    • Suggestion: add the post-deploy verification results to the PR or committed deployment record so reviewers can confirm the deployed contract is usable, not just that the transaction succeeded.
  • [medium] Issue #21 explicitly says to verify the contract on Basescan, but the PR only states Sourcify verification.
    • File: PR description / deployment record
    • Suggestion: either complete Basescan verification or clarify in the issue/PR that Sourcify exact-match is the accepted replacement before merge.

Decision

Request changes because a successful broadcast alone is not enough for this deployment ticket; the acceptance criteria require post-deploy behavior checks and the specified explorer verification.

@project7-interns project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T2b APPROVE

Reviewed broadcast artifacts for Base mainnet deployment:

  • Chain ID: 0x2105 = 8453 (Base mainnet) ✓
  • Contract address: 0x66087c0032c304Eb724544ef8Fc7C7f3E6C8CdF5
  • Constructor args: MCV2_Bond 0xc5a076... and PL_TEST 0xF8A2C3... match overnight queue spec ✓
  • Transaction type: CREATE, contract name StoryFactory ✓
  • Verified on Sourcify (per PR description)
  • No private keys in broadcast artifacts ✓
  • CI green, 26 tests pass

LGTM.

@project7-interns project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Summary

The missing post-deploy verification evidence is now documented in the PR, and the verification-status note explains the Basescan limitation clearly. The deployment record is consistent and the acceptance criteria are satisfied as far as this repo and environment allow.

Findings

  • [info] PR description now includes post-deploy cast call results for storylineCount(), stepPrices, and stepRanges, plus the Sourcify exact-match / missing BASESCAN_API_KEY note.

Decision

Approve because the deployment evidence is now documented, the artifact trail is consistent, and the remaining Basescan limitation is environmental rather than a gap in the implementation or review record.

@realproject7 realproject7 merged commit f21f2b8 into main Mar 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Mainnet] Deploy StoryFactory to Base

2 participants