Skip to content

feat: deploy rollup creator#9

Open
alxdca wants to merge 1 commit into
testnode-workspace-migrationfrom
feat/add-rollup-creator
Open

feat: deploy rollup creator#9
alxdca wants to merge 1 commit into
testnode-workspace-migrationfrom
feat/add-rollup-creator

Conversation

@alxdca
Copy link
Copy Markdown
Contributor

@alxdca alxdca commented Jun 5, 2026

Summary

  • Deploy a local RollupCreator before creating both the L2 and L3 rollups, then pass the deployed RollupCreator and stake token into SDK rollup creation.
  • Add a dedicated contract deployer Docker image/script that builds pinned nitro-contracts and token-bridge-contracts revisions and writes rollup_creator.json into the testnode config.
  • Extend core rollup deployment to support a RollupCreator address override, custom retryable fee handling, custom fee token allowance approval, and stake token normalization.
  • Update token bridge deployment to run the creator script directly through ts-node, disable contract verification for local deploys, register the WETH gateway when needed, and use owner keys for L2/L3 bridge deployment.
  • Update init/rebuild behavior to reset runtime data while preserving snapshots, rebuild the contract deployer image when requested, patch beacon RPC URLs for Docker, and disable the L3 staker after L3 token bridge setup.
  • Add token bridge tests covering the new creator invocation, WETH gateway registration path, and retryable receipt handling.

Why / Context

  • The testnode setup needs to deploy against a known local RollupCreator instead of relying on the default SDK deployment path.
  • Local L2/L3 rollup creation now depends on contract artifacts from nitro-contracts, so the branch packages that deployment environment in Docker for reproducibility.
  • Token bridge setup needs to work with the locally deployed creator contracts and correctly register WETH gateway state for ETH-based chains.

@alxdca alxdca requested a review from douglance June 5, 2026 13:58
The target branch moved init orchestration into @arbitrum/testnode-core, so the rollup-creator feature is ported into the migrated core init steps instead of keeping the old CLI-owned implementation. Docker now provisions local RollupCreator contracts and stake tokens, while Chain SDK creates the L2 and L3 rollups through those deployed contracts.

Constraint: testnode-workspace-migration makes apps/cli/src/commands/init.ts a thin wrapper around core init-runner

Rejected: Keep the target branch Docker create-rollup-testnode flow | it would drop the feature branch SDK rollup creation behavior

Rejected: Restore the old CLI-local init implementation | it would undo the workspace migration

Confidence: high

Scope-risk: moderate

Directive: Keep rollup deployment behavior in packages/core/src/init after the workspace split; do not move it back into apps/cli

Tested: pnpm exec biome check apps/cli/src/commands/init.ts apps/cli/test/no-docker-rollup.test.ts docker/deploy-rollup-creator.ts packages/core/src/init/chain-steps.ts packages/core/src/sdk-chain.ts packages/core/src/token-bridge.ts packages/core/test/token-bridge.test.ts

Tested: pnpm build

Tested: pnpm typecheck

Tested: pnpm test:run

Not-tested: pnpm validate is blocked by pre-existing .omx JSON formatting diagnostics from the repository-wide Biome glob

Co-authored-by: OmX <omx@oh-my-codex.dev>
@alxdca alxdca force-pushed the feat/add-rollup-creator branch from 2ebc67c to 356db03 Compare June 5, 2026 14:21
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.

1 participant