chore: refresh deployment status and solana policies

This commit is contained in:
defiQUG
2026-04-18 12:05:17 -07:00
parent 0b089f1181
commit 5aa162e6b3
6 changed files with 2052 additions and 19 deletions

View File

@@ -1,15 +1,18 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Public chain IDs and hub stable per chain for cW* edge pools (EVM). Non-EVM networks used for interoperability are listed under nonEvm (no EIP-155 id).",
"version": "1.1.0",
"updated": "2026-04-03",
"description": "Public chain IDs and hub stable per chain for cW* edge pools (EVM). Non-EVM networks used for interoperability are listed under nonEvm (no EIP-155 id) with their own execution/oracle topology references.",
"version": "1.2.0",
"updated": "2026-04-17",
"nonEvm": [
{
"identifier": "Solana",
"vmKind": "SVM",
"caip2": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"hubStableNote": "SPL USDC/USDT hubs differ from EVM; cW* edge PMM topology TBD when a wrapped representation is defined",
"adapter": "SolanaAdapter"
"hubStableNote": "Primary Solana hubs are SPL USDC then SPL USDT; deep liquidity and single-sided edge pools are defined in the dedicated Solana configs rather than the EVM DODO PMM matrix.",
"adapter": "SolanaAdapter",
"liquidityMode": "non_evm_deep_plus_single_sided_edge",
"oraclePolicy": "cross-chain-pmm-lps/config/solana-oracle-policy.json",
"poolMatrix": "cross-chain-pmm-lps/config/solana-pool-matrix.json"
}
],
"chains": [

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,149 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Solana execution-oracle policy for the GRU v2 launch set bridged from Chain 138. Reference primacy remains upstream of public execution pools.",
"version": "1.0.0",
"updated": "2026-04-17",
"references": {
"referencePrimacyDoc": "docs/04-configuration/GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL.md",
"solanaRuntimeConfig": "config/solana-relay-runtime.json",
"lineupManifest": "config/solana-gru-bridge-lineup.json"
},
"hubStables": {
"primary": {
"symbol": "USDC",
"mintEnv": "SOLANA_HUB_USDC_MINT",
"mintFallback": "operator_fill_before_pool_deploy",
"role": "deep_and_edge_primary_quote"
},
"secondary": {
"symbol": "USDT",
"mintEnv": "SOLANA_HUB_USDT_MINT",
"mintFallback": "operator_fill_before_secondary_pool_deploy",
"role": "overflow_quote_and_route_diversifier"
}
},
"oracleClasses": {
"weth_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 30,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_eth_usd",
"chain138_wrapper_parity_eth_usd",
"svm_market_sanity_eth_usd"
]
},
"usd_parity": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 60,
"maxExecutionDeviationBps": 25,
"pauseOnStale": true,
"sources": [
"gru_reference_service_usd_parity",
"chain138_canonical_reserve_parity",
"svm_market_sanity_stable_usd"
]
},
"eur_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_eur_usd",
"chain138_canonical_eur_usd",
"institutional_fx_backup_eur_usd"
]
},
"gbp_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_gbp_usd",
"chain138_canonical_gbp_usd",
"institutional_fx_backup_gbp_usd"
]
},
"aud_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_aud_usd",
"chain138_canonical_aud_usd",
"institutional_fx_backup_aud_usd"
]
},
"cad_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_cad_usd",
"chain138_canonical_cad_usd",
"institutional_fx_backup_cad_usd"
]
},
"chf_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_chf_usd",
"chain138_canonical_chf_usd",
"institutional_fx_backup_chf_usd"
]
},
"jpy_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 90,
"maxExecutionDeviationBps": 50,
"pauseOnStale": true,
"sources": [
"gru_reference_service_jpy_usd",
"chain138_canonical_jpy_usd",
"institutional_fx_backup_jpy_usd"
]
},
"xau_usd": {
"targetQuote": "USDC",
"maxOracleAgeSeconds": 60,
"maxExecutionDeviationBps": 40,
"pauseOnStale": true,
"sources": [
"gru_reference_service_xau_usd",
"chain138_canonical_xau_usd",
"institutional_commodity_backup_xau_usd"
]
}
},
"assetOracleAssignments": {
"WETH": "weth_usd",
"WETH10": "weth_usd",
"cWUSDT": "usd_parity",
"cWUSDC": "usd_parity",
"cWAUSDT": "usd_parity",
"cWEURC": "eur_usd",
"cWEURT": "eur_usd",
"cWGBPC": "gbp_usd",
"cWGBPT": "gbp_usd",
"cWAUDC": "aud_usd",
"cWCADC": "cad_usd",
"cWCHFC": "chf_usd",
"cWJPYC": "jpy_usd",
"cWXAUC": "xau_usd",
"cWXAUT": "xau_usd"
},
"operatorRequirements": {
"requireFreshReference": true,
"requireDualSourceForFiatAndGold": true,
"pausePoolActionsWhenReferenceMissing": true,
"recordOracleSnapshotWithEachPoolAction": true
}
}

