Files
proxmox/scripts/verify/build-external-submission-packet-index.py
defiQUG 4ebf2d7902
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
chore(repo): sync operator workspace (config, scripts, docs, multi-chain)
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

158 lines
6.5 KiB
Python
Executable File

#!/usr/bin/env python3
"""Build an index of external submission packets and current probe artifacts."""
from __future__ import annotations
import json
from datetime import datetime, timezone
from pathlib import Path
from typing import Any
ROOT = Path(__file__).resolve().parents[2]
OUT_JSON = ROOT / "reports/status/external-submission-packet-index-latest.json"
OUT_MD = ROOT / "docs/04-configuration/EXTERNAL_SUBMISSION_PACKET_INDEX.md"
PACKETS: list[dict[str, Any]] = [
{
"provider": "Etherscan",
"status": "repo_ready_external_acceptance_pending",
"primaryPacket": "docs/04-configuration/etherscan/CWUSDC_MAINNET_ETHERSCAN_PROFILE_PACKET.md",
"supporting": [
"docs/04-configuration/etherscan/CWUSDC_ETHERSCAN_E2E_RECOMMENDATIONS.md",
"docs/04-configuration/etherscan/CWUSDC_ETHERSCAN_VALUE_EXECUTION_PLAN.md",
"reports/status/cwusdc-etherscan-value-dossier-latest.json",
],
"nextRepoAction": "Refresh dossier and capture post-submit response evidence.",
},
{
"provider": "CoinGecko",
"status": "repo_ready_external_price_entry_missing",
"primaryPacket": "docs/04-configuration/coingecko/CWUSDC_MAINNET_TRACKER_SUBMISSION_PACKET.md",
"supporting": [
"docs/04-configuration/coingecko/CWUSDC_MAINNET_EXTERNAL_SUBMISSION_CHECKLIST.md",
"docs/04-configuration/coingecko/submissions/cwusdc-coingecko-listing-request-20260509.json",
"reports/status/cwusdc-external-trackers-live-latest.json",
],
"nextRepoAction": "Keep token-price API blocker visible and attach current supply/liquidity caveats.",
},
{
"provider": "CoinMarketCap",
"status": "dex_page_visible_full_value_acceptance_pending",
"primaryPacket": "docs/04-configuration/coingecko/CWUSDC_MAINNET_TRACKER_SUBMISSION_PACKET.md",
"supporting": [
"reports/status/token-aggregation-cmc-report-chain1-latest.json",
"reports/status/cmc-provider-report-sanity-latest.json",
"reports/status/cmc-top10-ecosystem-coverage-latest.json",
],
"nextRepoAction": "Use CMC sanity report to avoid overclaiming liquidity or quote-asset identity.",
},
{
"provider": "DexScreener",
"status": "api_not_indexing_pairs",
"primaryPacket": "docs/04-configuration/dexscreener/CWUSDC_DEXSCREENER_INDEXING_AND_PROFILE_PACKET_20260509.md",
"supporting": [
"reports/status/cwusdc-external-trackers-live-latest.json",
"reports/status/cwusdc-provider-handoff-latest.md",
],
"nextRepoAction": "Keep pair/profile request evidence updated after fresh public swap/liquidity events.",
},
{
"provider": "GeckoTerminal",
"status": "pool_api_visible_low_reserve",
"primaryPacket": "docs/04-configuration/coingecko/CWUSDC_MAINNET_TRACKER_SUBMISSION_PACKET.md",
"supporting": [
"reports/status/cwusdc-external-trackers-live-latest.json",
"reports/status/cmc-provider-report-sanity-latest.json",
],
"nextRepoAction": "Track reserve USD and 24h volume separately from listing acceptance.",
},
{
"provider": "MetaMask",
"status": "metadata_path_ready_price_provider_external",
"primaryPacket": "docs/04-configuration/metamask/METAMASK_ASSET_PRICE_PROVIDER_SUBMISSION_MATRIX.md",
"supporting": [
"docs/04-configuration/metamask/METAMASK_EIP747_CONTRACT_METADATA_REFERENCE_PACKET.md",
"docs/04-configuration/metamask/METAMASK_CWUSDC_API_FEED_SPIDER_WEB_RESEARCH.md",
"reports/status/cwusdc-provider-readiness-ci-latest.json",
],
"nextRepoAction": "Keep CAIP-19, EIP-747, logo URL, and external price-provider blockers aligned.",
},
]
def exists(path: str) -> bool:
return (ROOT / path).exists()
def table(headers: list[str], rows: list[list[Any]]) -> str:
def cell(value: Any) -> str:
if isinstance(value, list):
value = "<br>".join(str(item) for item in value)
return str(value).replace("|", "\\|").replace("\n", "<br>")
return "\n".join(
[
f"| {' | '.join(cell(header) for header in headers)} |",
f"| {' | '.join('---' for _ in headers)} |",
*[f"| {' | '.join(cell(value) for value in row)} |" for row in rows],
]
)
def main() -> int:
generated_at = datetime.now(timezone.utc).isoformat()
packets = []
for packet in PACKETS:
row = dict(packet)
row["primaryExists"] = exists(row["primaryPacket"])
row["supportingExists"] = [{"path": path, "exists": exists(path)} for path in row["supporting"]]
row["allArtifactsPresent"] = row["primaryExists"] and all(item["exists"] for item in row["supportingExists"])
packets.append(row)
payload = {
"schema": "external-submission-packet-index/v1",
"generatedAt": generated_at,
"summary": {
"providerCount": len(packets),
"allArtifactsPresent": all(row["allArtifactsPresent"] for row in packets),
"missingArtifactCount": sum(1 for row in packets if not row["allArtifactsPresent"]),
},
"packets": packets,
}
OUT_JSON.parent.mkdir(parents=True, exist_ok=True)
OUT_JSON.write_text(json.dumps(payload, indent=2) + "\n")
lines = [
"# External Submission Packet Index",
"",
f"- Generated: `{generated_at}`",
f"- All artifacts present: `{payload['summary']['allArtifactsPresent']}`",
"",
table(
["Provider", "Status", "Primary packet", "Supporting artifacts", "Next repo action"],
[
[
row["provider"],
row["status"],
f"`{row['primaryPacket']}` ({row['primaryExists']})",
[f"`{item['path']}` ({item['exists']})" for item in row["supportingExists"]],
row["nextRepoAction"],
]
for row in packets
],
),
"",
"## Boundary",
"",
"This index tracks repo-side evidence availability only. Provider submission, review, acceptance, and price propagation remain external states.",
]
OUT_MD.parent.mkdir(parents=True, exist_ok=True)
OUT_MD.write_text("\n".join(lines) + "\n")
print(f"Wrote {OUT_JSON.relative_to(ROOT)}")
print(f"Wrote {OUT_MD.relative_to(ROOT)}")
return 0
if __name__ == "__main__":
raise SystemExit(main())