Files
explorer-monorepo/frontend/public/chain138-command-center.html
defiQUG f46bd213ba refactor: rename SolaceScanScout to Solace and update related configurations
- Updated branding from "SolaceScanScout" to "Solace" across various files including deployment scripts, API responses, and documentation.
- Changed default base URL for Playwright tests and updated security headers to reflect the new branding.
- Enhanced README and API documentation to include new authentication endpoints and product access details.

This refactor aligns the project branding and improves clarity in the API documentation.
2026-04-10 12:52:17 -07:00

749 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Chain 138 — Visual Command Center</title>
<!-- Mermaid: local copy preferred; runtime fallback loader below -->
<script src="/thirdparty/mermaid.min.js"></script>
<style>
:root {
--bg: #0b0f14;
--panel: #0f172a;
--header: #111827;
--border: #1f2937;
--text: #e6edf3;
--muted: #94a3b8;
--accent: #2563eb;
--accent-hover: #1d4ed8;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, sans-serif;
background: var(--bg);
color: var(--text);
min-height: 100vh;
}
header {
padding: 1rem 1.25rem;
background: var(--header);
border-bottom: 1px solid var(--border);
}
header h1 {
margin: 0;
font-size: 1.25rem;
font-weight: 700;
}
header p {
margin: 0.35rem 0 0;
font-size: 0.875rem;
color: var(--muted);
max-width: 52rem;
line-height: 1.45;
}
.toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.5rem;
padding: 0.65rem 1rem;
border-bottom: 1px solid var(--border);
background: rgba(17, 24, 39, 0.85);
position: sticky;
top: 0;
z-index: 10;
}
.tabs {
display: flex;
flex-wrap: wrap;
gap: 0.25rem;
}
.tab {
padding: 0.5rem 0.85rem;
cursor: pointer;
border: 1px solid transparent;
border-radius: 8px;
font-size: 0.8125rem;
font-weight: 600;
color: var(--muted);
background: transparent;
}
.tab:hover {
color: var(--text);
background: var(--border);
}
.tab.active {
color: #fff;
background: var(--accent);
border-color: var(--accent-hover);
}
.toolbar a.back {
margin-left: auto;
font-size: 0.8125rem;
color: #93c5fd;
text-decoration: none;
}
.toolbar a.back:hover { text-decoration: underline; }
.content {
display: none;
padding: 1.25rem;
max-width: 120rem;
margin: 0 auto;
}
.content.active { display: block; }
.panel-desc {
color: var(--muted);
font-size: 0.875rem;
line-height: 1.5;
margin-bottom: 1rem;
max-width: 56rem;
}
.mermaid-wrap {
background: var(--panel);
padding: 1.25rem;
border-radius: 12px;
border: 1px solid var(--border);
overflow-x: auto;
margin-bottom: 1.25rem;
}
.mermaid-wrap h3 {
margin: 0 0 0.75rem;
font-size: 0.95rem;
font-weight: 700;
color: #cbd5e1;
}
.mermaid-wrap + .mermaid-wrap { margin-top: 0.5rem; }
footer {
padding: 1.5rem;
border-top: 1px solid var(--border);
font-size: 0.75rem;
color: var(--muted);
text-align: center;
}
footer code { color: #a5b4fc; }
.status-note {
margin: 0.75rem 1.25rem 0;
padding: 0.85rem 1rem;
border-radius: 12px;
border: 1px solid #334155;
background: rgba(15, 23, 42, 0.8);
color: var(--muted);
font-size: 0.875rem;
line-height: 1.5;
}
.status-note a {
color: #93c5fd;
text-decoration: none;
}
.status-note a:hover { text-decoration: underline; }
</style>
</head>
<body>
<header>
<h1>Chain 138 — deployment and liquidity topology</h1>
<p>Operator-style view of the architecture in <code>docs/02-architecture/SMOM_DBIS_138_FULL_DEPLOYMENT_FLOW_MAP.md</code>. Diagrams are informational only; contract addresses live in explorer config and repo references. The main explorer remains the canonical live operational surface. Deep links: <code>?tab=mission-control</code> or numeric <code>?tab=0</code><code>8</code> (slug per tab).</p>
</header>
<div class="status-note" id="mermaid-status">
Loading local diagram assets. If the local Mermaid bundle is unavailable, the page will try a trusted CDN fallback automatically.
</div>
<div class="status-note" id="command-center-fallback">
If diagram rendering is unavailable, use the main explorer operational surfaces directly:
<a href="/operations">Operations Hub</a>,
<a href="/bridge">Bridge Monitoring</a>,
<a href="/routes">Routes</a>,
<a href="/system">System</a>,
and <a href="/operator">Operator</a>.
</div>
<div class="toolbar">
<div class="tabs" role="tablist" aria-label="Topology panels">
<button type="button" id="tab-0" class="tab active" role="tab" aria-selected="true" aria-controls="panel-0" data-tab="0" tabindex="0">Master map</button>
<button type="button" id="tab-1" class="tab" role="tab" aria-selected="false" aria-controls="panel-1" data-tab="1" tabindex="-1">Network</button>
<button type="button" id="tab-2" class="tab" role="tab" aria-selected="false" aria-controls="panel-2" data-tab="2" tabindex="-1">Stack</button>
<button type="button" id="tab-3" class="tab" role="tab" aria-selected="false" aria-controls="panel-3" data-tab="3" tabindex="-1">Flows</button>
<button type="button" id="tab-4" class="tab" role="tab" aria-selected="false" aria-controls="panel-4" data-tab="4" tabindex="-1">Cross-chain</button>
<button type="button" id="tab-5" class="tab" role="tab" aria-selected="false" aria-controls="panel-5" data-tab="5" tabindex="-1">Public cW</button>
<button type="button" id="tab-6" class="tab" role="tab" aria-selected="false" aria-controls="panel-6" data-tab="6" tabindex="-1">Off-chain</button>
<button type="button" id="tab-7" class="tab" role="tab" aria-selected="false" aria-controls="panel-7" data-tab="7" tabindex="-1">Integrations</button>
<button type="button" id="tab-8" class="tab" role="tab" aria-selected="false" aria-controls="panel-8" data-tab="8" tabindex="-1">Mission Control</button>
</div>
<a class="back" href="/operations">Back to Operations</a>
</div>
<!-- 0 Master -->
<div class="content active" id="panel-0" role="tabpanel" aria-labelledby="tab-0">
<p class="panel-desc">Hub, leaf endings, CCIP destinations, Alltra, the dedicated Avalanche cW corridor, the public cW mesh, and pending programs. Mainnet cW mint corridors and the optional TRUU rail are summarized under the Ethereum anchor.</p>
<div class="mermaid-wrap"><div class="mermaid" id="g-master">
flowchart TB
subgraph LEAF_INGRESS["Leaves — access to 138"]
WU[Wallets · MetaMask Snaps · Ledger · Chainlist · SDKs · ethers.js]
OPS[Operators · Foundry scripts · relay · systemd · deploy hooks]
RPCPUB[Public RPC FQDNs · thirdweb mirrors]
FB[Fireblocks Web3 RPC]
end
subgraph LEAF_EDGE["Leaves — services that index or front 138"]
EXP[Explorer · Blockscout · token-aggregation]
INFO[info.defi-oracle.io]
DAPP[dapp.d-bis.org bridge UI]
DBIS[dbis-api Core hosts]
X402[x402 payment API]
MCP[MCP PMM controller]
end
subgraph HUB["CHAIN 138 — origin hub"]
C138["Besu EVM · tokens core · DODO PMM V2/V3 · RouterV2 · UniV3 / Balancer / Curve / 1inch pilots · CCIP bridges + router · AlltraAdapter · BridgeVault · ISO channels · mirror reserve vault settlement · Lockbox · Truth / Tron / Solana adapters"]
end
subgraph CCIP_ETH["Ethereum 1 — CCIP anchor"]
ETH1["WETH9 / WETH10 bridges · CCIPRelayRouter · RelayBridge · Logger · optional trustless stack"]
LEAF_ETH["Leaf — Mainnet native DEX venues · Li.Fi touchpoints on other chains · first-wave cW DODO pools · optional TRUU PMM rail"]
end
subgraph CCIP_L2["Other live CCIP EVM destinations"]
L2CLU["OP 10 · Base 8453 · Arb 42161 · Polygon 137 · BSC 56 · Avax 43114 · Gnosis 100 · Celo 42220 · Cronos 25"]
LEAF_L2["Leaf — per-chain native DEX · cW token transport · partial edge pools"]
end
subgraph ALLTRA["ALL Mainnet 651940"]
A651["AlltraAdapter peer · AUSDT · WETH · WALL · HYDX · DEX env placeholders"]
LEAF_651["Leaf — ALL native venues when configured"]
end
subgraph SPECIAL["Dedicated corridor from 138"]
AVAXCW["138 cUSDT to Avax cWUSDT mint path"]
LEAF_AVAX["Leaf — recipient on 43114"]
end
subgraph CW_MESH["Public cW GRU mesh"]
CW["Cross-public-EVM token matrix · pool design · Mainnet DODO concentration"]
end
subgraph PENDING["Pending separate scaffold"]
WEMIX[Wemix 1111 CCIP pending]
XDC[XDC Zero parallel program]
SCAFF[Etherlink Tezos OP L2 design]
PNON[Truth pointer · Tron adapter · Solana partial]
end
WU --> RPCPUB
RPCPUB --> C138
WU --> C138
OPS --> C138
EXP --> C138
INFO --> C138
DAPP --> C138
DBIS --> C138
X402 --> C138
MCP --> C138
FB --> C138
C138 <--> ETH1
C138 <--> L2CLU
C138 <--> A651
C138 --> AVAXCW
AVAXCW --> LEAF_AVAX
ETH1 <--> L2CLU
ETH1 --> LEAF_ETH
L2CLU --> LEAF_L2
A651 --> LEAF_651
CW -.->|pool and peg design| LEAF_ETH
CW -.->|token mesh| L2CLU
C138 -.-> WEMIX
C138 -.-> XDC
C138 -.-> SCAFF
C138 -.-> PNON
</div></div>
</div>
<!-- 1 Network -->
<div class="content" id="panel-1" role="tabpanel" aria-labelledby="tab-1" hidden>
<p class="panel-desc">Chain 138 to the public EVM mesh, Alltra, pending or scaffold targets, Avalanche cW minting, and the separate Mainnet cW mint corridor that sits alongside the standard WETH-class CCIP rail.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart TB
subgraph C138["Chain 138 — primary"]
CORE[Core registry vault oracle ISO router]
PMM[DODO PMM V2 DVM + pools]
R2[EnhancedSwapRouterV2]
D3[D3MM pilot]
CCIPB[CCIP WETH9 WETH10 bridges]
ALLA[AlltraAdapter]
ADP[Truth Tron Solana adapters partial]
end
subgraph PUB["Public EVM mesh (cW*)"]
E1[Ethereum 1]
E10[Optimism 10]
E25[Cronos 25]
E56[BSC 56]
E100[Gnosis 100]
E137[Polygon 137]
E42161[Arbitrum 42161]
E43114[Avalanche 43114]
E8453[Base 8453]
E42220[Celo 42220]
end
subgraph PEND["Pending or separate"]
WEMIX[Wemix 1111 CCIP pending]
XDC[XDC Zero parallel program]
SCAFF[Etherlink Tezos OP L2 scaffold design]
end
subgraph A651["ALL Mainnet 651940"]
ALLTOK[AUSDT USDC WETH WALL HYDX]
end
C138 -->|CCIP WETH| PUB
C138 -->|CCIP WETH| E1
C138 -->|mainnet cW mint corridor| E1
C138 -->|AlltraAdapter| A651
PUB -->|CCIP return| C138
E1 -->|CCIP return| C138
C138 -.->|operator completion| WEMIX
C138 -.->|not CCIP matrix row| XDC
C138 -.->|future gated| SCAFF
C138 -->|avax cw corridor| E43114
</div></div>
<p class="panel-desc">Topology note: Mainnet now represents two Ethereum-facing patterns in production, the standard WETH-class CCIP rail and the dedicated <code>cUSDC/cUSDT -&gt; cWUSDC/cWUSDT</code> mint corridor.</p>
</div>
<!-- 2 Stack -->
<div class="content" id="panel-2" role="tabpanel" aria-labelledby="tab-2" hidden>
<p class="panel-desc">On-chain layers: tokens, core, liquidity, cross-domain, reserve and settlement.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart TB
subgraph L1["Tokens and compliance"]
CT[cUSDT · cUSDC · cEUR* · cXAU* · mirrors · USDT · USDC]
GEN[WETH WETH10 LINK]
end
subgraph L2["Core infrastructure"]
REG[Compliance TokenFactory TokenRegistry BridgeVault]
POL[PolicyManager DebtRegistry FeeCollector]
ISO[ISO20022Router]
end
subgraph L3["Liquidity and execution"]
DVM[DVMFactory VendingMachine DODOPMMIntegration]
PRV[DODOPMMProvider PrivatePoolRegistry]
R2[EnhancedSwapRouterV2]
VEN[Uniswap v3 lane Balancer Curve 1inch pilots]
D3[D3Oracle D3Vault D3Proxy D3MMFactory]
end
subgraph L4["Cross-domain"]
CCIP[CCIP Router CCIPWETH9 CCIPWETH10]
ALL[AlltraAdapter]
LBX[Lockbox138]
CH[PaymentChannel Mirror AddressMapper]
end
subgraph L5["Reserve vault settlement"]
RS[ReserveSystem OraclePriceFeed]
VF[VaultFactory Ledger Liquidation XAUOracle]
MSR[MerchantSettlementRegistry WithdrawalEscrow]
end
L1 --> L2
L2 --> L3
L3 --> R2
R2 --> VEN
L2 --> L4
L2 --> L5
DVM --> PRV
</div></div>
</div>
<!-- 3 Flows -->
<div class="content" id="panel-3" role="tabpanel" aria-labelledby="tab-3" hidden>
<p class="panel-desc">Same-chain 138: PMM pools, RouterV2 venues, D3 pilot.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart LR
subgraph inputs["Typical inputs"]
U1[cUSDT]
U2[cUSDC]
U3[USDT mirror]
U4[USDC mirror]
U5[cEURT]
U6[cXAUC]
end
subgraph path_pmm["DODO PMM"]
INT[DODOPMMIntegration]
POOL[Stable pools XAU public pools Private XAU registry]
end
subgraph path_r2["Router v2"]
R2[EnhancedSwapRouterV2]
UV3[Uniswap v3 WETH stable]
PILOT[Balancer Curve 1inch]
end
subgraph path_d3["Pilot"]
D3[D3MM WETH10 pilot pool]
end
inputs --> INT
INT --> POOL
inputs --> R2
R2 --> UV3
R2 --> PILOT
GEN2[WETH WETH10] --> R2
GEN2 --> D3
</div></div>
</div>
<!-- 4 Cross-chain -->
<div class="content" id="panel-4" role="tabpanel" aria-labelledby="tab-4" hidden>
<p class="panel-desc">CCIP transport, Alltra round-trip, the dedicated c-to-cW mint corridors, and the orchestrated swap-bridge-swap target.</p>
<div class="mermaid-wrap">
<h3>CCIP — WETH primary transport</h3>
<div class="mermaid">
sequenceDiagram
participant U as User or bot
participant C138 as Chain 138
participant BR as CCIPWETH9 or WETH10 bridge
participant R as CCIP Router
participant D as Destination EVM
U->>C138: Fund WETH bridge fee LINK
U->>BR: Initiate cross-chain WETH transfer
BR->>R: CCIP message
R->>D: Deliver WETH class asset
Note over D: Native DEX or cW pools where deployed
D->>R: Optional return leg
R->>C138: Inbound to receiver bridge
</div>
</div>
<div class="mermaid-wrap">
<h3>Alltra — 138 to ALL Mainnet</h3>
<div class="mermaid">
flowchart LR
A[Chain 138] -->|AlltraAdapter| B[ALL 651940]
B -->|AlltraAdapter| A
</div>
</div>
<div class="mermaid-wrap">
<h3>Special corridors — c* to cW* mint</h3>
<div class="mermaid">
flowchart LR
S1[cUSDT on 138] -->|avax cw relay mint| T1[cWUSDT on Avalanche]
S2[cUSDC on 138] -->|mainnet relay mint| T2[cWUSDC on Mainnet]
S3[cUSDT on 138] -->|mainnet relay mint| T3[cWUSDT on Mainnet]
</div>
</div>
<div class="mermaid-wrap">
<h3>Orchestrated swap-bridge-swap (design target)</h3>
<div class="mermaid">
flowchart LR
Q[QuoteService POST api bridge quote] --> S1[Source leg e.g. 138 PMM]
S1 --> BR[Bridge CCIP Alltra or special]
BR --> S2[Destination leg DEX or cW pool]
</div>
</div>
</div>
<!-- 5 Public cW -->
<div class="content" id="panel-5" role="tabpanel" aria-labelledby="tab-5" hidden>
<p class="panel-desc">Ethereum Mainnet first-wave cW DODO mesh, plus the separate optional TRUU PMM rail. See PMM_DEX_ROUTING_STATUS and cross-chain-pmm-lps deployment-status for live detail.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart TB
subgraph ETH["Ethereum Mainnet"]
CW[cWUSDT cWUSDC cWEURC cWGBPC cWAUDC cWCADC cWJPYC cWCHFC]
HUB[USDC USDT]
DODO[DODO PMM Wave 1 pools]
end
CW <--> DODO
HUB <--> DODO
</div></div>
<p class="panel-desc">TRUU note: the optional Mainnet Truth rail is a separate volatile PMM lane and is not part of the default cW stable mesh.</p>
<div class="mermaid-wrap">
<h3>Mainnet TRUU PMM (volatile, optional)</h3>
<div class="mermaid">
flowchart LR
subgraph TRUUmesh["Mainnet TRUU rail optional"]
CWu[cWUSDT or cWUSDC]
TRUU[TRUU ERC-20]
PMM[DODO PMM integration]
end
CWu <--> PMM
TRUU <--> PMM
</div>
</div>
</div>
<!-- 6 Off-chain -->
<div class="content" id="panel-6" role="tabpanel" aria-labelledby="tab-6" hidden>
<p class="panel-desc">Wallets, edge FQDNs, APIs, operators feeding Chain 138 RPC, plus the explorer-hosted Mission Control visual surfaces.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart TB
subgraph users["Wallets and tools"]
MM[MetaMask custom network Snaps]
MCP[MCP PMM controller allowlist 138]
end
subgraph edge["Public edge"]
EXP[explorer.d-bis.org Blockscout token-aggregation]
MC[Mission Control visual panels]
INFO[info.defi-oracle.io]
DAPP[dapp.d-bis.org bridge UI]
RPC[rpc-http-pub.d-bis.org public RPC]
end
subgraph api["APIs"]
TA[token-aggregation v1 v2 quote pools bridge routes]
DBIS[dbis-api Core runtime]
X402[x402-api readiness surface]
end
subgraph ops["Operator"]
REL[CCIP relay systemd]
SCR[smom-dbis-138 forge scripts]
end
users --> edge
EXP --> MC
edge --> api
MC --> api
api --> C138[Chain 138 RPC]
ops --> C138
</div></div>
<p class="panel-desc">Mission Control note: the live visual display lives in the main explorer SPA, especially the bridge-monitoring and operator surfaces. This command center stays focused on the static architecture view.</p>
</div>
<!-- 7 Integrations -->
<div class="content" id="panel-7" role="tabpanel" aria-labelledby="tab-7" hidden>
<p class="panel-desc">Contract families vs wallet/client integrations not spelled out in every zoom diagram. Wormhole remains docs/MCP scope, not canonical 138 addresses.</p>
<div class="mermaid-wrap"><div class="mermaid">
flowchart LR
subgraph chain138_tech["Chain 138 contract families"]
A[Besu EVM]
B[ERC-20 core registries]
C[DODO V2 V3]
D[UniV3 Bal Curve 1inch pilots]
E[CCIP bridges router]
F[Alltra Vault ISO channels]
end
subgraph public_integrations["Wallet and client integrations"]
L[Ledger]
CL[Chainlist]
TW[thirdweb RPC]
ETH[ethers.js]
MM[MetaMask Snaps]
end
chain138_tech --> public_integrations
</div></div>
</div>
<!-- 8 Mission Control -->
<div class="content" id="panel-8" role="tabpanel" aria-labelledby="tab-8" hidden>
<p class="panel-desc">Mission Control is the live explorer surface for SSE health, labeled bridge traces, cached liquidity proxy results, and operator-facing API references. The interactive controls live in the main explorer SPA; this tab is the architecture companion with direct entry points.</p>
<div class="mermaid-wrap">
<h3>Mission Control visual flow</h3>
<div class="mermaid">
flowchart LR
UI[Explorer SPA Mission Control panels]
SSE[SSE stream]
TRACE[Bridge trace]
LIQ[Liquidity proxy]
T4[Track 4 script API]
API[Explorer Go API]
UP[Blockscout and token-aggregation upstreams]
UI --> SSE
UI --> TRACE
UI --> LIQ
UI -.->|operator-only| T4
SSE --> API
TRACE --> API
LIQ --> API
T4 --> API
TRACE --> UP
LIQ --> UP
</div>
</div>
<div class="mermaid-wrap">
<h3>Live entry points</h3>
<p class="panel-desc">Use the main explorer UI for the visual Mission Control experience, then open the raw APIs when you need direct payloads or verification.</p>
<div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:0.75rem;">
<a href="/operator" style="display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">Operator hub</div><div style="color:var(--muted); line-height:1.5;">Explorer SPA surface with Mission Control and operator-facing API references.</div></a>
<a href="/bridge" style="display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">Bridge monitoring</div><div style="color:var(--muted); line-height:1.5;">Includes the visible Mission Control bridge-trace card and SSE stream entry point.</div></a>
<a href="/explorer-api/v1/mission-control/stream" target="_blank" rel="noopener noreferrer" style="display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">SSE stream</div><div style="color:var(--muted); line-height:1.5;"><code>GET /explorer-api/v1/mission-control/stream</code></div></a>
<a href="/explorer-api/v1/mission-control/bridge/trace?tx=0x2f31d4f9a97be754b800f4af1a9eedf3b107d353bfa1a19e81417497a76c05c2" target="_blank" rel="noopener noreferrer" style="display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">Bridge trace example</div><div style="color:var(--muted); line-height:1.5;"><code>GET /explorer-api/v1/mission-control/bridge/trace</code></div></a>
<a href="/explorer-api/v1/mission-control/liquidity/token/0x93E66202A11B1772E55407B32B44e5Cd8eda7f22/pools" target="_blank" rel="noopener noreferrer" style="display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">Liquidity example</div><div style="color:var(--muted); line-height:1.5;"><code>GET /explorer-api/v1/mission-control/liquidity/token/{address}/pools</code></div></a>
<div style="border:1px solid var(--border); border-radius:14px; padding:1rem; background:var(--panel);"><div style="font-weight:700; margin-bottom:0.3rem;">Track 4 script API</div><div style="color:var(--muted); line-height:1.5;"><code>POST /explorer-api/v1/track4/operator/run-script</code><br>Requires wallet auth, IP allowlisting, and backend allowlist config.</div></div>
</div>
</div>
</div>
<footer>
Source: <code>proxmox/docs/02-architecture/SMOM_DBIS_138_FULL_DEPLOYMENT_FLOW_MAP.md</code> — addresses: <code>config/smart-contracts-master.json</code> and CONTRACT_ADDRESSES_REFERENCE.
</footer>
<script>
(function () {
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
securityLevel: 'loose',
flowchart: { curve: 'basis', padding: 12 },
sequence: { actorMargin: 24, boxMargin: 8 }
});
var TAB_SLUGS = ['master', 'network', 'stack', 'flows', 'cross-chain', 'public-cw', 'off-chain', 'integrations', 'mission-control'];
var TAB_BY_NAME = {};
TAB_SLUGS.forEach(function (s, i) { TAB_BY_NAME[s] = i; });
var tabs = document.querySelectorAll('.tab');
var panels = document.querySelectorAll('.content[role="tabpanel"]');
var tablist = document.querySelector('[role="tablist"]');
var done = {};
function parseInitialTab() {
var q = new URLSearchParams(window.location.search).get('tab');
if (q == null || q === '') return 0;
var n = parseInt(q, 10);
if (!isNaN(n) && n >= 0 && n < tabs.length) return n;
var key = String(q).toLowerCase().trim().replace(/\s+/g, '-');
if (Object.prototype.hasOwnProperty.call(TAB_BY_NAME, key)) return TAB_BY_NAME[key];
return 0;
}
function ensureMermaid() {
if (window.mermaid && typeof window.mermaid.run === 'function') {
return Promise.resolve(window.mermaid);
}
return new Promise(function (resolve, reject) {
var script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js';
script.async = true;
script.onload = function () {
if (window.mermaid && typeof window.mermaid.run === 'function') resolve(window.mermaid);
else reject(new Error('Mermaid fallback loaded without runtime'));
};
script.onerror = function () {
reject(new Error('Mermaid fallback failed to load'));
};
document.head.appendChild(script);
});
}
function syncUrl(index) {
var slug = TAB_SLUGS[index] != null ? TAB_SLUGS[index] : String(index);
try {
var u = new URL(window.location.href);
u.searchParams.set('tab', slug);
history.replaceState(null, '', u.pathname + u.search + u.hash);
} catch (e) { /* file:// or restricted */ }
}
function setActive(index) {
if (index < 0) index = 0;
if (index >= tabs.length) index = tabs.length - 1;
tabs.forEach(function (t, i) {
var on = i === index;
t.classList.toggle('active', on);
t.setAttribute('aria-selected', on ? 'true' : 'false');
t.setAttribute('tabindex', on ? '0' : '-1');
});
panels.forEach(function (p, i) {
var on = i === index;
p.classList.toggle('active', on);
if (on) p.removeAttribute('hidden');
else p.setAttribute('hidden', '');
});
}
async function renderPanel(index) {
var panel = document.getElementById('panel-' + index);
if (!panel || done[index]) return;
done[index] = true;
var nodes = panel.querySelectorAll('.mermaid');
if (nodes.length) {
try {
await ensureMermaid();
await mermaid.run({ nodes: nodes });
var status = document.getElementById('mermaid-status');
if (status) status.textContent = 'Diagram assets loaded. This page is a public reference surface; the main explorer remains the canonical live operational view.';
} catch (e) {
console.error('Mermaid render failed for panel', index, e);
var statusError = document.getElementById('mermaid-status');
if (statusError) statusError.textContent = 'Diagram rendering failed. Use the Operations Hub or the main explorer for live operational surfaces.';
}
}
}
async function showTab(index, opts) {
opts = opts || {};
setActive(index);
await renderPanel(index);
if (!opts.skipUrl) syncUrl(index);
}
tabs.forEach(function (tab) {
tab.addEventListener('click', function () {
var i = parseInt(tab.getAttribute('data-tab'), 10);
showTab(i);
});
});
if (tablist) {
tablist.addEventListener('keydown', function (e) {
var cur = -1;
tabs.forEach(function (t, idx) {
if (t.getAttribute('aria-selected') === 'true') cur = idx;
});
if (cur < 0) return;
var next = cur;
if (e.key === 'ArrowRight') {
e.preventDefault();
next = (cur + 1) % tabs.length;
} else if (e.key === 'ArrowLeft') {
e.preventDefault();
next = (cur - 1 + tabs.length) % tabs.length;
} else if (e.key === 'Home') {
e.preventDefault();
next = 0;
} else if (e.key === 'End') {
e.preventDefault();
next = tabs.length - 1;
} else {
return;
}
showTab(next).then(function () {
tabs[next].focus();
});
});
}
async function boot() {
var initial = parseInitialTab();
await showTab(initial, { skipUrl: true });
try {
var u = new URL(window.location.href);
if (u.searchParams.has('tab')) syncUrl(initial);
} catch (e2) { /* ignore */ }
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', boot);
} else {
boot();
}
})();
</script>
</body>
</html>