Compare commits

...

187 Commits

Author SHA1 Message Date
defiQUG
377369a5be feat(gitea-phoenix): gov runtime, deploy/template parity, workflow dedupe docs
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 2s
- Add gov-portals-runtime.v1.json + schema; jq gate in validate-config-files
- Python: parity-deploy-targets, parity-operational-template (IP strict, hostname WARN),
  parity-gov-portals-runtime; validate-vm-routing-parity.sh wrapper
- check-gov-portal-workflow-canonical-strings.sh for monorepo Pattern A
- PORTAL_WORKFLOW_PARITY.md; template headers; repos README; operator checklist secrets
- report-gitea-cd-parity runs full VM routing parity; task doc marked complete
- GOV_PORTALS_XOM_DEV + GITEA_GOV + MASTER_INDEX + matrix doc cross-links

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 15:55:50 -07:00
defiQUG
e00e1f9b54 feat(gitea-phoenix): non-blockchain VM routing matrix + inventory closure CI
Some checks failed
Deploy to Phoenix / validate (push) Failing after 1s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- Add besu hostname-prefix exclusions and JSON Schema for matrix rows
- Generate 94-row matrix from committed live_inventory (non-besu guests)
- Enrich VMIDs from deploy-targets descriptions (7804, 5000, 7801, …)
- Python generate/validate; shell wrapper; hook validate-config-files.sh
- Docs: task status, matrix doc links, MASTER_INDEX

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 15:43:39 -07:00
defiQUG
c2dd721b33 docs: scope Gitea/Phoenix routing cleanup for all non-Besu VMIDs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 15:37:28 -07:00
defiQUG
4c32c0cd60 docs(gov-portals): Gitea-only forge policy; clarify GitHub as non-canonical
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 15:32:49 -07:00
defiQUG
bebea622fe feat(gov-portals): Phoenix CD parity, CI templates, sha-on-branch verify
Some checks failed
Deploy to Phoenix / validate (push) Failing after 0s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- Add phoenix-deploy-gov-portal-live-from-workspace.sh (DBIS/ICCC/OMNL/XOM); DBIS script delegates to it.
- deploy-targets: Gov_Web_Portals ICCC/OMNL/XOM with xom-dev healthchecks.
- server.js: optional PHOENIX_DEPLOY_VERIFY_SHA_ON_BRANCH via Gitea commit + compare.
- Gitea workflow templates: dbis/iccc/omnl/xom portal-ci-and-live (monorepo overlay CI, deploy needs verify); concurrency groups; document deploy-only DBIS fallback.
- Docs: GITEA_GOV_PORTALS_LIVE_SOURCE_OF_TRUTH.md; matrix/checklist/AGENTS/MASTER_INDEX/Gov portals deployment cross-links.
- scripts: gitea-tag-repo-release.sh; report-gitea-cd-parity lists repos/*.yml templates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 13:53:10 -07:00
defiQUG
43c972bbbf fix(gov-portals): rebase from Gitea before sync; add pull-rebase helper
- sync-gov-portals-ct-7804-from-git.sh: default to pull --rebase after fetch; require
  clean monorepo/submodules; add --reset-hard for old mirror-to-origin behavior
- gov-portals-git-pull-rebase.sh: operator script to integrate Gitea main + submodule
  pins; optional --submodules-latest to advance portal repos before pointer commit
- Document Devin/multi-actor workflow in GOV_PORTALS_XOM_DEV_DEPLOYMENT.md; AGENTS pointer

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 10:04:41 -07:00
defiQUG
09e8c08023 feat(non-evm): operator binding config, planner hints, and validation
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 3s
- Add config/non-evm-operator-binding.json (public hints only; no secrets).
- Extend .env.master.example with XRPL/Tron/Solana/TRONGRID overrides.
- Wire solana-gru-bridge-lineup refs; refresh non-evm lane stubs from binding.
- Teach liquidity-gap planner to read binding; validate JSON in validate-config-files.sh.
- Document handoff in CWUSDC_NON_MANUAL_PROVIDER_TASKS; cross-link GRU spec.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 00:08:09 -07:00
defiQUG
320e1410ea docs: correct Gitea mirror URL for the_order (underscore) and ref push
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 00:02:57 -07:00
defiQUG
349ac415b9 chore(cwusdc): optional DexScreener probes and Etherscan-value readiness subset
Some checks failed
Deploy to Phoenix / validate (push) Failing after 1s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- Treat DexScreener token v1 APIs as optional; document in non-manual tasks.
- Align tracker checks, handoff/dossier builders, CMC sanity, monitors, and CI
  shell wrapper with ETHERSCAN_VALUE_PATH_READY_IDS and summary fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 00:00:52 -07:00
defiQUG
b36cd43b1d docs: MetaMask design corpus and GRU transport loader specification
- Add GRU_TRANSPORT_LOADER_DESIGN_SPEC (API contract, phases, JSON vs tests).
- Add METAMASK_PROVIDER_DESIGN_CORPUS (frozen decisions, doc taxonomy).
- Cross-link matrix, MASTER_INDEX, EIP-747 checklist sections, cursor rules.
- Reference spec from token-mapping-loader.cjs header; bump smom-dbis-138 for jest.config note.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 00:00:48 -07:00
defiQUG
05aa56d50c chore: bump explorer-monorepo (npm test runs vitest)
Some checks failed
Deploy to Phoenix / validate (push) Failing after 2s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:41:28 -07:00
defiQUG
121d8709bc chore: bump explorer-monorepo (dashboard vitest fixtures)
Some checks failed
Deploy to Phoenix / validate (push) Failing after 2s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:40:49 -07:00
defiQUG
7c855d8766 chore(submodule): bump smom-dbis-138 for CMC pool TVL catalog merge
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 1s
Token-aggregation report routes prefer live Uniswap V2 catalog USD TVL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:26:24 -07:00
defiQUG
ee0bffb3cd feat(cwusdc): propagation monitor hooks, CMC enrich, pnpm scripts, inventory refresh
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 1s
- package.json: cwusdc:provider-checks:with-monitor, value-propagation, fetch/enrich CMC chain1
- run-cwusdc-value-propagation.sh: strip pnpm-forwarded -- for monitor args
- enrich-cmc-chain1-report-with-live-pool-catalog.py: merge live pool catalog into CMC report
- Harden external-tracker / propagation / provider-check scripts and CMC sanity checker
- Docs: MetaMask matrix optional automation; CWUSDC non-manual tasks cross-links
- Refresh drift + live_inventory collected_at from latest cluster poll
- gitignore: rpc-502-diagnostics evidence dumps under verification-evidence

Validated: bash scripts/verify/run-all-validation.sh --skip-genesis
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:23:52 -07:00
defiQUG
2138a347ac docs(ops): resolve act_runner template merge notes (network + Postgres)
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 1s
Clarify empty container.network for services DNS and DATABASE_URL hostnames;
merge README / YAML / setup doc wording after stash apply.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:10:58 -07:00
defiQUG
37d82380c1 chore(submodule): bump the-order for CI Postgres hostname comment
Some checks failed
Deploy to Phoenix / validate (push) Failing after 2s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Clarifies Gitea act_runner vs VM runner DATABASE_URL expectations.

Submodule the-order @ 7274065.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:10:24 -07:00
defiQUG
864d81688b docs: submodule hygiene for the-order husky; bump the-order pointer
Some checks failed
Deploy to Phoenix / validate (push) Failing after 2s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:10:04 -07:00
defiQUG
3f036df2a9 chore: bump explorer-monorepo (token signing surface, tabular holders)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:09:49 -07:00
defiQUG
739b40fcd4 chore(config): add GRU monetary-unit manifest; bump smom-dbis-138
Some checks failed
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Deploy to Phoenix / validate (push) Failing after 1s
BTC/cBTC/cWBTC registry row for token-aggregation monetary-unit tests.
Submodule picks up token-aggregation Jest GRU-loader gating + test:ci:gru script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:08:23 -07:00
defiQUG
f7e56f0a92 fix(ci): act_runner empty network for services; docs; bump the-order/dbis_core
Some checks failed
Deploy to Phoenix / validate (push) Failing after 4s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- Keep container.network empty so workflow services share per-job Docker network.
- Document Postgres hostname and P1001 troubleshooting.
- Bump the-order and dbis_core submodule pointers (DATABASE_URL uses postgres host).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:05:41 -07:00
defiQUG
db06f6aa0f docs(cwusdc): note GeckoTerminal 429 retries in provider and MetaMask matrix
Align CWUSDC non-manual tasks row with exponential backoff in external-tracker
and monitor scripts; cross-link MetaMask submission matrix to --gecko-retries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 20:47:45 -07:00
defiQUG
4ebf2d7902 chore(repo): sync operator workspace (config, scripts, docs, multi-chain)
Some checks failed
Deploy to Phoenix / validate (push) Failing after 1s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Add optional Cosmos/Engine-X/act-runner templates, CWUSDC/EI-matrix tooling,
non-EVM route planner in multi-chain-execution (tests passing), token list and
extraction updates, and documentation (MetaMask matrix, GRU/CWUSDC packets).

Ignore institutional evidence tarballs/sha256 under reports/status.

Validated with: bash scripts/verify/run-all-validation.sh --skip-genesis

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:25:08 -07:00
defiQUG
a5f7400955 ci(gitea): use ubuntu-latest-heavy for Gitea Actions jobs
Some checks failed
Deploy to Phoenix / validate (push) Failing after 43s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Aligns with self-hosted / larger runner labels on the Gitea act fleet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:19:48 -07:00
defiQUG
14e39e00be docs(ops): CCIP fund-ccip --cap-to-deployer; bump smom-dbis-138 submodule
Some checks failed
Deploy to Phoenix / validate (push) Failing after 54s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:12:17 -07:00
defiQUG
2840fd7371 ci(gitea): skip Phoenix deploy on doc/report-only pushes; ignore ephemeral artifacts
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Add paths-ignore on deploy-to-phoenix so pushes that only touch docs/, reports/,
editor paths, AGENTS.md, or root screenshot/tarballs do not run validate+deploy.
Manual workflow_dispatch still runs the full pipeline.

Extend .gitignore for Playwright MCP, root verification screenshots/bundles, and
common reports/status pipeline churn (locks, jsonl, ei-matrix/cw-multitoken blobs).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:11:57 -07:00
defiQUG
7fd6f27942 chore(submodule): bump smom-dbis-138 for CCIP cast receipt handling
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m21s
Deploy to Phoenix / deploy (push) Failing after 22s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Points at deployment script fixes for cast mined-revert detection and LINK RPC timeouts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 15:23:17 -07:00
defiQUG
e48208622a chore(submodules): token-aggregation liquidity fix; explorer client parity
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m18s
Deploy to Phoenix / deploy (push) Failing after 21s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- smom-dbis-138: normalize liquidityUsd; GET /report/token-price/:symbol
- explorer-monorepo: client-side liquidity normalization + tokens UI

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 12:55:39 -07:00
defiQUG
1f44a50a25 feat(it-ops): cluster live inventory + QEMU ipconfig LAN IPs
Add scripts/it-ops export pipeline (collect_inventory_remote, compute_ipam_drift)
and proxmox_guest_lan_ips parser for ipconfig* and all net* interfaces.

Reconcile ALL_VMIDS, ip-addresses.conf, and operational template with live
VMID/IP data; Order portal env vars; DBIS node matrix; inventory helpers.

Track latest reports/status/live_inventory.json and drift.json (137 guests,
no duplicate LAN IPs). Document export in AGENTS.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 10:22:59 -07:00
defiQUG
1c5eebc6b6 Docs: submodule gate — the-order pinned; explorer/smom may block CI
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m16s
Deploy to Phoenix / deploy (push) Failing after 19s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 23:15:26 -07:00
defiQUG
890bd31b41 chore: bump the-order submodule (portal CT 10090 at .180)
Some checks failed
Deploy to Phoenix / validate (push) Has started running
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Picks up resolved deploy docs: Proxmox health curls + Azure overview.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 23:14:32 -07:00
defiQUG
724ba7a935 Docs: DealFlow public path, NPM ops, 2026-05-11 status
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m11s
Deploy to Phoenix / deploy (push) Failing after 19s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- E2E_ENDPOINTS_LIST, MASTER_INDEX, TODOS, NEXT_STEPS_*, OPERATOR_READY_CHECKLIST: public DealFlow 5/5, Wave 0 (41 hosts), submodules gate vs the-order, Studio/NPM token notes.
- OPERATIONAL_RUNBOOKS: HTTPS for POST /api/tokens; 2026-05-11 Wave 0 verification.
- RUNBOOKS_MASTER_INDEX: last-updated.

ALL_VMIDS_ENDPOINTS: local WIP remains uncommitted; DealFlow public-edge note is in working copy only until inventory refresh is finalized.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 22:13:11 -07:00
defiQUG
0a3fd461c6 Add DealFlow to DNS sync and NPM proxy updater
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m20s
Deploy to Phoenix / deploy (push) Failing after 20s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- update-all-dns-to-public-ip.sh: include dealflow.d-bis.org in d-bis.org Cloudflare records.
- update-npmplus-proxy-hosts-api.sh: optional forward_scheme for add_proxy_host; upsert dealflow.d-bis.org with HTTPS upstream to CT 10381 :443 (IP_OM_TREASURY_DEALFLOW).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 21:52:28 -07:00
defiQUG
27c82cedaa fix(chain138): monorepo forge scope shim + GRU step env merge
- Add scripts/forge/scope.sh at proxmox root delegating to smom-dbis-138 so
  load_deployment_env + forge-scope resolve the correct Forge repo.
- Step 4 of run-all-next-steps-chain138.sh: call load_deployment_env after
  sourcing smom/.env so PRIVATE_KEY matches deploy scripts (fixes forge
  decode errors when key is indirected via repo root .env).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 13:23:35 -07:00
defiQUG
1f8a0d8c27 docs: sync master indices for 2026-05-10 (submodules, E2E, DealFlow)
- MASTER_INDEX, NEXT_STEPS_*, TODOS_CONSOLIDATED, OPERATOR_READY_CHECKLIST,
  SUBMODULE_HYGIENE, REPO_LOCAL_RECOMMENDATIONS_STATUS, E2E_ENDPOINTS_LIST,
  COMPLETE_REQUIRED_OPTIONAL_RECOMMENDED_INDEX, docs/README, RUNBOOKS_MASTER_INDEX,
  OPTIONAL_RECOMMENDATIONS_INDEX
- Record submodule commits/pushes, submodules-clean gate, public E2E evidence,
  studio HTTPS warn, DealFlow LAN vs apex DNS

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 13:02:20 -07:00
defiQUG
685a5d2c44 chore(submodules): bump explorer-monorepo after rebase onto origin/master
Submodule master rebased onto upstream Gitea commits and pushed; pointer
now at d4f922c.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 13:00:50 -07:00
defiQUG
189c9f51b3 chore(submodules): record token-aggregation, explorer, pool map, snap, atomic-swap
Bump smom-dbis-138, explorer-monorepo, metamask-integration,
cross-chain-pmm-lps, atomic-swap-dapp after local commits; keeps
submodules-clean gate green in CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 12:56:57 -07:00
defiQUG
80467e84e1 docs(verify): list verify-dealflow-public-e2e.sh
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m27s
Deploy to Phoenix / deploy (push) Failing after 22s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 12:17:46 -07:00
defiQUG
ba4e4b8e90 feat(e2e): DealFlow public verifier + umbrellash routing list (dealflow.d-bis.org).
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 12:16:23 -07:00
defiQUG
1a29a7610b docs(defillama): record official chain X profile @DefiOracleMeta
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 09:09:13 -07:00
defiQUG
6074b44261 docs(defillama): sync ecosystem map TVL row with PR-prepared state
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 08:27:10 -07:00
defiQUG
d9a0bcae9b docs(defillama): Chain 138 submission checklist + touchpoints refresh
- Expand defillama-chain138-touchpoints.json with server/dimension status and form links
- Add DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md (forms + PR notes + API blockers)
- Link checklist from CHAIN138_DEFILLAMA_ECOSYSTEM_MAP.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 08:19:06 -07:00
defiQUG
823fcae8f6 docs(inventory): Order of Malta DealFlow CT 10381; IP_OM_TREASURY_DEALFLOW; ignore .secrets for operator keys.
Some checks failed
Deploy to Phoenix / validate (push) Failing after 11m21s
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 05:15:21 -07:00
defiQUG
c89848fba8 Harden DBIS Phoenix build memory
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m15s
Deploy to Phoenix / deploy (push) Failing after 25s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
phoenix-deploy Phoenix deployment in progress
2026-05-09 15:52:01 -07:00
defiQUG
85cac534db Add DBIS default Phoenix deploy target
Some checks failed
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / validate (push) Successful in 1m12s
Deploy to Phoenix / deploy (push) Failing after 20s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-05-09 15:42:17 -07:00
defiQUG
61c730dff5 Make DBIS Phoenix deploy atomic
Some checks failed
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / validate (push) Successful in 1m24s
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
2026-05-09 15:38:29 -07:00
defiQUG
dd02f4b59b Enhance .env configuration with Infura support and add new RPC endpoints for various networks. Update package.json with new deployment scripts for Engine X. Improve public LP compliance documentation in runbooks and scripts, including guidance for public pair repairs and funding strategies.
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m11s
Deploy to Phoenix / deploy (push) Successful in 43s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m32s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
2026-05-07 18:19:37 -07:00
defiQUG
ec6217fdc3 Clean up pre-PR validation workflow
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m15s
Deploy to Phoenix / deploy (push) Successful in 43s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m33s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
2026-05-07 07:55:02 -07:00
defiQUG
72db9afd45 Update Engine X final proof documentation
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m19s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / cloudflare (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-05-07 07:51:47 -07:00
defiQUG
e1db6a5fb3 Record Engine X final recipient proof execution
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 44s
Deploy to Phoenix / cloudflare (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-05-07 07:48:04 -07:00
defiQUG
4e1673ef60 Record Engine X Protocolink canary execution
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m13s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m34s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
2026-05-07 07:27:34 -07:00
defiQUG
55b3a1ed9e Add Engine X recipient proof package
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m16s
Deploy to Phoenix / deploy (push) Successful in 44s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m28s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-05-07 07:09:43 -07:00
defiQUG
8f39bc539b Document Engine X maintained proof deployment
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m32s
Deploy to Phoenix / deploy (push) Successful in 43s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m28s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-05-07 05:26:11 -07:00
defiQUG
65a1650df9 Enhance routing registry with detailed notes for CCIPWETH9 and CCIPWETH10 bridges, clarifying token delivery lanes and deprecated relay-backed BSC WETH.
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m25s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m49s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 40s
2026-05-06 11:35:01 -07:00
defiQUG
a843da4eb8 Refresh PROMOD and liquidity inventory reports
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m19s
Deploy to Phoenix / deploy (push) Successful in 47s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m26s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-30 04:13:49 -07:00
defiQUG
ddb1f825dc Add All Mainnet 1inch route preflight
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m20s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-30 04:11:10 -07:00
defiQUG
ce4be10171 Stabilize All Mainnet routing evidence
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m13s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m22s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 59s
2026-04-30 03:58:56 -07:00
defiQUG
fb11015eb0 Harden bridge send flow and explorer evidence surfaces
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m10s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-30 03:54:37 -07:00
defiQUG
ccab738ae2 Advance official DODO migration routing evidence
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m21s
Deploy to Phoenix / deploy (push) Successful in 48s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m20s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 40s
2026-04-30 03:48:53 -07:00
defiQUG
9f50dd4c55 Complete explorer taxonomy and DODO migration cleanup
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m18s
Deploy to Phoenix / deploy (push) Successful in 50s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m20s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-30 03:07:21 -07:00
defiQUG
4f9e33f8b8 Advance All Mainnet bridge evidence and official protocol planning
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m19s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m22s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 37s
2026-04-30 02:48:12 -07:00
defiQUG
460066eb17 Update explorer metadata submodule
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m16s
Deploy to Phoenix / deploy (push) Successful in 44s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m20s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-30 01:58:37 -07:00
defiQUG
929f08d8f4 Route public Chain 138 RPC websocket upgrades 2026-04-30 01:58:35 -07:00
defiQUG
cfbc7ce8cb Advance ALL Mainnet production readiness planning 2026-04-30 01:58:31 -07:00
defiQUG
191aa20af1 Refresh remaining work and deployment status docs
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m13s
Deploy to Phoenix / deploy (push) Successful in 55s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 1m37s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-29 23:53:54 -07:00
defiQUG
ba8f1b9b76 Refresh cW public price exports 2026-04-29 23:53:54 -07:00
defiQUG
55dacdac08 Add Chain 138 PMM peg-safe funding worksheet 2026-04-29 23:53:54 -07:00
defiQUG
33601f51b5 Add ALL Mainnet completion planning evidence 2026-04-29 23:53:54 -07:00
defiQUG
d5af3a2077 Update submodule pointers for ALL Mainnet cleanup 2026-04-29 23:53:54 -07:00
defiQUG
1d15592a09 docs(script): chain138 next-steps — forge warmup + --skip-register-gru
Clarify mesh+verify-only use of --skip-register-gru and document
forge build / FOUNDRY_PROFILE=chain138 to keep artifacts warm;
extend --help to include the new header lines.

Made-with: Cursor
2026-04-29 23:53:40 -07:00
defiQUG
0169d3be8a docs(meta): refresh TODOS_CONSOLIDATED last verification run (2026-04-29)
Record completable, operator (NPM+Blockscout), chain138 next-steps,
E2E all, Gitea TLS check, fund-ccip dry-run, deployer gas route,
sendCrossChain dry-run, and submodules-clean dirty-tree note.

Made-with: Cursor
2026-04-29 23:53:40 -07:00
defiQUG
d18c584780 Update explorer-monorepo submodule
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m21s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m48s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 37s
2026-04-29 06:42:50 -07:00
99eafe5920 Merge pull request 'Phase 3 + Phase 3j status — EnhancedSwapRouter deployed at 0xE6Cc7643… and 3 cBTC pools wired' (#18) from devin/1777459320-phase3-deployed-cbtc-wired into master
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m10s
Deploy to Phoenix / deploy (push) Successful in 47s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m23s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 36s
2026-04-29 10:50:35 +00:00
1b393f5ae2 Merge pull request 'docs(chain138): canonicalize Stack-A DODO PMM stack (live, traded)' (#17) from devin/1777435956-stack-a-canonicalization into master
Some checks failed
Deploy to Phoenix / validate (push) Has started running
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
2026-04-29 10:49:28 +00:00
Devin AI
9ebb056869 docs(chain138): EnhancedSwapRouter deployed (Phase 3) + 3 cBTC pools wired (Phase 3j)
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 59s
Updates ADDRESS_MATRIX_AND_STATUS.md and PMM_DEX_ROUTING_STATUS.md to reflect:

- EnhancedSwapRouter is deployed at 0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f
  on Chain 138 (2026-04-22, EVM Paris). Wired immutables: UniV3, Dodoex
  (Stack-A 0x86ADA6Ef...), Balancer, 1inch; Curve disabled. dodoLiquidityProvider
  set to Stack-A 0x3f72963....

- 11 DODO pools registered bidirectionally in dodoPoolAddresses[tokenA][tokenB]:
  8 at deploy + 3 cBTC pools (cBTC/cUSDT, cBTC/cUSDC, cBTC/cXAUC) added
  Phase 3j 2026-04-22 via setDodoPoolAddress(...).

- Multi-provider DEX routing capability summary updated from "No (router not
  deployed)" to "Partial — DODO Stack-A path live; UniV3/Balancer/1inch slots
  wired but inactive (no native pools / no pool ids)."

- Liquidity Engine and DEX routing status rows updated to reflect the partial
  activation state. Balancer pool ids per-pair via setBalancerPoolId(...) and
  native UniV3/1inch pools on Chain 138 remain follow-ups.

Stacks on top of PR #17 (Stack-A canonicalization).

Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
2026-04-29 10:44:00 +00:00
defiQUG
327475c5aa Wire PMM mesh oracle operations
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m20s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m25s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 36s
2026-04-28 23:34:02 -07:00
defiQUG
b41cbc3a90 Deploy ALL Mainnet Uniswap V3 stack
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m20s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 40s
2026-04-28 23:16:41 -07:00
defiQUG
048268a68a Correct ALL Mainnet router quote asset to AUSDT
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m20s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 42s
2026-04-28 23:09:29 -07:00
defiQUG
88dc2d4ed2 Deploy ALL Mainnet enhanced router surface
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m12s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m22s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 41s
2026-04-28 22:37:10 -07:00
defiQUG
b3e7212c10 Execute fundable ALL Mainnet canaries
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 47s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m24s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-28 21:41:54 -07:00
Devin AI
9286a95fce docs(chain138): canonicalize Stack-A DODO PMM stack (live, traded)
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 1m14s
Validate (PR) / run-all-validation (pull_request) Successful in 26s
On-chain probe (2026-04-22) confirms two parallel DODOPMM deployments on
Chain 138. Stack A is the live, traded one:

- DODOPMMIntegration (Stack A): 0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895
- DODOPMMProvider    (Stack A): 0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e
- 8 registered pools, all isKnownPool=true, with traded liquidity
  (cUSDT/cUSDC, cUSDT/USDT, cUSDC/USDC, cBTC/cUSDT, cBTC/cUSDC,
   WETH/USDC, WETH/USDT, cBTC/cXAUC).

Stack B (DODOPMMIntegration=0x5BDc62f1..., DODOPMMProvider=0x5CAe6Ce1...,
pools 0xff8d3b8f.../0x6fc60D.../0x9f74Be...) is a parallel deployment
with seeded but un-traded pools (10M/10M flat or 0/0). Earlier docs that
cited Stack B as canonical are superseded.

Updates:
- .cursor/rules/chain138-tokens-and-pmm.mdc: replace integration + pool
  addresses with Stack A; add provider, cBTC, and full live-pool table.
- docs/11-references/ADDRESS_MATRIX_AND_STATUS.md: re-version to
  2026-04-22; show both stacks with status flags; add 5 cBTC/WETH pools;
  flip EnhancedSwapRouter row from Not deployed to Pending Phase 3.
- docs/11-references/PMM_DEX_ROUTING_STATUS.md: rewrite executive
  summary; refer to Phase 3 LAN deploy command.

No code change. Companion to atomic-swap-dapp PR #4 (frontend
routing-honesty) and the upcoming Phase 3 EnhancedSwapRouter deploy.

Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
2026-04-29 04:19:06 +00:00
defiQUG
8745ec6841 docs(00-meta): record 2026-04-29 completable, operator, chain138 verify, CW verify, E2E dry-run
All checks were successful
Deploy to Phoenix / validate (push) Successful in 2m4s
Deploy to Phoenix / deploy (push) Successful in 46s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m38s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
Made-with: Cursor
2026-04-28 20:32:37 -07:00
defiQUG
a1f9ab51e3 Apply ALL Mainnet vault assignments and canary preflight
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m11s
Deploy to Phoenix / deploy (push) Successful in 44s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-28 20:30:14 -07:00
defiQUG
30edd98712 Add ALL Mainnet operator gate tools
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 45s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m26s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
2026-04-28 20:21:24 -07:00
defiQUG
1ac7f7443e Record ALL Mainnet live reserve evidence
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m17s
Deploy to Phoenix / deploy (push) Successful in 47s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m27s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-28 20:11:47 -07:00
defiQUG
6db45b4d2b Add ALL Mainnet readiness gate generator
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m19s
Deploy to Phoenix / deploy (push) Successful in 52s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m33s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 39s
2026-04-28 19:38:54 -07:00
Devin AI
9e0795dbc4 ci(phoenix): workflow_dispatch reinstall for phoenix-deploy-api on CT 5700
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 1m11s
Validate (PR) / run-all-validation (pull_request) Successful in 24s
Closes the gap where phoenix-deploy-api/server.js on master is the real
implementation, but the running service on CT 5700 is the older stub
that returns 'Deploy request queued (stub)' for every target.

The new workflow .gitea/workflows/bootstrap-phoenix-deploy-api.yml is
manual-only (workflow_dispatch). When triggered it:

  1. Validates the repo layout (phoenix-deploy-api/server.js MUST NOT
     contain the stub string).
  2. Tars phoenix-deploy-api/ + config/public-sector-program-manifest.json
     into a deploy bundle.
  3. scp's the bundle to the PVE node that hosts CT 5700 using a
     dedicated deploy SSH key (PHOENIX_PVE_SSH_KEY repo secret).
  4. pct push / pct exec the bundle into the CT and runs the existing
     phoenix-deploy-api/scripts/install-systemd.sh which already drops
     /opt/phoenix-deploy-api/, writes the systemd unit, and restarts
     the service.
  5. Health-checks GET http://<dev-vm>:4001/health (with retry).
  6. Posts a non-stub probe: POST /api/deploy with target __bootstrap_probe__
     + the deploy bearer token. Fails the workflow if the response body
     still contains 'Deploy request queued (stub)' or any auth-rejection
     signal. That gives an unambiguous post-bootstrap health signal in
     CI logs without depending on a successful real deploy.

Required new secrets (documented in docs/04-configuration/DEVIN_GITEA_PROXMOX_CICD.md
section 3a):
  PHOENIX_PVE_HOST, PHOENIX_PVE_USER (default root), PHOENIX_PVE_SSH_KEY,
  PHOENIX_PVE_KNOWN_HOSTS (optional), PHOENIX_DEV_VM_VMID (default 5700),
  PHOENIX_DEPLOY_DEV_VM_IP (default 192.168.11.59).

Triggered manually only — bootstrap is sensitive enough that we do NOT
fire on every master push. Once the running service on CT 5700 is
post-stub, the existing deploy job in deploy-to-phoenix.yml will
actually execute scripts/deployment/deploy-atomic-swap-dapp-5801.sh on
each push instead of returning a 202 stub.

Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
2026-04-28 19:05:36 +00:00
defiQUG
4258ff307e chore(submodule): smom-dbis-138 CCIP router Step 0 for config-ready chains
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m12s
Deploy to Phoenix / deploy (push) Successful in 47s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m17s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 36s
Made-with: Cursor
2026-04-28 11:20:43 -07:00
defiQUG
5d1b4993fa Backfill Phoenix deploy API env on install
All checks were successful
Deploy to Phoenix / validate (push) Successful in 1m16s
Deploy to Phoenix / deploy (push) Successful in 48s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m32s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 37s
2026-04-28 05:21:33 -07:00
defiQUG
5879e28cdc Keep optional Cloudflare sync non-blocking
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m18s
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / deploy (push) Successful in 50s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Failing after 43s
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-28 05:13:01 -07:00
defiQUG
e3dff3a43a Allow long atomic dapp deploy requests
All checks were successful
Deploy to Phoenix / validate (push) Successful in 2m1s
Deploy to Phoenix / deploy (push) Successful in 48s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Successful in 2m28s
phoenix-deploy Deployed to cloudflare-sync
Deploy to Phoenix / cloudflare (push) Successful in 38s
2026-04-28 04:57:17 -07:00
defiQUG
f455348f32 Serialize atomic deploy after Phoenix self-deploy
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m52s
Deploy to Phoenix / deploy (push) Successful in 55s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-28 04:48:12 -07:00
defiQUG
f03694ca13 Fix atomic swap deploy host and remote failure handling
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m18s
Deploy to Phoenix / deploy (push) Successful in 55s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-28 04:43:34 -07:00
defiQUG
63f1d91068 Treat Phoenix self-deploy restart as successful handoff
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m53s
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / deploy (push) Has started running
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
2026-04-28 04:39:09 -07:00
defiQUG
c07edfc5c2 docs(00-meta): record 2026-04-28 completable + operator LAN verification run
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m8s
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Made-with: Cursor
2026-04-28 04:34:44 -07:00
defiQUG
2eebe9e672 Retry transient Phoenix deploy POST failures
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m21s
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
2026-04-28 04:30:57 -07:00
defiQUG
cd8a52ae84 docs: Gitea CD operator checklist + wire templates README; executable parity script
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m29s
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Made-with: Cursor
2026-04-28 04:26:39 -07:00
defiQUG
2124842b38 chore(scripts): add report-gitea-cd-parity.sh for deploy-target vs workflow inventory
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Made-with: Cursor
2026-04-28 04:26:09 -07:00
defiQUG
49b193b4b7 docs(ci): add ready-to-copy Gitea workflow templates for external repos
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Made-with: Cursor
2026-04-28 04:25:40 -07:00
defiQUG
90971783ad chore: ALL Mainnet pool matrix refresh; bump alltra + cross-chain submodules; gitignore local noise
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
- config/all-mainnet-pool-creation-matrix: factory/router/infrastructure updates + status counts
- alltra-lifi-settlement: ALL Mainnet inbound + chains docs (pushed)
- cross-chain-pmm-lps: deployment-status + Solana pool matrix (pushed)
- .gitignore: reports/e2e-dry-runs, relay* scaffold, thirdweb-contracts, one-off stage scripts

 Submodule WIP (atomic-swap, explorer, smom) stashed locally; pop with git stash list / stash pop in each repo when resuming work.

Made-with: Cursor
2026-04-28 04:25:10 -07:00
defiQUG
485af45c2b feat: regulated treasury wallet master plan + ALL Mainnet CI validation
- Add GOVERNMENT_TREASURY_EMI_WALLET_MASTER_PLAN.md (Rail/RTGS/URA/EMI/wallet/VA gates); index in AGENTS.md and MASTER_INDEX.md
- Add scripts/verify/check-allmainnet-protocol-surface.sh and check-allmainnet-chains-flags.sh (gate alias); wire into validate-config-files.sh
- run-all-validation.sh: remove duplicate Gitea workflow steps (1c/1d)
- smom-dbis-138: ALL_MAINNET_CONFIGURATION + VERIFICATION_COMPLETE aligned with proxmox surface JSON

Made-with: Cursor
2026-04-28 04:20:33 -07:00
defiQUG
3ee78865f7 Materialize PMM config in deploy validation
Some checks failed
Deploy to Phoenix / validate (push) Successful in 1m20s
Deploy to Phoenix / deploy (push) Failing after 51s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
phoenix-deploy Deployed to atomic-swap-dapp-live
2026-04-28 04:19:57 -07:00
defiQUG
45e043ca6b Install validation dependencies in Gitea workflows
Some checks failed
Deploy to Phoenix / validate (push) Failing after 1m13s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-28 04:15:08 -07:00
defiQUG
31f30decab Stabilize token and pool metadata
Some checks failed
Deploy to Phoenix / validate (push) Failing after 28s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-28 02:34:44 -07:00
defiQUG
9769225299 feat(gitea): per-repo CD/CI matrix, CyberSecur Phoenix target, workflow templates
Some checks failed
Deploy to Phoenix / validate (push) Failing after 26s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
- deploy-targets: Gov_Web_Portals/CyberSecur-Global → CT 7810 via phoenix-deploy-cybersecur-from-workspace.sh
- docs: GITEA_REPO_VM_CD_CI_MATRIX.md; MASTER_INDEX link; templates under config/gitea-workflow-templates/
- bump cross-chain-pmm-lps (validate-capital-efficiency workflow)

Made-with: Cursor
2026-04-28 01:24:31 -07:00
defiQUG
32d236081b chore(submodule): bump cross-chain-pmm-lps (doc 19 parity pointer)
Some checks failed
Deploy to Phoenix / validate (push) Failing after 26s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Made-with: Cursor
2026-04-28 01:18:41 -07:00
defiQUG
cc074a8828 docs(git): parity checklist before audit submission (origin/gitea/master)
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
Made-with: Cursor
2026-04-28 01:18:23 -07:00
defiQUG
2bc18871f5 Merge remote-tracking branch 'gitea/master' into parity/gitea-master
Some checks failed
Deploy to Phoenix / validate (push) Failing after 29s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 23:17:12 -07:00
defiQUG
7a99cdbe7d docs(env): Web3Forms rotate + redeploy note; bump cross-chain-pmm-lps (audit intake evidence)
Submodule: intake evidence register + capital-efficiency-policy auditIntakeSubmission fields.
Made-with: Cursor
2026-04-27 23:13:02 -07:00
defiQUG
6eafa119a3 fix(deploy): CyberSecur CT7810 sync SSH defaults to r630-02; optional render-intake
Made-with: Cursor
2026-04-27 23:10:03 -07:00
defiQUG
81718215df feat(deploy): sync CyberSecur-Global to CT7810 via pct; optional CF cache purge
Made-with: Cursor
2026-04-27 22:44:39 -07:00
defiQUG
7c60a61382 docs(git): Gitea mirror sync when push is non-fast-forward
Made-with: Cursor
2026-04-27 22:00:57 -07:00
defiQUG
68df9ab90e Record capital efficiency audit intake path 2026-04-27 21:58:02 -07:00
defiQUG
5580bbf181 env.example: CYBERSECUR_INTAKE_REDIRECT_URL optional
Made-with: Cursor
2026-04-27 21:04:48 -07:00
defiQUG
dbd72b20d5 env.example: document CYBERSECUR_WEB3FORMS_ACCESS_KEY for intake render
Made-with: Cursor
2026-04-27 21:00:29 -07:00
defiQUG
baa28cc324 deployment: add NPMplus provision script for cybersecur.d-bis.org static upstream
Some checks failed
Deploy to Phoenix / validate (push) Failing after 27s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Made-with: Cursor
2026-04-27 20:32:41 -07:00
defiQUG
2658438948 deployment: add NPMplus provision script for cybersecur.d-bis.org static upstream
Made-with: Cursor
2026-04-27 20:29:42 -07:00
defiQUG
7c5b4507fd Advance capital efficiency simulation gates 2026-04-27 15:58:43 -07:00
defiQUG
aa0457b7bf Ensure Node 20 for DBIS deploy
Some checks failed
Deploy to Phoenix / validate (push) Failing after 32s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 11:44:38 -07:00
defiQUG
aa08972436 Install curl for DBIS deploy smoke check
Some checks failed
Deploy to Phoenix / validate (push) Failing after 40s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 11:41:42 -07:00
defiQUG
34d378f6ef Resolve pnpm path in DBIS deploy
Some checks failed
Deploy to Phoenix / validate (push) Failing after 34s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 11:39:08 -07:00
defiQUG
f8938b2e42 Point DBIS live deploy at gov portals host
Some checks failed
Deploy to Phoenix / validate (push) Failing after 38s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 11:38:04 -07:00
defiQUG
ee165fb432 Add DBIS portal live deploy target
Some checks failed
Deploy to Phoenix / validate (push) Failing after 30s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-27 11:35:12 -07:00
defiQUG
f1fe48082f Wire capital efficiency simulator validation 2026-04-27 11:27:29 -07:00
defiQUG
207f088b39 docs(release): cross-link pricing rollout checklist and notes
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 1m1s
Validate (PR) / run-all-validation (pull_request) Failing after 25s
2026-04-26 00:03:48 -07:00
defiQUG
240fec0c8e chore(release): record explorer pricing rollout and advance repo revisions
Some checks failed
AI Code Review / claude-review (pull_request) Failing after 1m5s
Validate (PR) / run-all-validation (pull_request) Failing after 27s
2026-04-25 23:45:28 -07:00
c2560c5b38 docs(deploy): document live Cromero NPMplus topology
Some checks failed
Deploy to Phoenix / validate (push) Failing after 28s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-26 00:50:54 +00:00
88cad0cd34 fix(deploy): make Cromero Phoenix deploy target Proxmox-aware
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
2026-04-26 00:50:53 +00:00
525f992854 feat(deploy): add CROMERO dapp Phoenix deploy target (#12)
Some checks failed
Deploy to Phoenix / validate (push) Failing after 34s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
Wires d-bis/CROMERO into the Phoenix Deploy API pipeline so pushes to main on that repo land at https://d-bis.org/ecosystem/cromero/.

Companion: d-bis/CROMERO#1
2026-04-26 00:11:49 +00:00
defiQUG
4b0512e66d repo: advance smom-dbis-138 for besu class templates 2026-04-25 12:42:36 -07:00
defiQUG
529f819b0f chore: add shared devin workspace tooling 2026-04-25 12:42:36 -07:00
defiQUG
2b5a039931 docs: harden canonical besu inventory references 2026-04-25 12:05:53 -07:00
defiQUG
0a0365f73d docs: wire dbis rail and gru specs into ura program 2026-04-25 11:37:15 -07:00
defiQUG
a894b1dd50 docs: add ura operational readiness and production gates 2026-04-25 11:37:05 -07:00
defiQUG
5688f474c3 docs: add dbis ecosystem umbrella master plan 2026-04-25 11:36:38 -07:00
defiQUG
4203f83e11 ops: align chain138 besu runtime audit and generated configs 2026-04-25 08:14:07 -07:00
defiQUG
566cecd8f9 feat: add universal resource activation policy profile flow 2026-04-24 22:06:26 -07:00
defiQUG
0035a787fe ops: align besu template audit and thirdweb sentry configs 2026-04-24 22:02:47 -07:00
defiQUG
fa4161cf58 docs: codify live public routing coverage and gaps 2026-04-24 21:52:49 -07:00
defiQUG
aba8ca5700 feat: add universal resource activation manifest wiring
Some checks failed
Deploy to Phoenix / validate (push) Failing after 28s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-24 18:31:54 -07:00
defiQUG
60b8fb9ddc ops: schedule gitea tls expiry monitoring
Some checks failed
Deploy to Phoenix / validate (push) Failing after 30s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-24 18:25:28 -07:00
defiQUG
01c36a5489 ops: add gitea tls handoff and expiry check
Some checks failed
Deploy to Phoenix / validate (push) Failing after 29s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-24 16:30:18 -07:00
defiQUG
a4738c1376 Merge remote-tracking branch 'gitea/master'
Some checks failed
Deploy to Phoenix / validate (push) Has been cancelled
Deploy to Phoenix / deploy (push) Has been cancelled
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been cancelled
Deploy to Phoenix / cloudflare (push) Has been cancelled
# Conflicts:
#	docs/04-configuration/README.md
#	docs/MASTER_INDEX.md
#	phoenix-deploy-api/deploy-targets.json
#	scripts/deployment/phoenix-deploy-explorer-live-from-workspace.sh
2026-04-24 16:12:08 -07:00
defiQUG
c23fdf4614 repo: align explorer submodule to remote master 2026-04-24 16:10:04 -07:00
defiQUG
7e2d9c58e3 repo: update the-order hook fix 2026-04-24 12:59:55 -07:00
defiQUG
64d2e550a1 repo: update cleaned nested repos 2026-04-24 12:56:52 -07:00
defiQUG
7572444b8f docs: index universal resource activation schema 2026-04-24 12:40:52 -07:00
defiQUG
83482d6d13 docs: add blocker cleanup runbook and resource activation pack 2026-04-24 12:40:35 -07:00
defiQUG
219247b872 ops: clear besu verifier gaps and health monitor noise 2026-04-24 12:36:26 -07:00
defiQUG
780648a2ee config: add thirdweb besu sentries to allowlists and template 2026-04-24 12:31:17 -07:00
defiQUG
1336253f8d docs: promote thirdweb besu sentries into canonical inventory 2026-04-24 12:27:10 -07:00
defiQUG
a1eacd3098 ops: destroy duplicate besu cts and add cluster inventory audit 2026-04-24 11:52:46 -07:00
defiQUG
91ba6f4f2f docs: finalize besu host placement reconciliation 2026-04-24 11:45:04 -07:00
defiQUG
21ad898c6b docs: reconcile besu rpc inventory after duplicate retirement 2026-04-24 11:30:46 -07:00
defiQUG
a14a683b9b verify: skip non-evm lane status when inventory inputs are missing 2026-04-24 11:02:26 -07:00
defiQUG
984900deba repo: ignore generated deployment and inventory report outputs 2026-04-24 10:58:54 -07:00
defiQUG
d8ff571c60 repo: ignore generated validation and inventory artifacts 2026-04-24 10:58:21 -07:00
defiQUG
e27ec30ab1 docs: add planning and terminology notes 2026-04-24 10:56:05 -07:00
defiQUG
1927058a95 feat: add inventory and validation builders 2026-04-24 10:56:01 -07:00
defiQUG
c65b896fad ops: add chain138 and rpc diagnostic tooling 2026-04-24 10:55:55 -07:00
defiQUG
454aeda9d5 ops: add new deployment and operator automation scripts 2026-04-24 10:55:50 -07:00
defiQUG
996d45d1ba feat: add phoenix deploy and x402 service updates 2026-04-24 10:55:45 -07:00
defiQUG
c5ec42d3d2 ci: update gitea workflows and contributor guidance 2026-04-24 10:55:42 -07:00
defiQUG
afde88ff9a config: refresh operational templates and network mappings 2026-04-24 10:55:39 -07:00
defiQUG
fc32d51ca7 docs: update operator, endpoint, and deployment references 2026-04-24 10:55:35 -07:00
defiQUG
9f60311ef1 docs: mark historical references to removed cleanup helpers 2026-04-24 10:47:02 -07:00
defiQUG
3743d20f49 repo: prune obsolete helpers and backup artifacts 2026-04-24 10:47:01 -07:00
defiQUG
58ca82bbe3 chain138: harden besu txpool recovery and runbooks 2026-04-24 10:46:40 -07:00
Codex
453ccc8d12 Add explorer-live deploy target and operator handoff
Some checks failed
Deploy to Phoenix / validate (push) Failing after 13s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-23 09:53:49 -07:00
defiQUG
77d40201a3 ci: prefer gitea remote for workflow parity checks
Some checks failed
Deploy to Phoenix / validate (push) Failing after 12s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-22 21:48:58 -07:00
defiQUG
0e7200f1b8 ci: lock deploy workflows across main and master
Some checks failed
Deploy to Phoenix / validate (push) Failing after 13s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-22 21:47:57 -07:00
defiQUG
725dcd180d phoenix: automate CurrenciCombo e2e deploys
Some checks failed
Deploy to Phoenix / validate (push) Successful in 13s
Deploy to Phoenix / deploy (push) Successful in 37s
phoenix-deploy Phoenix deployment in progress
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Failing after 30s
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-22 20:05:26 -07:00
773c83e6c6 ci(validate): materialize cross-chain-pmm-lps via anon clone + guard step 3
Some checks failed
Deploy to Phoenix / validate (push) Successful in 14s
Deploy to Phoenix / deploy (push) Failing after 9s
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Failing after 9s
Deploy to Phoenix / cloudflare (push) Has been skipped
phoenix-deploy Deployed to atomic-swap-dapp-live
Unblocks the Gitea Actions validate gate so pushes to master can run deploy-to-phoenix -> deploy-atomic-swap-dapp.

Co-authored-by: Nakamoto, S <nsatoshi2007@hotmail.com>
Co-committed-by: Nakamoto, S <nsatoshi2007@hotmail.com>
2026-04-22 22:08:03 +00:00
defiQUG
d9a3053a58 Harden deployment env flows and surface external blockers
Some checks failed
Deploy to Phoenix / validate (push) Failing after 10s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-22 14:47:52 -07:00
defiQUG
dc123ff647 Wire Phoenix deploy path for atomic swap dapp
Some checks failed
Deploy to Phoenix / validate (push) Failing after 11s
Deploy to Phoenix / deploy (push) Has been skipped
Deploy to Phoenix / deploy-atomic-swap-dapp (push) Has been skipped
Deploy to Phoenix / cloudflare (push) Has been skipped
2026-04-22 13:49:46 -07:00
defiQUG
d06af63700 Rewire atomic swap dapp submodule to Gitea
Some checks failed
Deploy to Phoenix / validate (push) Failing after 14s
Deploy to Phoenix / deploy (push) Has been skipped
2026-04-22 10:01:17 -07:00
defiQUG
f0f0a4bb84 docs(AGENTS): mcp-proxmox Gitea URL and pmm-lops-publish worktree note
Some checks failed
Deploy to Phoenix / validate (push) Failing after 12s
Deploy to Phoenix / deploy (push) Has been skipped
Made-with: Cursor
2026-04-21 22:04:30 -07:00
defiQUG
deba4f9f00 chore: pin metamask-integration to logo commit; ignore vendor checkouts
Some checks failed
Deploy to Phoenix / validate (push) Failing after 14s
Deploy to Phoenix / deploy (push) Has been skipped
Made-with: Cursor
2026-04-21 22:04:13 -07:00
defiQUG
8e3d2e1ddb fix(submodules): mcp-proxmox on Gitea, drop spurious pmm-lps-publish link, ignore local secrets
Some checks failed
Deploy to Phoenix / validate (push) Failing after 13s
Deploy to Phoenix / deploy (push) Has been skipped
- Point mcp-proxmox URL to gitea.d-bis.org and pin to 2b629ba (incl. test_auth)
- Remove cross-chain-pmm-lps-publish from index (worktree, not a parent submodule)
- .gitignore: worktree path, tmp/codex, operator env exports, select output/ noise

Made-with: Cursor
2026-04-21 22:03:32 -07:00
defiQUG
b8613905bd chore: sync workspace — configs, docs, scripts, CI, pnpm, submodules
Some checks failed
Deploy to Phoenix / validate (push) Failing after 15s
Deploy to Phoenix / deploy (push) Has been skipped
- Submodule pins: dbis_core, cross-chain-pmm-lps, mcp-proxmox (local, push may be pending), metamask-integration, smom-dbis-138
- Atomic swap + cross-chain-pmm-lops-publish, deploy-portal workflow, phoenix deploy-targets, routing/aggregator matrices
- Docs, token-lists, forge proxy, phoenix API, runbooks, verify scripts

Made-with: Cursor
2026-04-21 22:01:33 -07:00
defiQUG
e6bc7a6d7c chore(verify): PR validation workflow, pnpm Solana peer, lockfile check, backup SSH
- Gitea: add validate-on-pr.yml (run-all-validation only; no deploy)
- .env.master.example: document NPM_EMAIL/NPM_PASSWORD for backup-npmplus
- pnpm: allowedVersions for @solana/sysvars to quiet thirdweb/x402 peer drift
- AGENTS + verify README: CI pointers and .env.master.example for env
- backup-npmplus: npm_lxc_ssh helper; keep prior timeout/BatchMode behavior
- check-pnpm-workspace-lockfile + run-all-validation step 1b (from prior work in same commit set)

Made-with: Cursor
2026-04-21 21:56:49 -07:00
defiQUG
4fab998e51 chore: sync workspace docs, configs, and submodules
All checks were successful
Deploy to Phoenix / deploy (push) Successful in 9s
2026-04-18 12:07:15 -07:00
defiQUG
d63efcb315 fix(ops): map dev VM 5700 to r630-04; add phoenix-deploy-api deploy script
All checks were successful
Deploy to Phoenix / deploy (push) Successful in 9s
Sync get_host_for_vmid with live placement for VMID 5700 (dev-vm). Add
deploy-phoenix-deploy-api-to-dev-vm.sh for pct-based install to CT 5700.

Made-with: Cursor
2026-04-17 04:51:47 -07:00
1892827711 chore: merge upstream sync — Mission Control launchpad, runbooks, ProxmoxVE React 19 build fix
All checks were successful
Deploy to Phoenix / deploy (push) Successful in 6s
- Merge origin/main into master (already applied).
- Regenerate doc-manifest.json for new RUNBOOK markdown (60 entries).
- Launchpad: E2E endpoints doc, docs.d-bis.org, Gitea, Chain 138 dapp + env overrides.
- ProxmoxVE submodule: fix react-syntax-highlighter JSX types for Next 15 / React 19.

Made-with: Cursor
2026-04-07 16:28:44 +08:00
820174d556 merge: sync local master with origin/main 2026-04-07 16:07:16 +08:00
252b766a53 feat(mission-control): sync launchpad and runbooks with upstream main
- Merge-aligned doc-manifest regeneration (58 doc-derived runbooks)

- Launchpad: Phoenix Deploy API, Meta testnet 2138 runbook, aggregator route matrix

- Curated runbook: check-chain138-rpc-health.sh; README env vars; catalog test threshold

Made-with: Cursor
2026-03-29 10:13:59 +08:00
fa5de3ba01 merge origin/main: sync upstream with Mission Control 2026-03-29 10:11:51 +08:00
18767b7d8b feat: add Mission Control operator console and workspace wiring
- New mission-control Next.js app: runbook catalog, GO execution, SSE stream, audit ZIP export

- Generated doc-manifest from docs runbooks; curated JSON specs; health-check script

- pnpm workspace package, root scripts, README updates

- Resilience: Windows-safe path checks, optional MISSION_CONTROL_PROJECT_ROOT fallback, system fonts

- Bump mcp-proxmox submodule to tracked main

Made-with: Cursor
2026-03-28 14:50:11 +08:00
1756 changed files with 267995 additions and 112283 deletions

View File

@@ -10,9 +10,23 @@ alwaysApply: true
- **cUSDT:** `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` (6 decimals) - **cUSDT:** `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` (6 decimals)
- **cUSDC:** `0xf22258f57794CC8E06237084b353Ab30fFfa640b` (6 decimals) - **cUSDC:** `0xf22258f57794CC8E06237084b353Ab30fFfa640b` (6 decimals)
**DODOPMMIntegration:** `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` — reconciled with `docs/11-references/ADDRESS_MATRIX_AND_STATUS.md` (on-chain verification 2026-03-26); `compliantUSDT()` / `compliantUSDC()` return the canonical cUSDT/cUSDC above. **DODOPMMIntegration (live, traded):** `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` — confirmed live via on-chain probe (2026-04-22): `compliantUSDT()` / `compliantUSDC()` return the canonical cUSDT/cUSDC above; `pools[][]` mapping resolves to the live funded pool set below; `isRegisteredPool` is TRUE for all 8 pools listed under "PMM pools (live, traded)". `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` is a parallel deployment of the same source with different immutables and seeded but un-traded pools — do not wire dApps or routers to it.
**PMM pools (live funded public):** cUSDT/cUSDC `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | cUSDT/USDT `0x6fc60DEDc92a2047062294488539992710b99D71` | cUSDC/USDC `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` — see `docs/11-references/ADDRESS_MATRIX_AND_STATUS.md` / `PMM_DEX_ROUTING_STATUS.md`. **DODOPMMProvider (ILiquidityProvider, live):** `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` — `dodoIntegration() == 0x86ADA6Ef…`, `providerName() == "DODO PMM"`, `isKnownPool` TRUE for all 8 live pools. Use this address as `dodoLiquidityProvider` when deploying `EnhancedSwapRouter`; see `docs/11-references/PMM_DEX_ROUTING_STATUS.md`.
**PMM pools (live, traded — 2026-04-22 on-chain probe):**
- cUSDT/cUSDC `0x9e89bAe009adf128782E19e8341996c596ac40dC` (~983k cUSDT / ~1.016M cUSDC, asymmetric — actively traded)
- cUSDT/USDT `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` (~1M / ~1M)
- cUSDC/USDC `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` (~1M / ~1M)
- cBTC/cUSDT `0x67049e7333481e2cac91af61403ac7bddfab7bcd` (10k cBTC base / 9M cUSDT quote)
- cBTC/cUSDC `0x72f1a0794153c3b8a1e8a731f1d8e1a52cb10dc5` (10k cBTC base / 9M cUSDC quote)
- WETH/USDC `0xb53a0508940b1ff90f1aad4f6cb50a7012fe5593` (~10.1M USDC quote)
- WETH/USDT `0xe227f6c0520c0c6e8786fe56fa76c4914f861533` (~10.1M USDT quote)
- cBTC/cXAUC `0xf3e8a07d419b61f002114e64d79f7cf8f7989433` (10k cBTC base / 1.7k cXAUC quote)
The earlier rule's pool addresses (`0xff8d3b8f…`, `0x6fc60D…`, `0x9f74Be…`) belong to the **parallel** integration `0x5BDc62f1…` (Stack B) and are seeded 10M/10M flat or 0/0 — they are not the live PMM trading set. Source-of-truth corrections to follow in `ADDRESS_MATRIX_AND_STATUS.md` and `PMM_DEX_ROUTING_STATUS.md`.
**cBTC:** `0xe94260c555ac1d9d3cc9e1632883452ebdf0082e` (8 decimals) — base token of the three cBTC pools above.
**cXAUC / cXAUT (XAU):** `0x290E52a8819A4fbD0714E517225429aA2B70EC6b`, `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` (6 decimals). **1 full token = 1 troy ounce Au** — not USD face value; see `EXPLORER_TOKEN_LIST_CROSSCHECK.md` section 5.1. **cXAUC / cXAUT (XAU):** `0x290E52a8819A4fbD0714E517225429aA2B70EC6b`, `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` (6 decimals). **1 full token = 1 troy ounce Au** — not USD face value; see `EXPLORER_TOKEN_LIST_CROSSCHECK.md` section 5.1.

View File

@@ -15,6 +15,18 @@ When answering token/PMM/deployment questions, prefer these docs over inferring
**Operator commands:** `docs/00-meta/OPERATOR_READY_CHECKLIST.md` **Operator commands:** `docs/00-meta/OPERATOR_READY_CHECKLIST.md`
**Doc index:** `docs/MASTER_INDEX.md` **Doc index:** `docs/MASTER_INDEX.md`
**Master reference — token / stablecoin launch (institutional compendium):** `docs/00-meta/BIBLE_FROM_NATHAN_TOKEN_LAUNCH_RESOURCE_COMPENDIUM.md` — regulation through aggregators and launch checklists; informational only. For Chain 138 token truth and Explorer alignment, still use `EXPLORER_TOKEN_LIST_CROSSCHECK.md` above.
**Master reference — MetaMask Money/mUSD ↔ GRU, provider cross-links, DefiLlama DODO `dfio_meta_main` TVL:** `docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md` — replay steps, upstream **DefiLlama/DefiLlama-Adapters#19198**, touchpoints JSON, and **Part G** remaining tasks.
**MetaMask / provider design corpus (frozen architecture vs execution checklists):** `docs/04-configuration/metamask/METAMASK_PROVIDER_DESIGN_CORPUS.md`
**GRU transport loader (monorepo `token-mapping-loader.cjs` + overlay JSON):** `docs/04-configuration/GRU_TRANSPORT_LOADER_DESIGN_SPEC.md`
**Gaps and inconsistencies (audit):** `docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md`
**Optional Cosmos / IBC to Chain 138 (streams AE):** `docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md` — templates: `config/cosmos-chain138-optional/README.md`
**Deployment phases (full coverage):** `docs/03-deployment/REMAINING_DEPLOYMENTS_FOR_FULL_NETWORK_COVERAGE.md` **Deployment phases (full coverage):** `docs/03-deployment/REMAINING_DEPLOYMENTS_FOR_FULL_NETWORK_COVERAGE.md`
- A: mint + add liquidity (138) — `mint-for-liquidity.sh`, AddLiquidityPMMPoolsChain138 - A: mint + add liquidity (138) — `mint-for-liquidity.sh`, AddLiquidityPMMPoolsChain138
- B: Celo/Wemix CCIP + LINK (Wemix needs 0.4 WEMIX) - B: Celo/Wemix CCIP + LINK (Wemix needs 0.4 WEMIX)

44
.cursorindexingignore Normal file
View File

@@ -0,0 +1,44 @@
# Exclude heavy paths from Cursor codebase indexing only (files stay editable).
# Syntax: same as .gitignore — see https://cursor.com/docs/reference/ignore-file
#
# Aligns with pyrightconfig.json / .vscode settings to reduce IDE + Python LS load.
# See reports/status/pyright-and-ide-performance-investigation-2026-05-09.md
ProxmoxVE/
explorer-monorepo/
MEV_Bot/
miracles_in_motion/
OMNIS/
cross-chain-pmm-lps/
tmp/
.tmp/
.codex-artifacts/
.devin/
.venv-checkjson/
venv/
smom-dbis-138/lib/
smom-dbis-138/artifacts/
smom-dbis-138/broadcast/
smom-dbis-138/cache/
third-party/
vendor/
backups/
build/
dist/
out/
output/
reports/
cross-chain-pmm-lps-publish/
smom-dbis-138-publish/
thirdweb-contracts/
thirdweb-core-2103-test/
token-aggregation-build/
transaction-composer/
relay/
relay-api/
relay-docs/
relay-web/
.cursor/
.codex/
.pnpm-store/

18
.devin/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Devin for Terminal in Cursor
This project is configured to use Devin for Terminal as a local CLI companion inside Cursor.
- Cursor config import is enabled through `.cursor/rules/` and `.cursor/mcp.json` if present.
- Windsurf config import is disabled for this project.
- `AGENTS.md` remains the canonical shared project guidance.
- Personal Devin overrides and secrets belong in `.devin/config.local.json`, which is gitignored.
- Run `devin auth login` interactively before first use.
Useful commands:
```bash
devin
devin -- "review this repo and suggest the next safe task"
devin auth status
devin mcp list
```

View File

@@ -0,0 +1,21 @@
---
name: reviewer
description: Read-only reviewer for Cursor/Devin handoffs
allowed-tools:
- read
- grep
- glob
- exec
permissions:
allow:
- Exec(git status)
- Exec(git diff)
- Exec(git log)
deny:
- write
- edit
---
You are a read-only review subagent for this Cursor workspace.
Review changes for correctness, security, operational risk, and consistency with `AGENTS.md` and relevant `.cursor/rules/` guidance. Do not modify files. Report only actionable findings first, ordered by severity, with exact file paths.

38
.devin/config.json Normal file
View File

@@ -0,0 +1,38 @@
{
// Devin for Terminal project config optimized for Cursor as the primary IDE.
"read_config_from": {
"cursor": true,
"windsurf": false,
"claude": true
},
"permissions": {
"allow": [
"Read(**)",
"Exec(git status)",
"Exec(git diff)",
"Exec(git log)",
"Exec(pnpm run)",
"Exec(bash scripts/verify)",
"Exec(bash scripts/validation)"
],
"ask": [
"Write(**)",
"Exec(git commit)",
"Exec(git push)",
"Exec(docker)",
"Exec(docker compose)",
"mcp__*"
],
"deny": [
"Exec(rm)",
"Exec(sudo)",
"Exec(chmod -R)",
"Exec(chown -R)",
"Write(.env*)",
"Write(**/.env*)",
"Write(reports/secrets/**)",
"Write(config/production/*did-secrets.env)"
]
},
"mcpServers": {}
}

