QA setup checklist: local full stack (prerequisites, quick start, reference) #162
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega#162
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Prerequisites
Git, Docker, Foundry (
anvil,forge,cast),jq,curl, Rust, Node/npm. One-time per clone:(cd frontend && npm ci)and abots/timecurvevenv withpip install -e ".[dev]"sopython3 -c "import web3"works (seebots/timecurve/README.md).Quick start
Repo root — installs frontend deps if needed, then full stack (Postgres, Anvil, deploy, indexer, swarm, Vite; live sale + short buy cooldown for usable bot traffic):
Open http://127.0.0.1:5173 (or the port printed in the summary).
Reference: QA setup, options, and terms
If
frontend/node_modulesis already present and the bot venv canimport web3, you can run onlyYIELDOMEGA_DEPLOY_NO_COOLDOWN=1 bash scripts/start-qa-local-full-stack.sh --live-sale.What the orchestrator does
scripts/start-qa-local-full-stack.shis a thin wrapper: it only callsscripts/start-local-anvil-stack.sh, then optionally starts the Vite dev server. All deploy, DB reset, registry, and indexer logic lives in the stack script (GitLab #104).Authoritative doc:
docs/testing/qa-local-full-stack.md.Terms
contracts/script/anvil_rich_state.shafter deploy: warps/simulates a post–sale-end narrative (prizes, vesting hooks, etc.). Swarm defaults off so bots do not fight that scripted state.SKIP_ANVIL_RICH_STATE=1: skips rich state; TimeCurve stays in a live sale window suitable for UI + indexer demos. Swarm defaults on unless you disable it.VITE_INDEXER_URLinfrontend/.env.local).bots/timecurve/issuing scripted txs (requiresweb3). Not onchain authority—QA traffic only.DeployKumbayaAnvilFixtures+TimeCurveBuyRouterregistry entries and matchingVITE_*lines for single-tx / router QA.CLI flags (
start-qa-local-full-stack.sh)--no-frontendnpm run dev.--no-swarmSTART_BOT_SWARM=0before the stack.--kumbayaYIELDOMEGA_DEPLOY_KUMBAYA=1(fixtures + router in registry + localVITE_*merge).--rich-stateSKIP_ANVIL_RICH_STATEso rich state runs when your shell had previously exportedSKIP_ANVIL_RICH_STATE=1.--live-saleSKIP_ANVIL_RICH_STATE=1(live sale path; swarm on by default).Any env var documented for
start-local-anvil-stack.shcan be exported in the same shell before the orchestrator; it is forwarded unchanged.Decision hints
--live-sale) so rich state runs; keep swarm off unless you know you need it (START_BOT_SWARM=1).--live-sale(quick start above). PreferYIELDOMEGA_DEPLOY_NO_COOLDOWN=1and/orYIELDOMEGA_ANVIL_BUY_COOLDOWN_SECfor dense traffic; default 300 s per-wallet cooldown stalls naive swarm + automine timing (GitLab #88, GitLab #99).BuyViaKumbaya/ router QA: add--kumbayaorYIELDOMEGA_DEPLOY_KUMBAYA=1; ensure indexer restarts if you merge registry rows after the fact (GitLab #78, GitLab #84).--no-frontend.Env matrix (representative)
ANVIL_PORT,RPC_URL,SKIP_ANVIL_RICH_STATE,START_BOT_SWARM,YIELDOMEGA_ANVIL_BLOCK_TIME_SEC,YIELDOMEGA_ANVIL_GAS_LIMIT,YIELDOMEGA_DEV_SALE_START_DELAY_SEC,YIELDOMEGA_DEPLOY_NO_COOLDOWN,YIELDOMEGA_ANVIL_BUY_COOLDOWN_SEC,YIELDOMEGA_DEPLOY_KUMBAYA,DEPLOYER_PK,FOUNDRY_OUTPG_HOST_PORT,INDEXER_PORT,QA_USE_FIXED_INDEXER_PORT,DOCKER_PGFRONTEND_DEV_PORT;LAUNCH_OFFSET_SEC→VITE_LAUNCH_TIMESTAMPin.env.localYIELDOMEGA_SWARM_REFERRALS,YIELDOMEGA_ANVIL_EXTRA_FUNDED_ADDRESSES(GitLab #102)Production indexer knobs (
INDEXER_PRODUCTION=1, strictDATABASE_URL/ADDRESS_REGISTRY) apply to real deploys, not this local orchestrator path—seeindexer/README.md.Addresses and proxies
Use ERC-1967 proxy addresses from the stack /
local-anvil-registry.json, not the implementation row inrun-latest.json, for wallet calls and bot config (GitLab #61).Smoke checks (after stack is up)
Use
RPC_URLand indexer base from stack output orfrontend/.env.local(VITE_RPC_URL,VITE_INDEXER_URL):Stopping / logs
PIDs and logs under
/tmp/(yieldomega_anvil_stack,yieldomega_indexer_stack,yieldomega_frontend_qa,yieldomega_bot_swarm, swarm logs). Postgres:docker stop yieldomega-pg(override name withDOCKER_PG). Details:qa-local-full-stack.md§ Stopping.Not covered here
Automated Playwright E2E:
scripts/e2e-anvil.shanddocs/testing/e2e-anvil.md.Issue-tagged manual QA checklists for contributors:
docs/testing/manual-qa-checklists.md.assigned to @nullvector_ux
mentioned in issue #164
@nullvector_ux Once you start this task, please update here with your status - or any problems you run into document here.
mentioned in issue #147
Added
scripts/bootstrap-dev.shfor post-clone setup: runsgit submodule update --init --recursive(Foundry libs undercontracts/lib/, including OpenZeppelin for@openzeppelin/contractsimports) then(cd frontend && npm ci).Run from repo root (idempotent):
Optional next steps (unchanged from prerequisites):
bots/timecurvevenv andpip install -e ".[dev]"for the swarm — seebots/timecurve/README.md. Contracts reference:contracts/README.md.This covers fresh clones (including WSL) where the editor or
forgereports missing@openzeppelin/contracts/...until submodules are populated.mentioned in commit
5bd1e5b354mentioned in commit
fb98ea8364