View File

@@ -0,0 +1,185 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Deep-pool and single-sided edge-pool topology for the Solana GRU v2 launch set.",
"version": "1.0.0",
"updated": "2026-04-17",
"references": {
"solanaRuntimeConfig": "config/solana-relay-runtime.json",
"oraclePolicy": "cross-chain-pmm-lps/config/solana-oracle-policy.json",
"lineupManifest": "config/solana-gru-bridge-lineup.json"
},
"hubStables": [
{
"symbol": "USDC",
"role": "primary",
"mintEnv": "SOLANA_HUB_USDC_MINT"
},
{
"symbol": "USDT",
"role": "secondary",
"mintEnv": "SOLANA_HUB_USDT_MINT"
}
],
"deepVenueOrder": [
"phoenix_clob",
"orca_clmm"
],
"edgeVenueOrder": [
"meteora_dlmm",
"orca_clmm"
],
"assets": [
{
"symbol": "WETH",
"oracleClass": "weth_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 500000, "singleSided": false },
{ "quoteSymbol": "USDC", "venue": "orca_clmm", "targetDepthUsd": 250000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 100000, "singleSided": true }
]
},
{
"symbol": "WETH10",
"oracleClass": "weth_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 250000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 75000, "singleSided": true }
]
},
{
"symbol": "cWUSDT",
"oracleClass": "usd_parity",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 400000, "singleSided": false },
{ "quoteSymbol": "USDT", "venue": "orca_clmm", "targetDepthUsd": 300000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 125000, "singleSided": true }
]
},
{
"symbol": "cWUSDC",
"oracleClass": "usd_parity",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 400000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDT", "venue": "meteora_dlmm", "targetDepthUsd": 125000, "singleSided": true }
]
},
{
"symbol": "cWAUSDT",
"oracleClass": "usd_parity",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 250000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 100000, "singleSided": true }
]
},
{
"symbol": "cWEURC",
"oracleClass": "eur_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 200000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 75000, "singleSided": true }
]
},
{
"symbol": "cWEURT",
"oracleClass": "eur_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 150000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 60000, "singleSided": true }
]
},
{
"symbol": "cWGBPC",
"oracleClass": "gbp_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 150000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 60000, "singleSided": true }
]
},
{
"symbol": "cWGBPT",
"oracleClass": "gbp_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 125000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 50000, "singleSided": true }
]
},
{
"symbol": "cWAUDC",
"oracleClass": "aud_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 125000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 50000, "singleSided": true }
]
},
{
"symbol": "cWCADC",
"oracleClass": "cad_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 125000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 50000, "singleSided": true }
]
},
{
"symbol": "cWCHFC",
"oracleClass": "chf_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 125000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 50000, "singleSided": true }
]
},
{
"symbol": "cWJPYC",
"oracleClass": "jpy_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 125000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 50000, "singleSided": true }
]
},
{
"symbol": "cWXAUC",
"oracleClass": "xau_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 225000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 80000, "singleSided": true }
]
},
{
"symbol": "cWXAUT",
"oracleClass": "xau_usd",
"deepPools": [
{ "quoteSymbol": "USDC", "venue": "phoenix_clob", "targetDepthUsd": 225000, "singleSided": false }
],
"edgePools": [
{ "quoteSymbol": "USDC", "venue": "meteora_dlmm", "targetDepthUsd": 80000, "singleSided": true }
]
}
]
}

View File

@@ -31,6 +31,8 @@ Validates `config/deployment-status.json` for minimum viable deployed graph. Use
- If `bridgeAvailable === true` on a chain, `cwTokens` must include at least **cWUSDT** and **cWUSDC** (phase 1).
- For each `pmmPool` and each `pmmPoolsVolatile[]` entry: `role` ∈ {defense, public_routing, truu_routing}; `feeBps` and `k` present; `base`/`quote` (or `tokenIn`/`tokenOut`) exist in `cwTokens` or `anchorAddresses` (e.g. mainnet **TRUU** under `anchorAddresses.TRUU`). Non-zero `poolAddress` must not be the zero address.
- For each `gasReferenceVenues[]` entry: `supported` must be explicit, `aggregatorOnly` is only valid for `1inch`, `supported=false` means the lane is explicitly unsupported (and can never be live), and `supported=true` with `live=false` / `routingVisible=false` means the lane is planned or staged.
- `aggregatorOnly=true` rows are routing overlays, not stand-alone live venues.
**Run:**