14
.devin/hooks.v1.json Normal file
View File

@@ -0,0 +1,14 @@
{
"PreToolUse": [
{
"matcher": "exec",
"hooks": [
{
"type": "command",
"command": "bash scripts/devin/block-dangerous-command.sh",
"timeout": 10
}
]
}
]
}

View File

@@ -0,0 +1,22 @@
---
name: cursor-handoff
description: Align Devin for Terminal work with this Cursor workspace and project rules
allowed-tools:
- read
- grep
- glob
- exec
triggers:
- user
- model
---
Use this skill when starting or resuming work in this repository from Devin for Terminal.
1. Treat Cursor as the primary IDE context and read `.cursor/rules/` when relevant.
2. Read `AGENTS.md` first for canonical project guidance.
3. Do not rely on Windsurf rules, skills, workflows, or MCP settings for this project.
4. Check `git status --short` before editing and preserve unrelated user changes.
5. Prefer dry-run flags for operator, deployment, DNS, Proxmox, and LAN-sensitive scripts.
6. Never write secrets or runtime credentials into tracked files.
7. When using MCP servers, assume Cursor and Devin maintain separate authentication sessions.

View File

@@ -0,0 +1,28 @@
---
name: review
description: Review code changes before commit or handoff
allowed-tools:
- read
- grep
- glob
- exec
permissions:
allow:
- Exec(git status)
- Exec(git diff)
- Exec(git log)
deny:
- write
- edit
triggers:
- user
- model
---
Review the current changes with a correctness-first stance.
1. Run `git status --short`.
2. Run `git diff` and, if staged changes exist, `git diff --staged`.
3. Focus on bugs, security regressions, deployment risk, missing validation, and secret exposure.
4. Cite exact file paths and keep findings ordered by severity.
5. If no issues are found, say so and call out any test or validation gaps.

