Deploy: Arena v2 DeployDev + production deploy (clean reset) #259

Closed
opened 2026-05-27 07:07:49 +00:00 by PlasticDigits · 16 comments
PlasticDigits commented 2026-05-27 07:07:49 +00:00 (Migrated from gitlab.com)

Context

Deploy scripts for TimeArena v2 full redeploy. Parent epic: #238.

Relevant files

  • contracts/script/DeployDev.s.sol, DeployProduction.s.sol
  • scripts/start-local-anvil-stack.sh, scripts/e2e-anvil.sh
  • docs/operations/deployment-guide.md
  • frontend/.env.local generation scripts

Acceptance criteria

  • DeployDev wires TimeArena, PlayCred, PodiumVaults, AdminSellVault, TimeArenaBuyRouter, ReferralRegistry
  • Seeds test DOUB/CL8Y; grants test CRED; arena always live or admin start()
  • Production script: no Leprechaun/Rabbit/Presale/TimeCurve
  • README address table updated

Verification checklist

  • bash scripts/start-local-anvil-stack.sh green
  • bash scripts/e2e-anvil.sh green
  • MegaEVM bytecode limits (#72) checked
## Context Deploy scripts for TimeArena v2 full redeploy. Parent epic: #238. ## Relevant files - `contracts/script/DeployDev.s.sol`, `DeployProduction.s.sol` - `scripts/start-local-anvil-stack.sh`, `scripts/e2e-anvil.sh` - `docs/operations/deployment-guide.md` - `frontend/.env.local` generation scripts ## Acceptance criteria - [ ] DeployDev wires TimeArena, PlayCred, PodiumVaults, AdminSellVault, TimeArenaBuyRouter, ReferralRegistry - [ ] Seeds test DOUB/CL8Y; grants test CRED; arena always live or admin `start()` - [ ] Production script: no Leprechaun/Rabbit/Presale/TimeCurve - [ ] README address table updated ## Verification checklist - [ ] `bash scripts/start-local-anvil-stack.sh` green - [ ] `bash scripts/e2e-anvil.sh` green - [ ] MegaEVM bytecode limits (#72) checked
PlasticDigits commented 2026-05-27 07:07:50 +00:00 (Migrated from gitlab.com)

marked as related to #238

marked as related to #238
PlasticDigits commented 2026-05-27 07:08:01 +00:00 (Migrated from gitlab.com)

mentioned in issue #238

mentioned in issue #238
PlasticDigits commented 2026-05-29 09:43:11 +00:00 (Migrated from gitlab.com)

mentioned in commit a719e4674b

mentioned in commit a719e4674b331305b153ba08b03072695eae59ea
PlasticDigits commented 2026-05-29 09:43:29 +00:00 (Migrated from gitlab.com)

Implementation summary (GitLab #259)

Arena v2 deploy scripts and operator tooling are updated on main (a719e46).

What changed

  • DeployDev.s.sol: wires TimeArena, PlayCred, PodiumVaults, AdminSellVault, ReferralRegistry, Doubloon; calls startArena(); seeds DOUB / mock CL8Y / CRED for the Playwright mock wallet. TimeArenaBuyRouter remains via DeployKumbayaAnvilFixtures when YIELDOMEGA_DEPLOY_KUMBAYA=1 (#270).
  • DeployProduction.s.sol: Arena v2 only (no Leprechaun / Rabbit / Presale / TimeCurve / FeeRouter); DEPLOY_ADMIN_ADDRESS ownership; optional START_ARENA=1.
  • scripts/deploy-megaeth-contracts.sh + write-production-registry-from-broadcast.sh: Arena v2 registry keys and VITE_TIME_ARENA_* hints; shared scripts/lib/arena_v2_registry_from_broadcast.sh.
  • export_abi_hashes.sh: Arena v2 ABI set.
  • Docs / invariants: deployment-guide.md#arena-v2-deploy-gitlab-259, INV-DEPLOY-259-* in invariants-and-business-logic.md, guardrails + dev-addresses.example.json.
  • Tests: DevStackIntegration.t.sol (6 Forge tests).

Verification checklist for @brouie

  • cd contracts && FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration
  • bash scripts/e2e-anvil.sh (DeployDev + Kumbaya fixtures; 5/6 Playwright specs green on last run — anvil-arena-wallet-writes DOUB buy may need follow-up, same class of flake as pre-change main)
  • bash scripts/start-local-anvil-stack.sh with SKIP_ANVIL_RICH_STATE=1 — confirm frontend/.env.local has VITE_TIME_ARENA_ADDRESS, vaults, PlayCred
  • Dry-run production wrapper: scripts/deploy-megaeth-contracts.sh --help and review env block in deployment-guide.md#arena-v2-deploy-gitlab-259
  • After a testnet/mainnet broadcast: scripts/write-production-registry-from-broadcast.sh emits TimeArena, PodiumVaults, AdminSellVault, PlayCred keys

Please verify on your side and confirm before we close. Leaving issue open until sign-off.

/cc @brouie

## Implementation summary (GitLab #259) Arena v2 deploy scripts and operator tooling are updated on `main` (`a719e46`). ### What changed - **`DeployDev.s.sol`**: wires `TimeArena`, `PlayCred`, `PodiumVaults`, `AdminSellVault`, `ReferralRegistry`, `Doubloon`; calls `startArena()`; seeds DOUB / mock CL8Y / CRED for the Playwright mock wallet. `TimeArenaBuyRouter` remains via `DeployKumbayaAnvilFixtures` when `YIELDOMEGA_DEPLOY_KUMBAYA=1` ([#270](https://gitlab.com/PlasticDigits/yieldomega/-/issues/270)). - **`DeployProduction.s.sol`**: Arena v2 only (no Leprechaun / Rabbit / Presale / TimeCurve / FeeRouter); `DEPLOY_ADMIN_ADDRESS` ownership; optional `START_ARENA=1`. - **`scripts/deploy-megaeth-contracts.sh`** + **`write-production-registry-from-broadcast.sh`**: Arena v2 registry keys and `VITE_TIME_ARENA_*` hints; shared **`scripts/lib/arena_v2_registry_from_broadcast.sh`**. - **`export_abi_hashes.sh`**: Arena v2 ABI set. - **Docs / invariants**: [`deployment-guide.md#arena-v2-deploy-gitlab-259`](docs/operations/deployment-guide.md#arena-v2-deploy-gitlab-259), **`INV-DEPLOY-259-*`** in [`invariants-and-business-logic.md`](docs/testing/invariants-and-business-logic.md), guardrails + `dev-addresses.example.json`. - **Tests**: [`DevStackIntegration.t.sol`](contracts/test/DevStackIntegration.t.sol) (6 Forge tests). ### Verification checklist for @brouie - [ ] `cd contracts && FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration` - [ ] `bash scripts/e2e-anvil.sh` (DeployDev + Kumbaya fixtures; 5/6 Playwright specs green on last run — `anvil-arena-wallet-writes` DOUB buy may need follow-up, same class of flake as pre-change `main`) - [ ] `bash scripts/start-local-anvil-stack.sh` with `SKIP_ANVIL_RICH_STATE=1` — confirm `frontend/.env.local` has `VITE_TIME_ARENA_ADDRESS`, vaults, `PlayCred` - [ ] Dry-run production wrapper: `scripts/deploy-megaeth-contracts.sh --help` and review env block in [`deployment-guide.md#arena-v2-deploy-gitlab-259`](docs/operations/deployment-guide.md#arena-v2-deploy-gitlab-259) - [ ] After a testnet/mainnet broadcast: `scripts/write-production-registry-from-broadcast.sh` emits `TimeArena`, `PodiumVaults`, `AdminSellVault`, `PlayCred` keys Please verify on your side and confirm before we close. Leaving issue **open** until sign-off. /cc @brouie
PlasticDigits commented 2026-05-30 13:53:05 +00:00 (Migrated from gitlab.com)

mentioned in commit c0037cfc6b

mentioned in commit c0037cfc6b668e0177be0cb6fd64d9df1f499134
PlasticDigits commented 2026-05-30 13:53:05 +00:00 (Migrated from gitlab.com)

mentioned in commit 33da86e474

mentioned in commit 33da86e4748836bd8bf7e96b8fa1a369cbea27c0
PlasticDigits commented 2026-05-30 13:53:07 +00:00 (Migrated from gitlab.com)

QA agent verification (#259)

Per maintainer direction: QA agent runs sign-off (not @brouie). Recorded on main after merge of 33da86e.

Results

  • FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration — 6/6 pass
  • bash scripts/e2e-anvil.sh — DeployDev + Kumbaya deploy OK; Playwright 4/5 (anvil-arena-cred-buy, mount, onchain-reads pass; anvil-arena-wallet-writes DOUB buy timeout — same known flake as prior runs)
  • scripts/deploy-megaeth-contracts.sh --help — Arena v2 defaults documented
  • scripts/write-production-registry-from-broadcast.sh on Anvil DeployProduction broadcast — registry includes TimeArena, PodiumVaults, AdminSellVault, PlayCred, ReferralRegistry, Doubloon
  • forge build --sizes — TimeArena runtime 24,637 B (MegaEVM 512 KiB limit #72)
  • [~] SKIP_ANVIL_RICH_STATE=1 bash scripts/start-local-anvil-stack.sh — DeployDev + local-anvil-registry.json OK; stack exited before .env.local because indexer did not answer on port 3101 (Postgres pool timeout in this environment — infra, not deploy wiring)

Docs

Checklist and evidence table: deployment-guide.md#arena-v2-deploy-gitlab-259 (§ QA verification).

Issue remains open until product accepts QA sign-off or files follow-ups for the DOUB E2E flake / stack indexer port.

## QA agent verification (#259) Per maintainer direction: **QA agent** runs sign-off (not @brouie). Recorded on `main` after merge of `33da86e`. ### Results - [x] `FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration` — **6/6 pass** - [x] `bash scripts/e2e-anvil.sh` — DeployDev + Kumbaya deploy OK; Playwright **4/5** (`anvil-arena-cred-buy`, mount, onchain-reads pass; `anvil-arena-wallet-writes` DOUB buy **timeout** — same known flake as prior runs) - [x] `scripts/deploy-megaeth-contracts.sh --help` — Arena v2 defaults documented - [x] `scripts/write-production-registry-from-broadcast.sh` on Anvil `DeployProduction` broadcast — registry includes `TimeArena`, `PodiumVaults`, `AdminSellVault`, `PlayCred`, `ReferralRegistry`, `Doubloon` - [x] `forge build --sizes` — `TimeArena` runtime **24,637 B** (MegaEVM 512 KiB limit [#72](https://gitlab.com/PlasticDigits/yieldomega/-/issues/72)) - [~] `SKIP_ANVIL_RICH_STATE=1 bash scripts/start-local-anvil-stack.sh` — **DeployDev** + `local-anvil-registry.json` OK; stack exited before `.env.local` because indexer did not answer on port 3101 (Postgres pool timeout in this environment — infra, not deploy wiring) ### Docs Checklist and evidence table: [`deployment-guide.md#arena-v2-deploy-gitlab-259`](docs/operations/deployment-guide.md#arena-v2-deploy-gitlab-259) (§ **QA verification**). Issue remains **open** until product accepts QA sign-off or files follow-ups for the DOUB E2E flake / stack indexer port.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-30 13:57:21 +00:00
PlasticDigits commented 2026-06-01 10:48:21 +00:00 (Migrated from gitlab.com)

mentioned in issue #274

mentioned in issue #274
PlasticDigits commented 2026-06-01 11:03:19 +00:00 (Migrated from gitlab.com)

mentioned in issue #275

mentioned in issue #275
ghost1 commented 2026-06-02 13:30:37 +00:00 (Migrated from gitlab.com)

mentioned in issue #278

mentioned in issue #278
PlasticDigits commented 2026-06-03 13:30:12 +00:00 (Migrated from gitlab.com)

mentioned in merge request !412

mentioned in merge request !412
PlasticDigits commented 2026-06-03 13:39:34 +00:00 (Migrated from gitlab.com)

mentioned in merge request !415

mentioned in merge request !415
PlasticDigits commented 2026-06-07 07:50:10 +00:00 (Migrated from gitlab.com)

mentioned in issue #300

mentioned in issue #300
PlasticDigits commented 2026-06-07 09:56:02 +00:00 (Migrated from gitlab.com)

mentioned in merge request !440

mentioned in merge request !440
PlasticDigits commented 2026-06-13 07:02:53 +00:00 (Migrated from gitlab.com)

mentioned in issue #309

mentioned in issue #309
PlasticDigits commented 2026-06-28 12:50:45 +00:00 (Migrated from gitlab.com)

mentioned in commit 99e3478b29

mentioned in commit 99e3478b2999485a4c08ccb50d54408c4230dab4
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#259
No description provided.