View File

@@ -78,6 +78,30 @@ function validatePoolEntries(chainId, pools, listLabel, knownTokens, errors) {
}
}
function validateUniswapV2Entries(chainId, pools, knownTokens, errors) {
for (let i = 0; i < pools.length; i++) {
const pool = pools[i];
const base = pool.base;
const quote = pool.quote;
if (!base || !knownTokens.has(base)) {
errors.push(`Chain ${chainId} uniswapV2Pools[${i}]: base "${base}" not in cwTokens or anchorAddresses`);
}
if (!quote || !knownTokens.has(quote)) {
errors.push(`Chain ${chainId} uniswapV2Pools[${i}]: quote "${quote}" not in cwTokens or anchorAddresses`);
}
if (!pool.poolAddress || looksPlaceholderAddress(String(pool.poolAddress).toLowerCase())) {
errors.push(`Chain ${chainId} uniswapV2Pools[${i}]: poolAddress must use a real deployed pair address`);
}
if (pool.venue && pool.venue !== 'uniswap_v2_pair') {
errors.push(`Chain ${chainId} uniswapV2Pools[${i}]: venue must be "uniswap_v2_pair" when set`);
}
if (pool.publicRoutingEnabled === true && (!pool.factoryAddress || !pool.routerAddress)) {
errors.push(`Chain ${chainId} uniswapV2Pools[${i}]: publicRoutingEnabled rows require factoryAddress and routerAddress`);
}
}
}
function main() {
const status = loadJson(DEPLOYMENT_STATUS_PATH);
const chains = status.chains || {};
@@ -89,6 +113,7 @@ function main() {
const anchorAddresses = chain.anchorAddresses || {};
const gasQuoteAddresses = chain.gasQuoteAddresses || {};
const pmmPools = chain.pmmPools || [];
const uniswapV2Pools = chain.uniswapV2Pools || [];
const pmmPoolsVolatile = chain.pmmPoolsVolatile || [];
const gasPmmPools = chain.gasPmmPools || [];
const gasReferenceVenues = chain.gasReferenceVenues || [];
@@ -110,6 +135,7 @@ function main() {
]);
validatePoolEntries(chainId, pmmPools, 'pmmPools', knownTokens, errors);
validateUniswapV2Entries(chainId, uniswapV2Pools, knownTokens, errors);
validatePoolEntries(chainId, pmmPoolsVolatile, 'pmmPoolsVolatile', knownTokens, errors);
validatePoolEntries(chainId, gasPmmPools, 'gasPmmPools', knownTokens, errors);
@@ -139,12 +165,18 @@ function main() {
if (!VALID_REFERENCE_PROTOCOLS.includes(venue.protocol)) {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: protocol must be one of ${VALID_REFERENCE_PROTOCOLS.join(', ')}`);
}
if (typeof venue.supported !== 'boolean') {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: supported must be set explicitly to true or false`);
}
if (!venue.familyKey || typeof venue.familyKey !== 'string') {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: familyKey required`);
continue;
}
if (!referenceVenuesByFamily.has(venue.familyKey)) referenceVenuesByFamily.set(venue.familyKey, []);
referenceVenuesByFamily.get(venue.familyKey).push(venue);
if (venue.aggregatorOnly === true && venue.protocol !== '1inch') {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: aggregatorOnly rows must use protocol "1inch"`);
}
if (isLiveRow(venue)) {
if (!VALID_NATIVE_REFERENCE_PROTOCOLS.includes(venue.protocol)) {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: live/routingVisible rows must use a native protocol contract, not "${venue.protocol}"`);
@@ -153,6 +185,12 @@ function main() {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: live/routingVisible venueAddress must use a native protocol contract, not a placeholder scaffold (${venue.venueAddress})`);
}
}
if (venue.supported === false && isLiveRow(venue)) {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: supported=false rows cannot be live/routingVisible`);
}
if (venue.supported === false && venue.protocol === '1inch' && venue.aggregatorOnly !== true) {
errors.push(`Chain ${chainId} gasReferenceVenues[${i}]: unsupported 1inch rows must be marked aggregatorOnly=true`);
}
}
for (const [familyKey, venues] of referenceVenuesByFamily.entries()) {