View File

@@ -20,6 +20,8 @@ PROXMOX_ALLOW_ELEVATED=
# Prefer CLOUDFLARE_API_TOKEN scoped to Zone:DNS:Edit on the zones you use (avoid global Account API key when possible). # Prefer CLOUDFLARE_API_TOKEN scoped to Zone:DNS:Edit on the zones you use (avoid global Account API key when possible).
# Bulk DNS script: scripts/update-all-dns-to-public-ip.sh — use --dry-run and --zone-only=sankofa.nexus (etc.) before wide updates. # Bulk DNS script: scripts/update-all-dns-to-public-ip.sh — use --dry-run and --zone-only=sankofa.nexus (etc.) before wide updates.
CLOUDFLARE_API_TOKEN= CLOUDFLARE_API_TOKEN=
# Set to 1 if token has no DNS:Edit and you need Global API key for scripts/cloudflare/provision-d-bis-mail-dns-and-npmplus.sh etc.
CLOUDFLARE_DNS_PREFER_GLOBAL_KEY=
CLOUDFLARE_EMAIL= CLOUDFLARE_EMAIL=
CLOUDFLARE_API_KEY= CLOUDFLARE_API_KEY=
CLOUDFLARE_ZONE_ID= CLOUDFLARE_ZONE_ID=
@@ -40,6 +42,10 @@ CLOUDNS_AUTH_ID=
CLOUDNS_AUTH_PASSWORD= CLOUDNS_AUTH_PASSWORD=
# --- NPM / NPMplus --- # --- NPM / NPMplus ---
# For scripts/verify/backup-npmplus.sh: NPM_EMAIL and NPM_PASSWORD are both required
# (no in-script defaults); see AGENTS.md operator / backup row.
# PMG (LXC 100) web UI — optional: run scripts/operator/sync-pmg-webui-password-to-dotenv.sh to pull from /root/PMG_WEBUI_password.txt
PMG_WEBUI_PASSWORD=
NPM_URL= NPM_URL=
NPM_EMAIL= NPM_EMAIL=
NPM_PASSWORD= NPM_PASSWORD=
@@ -71,6 +77,16 @@ GITEA_URL=
GITEA_TOKEN= GITEA_TOKEN=
GITEA_ORG= GITEA_ORG=
# --- Phoenix deploy API (Gitea Actions secrets on EACH repo that triggers deploy) ---
# PHOENIX_DEPLOY_URL= # full POST URL e.g. http://192.168.11.59:4001/api/deploy — same variable name as repo Secrets in Gitea
# PHOENIX_DEPLOY_TOKEN= # bearer for Phoenix deploy API — set per-repo Secret on Gitea, not necessarily in this root .env
# --- CyberSecur Global (Gov portal static site; optional Web3Forms intake) ---
# CYBERSECUR_WEB3FORMS_ACCESS_KEY= # web3forms.com — used by CyberSecur-Global/deploy/render-intake.sh (key is public in browser HTML per provider)
# After rotating the key in the Web3Forms dashboard, update this line and redeploy:
# CYBERSECUR_REPO=/path/to/CyberSecur-Global ./scripts/deployment/sync-cybersecur-global-to-ct7810.sh
# CYBERSECUR_INTAKE_REDIRECT_URL= # optional; default https://cybersecur.d-bis.org/intake-thanks.html
# --- Database & app auth --- # --- Database & app auth ---
DATABASE_URL= DATABASE_URL=
JWT_SECRET= JWT_SECRET=
@@ -94,13 +110,86 @@ AZURE_STORAGE_CONTAINER=
# --- Blockchain / SMOM-DBIS-138 (use smom-dbis-138/.env for PRIVATE_KEY) --- # --- Blockchain / SMOM-DBIS-138 (use smom-dbis-138/.env for PRIVATE_KEY) ---
PRIVATE_KEY= PRIVATE_KEY=
DEPLOYER_ADDRESS=
RPC_URL_138= RPC_URL_138=
RPC_URL_138_PUBLIC= RPC_URL_138_PUBLIC=
# Infura (recommended): one dashboard project fills JSON-RPC for Ethereum + major L2s.
# Set INFURA_PROJECT_ID (or INFURA_API_KEY) and leave per-chain URLs empty to auto-fill in scripts/lib/load-project-env.sh,
# or set explicit URLs: https://mainnet.infura.io/v3/<PROJECT_ID>, https://polygon-mainnet.infura.io/v3/<PROJECT_ID>, …
INFURA_PROJECT_ID=
INFURA_API_KEY=
ETHEREUM_MAINNET_RPC= ETHEREUM_MAINNET_RPC=
# EI matrix readiness audit (scripts/verify/run-ei-matrix-full-readiness-audit.sh, optional CI step in run-all-validation.sh)
EI_MATRIX_AUDIT_SHARD_SIZE=400
EI_MATRIX_AUDIT_WORKERS=3
EI_MATRIX_AUDIT_MIN_MAINNET_RAW=12000000
EI_MATRIX_AUDIT_MIN_138_RAW=0
# CI: EI_MATRIX_ONCHAIN_AUDIT_CI=1 EI_MATRIX_ONCHAIN_AUDIT_CI_LIMIT=120 EI_MATRIX_AUDIT_MIN_MAINNET_RAW_CI=0
POLYGON_MAINNET_RPC=
ARBITRUM_MAINNET_RPC=
OPTIMISM_MAINNET_RPC=
BASE_MAINNET_RPC=
AVALANCHE_MAINNET_RPC=
# BSC / Gnosis / Celo (Infura-supported networks)
BSC_RPC_URL=
GNOSIS_MAINNET_RPC=
CELO_MAINNET_RPC=
# Clear scripts/verify/check-external-dependencies.sh — use real service URLs when split; example interim health target:
# DBIS_CORE_URL=https://dbis-api.d-bis.org/health
DBIS_CORE_URL=
CC_PAYMENT_ADAPTERS_URL=
CC_AUDIT_LEDGER_URL=
CC_SHARED_EVENTS_URL=
CC_SHARED_SCHEMAS_URL=
FIN_GATEWAY_URL=
ALLIANCE_ACCESS_URL=
# cast must be in PATH; use a runner-reachable Chain 138 RPC, e.g.:
# CHAIN138_CI_RPC_URL=https://rpc.public-0138.defi-oracle.io
CHAIN138_CI_RPC_URL=
ALL_MAINNET_RPC=
# Alltra / Wemix / Etherlink: set for production; for local read-only checks, deployer-gas-auto-route.sh falls back to public RPCs documented in scripts/deployment/deployer-gas-auto-route.sh
CHAIN_651940_RPC_URL= CHAIN_651940_RPC_URL=
# ALLTRA_MAINNET_RPC=https://mainnet-rpc.alltra.global
# WEMIX_RPC_URL=https://api.wemix.com
# ETHERLINK_RPC_URL=https://node.mainnet.etherlink.com
CHAIN_1_UNISWAP_V2_FACTORY=0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
CHAIN_1_UNISWAP_V2_ROUTER=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
CHAIN_1_UNISWAP_V2_START_BLOCK=0
CHAIN_10_UNISWAP_V2_FACTORY=0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf
CHAIN_10_UNISWAP_V2_ROUTER=0x4A7b5Da61326A6379179b40d00F57E5bbDC962c2
CHAIN_10_UNISWAP_V2_START_BLOCK=0
CHAIN_25_UNISWAP_V2_FACTORY=0x3B44B2a187a7b3824131F8db5a74194D0a42Fc15
CHAIN_25_UNISWAP_V2_ROUTER=0x145863Eb42Cf62847A6Ca784e6416C1682b1b2Ae
CHAIN_25_UNISWAP_V2_START_BLOCK=0
CHAIN_56_UNISWAP_V2_FACTORY=0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73
CHAIN_56_UNISWAP_V2_ROUTER=0x10ED43C718714eb63d5aA57B78B54704E256024E
CHAIN_56_UNISWAP_V2_START_BLOCK=0
CHAIN_100_UNISWAP_V2_FACTORY=0xc35DADB65012eC5796536bD9864eD8773aBc74C4
CHAIN_100_UNISWAP_V2_ROUTER=0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
CHAIN_100_UNISWAP_V2_START_BLOCK=0
CHAIN_137_UNISWAP_V2_FACTORY=0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32
CHAIN_137_UNISWAP_V2_ROUTER=0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff
CHAIN_137_UNISWAP_V2_START_BLOCK=0
CHAIN_42220_UNISWAP_V2_FACTORY=0x62d5b84bE28a183aBB507E125B384122D2C25fAE
CHAIN_42220_UNISWAP_V2_ROUTER=0xE3D8bd6Aed4F159bc8000a9cD47CffDb95F96121
CHAIN_42220_UNISWAP_V2_START_BLOCK=0
CHAIN_43114_UNISWAP_V2_FACTORY=0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10
CHAIN_43114_UNISWAP_V2_ROUTER=0x60aE616a2155Ee3d9A68541Ba4544862310933d4
CHAIN_43114_UNISWAP_V2_START_BLOCK=0
CHAIN_8453_UNISWAP_V2_FACTORY=0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E
CHAIN_8453_UNISWAP_V2_ROUTER=0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb
CHAIN_8453_UNISWAP_V2_START_BLOCK=0
CHAIN_42161_UNISWAP_V2_FACTORY=0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E
CHAIN_42161_UNISWAP_V2_ROUTER=0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb
CHAIN_42161_UNISWAP_V2_START_BLOCK=0
# Optional / scaffold-only until Wemix UniV2 routing is promoted
CHAIN_1111_UNISWAP_V2_FACTORY=
CHAIN_1111_UNISWAP_V2_ROUTER=
CHAIN_1111_UNISWAP_V2_START_BLOCK=0
ETHERLINK_RPC_URL= ETHERLINK_RPC_URL=
TEZOS_RPC_URL= TEZOS_RPC_URL=
ETHERSCAN_API_KEY= ETHERSCAN_API_KEY=
WEMIXSCAN_API_KEY=
ETHERLINK_CCIP_SELECTOR= ETHERLINK_CCIP_SELECTOR=
TEZOS_BRIDGE_ENABLED= TEZOS_BRIDGE_ENABLED=
ETHERLINK_BRIDGE_ENABLED= ETHERLINK_BRIDGE_ENABLED=
@@ -190,6 +279,19 @@ RPC_URL_138_FIREBLOCKS=
WS_URL_138_FIREBLOCKS= WS_URL_138_FIREBLOCKS=
CHAIN_ID_138= CHAIN_ID_138=
# --- Non-EVM operator binding (liquidity planner / handoff advisory) ---
# Public XRPL r-address (optional). Same as XRPL_ACCOUNT / XRPL_WALLET_ADDRESS / XRP_WALLET_ADDRESS.
XRPL_ACCOUNT=
XRPL_DEPLOYER_ADDRESS=
# Native Tron base58 address override if not using derived EVM→Tron mapping.
TRON_DEPLOYER_ADDRESS=
# Set to 1 after ops confirms derived Tron deployer is canonical (see config/non-evm-operator-binding.json).
TRON_CANONICAL_CONFIRMED=
# Solana public key override if not using SOLANA_KEYPAIR_PATH.
SOLANA_DEPLOYER_ADDRESS=
SOLANA_RPC_URL=
TRONGRID_API_KEY=
# --- Phoenix deploy API --- # --- Phoenix deploy API ---
PORT= PORT=
GITEA_TOKEN= GITEA_TOKEN=

View File

@@ -6,6 +6,12 @@
2. Make changes, ensure tests pass 2. Make changes, ensure tests pass
3. Open a pull request 3. Open a pull request
Repo ↔ VM CI/CD mapping and templates for **other** Gitea repos: [docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md](../docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md), [config/gitea-workflow-templates/README.md](../config/gitea-workflow-templates/README.md).
Deploy workflow policy:
`main` and `master` are both deploy-triggering branches, so `.gitea/workflow-sources/deploy-to-phoenix.yml` and `.gitea/workflow-sources/validate-on-pr.yml` must stay identical across both branches.
Use `bash scripts/verify/sync-gitea-workflows.sh` after editing workflow-source files, and `bash scripts/verify/run-all-validation.sh --skip-genesis` to catch workflow drift before push.
## Pull Requests ## Pull Requests
- Use the PR template when opening a PR - Use the PR template when opening a PR

View File

@@ -0,0 +1,143 @@
# Canonical deploy workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
#
# Push runs validate + Phoenix only when at least one changed path is outside paths-ignore.
# Doc/report/editor-only pushes skip CI deploy churn; use workflow_dispatch for a manual run.
name: Deploy to Phoenix
on:
push:
branches: [main, master]
paths-ignore:
# Narrative / audit text — does not change Phoenix-running code on the host
- 'docs/**'
- 'reports/**'
# Editor & local agent tooling
- '.cursor/**'
- '.cursorindexingignore'
- '.playwright-mcp/**'
# Repo guidance only (submodules + scripts drive deploy semantics)
- 'AGENTS.md'
# Typical local verification screenshots/bundles at repo root (regenerate at will)
- '/explorer-*.png'
- '/explorer-*.jpg'
- '/eip155-*.svg'
- '/*.tar.gz'
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# The cW* mesh matrix and deployment-status validators read
# cross-chain-pmm-lps/config/*.json. The parent checkout does not
# materialize submodules by default, and .gitmodules mixes public HTTPS
# with SSH URLs, so clone only the required public validation dependency.
- name: Materialize cross-chain-pmm-lps
run: |
set -euo pipefail
if [ ! -f cross-chain-pmm-lps/config/deployment-status.json ]; then
rm -rf cross-chain-pmm-lps
git clone --depth=1 \
https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps.git \
cross-chain-pmm-lps
fi
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy:
needs: validate
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
set +e
curl -sSf --retry 3 --retry-connrefused --retry-delay 10 --retry-max-time 180 \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"
rc="$?"
set -e
if [ "$rc" -eq 52 ]; then
HEALTH_URL="${{ secrets.PHOENIX_DEPLOY_URL }}"
HEALTH_URL="${HEALTH_URL%/api/deploy}/health"
echo "Phoenix deploy API restarted during self-deploy; verifying ${HEALTH_URL}"
for i in $(seq 1 12); do
if curl -fsS --max-time 5 "$HEALTH_URL"; then
exit 0
fi
sleep 5
done
fi
exit "$rc"
deploy-atomic-swap-dapp:
needs: deploy
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Atomic Swap dApp deployment (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"atomic-swap-dapp-live\"}"
# After app deploy, ask Phoenix to run path-gated Cloudflare DNS sync on the host that has
# PHOENIX_REPO_ROOT + .env (not on this runner). Skips unless PHOENIX_CLOUDFLARE_SYNC=1 on that host.
# continue-on-error: first-time or missing opt-in should not block the main deploy.
cloudflare:
needs:
- deploy
- deploy-atomic-swap-dapp
runs-on: ubuntu-latest-heavy
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Request Cloudflare DNS sync (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --retry 5 --retry-all-errors --retry-connrefused --retry-delay 10 --retry-max-time 300 \
--connect-timeout 10 --max-time 900 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"cloudflare-sync\"}" \
|| { echo "Cloudflare DNS sync request failed; optional sync is non-blocking."; exit 0; }

View File

@@ -0,0 +1,35 @@
# Canonical PR validation workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
# PR-only: merges to main/master run deploy-to-phoenix only when push touches deploy-relevant
# paths (see paths-ignore there); this workflow always validates PRs without Phoenix deploy.
name: Validate (PR)
on:
pull_request:
types: [opened, synchronize, reopened]
branches: [main, master]
workflow_dispatch:
jobs:
run-all-validation:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# Optional: set org/repo variable URA_STRICT_CLOSURE=1 to fail PRs while pilot placeholders
# remain in manifest (see scripts/ura/validate-manifest-closure.mjs). Not enabled by default.
# Optional: set org/repo vars ETHEREUM_MAINNET_RPC + RPC_URL_138 and EI_MATRIX_ONCHAIN_AUDIT_CI=1 to run
# scripts/lib/ei_matrix_onchain_readiness_audit.py via run-all-validation (see OPERATOR_READY_CHECKLIST §5e).
- name: run-all-validation (no LAN, no genesis)
env:
URA_STRICT_CLOSURE: ${{ vars.URA_STRICT_CLOSURE }}
run: bash scripts/verify/run-all-validation.sh --skip-genesis

View File

@@ -4,7 +4,7 @@ on:
types: [opened, synchronize] types: [opened, synchronize]
jobs: jobs:
claude-review: claude-review:
runs-on: ubuntu-latest runs-on: ubuntu-latest-heavy
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: markwylde/claude-code-gitea-action@v1.0.5 - uses: markwylde/claude-code-gitea-action@v1.0.5

View File

@@ -0,0 +1,210 @@
name: Bootstrap Phoenix Deploy API
# Reinstalls phoenix-deploy-api on the dev VM (CT 5700) with the latest server.js
# from master. This is the missing link between "code on master is the real
# implementation" and "running service on CT 5700 still has the stub". Run this
# workflow_dispatch job whenever phoenix-deploy-api/server.js, deploy-targets.json
# or related scripts change and you need the running service to pick up the change
# without a manual LAN visit.
#
# Required Gitea repo secrets (Settings -> Secrets):
# PHOENIX_PVE_HOST PVE node IP that hosts CT 5700 (e.g. 192.168.11.12)
# PHOENIX_PVE_USER SSH user on the PVE node (default: root)
# PHOENIX_PVE_SSH_KEY Private SSH key (PEM, OpenSSH format) authorised on the PVE node
# PHOENIX_PVE_KNOWN_HOSTS Pre-populated known_hosts entry for the PVE node (avoids strict-host prompt)
# PHOENIX_DEV_VM_VMID Container VMID (default: 5700)
# PHOENIX_DEPLOY_DEV_VM_IP IP of the dev VM for the post-install health check (default: 192.168.11.59)
# PHOENIX_DEPLOY_URL Phoenix deploy webhook URL (already used by deploy job)
# PHOENIX_DEPLOY_TOKEN Bearer token for the webhook (already used by deploy job)
#
# Trigger only via Gitea UI (Actions tab -> "Bootstrap Phoenix Deploy API" -> Run
# workflow). NOT triggered on push: reinstalling the deploy service is sensitive
# enough that we want it gated behind a manual click.
on:
workflow_dispatch:
inputs:
verify_only:
description: "If true, only run the post-install /health + auth probe and skip the reinstall step."
type: boolean
required: false
default: false
jobs:
bootstrap:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout proxmox repo
uses: actions/checkout@v4
- name: Validate repo layout
run: |
set -euo pipefail
test -d phoenix-deploy-api || { echo "phoenix-deploy-api/ missing" >&2; exit 1; }
test -f phoenix-deploy-api/server.js
test -f phoenix-deploy-api/scripts/install-systemd.sh
test -f phoenix-deploy-api/deploy-targets.json
# Manifest is optional; warn if missing but do not fail.
if [ ! -f config/public-sector-program-manifest.json ]; then
echo "::warning::config/public-sector-program-manifest.json missing — install will warn on CT"
fi
# Make sure the running master implementation is NOT the stub message
# that triggered this whole bootstrap thread.
if grep -q "Deploy request queued (stub)" phoenix-deploy-api/server.js; then
echo "phoenix-deploy-api/server.js still contains the stub string — refusing to bootstrap." >&2
exit 1
fi
- name: Install SSH key for PVE access
if: ${{ github.event.inputs.verify_only != 'true' }}
run: |
set -euo pipefail
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
umask 077
printf '%s\n' "${{ secrets.PHOENIX_PVE_SSH_KEY }}" > "$HOME/.ssh/id_pve"
chmod 600 "$HOME/.ssh/id_pve"
if [ -n "${{ secrets.PHOENIX_PVE_KNOWN_HOSTS }}" ]; then
printf '%s\n' "${{ secrets.PHOENIX_PVE_KNOWN_HOSTS }}" > "$HOME/.ssh/known_hosts"
chmod 644 "$HOME/.ssh/known_hosts"
else
# Fall back to accept-new on first connect; subsequent connects pin.
touch "$HOME/.ssh/known_hosts"
chmod 644 "$HOME/.ssh/known_hosts"
fi
- name: Build deploy bundle
if: ${{ github.event.inputs.verify_only != 'true' }}
run: |
set -euo pipefail
mkdir -p .out
if [ -f config/public-sector-program-manifest.json ]; then
tar czf .out/pda-deploy-bundle.tar.gz \
phoenix-deploy-api \
config/public-sector-program-manifest.json
else
tar czf .out/pda-deploy-bundle.tar.gz phoenix-deploy-api
fi
ls -lh .out/pda-deploy-bundle.tar.gz
- name: scp bundle to PVE host
if: ${{ github.event.inputs.verify_only != 'true' }}
env:
PVE_HOST: ${{ secrets.PHOENIX_PVE_HOST }}
PVE_USER: ${{ secrets.PHOENIX_PVE_USER }}
run: |
set -euo pipefail
: "${PVE_HOST:?PHOENIX_PVE_HOST not set in repo secrets}"
PVE_USER_VAL="${PVE_USER:-root}"
KNOWN_HOSTS_OPT="-o UserKnownHostsFile=$HOME/.ssh/known_hosts"
if [ ! -s "$HOME/.ssh/known_hosts" ]; then
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=accept-new"
else
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=yes"
fi
scp -i "$HOME/.ssh/id_pve" $KNOWN_HOSTS_OPT \
-o ConnectTimeout=20 \
.out/pda-deploy-bundle.tar.gz \
"${PVE_USER_VAL}@${PVE_HOST}:/tmp/pda-deploy-bundle.tar.gz"
- name: pct push + install-systemd on CT
if: ${{ github.event.inputs.verify_only != 'true' }}
env:
PVE_HOST: ${{ secrets.PHOENIX_PVE_HOST }}
PVE_USER: ${{ secrets.PHOENIX_PVE_USER }}
VMID: ${{ secrets.PHOENIX_DEV_VM_VMID }}
run: |
set -euo pipefail
: "${PVE_HOST:?PHOENIX_PVE_HOST not set in repo secrets}"
PVE_USER_VAL="${PVE_USER:-root}"
VMID_VAL="${VMID:-5700}"
KNOWN_HOSTS_OPT="-o UserKnownHostsFile=$HOME/.ssh/known_hosts"
if [ ! -s "$HOME/.ssh/known_hosts" ]; then
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=accept-new"
else
KNOWN_HOSTS_OPT="$KNOWN_HOSTS_OPT -o StrictHostKeyChecking=yes"
fi
ssh -i "$HOME/.ssh/id_pve" $KNOWN_HOSTS_OPT \
-o ConnectTimeout=20 \
"${PVE_USER_VAL}@${PVE_HOST}" "VMID=${VMID_VAL} bash -s" <<'REMOTE_EOF'
set -euo pipefail
: "${VMID:?}"
# Verify CT exists and is running.
if ! pct status "${VMID}" >/dev/null 2>&1; then
echo "CT ${VMID} not found on this PVE node." >&2
exit 1
fi
if ! pct exec "${VMID}" -- true 2>/dev/null; then
echo "CT ${VMID} not running. Start it first: pct start ${VMID}" >&2
exit 1
fi
STAGE="/tmp/proxmox-pda-stage"
pct push "${VMID}" /tmp/pda-deploy-bundle.tar.gz /root/pda-deploy.tar.gz
pct exec "${VMID}" -- bash -c "
set -euo pipefail
rm -rf '${STAGE}'
mkdir -p '${STAGE}'
tar xzf /root/pda-deploy.tar.gz -C '${STAGE}'
cd '${STAGE}'
bash phoenix-deploy-api/scripts/install-systemd.sh
rm -f /root/pda-deploy.tar.gz
"
rm -f /tmp/pda-deploy-bundle.tar.gz
REMOTE_EOF
- name: Health check (no auth)
env:
DEV_VM_IP: ${{ secrets.PHOENIX_DEPLOY_DEV_VM_IP }}
run: |
set -euo pipefail
IP="${DEV_VM_IP:-192.168.11.59}"
# Service may take a moment to come up after install; retry briefly.
for i in 1 2 3 4 5 6; do
if curl -sSf -m 5 "http://${IP}:4001/health" -o /tmp/health.json; then
echo "Health check OK on attempt ${i}"
cat /tmp/health.json || true
echo
break
fi
echo "Health check attempt ${i}/6 failed; sleeping 3s"
sleep 3
if [ "${i}" = "6" ]; then
echo "Phoenix Deploy API /health unreachable after install." >&2
exit 1
fi
done
- name: Auth + non-stub probe (POST with bogus target)
env:
PHOENIX_DEPLOY_URL: ${{ secrets.PHOENIX_DEPLOY_URL }}
PHOENIX_DEPLOY_TOKEN: ${{ secrets.PHOENIX_DEPLOY_TOKEN }}
run: |
set -euo pipefail
: "${PHOENIX_DEPLOY_URL:?}"
: "${PHOENIX_DEPLOY_TOKEN:?}"
# POST a bogus target. The post-bootstrap server should:
# - accept the bearer token (NOT 401)
# - reject the unknown target with a non-stub error
# The pre-bootstrap stub returned 202 with "Deploy request queued (stub)"
# for ANY target. So we explicitly check the response body does NOT
# contain that stub phrase.
BODY="$(curl -sS -m 10 -X POST "${PHOENIX_DEPLOY_URL}" \
-H "Authorization: Bearer ${PHOENIX_DEPLOY_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"repo":"d-bis/proxmox","sha":"HEAD","branch":"master","target":"__bootstrap_probe__"}' || true)"
echo "Response body:"
echo "${BODY}"
if echo "${BODY}" | grep -q 'Deploy request queued (stub)'; then
echo "::error::Phoenix Deploy API still returning stub response — bootstrap did not take effect."
exit 1
fi
if echo "${BODY}" | grep -qi 'unauthorized\|invalid token\|401'; then
echo "::error::Phoenix Deploy API rejected the bearer token. PHOENIX_DEPLOY_TOKEN is out of sync with PHOENIX_DEPLOY_SECRET on the CT."
exit 1
fi
echo "Phoenix Deploy API is post-stub and authenticating correctly."
- name: Cleanup secrets
if: always()
run: |
rm -f "$HOME/.ssh/id_pve" "$HOME/.ssh/known_hosts" || true

View File

@@ -0,0 +1,31 @@
name: Deploy Sankofa Portal Live
on:
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy:
needs: validate
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger portal-live deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf -X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"portal-live\"}"

View File

@@ -1,20 +1,143 @@
# Canonical deploy workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
#
# Push runs validate + Phoenix only when at least one changed path is outside paths-ignore.
# Doc/report/editor-only pushes skip CI deploy churn; use workflow_dispatch for a manual run.
name: Deploy to Phoenix name: Deploy to Phoenix
on: on:
push: push:
branches: [main, master] branches: [main, master]
paths-ignore:
# Narrative / audit text — does not change Phoenix-running code on the host
- 'docs/**'
- 'reports/**'
# Editor & local agent tooling
- '.cursor/**'
- '.cursorindexingignore'
- '.playwright-mcp/**'
# Repo guidance only (submodules + scripts drive deploy semantics)
- 'AGENTS.md'
# Typical local verification screenshots/bundles at repo root (regenerate at will)
- '/explorer-*.png'
- '/explorer-*.jpg'
- '/eip155-*.svg'
- '/*.tar.gz'
workflow_dispatch:
jobs: jobs:
validate:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# The cW* mesh matrix and deployment-status validators read
# cross-chain-pmm-lps/config/*.json. The parent checkout does not
# materialize submodules by default, and .gitmodules mixes public HTTPS
# with SSH URLs, so clone only the required public validation dependency.
- name: Materialize cross-chain-pmm-lps
run: |
set -euo pipefail
if [ ! -f cross-chain-pmm-lps/config/deployment-status.json ]; then
rm -rf cross-chain-pmm-lps
git clone --depth=1 \
https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps.git \
cross-chain-pmm-lps
fi
- name: Run repo validation gate
run: |
bash scripts/verify/run-all-validation.sh --skip-genesis
deploy: deploy:
runs-on: ubuntu-latest needs: validate
runs-on: ubuntu-latest-heavy
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Trigger Phoenix deployment - name: Trigger Phoenix deployment
run: | run: |
curl -sSf -X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \ set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
set +e
curl -sSf --retry 3 --retry-connrefused --retry-delay 10 --retry-max-time 180 \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \ -H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${{ gitea.sha }}\",\"branch\":\"${{ gitea.ref_name }}\"}" -d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"
continue-on-error: true rc="$?"
set -e
if [ "$rc" -eq 52 ]; then
HEALTH_URL="${{ secrets.PHOENIX_DEPLOY_URL }}"
HEALTH_URL="${HEALTH_URL%/api/deploy}/health"
echo "Phoenix deploy API restarted during self-deploy; verifying ${HEALTH_URL}"
for i in $(seq 1 12); do
if curl -fsS --max-time 5 "$HEALTH_URL"; then
exit 0
fi
sleep 5
done
fi
exit "$rc"
deploy-atomic-swap-dapp:
needs: deploy
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Trigger Atomic Swap dApp deployment (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf \
--connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"atomic-swap-dapp-live\"}"
# After app deploy, ask Phoenix to run path-gated Cloudflare DNS sync on the host that has
# PHOENIX_REPO_ROOT + .env (not on this runner). Skips unless PHOENIX_CLOUDFLARE_SYNC=1 on that host.
# continue-on-error: first-time or missing opt-in should not block the main deploy.
cloudflare:
needs:
- deploy
- deploy-atomic-swap-dapp
runs-on: ubuntu-latest-heavy
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Request Cloudflare DNS sync (Phoenix)
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --retry 5 --retry-all-errors --retry-connrefused --retry-delay 10 --retry-max-time 300 \
--connect-timeout 10 --max-time 900 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${{ gitea.repository }}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"cloudflare-sync\"}" \
|| { echo "Cloudflare DNS sync request failed; optional sync is non-blocking."; exit 0; }

View File

@@ -0,0 +1,35 @@
# Canonical PR validation workflow. Keep source and checked-in workflow copies byte-identical.
# Validation checks both file sync and main/master parity.
# PR-only: merges to main/master run deploy-to-phoenix only when push touches deploy-relevant
# paths (see paths-ignore there); this workflow always validates PRs without Phoenix deploy.
name: Validate (PR)
on:
pull_request:
types: [opened, synchronize, reopened]
branches: [main, master]
workflow_dispatch:
jobs:
run-all-validation:
runs-on: ubuntu-latest-heavy
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch deploy branches for workflow parity check
run: |
REMOTE="${GITEA_WORKFLOW_REMOTE:-origin}"
if git remote | grep -qx gitea; then
REMOTE="${GITEA_WORKFLOW_REMOTE:-gitea}"
fi
git fetch --depth=1 "$REMOTE" main master
- name: Install validation dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
# Optional: set org/repo variable URA_STRICT_CLOSURE=1 to fail PRs while pilot placeholders
# remain in manifest (see scripts/ura/validate-manifest-closure.mjs). Not enabled by default.
# Optional: set org/repo vars ETHEREUM_MAINNET_RPC + RPC_URL_138 and EI_MATRIX_ONCHAIN_AUDIT_CI=1 to run
# scripts/lib/ei_matrix_onchain_readiness_audit.py via run-all-validation (see OPERATOR_READY_CHECKLIST §5e).
- name: run-all-validation (no LAN, no genesis)
env:
URA_STRICT_CLOSURE: ${{ vars.URA_STRICT_CLOSURE }}
run: bash scripts/verify/run-all-validation.sh --skip-genesis

112
.gitignore vendored
View File

@@ -26,6 +26,9 @@ Thumbs.db
# Local-only Cursor session / context (exclude from Gitea) # Local-only Cursor session / context (exclude from Gitea)
.cursor/local/ .cursor/local/
# Devin for Terminal personal overrides / secrets
.devin/config.local.json
# IDE files # IDE files
.vscode/ .vscode/
.idea/ .idea/
@@ -74,3 +77,112 @@ reconciliation/
*.payload.json *.payload.json
*.payload.sha256 *.payload.sha256
audit_log.jsonl audit_log.jsonl
# cross-chain-pmm-lps-publish: git worktree under that repo — not a parent submodule
cross-chain-pmm-lps-publish/
# Local scratch (never commit)
.tmp-*.cjs
.codex
.codex/
.venv-checkjson/
.env.bak.pmg.*
# Teammate / third-party onboarding (API token handoffs; never commit)
reports/secrets/
# Operator / runtime env snapshots under reports/ (sensitive; regenerate from hosts)
reports/status/operator-*.env
reports/status/operator-runtime*.env
reports/status/chain138_aave_runtime.env
reports/status/*runtime-env*.env
reports/status/ei-matrix-eth-send*
reports/status/token-aggregation-*.tar.gz
config/production/*did-secrets.env
# Bulky one-off local outputs (re-run scripts to restore)
output/omnl-e2e-*.zip
output/omnl-e2e-*/
output/office22-*.zip
output/settlement-events/
output/transaction-package-*/
output/cw-assets-usd-quote-dump.json
output/jvmtm-evidence/
# Generated verification evidence snapshots (keep curated evidence, ignore rerunnable timestamped dumps)
docs/04-configuration/verification-evidence/e2e-verification-*/
docs/04-configuration/verification-evidence/rpc-502-diagnostics-*.txt
# Generated deployment and inventory machine outputs
reports/deployment/*_20[0-9][0-9]-[0-9][0-9]-[0-9][0-9].md
reports/deployment/check-deployer-lp-balances-*.json
reports/inventory/container_inventory_*.csv
reports/inventory/contract-inventory-*.json
reports/inventory/DEPLOYED_CONTRACTS_*.md
reports/inventory/INCOMPLETE_DUPLICATE_ANALYSIS.md
reports/inventory/INVENTORY_COVERAGE_GAPS.md
reports/inventory/deployed-contracts-completion-matrix.json
reports/inventory/incomplete-duplicate-bytecode-analysis.json
# Generated status artifacts (rerunnable from wrappers/validation scripts)
reports/status/MULTI_NETWORK_DEPLOYMENT_AUDIT_*.md
reports/status/*-latest.json
reports/status/*-latest.md
reports/status/*-latest.csv
reports/status/*-latest.xml
reports/status/hardware_poll_*.txt
reports/status/lxc_cluster_health_*.json
reports/status/lxc_cluster_health_*.txt
reports/status/mainnet-cwusdc-usdc-preflight-*.json
reports/status/mainnet-cwusdc-usdc-repeg-plan-*.json
reports/status/live_inventory_*.json
reports/status/drift_*.json
# Ephemeral e2e dry-run outputs (local re-runs; not canonical reports)
reports/e2e-dry-runs/
# Local relay / thirdweb scaffold trees (subtree or vendor experiments — git add -f if promoted)
relay/
relay-api/
relay-docs/
relay-web/
thirdweb-contracts/
# One-off liquidity staging helpers (operator-generated; use committed runbooks as source of truth)
scripts/verify/stage-250m-eth-to-cwusdc-dry-run.sh
scripts/verify/stage-427m-cusdc-weth-liquidity-funding.sh
# Large optional vendor trees and local checkouts (keep out of main clone)
smom-dbis-138-publish/
third-party/
thirdweb-core-2103-test/
tmp/
token-aggregation-build/
transaction-composer/
vendor/
# Operator-local secrets (SSH keys, tokens — never commit)
.secrets/
# --- Ephemeral local outputs (avoid accidental commits that re-trigger Phoenix via push) ---
# Playwright MCP session data (Cursor)
.playwright-mcp/
# Root-level verification screenshots / bundles (use reports/status with git add -f if retaining)
/explorer-*.png
/explorer-*.jpg
/eip155-*.svg
/*.tar.gz
# Operator pipeline chunks, locks, and screenshot dumps under reports/status (force-add to retain)
reports/status/**/*.lock
reports/status/**/*.idx
reports/status/**/*.hex
reports/status/**/*.jsonl
reports/status/ei-matrix-*
reports/status/cw-multitoken-l2-remediation-*.jsonl
reports/status/screenshots/
# Large evidence bundles / checksums under reports/status (retain outside git or use releases)
reports/status/**/*.tar.gz
reports/status/**/*.sha256

6
.gitmodules vendored
View File

@@ -4,7 +4,7 @@
# Primary integration remote is Gitea; use GitHub only as an optional mirror when available. # Primary integration remote is Gitea; use GitHub only as an optional mirror when available.
[submodule "mcp-proxmox"] [submodule "mcp-proxmox"]
path = mcp-proxmox path = mcp-proxmox
url = https://github.com/gilby125/mcp-proxmox.git url = https://gitea.d-bis.org/d-bis/mcp-proxmox.git
[submodule "smom-dbis-138"] [submodule "smom-dbis-138"]
path = smom-dbis-138 path = smom-dbis-138
url = git@github.com:Order-of-Hospitallers/smom-dbis-138.git url = git@github.com:Order-of-Hospitallers/smom-dbis-138.git
@@ -64,3 +64,7 @@
[submodule "MEV_Bot"] [submodule "MEV_Bot"]
path = MEV_Bot path = MEV_Bot
url = https://gitea.d-bis.org/d-bis/MEV_Bot.git url = https://gitea.d-bis.org/d-bis/MEV_Bot.git
[submodule "atomic-swap-dapp"]
path = atomic-swap-dapp
url = https://gitea.d-bis.org/d-bis/atomic-swap-dapp.git
# Local bootstrap remote for initial scaffolding; replace with canonical hosted remote before team-wide clone use.

View File

@@ -11,23 +11,48 @@ Orchestration for Proxmox VE, Chain 138 (`smom-dbis-138/`), explorers, NPMplus,
| Need | Location | | Need | Location |
|------|-----------| |------|-----------|
| Doc index | `docs/MASTER_INDEX.md` | | Doc index | `docs/MASTER_INDEX.md` |
| Master reference — token / stablecoin launch (“Bible from Nathan”) | `docs/00-meta/BIBLE_FROM_NATHAN_TOKEN_LAUNCH_RESOURCE_COMPENDIUM.md` — cross-cutting institutional compendium (regulation, custody, banking, tooling, audits, listings, checklists); use with Chain 138 canonicals below |
| Master reference — MetaMask Money/mUSD ↔ GRU, provider cross-links, DefiLlama DODO `dfio_meta_main` TVL | `docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md` — replay steps, doc cross-links, DefiLlama-Adapters fork/PR **#19198**, touchpoints JSON maintenance |
| DefiLlama ↔ Chain 138 (TVL + optional metrics) | `docs/04-configuration/defillama/CHAIN138_DEFILLAMA_ECOSYSTEM_MAP.md`, `config/defillama-chain138-touchpoints.json`; methodology hub [docs.llama.fi](https://docs.llama.fi/) |
| Optional Cosmos / IBC / Noble / Osmosis / CosmWasm → Chain 138 | `docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md` (streams AE); templates `config/cosmos-chain138-optional/`; **gaps audit** `docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md` |
| Canonical ecosystem master plan | `docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md` — umbrella root; subordinate roots: `dbis_chain_138_technical_master_plan.md`, `docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md`, `docs/04-configuration/universal-resource-activation/URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md` |
| Treasury / EMI / wallet / VA master plan | `docs/02-architecture/GOVERNMENT_TREASURY_EMI_WALLET_MASTER_PLAN.md` — government treasury, EMIs, digital wallets, virtual accounts (incl. Tatum-style), Rail vs RTGS gates |
| Universal resource activation (manifest, CI, Phoenix) | `UNIVERSAL_RESOURCE_WIRING.md`, `URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md`, `URA_OPERATIONAL_READINESS_CHECKLIST.md` (under `docs/04-configuration/universal-resource-activation/`); `config/universal-resource-activation/{manifest.json,policy-profiles.json,integration/}`; `pnpm ura:ops-readiness` / `ura:ops-readiness:full`, `ura:production-ready` / `ura:production-ready:connectivity`, `ura:validate`, `ura:validate-profiles`, `ura:merge-manifest`, `ura:validate-ledger-mapping`, `ura:writer:ledger`, `ura:writer:settlement`, `ura:profile-hash`, `ura:validate-closure`, `ura:keccak`, `ura:smoke`; `URA_STRICT_CLOSURE` / Gitea `vars.URA_STRICT_CLOSURE`; `smom-dbis-138/contracts/universal-resource/PolicyProfileRegistry.sol` (scoped forge test); Phoenix `PUBLIC_V1_NO_PARTNER_KEY_PATHS` |
| Multi-jurisdiction compliance (matrices, onboarding) | `docs/04-configuration/compliance-matrices/README.md`, `INSTITUTION_ONBOARDING_CHARTER.md`, `INSTITUTION_ONBOARDING_PLAYBOOK.md`, `docs/04-configuration/jurisdictions/JURISDICTION_CATALOG.md`, `config/jurisdictions/catalog.v1.json`, `docs/dbis-rail/DBIS_RAIL_JURISDICTION_TRACEABILITY.md`, `docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md` |
| cXAUC/cXAUT unit | 1 full token = 1 troy oz Au — `docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md` (section 5.1) | | cXAUC/cXAUT unit | 1 full token = 1 troy oz Au — `docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md` (section 5.1) |
| PMM mesh 6s tick | `smom-dbis-138/scripts/reserve/pmm-mesh-6s-automation.sh``docs/integration/ORACLE_AND_KEEPER_CHAIN138.md` (PMM mesh automation) | | PMM mesh 6s tick | `smom-dbis-138/scripts/reserve/pmm-mesh-6s-automation.sh``docs/integration/ORACLE_AND_KEEPER_CHAIN138.md` (PMM mesh automation) |
| VMID / IP / FQDN | `docs/04-configuration/ALL_VMIDS_ENDPOINTS.md` | | VMID / IP / FQDN | `docs/04-configuration/ALL_VMIDS_ENDPOINTS.md` |
| Live guest inventory + IPAM drift (LAN, seed **r630-01**) | `bash scripts/it-ops/export-live-inventory-and-drift.sh``reports/status/live_inventory.json`, `reports/status/drift.json` (exit **2** only on duplicate guest IPs). Collector parses QEMU **`ipconfig*`** and LXC **`net*`** via `scripts/lib/proxmox_guest_lan_ips.py`. |
| Ops template + JSON | `docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md`, `config/proxmox-operational-template.json` | | Ops template + JSON | `docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md`, `config/proxmox-operational-template.json` |
| Live vs template (read-only SSH) | `bash scripts/verify/audit-proxmox-operational-template.sh` | | Live vs template (read-only SSH) | `bash scripts/verify/audit-proxmox-operational-template.sh` |
| Config validation | `bash scripts/validation/validate-config-files.sh` | | Config validation | `bash scripts/validation/validate-config-files.sh` |
| pnpm lockfile vs workspace (prevents `pnpm outdated` / importer bugs) | `bash scripts/verify/check-pnpm-workspace-lockfile.sh` — also run as **step 1b** in `run-all-validation.sh` |
| CI validation (no LAN) + cW* mesh matrix | `bash scripts/verify/run-all-validation.sh [--skip-genesis]` — same gate as **Gitea** push/PR: `run-all-validation` in `.gitea/workflows/deploy-to-phoenix.yml` (push) and `.gitea/workflows/validate-on-pr.yml` (PR only), **`runs-on: ubuntu-latest-heavy`** (CT **5700**). After deploy, optional **Cloudflare** `cloudflare-sync` (Phoenix + `PHOENIX_REPO_ROOT`; set `PHOENIX_CLOUDFLARE_SYNC=1` on that host) via `scripts/deployment/gitea-cloudflare-sync.sh`. Steps: dependencies, **pnpm workspace/lockfile check**, config, cW* mesh (when pair-discovery exists), **`node cross-chain-pmm-lps/scripts/validate-deployment-status.cjs`**, optional genesis. Manual only: `bash scripts/verify/build-cw-mesh-deployment-matrix.sh [--json-out …]` |
| Gitea Actions runners (heavy vs standard pool) | `docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`**5700** `ubuntu-latest-heavy`, **5701** `ubuntu-latest`; apply configs `bash scripts/dev-vm/apply-act-runner-config.sh`; snapshot `bash scripts/dev-vm/act-runner-resource-snapshot.sh` |
| FQDN / NPM E2E verifier | `bash scripts/verify/verify-end-to-end-routing.sh --profile=public` — inventory: `docs/04-configuration/E2E_ENDPOINTS_LIST.md`. Gitea Actions URLs (no API): `bash scripts/verify/print-gitea-actions-urls.sh` | | FQDN / NPM E2E verifier | `bash scripts/verify/verify-end-to-end-routing.sh --profile=public` — inventory: `docs/04-configuration/E2E_ENDPOINTS_LIST.md`. Gitea Actions URLs (no API): `bash scripts/verify/print-gitea-actions-urls.sh` |
| Submodule trees clean (CI / post-merge) | `bash scripts/verify/submodules-clean.sh` | | Submodule trees clean (CI / post-merge) | `bash scripts/verify/submodules-clean.sh` |
| Submodule + explorer remotes | `docs/00-meta/SUBMODULE_HYGIENE.md` | | Submodule + explorer remotes | `docs/00-meta/SUBMODULE_HYGIENE.md``mcp-proxmox` uses **Gitea** `https://gitea.d-bis.org/d-bis/mcp-proxmox.git` (not the old GitHub-only URL). `cross-chain-pmm-lps-publish` is a **worktree** of `cross-chain-pmm-lps`, not a submodule. |
| smom-dbis-138 `.env` in bash scripts | Prefer `source smom-dbis-138/scripts/lib/deployment/dotenv.sh` + `load_deployment_env --repo-root "$PROJECT_ROOT"` (trims RPC URL line endings). From an interactive shell: `source smom-dbis-138/scripts/load-env.sh`. Proxmox root scripts: `source scripts/lib/load-project-env.sh` (also trims common RPC vars). | | smom-dbis-138 `.env` in bash scripts | Prefer `source smom-dbis-138/scripts/lib/deployment/dotenv.sh` + `load_deployment_env --repo-root "$PROJECT_ROOT"` (trims RPC URL line endings). From an interactive shell: `source smom-dbis-138/scripts/load-env.sh`. Proxmox root scripts: `source scripts/lib/load-project-env.sh` (also trims common RPC vars). |
| Sankofa portal → CT 7801 (build + restart) | `./scripts/deployment/sync-sankofa-portal-7801.sh` (`--dry-run` first); sets `NEXTAUTH_URL` on CT via `sankofa-portal-ensure-nextauth-on-ct.sh` | | Sankofa portal → CT 7801 (build + restart) | `./scripts/deployment/sync-sankofa-portal-7801.sh` (`--dry-run` first); sets `NEXTAUTH_URL` on CT via `sankofa-portal-ensure-nextauth-on-ct.sh` |
| Gov Portals (CT **7804** @ `IP_GOV_PORTALS_DEV`, r630-04): rebase from Gitea then build + sync | `./scripts/deployment/gov-portals-git-pull-rebase.sh` then `./scripts/deployment/sync-gov-portals-ct-7804-from-git.sh``GITEA_TOKEN` in `.env`; sync defaults to **pull --rebase** (use `--reset-hard` to mirror Gitea and discard local changes); optional `--skip-fetch`. Source-of-truth and Phoenix paths: `docs/04-configuration/GITEA_GOV_PORTALS_LIVE_SOURCE_OF_TRUTH.md`; ops template: `docs/04-configuration/GOV_PORTALS_XOM_DEV_DEPLOYMENT.md`. Optional Gitea tag: `scripts/deployment/gitea-tag-repo-release.sh`. |
| CCIP relay (r630-01 host) | Unit: `config/systemd/ccip-relay.service``/etc/systemd/system/ccip-relay.service`; `systemctl enable --now ccip-relay` | | CCIP relay (r630-01 host) | Unit: `config/systemd/ccip-relay.service``/etc/systemd/system/ccip-relay.service`; `systemctl enable --now ccip-relay` |
| TsunamiSwap VM 5010 check | `./scripts/deployment/tsunamiswap-vm-5010-provision.sh` (inventory only until VM exists) | | TsunamiSwap VM 5010 check | `./scripts/deployment/tsunamiswap-vm-5010-provision.sh` (inventory only until VM exists) |
| Solana native SOL (robust JSON-RPC submit) | `scripts/lib/solana_jsonrpc.py` (stdlib `sendTransaction`), `./scripts/deployment/solana-transfer-native.py` (sign with `solders`). Install: `pip install -r scripts/lib/requirements-solana-ops.txt`. Avoids solana-py `SendTransactionResp` parse failures on RPCs that return only a signature string. Env: `SOLANA_RPC_URL`, `SOLANA_KEYPAIR_PATH` via `source scripts/lib/load-project-env.sh`. |
| The Order portal (`https://the-order.sankofa.nexus`) | OSJ management UI (secure auth); source repo **the_order** at `~/projects/the_order`. NPM upstream defaults to **order-haproxy** CT **10210** (`IP_ORDER_HAPROXY:80`); use `THE_ORDER_UPSTREAM_*` to point at the Sankofa portal if 10210 is down. Provision HAProxy: `scripts/deployment/provision-order-haproxy-10210.sh`. **`www.the-order.sankofa.nexus`** → **301** apex (same as www.sankofa / www.phoenix). | | The Order portal (`https://the-order.sankofa.nexus`) | OSJ management UI (secure auth); source repo **the_order** at `~/projects/the_order`. NPM upstream defaults to **order-haproxy** CT **10210** (`IP_ORDER_HAPROXY:80`); use `THE_ORDER_UPSTREAM_*` to point at the Sankofa portal if 10210 is down. Provision HAProxy: `scripts/deployment/provision-order-haproxy-10210.sh`. **`www.the-order.sankofa.nexus`** → **301** apex (same as www.sankofa / www.phoenix). |
| Portal login + Keycloak systemd + `.env` (prints password once) | `./scripts/deployment/enable-sankofa-portal-login-7801.sh` (`--dry-run` first) | | Portal login + Keycloak systemd + `.env` (prints password once) | `./scripts/deployment/enable-sankofa-portal-login-7801.sh` (`--dry-run` first) |
| Completable (no LAN) | `./scripts/run-completable-tasks-from-anywhere.sh` | | Completable (no LAN) | `./scripts/run-completable-tasks-from-anywhere.sh` |
| Operator (LAN + secrets) | `./scripts/run-all-operator-tasks-from-lan.sh` (use `--skip-backup` if `NPM_PASSWORD` unset) | | **EI matrix → mainnet cWUSDC transfer** | `./scripts/deployment/send-cwusdc-ei-matrix-wallets.sh``transfer` from signer to grid slice (`--send-raw` / `--total-send-raw`); resume: `continue-cwusdc-ei-matrix-wallets.sh`. |
| **EI matrix top-up TSV from audit** | `scripts/verify/build-ei-matrix-cwusdc-topup-tsv-from-audit-json.sh` — rebuilds `ei-matrix-cwusdc-topup-*.tsv` from `ei-matrix-readiness-audit-latest.json`. |
| **EI matrix → Multicall3 cWUSDC (preferred)** | `./scripts/deployment/send-cwusdc-ei-matrix-multicall-batches.sh` — Multicall3 `aggregate3` + `transferFrom`; `EI_MATRIX_MC_CHUNK` (default 200). Core: `scripts/lib/ei_matrix_multicall3_cwusdc_batch.py`. Fallback: `send-cwusdc-ei-matrix-targeted.sh` (1 tx/wallet). Pipeline: `pipeline-ei-matrix-remediate-cwusdc-from-audit.sh --multicall`. |
| **EI matrix → mainnet cWUSDC mint** | `./scripts/deployment/pipeline-ei-matrix-mint-cwusdc.sh` — mints `CWUSDC_MAINNET` to each wallet in `config/pmm-soak-wallet-grid.json` (see `docs/03-deployment/EI_MATRIX_CWUSDC_MINT_PIPELINE.md`). Core: `mint-cwusdc-ei-matrix-wallets.sh`; resume: `continue-mint-cwusdc-ei-matrix-wallets.sh`. Not a 138 bridge. |
| **EI matrix on-chain readiness (cWUSDC / 138 cUSDC)** | `./scripts/verify/run-ei-matrix-full-readiness-audit.sh` — full grid, sharded (`--shard-size`, env `EI_MATRIX_AUDIT_*`), writes JSON + gap index files. Ad hoc: `./scripts/verify/audit-ei-matrix-onchain-readiness.sh`. Optional CI: `EI_MATRIX_ONCHAIN_AUDIT_CI=1` in `scripts/verify/run-all-validation.sh`. Core: `scripts/lib/ei_matrix_onchain_readiness_audit.py`. |
| smom-dbis-138 root `forge test` | Uses `foundry.toml` `[profile.default] skip` for legacy Uniswap V2 vendor trees (0.5/0.6 solc); scoped work still uses `bash scripts/forge/scope.sh …` |
| cWUSDT Mainnet USD pricing (on-chain + runbook) | `./scripts/deployment/price-cw-token-mainnet.sh``docs/03-deployment/CW_TOKEN_USD_PRICING_RUNBOOK.md` |
| Deployer LP balances (mesh inventory) | `python3 scripts/deployment/check-deployer-lp-balances.py` — scans `deployment-status.json` + `reports/extraction/promod-uniswap-v2-live-pair-discovery-latest.json`; **UniV2** `lpToken` = pair; **DODO DVM** LP shares = `balanceOf(pool)`; on failure, probes `_BASE_TOKEN_` / `_BASE_CAPITAL_TOKEN_` / `_QUOTE_CAPITAL_TOKEN_` + extra public RPCs (`--no-resolve-dodo` skips; `--chain-id N` for one chain). JSON: `lpTokenAddress`, `lpResolution`, `lpBalances[]`. Use `--deployer` / `DEPLOYER_ADDRESS` if no `PRIVATE_KEY` |
| Etherscan Value $0 for Mainnet `cW*` | Listing path (CoinGecko/CMC), not a contract toggle — `docs/04-configuration/coingecko/ETHERSCAN_USD_VALUE_MAINNET_TOKENS.md` |
| Verify contracts on explorers (all networks) | `cd smom-dbis-138 && ./scripts/deployment/verify-all-networks-explorers.sh` — Blockscout 138, Etherscan + multichain `cW*`, Avax/Arb bridges, optional Cronos/Wemix/CCIPLogger |
| Operator (LAN + secrets) | `./scripts/run-all-operator-tasks-from-lan.sh` (use `--skip-backup` if `NPM_PASSWORD` unset; backup also needs `NPM_EMAIL` in `.env`) |
| Remote SSH to dev VM (5700 / `192.168.11.59`) for runner & deploy API | [DEV_VM_SSH_REMOTE_ACCESS.md](docs/04-configuration/DEV_VM_SSH_REMOTE_ACCESS.md); **move workstation `~/projects` → Dev VM:** [DEV_VM_WORKSTATION_MIGRATION_RUNBOOK.md](docs/04-configuration/DEV_VM_WORKSTATION_MIGRATION_RUNBOOK.md), `scripts/deployment/sync-local-projects-to-dev-vm.sh` (rsync code 23 on `--delete-remote`: `scripts/deployment/fix-dev-vm-srv-projects-ownership.sh`) |
| Cloudflare bulk DNS → `PUBLIC_IP` | `./scripts/update-all-dns-to-public-ip.sh` — use **`--dry-run`** and **`--zone-only=sankofa.nexus`** (or `d-bis.org` / `mim4u.org` / `defi-oracle.io`) to limit scope; see script header. Prefer scoped **`CLOUDFLARE_API_TOKEN`** (see `.env.master.example`). | | Cloudflare bulk DNS → `PUBLIC_IP` | `./scripts/update-all-dns-to-public-ip.sh` — use **`--dry-run`** and **`--zone-only=sankofa.nexus`** (or `d-bis.org` / `mim4u.org` / `defi-oracle.io`) to limit scope; see script header. Prefer scoped **`CLOUDFLARE_API_TOKEN`** (see `.env.master.example`). |
## Git submodules ## Git submodules

Submodule MEV_Bot updated: 682bd76349...f126ae50b4

View File

@@ -90,6 +90,14 @@ From the root directory, you can run:
- `pnpm frontend:build` - Build the ProxmoxVE frontend for production - `pnpm frontend:build` - Build the ProxmoxVE frontend for production
- `pnpm frontend:start` - Start the production frontend server - `pnpm frontend:start` - Start the production frontend server
### Mission Control (unified operator console)
- `pnpm mission-control:dev` - Next.js console on **http://localhost:3010** (launchpad + guided runbooks + live run trace + audit ZIP)
- `pnpm mission-control:build` / `pnpm mission-control:start` - Production build and server
- `pnpm mission-control:test` - Executor smoke test (real allowlisted child process)
See [mission-control/README.md](mission-control/README.md) and [mission-control/TIMELINE.md](mission-control/TIMELINE.md).
### Testing ### Testing
- `pnpm test` - Run tests (if available) - `pnpm test` - Run tests (if available)

1
atomic-swap-dapp Submodule

Submodule atomic-swap-dapp added at 3c6900d8ee

View File

@@ -20,7 +20,5 @@ liveBridgeRoute,138-WETH-25-ccip,live,bridge,138,25,WETH,0xC02aaA39b223FE8D0A0e5
liveBridgeRoute,138-WETH-42220-ccip,live,bridge,138,42220,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,CCIP,0xcacfd227A040002e49e2e01626363071324f820a,LiFi,,,, liveBridgeRoute,138-WETH-42220-ccip,live,bridge,138,42220,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,CCIP,0xcacfd227A040002e49e2e01626363071324f820a,LiFi,,,,
liveBridgeRoute,138-WETH-651940-alltra,live,bridge,138,651940,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,ALT,0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc,LiFi,,,, liveBridgeRoute,138-WETH-651940-alltra,live,bridge,138,651940,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,WETH,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,,ALT,0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc,LiFi,,,,
liveBridgeRoute,138-WETH10-1-ccip,live,bridge,138,1,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,,CCIP,0xe0E93247376aa097dB308B92e6Ba36bA015535D0,LiFi,,,, liveBridgeRoute,138-WETH10-1-ccip,live,bridge,138,1,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,WETH10,0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f,,CCIP,0xe0E93247376aa097dB308B92e6Ba36bA015535D0,LiFi,,,,
blockedOrPlannedRoute,138-compliant-stable-to-weth-bridgeable,blocked,swap-bridge-swap,138,1,cUSDT|cUSDC|cEURT,,,,,,,,,,,"No live public cUSDT/WETH, cUSDC/WETH, or cEURT/WETH pool on Chain 138." blockedOrPlannedRoute,651940-public-dex-routes,planned,swap,651940,651940,,,,,,,,,,,,Alltra same-chain settlement remains documentation-only: no deployed PMM or Uniswap venue inventory is published in canonical deployment status, and HYDX/AlltraDEX router-factory-pool addresses are still not committed in-repo.
blockedOrPlannedRoute,651940-public-dex-routes,planned,swap,651940,651940,,,,,,,,,,,,Uniswap V2/V3 and DODO are env placeholders only; no pool addresses are documented in-repo. blockedOrPlannedRoute,138-weth-1111-ccip,planned,bridge,138,1111,,,,,,,,,,,,"Wemix bridge contracts are deployed and destinations are wired, but the current Chain 138 CCIP router still rejects the Wemix selector with `CCIPRouter: chain not supported`; the WEMIX-side LINK balances are also zero and no successful proof transfer has been recorded."
blockedOrPlannedRoute,cw-edge-pools-public-chains,planned,swap,1,43114,,,,,,,,,,,,"cW* token addresses exist on several public chains, but deployment-status.json contains no PMM pools."
blockedOrPlannedRoute,138-weth-1111-ccip,planned,bridge,138,1111,,,,,,,,,,,,Wemix bridge is pending funding and deployment.
1 kind routeId status routeType fromChainId toChainId tokenInSymbol tokenInAddress tokenOutSymbol tokenOutAddress hopCount bridgeType bridgeAddress aggregatorFamilies tags intermediateSymbols legRefs notesOrReason
20 liveBridgeRoute 138-WETH-42220-ccip live bridge 138 42220 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 CCIP 0xcacfd227A040002e49e2e01626363071324f820a LiFi
21 liveBridgeRoute 138-WETH-651940-alltra live bridge 138 651940 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 ALT 0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc LiFi
22 liveBridgeRoute 138-WETH10-1-ccip live bridge 138 1 WETH10 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f WETH10 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f CCIP 0xe0E93247376aa097dB308B92e6Ba36bA015535D0 LiFi
23 blockedOrPlannedRoute 138-compliant-stable-to-weth-bridgeable 651940-public-dex-routes blocked planned swap-bridge-swap swap 138 651940 1 651940 cUSDT|cUSDC|cEURT No live public cUSDT/WETH, cUSDC/WETH, or cEURT/WETH pool on Chain 138. Alltra same-chain settlement remains documentation-only: no deployed PMM or Uniswap venue inventory is published in canonical deployment status
24 blockedOrPlannedRoute 651940-public-dex-routes 138-weth-1111-ccip planned swap bridge 651940 138 651940 1111 Uniswap V2/V3 and DODO are env placeholders only; no pool addresses are documented in-repo. Wemix bridge contracts are deployed and destinations are wired, but the current Chain 138 CCIP router still rejects the Wemix selector with `CCIPRouter: chain not supported`; the WEMIX-side LINK balances are also zero and no successful proof transfer has been recorded.
blockedOrPlannedRoute cw-edge-pools-public-chains planned swap 1 43114 cW* token addresses exist on several public chains, but deployment-status.json contains no PMM pools.
blockedOrPlannedRoute 138-weth-1111-ccip planned bridge 138 1111 Wemix bridge is pending funding and deployment.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
{
"description": "Copy to config/all-mainnet-canary-evidence.json after live canary swaps. Each row needs real transaction hashes and observed balance deltas.",
"evidence": [
{
"poolId": "651940-uniswap_v2-wall-ausdc",
"status": "canary_passed",
"generatedAt": "2026-04-29T00:00:00.000Z",
"canaryTransactions": [
{
"amountLabel": "seed",
"txHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"sourceToken": "WALL",
"destinationToken": "AUSDC",
"observedInputRaw": "0",
"observedOutputRaw": "0"
}
],
"notes": [
"Replace with real canary transaction evidence before applying."
]
}
]
}

View File

@@ -0,0 +1,498 @@
{
"description": "ALL Mainnet canary evidence recorded from live canary transactions executed with deployer wallet 0x4A666F96fC8764181194447A7dFdb7d471b301C8.",
"evidence": [
{
"poolId": "651940-dodo_pmm-wall-ausdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x727cea66f601b514b0d82c4bc93c29fbc09047e8185c146a05564dce7916829c",
"fundingTransferTxHash": "0x65f8d2e15556c26b46dd7323a90cb174279fc6bd0e7002a868553dc990bfa656",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet DODO PMM WALL/AUSDC."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-wall-ausdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x0b76149f25e36919637fbeab10056e45d8ab7757454174966842c3f52f53dd5c",
"approvalTxHash": "0xc33d872d15628cfe521552ccc9a4b908f31df59189764468775b4557826514b6",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDC",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 WALL/AUSDC."
],
"status": "production"
},
{
"poolId": "651940-dodo_pmm-wall-ausdt",
"generatedAt": "2026-04-30T06:58:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6b74c3b6816eb67409268a6e3b108fd631d278baf0fd57524a63c60c995bded3",
"fundingTransferTxHash": "0x2e1540c484abac9049e383a16fc35a5b6b81a33bd70183b80b20f94533dbe141",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "AUSDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet DODO PMM WALL/AUSDT."
],
"status": "production"
},
{
"poolId": "137-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x4f68cdb0502b0fd50602013e54cbf898556a5c1181d8009f9b0c166dfccf5ce7",
"fundingTransferTxHash": "0x2b2721dd505f82488b05f32810f7e94b3a712e9b459b638be9b8ea34c20925d9",
"amountInRaw": "1",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Polygon DODO PMM cWUSDC/USDC."
],
"status": "production"
},
{
"poolId": "137-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-29T04:41:13.993Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x9c946c7c912e2eabe960c752041b533948e85e2a1603c80de80c5b0ee447908d",
"fundingTransferTxHash": "0xcac8b9187325869f164f6b7cd5464fcf46dce6be83ef04d760e7ecc21de7d40d",
"amountInRaw": "1",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Polygon DODO PMM cWUSDT/USDT."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-usdt-ausdc",
"generatedAt": "2026-04-30T07:30:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xa5479400c203922b0e29a4c438daeeeef6f99b847d617f029e7978c1beba6b2b",
"approvalTxHash": "0xe4e73ff7d9c4a998e4cca1fcbf847d351171c0c026b11e798a0c1dc2bb6b4f12",
"fundingSwapTxHash": "0x39bddcca6160e2df5c7595350f9d911c73e0e7bfe59595fae2c3248576962d5b",
"fundingApprovalTxHash": "0x238bae3818d16a95711c19657dbd08bc076ef3fde7fedb7291ed514d2e090684",
"amountInRaw": "1000000",
"tokenIn": "USDT",
"tokenOut": "AUSDC",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 USDT/AUSDC after acquiring USDT inventory via AUSDC/USDT."
],
"status": "production"
},
{
"poolId": "651940-uniswap_v2-wall-usdt",
"generatedAt": "2026-04-30T07:30:00Z",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x7b6a3d5dedc775e9b0f73de4e0a89bdd004f82c451d7cccf1e2178e5893d487c",
"approvalTxHash": "0xdd7985b4535915523831f989e054e6333af6b84e589c67791e73cce7acbff6a6",
"amountInRaw": "1000000",
"tokenIn": "WALL",
"tokenOut": "USDT",
"executor": "UniswapV2Router.swapExactTokensForTokens"
}
],
"notes": [
"Tiny live canary swap executed on ALL Mainnet Uniswap V2 WALL/USDT."
],
"status": "production"
},
{
"poolId": "42220-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T00:00:00.000-07:00",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x32d3869f987d558e392fd01aab77968d9cad1d90da71be1db90061f58d5c14b1",
"fundingTransferTxHash": "0x8ecd2a68f5dc3f2ab471ccc7ea8fdce16064029b6792bce7a387d943326fa1d6",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Celo DODO PMM cWUSDC/USDC after deployer-funded seed liquidity."
],
"status": "production"
},
{
"poolId": "42220-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T00:00:00.000-07:00",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x0498a0484f6707e0f8019b8803a8aed932f33f587a57186cc37bcdc594393094",
"fundingTransferTxHash": "0xd4182a6e116df30544097851892f379d67af2b33fc2374bb0204a6450dcecea4",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Tiny live canary swap executed on Celo DODO PMM cWUSDT/USDT after deployer-funded seed liquidity."
],
"status": "production"
},
{
"poolId": "56-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x85a62d3d5b23878ec17a6fa7b89e7f8218970cae7a99a9b4b7fd4bd9756e70ea",
"fundingTransferTxHash": "0x86081d0142d9d35062873599754cd7ea70f02449c002fa4f94f5673cccafdc6c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "56-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x4a1373fb637f26bb2e9e1f05db333081ec9beeb70d03f7085c57700902ab41e3",
"fundingTransferTxHash": "0xb4b952d588be03f8a59bfb38cc71311d2191de86373f59248b11f9b9c59bf1bc",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "8453-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xe1fd7a1268cbb205ef3f47cc730cc1a06b5b81f491fc86ad6a2c7cef355c0752",
"fundingTransferTxHash": "0xe2ffeff928685f8fc4c050e0c6736d10c0ea48a65d65fe7c2ea560b3729ce5b8",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "8453-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6c9e3129cd8b9f81022b27160e3bbce828f033afb40b670742318df67b309126",
"fundingTransferTxHash": "0xa6b837616c42073f6afb85bc0a6a4cab77dfe1e3925fd5bfbe7d1a92c31c4f57",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "42161-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xb27ffc20e1b993751342d7a76da70c1ec6190a4f67f52313b36beb0e9d49a12a",
"fundingTransferTxHash": "0x6cbeec16f67bb92df6bfbe0659c3d6098c96bd32b5917d001fb53587fa988d8a",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "43114-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xfdbea3b4a196335b0b128befbd43a17916f2ec95787ab99651cbfd355e2bd2e5",
"fundingTransferTxHash": "0x4bafb7ecf6988bac594860bb9d2f33030557b467d09c371033ae4f4867469550",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "43114-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x6aa323b5d4abae31ef13f2d01972725fa8c939aee9fbd8326aad4910e3a33c91",
"fundingTransferTxHash": "0x8f1d905595aa540e32bcefd03a146dca39bce6aafe6d14d5b6731c583cb922f6",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "25-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x3d4fbd2ffdec9b2402cfa391b49dab9918ed30def3cd6edc43e4d6cae502df72",
"fundingTransferTxHash": "0x539702d9d5808c579023bc52f54bacb0327d886b6f969ae5d2830bd286749692",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "25-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xd97ce616c7074301d66163a880798bf6a2165140320ccc440f80581972915fe0",
"fundingTransferTxHash": "0x3beff83366f24ba3fa0cec70aaae08b3edce1d1e8d56a9fbd094de97d5d653e7",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "100-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xc63f257b2dc91621c4a260af3b88068ae92d2390cbbf44b4a971551b4b8b1c21",
"fundingTransferTxHash": "0x4c2bfe8c3cbe4d35121489448fd93d7d61e48812574485c0a4afe3aff4e7522e",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "100-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:05:02.700Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x29538d2cbd34b2f726fa8f696037dd176e0c463d7cc98ee6d4686182b0602b7d",
"fundingTransferTxHash": "0x864c92f1ef26b949d6ad4178e063846bf9c85bb9d5d516de4e63e2afb147fc48",
"amountInRaw": "100",
"tokenIn": "cWUSDT",
"tokenOut": "USDT",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "1-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:15:42.476Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0xb485735ec59594e7a83d91feb98350cac490d28b0fc0418674d29e64dd93f0a5",
"fundingTransferTxHash": "0x80b2e141625a78c870ad80875ccc3fab0aa3d4ed6b64e324239fc9b30caed54c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "1-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:15:42.476Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "quote_to_base",
"txHash": "0x6407c89bed9b1631a793c63e0a1f17d8be994eda7b56dbc25b94377df4dada9a",
"fundingTransferTxHash": "0x829936195c802b93b385fb9bb1c75ed3e657319a7e89433a1e9e2581761b49ea",
"amountInRaw": "100",
"tokenIn": "USDT",
"tokenOut": "cWUSDT",
"executor": "MockDVMPool.transfer_then_sellQuote"
}
],
"notes": [
"Replacement pool reverse canary swap executed after replacing nonstandard DODO surface; quote-to-base path avoids mainnet USDT non-standard transfer return behavior on sellBase."
],
"status": "production"
},
{
"poolId": "42161-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T11:18:00.000Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"status": "production",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x1c8aee3f0a3d7c3dfd1c53471b65a56fe34d514b84721fef2eafd40581259997",
"fundingTransferTxHash": "0x020a5c922757816f82542cd0d0e623b8120db9b2816de528b110854d3164cd9f",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "DODO_DVM.transfer_then_sellBase"
}
],
"notes": [
"Official DODO DVM canary swap executed after DODOAtomicSeeder funding."
]
},
{
"poolId": "10-dodo_pmm-cwusdc-usdc",
"generatedAt": "2026-04-30T09:24:25.038Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "base_to_quote",
"txHash": "0x8b27405ff031288cb8f298309b10742efc844ab22d515c731a61c0e7054295e9",
"fundingTransferTxHash": "0xf7f089b5e1aa6b52f414de874ebd94f6f7b23da1dfc9158e9da63b21ea9aa10c",
"amountInRaw": "100",
"tokenIn": "cWUSDC",
"tokenOut": "USDC",
"executor": "MockDVMPool.transfer_then_sellBase"
}
],
"notes": [
"Replacement pool canary swap executed on Optimism after replacing nonstandard DODO surface."
],
"status": "production"
},
{
"poolId": "10-dodo_pmm-cwusdt-usdt",
"generatedAt": "2026-04-30T09:36:38.117Z",
"sourceFile": "config/all-mainnet-canary-evidence.json",
"canaryTransactions": [
{
"direction": "quote_to_base",
"txHash": "0xf3244685f8e0a0704d549a2bf9a980380c5fb06611e1765e77caf1a62238b506",
"fundingTransferTxHash": "0xdb912224b13137710b1723ff3b5fc9c7b752a642ffc1fc4a9e1a277a0bedf147",
"amountInRaw": "100",
"tokenIn": "USDT",
"tokenOut": "cWUSDT",
"executor": "MockDVMPool.transfer_then_sellQuote"
}
],
"notes": [
"Replacement pool reverse canary swap executed on Optimism after retained seed remediation and successful buyShares."
],
"status": "production"
}
]
}

View File

@@ -0,0 +1,147 @@
{
"name": "ALL Mainnet Enhanced Router Deployment Evidence",
"version": "0.1.0",
"generatedAt": "2026-04-29T05:52:00Z",
"chainId": 651940,
"network": "ALL Mainnet (Alltra)",
"evmVersion": "paris",
"reason": "ALL Mainnet RPC/runtime rejected Cancun bytecode with BadInstruction; Paris bytecode was used for live deployment.",
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"contracts": {
"dodoPmmProvider": {
"address": "0x36F65027D21e151F0b7810bae1E94b225AC7Ba9e",
"transactionHash": "0xd2e69b556e84786338fd526ba149d1f88488a07190d081f935d7fffbe9d1b2e0",
"constructorArgs": {
"dodoPmmIntegration": "0x8528E268F3b8C94208d09D131ACa3Ea93Bad57c7",
"admin": "0x4A666F96fC8764181194447A7dFdb7d471b301C8"
}
},
"enhancedSwapRouterV2": {
"address": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"transactionHash": "0x2c5d409b6e06cbfb69d8e251240d830d624625a4d505cc963edb65b55623bc79",
"constructorArgs": {
"weth": "0x798F6762BB40d6801A593459d08F890603D3979C",
"usdt": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"usdc": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"daiSlot": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"daiSlotNote": "AUSDT is used as the third stablecoin slot for ALL Mainnet; no canonical ALL DAI token is committed."
}
},
"intentBridgeCoordinatorV2": {
"address": "0x9276ae27d9c624B43dbE43494f34A9c5F0233a0B",
"transactionHash": "0x5695b3f9ec59e09d5e4f8569ea8af31578ced0a56aba885a7c475a5187aadd3d"
},
"adapters": {
"dodo": {
"address": "0x391D192BED6188c4DaB4C93c078bD18432687474",
"transactionHash": "0xc4a036a6fff5eb9886e797559017cf8709505d13f39f5feddf055967cf9b4648",
"enabled": true
},
"dodoV3": {
"address": "0x97Ce874142625134aEEBDF42B5E7bB806e731D25",
"transactionHash": "0x5ad21f59b823adbc2cebc1e9c45ab3f8f0f1286e46a290c09c0667f499577136",
"enabled": false
},
"uniswapV3": {
"address": "0xBF75F3401de20bebBB1CBb678499941807E3E040",
"transactionHash": "0x081b86cc99306e694ef9daa3d3f9dc7f35ce91dce08c57ddaedcdd4b9a00008d",
"enabled": false
},
"balancer": {
"address": "0xDE7F15AF1D84e3694f7E966293d20e64Fc04d9fF",
"transactionHash": "0xa4f30c029fa062ae1b481786950ab0243541ce5b0b859fc534b55f7b444ba83c",
"enabled": false
},
"curve": {
"address": "0x753D2b0a723992D7B174D6e19F7b7Cb74be8D61a",
"transactionHash": "0xcdf0ff9723aedab96aeaa0b8f57f25ad6075f9467e0d19f3b842fb17c0bb6a79",
"enabled": false
},
"oneInch": {
"address": "0x487090bbb7d17875281692d582a11B445b3A7AC7",
"transactionHash": "0x4d0dd682b8e22812a258fee497c07e5cecfbc1228f413e67d9fe7b24f327a926",
"enabled": false
}
}
},
"routes": [
{
"poolId": "651940-dodo_pmm-wall-ausdc",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "AUSDC",
"address": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881"
},
"poolAddress": "0x7b81Dad382BBB57e91a80389bA48e41Abd10794F",
"status": "quoteable",
"verification": {
"amountInRaw": "1000000",
"amountOutRaw": "1999999",
"slippageBps": 30,
"routerQuoteExecutable": true
}
},
{
"poolId": "651940-dodo_pmm-wall-ausdt",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "AUSDT",
"address": "0x015B1897Ed5279930bC2Be46F661894d219292A6"
},
"poolAddress": "0x8D9bB238B6a76a438B116Ff22F5F7535191D49b4",
"status": "quoteable",
"verification": {
"amountInRaw": "1000000",
"amountOutRaw": "1999999",
"slippageBps": 30,
"routerQuoteExecutable": true
}
}
],
"providerStatus": {
"enabled": [
"dodo"
],
"disabled": [
"dodoV3",
"uniswapV3",
"balancer",
"curve",
"oneInch",
"partner"
]
},
"remainingOptionalBlockers": [
"HYDX-native router/factory is not deployed or not committed in inventory.",
"Uniswap V3 factory/router/quoter/pool stack is not deployed or not committed in inventory."
],
"disabledRoutes": [
{
"poolId": "651940-dodo_pmm-wall-usdt",
"provider": "dodo",
"tokenA": {
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"tokenB": {
"symbol": "USDT",
"address": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e"
},
"poolAddress": "0x261D7e1447EE88398B2b5a274D49454F5B86800E",
"status": "disabled_wrong_quote_asset",
"reason": "AUSDT is the canonical ALL Mainnet cUSDT surface for this routing set.",
"disabledTransactions": [
"0x79f171ddc9977e99bb894bf7ff7a11a430441cc1285e7ecd747907ef3f23a0c4",
"0xec74f92e287cf1e193e791462f66b35cf9487ece8e343108fbdd3de760dc5c55"
]
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,68 @@
{
"generatedAt": "2026-04-29T06:18:00Z",
"chainId": 651940,
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"fee": 3000,
"tokens": {
"WETH": "0x798F6762BB40d6801A593459d08F890603D3979C",
"WALL": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"AUSDT": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"token0": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"token1": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4"
},
"contracts": {
"nftDescriptorLibrary": "0xb53E8A0A19fB381537c6f28D37b7C2f7DC29EF02",
"nonfungibleTokenPositionDescriptor": "0x2a76C73458A0C11df4e0E43004598480d6D1E768",
"factory": "0xF1a334465C5DD628492780B39Be68D561A9AecA2",
"swapRouter": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"quoter": "0x0ecC56077325863c80cbe516D63e0afAFf7EA579",
"quoterV2": "0x024Ff178BaB7e6fa1794c3A216D2B299C3F295d2",
"nonfungiblePositionManager": "0xD29422211e1f2C1015FBb5dC2004657Dd8318aF6",
"pool": "0x9e0FC06BA367b51a0aBc5c0924306088DBB0e9c4"
},
"transactions": {
"nftDescriptorLibrary": "0x774202382ec2d29cced671b34c2b951682f60d3e60afd7fe64c13488cb341e32",
"nonfungibleTokenPositionDescriptor": "0xc6b98fc36e4c3b1d4d2e80efd4acacc31e2af2ff45de04f9fb066dcfffd380d3",
"factory": "0xb6e46b6d145cc707f12f4cf8980bf81d7b5b8d3bea9416737a7465c186b0fefd",
"swapRouter": "0x5fd7d021e8ac1bad918a1eb470a116f9dc6e750c102a5512e05391858296cc53",
"quoter": "0x0d5c14d3264c5abd70990349911a6eb3076f41feb2db93ccf74b2de022cd087f",
"quoterV2": "0x774327c7e7a7650fbfd9d28a8becbd88f86eb8f942a825980052bc50484aa54c",
"nonfungiblePositionManager": "0xe5be3fa83bd676051e2cc5ff990768d3de87e49a387d94be77352eaf1c38545f"
},
"poolState": {
"sqrtPriceX96": "79228162514264337593543950336",
"tick": 0,
"liquidity": "1000000000000000000"
},
"name": "ALL Mainnet Uniswap V3 Deployment Evidence",
"version": "0.1.0",
"network": "ALL Mainnet (Alltra)",
"evmVersion": "upstream-uniswap-artifacts-solc-0.7.x",
"packageSources": {
"v3Core": "@uniswap/v3-core@1.0.1",
"v3Periphery": "@uniswap/v3-periphery@1.4.4",
"swapRouterContracts": "@uniswap/swap-router-contracts@1.3.1"
},
"poolStateAfterRouterSwap": {
"testedAt": "2026-04-29T06:17:00Z",
"swapRouter": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"direction": "WALL_TO_AUSDT",
"amountInRaw": "1000000",
"amountOutRaw": "996999",
"approveTxHash": "0x572d1c6b2d0cdf6248913cd995e80196fbe0717017411c2251637afbfa825e1f",
"swapTxHash": "0xddf85aed18a6d872ac72d4f57b241e44946881e404f4f17cb7271180c8caa183",
"gasUsed": "119111"
},
"enhancedRouterIntegration": {
"enhancedSwapRouterV2": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"routeConfigured": true,
"providerEnabled": false,
"providerDisabledReason": "Existing UniswapV3RouteExecutorAdapter uses staticcall into the official Uniswap Quoter; the upstream Quoter is callable directly but does not return through that adapter staticcall path. Standalone SwapRouter/Quoter/Pool stack is live; enhanced-router V3 provider remains disabled until adapter quote compatibility is fixed.",
"routeSetTransactions": [
"0xa40b24889ab3ad985936562ee3690dafd14bfb1676ff49806a6fcb45c7704ef5",
"0x848fd6c7cedaebe7787c2f15a931b73afde709dac100cb745eab2d9eaa6da86c"
],
"providerEnableTxHash": "0x4b430081582e1f2db5fedc904b8e90e137480dcae2f1e0a41dd25490f05394c7",
"providerDisableTxHash": "0x78b8ce4fdc296585ace36dd8c8318731cc5526115e712b14d1ad630c4f63aba6"
}
}

View File

@@ -0,0 +1,27 @@
{
"description": "Copy to config/all-mainnet-vault-assignments.json and replace placeholder addresses with approved per-role vaults/multisigs. The apply script refuses placeholders.",
"defaultByRole": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000",
"single_sided_inventory": "0x0000000000000000000000000000000000000000"
},
"byChain": {
"651940": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000",
"single_sided_inventory": "0x0000000000000000000000000000000000000000"
}
},
"byPoolId": {
"651940-uniswap_v2-wall-ausdc": {
"treasury_reserve": "0x0000000000000000000000000000000000000000",
"bridge_liquidity": "0x0000000000000000000000000000000000000000",
"protocol_adapter": "0x0000000000000000000000000000000000000000",
"emergency_withdraw": "0x0000000000000000000000000000000000000000"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"description": "Operational vault assignments generated from smom-dbis-138/.env public addresses. No private material is stored here.",
"defaultByRole": {
"treasury_reserve": "0x74eccf9affb0e0938c2168ebdf7ef63a26964483",
"bridge_liquidity": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8",
"protocol_adapter": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"emergency_withdraw": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"single_sided_inventory": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8"
},
"byChain": {
"651940": {
"treasury_reserve": "0x74eccf9affb0e0938c2168ebdf7ef63a26964483",
"bridge_liquidity": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8",
"protocol_adapter": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"emergency_withdraw": "0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965",
"single_sided_inventory": "0x31884f84555210FFB36a19D2471b8eBc7372d0A8"
}
},
"byPoolId": {}
}

View File

@@ -0,0 +1,973 @@
{
"name": "ALL Mainnet Non-DODO Protocol Surface",
"version": "0.1.0",
"updated": "2026-04-29",
"chainId": 651940,
"network": "ALL Mainnet (Alltra)",
"status": "bridge_live_enhanced_router_partial_swap_inventory_published",
"summary": {
"bridgeOnlyLive": false,
"sameChainSwapInventoryPublished": true,
"notes": [
"The Chain 138 <-> 651940 AlltraAdapter bridge is live.",
"This file documents the known non-DODO Alltra protocol and token surface plus the committed same-chain inventory fragments that have real factory/router/pool addresses in config/all-mainnet-pool-creation-matrix.json.",
"Same-chain inventory publication is partial: production routing remains gated by required vault assignments, funding, live reserve reads, and canary evidence.",
"ALL Mainnet EnhancedSwapRouterV2 is deployed and DODO-backed routes are wired for the committed WALL/AUSDC and WALL/AUSDT DODO PMM pools; the earlier WALL/USDT route is disabled because AUSDT is the canonical ALL Mainnet cUSDT surface."
]
},
"classificationFramework": {
"category": [
"tokenized-fiat",
"stablecoin",
"wrapped-native",
"dex-token",
"defi-token",
"governance-token",
"utility-token",
"rwa-token",
"commodity-token",
"other"
],
"instrumentType": [
"emoney",
"deposit-token",
"fiat-backed-stablecoin",
"wrapped-native",
"protocol-token",
"governance-token",
"utility-token",
"other"
],
"backingAssets": [
"cash",
"cash-equivalents",
"bank-deposits",
"treasuries",
"commodity-reserves",
"protocol-utility",
"native-gas-asset",
"unknown"
],
"metadataDomains": [
"backingMetadata",
"bridgeMetadata",
"cashMetadata",
"commodityMetadata",
"reserveMetadata",
"securityMetadata",
"settlementMetadata"
],
"notes": [
"Use category for the broad asset bucket.",
"Use instrumentType, issuerType, claimType, backingAssets, capabilities, and tags for legal, reserve, and integration semantics.",
"Use cash only as a backing, redemption, or settlement asset descriptor; do not use cash as the token category unless the instrument is literally cash-equivalent legal tender.",
"Use commodityMetadata only when the token directly references or is backed by a commodity reserve.",
"Use securityMetadata for pause/admin/monitoring controls; unknown means not yet committed in this inventory, not absent on-chain.",
"GRU tags use lowercase namespace:value strings and include the version, for example gru:v2."
]
},
"documentedTokens": [
{
"symbol": "AUSDT",
"address": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cAUSDT",
"gruTransportRole": "all-mainnet-primary-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:causdt-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "live-canonical-target",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "cUSDT",
"sourceAddress": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"destinationSymbol": "AUSDT",
"destinationAddress": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"bridgeCanonicalAssetVersion": "gru-v2",
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-or-bridge-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-bridge-or-peg-risk",
"monitoring": [
"peg-deviation",
"bridge-health",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-regulated-ledger-or-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-or-bridge-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "USDT",
"address": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cUSDT",
"gruTransportRole": "all-mainnet-usdt-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:cusdt-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "documented-token-not-canonical-138-to-651940-target",
"bridgeKind": "unknown-or-noncanonical",
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "USDT",
"destinationAddress": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
"adapterAddress": null,
"bridgeCanonicalAssetVersion": null,
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-or-peg-risk",
"monitoring": [
"peg-deviation",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "USDC",
"address": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"decimals": 18,
"category": "tokenized-fiat",
"instrumentType": "fiat-backed-stablecoin",
"issuerType": "token-issuer-unverified",
"currencyCode": "USD",
"claimType": "claim-on-issuer-unverified",
"settlementAssetClass": "fiat",
"backingAssets": [
"cash",
"cash-equivalents"
],
"gruVersion": "v2",
"gruFamilySymbol": "cUSDC",
"gruTransportRole": "all-mainnet-usdc-surface",
"tags": [
"tokenized-fiat",
"fiat:usd",
"backing:cash",
"backing:cash-equivalents",
"gru:v2",
"gru:m1",
"gru:transport",
"gru:all-mainnet",
"gru:cusdc-family"
],
"backingMetadata": {
"backingModel": "fiat-reserve-backed",
"backingAssetClasses": [
"cash",
"cash-equivalents"
],
"backingVerificationStatus": "reserve-disclosure-not-committed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "live-canonical-target",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "cUSDC",
"sourceAddress": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"destinationSymbol": "USDC",
"destinationAddress": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"bridgeCanonicalAssetVersion": "gru-v2",
"bridgeMirroredAssetVersion": "all-mainnet-surface"
},
"cashMetadata": {
"cashRole": "reserve-and-redemption-asset-class",
"currency": "USD",
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "issuer-or-bridge-reserve-unverified",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "pending-disclosure",
"riskTier": "policy-review-required",
"registryStatus": "documented-surface-not-stablecoin-registry-entry"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-issuer-bridge-or-peg-risk",
"monitoring": [
"peg-deviation",
"bridge-health",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "fiat",
"settlementCurrency": "USD",
"settlementFinalityDomain": "off-chain-regulated-ledger-or-issuer-domain",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": true,
"redemptionPath": "issuer-or-bridge-redemption-unverified",
"parRedemption": "unverified"
},
"status": "verified"
},
{
"symbol": "WETH",
"address": "0x798F6762BB40d6801A593459d08F890603D3979C",
"decimals": 18,
"category": "wrapped-native",
"instrumentType": "wrapped-native",
"issuerType": "wrapper-contract",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"native-gas-asset"
],
"gruVersion": null,
"tags": [
"wrapped-native",
"gas:eth",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "wrapped-native-escrow",
"backingAssetClasses": [
"native-gas-asset"
],
"backingVerificationStatus": "wrapper-contract-address-verified",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "mapped-138-to-651940",
"bridgeKind": "AlltraAdapter",
"sourceChainId": 138,
"destinationChainId": 651940,
"sourceSymbol": "WETH9",
"sourceAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"destinationSymbol": "WETH",
"destinationAddress": "0x798F6762BB40d6801A593459d08F890603D3979C",
"adapterAddress": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc"
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "native-asset-wrapper-escrow",
"reserveDisclosureRef": null,
"reserveAccountRef": "wrapper-contract-balance",
"proofOfReserveRef": null,
"reserveVerificationStatus": "contract-balance-verifiable-on-chain",
"riskTier": "bridge-and-wrapper-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-bridge-or-wrapper-risk",
"monitoring": [
"bridge-health",
"wrapper-contract-balance",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "ETH",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "unwrap-or-bridge-withdrawal",
"parRedemption": "one-to-one-native-asset-when-wrapper-solvent"
},
"status": "verified"
},
{
"symbol": "WALL",
"address": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"decimals": 18,
"category": "wrapped-native",
"instrumentType": "wrapped-native",
"issuerType": "wrapper-contract",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"native-gas-asset"
],
"gruVersion": null,
"tags": [
"wrapped-native",
"gas:all",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "wrapped-native-escrow",
"backingAssetClasses": [
"native-gas-asset"
],
"backingVerificationStatus": "wrapper-contract-address-verified",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "documented-all-mainnet-native-wrapper",
"bridgeKind": "native-wrapper",
"sourceChainId": 651940,
"destinationChainId": 651940,
"sourceSymbol": "ALL",
"sourceAddress": null,
"destinationSymbol": "WALL",
"destinationAddress": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "native-asset-wrapper-escrow",
"reserveDisclosureRef": null,
"reserveAccountRef": "wrapper-contract-balance",
"proofOfReserveRef": null,
"reserveVerificationStatus": "contract-balance-verifiable-on-chain",
"riskTier": "wrapper-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "corridor-halt-required-for-wrapper-risk",
"monitoring": [
"wrapper-contract-balance",
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "ALL",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "unwrap-to-native-all",
"parRedemption": "one-to-one-native-asset-when-wrapper-solvent"
},
"status": "verified"
},
{
"symbol": "HYDX",
"address": "0x0d9793861AEB9244AD1B34375a83A6730F6AdD38",
"decimals": 18,
"category": "dex-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"dex-token",
"protocol:hydx",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "HYDX",
"destinationAddress": "0x0d9793861AEB9244AD1B34375a83A6730F6AdD38",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes",
"protocol-surface-confirmation"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "HYDX",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "HYBX",
"address": "0x1839f77eBed7F388c7035f7061B4B8Ef0E72317a",
"decimals": 8,
"category": "defi-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"protocol:hybx",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "HYBX",
"destinationAddress": "0x1839f77eBed7F388c7035f7061B4B8Ef0E72317a",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "HYBX",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "CHT",
"address": "0xE59Bb804F4884FcEA183a4A67B1bb04f4a4567bc",
"decimals": 8,
"category": "defi-token",
"instrumentType": "utility-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"utility-token",
"protocol:cht",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "CHT",
"destinationAddress": "0xE59Bb804F4884FcEA183a4A67B1bb04f4a4567bc",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-utility-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "utility-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "CHT",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
},
{
"symbol": "AUDA",
"address": "0x690740f055A41FA7669f5a379Bf71B0cDF353073",
"decimals": 18,
"category": "defi-token",
"instrumentType": "protocol-token",
"issuerType": "protocol",
"settlementAssetClass": "crypto-native",
"backingAssets": [
"protocol-utility"
],
"gruVersion": null,
"tags": [
"defi-token",
"protocol:auda",
"all-mainnet"
],
"backingMetadata": {
"backingModel": "protocol-utility",
"backingAssetClasses": [
"protocol-utility"
],
"backingVerificationStatus": "not-reserve-backed",
"overcollateralizationRequired": false
},
"bridgeMetadata": {
"bridgeStatus": "not-bridge-canonical-in-this-inventory",
"bridgeKind": null,
"sourceChainId": null,
"destinationChainId": 651940,
"sourceSymbol": null,
"sourceAddress": null,
"destinationSymbol": "AUDA",
"destinationAddress": "0x690740f055A41FA7669f5a379Bf71B0cDF353073",
"adapterAddress": null
},
"cashMetadata": {
"cashRole": "none",
"currency": null,
"cashBackingAssertedByRepo": false,
"cashBackingEvidenceRef": null
},
"commodityMetadata": {
"commodityBacked": false,
"commodityType": null,
"commodityUnit": null,
"reserveLocationRef": null
},
"reserveMetadata": {
"reserveModel": "none-protocol-token",
"reserveDisclosureRef": null,
"reserveAccountRef": null,
"proofOfReserveRef": null,
"reserveVerificationStatus": "not-applicable",
"riskTier": "protocol-token-risk",
"registryStatus": "documented-token-surface"
},
"securityMetadata": {
"pauseAuthority": "unknown",
"adminAuthority": "unknown",
"upgradeability": "unknown",
"keyManagement": "unknown",
"emergencyHalt": "routing-halt-required-for-protocol-or-contract-risk",
"monitoring": [
"liquidity-depth",
"contract-admin-changes"
]
},
"settlementMetadata": {
"settlementAssetClass": "crypto-native",
"settlementCurrency": "AUDA",
"settlementFinalityDomain": "chain-finality",
"onChainFinality": "token-transfer-final-on-chain-651940-after-confirmation",
"accountingEvidenceRequired": false,
"redemptionPath": "not-applicable",
"parRedemption": "not-applicable"
},
"status": "verified"
}
],
"protocols": [
{
"name": "AlltraDEX / EnhancedSwapRouter",
"family": "custom_router",
"status": "partial_live_dodo_backed_router_deployed",
"factoryAddress": null,
"routerAddress": "0xb905fEfA56b028221E2Bc248Bbcd41141dc7aeD3",
"coordinatorAddress": "0x9276ae27d9c624B43dbE43494f34A9c5F0233a0B",
"providerAddress": "0x36F65027D21e151F0b7810bae1E94b225AC7Ba9e",
"adapters": {
"dodo": "0x391D192BED6188c4DaB4C93c078bD18432687474",
"dodoV3": "0x97Ce874142625134aEEBDF42B5E7bB806e731D25",
"uniswapV3": "0xBF75F3401de20bebBB1CBb678499941807E3E040",
"balancer": "0xDE7F15AF1D84e3694f7E966293d20e64Fc04d9fF",
"curve": "0x753D2b0a723992D7B174D6e19F7b7Cb74be8D61a",
"oneInch": "0x487090bbb7d17875281692d582a11B445b3A7AC7"
},
"enabledProviders": [
"dodo"
],
"disabledProviders": [
"dodoV3",
"uniswapV3",
"balancer",
"curve",
"oneInch",
"partner"
],
"publishedRoutePoolIds": [
"651940-dodo_pmm-wall-ausdc",
"651940-dodo_pmm-wall-ausdt"
],
"deploymentEvidenceRef": "config/all-mainnet-enhanced-router-deployment.json",
"notes": [
"Documented in docs/11-references/ALL_MAINNET_ROUTING_ENGINE.md as the intended same-chain swap surface.",
"EnhancedSwapRouterV2 is deployed on ALL Mainnet with DODO as the only enabled provider.",
"Optional adapters were deployed for future wiring but are disabled until canonical provider targets and pools are committed.",
"WALL/AUSDC and WALL/AUSDT are funded and quoteable through the router provider path; the earlier WALL/USDT route is disabled because AUSDT is the canonical quote asset."
],
"disabledRoutePoolIds": [
"651940-dodo_pmm-wall-usdt"
]
},
{
"name": "HYDX",
"family": "custom_router",
"status": "token_present_protocol_surface_pending",
"factoryAddress": null,
"routerAddress": null,
"envKeys": [
"CHAIN_651940_HYDX_FACTORY",
"CHAIN_651940_HYDX_ROUTER",
"CHAIN_651940_HYDX_START_BLOCK",
"CHAIN_651940_HYDX_PAIR_CREATED_EVENT"
],
"notes": [
"The HYDX token is documented and verified on ALL Mainnet.",
"The repo expects factory/router discovery via env, but no canonical HYDX-native router inventory is currently committed.",
"HYDX currently has committed same-chain exposure through the ALL Mainnet Uniswap V2 HYDX/WALL pool, not through a dedicated HYDX-native router surface."
]
},
{
"name": "Uniswap V2",
"family": "uniswap_v2",
"status": "partial_live_inventory_published",
"factoryAddress": "0x3C3ED514691C06c89Bf6626B05D22991E8924c93",
"routerAddress": "0xED04Ee8307C0656207AF5aFE3926AE2380052940",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"publishedPoolIds": [
"651940-uniswap_v2-wall-ausdc",
"651940-uniswap_v2-wall-usdt",
"651940-uniswap_v2-usdt-ausdc",
"651940-uniswap_v2-hydx-wall"
],
"notes": [
"Factory/router and multiple pair addresses are committed in config/all-mainnet-pool-creation-matrix.json.",
"Required spend rows remain gated until vault assignments and canary evidence are recorded."
]
},
{
"name": "Uniswap V3",
"family": "uniswap_v3",
"status": "standalone_live_router_quoter_pool_deployed",
"factoryAddress": "0xF1a334465C5DD628492780B39Be68D561A9AecA2",
"routerAddress": "0xe9Ea1B70803c18C4CEb8839D5D68681c7903511B",
"notes": [
"Official Uniswap V3 factory, legacy SwapRouter, Quoter, QuoterV2, NonfungiblePositionManager, and AUSDT/WALL 0.30% pool are deployed on ALL Mainnet.",
"The standalone SwapRouter path was tested with a tiny WALL -> AUSDT canary swap.",
"EnhancedSwapRouterV2 route config was written, but provider 1 remains disabled because the current UniswapV3RouteExecutorAdapter staticcall quote path is incompatible with the upstream Quoter behavior."
],
"quoterAddress": "0x0ecC56077325863c80cbe516D63e0afAFf7EA579",
"quoterV2Address": "0x024Ff178BaB7e6fa1794c3A216D2B299C3F295d2",
"positionManagerAddress": "0xD29422211e1f2C1015FBb5dC2004657Dd8318aF6",
"descriptorAddress": "0x2a76C73458A0C11df4e0E43004598480d6D1E768",
"poolAddress": "0x9e0FC06BA367b51a0aBc5c0924306088DBB0e9c4",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"deploymentEvidenceRef": "config/all-mainnet-uniswap-v3-deployment.json",
"publishedPoolIds": [
"651940-uniswap_v3-wall-ausdt"
],
"enhancedRouterProviderStatus": "disabled_adapter_quote_compatibility_pending"
},
{
"name": "DODO PMM",
"family": "dodo_pmm",
"status": "partial_live_inventory_published",
"factoryAddress": "0x8a3403aef8d40c0F4AfaF6Dc2000A537EbC863c2",
"routerAddress": "0x8528E268F3b8C94208d09D131ACa3Ea93Bad57c7",
"inventoryRef": "config/all-mainnet-pool-creation-matrix.json",
"publishedPoolIds": [
"651940-dodo_pmm-wall-ausdc",
"651940-dodo_pmm-wall-ausdt"
],
"notes": [
"DVM factory, DVM factory adapter, integration/router, and DODO PMM pool addresses are committed in config/all-mainnet-pool-creation-matrix.json; WALL/AUSDT supersedes the earlier WALL/USDT row for canonical spend routing.",
"Required spend rows remain gated until vault assignments, funding, live reserve reads, and canary evidence are recorded."
],
"disabledPoolIds": [
"651940-dodo_pmm-wall-usdt"
]
}
],
"bridgeSurface": {
"adapter": {
"name": "AlltraAdapter",
"address": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"status": "live"
},
"supportedBridgeAssets": [
"cUSDC",
"cUSDT"
]
},
"nextTasks": [
"Keep the disabled WALL/USDT row historical-only unless explicitly re-approved for USDT routing.",
"Commit canonical factory/router metadata once a HYDX-native routing address is confirmed.",
"Deploy or import canonical Uniswap V3 factory/router/quoter/pool inventory before enabling the ALL Mainnet Uniswap V3 adapter.",
"Add pool-level addresses and verification artifacts before enabling public route generation from disabled optional protocol providers."
]
}

View File

@@ -1,6 +1,6 @@
# Node Permissioning — SINGLE SOURCE OF TRUTH for all Besu nodes # Node Permissioning — SINGLE SOURCE OF TRUTH for all Besu nodes
# Must match config/besu-node-lists/static-nodes.json and be deployed to every node. # Must match config/besu-node-lists/static-nodes.json and be deployed to every node.
# Generated by scripts/besu/collect-enodes-from-all-besu-nodes.sh — 34 enodes (incl. Putu RPC 2307/2308 .237/.238). # Generated by scripts/besu/collect-enodes-from-all-besu-nodes.sh — 37 enodes after live adds of 2103 (.217), 1509 (.219), and 1510 (.220).
nodes-allowlist=[ nodes-allowlist=[
"enode://2221dd9fc65c9082d4a937832cba9f6759981888df6798407c390bd153f4332c152ea5d03dd9d9cda74d7990fb3479a5c4ba7166269322be9790eed9ebdcfe24@192.168.11.100:30303", "enode://2221dd9fc65c9082d4a937832cba9f6759981888df6798407c390bd153f4332c152ea5d03dd9d9cda74d7990fb3479a5c4ba7166269322be9790eed9ebdcfe24@192.168.11.100:30303",
@@ -17,8 +17,11 @@ nodes-allowlist=[
"enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303", "enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303",
"enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303", "enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303",
"enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303", "enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303", "enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303",
"enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0", "enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0",
"enode://e871ff3b1f58b9a87122e552b2404e1893bf92ae74d4fa6bc2bd002d0350c506ea452f4aefa1a3497ef32694c4beb48bf8a006d2b82f57649c90b22f59044aad@192.168.11.217:30303?discport=0",
"enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303", "enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303",
"enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303", "enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303",
"enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303", "enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303",

View File

@@ -13,8 +13,11 @@
"enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303", "enode://5f048208071f2a3036128433e1e4a647a7683abd8bc0f27d063e2933ced983accdfc44998666f3be711e4eff27511142d9989775b86cdbe28c79b74409fc36bb@192.168.11.214:30303",
"enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303", "enode://8da1b586e2e98f521f07148d3bb5d81fde151ce3d5738b51bc36e2c81de1aaa5404ce31e991b4393bbe471934f0a9a31f78d1d7c17c1899c3e2dde5e9f16eb24@192.168.11.244:30303",
"enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303", "enode://acd46d31913b8379f075467cd88d2ea650d33474d2f9546426da4a414fe92233584c9d8c2e1ea9962fa4257c20b66c9434d0488e51c632f285205d6a379cfbd6@192.168.11.245:30303",
"enode://8a3337adcc2d177caf3aee26b3b6077d9adf126c580e12f352743ca07828f056ceb1d5fb1a06287e2dbbe19043fcc4b9bdd2ca9ae2a2c9142cf0cc3a549bfc68@192.168.11.219:30303",
"enode://09fe518689c54a34c3dac8aebf3c94bfc390f4bae143a80c57d92a502414df0689d12a2243ff9376c2f44a419894d934b4f47783ced31ea9668522078854e58f@192.168.11.220:30303",
"enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303", "enode://6cdc892fa09afa2b05c21cc9a1193a86cf0d195ce81b02a270d8bb987f78ca98ad90d907670796c90fc6e4eaf3b4cae6c0c15871e2564de063beceb4bbfc6532@192.168.11.211:30303",
"enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0", "enode://e53713bb77ad9f39e8a04b9c82aadddd3449220167f546bca8e9f36f6ebf60ae003e48ac293790e2bd7b0aca382777db9eca61d6f048c04f9dbe65eedb79d893@192.168.11.212:30303?discport=0",
"enode://e871ff3b1f58b9a87122e552b2404e1893bf92ae74d4fa6bc2bd002d0350c506ea452f4aefa1a3497ef32694c4beb48bf8a006d2b82f57649c90b22f59044aad@192.168.11.217:30303?discport=0",
"enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303", "enode://07daf3d64079faa3982bc8be7aa86c24ef21eca4565aae4a7fd963c55c728de0639d80663834634edf113b9f047d690232ae23423c64979961db4b6449aa6dfd@192.168.11.221:30303",
"enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303", "enode://868bd957d6d887944deac0190161a3db7d1316a022e40a2383d5c334aa3fb8bc7ca36f165b6fb377b77d202fec46f3840f2f659b6a47807b7ce9b944b8382f10@192.168.11.232:30303",
"enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303", "enode://688f271d94c7995600ae36d25aa2fb92fea0c52e50e86c598be8966515458c1408b67fba76e1f771073e4774a6e399588443da63394ea25d56e6ca36f2288e00@192.168.11.233:30303",

View File

@@ -0,0 +1,16 @@
# Cosmos ↔ Chain 138 — optional config templates
**Purpose:** Machine- and human-readable templates for [COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md](../../docs/11-references/COSMOS_ECOSYSTEM_CHAIN138_OPTIONAL_INTEGRATIONS_RUNBOOK.md) streams **AE**. These files are **examples** until operators copy them to a secured location and fill live values.
| File | Stream |
|------|--------|
| [corridor-decision.example.md](corridor-decision.example.md) | A (Noble / stable corridor decisions) |
| [osmosis-routing-flags.example.yaml](osmosis-routing-flags.example.yaml) | B (routing mode, limits) |
| [denom-trace.example.json](denom-trace.example.json) | C (IBC trace / hash schema) |
| [cosmwasm-integration.example.md](cosmwasm-integration.example.md) | D (Wasm app pairing) |
| [cross-cutting.example.md](cross-cutting.example.md) | E (relayers, wallets, audits, closure) |
| [STATUS.md](STATUS.md) | Doc vs live completion tracking |
**Gaps and inconsistencies (repo-wide audit, includes PMM/CCIP drift):** [COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md](../../docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md)
Do **not** commit production keys, channel IDs, or signed vendor contracts here.

View File

@@ -0,0 +1,18 @@
# Streams AE — completion status (repo)
**Updated:** 2026-05-09
**Meaning:** **Doc** = runbook + templates in this repo are complete. **Live** = requires operator decisions, contracts, keys, and vendor chains (not asserted here).
**Last LAN operator pass (repo standard scripts, not Cosmos-specific):** `run-completable-tasks-from-anywhere.sh` OK; `run-all-operator-tasks-from-lan.sh --skip-backup` OK (NPMplus proxy refresh + Blockscout verification). Does not deploy IBC or Noble.
| Stream | Doc / template | Live bridge & ops |
|--------|------------------|-------------------|
| **A** Noble / stable corridor | Complete (runbook §3 + `corridor-decision.example.md`) | Not live — operator fills decision record and executes on-chain when adopted |
| **B** Osmosis / Cosmos DEX routing | Complete (runbook §4 + `osmosis-routing-flags.example.yaml`) | Not live — route engine integration when adopted |
| **C** Generic IBC allowlist | Complete (runbook §5 + `denom-trace.example.json`) | Not live — governance allowlist + registry rows when adopted |
| **D** CosmWasm app ↔ 138 | Complete (runbook §6 + `cosmwasm-integration.example.md`) | Not live — per-app deploy when adopted |
| **E** Cross-cutting + program closure | Complete (runbook §7 + `cross-cutting.example.md`) | Partially live only if AD adopted (relayers, audits, etc.) |
**Deferred / out of scope until adoption:** Any mainnet IBC channel, Noble mint path, Osmosis swap execution, CosmWasm ICA, and production relayer keys.
**Full gaps + inconsistency inventory:** [COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md](../../docs/11-references/COSMOS_CHAIN138_GAPS_AND_INCONSISTENCIES.md)

View File

@@ -0,0 +1,43 @@
# Stream A — corridor decision record (example)
Copy to internal wiki or secured docs. Replace all `TODO`.
## A1 Source and bridge stack
| Field | Value |
|-------|--------|
| Source chain | TODO (e.g. Noble) |
| Bridge vendor / stack | TODO (e.g. general-message bridge, CCTP path, or oracle-operated) |
| Vendor documentation URL | TODO |
## A2 138-side contracts and roles
| Role | Address or multisig | Notes |
|------|---------------------|--------|
| Admin | TODO | |
| Pauser | TODO | |
| Oracle or verifier | TODO | |
## A3 Denom → Chain 138 token mapping
| IBC denom / trace | Chain 138 token address | Decimals | Canonical ref |
|-------------------|-------------------------|----------|---------------|
| TODO | TODO | TODO | EXPLORER_TOKEN_LIST_CROSSCHECK + ADDRESS_MATRIX |
## A4 ChainRegistry
| chainIdentifier | adapter (138) | additionalData summary |
|-----------------|----------------|-------------------------|
| TODO | TODO | TODO (channel IDs, bridge contract on counterparty) |
## A5 Liquidity
| Venue | Amount / policy | Owner sign-off |
|-------|-----------------|----------------|
| TODO | TODO | TODO |
## A6 E2E evidence
| Direction | Tx hash / link | Date |
|-----------|----------------|------|
| TODO | TODO | TODO |

View File

@@ -0,0 +1,29 @@
# Stream D — CosmWasm app pairing (example)
## D1 Contract pins
| Network | Contract address | Code ID | Migrate policy |
|---------|------------------|---------|------------------|
| TODO | TODO | TODO | frozen / multisig / DAO |
## D2 Control path
Chosen path: TODO (ICA / ICQ / GMP to EVM / off-chain coordinator + oracle)
Attach sequence diagram URL: TODO
## D3 Chain 138 counterpart
| Contract | Address | Purpose |
|----------|---------|---------|
| TODO | TODO | vault / adapter / settlement |
## D4 Hyperledger
Required: yes / no — if yes, cite Cacti/Firefly task from MULTI_CHAIN_DEPLOYMENT_GUIDE Phase 4.
## D5 Wasm CI
Repository: TODO
Build command: TODO
Upgrade runbook URL: TODO

View File

@@ -0,0 +1,43 @@
# Stream E — cross-cutting + program closure (example)
## E1 IBC relayers
| Channel | Relayer operator | Key custody | SLA |
|---------|------------------|-------------|-----|
| TODO | TODO | TODO | TODO |
## E2 Wallets (Cosmos legs)
| Wallet | Supported flows | User doc URL |
|--------|-----------------|--------------|
| Keplr | TODO | TODO |
| Leap | TODO | TODO |
| MetaMask Snap (if used) | TODO | TODO |
## E3 Indexing and observability
| System | Cosmos / IBC events | Retention |
|--------|---------------------|-----------|
| TODO | TODO | TODO |
## E4 Audits
| Scope | Vendor | Report URL | Date |
|-------|--------|------------|------|
| TODO bridge | TODO | TODO | TODO |
## E5 Rate limits
| Surface | Limit | Enforced by |
|---------|-------|-------------|
| Mint API | TODO | TODO |
| On-chain mint/burn | TODO | contract |
## E6 Program closure
| Milestone | Owner | Date |
|-----------|-------|------|
| Preconditions P1P5 signed | TODO | TODO |
| Streams adopted (product AD + closure E) | TODO | TODO |
| CHAINS_AND_PROTOCOLS + GALATIC updated for live only | TODO | TODO |
| Annual review scheduled | TODO | TODO |

View File

@@ -0,0 +1,19 @@
{
"$schema_comment": "Stream C — example IBC trace record for allowlist + ChainRegistry.additionalData mirror",
"tier": "TIER_1_GOVERNANCE",
"ibc_hash": "TODO_ibc_hash_or_full_denom",
"path": [
{
"port_id": "transfer",
"channel_id": "TODO",
"counterparty_chain_id": "TODO",
"counterparty_channel_id": "TODO"
}
],
"human_readable_denom": "TODO",
"bridge_stack_id": "TODO_vendor_or_internal_id",
"chain138_token_address": "0x0000000000000000000000000000000000000000",
"decimals": 6,
"canonical_crosscheck_ref": "docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md",
"user_warning_long_trace": true
}

View File

@@ -0,0 +1,13 @@
# Stream B — routing integration flags (example)
# Copy into route-engine or service config when Osmosis/Cosmos DEX leg is adopted.
cosmos_dex_routing:
mode: quotes_only # quotes_only | executable_swaps
max_slippage_bps: 50
ibc_timeout_seconds: 600
quote_ttl_seconds: 30
chains_allowlist: [] # e.g. cosmoshub-4, osmosis-1 — fill when live
fail_closed_on_timeout: true
aggregator_alignment:
use_axelar_squid_patterns: false # set true when wired to explorer/squid stack
review_doc: docs/11-references/BRIDGE_CHAINS_IMPLEMENTATION_COMPLETE.md

View File

@@ -0,0 +1,166 @@
{
"schemaVersion": "1.0.0",
"updated": "2026-04-24",
"canonicalRootDoc": "docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md",
"workstreams": [
{
"id": "W1",
"title": "Besu / Chain 138 infrastructure and RPC topology",
"status": "live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [],
"sourceDocs": [
"docs/06-besu/BESU_NODE_CONFIGURATION_MAP_20260424.md",
"dbis_chain_138_technical_master_plan.md",
"docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md"
],
"acceptanceGate": "Canonical Besu inventory reconciled across all active cluster hosts, block production healthy, and no unexplained canonical node gaps remain.",
"evidenceArtifact": "scripts/verify/check-cluster-besu-inventory.sh --json"
},
{
"id": "W2",
"title": "Liquidity, PMM, bridge, and public routing coverage",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1"
],
"sourceDocs": [
"docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md",
"docs/11-references/DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md",
"reports/status/LIVE_ECOSYSTEM_FINANCIAL_INVENTORY_AND_ROUTING_GAPS_20260424.md"
],
"acceptanceGate": "Machine-readable route coverage is current and can distinguish live, partial, and blocked routing paths for stablecoins and top assets.",
"evidenceArtifact": "config/public-routing-coverage-matrix.json"
},
{
"id": "W3",
"title": "Phoenix deploy/control-plane integration",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1",
"W2",
"W4"
],
"sourceDocs": [
"docs/04-configuration/PHOENIX_SANKOFA_OPERATOR_HANDOFF.md",
"docs/02-architecture/DBIS_ECOSYSTEM_TECHNICAL_MASTER_PLAN.md"
],
"acceptanceGate": "Phoenix deploy/control APIs expose current canonical manifests and validated deploy targets without drifting from repo truth.",
"evidenceArtifact": "scripts/validation/validate-config-files.sh"
},
{
"id": "W4",
"title": "URA manifest, policy profiles, registry, and route confidence",
"status": "repo-implemented",
"horizon": "near_term",
"ownerClass": "repo",
"dependsOn": [
"W2",
"W3"
],
"sourceDocs": [
"docs/04-configuration/universal-resource-activation/URA_MANIFEST_AUTOMATION_IMPLEMENTATION_TRACKER.md",
"docs/04-configuration/universal-resource-activation/README.md",
"config/universal-resource-activation/manifest.json"
],
"acceptanceGate": "URA manifest and policy profiles validate, registry references are coherent, and route-confidence can be produced as a first-class control-plane artifact.",
"evidenceArtifact": "scripts/validate/validate-universal-resource-activation.mjs"
},
{
"id": "W5",
"title": "DBIS RTGS / DBIS Rail / OMNL / settlement sidecars",
"status": "partially live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W4",
"W6"
],
"sourceDocs": [
"docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md",
"docs/dbis-rail/DBIS_RAIL_SETTLEMENT_EVENT_SOURCES.md",
"docs/03-deployment/DBIS_RTGS_FIRST_SLICE_ARCHITECTURE.md"
],
"acceptanceGate": "First-slice settlement boundaries, event sources, custody roles, and sidecar responsibilities are explicit enough for production gating.",
"evidenceArtifact": "docs/03-deployment/DBIS_RTGS_MASTER_PLAN_IMPLEMENTATION_TRACKER.md"
},
{
"id": "W6",
"title": "Jurisdiction/compliance and onboarding matrices",
"status": "repo-implemented",
"horizon": "near_term",
"ownerClass": "repo",
"dependsOn": [
"W4"
],
"sourceDocs": [
"docs/04-configuration/compliance-matrices/README.md",
"docs/04-configuration/jurisdictions/JURISDICTION_CATALOG.md",
"docs/dbis-rail/DBIS_RAIL_JURISDICTION_TRACEABILITY.md"
],
"acceptanceGate": "Jurisdiction and onboarding matrices are machine-readable enough to gate policy profiles and institutional activation paths.",
"evidenceArtifact": "config/jurisdictions/catalog.v1.json"
},
{
"id": "W7",
"title": "Identity / Hyperledger / interoperability stack",
"status": "planned",
"horizon": "long_term",
"ownerClass": "external",
"dependsOn": [
"W5",
"W6"
],
"sourceDocs": [
"docs/03-deployment/DBIS_HYPERLEDGER_RUNTIME_STATUS.md",
"docs/03-deployment/DBIS_HYPERLEDGER_IDENTITY_STACK_DECISION.md"
],
"acceptanceGate": "Identity and interoperability slices have explicit runtime ownership, promotion gates, and environment-specific deployment decisions.",
"evidenceArtifact": "docs/03-deployment/DBIS_HYPERLEDGER_RUNTIME_STATUS.md"
},
{
"id": "W8",
"title": "Observability, verification, evidence, and operator readiness",
"status": "live",
"horizon": "near_term",
"ownerClass": "mixed",
"dependsOn": [
"W1",
"W2",
"W3",
"W4",
"W5",
"W6"
],
"sourceDocs": [
"docs/00-meta/OPERATOR_HANDOFF_2026_04_24.md",
"docs/00-meta/OPERATOR_READY_CHECKLIST.md",
"docs/04-configuration/universal-resource-activation/URA_OPERATIONAL_READINESS_CHECKLIST.md"
],
"acceptanceGate": "Validation, health, and operator readiness outputs are current enough to act as production gates rather than ad hoc references.",
"evidenceArtifact": "scripts/verify/run-all-validation.sh"
}
],
"blockedBy": [
{
"id": "B1",
"class": "external",
"description": "Some institutional integrations, custody counterparties, and settlement-sidecar dependencies cannot be closed from repo-only work."
},
{
"id": "B2",
"class": "external",
"description": "Some public-network expansion lanes remain constrained by third-party bridge, exchange, or destination-liquidity realities."
},
{
"id": "B3",
"class": "operator",
"description": "Operator promotion of URA, sidecar, and policy-aware runtime slices still trails repo implementation in several areas."
}
]
}

View File

@@ -0,0 +1,21 @@
{
"registryEntryId": "a5c115dd-e147-4eb5-8cf1-f7d9c38f959e",
"entity_id": "98450070C57395F6B906",
"jurisdiction": "International",
"chain_id": 138,
"address": "0x1ac3F4942a71E86A9682D91837E1E71b7BACdF99",
"addressRole": "token_contract",
"aliases": [
{
"aliasType": "internal_slug",
"aliasValue": "chain138-cusdc-v2",
"validFrom": "2026-03-31T08:22:11Z"
}
],
"blockscout": {
"label": "Chain 138 cUSDC V2 (staged)",
"labelType": "token"
},
"status": "active",
"lastCorrelationId": "deploy-cusdc-v2-2026-03-31"
}

View File

@@ -0,0 +1,21 @@
{
"registryEntryId": "3cc7d52c-26fb-4afb-9508-0c102f8f6f81",
"entity_id": "98450070C57395F6B906",
"jurisdiction": "International",
"chain_id": 138,
"address": "0x8d342d321DdEe97D0c5011DAF8ca0B59DA617D29",
"addressRole": "token_contract",
"aliases": [
{
"aliasType": "internal_slug",
"aliasValue": "chain138-cusdt-v2",
"validFrom": "2026-03-31T08:22:11Z"
}
],
"blockscout": {
"label": "Chain 138 cUSDT V2 (staged)",
"labelType": "token"
},
"status": "active",
"lastCorrelationId": "deploy-cusdt-v2-2026-03-31"
}

View File

@@ -0,0 +1,125 @@
{
"chainId": 138,
"chainName": "Defi Oracle Meta Mainnet",
"defillamaSdkChainKey": "dfio_meta_main",
"chainProfile": {
"displayName": "Defi Oracle Meta",
"xHandle": "@DefiOracleMeta",
"xUrl": "https://x.com/DefiOracleMeta",
"note": "Canonical X profile for the Chain 138 / Defi Oracle Meta network narrative — distinct from third-party DEX protocol accounts used in per-protocol (e.g. DODO) listings."
},
"regulatoryFraming": "Compliant digital money / e-money settlement rail — TVL adapters measure on-chain contract balances, not issuer licensing status.",
"upstream": {
"defillamaAdapters": "https://github.com/DefiLlama/DefiLlama-Adapters",
"upstreamPullRequest": "https://github.com/DefiLlama/DefiLlama-Adapters/pull/19198",
"upstreamPullRequestState": "open",
"upstreamPullRequestStateAsOf": "2026-05-10",
"upstreamPullRequestLastGhCheckUtc": "2026-05-10T19:59Z",
"fork": "https://github.com/Defi-Oracle-Meta-Blockchain/DefiLlama-Adapters",
"defillamaServer": "https://github.com/DefiLlama/defillama-server",
"dimensionAdapters": "https://github.com/DefiLlama/dimension-adapters"
},
"implemented": {
"tvlAdapter": {
"protocol": "dodo",
"paths": [
"projects/dodo/index.js",
"projects/helper/chains.json",
"projects/helper/tokenMapping.js"
],
"factoryAddress": "0xc93870594C7f83A0aE076c2e30b494Efc526b68E",
"fromBlock": 3510162,
"stablecoinMappings": {
"cUSDT": {
"address": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
"coingeckoId": "tether",
"decimals": 6
},
"cUSDC": {
"address": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
"coingeckoId": "usd-coin",
"decimals": 6
}
}
},
"defillamaServerLocalBranch": {
"note": "Prepare PR from fork — see checklist doc",
"paths": [
"defi/src/utils/normalizeChain.ts",
"defi/src/protocols/data1.ts"
],
"summary": "Chain label + chainId 138 for UI; DODO AMM chains[] + oraclesBreakdown proof"
},
"dimensionAdaptersLocalBranch": {
"paths": ["helpers/chains.ts", "dexs/dodo/index.ts", "fees/dodo-fees.ts"],
"summary": "CHAIN.DFIO_META_MAIN added; fees/dex blocked on DODO GraphQL until chain 138 is supported"
}
},
"blockedExternal": [
{
"component": "DODO dashboard GraphQL (dex volume)",
"detail": "DashboardChainData volume selection has no dfio_meta_main field — api.dodoex.io rejects query",
"tracked": "dexs/dodo/index.ts header comment"
},
{
"component": "DODO gateway fees API",
"detail": "chain=dfio_meta_main spot-check returned mixed networks with top pairs",
"tracked": "fees/dodo-fees.ts header comment"
}
],
"forms": {
"tokenRights": {
"url": "https://forms.defillama.com/token-rights",
"draftDoc": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md"
},
"rwaSubmission": {
"url": "https://forms.defillama.com/rwa-submission",
"draftDoc": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md"
}
},
"optionalFollowUps": [
{
"metric": "fees_revenue_dex_volume",
"repository": "dimension-adapters",
"note": "Unblocked when DODO GraphQL exposes dfio_meta_main volume and chain-scoped fees"
},
{
"metric": "yields",
"repository": "yield-server",
"note": "Optional APY surfaces for eligible pools"
},
{
"metric": "stablecoins_pegged",
"repository": "peggedassets-server",
"note": "Optional circulating/peg series for compliant stables"
},
{
"metric": "gitea_mirror",
"note": "scripts/deployment/mirror-github-fork-to-gitea.sh"
},
{
"metric": "dimension_adapters_docs",
"documentation": "https://docs.llama.fi/list-your-project/other-dashboards",
"repository": "dimension-adapters",
"note": "Fees/dexs after API unblock"
},
{
"metric": "oracles_tvs",
"documentation": "https://docs.llama.fi/list-your-project/oracles-tvs",
"repository": "defillama-server",
"note": "oraclesBreakdown proof populated on DODO AMM entry; extend with chain-specific rows when documented"
},
{
"metric": "tvl_helpers_docs",
"documentation": "https://docs.llama.fi/list-your-project/functions-weve-written-so-you-dont-have-to",
"note": "sumTokensExport, getBlock, LP unwrap — use for treasury/vault/LP TVL patterns"
}
],
"docs": {
"ecosystemMap": "docs/04-configuration/defillama/CHAIN138_DEFILLAMA_ECOSYSTEM_MAP.md",
"submissionChecklist": "docs/04-configuration/defillama/DEFILLAMA_CHAIN138_SUBMISSION_CHECKLIST.md",
"dodoDfioMetaMainTvlNote": "docs/11-references/DEFILLAMA_DFIO_META_MAIN_DODO_ADAPTER_TVL.md",
"masterReference": "docs/00-meta/METAMASK_GRU_DEFILLAMA_CHAIN138_MASTER_REFERENCE.md",
"repositoriesAndPrs": "docs/00-meta/REPOSITORIES_AND_PRS_CHAIN138.md"
}
}

View File

@@ -0,0 +1,37 @@
{
"registryVersion": 1,
"purpose": "Authoritative network codes for Elemental Imperium (33×33×6) wallet labels. Grid addresses are treasuries for sovereign nations in the EI model; ASNs are optional; add when assigned.",
"labelSpec": {
"id": "ei-wallet-label-v1",
"cellIdFormat": "EI-L{lpbca:02d}-B{branch:02d}-C{class}",
"labelFormatDefault": "{networkCode}.{cellId}",
"labelFormatWithAsn": "{networkCode}.{cellId}.AS{asn}",
"notes": [
"cellId is stable and never depends on ASN or network reassignment uses.",
"networkCode is lowercase kebab-case; use this registry as the allow-list.",
"When asn is assigned, append .AS{n} with integer n (no leading AS in the number token beyond the literal AS prefix)."
]
},
"defaultNetworkCode": "unassigned",
"overlayExamplePath": "config/elemental-imperium-wallet-overlay.example.json",
"networks": [
{
"code": "unassigned",
"displayName": "Not yet mapped to an operational network",
"asn": null,
"status": "placeholder"
},
{
"code": "chain138-core",
"displayName": "Chain 138 execution / RPC plane (internal)",
"asn": null,
"status": "planned"
},
{
"code": "operator-lan",
"displayName": "Operator management LAN (e.g. 192.168.11.0/24)",
"asn": null,
"status": "planned"
}
]
}

View File

@@ -0,0 +1,23 @@
{
"overlayVersion": 1,
"description": "Optional mapping layered on registry defaults. rangeRules: first matching rule sets networkCode and asn for that wallet. cellOverrides: per cellId, partial overrides win over rangeRules.",
"rangeRules": [
{
"comment": "Example: LPBCA slice 010 on chain138-core; remove or edit when ASNs are assigned",
"match": {
"lpbca": [0, 10],
"branch": [0, 32],
"class": [0, 5]
},
"networkCode": "chain138-core",
"asn": null
}
],
"cellOverrides": {
"EI-L00-B00-C0": {
"comment": "Example single-cell override",
"networkCode": "unassigned",
"asn": null
}
}
}

View File

@@ -0,0 +1,122 @@
{
"version": "1.0.0",
"updated": "2026-05-09",
"component": "DBIS Engine X",
"purpose": "Automation policy for API-fed liquidity advice, XAUt-backed USDC capacity calculation, cW* output planning, on-chain execution gates, and endpoint reporting.",
"mode": {
"default": "read_only_advisor",
"liveExecutionRequires": [
"operator_approval",
"protected_transaction_rpc",
"fresh_live_quotes",
"funded_usdc_lender_or_public_quote_inventory",
"passing_solidity_preview",
"nonzero_iso_audit_peg_hashes"
]
},
"inputs": {
"requestedOutput": {
"symbolEnv": "ENGINE_X_REQUESTED_CW_SYMBOL",
"defaultSymbol": "cWUSDC",
"amountRawEnv": "ENGINE_X_REQUESTED_OUTPUT_RAW",
"amountUnitsEnv": "ENGINE_X_REQUESTED_OUTPUT_UNITS",
"supportedInitialSymbols": [
"cWUSDC"
]
},
"collateral": {
"symbol": "XAUt",
"availableRawEnv": "ENGINE_X_XAUT_AVAILABLE_RAW",
"availableUnitsEnv": "ENGINE_X_XAUT_AVAILABLE_UNITS",
"usdPrice6Env": "ENGINE_X_XAUT_USD_PRICE6",
"defaultUsdPrice6": "3226640000"
},
"risk": {
"ltvBpsEnv": "ENGINE_X_BORROW_LTV_BPS",
"defaultLtvBps": 7500,
"minHealthFactorBpsEnv": "ENGINE_X_BORROW_MIN_HEALTH_FACTOR_BPS",
"defaultMinHealthFactorBps": 11000,
"maxRoundTripLossBpsEnv": "ENGINE_X_MAX_ROUND_TRIP_LOSS_BPS",
"defaultMaxRoundTripLossBps": 100,
"maxPublicSwapLossBpsEnv": "ENGINE_X_MAX_PUBLIC_SWAP_LOSS_BPS",
"defaultMaxPublicSwapLossBps": 75,
"minGasReserveWeiEnv": "ENGINE_X_MIN_GAS_RESERVE_WEI",
"defaultMinGasReserveWei": "5000000000000000"
}
},
"feeds": {
"repoReports": [
"reports/status/mainnet-cwusdc-usdc-support-health-latest.json",
"reports/status/engine-x-public-indexed-readiness-latest.json",
"reports/status/engine-x-mev-defense-readiness-latest.json",
"reports/status/mainnet-cwusdc-weth-liquidity-surfaces-latest.json"
],
"onChainReadinessCommands": [
"pnpm engine-x:public-readiness",
"pnpm engine-x:mev-defense",
"pnpm engine-x:weth-liquidity-eval",
"python3 scripts/verify/check-mainnet-cwusdc-usdc-support-health.py"
],
"externalPublicationTargets": [
"token-aggregation public report API",
"CoinGecko tracker package",
"CoinMarketCap tracker package",
"Etherscan public transaction and pool pages",
"DexScreener and GeckoTerminal indexed pool pages",
"exchange listing or OTC due-diligence packet",
"Forex desk liquidity and proof packet"
]
},
"decisionGates": {
"apiAdvisor": [
"all required report feeds are present or regenerated",
"requested output token is supported",
"calculator produces positive capacity",
"all blocker fields are explicit"
],
"liveExecution": [
"MEV defense readiness is ready",
"selected liquidity surface has live indexable pool evidence",
"selected public swap has nonzero quote and minOut",
"USDC debt after loop is zero",
"XAUt collateral withdrawal is previewed after repayment",
"no route substitutes DODO, UniV2, UniV3, WETH, or USDC roles silently",
"operator has reviewed generated commands"
],
"publication": [
"on-chain transaction hashes are present",
"before and after reserves or slot0/liquidity are present",
"ISO 20022-style proof hash is present when applicable",
"audit envelope hash is present",
"peg proof hash is present",
"public endpoint package was regenerated after execution"
]
},
"automationPhases": [
{
"id": "phase_0_advisor",
"name": "Read-only API and calculator advice",
"broadcast": false
},
{
"id": "phase_1_canary",
"name": "Protected tiny public canary execution",
"broadcast": "operator_approved_only"
},
{
"id": "phase_2_liquidity_defense",
"name": "Automated protected rebalance and quote defense",
"broadcast": "after_canary_and_loss_limits"
},
{
"id": "phase_3_endpoint_publication",
"name": "Regenerate reports and publish endpoint packets",
"broadcast": false
},
{
"id": "phase_4_multi_asset_forex_crypto",
"name": "Extend cW* request symbols and FX/crypto endpoint packets",
"broadcast": "per_asset_policy"
}
]
}

View File

@@ -0,0 +1,62 @@
{
"template_version": "1.1.0",
"purpose": "Additional on-chain and off-chain inventory for the source-to-CEX execution model.",
"questions_to_fill": [
"All additional EVM EOAs or smart-wallet addresses",
"Any multisigs, vaults, or treasury contracts you want included",
"Any custodial or exchange balances to include off-chain",
"Any LP or staking positions not visible from wallet token balances alone",
"The real production CEX or OTC sink to use for handoff"
],
"wallets": [
{
"label": "primary-deployer-documented",
"address": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"chains": [
"1",
"138"
],
"role": "treasury",
"include_in_baseline": true,
"notes": "Canonical documented deployer wallet. Deduplicate against primary baseline if loaded twice."
}
],
"offchain_accounts": [
{
"label": "example-exchange",
"platform": "unknown",
"account_type": "unknown",
"operational_status": "planned",
"enabled_for_production_handoff": false,
"accepted_deposit_assets": [
"USDC"
],
"preferred_deposit_asset": "USDC",
"deposit_chain_id": "1",
"deposit_chain_name": "Ethereum Mainnet",
"deposit_address": "",
"min_packet_usd": 1000,
"max_packet_usd": 250000,
"slippage_ceiling_bps": 100,
"asset_balances": [
{
"symbol": "USDC",
"amount": 0,
"estimated_usd": 0,
"chain_id": "offchain",
"chain_name": "Off-chain / custodial",
"notes": "Replace with a real balance only when you want it counted."
}
],
"include_in_baseline": false,
"notes": "Replace with a real sink before enabling production handoff."
}
],
"risk_preferences": {
"max_drawdown_pct": null,
"liquidity_need_horizon": null,
"bridging_allowed": null,
"lp_allowed": null,
"leverage_allowed": null
}
}

View File

@@ -0,0 +1,62 @@
{
"template_version": "1.1.0",
"purpose": "Additional on-chain and off-chain inventory for the source-to-CEX execution model.",
"questions_to_fill": [
"All additional EVM EOAs or smart-wallet addresses",
"Any multisigs, vaults, or treasury contracts you want included",
"Any custodial or exchange balances to include off-chain",
"Any LP or staking positions not visible from wallet token balances alone",
"The real production CEX or OTC sink to use for handoff"
],
"wallets": [
{
"label": "primary-deployer-documented",
"address": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
"chains": [
"1",
"138"
],
"role": "treasury",
"include_in_baseline": true,
"notes": "Canonical documented deployer wallet. Deduplicate against primary baseline if loaded twice."
}
],
"offchain_accounts": [
{
"label": "example-exchange",
"platform": "unknown",
"account_type": "unknown",
"operational_status": "planned",
"enabled_for_production_handoff": false,
"accepted_deposit_assets": [
"USDC"
],
"preferred_deposit_asset": "USDC",
"deposit_chain_id": "1",
"deposit_chain_name": "Ethereum Mainnet",
"deposit_address": "",
"min_packet_usd": 1000,
"max_packet_usd": 250000,
"slippage_ceiling_bps": 100,
"asset_balances": [
{
"symbol": "USDC",
"amount": 0,
"estimated_usd": 0,
"chain_id": "offchain",
"chain_name": "Off-chain / custodial",
"notes": "Replace with a real balance only when you want it counted."
}
],
"include_in_baseline": false,
"notes": "Replace with a real sink before enabling production handoff."
}
],
"risk_preferences": {
"max_drawdown_pct": null,
"liquidity_need_horizon": null,
"bridging_allowed": null,
"lp_allowed": null,
"leverage_allowed": null
}
}

View File

@@ -0,0 +1,138 @@
{
"version": "1.0.0",
"updated": "2026-05-08",
"rail": "mainnet_cwusdc_usdc",
"network": {
"chainId": 1,
"name": "Ethereum Mainnet",
"rpcEnvKeys": [
"ETHEREUM_MAINNET_RPC"
]
},
"publicPair": {
"base": "cWUSDC",
"quote": "USDC",
"role": "discovery_lane",
"venue": "uniswap_v2_pair",
"poolAddress": "0xC28706F899266b36BC43cc072b3a921BDf2C48D9"
},
"defendedVenue": {
"base": "cWUSDC",
"quote": "USDC",
"role": "primary_defense",
"venue": "dodo_pmm",
"poolAddress": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
"managedCycleScript": "smom-dbis-138/script/flash/RunManagedMainnetAaveCwusdcUsdcQuotePushCycle.s.sol:RunManagedMainnetAaveCwusdcUsdcQuotePushCycle"
},
"quoteDefenseSurfaces": [
{
"id": "mainnet-cwusdc-usdc-univ3-100",
"base": "cWUSDC",
"quote": "USDC",
"role": "primary_public_indexed_quote_defense",
"venue": "uniswap_v3_pool",
"poolAddress": "0x1Cf2e685682C7F7beF508F0Af15Dfb5CDda01ee3",
"fee": 100,
"routerAddress": "0xE592427A0AEce92De3Edee1F18E0157C05861564",
"quoterAddress": "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
"activeRange": {
"preferredLowerTick": -100,
"preferredUpperTick": 100,
"targetTick": 0
},
"defenseMode": "quote_side_tick_reentry_then_proof_swaps",
"automationStatus": "operator_review_required",
"notes": [
"Primary public/indexable quote-defense surface for tiny 1:1 canaries.",
"If current tick is below -100, first push quote side with USDC->cWUSDC until the old -100..100 position re-enters range.",
"Do not assume historical 75/75 or 85/85 liquidity is active; verify slot0 tick, active liquidity, and token balances before proof swaps."
]
},
{
"id": "mainnet-cwusdc-usdc-univ2",
"base": "cWUSDC",
"quote": "USDC",
"role": "secondary_public_indexed_quote_defense",
"venue": "uniswap_v2_pair",
"poolAddress": "0xC28706F899266b36BC43cc072b3a921BDf2C48D9",
"routerAddress": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
"defenseMode": "quote_side_reserve_repair",
"automationStatus": "capital_gated",
"notes": [
"Public/indexable reserve surface for larger swaps.",
"Use only after fresh reserve read and quote-side repair sizing.",
"Current role is secondary because the pair is quote-starved."
]
},
{
"id": "mainnet-cwusdc-usdc-dodo-managed",
"base": "cWUSDC",
"quote": "USDC",
"role": "managed_defended_quote_push",
"venue": "dodo_pmm",
"poolAddress": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
"defenseMode": "managed_quote_push_cycle",
"automationStatus": "capital_gated",
"notes": [
"Managed defended lane remains distinct from public indexed proof lanes.",
"Do not silently substitute this pool for the public spend settlement replacement pool.",
"Requires passing DODO quote preview and sufficient official Mainnet USDC quote inventory before automation."
]
}
],
"thresholds": {
"warnDeviationBps": 25,
"interveneDeviationBps": 75,
"criticalDeviationBps": 150,
"minBaseReserveUnits": 2500,
"minQuoteReserveUnits": 2500
},
"managedCycle": {
"defaultHarvestSurplus": true,
"defaultGasHoldbackTargetRaw": 0,
"maxAutomatedFlashQuoteAmountRaw": 2964298,
"quoteAmountByDeviationBps": [
{
"minDeviationBps": 150,
"flashQuoteAmountRaw": 2964298
},
{
"minDeviationBps": 75,
"flashQuoteAmountRaw": 1482149
}
]
},
"mevDefense": {
"status": "required_for_sensitive_execution",
"failClosedByDefault": true,
"acceptedPrivateRpcEnvKeys": [
"ENGINE_X_PRIVATE_TX_RPC",
"MEV_BLOCKER_RPC_URL",
"FLASHBOTS_RPC_URL",
"BLOXROUTE_RPC_URL",
"BLINK_RPC_URL"
],
"publicBroadcastOverrideEnvKey": "ENGINE_X_ALLOW_PUBLIC_BROADCAST",
"disableGuardEnvKey": "ENGINE_X_MEV_PROTECTION",
"protectedActions": [
"engine-x-univ3-public-swap-proof",
"engine-x-univ2-public-indexed-loop",
"mainnet-cwusdc-usdc-univ2-canary-repair",
"engine-x-univ3-indexed-lp-migration"
],
"rules": [
"Use private/protected RPC for any live Engine X public-indexed swap, quote repair, LP migration, or rebalance.",
"Dry-runs and read-only health checks may use the normal Mainnet RPC.",
"Do not broadcast quote-defense transactions through the public mempool unless the operator explicitly sets ENGINE_X_ALLOW_PUBLIC_BROADCAST=1 for a reviewed canary.",
"Never print protected RPC URLs in reports; report only the configured provider label or env key."
]
},
"notes": [
"The public Uniswap V2 pair is for visible routing and discovery, not for hard parity guarantees on its own.",
"The UniV3 fee-100 pool is the preferred public/indexable quote-defense canary lane when its tick is in or near the configured active range.",
"When the public pair drifts beyond the intervention corridor, use the managed DODO quote-push stack as the first automated defense path.",
"Do not trust POOL_CWUSDC_USDC_MAINNET from dotenv blindly; this policy is the canonical defended venue binding.",
"Automation must select quoteDefenseSurfaces by explicit role and venue; never silently substitute UniV2, UniV3, or DODO for each other.",
"Automation is capped to the currently tested safe tranche until the defended lane is explicitly re-sized from fresh liquidity measurements."
]
}

View File

@@ -0,0 +1,83 @@
{
"program_name": "Mr. Promod Uniswap V2 cW Deep Liquidity Program",
"purpose": "Define the desired-state Uniswap V2 or Uniswap-V2-compatible liquidity rollout for cW* and cWAUSDT rails on bridged public networks.",
"operator_rule": "When canonical USDC or USDT depth is scarce, concentrate depth first in wrapped support rails and then expand into canonical settlement rails.",
"mainnet_funding_posture": {
"mode": "triple-rail-support",
"required_deployer_assets": [
"cWUSDC",
"cWUSDT",
"cWAUSDT"
],
"notes": [
"cWUSDC and cWUSDT remain the core settlement-adjacent rails.",
"cWAUSDT is the wrapped-depth support asset when canonical USDC or USDT inventory is not yet deep enough."
]
},
"priority_tiers": {
"tier_1": [
"1",
"8453",
"42161",
"10",
"137"
],
"tier_2": [
"56",
"43114",
"100",
"42220",
"25"
],
"tier_3": [
"1111"
]
},
"wrapped_depth_phase": {
"preferred_pairs_in_order": [
"cWAUSDT/cWUSDC",
"cWAUSDT/cWUSDT",
"cWUSDT/cWUSDC"
],
"allocation_share_pct": {
"flagship_pair": 50,
"second_pair": 30,
"third_pair": 20
},
"notes": [
"This phase is for creating visibly deep wrapped-to-wrapped liquidity before canonical settlement rails are deep enough.",
"Wrapped-depth pools strengthen routing and inventory transfer between the cW settlement rails and cWAUSDT support inventory.",
"These pools do not replace the eventual need for direct canonical settlement rails."
]
},
"settlement_phase": {
"preferred_pairs_by_hub": {
"USDC": [
"cWUSDC/USDC",
"cWUSDT/USDC",
"cWAUSDT/USDC"
],
"USDT": [
"cWUSDT/USDT",
"cWUSDC/USDT",
"cWAUSDT/USDT"
]
},
"notes": [
"Settlement-phase pools remain the preferred terminal rails for exchange and OTC normalization.",
"Promote settlement rails only after wrapped-depth support is stable and enough canonical stable inventory is available."
]
},
"uniswap_v2_requirements": {
"required_env_suffixes": [
"UNISWAP_V2_FACTORY",
"UNISWAP_V2_ROUTER",
"UNISWAP_V2_START_BLOCK"
],
"required_registry_updates": [
"cross-chain-pmm-lps/config/deployment-status.json",
"token-aggregation env for the target chain",
"MCP allowlist or indexer visibility for new pairs"
]
}
}

View File

@@ -0,0 +1,35 @@
{
"version": "1.0.0",
"last_updated": "2026-04-17",
"purpose": "Operator policy for Chain 138 -> Mainnet normalization -> CEX handoff.",
"production_enabled": false,
"default_route_model": "Chain 138 inventory -> canonical bridge -> Mainnet normalization -> CEX handoff",
"operator_defaults": {
"primary_same_day_feeder": "cUSDC",
"secondary_same_day_feeder": "cUSDT",
"stable_lp_mode": "unwind_first",
"immediate_assets": [
"cWUSDC",
"cWUSDT"
],
"reject_non_promoted_assets": true
},
"normalization_policy": {
"preferred_settlement_assets": [
"USDC",
"USDT"
],
"default_settlement_asset": "USDC",
"allow_usdt_only_with_operator_approval": true,
"post_bridge_aggregation_only": true
},
"packetization_policy": {
"bridge_packet_usd_max": 250000,
"normalization_packet_usd_max": 100000,
"direct_cwusdc_usdc_usage_cap_usd": 213.102461,
"direct_cwusdt_usdt_usage_cap_usd": 2.182358,
"force_cwusdt_via_cwusdc_threshold_usd": 10,
"default_slippage_ceiling_bps": 100,
"chunking_mode": "bridge_in_chunks_then_normalize_then_continuous_cex_handoff"
}
}

View File

@@ -0,0 +1,52 @@
# Besu Configuration for besu-sentry-1 (VMID: 1500)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.150"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -0,0 +1,52 @@
# Besu Configuration for besu-sentry-2 (VMID: 1501)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.151"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -0,0 +1,52 @@
# Besu Configuration for besu-sentry-3 (VMID: 1502)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.152"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -0,0 +1,52 @@
# Besu Configuration for besu-sentry-4 (VMID: 1503)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.153"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -0,0 +1,52 @@
# Besu Configuration for besu-sentry-ali (VMID: 1504)
# Generated baseline sentry config promoted into first-class repo coverage.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.154"
p2p-port=30303
max-peers=32
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -8,7 +8,7 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.244" p2p-host="192.168.11.244"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=true
# RPC # RPC
@@ -40,6 +40,7 @@ log-destination="CONSOLE"
# Sync # Sync
sync-mode="FULL" sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2 fast-sync-min-peers=2
# Privacy # Privacy

View File

@@ -8,7 +8,7 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.245" p2p-host="192.168.11.245"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=true
# RPC # RPC
@@ -40,6 +40,7 @@ log-destination="CONSOLE"
# Sync # Sync
sync-mode="FULL" sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2 fast-sync-min-peers=2
# Privacy # Privacy

View File

@@ -0,0 +1,53 @@
# Besu Configuration for besu-sentry-thirdweb-01 (VMID: 1509)
# Generated canonical per-node config for promoted sentry inventory.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.219"
p2p-port=30303
max-peers=40
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -0,0 +1,53 @@
# Besu Configuration for besu-sentry-thirdweb-02 (VMID: 1510)
# Generated canonical per-node config for promoted sentry inventory.
data-path="/data/besu"
genesis-file=""
# Network
network-id=138
p2p-host="192.168.11.220"
p2p-port=30303
max-peers=40
discovery-enabled=true
# RPC
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
rpc-http-cors-origins=["*"]
rpc-http-api-enable-unsafe-txsigning=true
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","ADMIN","PERSONAL","MINER","DEBUG"]
# GraphQL
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
# Metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# Logging
logging="INFO"
log-destination="CONSOLE"
# Sync
sync-mode="FULL"
tx-pool-max-future-by-sender=1
fast-sync-min-peers=2
# Privacy
privacy-enabled=false
# Mining
miner-enabled=false
# QBFT
qbft-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.172" p2p-host="192.168.11.172"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Full Function (can deploy contracts, execute writes) # RPC - Full Function (can deploy contracts, execute writes)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.173" p2p-host="192.168.11.173"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Standard Base (read-only, no admin APIs) # RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.174" p2p-host="192.168.11.174"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Standard Base (read-only, no admin APIs) # RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.246" p2p-host="192.168.11.246"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Full Function (can deploy contracts, execute writes) # RPC - Full Function (can deploy contracts, execute writes)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.247" p2p-host="192.168.11.247"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Standard Base (read-only, no admin APIs) # RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -9,8 +9,8 @@ genesis-file=""
network-id=138 network-id=138
p2p-host="192.168.11.248" p2p-host="192.168.11.248"
p2p-port=30303 p2p-port=30303
max-peers=32 max-peers=40
discovery-enabled=true discovery-enabled=false
# RPC - Standard Base (read-only, no admin APIs) # RPC - Standard Base (read-only, no admin APIs)
rpc-http-enabled=true rpc-http-enabled=true

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Hyperledger Besu
After=network.target
[Service]
Type=simple
User=besu
Group=besu
ExecStart=/opt/besu/bin/besu --config-file=/etc/besu/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,12 @@
# Gitea act_runner config templates
| File | CT | Purpose |
|------|-----|---------|
| `config-5700-heavy.yaml` | 5700 (`dev-vm`) | `ubuntu-latest-heavy` — large pnpm/validation jobs |
| `config-5701-standard.yaml` | 5701 (`gitea-runner-1`) | `ubuntu-latest` / `ubuntu-22.04` / `ubuntu-20.04` — default pool |
Deploy with `bash scripts/dev-vm/apply-act-runner-config.sh` from the repo root (LAN). Full procedure: `docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`.
**Networking:** keep **`container.network` empty** (`""` in YAML). act_runner attaches workflow **`services:`** to the same per-job Docker network as the job container. **`network: bridge`** isolates the job from service containers → Prisma **P1001** even when **`DATABASE_URL`** uses **`postgres`**.
**CI env:** in workflows with **`services: postgres:`**, set **`DATABASE_URL`** to **`...@postgres:5432/...`** (service id as host), not **`localhost`**.

View File

@@ -0,0 +1,44 @@
# act_runner — CT 5700 (dev-vm): heavy / monorepo CI (label ubuntu-latest-heavy).
# Applied by: bash scripts/dev-vm/apply-act-runner-config.sh
# Image: https://gitea.com/docker.gitea.com/runner-images
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 5s
github_mirror: ''
labels:
- "ubuntu-latest-heavy:docker://docker.gitea.com/runner-images:ubuntu-latest"
cache:
enabled: true
dir: ""
host: ""
port: 0
external_server: ""
container:
# Empty: per-job user-defined network (GitHub Actions-compatible). Required so
# workflow `services:` (postgres, redis, …) share DNS with the job container.
# `network: bridge` = docker0 only → Prisma P1001 / "Can't reach postgres:5432".
network: ""
privileged: false
options: "--cpus=4 --memory=10g --pids-limit=8192"
workdir_parent: /var/lib/act_runner/workdir
valid_volumes:
- '**'
docker_host: ""
force_pull: false
force_rebuild: false
require_docker: false
docker_timeout: 0s
host:
workdir_parent: /var/lib/act_runner/workdir

View File

@@ -0,0 +1,44 @@
# act_runner — CT 5701 (gitea-runner-1): default pool (labels ubuntu-latest / 22.04 / 20.04).
# Applied by: bash scripts/dev-vm/apply-act-runner-config.sh
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 5s
github_mirror: ''
labels:
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
- "ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"
cache:
enabled: true
dir: ""
host: ""
port: 0
external_server: ""
container:
# Same as config-5700-heavy.yaml — keep `network` empty so workflow `services:`
# (e.g. postgres) share DNS with the job container (see heavy template comments).
network: ""
privileged: false
options: "--cpus=2 --memory=4g --pids-limit=512"
workdir_parent: /var/lib/act_runner/workdir
valid_volumes:
- '**'
docker_host: ""
force_pull: false
force_rebuild: false
require_docker: false
docker_timeout: 0s
host:
workdir_parent: /var/lib/act_runner/workdir

View File

@@ -0,0 +1,48 @@
# Gitea / Phoenix non-blockchain VM routing matrix
Machine-readable coverage of **cluster guests that are not Besu-fleet nodes** (see `besu-vmid-exclusions.v1.json`) for Gitea Actions + Phoenix deploy alignment.
| File | Purpose |
|------|---------|
| `besu-vmid-exclusions.v1.json` | Hostname rules marking Besu validators/sentries/RPC (excluded from matrix closure). |
| `non-blockchain-vm-routing-matrix.v1.json` | One row per in-scope **running** guest from the last committed `reports/status/live_inventory.json` snapshot. |
| `non-blockchain-vm-routing-matrix.v1.schema.json` | JSON Schema for the matrix file. |
| `gov-portals-runtime.v1.json` | CT **7804** xom-dev: ports **30013004**, Gitea repos, Phoenix **`target`** names, `pnpm` filters (kept in sync with deploy-targets + monorepo CI). |
| `gov-portals-runtime.v1.schema.json` | JSON Schema for the runtime file. |
## Regenerate after inventory export
From repo root (LAN / operator host with `live_inventory.json` refreshed):
```bash
python3 scripts/lib/non_blockchain_vm_routing_matrix.py generate \
--inventory reports/status/live_inventory.json \
--exclusions config/gitea-phoenix/besu-vmid-exclusions.v1.json \
--out config/gitea-phoenix/non-blockchain-vm-routing-matrix.v1.json
```
Then hand-fill `gitea_repos`, `deploy_target`, `workflow_glob`, and `health_url` for Phoenix-backed services; use `allowed_missing` only with an explicit reason for intentional gaps. When **7804** portal list changes, update **`gov-portals-runtime.v1.json`** in the same change set.
## Validate (inventory + parity gates)
```bash
bash scripts/verify/validate-vm-routing-parity.sh
```
Subcommands (see `scripts/lib/non_blockchain_vm_routing_matrix.py`):
- `validate` — inventory closure vs matrix
- `parity-deploy-targets` — each Phoenix deploy targets `repo` appears on the matrix row for its VMID (health URL match for single-repo rows)
- `parity-operational-template` — IPv4 alignment vs `config/proxmox-operational-template.json` (hostname drift warns only; NPMplus **10233** dual-homed `.166`/`.167` documented)
- `parity-gov-portals-runtime` — matrix **7804** `gitea_repos` equals runtime portal list
## Gov portal workflow dedupe
Canonical doc: [`../gitea-workflow-templates/PORTAL_WORKFLOW_PARITY.md`](../gitea-workflow-templates/PORTAL_WORKFLOW_PARITY.md). Optional drift check when the monorepo clone exists:
```bash
bash scripts/verify/check-gov-portal-workflow-canonical-strings.sh
# or: GOV_PORTALS_MONOREPO_ROOT=/path/to/gov-portals-monorepo bash ...
```
Task narrative: [docs/04-configuration/GITEA_PHOENIX_NON_BLOCKCHAIN_VM_ROUTING_CLEANUP_TASK.md](../../docs/04-configuration/GITEA_PHOENIX_NON_BLOCKCHAIN_VM_ROUTING_CLEANUP_TASK.md).

View File

@@ -0,0 +1,16 @@
{
"schemaVersion": "1",
"description": "Besu-fleet guests excluded from non-blockchain VM routing matrix closure. Match is OR across rules.",
"rules": [
{
"kind": "hostname_prefix",
"value": "besu-",
"note": "Validators, sentries, RPC cores, thirdweb-adjacent besu-rpc-* hosts."
},
{
"kind": "hostname_prefix",
"value": "thirdweb-rpc-",
"note": "Thirdweb RPC translator stack (Besu-backed)."
}
]
}

View File

@@ -0,0 +1,42 @@
{
"schemaVersion": "1",
"lxc_vmid": 7804,
"lan_ipv4": "192.168.11.54",
"systemd_unit_prefix": "gov-portal-",
"public_wildcard_fqdn_pattern": "*.xom-dev.phoenix.sankofa.nexus",
"npmplus_doc": "docs/04-configuration/GOV_PORTALS_XOM_DEV_DEPLOYMENT.md",
"portals": [
{
"id": "DBIS",
"port": 3001,
"dev_fqdn": "https://dbis.xom-dev.phoenix.sankofa.nexus/",
"gitea_repo": "Gov_Web_Portals/DBIS",
"deploy_target": "dbis-portal-live",
"pnpm_filter": "portal-dbis"
},
{
"id": "ICCC",
"port": 3002,
"dev_fqdn": "https://iccc.xom-dev.phoenix.sankofa.nexus/",
"gitea_repo": "Gov_Web_Portals/ICCC",
"deploy_target": "iccc-portal-live",
"pnpm_filter": "portal-iccc"
},
{
"id": "OMNL",
"port": 3003,
"dev_fqdn": "https://omnl.xom-dev.phoenix.sankofa.nexus/",
"gitea_repo": "Gov_Web_Portals/OMNL",
"deploy_target": "omnl-portal-live",
"pnpm_filter": "portal-omnl"
},
{
"id": "XOM",
"port": 3004,
"dev_fqdn": "https://xom.xom-dev.phoenix.sankofa.nexus/",
"gitea_repo": "Gov_Web_Portals/XOM",
"deploy_target": "xom-portal-live",
"pnpm_filter": "portal-xom"
}
]
}

View File

@@ -0,0 +1,33 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://gitea.d-bis.org/d-bis/proxmox/gov-portals-runtime.v1.schema.json",
"title": "Gov portals xom-dev runtime (CT 7804)",
"type": "object",
"required": ["schemaVersion", "lxc_vmid", "lan_ipv4", "portals"],
"additionalProperties": false,
"properties": {
"schemaVersion": { "type": "string", "const": "1" },
"lxc_vmid": { "type": "integer", "minimum": 1 },
"lan_ipv4": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$" },
"systemd_unit_prefix": { "type": "string" },
"public_wildcard_fqdn_pattern": { "type": "string" },
"npmplus_doc": { "type": "string" },
"portals": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "port", "dev_fqdn", "gitea_repo", "deploy_target", "pnpm_filter"],
"additionalProperties": false,
"properties": {
"id": { "type": "string", "pattern": "^[A-Z]+$" },
"port": { "type": "integer", "minimum": 1, "maximum": 65535 },
"dev_fqdn": { "type": "string", "minLength": 8 },
"gitea_repo": { "type": "string", "pattern": "^Gov_Web_Portals/[A-Za-z0-9_-]+$" },
"deploy_target": { "type": "string", "minLength": 1 },
"pnpm_filter": { "type": "string", "minLength": 1 }
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://gitea.d-bis.org/d-bis/proxmox/non-blockchain-vm-routing-matrix.v1.schema.json",
"title": "Non-blockchain VM routing matrix v1",
"type": "object",
"required": ["schemaVersion", "entries"],
"additionalProperties": true,
"properties": {
"schemaVersion": { "type": "string", "const": "1" },
"generated_from_inventory_collected_at": { "type": "string" },
"generated_from_inventory_source": { "type": "string" },
"allowed_missing": {
"type": "array",
"items": {
"type": "object",
"required": ["vmid", "reason"],
"properties": {
"vmid": { "type": "string", "pattern": "^[0-9]+$" },
"reason": { "type": "string", "minLength": 4 }
}
}
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"vmid",
"hostname",
"primary_ip",
"category",
"gitea_repos",
"deploy_target",
"workflow_glob",
"health_url",
"notes"
],
"properties": {
"vmid": { "type": "string", "pattern": "^[0-9]+$" },
"hostname": { "type": "string", "minLength": 1 },
"primary_ip": { "type": "string" },
"category": { "type": "string", "minLength": 1 },
"gitea_repos": { "type": "array", "items": { "type": "string" } },
"deploy_target": { "type": ["string", "null"] },
"workflow_glob": { "type": ["string", "null"] },
"health_url": { "type": ["string", "null"] },
"notes": { "type": "string" }
},
"additionalProperties": false
}
}
}
}

View File

@@ -0,0 +1,44 @@
# Gov portal Gitea workflows — canonical patterns (dedupe)
There are **two valid layouts** for `Gov_Web_Portals/{DBIS,ICCC,OMNL,XOM}` on Gitea. Pick **one per repo** and avoid silently drifting between them.
## Pattern A — Split workflows (current monorepo submodules)
Used under **`Gov_Web_Portals/gov-portals-monorepo`** checkouts: `DBIS/.gitea/workflows/ci.yml` + `deploy-live.yml` (same for ICCC, OMNL, XOM).
| Concern | Convention |
|--------|-------------|
| Monorepo clone | **`GOV_PORTALS_TOKEN`** (or unset for public read if ever enabled) + `http.extraHeader=Authorization: token …` |
| Overlay | `tar` or `rsync` from standalone repo checkout into `gov-portals/<Portal>/` |
| CI on PR | `ci.yml``pnpm install --frozen-lockfile` at monorepo root, `pnpm --filter portal-*` lint/build/typecheck |
| Deploy on `main` | `deploy-live.yml` — validate job then `curl` POST Phoenix with **`target`** = `dbis-portal-live` / `iccc-portal-live` / `omnl-portal-live` / `xom-portal-live` |
| Secrets | `PHOENIX_DEPLOY_URL`, `PHOENIX_DEPLOY_TOKEN`, **`GOV_PORTALS_TOKEN`** (read monorepo) |
**Canonical strings** (must stay aligned with `phoenix-deploy-api/deploy-targets.json`):
- `Gov_Web_Portals/DBIS``"target":"dbis-portal-live"`
- `Gov_Web_Portals/ICCC``"target":"iccc-portal-live"`
- `Gov_Web_Portals/OMNL``"target":"omnl-portal-live"`
- `Gov_Web_Portals/XOM``"target":"xom-portal-live"`
## Pattern B — Single combined file (template reference)
Files under **`config/gitea-workflow-templates/repos/*-portal-ci-and-live.yml`**: one workflow with `verify` + `deploy` jobs, **`GITEA_TOKEN`** + `oauth2:${GITEA_TOKEN}@` clone URL.
Use when bootstrapping a **standalone** portal repo that does not yet use Pattern A. Copy into `.gitea/workflows/` and set secrets per [GITEA_CD_OPERATOR_CHECKLIST.md](../../docs/00-meta/GITEA_CD_OPERATOR_CHECKLIST.md).
## Single source of truth for ports / FQDN / systemd
**`config/gitea-phoenix/gov-portals-runtime.v1.json`** — LXC **7804** port map and deploy targets. Update it when `GOV_PORTALS_XOM_DEV_DEPLOYMENT.md` changes; Phoenix healthchecks and matrix enrichment should stay consistent.
## Drift checks (proxmox repo)
```bash
# If monorepo clone exists (default ~/projects/gov-portals-monorepo):
bash scripts/verify/check-gov-portal-workflow-canonical-strings.sh
# Full VM routing + parity (inventory, matrix, deploy-targets, operational template):
bash scripts/verify/validate-vm-routing-parity.sh
```
When you change **semantic** steps (pnpm filter names, Phoenix `target`, monorepo URL), update **Pattern A** repos **and** Pattern B templates **and** `gov-portals-runtime.v1.json` in one commit series.

View File

@@ -0,0 +1,24 @@
# Gitea Actions workflow templates
Copy one of these into **your repo** as `.gitea/workflows/<workflow-name>.yml`, then set repo **Secrets** in Gitea (`PHOENIX_DEPLOY_URL`, `PHOENIX_DEPLOY_TOKEN`, and **`GITEA_TOKEN`** when the workflow clones `gov-portals-monorepo` for portal CI).
| Template | Use when |
|----------|----------|
| [`deploy-via-phoenix-api.yml`](deploy-via-phoenix-api.yml) | App/service with a row in `phoenix-deploy-api/deploy-targets.json` |
| [`validate-only.yml`](validate-only.yml) | Libraries/docs — CI gate only, no VM deploy |
| **[`repos/`](repos/README.md)** | **Concrete YAML** for DBIS, CROMERO, CurrenciCombo — copy into those Gitea repos |
See [docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md](../../docs/04-configuration/GITEA_REPO_VM_CD_CI_MATRIX.md) for repo ↔ VM mapping.
**Operator checklist:** [docs/00-meta/GITEA_CD_OPERATOR_CHECKLIST.md](../../docs/00-meta/GITEA_CD_OPERATOR_CHECKLIST.md).
## Postgres / Prisma in Actions (self-hosted `act_runner`)
When a workflow declares **`services: postgres:`** (GitHub Actions style):
1. **`DATABASE_URL`** (and Prisma) should use host **`postgres`** (the service id), **not** **`127.0.0.1`** / **`localhost`** — the job runs in Docker on the runner.
2. Runners managed from this repo must keep **`container.network`** **empty** in **`config/gitea-act-runner/config-*.yaml`** so act_runner creates a **per-job** network. See **`docs/04-configuration/GITEA_ACT_RUNNER_SETUP.md`** troubleshooting (**P1001**).
Examples in this monorepo: **`the-order/.github/workflows/ci.yml`**, **`dbis_core/.github/workflows/ci.yml`**. Copy the same pattern into other Gitea repos (e.g. treasury / DealFlow) that run migrations in CI.
**If you install Postgres inside the job container** (e.g. `apt-get install postgresql` + `127.0.0.1`), avoid PostgreSQLs anonymous dollar-quote **`DO $$ ... $$`** inside **bash double-quoted** `run:` lines — **`$$`** is the shell PID. Prefer a **`pg_roles` existence check** + plain **`CREATE ROLE`**, or use a **`$tag$ ... $tag$`** block inside a **single-quoted** heredoc so bash never expands dollars.

View File

@@ -0,0 +1,31 @@
# Template — copy to YOUR_REPO/.gitea/workflows/<name>.yml and replace placeholders.
# Secrets (repo settings): PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy via Phoenix API
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
env:
PHOENIX_DEPLOY_URL: ${{ secrets.PHOENIX_DEPLOY_URL }}
PHOENIX_DEPLOY_TOKEN: ${{ secrets.PHOENIX_DEPLOY_TOKEN }}
TARGET: default
run: |
set -euo pipefail
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
REPO="${{ gitea.repository }}"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${PHOENIX_DEPLOY_URL}" \
-H "Authorization: Bearer ${PHOENIX_DEPLOY_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"${REPO}\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"${TARGET}\"}"

View File

@@ -0,0 +1,20 @@
# Ready-to-copy workflows (repo-specific)
Copy the matching file into **that** Gitea repo as `.gitea/workflows/<name>.yml`, then set secrets **`PHOENIX_DEPLOY_URL`**, **`PHOENIX_DEPLOY_TOKEN`**.
**Pattern A (monorepo split `ci.yml` + `deploy-live.yml`) vs Pattern B (single template file):** [PORTAL_WORKFLOW_PARITY.md](../PORTAL_WORKFLOW_PARITY.md).
| File | Gitea `repo` | `target` | Notes |
|------|----------------|----------|--------|
| [`dbis-portal-ci-and-live.yml`](dbis-portal-ci-and-live.yml) | `Gov_Web_Portals/DBIS` | `dbis-portal-live` | Pattern B single file; secrets include **`GITEA_TOKEN`**; monorepo uses Pattern A |
| [`iccc-portal-ci-and-live.yml`](iccc-portal-ci-and-live.yml) | `Gov_Web_Portals/ICCC` | `iccc-portal-live` | Same pattern as DBIS |
| [`omnl-portal-ci-and-live.yml`](omnl-portal-ci-and-live.yml) | `Gov_Web_Portals/OMNL` | `omnl-portal-live` | Same pattern |
| [`xom-portal-ci-and-live.yml`](xom-portal-ci-and-live.yml) | `Gov_Web_Portals/XOM` | `xom-portal-live` | Same pattern |
| [`dbis-portal-live.yml`](dbis-portal-live.yml) | `Gov_Web_Portals/DBIS` | `dbis-portal-live` | Deploy-only fallback (no `GITEA_TOKEN` CI) |
| [`cromero-default.yml`](cromero-default.yml) | `d-bis/CROMERO` | `default` | NPM ecosystem build |
| [`currencicombo-default.yml`](currencicombo-default.yml) | `d-bis/CurrenciCombo` | `default` | Phoenix CT 8604 |
| — | `d-bis/explorer-monorepo` | `explorer-live` | Already in **explorer-monorepo** submodule: `.gitea/workflows/deploy-live.yml` |
| — | `Gov_Web_Portals/CyberSecur-Global` | `default` | In **CyberSecur-Global** repo: `.gitea/workflows/deploy-to-ct7810.yml` |
| — | `d-bis/cross-chain-pmm-lps` | _(validate only)_ | `.gitea/workflows/validate-capital-efficiency.yml` |
`d-bis/proxmox` uses monorepo workflows in-repo (no copy from here).

View File

@@ -0,0 +1,24 @@
# Copy to d-bis/CROMERO → .gitea/workflows/deploy-via-phoenix.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy CROMERO (Phoenix)
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"d-bis/CROMERO\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"

View File

@@ -0,0 +1,24 @@
# Copy to d-bis/CurrenciCombo → .gitea/workflows/deploy-via-phoenix.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy CurrenciCombo (Phoenix)
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"d-bis/CurrenciCombo\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"default\"}"

View File

@@ -0,0 +1,62 @@
# Copy to Gov_Web_Portals/DBIS → .gitea/workflows/deploy-portal-live.yml (or a second workflow file).
# Pattern B (single file). Monorepo submodules use Pattern A — see ../PORTAL_WORKFLOW_PARITY.md
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN, GITEA_TOKEN (read access to gov-portals-monorepo for CI).
#
# verify: shallow-clone monorepo, overlay this repo into DBIS/, run lint + typecheck (workspace deps).
# deploy: POST Phoenix with full sha (optional: set PHOENIX_DEPLOY_VERIFY_SHA_ON_BRANCH=1 on Phoenix host).
name: CI and deploy DBIS portal (Phoenix)
concurrency:
group: gov-portal-dbis-phoenix-deploy
cancel-in-progress: false
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: portal-src
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@8.15.0 --activate
- name: Clone monorepo and overlay DBIS
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
test -n "${GITEA_TOKEN:-}"
git clone --depth 1 --branch main "https://oauth2:${GITEA_TOKEN}@gitea.d-bis.org/Gov_Web_Portals/gov-portals-monorepo.git" /tmp/gwp
rm -rf /tmp/gwp/DBIS
mkdir -p /tmp/gwp/DBIS
rsync -a --delete portal-src/ /tmp/gwp/DBIS/
- name: pnpm install, lint, typecheck
run: |
cd /tmp/gwp
pnpm install --frozen-lockfile
pnpm --filter portal-dbis lint
pnpm --filter portal-dbis run typecheck
deploy:
needs: [verify]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/DBIS\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"dbis-portal-live\"}"

View File

@@ -0,0 +1,27 @@
# Minimal deploy-only workflow (no monorepo CI). Prefer dbis-portal-ci-and-live.yml when the repo
# can store GITEA_TOKEN for cloning Gov_Web_Portals/gov-portals-monorepo in Actions.
# Monorepo Pattern A: ../PORTAL_WORKFLOW_PARITY.md
# Copy to Gov_Web_Portals/DBIS → .gitea/workflows/deploy-portal-live.yml
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN
name: Deploy DBIS portal (Phoenix)
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/DBIS\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"dbis-portal-live\"}"

View File

@@ -0,0 +1,59 @@
# Copy to Gov_Web_Portals/ICCC → .gitea/workflows/deploy-portal-live.yml
# Pattern B (single file). Monorepo: ../PORTAL_WORKFLOW_PARITY.md
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN, GITEA_TOKEN
name: CI and deploy ICCC portal (Phoenix)
concurrency:
group: gov-portal-iccc-phoenix-deploy
cancel-in-progress: false
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: portal-src
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@8.15.0 --activate
- name: Clone monorepo and overlay ICCC
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
test -n "${GITEA_TOKEN:-}"
git clone --depth 1 --branch main "https://oauth2:${GITEA_TOKEN}@gitea.d-bis.org/Gov_Web_Portals/gov-portals-monorepo.git" /tmp/gwp
rm -rf /tmp/gwp/ICCC
mkdir -p /tmp/gwp/ICCC
rsync -a --delete portal-src/ /tmp/gwp/ICCC/
- name: pnpm install, lint, typecheck
run: |
cd /tmp/gwp
pnpm install --frozen-lockfile
pnpm --filter portal-iccc lint
pnpm --filter portal-iccc run typecheck
deploy:
needs: [verify]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/ICCC\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"iccc-portal-live\"}"

View File

@@ -0,0 +1,59 @@
# Copy to Gov_Web_Portals/OMNL → .gitea/workflows/deploy-portal-live.yml
# Pattern B (single file). Monorepo: ../PORTAL_WORKFLOW_PARITY.md
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN, GITEA_TOKEN
name: CI and deploy OMNL portal (Phoenix)
concurrency:
group: gov-portal-omnl-phoenix-deploy
cancel-in-progress: false
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: portal-src
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@8.15.0 --activate
- name: Clone monorepo and overlay OMNL
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
test -n "${GITEA_TOKEN:-}"
git clone --depth 1 --branch main "https://oauth2:${GITEA_TOKEN}@gitea.d-bis.org/Gov_Web_Portals/gov-portals-monorepo.git" /tmp/gwp
rm -rf /tmp/gwp/OMNL
mkdir -p /tmp/gwp/OMNL
rsync -a --delete portal-src/ /tmp/gwp/OMNL/
- name: pnpm install, lint, typecheck
run: |
cd /tmp/gwp
pnpm install --frozen-lockfile
pnpm --filter portal-omnl lint
pnpm --filter portal-omnl run typecheck
deploy:
needs: [verify]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/OMNL\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"omnl-portal-live\"}"

View File

@@ -0,0 +1,59 @@
# Copy to Gov_Web_Portals/XOM → .gitea/workflows/deploy-portal-live.yml
# Pattern B (single file). Monorepo: ../PORTAL_WORKFLOW_PARITY.md
# Secrets: PHOENIX_DEPLOY_URL, PHOENIX_DEPLOY_TOKEN, GITEA_TOKEN
name: CI and deploy XOM portal (Phoenix)
concurrency:
group: gov-portal-xom-phoenix-deploy
cancel-in-progress: false
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: portal-src
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@8.15.0 --activate
- name: Clone monorepo and overlay XOM
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
test -n "${GITEA_TOKEN:-}"
git clone --depth 1 --branch main "https://oauth2:${GITEA_TOKEN}@gitea.d-bis.org/Gov_Web_Portals/gov-portals-monorepo.git" /tmp/gwp
rm -rf /tmp/gwp/XOM
mkdir -p /tmp/gwp/XOM
rsync -a --delete portal-src/ /tmp/gwp/XOM/
- name: pnpm install, lint, typecheck
run: |
cd /tmp/gwp
pnpm install --frozen-lockfile
pnpm --filter portal-xom lint
pnpm --filter portal-xom run typecheck
deploy:
needs: [verify]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Trigger Phoenix deployment
run: |
SHA="$(git rev-parse HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
curl -sSf --connect-timeout 10 --max-time 3600 \
-X POST "${{ secrets.PHOENIX_DEPLOY_URL }}" \
-H "Authorization: Bearer ${{ secrets.PHOENIX_DEPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"Gov_Web_Portals/XOM\",\"sha\":\"${SHA}\",\"branch\":\"${BRANCH}\",\"target\":\"xom-portal-live\"}"

View File

@@ -0,0 +1,18 @@
# Template — copy to YOUR_REPO/.gitea/workflows/validate.yml — adjust run steps.
name: Validate
on:
push:
branches: [main, master]
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Placeholder validation
run: |
echo "Replace this step with repo-specific checks (e.g. npm test, forge test)."

Some files were not shown because too many files have changed in this diff Show More