Add extraction and liquidity improvement pack
This commit is contained in:
211
config/extraction/canonical-exit-corridors.json
Normal file
211
config/extraction/canonical-exit-corridors.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:09Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"bridge_wallet_readiness": {
|
||||
"generated_at": "2026-04-16T02:03:09Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"corridors": [
|
||||
{
|
||||
"corridor_id": "chain138-stable-lp-to-eth-stables",
|
||||
"source_chain": "138",
|
||||
"source_asset": "Chain 138 stable LP claims",
|
||||
"source_action": "Remove liquidity from cUSDT/cUSDC + cUSDT/USDT + cUSDC/USDC pools",
|
||||
"bridge": "CW bridge corridor to Ethereum (manual-required verification of exact production path)",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC / cWUSDT",
|
||||
"final_exit_surface": "Ethereum mainnet DODO PMM direct stable exits",
|
||||
"final_asset": "Ethereum USDC / USDT or approved external stable wallet balances",
|
||||
"route_type": "internal withdrawal + bridge + public DEX exit",
|
||||
"status": "manual-required",
|
||||
"notes": [
|
||||
"LP ownership is directly verifiable on Chain 138.",
|
||||
"Wallet-specific read-only bridge preflight now confirms the canonical v1 cUSDT/cUSDC -> Mainnet cWUSDT/cWUSDC wiring and fee quote path.",
|
||||
"Bridge leg still remains manual-required for production readiness until a separate operator-approved live canary is executed.",
|
||||
"Final exit depth is constrained by public Ethereum cW/canonical stable pools."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "LP withdrawal on Chain 138 is strong, but final external realization remains constrained by downstream cW exit depth."
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdc-to-eth-usdc",
|
||||
"source_chain": "138",
|
||||
"source_asset": "cUSDC",
|
||||
"source_action": "Bridge cUSDC to Ethereum cWUSDC",
|
||||
"bridge": "CW bridge to Ethereum",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "bridge + public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Destination pool is verified in deployment-status.json.",
|
||||
"Route is structurally valid but expected to be depth-constrained at the final PMM step."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "Bridge plus mainnet PMM exit; final depth constrained by shallow public cW/canonical pools.",
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdt-to-eth-usdt",
|
||||
"source_chain": "138",
|
||||
"source_asset": "cUSDT",
|
||||
"source_action": "Bridge cUSDT to Ethereum cWUSDT",
|
||||
"bridge": "CW bridge to Ethereum",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDT",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"final_asset": "Ethereum USDT / approved external stable wallet balances",
|
||||
"route_type": "bridge + public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Destination pool is verified in deployment-status.json.",
|
||||
"Route is structurally valid but expected to be depth-constrained at the final PMM step."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "Bridge plus mainnet PMM exit; final depth constrained by shallow public cW/canonical pools.",
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdc-direct-usdc",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDC",
|
||||
"source_action": "Swap cWUSDC directly into USDC on Ethereum",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "USDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "public DEX exit",
|
||||
"status": "live-read",
|
||||
"notes": [
|
||||
"Wallet holds live cWUSDC on mainnet.",
|
||||
"Aave-postable USDC is an approved terminal state after direct swap."
|
||||
],
|
||||
"rank": "primary",
|
||||
"ranking_note": "Direct mainnet cW to canonical stable exit with verified public PMM pool."
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-direct-usdt",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDT",
|
||||
"source_action": "Swap cWUSDT directly into USDT on Ethereum",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "USDT",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"final_asset": "Ethereum USDT / approved external stable wallet balances",
|
||||
"route_type": "public DEX exit",
|
||||
"status": "live-read",
|
||||
"notes": [
|
||||
"Wallet holds live cWUSDT on mainnet.",
|
||||
"Direct exit exists, but pool depth is small relative to wallet inventory."
|
||||
],
|
||||
"rank": "primary",
|
||||
"ranking_note": "Direct mainnet cW to canonical stable exit with verified public PMM pool."
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-via-cwusdc-to-usdc",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDT",
|
||||
"source_action": "Swap cWUSDT to cWUSDC, then cWUSDC to USDC",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC then USDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB + direct cWUSDC/USDC pool",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "multi-step public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Fallback route only; the cWUSDT/cWUSDC pool is deep, but the final cWUSDC/USDC exit remains the limiting step."
|
||||
],
|
||||
"rank": "experimental",
|
||||
"ranking_note": "Fallback or partially verified route."
|
||||
}
|
||||
]
|
||||
}
|
||||
170
config/extraction/growth-loop-policy.json
Normal file
170
config/extraction/growth-loop-policy.json
Normal file
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"policy_name": "immediate_liquidity_growth_policy",
|
||||
"version": "2.0.0",
|
||||
"generated_by": "codex",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"objective": [
|
||||
"increase_direct_exit_capacity",
|
||||
"preserve_legacy_extraction_rail",
|
||||
"deploy_idle_canonical_stable",
|
||||
"compound_v2_direct_exit_depth",
|
||||
"retain_canonical_wallet_cash",
|
||||
"gate_debt_leverage_until_readiness"
|
||||
],
|
||||
"priority_order": [
|
||||
"relay_gas_health",
|
||||
"matched_add_cwusdc_v2_usdc",
|
||||
"legacy_cwusdc_to_usdc_extraction",
|
||||
"matched_add_cwusdt_v2_usdt",
|
||||
"cross_pair_support",
|
||||
"usdc_to_usdt_rotation_only_if_unlocking_progress"
|
||||
],
|
||||
"thresholds": {
|
||||
"legacy_usdc_quote_reserve_pause": 100.0,
|
||||
"legacy_usdc_quote_reserve_low": 200.0,
|
||||
"legacy_usdc_extract_default_bps": 500,
|
||||
"legacy_usdc_extract_low_depth_bps": 200,
|
||||
"legacy_usdc_extract_hard_bps": 1000,
|
||||
"legacy_usdt_extract_default_bps": 300,
|
||||
"legacy_usdt_extract_hard_bps": 500,
|
||||
"usdc_to_usdt_rotation_max_wallet_bps": 1500,
|
||||
"min_mainnet_eth_for_relay_and_support_tx_wei": "4000000000000000",
|
||||
"mainnet_legacy_usdc_pool": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"mainnet_legacy_usdt_pool": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"mainnet_v2_usdc_pool": "0xf633D2617316096e876E9C693111B8e76CE95302",
|
||||
"mainnet_v2_usdt_pool": "0x983D9ac22967209821C908e95FeACC37baA6fECA",
|
||||
"mainnet_v2_cross_pool": "0x75de278142F153Ac47646a7bb7Ded3317a3bDBE7"
|
||||
},
|
||||
"assets": {
|
||||
"mainnet": {
|
||||
"usdc": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"usdt": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"weth": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
"cwusdc_legacy": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"cwusdt_legacy": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"cwusdc_v2": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"cwusdt_v2": "0x7E8FF0DcC974F290a29968e9350800a6df674447"
|
||||
},
|
||||
"chain138": {
|
||||
"link": "0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03",
|
||||
"weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
"cusdc_v2": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"cusdt_v2": "0x9FBfab33882Efe0038DAa608185718b772EE5660"
|
||||
}
|
||||
},
|
||||
"capital_retention": {
|
||||
"retain_bps_early": 3000,
|
||||
"redeploy_bps_early": 7000,
|
||||
"retain_bps_mid": 4000,
|
||||
"redeploy_bps_mid": 6000,
|
||||
"retain_bps_mature": 5000,
|
||||
"redeploy_bps_mature": 5000,
|
||||
"min_wallet_usdc_raw": 25000000,
|
||||
"min_wallet_usdt_raw": 5000000
|
||||
},
|
||||
"stage_thresholds": {
|
||||
"early_direct_exit_usd": 1000,
|
||||
"mid_direct_exit_usd": 10000,
|
||||
"mature_direct_exit_usd": 100000
|
||||
},
|
||||
"pricing_guardrails": {
|
||||
"max_cwusdc_usdc_deviation_bps": 50,
|
||||
"max_cwusdt_usdt_deviation_bps": 75,
|
||||
"pause_on_deviation_bps": 100
|
||||
},
|
||||
"debt_leverage": {
|
||||
"enabled": false,
|
||||
"turn_on_min_wallet_canonical_usd": 25000,
|
||||
"turn_on_min_direct_exit_usd": 100000,
|
||||
"turn_on_min_successful_cycles": 25,
|
||||
"turn_on_max_price_deviation_bps": 100,
|
||||
"turn_on_required_relays": [
|
||||
"mainnet-cw",
|
||||
"mainnet-weth"
|
||||
],
|
||||
"max_initial_leverage_multiple": 1.25,
|
||||
"max_mid_leverage_multiple": 1.5,
|
||||
"max_mature_leverage_multiple": 2.0,
|
||||
"default_gross_pct": 0.29,
|
||||
"default_flash_fee_pct": 0.09,
|
||||
"default_gas_pct": 0.1,
|
||||
"default_liquidity_pct": 0.01,
|
||||
"min_profit_pct": 0.05
|
||||
},
|
||||
"actions": {
|
||||
"recover_relay_gas": {
|
||||
"script": "scripts/deployment/recover-relay-gas.sh",
|
||||
"mode": "weth_rescue",
|
||||
"default_rescue_weth_wei": "5000000000000000"
|
||||
},
|
||||
"matched_add_cwusdc_v2_usdc": {
|
||||
"script": "scripts/deployment/add-mainnet-public-dodo-cw-liquidity.sh",
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"mode": "matched"
|
||||
},
|
||||
"matched_add_cwusdt_v2_usdt": {
|
||||
"script": "scripts/deployment/add-mainnet-public-dodo-cw-liquidity.sh",
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"mode": "matched"
|
||||
},
|
||||
"extract_legacy_usdc": {
|
||||
"script": "scripts/deployment/run-mainnet-public-dodo-cw-swap.sh",
|
||||
"pair": "cwusdc-usdc",
|
||||
"direction": "base-to-quote"
|
||||
},
|
||||
"extract_legacy_usdt": {
|
||||
"script": "scripts/deployment/run-mainnet-public-dodo-cw-swap.sh",
|
||||
"pair": "cwusdt-usdt",
|
||||
"direction": "base-to-quote"
|
||||
},
|
||||
"bridge_canonical_to_mainnet_cw": {
|
||||
"script": "scripts/bridge/bridge-canonical-token-to-mainnet-cw.sh"
|
||||
},
|
||||
"growth_cycle_with_retention": {
|
||||
"script": "scripts/deployment/run-growth-cycle-with-retention.sh",
|
||||
"bridge_wait_seconds": 60,
|
||||
"bridge_poll_seconds": 5
|
||||
},
|
||||
"growth_stage_report": {
|
||||
"script": "scripts/verify/build-growth-stage-report.sh"
|
||||
},
|
||||
"growth_pricing_guardrails": {
|
||||
"script": "scripts/verify/check-growth-pricing-guardrails.sh"
|
||||
},
|
||||
"retained_capital_report": {
|
||||
"script": "scripts/verify/build-retained-capital-report.sh"
|
||||
},
|
||||
"leverage_readiness_report": {
|
||||
"script": "scripts/verify/build-leverage-readiness-report.sh"
|
||||
},
|
||||
"debt_leverage_cycle": {
|
||||
"script": "scripts/deployment/run-debt-leverage-cycle.sh"
|
||||
}
|
||||
},
|
||||
"loop_defaults": {
|
||||
"simulation_rounds_default": 250,
|
||||
"simulation_rate_bps": [
|
||||
200,
|
||||
500,
|
||||
1000
|
||||
],
|
||||
"deploy_idle_canonical_stable": true,
|
||||
"prefer_usdc_loop": true
|
||||
},
|
||||
"mev_assist": {
|
||||
"available": true,
|
||||
"path": "MEV_Bot/mev-platform",
|
||||
"can_help_with": [
|
||||
"private_or_sequenced_execution_surfaces",
|
||||
"gas_and_inclusion_observability",
|
||||
"state_ingestion_and_route_health",
|
||||
"execution_timing_and_replay"
|
||||
],
|
||||
"cannot_replace": [
|
||||
"canonical_quote_side_liquidity",
|
||||
"bridge_inventory",
|
||||
"actual_stable_capital_growth"
|
||||
],
|
||||
"use_policy": "optional_execution_quality_assist_only"
|
||||
}
|
||||
}
|
||||
85
config/extraction/gru-v2-wave1-public-seed-policy.json
Normal file
85
config/extraction/gru-v2-wave1-public-seed-policy.json
Normal file
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"description": "Bootstrap seed policy for the universal GRU v2 public Wave 1 DODO PMM operator. These values are conservative operator defaults, not live market guarantees. Review and refresh before execute.",
|
||||
"defaults": {
|
||||
"fee_bps": 3,
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"symbol_defaults": {
|
||||
"cWUSDT": {
|
||||
"initial_price_e18": "1000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWUSDC": {
|
||||
"initial_price_e18": "1000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWEURC": {
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWEURT": {
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWGBPC": {
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWGBPT": {
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWAUDC": {
|
||||
"initial_price_e18": "660000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWJPYC": {
|
||||
"initial_price_e18": "6700000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWCHFC": {
|
||||
"initial_price_e18": "1110000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWCADC": {
|
||||
"initial_price_e18": "740000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWXAUC": {
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "1000000",
|
||||
"mint_base_amount_raw": "1000000"
|
||||
},
|
||||
"cWXAUT": {
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "1000000",
|
||||
"mint_base_amount_raw": "1000000"
|
||||
}
|
||||
},
|
||||
"pair_overrides": {}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:35Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"direct_exit_support_fraction": "0.05",
|
||||
"target_exit_usd": [
|
||||
25000,
|
||||
100000,
|
||||
250000,
|
||||
1000000
|
||||
],
|
||||
"default_target_exit_usd": 100000,
|
||||
"default_sweep_raw": 1000000,
|
||||
"sweep_slippage_bps": 100,
|
||||
"notes": [
|
||||
"Target exit USD is translated into required usable-side reserves under the 5% direct-exit heuristic.",
|
||||
"All deployment wrappers are dry-run by default and require an explicit --execute flag for mutations."
|
||||
]
|
||||
}
|
||||
35
config/extraction/liquidity-improvement-thresholds.json
Normal file
35
config/extraction/liquidity-improvement-thresholds.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:47Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"lp_withdrawal": {
|
||||
"default_slippage_bps": 100,
|
||||
"test_share_divisor": 1000,
|
||||
"deadline_seconds": 3600,
|
||||
"tranche_percentages": [
|
||||
1,
|
||||
5,
|
||||
10,
|
||||
25,
|
||||
50,
|
||||
100
|
||||
]
|
||||
},
|
||||
"bridge_canary": {
|
||||
"human_amount": "1",
|
||||
"expected_amount_raw": "1000000",
|
||||
"poll_interval_seconds": 15,
|
||||
"timeout_seconds": 900
|
||||
},
|
||||
"mainnet_exit": {
|
||||
"raw_sizes": [
|
||||
1000000,
|
||||
10000000
|
||||
],
|
||||
"default_slippage_bps": 100
|
||||
},
|
||||
"notes": [
|
||||
"All flows are dry-run by default unless the underlying script already supports an explicit execute flag.",
|
||||
"Thresholds are intentionally conservative and operator-oriented."
|
||||
]
|
||||
}
|
||||
21
config/extraction/tranche-thresholds.json
Normal file
21
config/extraction/tranche-thresholds.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:10Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"sizes_usd": [
|
||||
10000,
|
||||
25000,
|
||||
50000,
|
||||
100000
|
||||
],
|
||||
"thresholds": {
|
||||
"max_simulated_slippage_pct": 5.0,
|
||||
"max_fee_pct": 1.0,
|
||||
"max_bridge_latency_seconds": 1800,
|
||||
"max_operational_steps": 3
|
||||
},
|
||||
"notes": [
|
||||
"These thresholds are for dry-run and simulation gating only.",
|
||||
"Any route with manual-required bridge steps is automatically capped unless bridged live in a separate operator workflow."
|
||||
]
|
||||
}
|
||||
74
config/extraction/treasury-segmentation-policy.json
Normal file
74
config/extraction/treasury-segmentation-policy.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:19Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status": "inferred",
|
||||
"buckets": {
|
||||
"gas_reserve": {
|
||||
"purpose": "Per-chain native gas needed to keep read/write optionality alive.",
|
||||
"minimum_floor_usd": 25,
|
||||
"movement_rule": "May top up from stable working capital only after operator review."
|
||||
},
|
||||
"stable_working_capital": {
|
||||
"purpose": "Assets intentionally used for controlled extraction or collateral pilot workflows.",
|
||||
"minimum_floor_usd": 250000,
|
||||
"movement_rule": "Use only through approved corridors with ledgered outputs."
|
||||
},
|
||||
"bridge_inventory": {
|
||||
"purpose": "Assets whose main role is to move value between Chain 138 and public chains.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Use only when route health is green and fallback exists."
|
||||
},
|
||||
"lp_reserve": {
|
||||
"purpose": "LP claims that currently anchor internal stable liquidity.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "Planned partial or emergency full only; no ad hoc removal."
|
||||
},
|
||||
"non_core_wrappers": {
|
||||
"purpose": "Wrapped or synthetic assets without near-term reliable canonical exits.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Do not include in routine extraction forecasts."
|
||||
},
|
||||
"protected_reserve": {
|
||||
"purpose": "Inventory intentionally excluded from routine extraction until stronger public depth exists.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "No movement under this pack; manual governance only."
|
||||
}
|
||||
},
|
||||
"wallet_roles": {
|
||||
"current_state": [
|
||||
{
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"role": "mixed-use / overconcentrated",
|
||||
"status": "live-read",
|
||||
"notes": "Current state collapses reserve, bridge inventory, LP custody, and extraction inventory into one wallet."
|
||||
}
|
||||
],
|
||||
"target_state": [
|
||||
{
|
||||
"role": "execution",
|
||||
"status": "manual-required",
|
||||
"notes": "Dedicated working wallet for approved exits only."
|
||||
},
|
||||
{
|
||||
"role": "reserve",
|
||||
"status": "manual-required",
|
||||
"notes": "Protected reserve wallet with no routine route execution."
|
||||
},
|
||||
{
|
||||
"role": "external-canonical-stable",
|
||||
"status": "manual-required",
|
||||
"notes": "Clean landing wallet for realized USDC/USDT only."
|
||||
},
|
||||
{
|
||||
"role": "testing",
|
||||
"status": "manual-required",
|
||||
"notes": "Low-balance wallet for corridor rehearsal and approvals."
|
||||
}
|
||||
]
|
||||
},
|
||||
"movement_rules": [
|
||||
"No asset movement from protected reserve to execution wallet without manual operator sign-off.",
|
||||
"Realized canonical stable balances should not be mixed with bridge inventory or non-core wrappers.",
|
||||
"LP reserve withdrawals should follow the stable LP runbook and preserve reserve floor assumptions."
|
||||
]
|
||||
}
|
||||
23
docs/03-deployment/EXTRACTION_GAP_CLOSURE_PACK.md
Normal file
23
docs/03-deployment/EXTRACTION_GAP_CLOSURE_PACK.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Extraction Gap Closure Pack
|
||||
|
||||
- Generated: `2026-04-16T02:03:22Z`
|
||||
- This pack is read-only / dry-run by default and is designed to close execution gaps around convertibility, realizable capital, LP access, and treasury segmentation.
|
||||
|
||||
## Commands
|
||||
|
||||
| Workstream | Command | JSON Output | Markdown Output |
|
||||
|---|---|---|---|
|
||||
| Canonical exit corridor map | `bash scripts/verify/build-canonical-exit-corridor-map.sh` | `config/extraction/canonical-exit-corridors.json` | `docs/03-deployment/CANONICAL_EXIT_CORRIDOR_MAP.md` |
|
||||
| Tranche capacity tests | `bash scripts/verify/run-corridor-tranche-capacity-tests.sh` | `reports/extraction/corridor-capacity-latest.json` | `docs/03-deployment/CORRIDOR_TRANCHE_CAPACITY_REPORT.md` |
|
||||
| Stable LP withdrawal verification | `bash scripts/verify/verify-stable-lp-withdrawal-readiness.sh` | `reports/extraction/stable-lp-verification-latest.json` | `docs/03-deployment/STABLE_LP_WITHDRAWAL_VERIFICATION_RUNBOOK.md` |
|
||||
| Realizable capital ladder | `bash scripts/verify/build-realizable-capital-ladder.sh` | `reports/extraction/realizable-capital-ladder-latest.json` | `docs/03-deployment/REALIZABLE_CAPITAL_LADDER.md` |
|
||||
| Treasury segmentation | `bash scripts/verify/build-treasury-segmentation-assignment.sh` | `reports/extraction/treasury-segmentation-assignment-latest.json` + `config/extraction/treasury-segmentation-policy.json` | `docs/03-deployment/TREASURY_SEGMENTATION_POLICY.md` |
|
||||
| Full pack | `bash scripts/verify/run-extraction-gap-closure-pack.sh` | all | all |
|
||||
| Validation | `bash scripts/validation/validate-extraction-gap-closure-pack.sh` | n/a | terminal output |
|
||||
|
||||
## Status Labels
|
||||
|
||||
- `live-read`: directly verified by read-only RPC or local machine-readable artifact during generation.
|
||||
- `simulated`: no live funds moved; capacity or withdrawal behavior is inferred from reserves / balances / route structure.
|
||||
- `inferred`: metadata or valuation layer built from curated repo intelligence and prior audit evidence.
|
||||
- `manual-required`: action exists but cannot be confirmed safely inside this pack without a separate mutation workflow.
|
||||
71
docs/03-deployment/IMMEDIATE_LIQUIDITY_EXPANSION_PACK.md
Normal file
71
docs/03-deployment/IMMEDIATE_LIQUIDITY_EXPANSION_PACK.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Immediate Liquidity Expansion Pack
|
||||
|
||||
- Generated: `2026-04-16T02:03:39Z`
|
||||
- Wallet: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
- This pack focuses on GRU V2 parity, direct-exit pool funding, sweep execution, and before/after liquidity deltas.
|
||||
|
||||
## Commands
|
||||
|
||||
| Artifact | Command |
|
||||
|---|---|
|
||||
| GRU V2 Mainnet parity report | `bash scripts/verify/build-gru-v2-mainnet-bridge-parity.sh` |
|
||||
| Quote-side funding plan | `bash scripts/verify/build-mainnet-direct-exit-funding-plan.sh` |
|
||||
| GRU V2 funding plan | `bash scripts/verify/build-gru-v2-mainnet-funding-plan.sh` |
|
||||
| Realize-to-canonical sweep plan | `bash scripts/verify/build-realize-to-canonical-sweep-plan.sh` |
|
||||
| Liquidity-state delta report | `bash scripts/verify/build-liquidity-state-delta-report.sh` |
|
||||
| Run full pack | `bash scripts/verify/run-immediate-liquidity-expansion-pack.sh` |
|
||||
| Validate | `bash scripts/validation/validate-immediate-liquidity-expansion-pack.sh` |
|
||||
| Execute GRU V2 parity | `bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --execute` |
|
||||
| Execute V2 funding | `bash scripts/deployment/run-gru-v2-mainnet-funding.sh --execute` |
|
||||
| Apply direct-exit funding | `bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=100000 --execute` |
|
||||
| Execute realize sweep | `bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdt-usdt --amount-raw=1000000 --execute` |
|
||||
|
||||
## GRU V2 Parity
|
||||
|
||||
- Overall ready: `True`
|
||||
- Coexistence ready: `True`
|
||||
- V1 displaced assets on shared lanes: `none`
|
||||
|
||||
| Asset | Corridor Ready | Chain 138 Balance Raw |
|
||||
|---|---|---:|
|
||||
| `cUSDC_V2` | `True` | `75000000000` |
|
||||
| `cUSDT_V2` | `True` | `75000000000` |
|
||||
|
||||
## Lane Policy
|
||||
|
||||
- Shared Mainnet mirrored lanes: `False`
|
||||
- V2 cutover active: `False`
|
||||
- Distinct mirrored tokens required for V1/V2 coexistence: `True`
|
||||
- Code reference: `smom-dbis-138/contracts/bridge/CWMultiTokenBridgeL2.sol:88`
|
||||
|
||||
## Direct Exit Funding
|
||||
|
||||
| Pair | Current Capacity USD | Recommended Next Quote-Only Target |
|
||||
|---|---:|---:|
|
||||
| `cwusdc-usdc` | `$11.89` | `25000` |
|
||||
| `cwusdt-usdt` | `$0.12` | `25000` |
|
||||
| `cwusdcv2-usdc` | `$0.00` | `None` |
|
||||
| `cwusdtv2-usdt` | `$0.00` | `None` |
|
||||
|
||||
## GRU V2 Funding
|
||||
|
||||
| Asset | Target Exit USD | Mint Needed Raw | Bridge Raw | Quote Requirement Raw | Quote Side Ready Now |
|
||||
|---|---:|---:|---:|---:|---|
|
||||
| `cUSDC_V2` | `100000` | `1925000000000` | `2000000000000` | `2000000000000` | `False` |
|
||||
| `cUSDT_V2` | `100000` | `1925000000000` | `2000000000000` | `2000000000000` | `False` |
|
||||
|
||||
## Sweep
|
||||
|
||||
| Pair | Current Direct Capacity USD | Post-Funding Target Exit USD |
|
||||
|---|---:|---:|
|
||||
| `cwusdc-usdc` | `$11.89` | `$100000` |
|
||||
| `cwusdt-usdt` | `$0.12` | `$100000` |
|
||||
| `cwusdcv2-usdc` | `$0.00` | `$100000` |
|
||||
| `cwusdtv2-usdt` | `$0.00` | `$100000` |
|
||||
|
||||
## Liquidity Delta
|
||||
|
||||
- Direct exit capacity before: `$12.01`
|
||||
- Direct exit capacity after quote-only adds: `$40.59`
|
||||
- Direct exit capacity after full-target funding: `$400,000.00`
|
||||
- Projected immediate liquid if full-target sweep executed: `$400,000.00`
|
||||
94
docs/03-deployment/LIQUIDITY_IMPROVEMENT_OPERATOR_PACK.md
Normal file
94
docs/03-deployment/LIQUIDITY_IMPROVEMENT_OPERATOR_PACK.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Liquidity Improvement Operator Pack
|
||||
|
||||
- Generated: `2026-04-16T02:03:48Z`
|
||||
- Wallet: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
- This pack is dry-run by default and focuses on the highest-impact code-resolved tasks for improving internal same-day LP access and immediate liquid position.
|
||||
|
||||
## Commands
|
||||
|
||||
| Artifact | Command |
|
||||
|---|---|
|
||||
| LP withdrawal canary plan | `bash scripts/verify/build-lp-withdrawal-canary-plan.sh` |
|
||||
| LP tranche sizing | `bash scripts/verify/build-lp-tranche-sizing.sh` |
|
||||
| Post-withdrawal routing plan | `bash scripts/verify/build-post-withdrawal-routing-plan.sh` |
|
||||
| Bridge canary plan | `bash scripts/verify/build-bridge-canary-plan.sh` |
|
||||
| Mainnet landing verification plan | `bash scripts/verify/build-mainnet-landing-verification-plan.sh` |
|
||||
| Mainnet exit canary plan | `bash scripts/verify/build-mainnet-exit-canary-plan.sh` |
|
||||
| Mainnet exit pool ranking | `bash scripts/verify/build-mainnet-exit-pool-ranking.sh` |
|
||||
| End-to-end corridor canary | `bash scripts/verify/build-end-to-end-corridor-canary.sh` |
|
||||
| Execution ledger | `bash scripts/verify/build-execution-ledger.sh` |
|
||||
| Capital state report | `bash scripts/verify/build-capital-state-report.sh` |
|
||||
| LP withdrawal executor | `bash scripts/verify/run-live-lp-withdrawal-canary.sh --pair cUSDT/cUSDC` |
|
||||
| Bridge executor | `bash scripts/verify/run-live-bridge-canary.sh --symbol cUSDT` |
|
||||
| Mainnet exit executor | `bash scripts/verify/run-live-mainnet-exit-canary.sh --symbol cWUSDT` |
|
||||
| End-to-end executor | `bash scripts/verify/run-live-end-to-end-corridor-canary.sh` |
|
||||
| Full operator pack | `bash scripts/verify/run-liquidity-improvement-pack.sh` |
|
||||
| Validation | `bash scripts/validation/validate-liquidity-improvement-pack.sh` |
|
||||
|
||||
## LP Withdrawal Canary
|
||||
|
||||
| Pair | Share Raw | Base Min Raw | Quote Min Raw |
|
||||
|---|---:|---:|---:|
|
||||
| `cUSDT/cUSDC` | `999999996` | `974052284` | `1005947707` |
|
||||
| `cUSDT/USDT` | `999999996` | `989873771` | `990126220` |
|
||||
| `cUSDC/USDC` | `999999996` | `1000358365` | `979641626` |
|
||||
|
||||
## LP Tranche Sizing
|
||||
|
||||
| Pair | 1% | 5% | 10% | 25% |
|
||||
|---|---|---|---|---|
|
||||
| `cUSDT/cUSDC` | `9838.911970/10161.087970` | `49194.559851/50805.439849` | `98389.119701/101610.879698` | `245972.799253/254027.199245` |
|
||||
| `cUSDT/USDT` | `9998.724970/10001.274970` | `49993.624850/50006.374850` | `99987.249700/100012.749700` | `249968.124249/250031.874249` |
|
||||
| `cUSDC/USDC` | `10104.629970/9895.369970` | `50523.149849/49476.849850` | `101046.299699/98953.699701` | `252615.749246/247384.249252` |
|
||||
|
||||
## Post-Withdrawal Routing
|
||||
|
||||
| Symbol | Preferred Route | Status |
|
||||
|---|---|---|
|
||||
| `USDC` | `local-wrap-then-bridge` | `simulated` |
|
||||
| `USDT` | `local-wrap-then-bridge` | `simulated` |
|
||||
| `cUSDC` | `bridge-direct-to-mainnet-cWUSDC-then-exit` | `simulated` |
|
||||
| `cUSDT` | `bridge-direct-to-mainnet-cWUSDT-then-exit` | `simulated` |
|
||||
|
||||
## Bridge Canary
|
||||
|
||||
| Asset | Dry Run OK | Corridor Ready |
|
||||
|---|---|---|
|
||||
| `cUSDT` | `True` | `True` |
|
||||
| `cUSDC` | `True` | `True` |
|
||||
|
||||
## Mainnet Landing Baselines
|
||||
|
||||
| Asset | Mirrored Token | Baseline Raw |
|
||||
|---|---|---:|
|
||||
| `cUSDT` | `0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae` | `8888909964479` |
|
||||
| `cUSDC` | `0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a` | `8888610523693` |
|
||||
|
||||
## Mainnet Exit Canary
|
||||
|
||||
| Symbol | Pair | Est Out Raw | Status |
|
||||
|---|---|---:|---|
|
||||
| `cWUSDC` | `cwusdc-usdc` | `1000000` | `simulated` |
|
||||
| `cWUSDT` | `cwusdt-usdt` | `1000000` | `simulated` |
|
||||
|
||||
## Mainnet Exit Pool Ranking
|
||||
|
||||
| Rank | Route | Quote Score |
|
||||
|---:|---|---:|
|
||||
| 1 | `cwusdc-direct-usdc` | `1.9537245730253645333087641666382668762180665215405` |
|
||||
| 2 | `cwusdt-via-cwusdc-to-usdc` | `1.9537245730253645333087641666382668762180665215405` |
|
||||
| 3 | `cwusdt-direct-usdt` | `0.58408423458813733372207593540495430541443302570817` |
|
||||
|
||||
## Capital State
|
||||
|
||||
- Nominal total USD: `$6,872,703,072.17`
|
||||
- Immediate liquid position USD: `$0.00`
|
||||
- Internal same-day via LP withdrawal USD: `$5,999,999.98`
|
||||
- Near-immediate Mainnet cW exit USD: `$17,777,520.49`
|
||||
- Near-term actionable USD: `$23,777,520.47`
|
||||
|
||||
## End-to-End Canary Gates
|
||||
|
||||
- Do not broadcast stage 2 unless stage 1 has landed and balances were reconciled.
|
||||
- Do not broadcast stage 3 unless stage 2 landing verification passes.
|
||||
- Stop immediately on any min-out, fee, or latency breach.
|
||||
2752
reports/extraction/accessible-liquidity-pools-inventory-latest.json
Normal file
2752
reports/extraction/accessible-liquidity-pools-inventory-latest.json
Normal file
File diff suppressed because it is too large
Load Diff
78
reports/extraction/bridge-canary-plan-latest.json
Normal file
78
reports/extraction/bridge-canary-plan-latest.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:15Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"thresholds": {
|
||||
"human_amount": "1",
|
||||
"expected_amount_raw": "1000000",
|
||||
"poll_interval_seconds": 15,
|
||||
"timeout_seconds": 900
|
||||
},
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"status": "live-read",
|
||||
"chain138_source_balance_raw": "75000000000",
|
||||
"dry_run_ok": true,
|
||||
"dry_run_excerpt": [
|
||||
"l1_destination_enabled=True",
|
||||
"l1_destination_receiver=0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"fee_quote_1_token_wei=1000009600000000",
|
||||
"mainnet_mirrored_token=0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae"
|
||||
],
|
||||
"source_allowance_raw": "0",
|
||||
"dry_run_error": null,
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
"execute_command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve --execute"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"status": "live-read",
|
||||
"chain138_source_balance_raw": "75000000000",
|
||||
"dry_run_ok": true,
|
||||
"dry_run_excerpt": [
|
||||
"l1_destination_enabled=True",
|
||||
"l1_destination_receiver=0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"fee_quote_1_token_wei=1000009600000000",
|
||||
"mainnet_mirrored_token=0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a"
|
||||
],
|
||||
"source_allowance_raw": "0",
|
||||
"dry_run_error": null,
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
"execute_command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDC --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve --execute"
|
||||
}
|
||||
]
|
||||
}
|
||||
30
reports/extraction/capital-state-latest.json
Normal file
30
reports/extraction/capital-state-latest.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:48Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"nominal_total_usd": "6872703072.173878751248871214403674",
|
||||
"immediate_liquid_position_usd": "0",
|
||||
"internal_same_day_via_lp_withdrawal_usd": "5999999.981979",
|
||||
"near_immediate_mainnet_cw_exit_usd": "17777520.488172",
|
||||
"near_term_actionable_usd": "23777520.470151",
|
||||
"best_mainnet_exit_routes": {
|
||||
"cWUSDC": {
|
||||
"route_id": "cwusdc-direct-usdc",
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"rank": 1
|
||||
},
|
||||
"cWUSDT": {
|
||||
"route_id": "cwusdt-via-cwusdc-to-usdc",
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"rank": 2
|
||||
}
|
||||
},
|
||||
"gates_closed": {
|
||||
"lp_signature_confirmed": true,
|
||||
"lp_direct_call_no_approval_confirmed": true,
|
||||
"bridge_wiring_read_only_confirmed": true,
|
||||
"mainnet_exit_dry_run_routes_available": true,
|
||||
"live_lp_withdrawal_canary_executed": false,
|
||||
"live_bridge_canary_executed": false,
|
||||
"live_mainnet_exit_canary_executed": false
|
||||
}
|
||||
}
|
||||
344
reports/extraction/corridor-capacity-latest.json
Normal file
344
reports/extraction/corridor-capacity-latest.json
Normal file
@@ -0,0 +1,344 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:12Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"threshold_config": {
|
||||
"generated_at": "2026-04-16T02:03:12Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"sizes_usd": [
|
||||
10000,
|
||||
25000,
|
||||
50000,
|
||||
100000
|
||||
],
|
||||
"thresholds": {
|
||||
"max_simulated_slippage_pct": 5.0,
|
||||
"max_fee_pct": 1.0,
|
||||
"max_bridge_latency_seconds": 1800,
|
||||
"max_operational_steps": 3
|
||||
},
|
||||
"notes": [
|
||||
"These thresholds are for dry-run and simulation gating only.",
|
||||
"Any route with manual-required bridge steps is automatically capped unless bridged live in a separate operator workflow."
|
||||
]
|
||||
},
|
||||
"corridors": [
|
||||
{
|
||||
"corridor_id": "chain138-stable-lp-to-eth-stables",
|
||||
"rank": "secondary",
|
||||
"status": "manual-required",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "manual-required",
|
||||
"result": "manual-required",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "25000",
|
||||
"status": "manual-required",
|
||||
"result": "manual-required",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "50000",
|
||||
"status": "manual-required",
|
||||
"result": "manual-required",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "100000",
|
||||
"status": "manual-required",
|
||||
"result": "manual-required",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "simulated",
|
||||
"operational_complexity": "high",
|
||||
"fallback_route": null,
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "manual-only",
|
||||
"labels": [
|
||||
"manual-required"
|
||||
]
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdc-to-eth-usdc",
|
||||
"rank": "secondary",
|
||||
"status": "simulated",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "25000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "50000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "100000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "simulated",
|
||||
"operational_complexity": "high",
|
||||
"fallback_route": null,
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "manual-only",
|
||||
"labels": [
|
||||
"simulated"
|
||||
]
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdt-to-eth-usdt",
|
||||
"rank": "secondary",
|
||||
"status": "simulated",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "25000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "50000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
},
|
||||
{
|
||||
"size_usd": "100000",
|
||||
"status": "simulated",
|
||||
"result": "constrained",
|
||||
"slippage_estimate_pct": null,
|
||||
"fee_estimate_pct": null,
|
||||
"bridge_latency_estimate_seconds": 300,
|
||||
"notes": [
|
||||
"Route capacity depends on downstream cW/canonical stable pool depth.",
|
||||
"Exact realized output requires live route execution or bridge-specific simulation outside this pack."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "simulated",
|
||||
"operational_complexity": "high",
|
||||
"fallback_route": null,
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "manual-only",
|
||||
"labels": [
|
||||
"simulated"
|
||||
]
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdc-direct-usdc",
|
||||
"rank": "primary",
|
||||
"status": "live-read",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "simulated",
|
||||
"result": "threshold-breach",
|
||||
"slippage_estimate_pct": "4206.86",
|
||||
"fee_estimate_pct": "0.30",
|
||||
"bridge_latency_estimate_seconds": 0,
|
||||
"notes": [
|
||||
"Simulation is conservative and based on smallest verified PMM reserve side.",
|
||||
"No live trade was sent; route uses public pool reserves as a proxy for tranche safety."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "reserve-heuristic",
|
||||
"operational_complexity": "medium",
|
||||
"fallback_route": null,
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "0/day",
|
||||
"labels": [],
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"base_reserve": "803.044122",
|
||||
"quote_reserve": "237.707153",
|
||||
"base_reserve_usd": "803.044122",
|
||||
"quote_reserve_usd": "237.707153",
|
||||
"usable_side_usd": "237.707153"
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-direct-usdt",
|
||||
"rank": "primary",
|
||||
"status": "live-read",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "simulated",
|
||||
"result": "threshold-breach",
|
||||
"slippage_estimate_pct": "415915.77",
|
||||
"fee_estimate_pct": "0.30",
|
||||
"bridge_latency_estimate_seconds": 0,
|
||||
"notes": [
|
||||
"Simulation is conservative and based on smallest verified PMM reserve side.",
|
||||
"No live trade was sent; route uses public pool reserves as a proxy for tranche safety."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "reserve-heuristic",
|
||||
"operational_complexity": "medium",
|
||||
"fallback_route": "eth-cwusdt-via-cwusdc-to-usdc",
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "0/day",
|
||||
"labels": [],
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"base_reserve": "8.845664",
|
||||
"quote_reserve": "2.404333",
|
||||
"base_reserve_usd": "8.845664",
|
||||
"quote_reserve_usd": "2.404333",
|
||||
"usable_side_usd": "2.404333"
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-via-cwusdc-to-usdc",
|
||||
"rank": "experimental",
|
||||
"status": "simulated",
|
||||
"tests": [
|
||||
{
|
||||
"size_usd": "10000",
|
||||
"status": "simulated",
|
||||
"result": "threshold-breach",
|
||||
"slippage_estimate_pct": "4206.86",
|
||||
"fee_estimate_pct": "0.30",
|
||||
"bridge_latency_estimate_seconds": 0,
|
||||
"notes": [
|
||||
"Simulation is conservative and based on smallest verified PMM reserve side.",
|
||||
"No live trade was sent; route uses public pool reserves as a proxy for tranche safety."
|
||||
]
|
||||
}
|
||||
],
|
||||
"quote_quality": "reserve-heuristic",
|
||||
"operational_complexity": "medium",
|
||||
"fallback_route": null,
|
||||
"max_safe_tranche": 0,
|
||||
"max_daily_cadence": "0/day",
|
||||
"labels": [],
|
||||
"supporting_surface": {
|
||||
"leg_1": {
|
||||
"pool_address": "0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "cWUSDC",
|
||||
"base_reserve": "1099960.25663",
|
||||
"quote_reserve": "1100039.756747",
|
||||
"base_reserve_usd": "1099960.25663",
|
||||
"quote_reserve_usd": "1100039.756747",
|
||||
"usable_side_usd": "1099960.25663"
|
||||
},
|
||||
"leg_2": {
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"base_reserve": "803.044122",
|
||||
"quote_reserve": "237.707153",
|
||||
"base_reserve_usd": "803.044122",
|
||||
"quote_reserve_usd": "237.707153",
|
||||
"usable_side_usd": "237.707153"
|
||||
},
|
||||
"usable_side_usd": "237.707153"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
39
reports/extraction/debt-leverage-cycle-latest.json
Normal file
39
reports/extraction/debt-leverage-cycle-latest.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"status": "blocked",
|
||||
"reason": "policy_disabled_or_not_ready",
|
||||
"execute": false,
|
||||
"max_initial_leverage_multiple": 1.25,
|
||||
"economics_command": "pnpm exec economics-toolkit calc --gross 0.29 --flash 0.09 --gas 0.1 --liquidity 0.01 --min-profit 0.05",
|
||||
"readiness": {
|
||||
"status": "live-read",
|
||||
"ready": false,
|
||||
"checks": {
|
||||
"policy_enabled": false,
|
||||
"wallet_canonical_usd_ready": false,
|
||||
"direct_exit_usd_ready": false,
|
||||
"successful_cycles_ready": false,
|
||||
"price_deviation_ready": false,
|
||||
"relays_ready": true
|
||||
},
|
||||
"metrics": {
|
||||
"wallet_canonical_usd": 0.0,
|
||||
"direct_exit_usd": 241.963284,
|
||||
"successful_cycles": 0,
|
||||
"max_deviation_bps_seen": 7760.68824,
|
||||
"relay_status": {
|
||||
"mainnet-cw": "operational",
|
||||
"mainnet-weth": "operational"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
"turn_on_min_wallet_canonical_usd": 25000.0,
|
||||
"turn_on_min_direct_exit_usd": 100000.0,
|
||||
"turn_on_min_successful_cycles": 25,
|
||||
"turn_on_max_price_deviation_bps": 100.0,
|
||||
"turn_on_required_relays": [
|
||||
"mainnet-cw",
|
||||
"mainnet-weth"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
104
reports/extraction/end-to-end-corridor-canary-latest.json
Normal file
104
reports/extraction/end-to-end-corridor-canary-latest.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:28Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status": "manual-required",
|
||||
"corridor_id": "chain138-stable-lp-to-mainnet-usdt-canary",
|
||||
"stages": [
|
||||
{
|
||||
"stage": 1,
|
||||
"name": "tiny LP withdrawal",
|
||||
"status": "live-read",
|
||||
"details": {
|
||||
"pair": "cUSDT/cUSDC",
|
||||
"pool_address": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"status": "live-read",
|
||||
"canary_share_amount_raw": "999999996",
|
||||
"preview_base_out_raw": "983891196",
|
||||
"preview_quote_out_raw": "1016108795",
|
||||
"base_min_amount_raw": "974052284",
|
||||
"quote_min_amount_raw": "1005947707",
|
||||
"deadline_unix": 1776308601,
|
||||
"dry_run_command": "cast call 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)(uint256,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776308601 --from 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url \"$RPC_URL_138\"",
|
||||
"execute_command": "cast send 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776308601 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"notes": [
|
||||
"Direct owner call does not require LP approval.",
|
||||
"This canary is intentionally tiny and should be run only in a separate operator-approved mutation workflow."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": 2,
|
||||
"name": "tiny cUSDT bridge to Mainnet",
|
||||
"status": "live-read",
|
||||
"details": {
|
||||
"symbol": "cUSDT",
|
||||
"status": "live-read",
|
||||
"chain138_source_balance_raw": "75000000000",
|
||||
"dry_run_ok": true,
|
||||
"dry_run_excerpt": [
|
||||
"l1_destination_enabled=True",
|
||||
"l1_destination_receiver=0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"fee_quote_1_token_wei=1000009600000000",
|
||||
"mainnet_mirrored_token=0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae"
|
||||
],
|
||||
"source_allowance_raw": "0",
|
||||
"dry_run_error": null,
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
"execute_command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve --execute"
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": 3,
|
||||
"name": "tiny Mainnet cWUSDT exit to USDT",
|
||||
"status": "simulated",
|
||||
"details": {
|
||||
"symbol": "cWUSDT",
|
||||
"pair": "cwusdt-usdt",
|
||||
"target_asset": "USDT",
|
||||
"status": "simulated",
|
||||
"dry_run_ok": true,
|
||||
"amount_in_raw": "1000000",
|
||||
"estimated_out_raw": "1000000",
|
||||
"min_out_raw": "990000",
|
||||
"pool_surface": "reserve-heuristic",
|
||||
"quote_source": "live-getVaultReserve",
|
||||
"slippage_estimate_pct": "41.59",
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"base_reserve": "8.845664",
|
||||
"quote_reserve": "2.404333",
|
||||
"base_reserve_usd": "8.845664",
|
||||
"quote_reserve_usd": "2.404333",
|
||||
"usable_side_usd": "2.404333"
|
||||
},
|
||||
"execute_command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000",
|
||||
"dry_run_error": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"gates": [
|
||||
"Do not broadcast stage 2 unless stage 1 has landed and balances were reconciled.",
|
||||
"Do not broadcast stage 3 unless stage 2 landing verification passes.",
|
||||
"Stop immediately on any min-out, fee, or latency breach."
|
||||
]
|
||||
}
|
||||
70
reports/extraction/execution-ledger-latest.json
Normal file
70
reports/extraction/execution-ledger-latest.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:41Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"entries": [
|
||||
{
|
||||
"entry_type": "lp-withdrawal-canary",
|
||||
"symbol": "cUSDT/cUSDC",
|
||||
"status": "planned-dry-run",
|
||||
"source": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"amount_raw": "999999996",
|
||||
"target": "0x4A666F96fC8764181194447A7dFdb7d471b301C8"
|
||||
},
|
||||
{
|
||||
"entry_type": "lp-withdrawal-canary",
|
||||
"symbol": "cUSDT/USDT",
|
||||
"status": "planned-dry-run",
|
||||
"source": "0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66",
|
||||
"amount_raw": "999999996",
|
||||
"target": "0x4A666F96fC8764181194447A7dFdb7d471b301C8"
|
||||
},
|
||||
{
|
||||
"entry_type": "lp-withdrawal-canary",
|
||||
"symbol": "cUSDC/USDC",
|
||||
"status": "planned-dry-run",
|
||||
"source": "0xc39B7D0F40838cbFb54649d327f49a6DAC964062",
|
||||
"amount_raw": "999999996",
|
||||
"target": "0x4A666F96fC8764181194447A7dFdb7d471b301C8"
|
||||
},
|
||||
{
|
||||
"entry_type": "bridge-canary",
|
||||
"symbol": "cUSDT",
|
||||
"status": "planned-dry-run",
|
||||
"source": "Chain138",
|
||||
"amount_raw": "1000000",
|
||||
"target": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae"
|
||||
},
|
||||
{
|
||||
"entry_type": "bridge-canary",
|
||||
"symbol": "cUSDC",
|
||||
"status": "planned-dry-run",
|
||||
"source": "Chain138",
|
||||
"amount_raw": "1000000",
|
||||
"target": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a"
|
||||
},
|
||||
{
|
||||
"entry_type": "mainnet-exit-canary",
|
||||
"symbol": "cWUSDC",
|
||||
"status": "planned-dry-run",
|
||||
"source": "cwusdc-usdc",
|
||||
"amount_raw": "1000000",
|
||||
"target": "USDC"
|
||||
},
|
||||
{
|
||||
"entry_type": "mainnet-exit-canary",
|
||||
"symbol": "cWUSDT",
|
||||
"status": "planned-dry-run",
|
||||
"source": "cwusdt-usdt",
|
||||
"amount_raw": "1000000",
|
||||
"target": "USDT"
|
||||
},
|
||||
{
|
||||
"entry_type": "end-to-end-corridor",
|
||||
"symbol": "chain138-stable-lp-to-mainnet-usdt-canary",
|
||||
"status": "planned-dry-run",
|
||||
"source": "Chain138 LP -> Mainnet",
|
||||
"amount_raw": "999999996",
|
||||
"target": "USDT"
|
||||
}
|
||||
]
|
||||
}
|
||||
21
reports/extraction/growth-cycle-with-retention-latest.json
Normal file
21
reports/extraction/growth-cycle-with-retention-latest.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"status": "planned",
|
||||
"reason": "ready",
|
||||
"stage": "early",
|
||||
"decision": "extract_legacy_usdc",
|
||||
"execute": false,
|
||||
"retention_policy": {
|
||||
"retain_bps": 3000,
|
||||
"redeploy_bps": 7000
|
||||
},
|
||||
"amounts": {
|
||||
"observed_or_estimated_usdc_raw": 2819467,
|
||||
"retain_raw": 845840,
|
||||
"redeploy_raw": 1973627
|
||||
},
|
||||
"transactions": {
|
||||
"swap_tx": "",
|
||||
"bridge_tx": "",
|
||||
"add_liquidity_tx": ""
|
||||
}
|
||||
}
|
||||
12
reports/extraction/growth-loop-loop-latest.json
Normal file
12
reports/extraction/growth-loop-loop-latest.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"status": "live-read-loop",
|
||||
"max_rounds": 1,
|
||||
"rounds_completed": 0,
|
||||
"stop_reason": "policy_requires_relay_gas_recovery",
|
||||
"execute": false,
|
||||
"log_dir": "/home/intlc/projects/proxmox/reports/extraction/growth-loop-rounds",
|
||||
"round_logs": [
|
||||
"/home/intlc/projects/proxmox/reports/extraction/growth-loop-rounds/round-001.json",
|
||||
"/home/intlc/projects/proxmox/reports/extraction/growth-loop-rounds/round-002.json"
|
||||
]
|
||||
}
|
||||
26
reports/extraction/growth-loop-once-latest.json
Normal file
26
reports/extraction/growth-loop-once-latest.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"decision": "extract_legacy_usdc",
|
||||
"reason": "legacy_usdc_quote_above_low_threshold",
|
||||
"wallet": {
|
||||
"eth_mainnet_wei": "8878760986095342",
|
||||
"usdc_raw": "0",
|
||||
"usdt_raw": "93378",
|
||||
"cwusdc_v2_raw": "0",
|
||||
"cwusdt_v2_raw": "93378"
|
||||
},
|
||||
"legacy_pools": {
|
||||
"cwusdc_usdc_quote_raw": "220253325",
|
||||
"cwusdt_usdt_quote_raw": "2182358"
|
||||
},
|
||||
"relays": {
|
||||
"mainnet_cw": "operational",
|
||||
"mainnet_weth": "operational"
|
||||
},
|
||||
"matched": {
|
||||
"usdc_raw": "0",
|
||||
"usdt_raw": "93378"
|
||||
},
|
||||
"execute": false,
|
||||
"command": "bash /home/intlc/projects/proxmox/scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdc-usdc --direction=base-to-quote --amount=11012666"
|
||||
}
|
||||
30
reports/extraction/growth-loop-rounds/round-001.json
Normal file
30
reports/extraction/growth-loop-rounds/round-001.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"decision": "recover_relay_gas",
|
||||
"reason": "mainnet_eth_below_minimum",
|
||||
"wallet": {
|
||||
"eth_mainnet_wei": "3926877588325964",
|
||||
"usdc_raw": "9514438",
|
||||
"usdt_raw": "93378",
|
||||
"cwusdc_v2_raw": "9514438",
|
||||
"cwusdt_v2_raw": "0"
|
||||
},
|
||||
"legacy_pools": {
|
||||
"cwusdc_usdc_quote_raw": "223124549",
|
||||
"cwusdt_usdt_quote_raw": "2182358"
|
||||
},
|
||||
"relays": {
|
||||
"mainnet_cw": "degraded",
|
||||
"mainnet_weth": "operational"
|
||||
},
|
||||
"matched": {
|
||||
"usdc_raw": "9514438",
|
||||
"usdt_raw": "0"
|
||||
},
|
||||
"execute": false,
|
||||
"command": "bash /home/intlc/projects/proxmox/scripts/deployment/recover-relay-gas.sh",
|
||||
"round": 1,
|
||||
"loop_execute": false,
|
||||
"stop_reason": "policy_requires_relay_gas_recovery",
|
||||
"executed": false
|
||||
}
|
||||
30
reports/extraction/growth-loop-rounds/round-002.json
Normal file
30
reports/extraction/growth-loop-rounds/round-002.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"decision": "recover_relay_gas",
|
||||
"reason": "mainnet_eth_below_minimum",
|
||||
"wallet": {
|
||||
"eth_mainnet_wei": "3931708822476357",
|
||||
"usdc_raw": "9514438",
|
||||
"usdt_raw": "93378",
|
||||
"cwusdc_v2_raw": "9514438",
|
||||
"cwusdt_v2_raw": "0"
|
||||
},
|
||||
"legacy_pools": {
|
||||
"cwusdc_usdc_quote_raw": "223124549",
|
||||
"cwusdt_usdt_quote_raw": "2182358"
|
||||
},
|
||||
"relays": {
|
||||
"mainnet_cw": "degraded",
|
||||
"mainnet_weth": "degraded"
|
||||
},
|
||||
"matched": {
|
||||
"usdc_raw": "9514438",
|
||||
"usdt_raw": "0"
|
||||
},
|
||||
"execute": false,
|
||||
"command": "bash /home/intlc/projects/proxmox/scripts/deployment/recover-relay-gas.sh",
|
||||
"round": 2,
|
||||
"loop_execute": true,
|
||||
"stop_reason": "policy_requires_relay_gas_recovery",
|
||||
"executed": false
|
||||
}
|
||||
6775
reports/extraction/growth-loop-simulation-latest.json
Normal file
6775
reports/extraction/growth-loop-simulation-latest.json
Normal file
File diff suppressed because it is too large
Load Diff
45
reports/extraction/growth-pricing-guardrails-latest.json
Normal file
45
reports/extraction/growth-pricing-guardrails-latest.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"pass_guardrails": true,
|
||||
"pause_growth": false,
|
||||
"max_deviation_bps_seen": 7760.68824,
|
||||
"thresholds": {
|
||||
"max_cwusdc_usdc_deviation_bps": 50.0,
|
||||
"max_cwusdt_usdt_deviation_bps": 75.0,
|
||||
"pause_on_deviation_bps": 100.0
|
||||
},
|
||||
"pairs": {
|
||||
"legacy_cwusdc_usdc": {
|
||||
"base_raw": 860795673,
|
||||
"quote_raw": 221764619,
|
||||
"deviation_bps": 7423.725212,
|
||||
"within_max": false,
|
||||
"max_bps": 50.0,
|
||||
"enforced": false
|
||||
},
|
||||
"legacy_cwusdt_usdt": {
|
||||
"base_raw": 9745664,
|
||||
"quote_raw": 2182358,
|
||||
"deviation_bps": 7760.68824,
|
||||
"within_max": false,
|
||||
"max_bps": 75.0,
|
||||
"enforced": false
|
||||
},
|
||||
"v2_cwusdc_usdc": {
|
||||
"base_raw": 17453828,
|
||||
"quote_raw": 17453828,
|
||||
"deviation_bps": 0.0,
|
||||
"within_max": true,
|
||||
"max_bps": 50.0,
|
||||
"enforced": true
|
||||
},
|
||||
"v2_cwusdt_usdt": {
|
||||
"base_raw": 562479,
|
||||
"quote_raw": 562479,
|
||||
"deviation_bps": 0.0,
|
||||
"within_max": true,
|
||||
"max_bps": 75.0,
|
||||
"enforced": true
|
||||
}
|
||||
}
|
||||
}
|
||||
25
reports/extraction/growth-stage-report-latest.json
Normal file
25
reports/extraction/growth-stage-report-latest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"stage": "early",
|
||||
"wallet_canonical_usd": 0.0,
|
||||
"controlled_direct_exit_usd": 18.016307,
|
||||
"total_direct_exit_usd": 241.963284,
|
||||
"legacy_bootstrap_usd": 223.946977,
|
||||
"thresholds": {
|
||||
"early_direct_exit_usd": 1000.0,
|
||||
"mid_direct_exit_usd": 10000.0,
|
||||
"mature_direct_exit_usd": 100000.0
|
||||
},
|
||||
"ratio_keys": {
|
||||
"retain_bps_key": "retain_bps_early",
|
||||
"redeploy_bps_key": "redeploy_bps_early"
|
||||
},
|
||||
"components": {
|
||||
"wallet_usdc_raw": 0,
|
||||
"wallet_usdt_raw": 0,
|
||||
"v2_usdc_quote_raw": 17453828,
|
||||
"v2_usdt_quote_raw": 562479,
|
||||
"legacy_usdc_quote_raw": 221764619,
|
||||
"legacy_usdt_quote_raw": 2182358
|
||||
}
|
||||
}
|
||||
217
reports/extraction/gru-v2-mainnet-bridge-parity-latest.json
Normal file
217
reports/extraction/gru-v2-mainnet-bridge-parity-latest.json
Normal file
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:12Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"overall_ready": true,
|
||||
"coexistence_ready": true,
|
||||
"lane_policy": {
|
||||
"status": "live-read",
|
||||
"shared_mirrored_lanes_on_mainnet": false,
|
||||
"v2_cutover_active": false,
|
||||
"v1_displaced_assets": [],
|
||||
"coexistence_requires_distinct_mirrored_tokens": true,
|
||||
"distinct_v2_mirrors_live": true,
|
||||
"notes": [
|
||||
"The deployed Mainnet CWMultiTokenBridgeL2 uses a one-to-one mirroredToken -> canonicalToken mapping.",
|
||||
"configureTokenPair(canonical, mirrored) clears the previous canonical mapping for the same mirrored token.",
|
||||
"True V1/V2 coexistence requires distinct V2 mirrored tokens.",
|
||||
"The live parity state is coexistence-ready when both V1 legacy lanes and V2 distinct lanes are mapped at once."
|
||||
],
|
||||
"code_reference": "smom-dbis-138/contracts/bridge/CWMultiTokenBridgeL2.sol:88"
|
||||
},
|
||||
"l1_bridge_138": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge_mainnet": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDC_V2",
|
||||
"canonical_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"mirrored_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V2",
|
||||
"canonicalToken": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2 --execute"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT_V2",
|
||||
"canonical_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"mirrored_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V2",
|
||||
"canonicalToken": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2 --execute"
|
||||
}
|
||||
],
|
||||
"v1_reference_assets": [
|
||||
{
|
||||
"symbol": "cUSDT_V1",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V1",
|
||||
"canonicalToken": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC_V1",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V1",
|
||||
"canonicalToken": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"dry_run_result": {
|
||||
"generatedAt": "2026-04-16T02:03:12Z",
|
||||
"chainId138": 138,
|
||||
"chainIdMainnet": 1,
|
||||
"rpc138": "http://192.168.11.211:8545",
|
||||
"rpcMainnet": "https://spectrum-02.simplystaking.xyz/dHhsYWpiZ3ctMDItMTlhMTZjZmY/Dq-EyjqZZ1IQpA/ethereum/mainnet/",
|
||||
"l1Bridge138": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2BridgeMainnet": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"mainnetSelector": 5009297550715157269,
|
||||
"gruV2BridgeableToMainnet": true,
|
||||
"assets": [
|
||||
{
|
||||
"label": "cUSDT_V1",
|
||||
"canonicalToken": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDC_V1",
|
||||
"canonicalToken": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDT_V2",
|
||||
"canonicalToken": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDC_V2",
|
||||
"canonicalToken": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
270
reports/extraction/gru-v2-mainnet-funding-plan-latest.json
Normal file
270
reports/extraction/gru-v2-mainnet-funding-plan-latest.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:28Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"default_target_exit_usd": 100000,
|
||||
"parity_state": {
|
||||
"generated_at": "2026-04-16T02:03:21Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"overall_ready": true,
|
||||
"coexistence_ready": true,
|
||||
"lane_policy": {
|
||||
"status": "live-read",
|
||||
"shared_mirrored_lanes_on_mainnet": false,
|
||||
"v2_cutover_active": false,
|
||||
"v1_displaced_assets": [],
|
||||
"coexistence_requires_distinct_mirrored_tokens": true,
|
||||
"distinct_v2_mirrors_live": true,
|
||||
"notes": [
|
||||
"The deployed Mainnet CWMultiTokenBridgeL2 uses a one-to-one mirroredToken -> canonicalToken mapping.",
|
||||
"configureTokenPair(canonical, mirrored) clears the previous canonical mapping for the same mirrored token.",
|
||||
"True V1/V2 coexistence requires distinct V2 mirrored tokens.",
|
||||
"The live parity state is coexistence-ready when both V1 legacy lanes and V2 distinct lanes are mapped at once."
|
||||
],
|
||||
"code_reference": "smom-dbis-138/contracts/bridge/CWMultiTokenBridgeL2.sol:88"
|
||||
},
|
||||
"l1_bridge_138": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge_mainnet": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDC_V2",
|
||||
"canonical_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"mirrored_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V2",
|
||||
"canonicalToken": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2 --execute"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT_V2",
|
||||
"canonical_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"mirrored_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V2",
|
||||
"canonicalToken": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2 --execute"
|
||||
}
|
||||
],
|
||||
"v1_reference_assets": [
|
||||
{
|
||||
"symbol": "cUSDT_V1",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V1",
|
||||
"canonicalToken": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC_V1",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V1",
|
||||
"canonicalToken": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"dry_run_result": {
|
||||
"generatedAt": "2026-04-16T02:03:21Z",
|
||||
"chainId138": 138,
|
||||
"chainIdMainnet": 1,
|
||||
"rpc138": "http://192.168.11.211:8545",
|
||||
"rpcMainnet": "https://spectrum-02.simplystaking.xyz/dHhsYWpiZ3ctMDItMTlhMTZjZmY/Dq-EyjqZZ1IQpA/ethereum/mainnet/",
|
||||
"l1Bridge138": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2BridgeMainnet": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"mainnetSelector": 5009297550715157269,
|
||||
"gruV2BridgeableToMainnet": true,
|
||||
"assets": [
|
||||
{
|
||||
"label": "cUSDT_V1",
|
||||
"canonicalToken": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDC_V1",
|
||||
"canonicalToken": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDT_V2",
|
||||
"canonicalToken": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
{
|
||||
"label": "cUSDC_V2",
|
||||
"canonicalToken": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDC_V2",
|
||||
"canonical_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"mirrored_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"funding_pair": "cwusdcv2-usdc",
|
||||
"status": "simulated",
|
||||
"parity_required": false,
|
||||
"lane_cutover_active": false,
|
||||
"v1_coexistence_ready": true,
|
||||
"target_exit_usd": 100000,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"bridge_amount_raw": "2000000000000",
|
||||
"mint_needed_raw": "1925000000000",
|
||||
"quote_side_requirement_raw": "2000000000000",
|
||||
"wallet_can_fund_quote_side_now": false,
|
||||
"capital_movement_required": true,
|
||||
"mint_command": "cast send 0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d \"mint(address,uint256)\" 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1925000000000 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"bridge_command": "bash scripts/bridge/bridge-canonical-token-to-mainnet-cw.sh --label cUSDC_V2 --canonical-token 0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d --mirrored-token 0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c --raw-amount 2000000000000 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve",
|
||||
"fund_pool_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=full-target --target-usd=100000"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT_V2",
|
||||
"canonical_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"mirrored_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"funding_pair": "cwusdtv2-usdt",
|
||||
"status": "simulated",
|
||||
"parity_required": false,
|
||||
"lane_cutover_active": false,
|
||||
"v1_coexistence_ready": true,
|
||||
"target_exit_usd": 100000,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"bridge_amount_raw": "2000000000000",
|
||||
"mint_needed_raw": "1925000000000",
|
||||
"quote_side_requirement_raw": "2000000000000",
|
||||
"wallet_can_fund_quote_side_now": false,
|
||||
"capital_movement_required": true,
|
||||
"mint_command": "cast send 0x9FBfab33882Efe0038DAa608185718b772EE5660 \"mint(address,uint256)\" 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1925000000000 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"bridge_command": "bash scripts/bridge/bridge-canonical-token-to-mainnet-cw.sh --label cUSDT_V2 --canonical-token 0x9FBfab33882Efe0038DAa608185718b772EE5660 --mirrored-token 0x7E8FF0DcC974F290a29968e9350800a6df674447 --raw-amount 2000000000000 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve",
|
||||
"fund_pool_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=full-target --target-usd=100000"
|
||||
}
|
||||
]
|
||||
}
|
||||
8682
reports/extraction/gru-v2-wave1-funding-authority-report-latest.json
Normal file
8682
reports/extraction/gru-v2-wave1-funding-authority-report-latest.json
Normal file
File diff suppressed because it is too large
Load Diff
796
reports/extraction/gru-v2-wave1-public-deploy-plan-latest.json
Normal file
796
reports/extraction/gru-v2-wave1-public-deploy-plan-latest.json
Normal file
@@ -0,0 +1,796 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T18:20:59.146546Z",
|
||||
"description": "Universal GRU v2 Wave 1 public pool deployment plan derived from the missing-pool gap report, env, deployment-status, and seed policy.",
|
||||
"sources": [
|
||||
"reports/extraction/gru-v2-wave1-public-gap-report-latest.json",
|
||||
"cross-chain-pmm-lps/config/deployment-status.json",
|
||||
"config/extraction/gru-v2-wave1-public-seed-policy.json",
|
||||
"repo env via scripts/lib/load-project-env.sh",
|
||||
"optional live RPC checks via GRU_WAVE1_PLAN_LIVE_CHECKS=1"
|
||||
],
|
||||
"summary": {
|
||||
"planned_missing_rows": 16,
|
||||
"ready_to_create_strict": 0,
|
||||
"ready_to_create_with_bootstrap_price": 1,
|
||||
"ready_to_seed": 0,
|
||||
"existing_pool_rows_found_onchain": 5,
|
||||
"counts_by_network": {
|
||||
"Polygon": 6,
|
||||
"Wemix": 10
|
||||
},
|
||||
"top_blockers": {
|
||||
"bootstrap_price_requires_operator_review": 16,
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX": 10,
|
||||
"missing_quote_anchor:USDT": 10,
|
||||
"insufficient_base_balance": 6,
|
||||
"missing_base_token_env:CWAUDC_WEMIX": 1,
|
||||
"missing_base_token_env:CWCADC_WEMIX": 1,
|
||||
"missing_base_token_env:CWCHFC_WEMIX": 1,
|
||||
"missing_base_token_env:CWEURC_WEMIX": 1,
|
||||
"missing_base_token_env:CWEURT_WEMIX": 1,
|
||||
"missing_base_token_env:CWGBPC_WEMIX": 1,
|
||||
"missing_base_token_env:CWGBPT_WEMIX": 1,
|
||||
"missing_base_token_env:CWJPYC_WEMIX": 1,
|
||||
"missing_base_token_env:CWXAUC_WEMIX": 1,
|
||||
"missing_base_token_env:CWXAUT_WEMIX": 1
|
||||
}
|
||||
},
|
||||
"rows": [
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWEURT/USDC",
|
||||
"base_symbol": "cWEURT",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWEURT_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0xBeF5A0Bcc0E77740c910f197138cdD90F98d2427",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0x36aB6bef2B3335ebf6a762665978bf5e845FDEC0",
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "108000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0xBeF5A0Bcc0E77740c910f197138cdD90F98d2427 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 1080000000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 100000000 108000000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWGBPC/USDC",
|
||||
"base_symbol": "cWGBPC",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWGBPC_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0x948690147D2e50ffe50C5d38C14125aD6a9FA036",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0x7a95f67E31f271A6a83219d8368D963Ee2fC106B",
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "127000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0x948690147D2e50ffe50C5d38C14125aD6a9FA036 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 1270000000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 100000000 127000000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWGBPT/USDC",
|
||||
"base_symbol": "cWGBPT",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWGBPT_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0xC3645c7153b7B72556e322aA1E72D77536d9A3DE",
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "127000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 1270000000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 100000000 127000000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWJPYC/USDC",
|
||||
"base_symbol": "cWJPYC",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWJPYC_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0x09658d8d81aa8fa7a21eD973787638f245bc3fe0",
|
||||
"initial_price_e18": "6700000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "670000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 6700000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 100000000 670000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWXAUC/USDC",
|
||||
"base_symbol": "cWXAUC",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWXAUC_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0x328Cd365Bb35524297E68ED28c6fF2C9557d1363",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0x3c3b9Bd130fB3aBcC0E0CE6552795DD56BCCc55c",
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "1000000",
|
||||
"quote_amount_raw": "3200000000",
|
||||
"mint_base_amount_raw": "1000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0x328Cd365Bb35524297E68ED28c6fF2C9557d1363 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 3200000000000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 1000000 3200000000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWXAUT/USDC",
|
||||
"base_symbol": "cWXAUT",
|
||||
"quote_symbol": "USDC",
|
||||
"hub_stable": "USDC",
|
||||
"rpc_env_key": "POLYGON_RPC_URL",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_POLYGON",
|
||||
"base_env_key": "CWXAUT_POLYGON",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": true,
|
||||
"base_token_present": true,
|
||||
"quote_anchor_present": true,
|
||||
"base_address": "0x9e6044d730d4183bF7a666293d257d035Fba6d44",
|
||||
"quote_address": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"integration_address": "0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5",
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": "0x0000000000000000000000000000000000000000",
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "1000000",
|
||||
"quote_amount_raw": "3200000000",
|
||||
"mint_base_amount_raw": "1000000",
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "insufficient",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": true,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
],
|
||||
"create_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'createPool(address,address,uint256,uint256,uint256,bool)(address)' 0x9e6044d730d4183bF7a666293d257d035Fba6d44 0xc21223249CA28397B4B6541dfFaEcC539BfF0c59 3 3200000000000000000000 500000000000000000 false --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"seed_command": "cast send 0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5 'addLiquidity(address,uint256,uint256)(uint256,uint256,uint256)' <pool_address> 1000000 3200000000 --rpc-url https://spectrum-03.simplystaking.xyz/dHhsYWpiZ3ctMDMtMTlhMTZjZmY/D0ZpITILU75OdA/polygon/mainnet/ --private-key $PRIVATE_KEY",
|
||||
"next_step": "operator_review_bootstrap_price"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWAUDC/USDT",
|
||||
"base_symbol": "cWAUDC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWAUDC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "660000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "66000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWAUDC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWCADC/USDT",
|
||||
"base_symbol": "cWCADC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWCADC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "740000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "74000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWCADC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWCHFC/USDT",
|
||||
"base_symbol": "cWCHFC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWCHFC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "1110000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "111000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWCHFC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWEURC/USDT",
|
||||
"base_symbol": "cWEURC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWEURC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "108000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWEURC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWEURT/USDT",
|
||||
"base_symbol": "cWEURT",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWEURT_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "108000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWEURT_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWGBPC/USDT",
|
||||
"base_symbol": "cWGBPC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWGBPC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "127000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWGBPC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWGBPT/USDT",
|
||||
"base_symbol": "cWGBPT",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWGBPT_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "127000000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWGBPT_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWJPYC/USDT",
|
||||
"base_symbol": "cWJPYC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWJPYC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "6700000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"quote_amount_raw": "670000",
|
||||
"mint_base_amount_raw": "100000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWJPYC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWXAUC/USDT",
|
||||
"base_symbol": "cWXAUC",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWXAUC_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "1000000",
|
||||
"quote_amount_raw": "3200000000",
|
||||
"mint_base_amount_raw": "1000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWXAUC_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
},
|
||||
{
|
||||
"chain_id": 1111,
|
||||
"network": "Wemix",
|
||||
"pair": "cWXAUT/USDT",
|
||||
"base_symbol": "cWXAUT",
|
||||
"quote_symbol": "USDT",
|
||||
"hub_stable": "USDT",
|
||||
"rpc_env_key": "WEMIX_RPC",
|
||||
"integration_env_key": "DODO_PMM_INTEGRATION_WEMIX",
|
||||
"base_env_key": "CWXAUT_WEMIX",
|
||||
"quote_anchor_source": "deployment-status.json",
|
||||
"rpc_url_present": true,
|
||||
"integration_present": false,
|
||||
"base_token_present": false,
|
||||
"quote_anchor_present": false,
|
||||
"base_address": null,
|
||||
"quote_address": null,
|
||||
"integration_address": null,
|
||||
"deployer": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"live_checks_enabled": true,
|
||||
"existing_pool_address": null,
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"fee_bps": "3",
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "1000000",
|
||||
"quote_amount_raw": "3200000000",
|
||||
"mint_base_amount_raw": "1000000",
|
||||
"wallet_base_balance_raw": null,
|
||||
"wallet_quote_balance_raw": null,
|
||||
"wallet_base_allowance_raw": null,
|
||||
"wallet_quote_allowance_raw": null,
|
||||
"mintable_base": false,
|
||||
"base_supply_mode": "unknown",
|
||||
"ready_to_create": false,
|
||||
"ready_to_create_with_bootstrap_price": false,
|
||||
"ready_to_seed": false,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"missing_base_token_env:CWXAUT_WEMIX",
|
||||
"missing_integration_env:DODO_PMM_INTEGRATION_WEMIX",
|
||||
"missing_quote_anchor:USDT"
|
||||
],
|
||||
"create_command": "",
|
||||
"seed_command": "",
|
||||
"next_step": "resolve_blockers"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T18:21:04.996618Z",
|
||||
"description": "Universal GRU v2 Wave 1 pool operator live run record.",
|
||||
"rows": [
|
||||
{
|
||||
"chain_id": 137,
|
||||
"network": "Polygon",
|
||||
"pair": "cWXAUT/USDC",
|
||||
"status": "executed_create_only",
|
||||
"create_tx": "0x66fd5ad30ae20890de9c06abf37e9db84d352447ae0035eec32e0ca1a5a501ed",
|
||||
"seed_tx": null,
|
||||
"pool_address_before": "0x0000000000000000000000000000000000000000",
|
||||
"pool_address_after": "0x37D5587Bbe17571cDe96DAB7b2e7EA234C87f525",
|
||||
"notes": [],
|
||||
"base_supply_mode": "insufficient",
|
||||
"mintable_base": false,
|
||||
"wallet_base_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": null,
|
||||
"blockers": [
|
||||
"bootstrap_price_requires_operator_review",
|
||||
"insufficient_base_balance"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
1070
reports/extraction/gru-v2-wave1-public-gap-report-latest.json
Normal file
1070
reports/extraction/gru-v2-wave1-public-gap-report-latest.json
Normal file
File diff suppressed because it is too large
Load Diff
32
reports/extraction/leverage-readiness-report-latest.json
Normal file
32
reports/extraction/leverage-readiness-report-latest.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"ready": false,
|
||||
"checks": {
|
||||
"policy_enabled": false,
|
||||
"wallet_canonical_usd_ready": false,
|
||||
"direct_exit_usd_ready": false,
|
||||
"successful_cycles_ready": false,
|
||||
"price_deviation_ready": false,
|
||||
"relays_ready": true
|
||||
},
|
||||
"metrics": {
|
||||
"wallet_canonical_usd": 0.0,
|
||||
"direct_exit_usd": 241.963284,
|
||||
"successful_cycles": 0,
|
||||
"max_deviation_bps_seen": 7760.68824,
|
||||
"relay_status": {
|
||||
"mainnet-cw": "operational",
|
||||
"mainnet-weth": "operational"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
"turn_on_min_wallet_canonical_usd": 25000.0,
|
||||
"turn_on_min_direct_exit_usd": 100000.0,
|
||||
"turn_on_min_successful_cycles": 25,
|
||||
"turn_on_max_price_deviation_bps": 100.0,
|
||||
"turn_on_required_relays": [
|
||||
"mainnet-cw",
|
||||
"mainnet-weth"
|
||||
]
|
||||
}
|
||||
}
|
||||
78
reports/extraction/liquidity-state-delta-latest.json
Normal file
78
reports/extraction/liquidity-state-delta-latest.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:39Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"default_target_exit_usd": 100000,
|
||||
"before": {
|
||||
"generated_at": "2026-04-16T02:03:35Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"nominal_total_usd": "6872703072.173878751248871214403674",
|
||||
"immediate_liquid_position_usd": "0",
|
||||
"internal_same_day_via_lp_withdrawal_usd": "5999999.981979",
|
||||
"near_immediate_mainnet_cw_exit_usd": "17777520.488172",
|
||||
"near_term_actionable_usd": "23777520.470151",
|
||||
"best_mainnet_exit_routes": {
|
||||
"cWUSDC": {
|
||||
"route_id": "cwusdc-direct-usdc",
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"rank": 1
|
||||
},
|
||||
"cWUSDT": {
|
||||
"route_id": "cwusdt-via-cwusdc-to-usdc",
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"rank": 2
|
||||
}
|
||||
},
|
||||
"gates_closed": {
|
||||
"lp_signature_confirmed": true,
|
||||
"lp_direct_call_no_approval_confirmed": true,
|
||||
"bridge_wiring_read_only_confirmed": true,
|
||||
"mainnet_exit_dry_run_routes_available": true,
|
||||
"live_lp_withdrawal_canary_executed": false,
|
||||
"live_bridge_canary_executed": false,
|
||||
"live_mainnet_exit_canary_executed": false
|
||||
}
|
||||
},
|
||||
"direct_exit_capacity_before_usd": "12.00557430",
|
||||
"direct_exit_capacity_after_quote_only_usd": "40.59448930",
|
||||
"direct_exit_capacity_after_full_target_usd": "400000",
|
||||
"projected_immediate_liquid_if_full_target_swept_usd": "400000",
|
||||
"projected_near_immediate_remaining_after_full_target_swept_usd": "17377520.488172",
|
||||
"scenarios": [
|
||||
{
|
||||
"pair": "cwusdc-usdc",
|
||||
"before_direct_exit_capacity_usd": "11.88535765",
|
||||
"after_quote_only_capacity_usd": "40.15220610",
|
||||
"after_full_target_capacity_usd": "100000",
|
||||
"quote_only_add_raw": "565336969",
|
||||
"full_target_base_add_raw": "1999196955878",
|
||||
"full_target_quote_add_raw": "1999762292847"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdt-usdt",
|
||||
"before_direct_exit_capacity_usd": "0.12021665",
|
||||
"after_quote_only_capacity_usd": "0.44228320",
|
||||
"after_full_target_capacity_usd": "100000",
|
||||
"quote_only_add_raw": "6441331",
|
||||
"full_target_base_add_raw": "1999991154336",
|
||||
"full_target_quote_add_raw": "1999997595667"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"before_direct_exit_capacity_usd": "0.00",
|
||||
"after_quote_only_capacity_usd": "0.00",
|
||||
"after_full_target_capacity_usd": "100000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "2000000000000",
|
||||
"full_target_quote_add_raw": "2000000000000"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"before_direct_exit_capacity_usd": "0.00",
|
||||
"after_quote_only_capacity_usd": "0.00",
|
||||
"after_full_target_capacity_usd": "100000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "2000000000000",
|
||||
"full_target_quote_add_raw": "2000000000000"
|
||||
}
|
||||
]
|
||||
}
|
||||
50
reports/extraction/live-bridge-canary-run-latest.json
Normal file
50
reports/extraction/live-bridge-canary-run-latest.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T00:27:03Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"run_type": "bridge-canary",
|
||||
"target": "cUSDT",
|
||||
"execute": false,
|
||||
"status": "dry-run",
|
||||
"step": {
|
||||
"symbol": "cUSDT",
|
||||
"status": "live-read",
|
||||
"chain138_source_balance_raw": "75000000000",
|
||||
"dry_run_ok": true,
|
||||
"dry_run_excerpt": [
|
||||
"l1_destination_enabled=True",
|
||||
"l1_destination_receiver=0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"fee_quote_1_token_wei=1000009600000000",
|
||||
"mainnet_mirrored_token=0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae"
|
||||
],
|
||||
"source_allowance_raw": "0",
|
||||
"dry_run_error": null,
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
"execute_command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --approve --execute"
|
||||
},
|
||||
"result": {
|
||||
"command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"returncode": 0,
|
||||
"stdout": "=== Generic Chain 138 c* -> cW* send ===\nChain: MAINNET (chainId 1)\nLane: cUSDT\u2192cWUSDT\nSender: 0x4A666F96fC8764181194447A7dFdb7d471b301C8\nRecipient: 0x4A666F96fC8764181194447A7dFdb7d471b301C8\nCanonical token: 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22\nMirrored token: 0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE\nL1 bridge: 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7\nChain selector: 5009297550715157269\nAmount (human): 1\nAmount (raw): 1000000\nSupported on L1: unavailable\nDestination config: (0x2bF74583206A49Be07E0E8A94197C12987AbD7B5, true)\nSource allowance: 0\nBridge fee: 1000009600000000\nFee token: 0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03\nFee allowance: 99993999942400000000\nMode: dry-run\n\nDry-run commands:\n1. Approve source token\ncast send 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 approve\\(address\\,uint256\\) 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7 1000000 --rpc-url http://192.168.11.211:8545 --private-key \"$PRIVATE_KEY\" --legacy\n3. lockAndSend\ncast send 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7 lockAndSend\\(address\\,uint64\\,address\\,uint256\\) 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 5009297550715157269 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1000000 --rpc-url http://192.168.11.211:8545 --private-key \"$PRIVATE_KEY\" --legacy\n\nRe-run with --execute to broadcast. Add --approve to auto-submit approvals first.\n",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"": "== Generic Chain 138 c* -> cW* send ==="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T00:28:46Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"run_type": "end-to-end-corridor-canary",
|
||||
"execute": false,
|
||||
"stages": [
|
||||
{
|
||||
"stage": "lp-withdrawal",
|
||||
"command": "direct-readonly-sellShares-preview",
|
||||
"result": {
|
||||
"command": "direct-readonly-sellShares-preview",
|
||||
"returncode": 0,
|
||||
"stdout": "",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"previewBaseOutRaw": "983891196",
|
||||
"previewQuoteOutRaw": "1016108795"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": "bridge",
|
||||
"command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"result": {
|
||||
"command": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"returncode": 0,
|
||||
"stdout": "=== Generic Chain 138 c* -> cW* send ===\nChain: MAINNET (chainId 1)\nLane: cUSDT\u2192cWUSDT\nSender: 0x4A666F96fC8764181194447A7dFdb7d471b301C8\nRecipient: 0x4A666F96fC8764181194447A7dFdb7d471b301C8\nCanonical token: 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22\nMirrored token: 0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE\nL1 bridge: 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7\nChain selector: 5009297550715157269\nAmount (human): 1\nAmount (raw): 1000000\nSupported on L1: unavailable\nDestination config: (0x2bF74583206A49Be07E0E8A94197C12987AbD7B5, true)\nSource allowance: 0\nBridge fee: 1000009600000000\nFee token: 0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03\nFee allowance: 99993999942400000000\nMode: dry-run\n\nDry-run commands:\n1. Approve source token\ncast send 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 approve\\(address\\,uint256\\) 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7 1000000 --rpc-url http://192.168.11.211:8545 --private-key \"$PRIVATE_KEY\" --legacy\n3. lockAndSend\ncast send 0x152ed3e9912161b76bdfd368d0c84b7c31c10de7 lockAndSend\\(address\\,uint64\\,address\\,uint256\\) 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 5009297550715157269 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1000000 --rpc-url http://192.168.11.211:8545 --private-key \"$PRIVATE_KEY\" --legacy\n\nRe-run with --execute to broadcast. Add --approve to auto-submit approvals first.\n",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"": "== Generic Chain 138 c* -> cW* send ==="
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": "landing-verification",
|
||||
"result": {
|
||||
"status": "dry-run",
|
||||
"helper_command": "python3 scripts/lib/liquidity_improvement_pack.py landing-check --symbol cUSDT --expected-delta-raw 1000000 --baseline-balance-raw 8888909964479"
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": "mainnet-exit",
|
||||
"command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000 --min-out=990000 --dry-run",
|
||||
"result": {
|
||||
"command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000 --min-out=990000 --dry-run",
|
||||
"returncode": 0,
|
||||
"stdout": "pair=cwusdt-usdt\ndirection=base-to-quote\npool=0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC\nintegration=0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84\npoolSurface=partial_dodo_surface_integration_only\nquoteSource=reserve_fallback\nmidPrice=271809216357302289\nlpFeeRate=3\nbaseReserve=8845664\nquoteReserve=2404333\namountIn=1000000\nestimatedOut=244136\nminOut=990000\ntokenIn=0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE\ntokenOut=0xdAC17F958D2ee523a2206206994597C13D831ec7\ntokenInBalanceBefore=8888909964479\ntokenOutBalanceBefore=340504\nallowanceBefore=115792089237316195423570985008687907853269984665640564039457584007913129639935\napprovalRequired=0\ndryRun=1\n",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"pair": "cwusdt-usdt",
|
||||
"direction": "base-to-quote",
|
||||
"pool": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"integration": "0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84",
|
||||
"poolSurface": "partial_dodo_surface_integration_only",
|
||||
"quoteSource": "reserve_fallback",
|
||||
"midPrice": "271809216357302289",
|
||||
"lpFeeRate": "3",
|
||||
"baseReserve": "8845664",
|
||||
"quoteReserve": "2404333",
|
||||
"amountIn": "1000000",
|
||||
"estimatedOut": "244136",
|
||||
"minOut": "990000",
|
||||
"tokenIn": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"tokenOut": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"tokenInBalanceBefore": "8888909964479",
|
||||
"tokenOutBalanceBefore": "340504",
|
||||
"allowanceBefore": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
|
||||
"approvalRequired": "0",
|
||||
"dryRun": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"status": "dry-run"
|
||||
}
|
||||
35
reports/extraction/live-lp-withdrawal-canary-run-latest.json
Normal file
35
reports/extraction/live-lp-withdrawal-canary-run-latest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T00:28:39Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"run_type": "lp-withdrawal-canary",
|
||||
"target": "cUSDT/cUSDC",
|
||||
"execute": false,
|
||||
"status": "dry-run",
|
||||
"step": {
|
||||
"pair": "cUSDT/cUSDC",
|
||||
"pool_address": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"status": "live-read",
|
||||
"canary_share_amount_raw": "999999996",
|
||||
"preview_base_out_raw": "983891196",
|
||||
"preview_quote_out_raw": "1016108795",
|
||||
"base_min_amount_raw": "974052284",
|
||||
"quote_min_amount_raw": "1005947707",
|
||||
"deadline_unix": 1776302919,
|
||||
"dry_run_command": "cast call 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)(uint256,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776302919 --from 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url \"$RPC_URL_138\"",
|
||||
"execute_command": "cast send 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776302919 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"notes": [
|
||||
"Direct owner call does not require LP approval.",
|
||||
"This canary is intentionally tiny and should be run only in a separate operator-approved mutation workflow."
|
||||
]
|
||||
},
|
||||
"result": {
|
||||
"command": "direct-readonly-sellShares-preview",
|
||||
"returncode": 0,
|
||||
"stdout": "",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"previewBaseOutRaw": "983891196",
|
||||
"previewQuoteOutRaw": "1016108795"
|
||||
}
|
||||
}
|
||||
}
|
||||
56
reports/extraction/live-mainnet-exit-canary-run-latest.json
Normal file
56
reports/extraction/live-mainnet-exit-canary-run-latest.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T00:27:10Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"run_type": "mainnet-exit-canary",
|
||||
"target": "cWUSDT",
|
||||
"execute": false,
|
||||
"status": "dry-run",
|
||||
"step": {
|
||||
"symbol": "cWUSDT",
|
||||
"pair": "cwusdt-usdt",
|
||||
"target_asset": "USDT",
|
||||
"status": "manual-required",
|
||||
"dry_run_ok": true,
|
||||
"amount_in_raw": "1000000",
|
||||
"estimated_out_raw": "1000000",
|
||||
"min_out_raw": "990000",
|
||||
"pool_surface": "reserve-heuristic",
|
||||
"quote_source": "live-getVaultReserve",
|
||||
"slippage_estimate_pct": null,
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"status": "manual-required",
|
||||
"reason": "Could not read getVaultReserve()"
|
||||
},
|
||||
"execute_command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000",
|
||||
"dry_run_error": null
|
||||
},
|
||||
"result": {
|
||||
"command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000 --min-out=990000 --dry-run",
|
||||
"returncode": 0,
|
||||
"stdout": "pair=cwusdt-usdt\ndirection=base-to-quote\npool=0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC\nintegration=0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84\npoolSurface=partial_dodo_surface_integration_only\nquoteSource=reserve_fallback\nmidPrice=271809216357302289\nlpFeeRate=3\nbaseReserve=8845664\nquoteReserve=2404333\namountIn=1000000\nestimatedOut=244136\nminOut=990000\ntokenIn=0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE\ntokenOut=0xdAC17F958D2ee523a2206206994597C13D831ec7\ntokenInBalanceBefore=8888909964479\ntokenOutBalanceBefore=340504\nallowanceBefore=115792089237316195423570985008687907853269984665640564039457584007913129639935\napprovalRequired=0\ndryRun=1\n",
|
||||
"stderr": "",
|
||||
"kv": {
|
||||
"pair": "cwusdt-usdt",
|
||||
"direction": "base-to-quote",
|
||||
"pool": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"integration": "0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84",
|
||||
"poolSurface": "partial_dodo_surface_integration_only",
|
||||
"quoteSource": "reserve_fallback",
|
||||
"midPrice": "271809216357302289",
|
||||
"lpFeeRate": "3",
|
||||
"baseReserve": "8845664",
|
||||
"quoteReserve": "2404333",
|
||||
"amountIn": "1000000",
|
||||
"estimatedOut": "244136",
|
||||
"minOut": "990000",
|
||||
"tokenIn": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"tokenOut": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"tokenInBalanceBefore": "8888909964479",
|
||||
"tokenOutBalanceBefore": "340504",
|
||||
"allowanceBefore": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
|
||||
"approvalRequired": "0",
|
||||
"dryRun": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
166
reports/extraction/lp-tranche-sizing-latest.json
Normal file
166
reports/extraction/lp-tranche-sizing-latest.json
Normal file
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:42Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"thresholds": {
|
||||
"default_slippage_bps": 100,
|
||||
"test_share_divisor": 1000,
|
||||
"deadline_seconds": 3600,
|
||||
"tranche_percentages": [
|
||||
1,
|
||||
5,
|
||||
10,
|
||||
25,
|
||||
50,
|
||||
100
|
||||
]
|
||||
},
|
||||
"pools": [
|
||||
{
|
||||
"pair": "cUSDT/cUSDC",
|
||||
"pool_address": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"status": "simulated",
|
||||
"tranches": [
|
||||
{
|
||||
"percentage": 1,
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out_human": "9838.911970",
|
||||
"expected_quote_out_human": "10161.087970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 5,
|
||||
"lp_tokens_to_burn_raw": "49999999850",
|
||||
"expected_base_out_human": "49194.559851",
|
||||
"expected_quote_out_human": "50805.439849",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 10,
|
||||
"lp_tokens_to_burn_raw": "99999999700",
|
||||
"expected_base_out_human": "98389.119701",
|
||||
"expected_quote_out_human": "101610.879698",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 25,
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out_human": "245972.799253",
|
||||
"expected_quote_out_human": "254027.199245",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 50,
|
||||
"lp_tokens_to_burn_raw": "499999998498",
|
||||
"expected_base_out_human": "491945.598506",
|
||||
"expected_quote_out_human": "508054.398490",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 100,
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out_human": "983891.197013",
|
||||
"expected_quote_out_human": "1016108.796980",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDT/USDT",
|
||||
"pool_address": "0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66",
|
||||
"status": "simulated",
|
||||
"tranches": [
|
||||
{
|
||||
"percentage": 1,
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out_human": "9998.724970",
|
||||
"expected_quote_out_human": "10001.274970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 5,
|
||||
"lp_tokens_to_burn_raw": "49999999850",
|
||||
"expected_base_out_human": "49993.624850",
|
||||
"expected_quote_out_human": "50006.374850",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 10,
|
||||
"lp_tokens_to_burn_raw": "99999999700",
|
||||
"expected_base_out_human": "99987.249700",
|
||||
"expected_quote_out_human": "100012.749700",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 25,
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out_human": "249968.124249",
|
||||
"expected_quote_out_human": "250031.874249",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 50,
|
||||
"lp_tokens_to_burn_raw": "499999998498",
|
||||
"expected_base_out_human": "499936.248498",
|
||||
"expected_quote_out_human": "500063.748498",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 100,
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out_human": "999872.496997",
|
||||
"expected_quote_out_human": "1000127.496996",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDC/USDC",
|
||||
"pool_address": "0xc39B7D0F40838cbFb54649d327f49a6DAC964062",
|
||||
"status": "simulated",
|
||||
"tranches": [
|
||||
{
|
||||
"percentage": 1,
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out_human": "10104.629970",
|
||||
"expected_quote_out_human": "9895.369970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 5,
|
||||
"lp_tokens_to_burn_raw": "49999999850",
|
||||
"expected_base_out_human": "50523.149849",
|
||||
"expected_quote_out_human": "49476.849850",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 10,
|
||||
"lp_tokens_to_burn_raw": "99999999700",
|
||||
"expected_base_out_human": "101046.299699",
|
||||
"expected_quote_out_human": "98953.699701",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 25,
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out_human": "252615.749246",
|
||||
"expected_quote_out_human": "247384.249252",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 50,
|
||||
"lp_tokens_to_burn_raw": "499999998498",
|
||||
"expected_base_out_human": "505231.498493",
|
||||
"expected_quote_out_human": "494768.498504",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"percentage": 100,
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out_human": "1010462.996986",
|
||||
"expected_quote_out_human": "989536.997007",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
76
reports/extraction/lp-withdrawal-canary-plan-latest.json
Normal file
76
reports/extraction/lp-withdrawal-canary-plan-latest.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:08Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"thresholds": {
|
||||
"default_slippage_bps": 100,
|
||||
"test_share_divisor": 1000,
|
||||
"deadline_seconds": 3600,
|
||||
"tranche_percentages": [
|
||||
1,
|
||||
5,
|
||||
10,
|
||||
25,
|
||||
50,
|
||||
100
|
||||
]
|
||||
},
|
||||
"pools": [
|
||||
{
|
||||
"pair": "cUSDT/cUSDC",
|
||||
"pool_address": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"status": "live-read",
|
||||
"canary_share_amount_raw": "999999996",
|
||||
"preview_base_out_raw": "983891196",
|
||||
"preview_quote_out_raw": "1016108795",
|
||||
"base_min_amount_raw": "974052284",
|
||||
"quote_min_amount_raw": "1005947707",
|
||||
"deadline_unix": 1776308588,
|
||||
"dry_run_command": "cast call 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)(uint256,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776308588 --from 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url \"$RPC_URL_138\"",
|
||||
"execute_command": "cast send 0x9e89bAe009adf128782E19e8341996c596ac40dC \"sellShares(uint256,address,uint256,uint256,bytes,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 974052284 1005947707 0x 1776308588 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"notes": [
|
||||
"Direct owner call does not require LP approval.",
|
||||
"This canary is intentionally tiny and should be run only in a separate operator-approved mutation workflow."
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDT/USDT",
|
||||
"pool_address": "0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66",
|
||||
"status": "live-read",
|
||||
"canary_share_amount_raw": "999999996",
|
||||
"preview_base_out_raw": "999872496",
|
||||
"preview_quote_out_raw": "1000127495",
|
||||
"base_min_amount_raw": "989873771",
|
||||
"quote_min_amount_raw": "990126220",
|
||||
"deadline_unix": 1776308588,
|
||||
"dry_run_command": "cast call 0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66 \"sellShares(uint256,address,uint256,uint256,bytes,uint256)(uint256,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 989873771 990126220 0x 1776308588 --from 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url \"$RPC_URL_138\"",
|
||||
"execute_command": "cast send 0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66 \"sellShares(uint256,address,uint256,uint256,bytes,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 989873771 990126220 0x 1776308588 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"notes": [
|
||||
"Direct owner call does not require LP approval.",
|
||||
"This canary is intentionally tiny and should be run only in a separate operator-approved mutation workflow."
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDC/USDC",
|
||||
"pool_address": "0xc39B7D0F40838cbFb54649d327f49a6DAC964062",
|
||||
"status": "live-read",
|
||||
"canary_share_amount_raw": "999999996",
|
||||
"preview_base_out_raw": "1010462995",
|
||||
"preview_quote_out_raw": "989536996",
|
||||
"base_min_amount_raw": "1000358365",
|
||||
"quote_min_amount_raw": "979641626",
|
||||
"deadline_unix": 1776308588,
|
||||
"dry_run_command": "cast call 0xc39B7D0F40838cbFb54649d327f49a6DAC964062 \"sellShares(uint256,address,uint256,uint256,bytes,uint256)(uint256,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1000358365 979641626 0x 1776308588 --from 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url \"$RPC_URL_138\"",
|
||||
"execute_command": "cast send 0xc39B7D0F40838cbFb54649d327f49a6DAC964062 \"sellShares(uint256,address,uint256,uint256,bytes,uint256)\" 999999996 0x4A666F96fC8764181194447A7dFdb7d471b301C8 1000358365 979641626 0x 1776308588 --rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy",
|
||||
"notes": [
|
||||
"Direct owner call does not require LP approval.",
|
||||
"This canary is intentionally tiny and should be run only in a separate operator-approved mutation workflow."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,355 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T01:39:45Z",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"network": "Ethereum Mainnet",
|
||||
"l2_bridge_mainnet": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"coexistence_summary": {
|
||||
"status": "live-read",
|
||||
"coexistence_on_same_mirrored_lanes_possible": false,
|
||||
"root_cause": "CWMultiTokenBridgeL2.configureTokenPair(canonical, mirrored) clears the previous canonical mapping for that mirrored token.",
|
||||
"code_reference": "smom-dbis-138/contracts/bridge/CWMultiTokenBridgeL2.sol:88",
|
||||
"required_fix": "deploy_distinct_v2_mirrored_tokens_and_recreate_impacted_pools",
|
||||
"bridge_layer_fixed": true,
|
||||
"pool_layer_fixed": true,
|
||||
"true_coexistence_live": true
|
||||
},
|
||||
"legacy_mirrored_tokens": {
|
||||
"cWUSDT": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"cWUSDC": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a"
|
||||
},
|
||||
"v1_bridge_pairs": {
|
||||
"cUSDT_V1": {
|
||||
"symbol": "cUSDT_V1",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V1",
|
||||
"canonicalToken": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
},
|
||||
"cUSDC_V1": {
|
||||
"symbol": "cUSDC_V1",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"mainnet_mirrored_token": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V1",
|
||||
"canonicalToken": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"v2_bridge_pairs": {
|
||||
"cUSDC_V2": {
|
||||
"symbol": "cUSDC_V2",
|
||||
"canonical_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"mirrored_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDC_V2",
|
||||
"canonicalToken": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDC_V2 --execute"
|
||||
},
|
||||
"cUSDT_V2": {
|
||||
"symbol": "cUSDT_V2",
|
||||
"canonical_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"mirrored_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"status": "live-read",
|
||||
"corridor_ready": true,
|
||||
"l1_destination_wired": true,
|
||||
"l2_token_pair_configured": true,
|
||||
"l1_fee_quote_ok": true,
|
||||
"current_chain138_balance_raw": "75000000000",
|
||||
"operator_roles": {
|
||||
"defaultAdmin": true,
|
||||
"minter": true,
|
||||
"burner": true,
|
||||
"pauser": true,
|
||||
"bridge": true,
|
||||
"governance": true,
|
||||
"jurisdictionAdmin": true,
|
||||
"regulator": true,
|
||||
"supervisor": true,
|
||||
"emergencyAdmin": true,
|
||||
"supplyAdmin": true,
|
||||
"metadataAdmin": true
|
||||
},
|
||||
"dry_run_probe": {
|
||||
"label": "cUSDT_V2",
|
||||
"canonicalToken": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"l1ReceiverBridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"l1DestinationEnabled": true,
|
||||
"l1FeeSampleWei": "1000009600000000",
|
||||
"mainnetMirroredToken": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"l1DestinationWired": true,
|
||||
"l2TokenPairConfigured": true,
|
||||
"l1FeeQuoteOk": true,
|
||||
"corridorReady": true
|
||||
},
|
||||
"configure_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2",
|
||||
"execute_pair_command": "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --asset cUSDT_V2 --execute"
|
||||
}
|
||||
},
|
||||
"v2_mirrored_tokens": {
|
||||
"cWUSDT_V2": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"cWUSDC_V2": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c"
|
||||
},
|
||||
"anchor_tokens": {
|
||||
"USDC": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"USDT": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
|
||||
},
|
||||
"existing_pools_to_wire": {
|
||||
"direct_exit_usdc_usdt": [
|
||||
{
|
||||
"pair": "cWUSDC/USDC",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"fee_bps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"public_routing_enabled": true,
|
||||
"category": "direct_exit",
|
||||
"shared_lane_impacted": true,
|
||||
"current_mirrored_lane_owner": "V2 cutover active",
|
||||
"coexistence_action": "recreate_on_distinct_v2_mirror",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "803044122",
|
||||
"quote_reserve_raw": "237707153",
|
||||
"base_reserve_human_6dp": "803.044122",
|
||||
"quote_reserve_human_6dp": "237.707153"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDT/USDT",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"fee_bps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"public_routing_enabled": true,
|
||||
"category": "direct_exit",
|
||||
"shared_lane_impacted": true,
|
||||
"current_mirrored_lane_owner": "V2 cutover active",
|
||||
"coexistence_action": "recreate_on_distinct_v2_mirror",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "8845664",
|
||||
"quote_reserve_raw": "2404333",
|
||||
"base_reserve_human_6dp": "8.845664",
|
||||
"quote_reserve_human_6dp": "2.404333"
|
||||
}
|
||||
}
|
||||
],
|
||||
"secondary_usdc_usdt": [
|
||||
{
|
||||
"pair": "cWUSDT/USDC",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDC",
|
||||
"pool_address": "0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2",
|
||||
"fee_bps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"public_routing_enabled": true,
|
||||
"category": "secondary_exit",
|
||||
"shared_lane_impacted": true,
|
||||
"current_mirrored_lane_owner": "V2 cutover active",
|
||||
"coexistence_action": "recreate_on_distinct_v2_mirror",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "9095629",
|
||||
"quote_reserve_raw": "2342047",
|
||||
"base_reserve_human_6dp": "9.095629",
|
||||
"quote_reserve_human_6dp": "2.342047"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDC/USDT",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDT",
|
||||
"pool_address": "0xCC0fd27A40775c9AfcD2BBd3f7c902b0192c247A",
|
||||
"fee_bps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"public_routing_enabled": true,
|
||||
"category": "secondary_exit",
|
||||
"shared_lane_impacted": true,
|
||||
"current_mirrored_lane_owner": "V2 cutover active",
|
||||
"coexistence_action": "recreate_on_distinct_v2_mirror",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "8416870",
|
||||
"quote_reserve_raw": "2792440",
|
||||
"base_reserve_human_6dp": "8.416870",
|
||||
"quote_reserve_human_6dp": "2.792440"
|
||||
}
|
||||
}
|
||||
],
|
||||
"cross_cw_support": [
|
||||
{
|
||||
"pair": "cWUSDT/cWUSDC",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "cWUSDC",
|
||||
"pool_address": "0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB",
|
||||
"fee_bps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"public_routing_enabled": true,
|
||||
"category": "cross_cw",
|
||||
"shared_lane_impacted": true,
|
||||
"current_mirrored_lane_owner": "V2 cutover active",
|
||||
"coexistence_action": "recreate_on_distinct_v2_mirror",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "1099960256630",
|
||||
"quote_reserve_raw": "1100039756747",
|
||||
"base_reserve_human_6dp": "1099960.256630",
|
||||
"quote_reserve_human_6dp": "1100039.756747"
|
||||
}
|
||||
}
|
||||
],
|
||||
"all_impacted_pool_count": 5
|
||||
},
|
||||
"required_new_v2_pool_set_for_true_coexistence": [
|
||||
{
|
||||
"pair": "cWUSDC_V2/USDC",
|
||||
"purpose": "primary_direct_exit",
|
||||
"base_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"quote_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"status": "live-read",
|
||||
"exists": true,
|
||||
"pool_address": "0xf633D2617316096e876E9C693111B8e76CE95302",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"base_reserve_human_6dp": "0.000000",
|
||||
"quote_reserve_human_6dp": "0.000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDT_V2/USDT",
|
||||
"purpose": "primary_direct_exit",
|
||||
"base_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"quote_token": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"status": "live-read",
|
||||
"exists": true,
|
||||
"pool_address": "0x983D9ac22967209821C908e95FeACC37baA6fECA",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"base_reserve_human_6dp": "0.000000",
|
||||
"quote_reserve_human_6dp": "0.000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDT_V2/USDC",
|
||||
"purpose": "secondary_cross_quote",
|
||||
"base_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"quote_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"status": "live-read",
|
||||
"exists": true,
|
||||
"pool_address": "0x55F137b28af87B165423a68Ebb3D42699556E9Af",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"base_reserve_human_6dp": "0.000000",
|
||||
"quote_reserve_human_6dp": "0.000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDC_V2/USDT",
|
||||
"purpose": "secondary_cross_quote",
|
||||
"base_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"quote_token": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"status": "live-read",
|
||||
"exists": true,
|
||||
"pool_address": "0xCdb7392238ED11EcB57C5C001c62302b00062Af8",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"base_reserve_human_6dp": "0.000000",
|
||||
"quote_reserve_human_6dp": "0.000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pair": "cWUSDT_V2/cWUSDC_V2",
|
||||
"purpose": "internal_cross_cw_routing",
|
||||
"base_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"quote_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"status": "live-read",
|
||||
"exists": true,
|
||||
"pool_address": "0x75de278142F153Ac47646a7bb7Ded3317a3bDBE7",
|
||||
"live_surface": {
|
||||
"status": "live-read",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"base_reserve_human_6dp": "0.000000",
|
||||
"quote_reserve_human_6dp": "0.000000"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
65
reports/extraction/mainnet-exit-canary-plan-latest.json
Normal file
65
reports/extraction/mainnet-exit-canary-plan-latest.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:21Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"thresholds": {
|
||||
"raw_sizes": [
|
||||
1000000,
|
||||
10000000
|
||||
],
|
||||
"default_slippage_bps": 100
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"symbol": "cWUSDC",
|
||||
"pair": "cwusdc-usdc",
|
||||
"target_asset": "USDC",
|
||||
"status": "simulated",
|
||||
"dry_run_ok": true,
|
||||
"amount_in_raw": "1000000",
|
||||
"estimated_out_raw": "1000000",
|
||||
"min_out_raw": "990000",
|
||||
"pool_surface": "reserve-heuristic",
|
||||
"quote_source": "live-getVaultReserve",
|
||||
"slippage_estimate_pct": "0.42",
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"base_reserve": "803.044122",
|
||||
"quote_reserve": "237.707153",
|
||||
"base_reserve_usd": "803.044122",
|
||||
"quote_reserve_usd": "237.707153",
|
||||
"usable_side_usd": "237.707153"
|
||||
},
|
||||
"execute_command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdc-usdc --direction=base-to-quote --amount=1000000",
|
||||
"dry_run_error": null
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDT",
|
||||
"pair": "cwusdt-usdt",
|
||||
"target_asset": "USDT",
|
||||
"status": "simulated",
|
||||
"dry_run_ok": true,
|
||||
"amount_in_raw": "1000000",
|
||||
"estimated_out_raw": "1000000",
|
||||
"min_out_raw": "990000",
|
||||
"pool_surface": "reserve-heuristic",
|
||||
"quote_source": "live-getVaultReserve",
|
||||
"slippage_estimate_pct": "41.59",
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"base_reserve": "8.845664",
|
||||
"quote_reserve": "2.404333",
|
||||
"base_reserve_usd": "8.845664",
|
||||
"quote_reserve_usd": "2.404333",
|
||||
"usable_side_usd": "2.404333"
|
||||
},
|
||||
"execute_command": "bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdt --direction=base-to-quote --amount=1000000",
|
||||
"dry_run_error": null
|
||||
}
|
||||
]
|
||||
}
|
||||
137
reports/extraction/mainnet-exit-pool-ranking-latest.json
Normal file
137
reports/extraction/mainnet-exit-pool-ranking-latest.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:43Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"thresholds": {
|
||||
"raw_sizes": [
|
||||
1000000,
|
||||
10000000
|
||||
],
|
||||
"default_slippage_bps": 100
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"route_id": "cwusdc-direct-usdc",
|
||||
"source_symbol": "cWUSDC",
|
||||
"target_symbol": "USDC",
|
||||
"complexity_score": 1,
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"base_reserve": "803.044122",
|
||||
"quote_reserve": "237.707153",
|
||||
"base_reserve_usd": "803.044122",
|
||||
"quote_reserve_usd": "237.707153",
|
||||
"usable_side_usd": "237.707153"
|
||||
},
|
||||
"tests": [
|
||||
{
|
||||
"amount_in_raw": "1000000",
|
||||
"amount_in_usd": "1",
|
||||
"status": "simulated",
|
||||
"usable_side_usd": "237.707153",
|
||||
"slippage_estimate_pct": "0.42",
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"amount_in_raw": "10000000",
|
||||
"amount_in_usd": "10",
|
||||
"status": "simulated",
|
||||
"usable_side_usd": "237.707153",
|
||||
"slippage_estimate_pct": "4.21",
|
||||
"ok": true
|
||||
}
|
||||
],
|
||||
"rank": 1
|
||||
},
|
||||
{
|
||||
"route_id": "cwusdt-via-cwusdc-to-usdc",
|
||||
"source_symbol": "cWUSDT",
|
||||
"target_symbol": "USDC",
|
||||
"complexity_score": 2,
|
||||
"aggregate_quote_score": "1.9537245730253645333087641666382668762180665215405",
|
||||
"supporting_surface": {
|
||||
"leg_1": {
|
||||
"pool_address": "0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "cWUSDC",
|
||||
"base_reserve": "1099960.25663",
|
||||
"quote_reserve": "1100039.756747",
|
||||
"base_reserve_usd": "1099960.25663",
|
||||
"quote_reserve_usd": "1100039.756747",
|
||||
"usable_side_usd": "1099960.25663"
|
||||
},
|
||||
"leg_2": {
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"base_reserve": "803.044122",
|
||||
"quote_reserve": "237.707153",
|
||||
"base_reserve_usd": "803.044122",
|
||||
"quote_reserve_usd": "237.707153",
|
||||
"usable_side_usd": "237.707153"
|
||||
}
|
||||
},
|
||||
"tests": [
|
||||
{
|
||||
"amount_in_raw": "1000000",
|
||||
"amount_in_usd": "1",
|
||||
"status": "simulated",
|
||||
"usable_side_usd": "237.707153",
|
||||
"slippage_estimate_pct": "0.42",
|
||||
"ok": true
|
||||
},
|
||||
{
|
||||
"amount_in_raw": "10000000",
|
||||
"amount_in_usd": "10",
|
||||
"status": "simulated",
|
||||
"usable_side_usd": "237.707153",
|
||||
"slippage_estimate_pct": "4.21",
|
||||
"ok": true
|
||||
}
|
||||
],
|
||||
"rank": 2
|
||||
},
|
||||
{
|
||||
"route_id": "cwusdt-direct-usdt",
|
||||
"source_symbol": "cWUSDT",
|
||||
"target_symbol": "USDT",
|
||||
"complexity_score": 1,
|
||||
"aggregate_quote_score": "0.58408423458813733372207593540495430541443302570817",
|
||||
"supporting_surface": {
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"status": "live-read",
|
||||
"base_symbol": "cWUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"base_reserve": "8.845664",
|
||||
"quote_reserve": "2.404333",
|
||||
"base_reserve_usd": "8.845664",
|
||||
"quote_reserve_usd": "2.404333",
|
||||
"usable_side_usd": "2.404333"
|
||||
},
|
||||
"tests": [
|
||||
{
|
||||
"amount_in_raw": "1000000",
|
||||
"amount_in_usd": "1",
|
||||
"status": "manual-required",
|
||||
"usable_side_usd": "2.404333",
|
||||
"slippage_estimate_pct": "41.59",
|
||||
"ok": false
|
||||
},
|
||||
{
|
||||
"amount_in_raw": "10000000",
|
||||
"amount_in_usd": "10",
|
||||
"status": "manual-required",
|
||||
"usable_side_usd": "2.404333",
|
||||
"slippage_estimate_pct": "415.92",
|
||||
"ok": false
|
||||
}
|
||||
],
|
||||
"rank": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:20Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"status": "live-read",
|
||||
"baseline_balance_raw": "8888909964479",
|
||||
"expected_delta_raw": "1000000",
|
||||
"poll_interval_seconds": 15,
|
||||
"timeout_seconds": 900,
|
||||
"verification_rule": "pass when current_balance_raw - baseline_balance_raw >= expected_delta_raw",
|
||||
"notes": [
|
||||
"Capture baseline before broadcasting the bridge canary.",
|
||||
"Poll on Mainnet until the mirrored token balance delta meets or exceeds expected_delta_raw.",
|
||||
"If no delta arrives before timeout, treat the corridor as operator-investigation required."
|
||||
],
|
||||
"helper_command": "python3 scripts/lib/liquidity_improvement_pack.py landing-check --symbol cUSDT --expected-delta-raw 1000000 --baseline-balance-raw 8888909964479",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"status": "live-read",
|
||||
"baseline_balance_raw": "8888610523693",
|
||||
"expected_delta_raw": "1000000",
|
||||
"poll_interval_seconds": 15,
|
||||
"timeout_seconds": 900,
|
||||
"verification_rule": "pass when current_balance_raw - baseline_balance_raw >= expected_delta_raw",
|
||||
"notes": [
|
||||
"Capture baseline before broadcasting the bridge canary.",
|
||||
"Poll on Mainnet until the mirrored token balance delta meets or exceeds expected_delta_raw.",
|
||||
"If no delta arrives before timeout, treat the corridor as operator-investigation required."
|
||||
],
|
||||
"helper_command": "python3 scripts/lib/liquidity_improvement_pack.py landing-check --symbol cUSDC --expected-delta-raw 1000000 --baseline-balance-raw 8888610523693",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5"
|
||||
}
|
||||
]
|
||||
}
|
||||
323
reports/extraction/mainnet-quote-side-funding-plan-latest.json
Normal file
323
reports/extraction/mainnet-quote-side-funding-plan-latest.json
Normal file
@@ -0,0 +1,323 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:16Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"thresholds": {
|
||||
"generated_at": "2026-04-16T02:03:12Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"direct_exit_support_fraction": "0.05",
|
||||
"target_exit_usd": [
|
||||
25000,
|
||||
100000,
|
||||
250000,
|
||||
1000000
|
||||
],
|
||||
"default_target_exit_usd": 100000,
|
||||
"default_sweep_raw": 1000000,
|
||||
"sweep_slippage_bps": 100,
|
||||
"notes": [
|
||||
"Target exit USD is translated into required usable-side reserves under the 5% direct-exit heuristic.",
|
||||
"All deployment wrappers are dry-run by default and require an explicit --execute flag for mutations."
|
||||
]
|
||||
},
|
||||
"pools": [
|
||||
{
|
||||
"pair": "cwusdc-usdc",
|
||||
"pool_address": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"source_symbol": "cWUSDC",
|
||||
"source_token": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"quote_symbol": "USDC",
|
||||
"quote_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"v2_symbol": "cUSDC_V2",
|
||||
"v2_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"base_reserve_raw": "803044122",
|
||||
"quote_reserve_raw": "237707153",
|
||||
"usable_side_raw": "237707153",
|
||||
"current_direct_exit_capacity_usd": "11.88535765",
|
||||
"wallet_source_balance_raw": "8888610523693",
|
||||
"wallet_quote_balance_raw": "0",
|
||||
"status": "live-read",
|
||||
"dry_run_surface": {
|
||||
"returncode": 0,
|
||||
"pool_surface": "reserve_only",
|
||||
"quote_source": "onchain_reserve"
|
||||
},
|
||||
"target_table": [
|
||||
{
|
||||
"target_exit_usd": 25000,
|
||||
"required_usable_side_raw": "500000000000",
|
||||
"quote_only_add_raw": "565336969",
|
||||
"full_target_base_add_raw": "499196955878",
|
||||
"full_target_quote_add_raw": "499762292847",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "40.15220610",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=25000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=full-target --target-usd=25000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 100000,
|
||||
"required_usable_side_raw": "2000000000000",
|
||||
"quote_only_add_raw": "565336969",
|
||||
"full_target_base_add_raw": "1999196955878",
|
||||
"full_target_quote_add_raw": "1999762292847",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "40.15220610",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=100000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=full-target --target-usd=100000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 250000,
|
||||
"required_usable_side_raw": "5000000000000",
|
||||
"quote_only_add_raw": "565336969",
|
||||
"full_target_base_add_raw": "4999196955878",
|
||||
"full_target_quote_add_raw": "4999762292847",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "40.15220610",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=250000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=full-target --target-usd=250000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 1000000,
|
||||
"required_usable_side_raw": "20000000000000",
|
||||
"quote_only_add_raw": "565336969",
|
||||
"full_target_base_add_raw": "19999196955878",
|
||||
"full_target_quote_add_raw": "19999762292847",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "40.15220610",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=1000000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=full-target --target-usd=1000000"
|
||||
}
|
||||
],
|
||||
"recommended_next_quote_only_target_usd": 25000
|
||||
},
|
||||
{
|
||||
"pair": "cwusdt-usdt",
|
||||
"pool_address": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"source_symbol": "cWUSDT",
|
||||
"source_token": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"quote_symbol": "USDT",
|
||||
"quote_token": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"v2_symbol": "cUSDT_V2",
|
||||
"v2_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"base_reserve_raw": "8845664",
|
||||
"quote_reserve_raw": "2404333",
|
||||
"usable_side_raw": "2404333",
|
||||
"current_direct_exit_capacity_usd": "0.12021665",
|
||||
"wallet_source_balance_raw": "8888909964479",
|
||||
"wallet_quote_balance_raw": "340504",
|
||||
"status": "live-read",
|
||||
"dry_run_surface": {
|
||||
"returncode": 0,
|
||||
"pool_surface": "reserve_only",
|
||||
"quote_source": "onchain_reserve"
|
||||
},
|
||||
"target_table": [
|
||||
{
|
||||
"target_exit_usd": 25000,
|
||||
"required_usable_side_raw": "500000000000",
|
||||
"quote_only_add_raw": "6441331",
|
||||
"full_target_base_add_raw": "499991154336",
|
||||
"full_target_quote_add_raw": "499997595667",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.44228320",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=quote-only --target-usd=25000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=full-target --target-usd=25000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 100000,
|
||||
"required_usable_side_raw": "2000000000000",
|
||||
"quote_only_add_raw": "6441331",
|
||||
"full_target_base_add_raw": "1999991154336",
|
||||
"full_target_quote_add_raw": "1999997595667",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.44228320",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=quote-only --target-usd=100000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=full-target --target-usd=100000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 250000,
|
||||
"required_usable_side_raw": "5000000000000",
|
||||
"quote_only_add_raw": "6441331",
|
||||
"full_target_base_add_raw": "4999991154336",
|
||||
"full_target_quote_add_raw": "4999997595667",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.44228320",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=quote-only --target-usd=250000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=full-target --target-usd=250000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 1000000,
|
||||
"required_usable_side_raw": "20000000000000",
|
||||
"quote_only_add_raw": "6441331",
|
||||
"full_target_base_add_raw": "19999991154336",
|
||||
"full_target_quote_add_raw": "19999997595667",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.44228320",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=quote-only --target-usd=1000000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdt-usdt --mode=full-target --target-usd=1000000"
|
||||
}
|
||||
],
|
||||
"recommended_next_quote_only_target_usd": 25000
|
||||
},
|
||||
{
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"pool_address": "0xf633D2617316096e876E9C693111B8e76CE95302",
|
||||
"source_symbol": "cWUSDC_V2",
|
||||
"source_token": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"quote_symbol": "USDC",
|
||||
"quote_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"v2_symbol": "cUSDC_V2",
|
||||
"v2_token": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"usable_side_raw": "0",
|
||||
"current_direct_exit_capacity_usd": "0.00",
|
||||
"wallet_source_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": "0",
|
||||
"status": "live-read",
|
||||
"dry_run_surface": {
|
||||
"returncode": 0,
|
||||
"pool_surface": "reserve_only",
|
||||
"quote_source": "onchain_reserve"
|
||||
},
|
||||
"target_table": [
|
||||
{
|
||||
"target_exit_usd": 25000,
|
||||
"required_usable_side_raw": "500000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "500000000000",
|
||||
"full_target_quote_add_raw": "500000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=quote-only --target-usd=25000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=full-target --target-usd=25000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 100000,
|
||||
"required_usable_side_raw": "2000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "2000000000000",
|
||||
"full_target_quote_add_raw": "2000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=quote-only --target-usd=100000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=full-target --target-usd=100000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 250000,
|
||||
"required_usable_side_raw": "5000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "5000000000000",
|
||||
"full_target_quote_add_raw": "5000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=quote-only --target-usd=250000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=full-target --target-usd=250000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 1000000,
|
||||
"required_usable_side_raw": "20000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "20000000000000",
|
||||
"full_target_quote_add_raw": "20000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=quote-only --target-usd=1000000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdcv2-usdc --mode=full-target --target-usd=1000000"
|
||||
}
|
||||
],
|
||||
"recommended_next_quote_only_target_usd": null
|
||||
},
|
||||
{
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"pool_address": "0x983D9ac22967209821C908e95FeACC37baA6fECA",
|
||||
"source_symbol": "cWUSDT_V2",
|
||||
"source_token": "0x7E8FF0DcC974F290a29968e9350800a6df674447",
|
||||
"quote_symbol": "USDT",
|
||||
"quote_token": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"v2_symbol": "cUSDT_V2",
|
||||
"v2_token": "0x9FBfab33882Efe0038DAa608185718b772EE5660",
|
||||
"base_reserve_raw": "0",
|
||||
"quote_reserve_raw": "0",
|
||||
"usable_side_raw": "0",
|
||||
"current_direct_exit_capacity_usd": "0.00",
|
||||
"wallet_source_balance_raw": "0",
|
||||
"wallet_quote_balance_raw": "340504",
|
||||
"status": "live-read",
|
||||
"dry_run_surface": {
|
||||
"returncode": 0,
|
||||
"pool_surface": "reserve_only",
|
||||
"quote_source": "onchain_reserve"
|
||||
},
|
||||
"target_table": [
|
||||
{
|
||||
"target_exit_usd": 25000,
|
||||
"required_usable_side_raw": "500000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "500000000000",
|
||||
"full_target_quote_add_raw": "500000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=quote-only --target-usd=25000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=full-target --target-usd=25000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 100000,
|
||||
"required_usable_side_raw": "2000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "2000000000000",
|
||||
"full_target_quote_add_raw": "2000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=quote-only --target-usd=100000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=full-target --target-usd=100000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 250000,
|
||||
"required_usable_side_raw": "5000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "5000000000000",
|
||||
"full_target_quote_add_raw": "5000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=quote-only --target-usd=250000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=full-target --target-usd=250000"
|
||||
},
|
||||
{
|
||||
"target_exit_usd": 1000000,
|
||||
"required_usable_side_raw": "20000000000000",
|
||||
"quote_only_add_raw": "0",
|
||||
"full_target_base_add_raw": "20000000000000",
|
||||
"full_target_quote_add_raw": "20000000000000",
|
||||
"wallet_can_fund_quote_only_now": false,
|
||||
"wallet_can_fund_full_now": false,
|
||||
"projected_capacity_after_quote_only_usd": "0.00",
|
||||
"quote_only_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=quote-only --target-usd=1000000",
|
||||
"full_target_command": "bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdtv2-usdt --mode=full-target --target-usd=1000000"
|
||||
}
|
||||
],
|
||||
"recommended_next_quote_only_target_usd": null
|
||||
}
|
||||
]
|
||||
}
|
||||
62
reports/extraction/post-withdrawal-routing-plan-latest.json
Normal file
62
reports/extraction/post-withdrawal-routing-plan-latest.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:09Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
"symbol": "USDC",
|
||||
"estimated_available_human": "989536.997007",
|
||||
"status": "simulated",
|
||||
"preferred_route": "local-wrap-then-bridge",
|
||||
"route_steps": [
|
||||
"Withdraw USDC from Chain 138 LP",
|
||||
"Swap USDC -> cUSDC on Chain 138 cUSDC/USDC pool",
|
||||
"Bridge cUSDC to Mainnet cWUSDC",
|
||||
"Exit cWUSDC into USDC on Mainnet"
|
||||
],
|
||||
"command_template": "bash scripts/verify/pmm-swap-quote-chain138.sh --pool 0xc39B7D0F40838cbFb54649d327f49a6DAC964062 --token-in 0x71D6687F38b93CCad569Fa6352c876eea967201b --amount-in 1000000"
|
||||
},
|
||||
{
|
||||
"symbol": "USDT",
|
||||
"estimated_available_human": "1000127.496996",
|
||||
"status": "simulated",
|
||||
"preferred_route": "local-wrap-then-bridge",
|
||||
"route_steps": [
|
||||
"Withdraw USDT from Chain 138 LP",
|
||||
"Swap USDT -> cUSDT on Chain 138 cUSDT/USDT pool",
|
||||
"Bridge cUSDT to Mainnet cWUSDT",
|
||||
"Exit cWUSDT into USDT on Mainnet"
|
||||
],
|
||||
"command_template": "bash scripts/verify/pmm-swap-quote-chain138.sh --pool 0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66 --token-in 0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1 --amount-in 1000000"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"estimated_available_human": "2026571.793966",
|
||||
"status": "simulated",
|
||||
"preferred_route": "bridge-direct-to-mainnet-cWUSDC-then-exit",
|
||||
"route_steps": [
|
||||
"Withdraw cUSDC from Chain 138 LP",
|
||||
"Bridge cUSDC to Mainnet cWUSDC",
|
||||
"Exit cWUSDC into USDC on Mainnet DODO PMM"
|
||||
],
|
||||
"command_template": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDC --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8"
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"estimated_available_human": "1983763.694010",
|
||||
"status": "simulated",
|
||||
"preferred_route": "bridge-direct-to-mainnet-cWUSDT-then-exit",
|
||||
"route_steps": [
|
||||
"Withdraw cUSDT from Chain 138 LP",
|
||||
"Bridge cUSDT to Mainnet cWUSDT",
|
||||
"Exit cWUSDT into USDT on Mainnet DODO PMM"
|
||||
],
|
||||
"command_template": "bash scripts/bridge/bridge-cstar-to-cw.sh --asset cUSDT --chain MAINNET --amount 1 --recipient 0x4A666F96fC8764181194447A7dFdb7d471b301C8"
|
||||
}
|
||||
]
|
||||
}
|
||||
720
reports/extraction/realizable-capital-ladder-latest.json
Normal file
720
reports/extraction/realizable-capital-ladder-latest.json
Normal file
@@ -0,0 +1,720 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:18Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"valuation_config": {
|
||||
"generated_at": "2026-04-15",
|
||||
"status": "inferred",
|
||||
"source": "ECB reference rates for 2026-04-15 and Chain 138 pool-implied XAU conversion captured during repo audit.",
|
||||
"rates": {
|
||||
"USD": "1",
|
||||
"EUR": "1.1780",
|
||||
"GBP": "1.3550353712543854",
|
||||
"AUD": "0.7136366390016357",
|
||||
"CAD": "0.7255928549430243",
|
||||
"CHF": "1.2776572668112798",
|
||||
"JPY": "0.006285683794888213",
|
||||
"XAU": "5163.3401260328355",
|
||||
"ETH": "2490",
|
||||
"BNB": "610",
|
||||
"POL": "0.78",
|
||||
"AVAX": "48",
|
||||
"CELO": "0.72",
|
||||
"CRO": "0.14",
|
||||
"XDAI": "1",
|
||||
"CHAIN138_NATIVE": null
|
||||
}
|
||||
},
|
||||
"assets": [
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWAUDC",
|
||||
"balance": "0.005542",
|
||||
"estimated_usd": "0.0039549742533470650494",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWCADC",
|
||||
"balance": "0.005375",
|
||||
"estimated_usd": "0.0039000615953187556125",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWCHFC",
|
||||
"balance": "0.134911",
|
||||
"estimated_usd": "0.1723700195227765690978",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWEURC",
|
||||
"balance": "0.049868",
|
||||
"estimated_usd": "0.0587445040",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWGBPC",
|
||||
"balance": "0.004773",
|
||||
"estimated_usd": "0.0064675838269971815142",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWJPYC",
|
||||
"balance": "0.017398",
|
||||
"estimated_usd": "0.000109358326663465129774",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWUSDC",
|
||||
"balance": "8888610.523693",
|
||||
"estimated_usd": "8888610.523693",
|
||||
"realizability_class": "B",
|
||||
"confidence": "high",
|
||||
"dependency_count": 1,
|
||||
"realization_speed": "same-hour",
|
||||
"bottleneck": "shallow direct cW/canonical PMM pool",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Ethereum Mainnet",
|
||||
"chain_id": "1",
|
||||
"symbol": "cWUSDT",
|
||||
"balance": "8888909.964479",
|
||||
"estimated_usd": "8888909.964479",
|
||||
"realizability_class": "B",
|
||||
"confidence": "high",
|
||||
"dependency_count": 1,
|
||||
"realization_speed": "same-hour",
|
||||
"bottleneck": "shallow direct cW/canonical PMM pool",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWAUDC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "356818.3195008178500000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWCADC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "362796.4274715121500000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWCHFC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "638828.6334056399000000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWEURC",
|
||||
"balance": "20674",
|
||||
"estimated_usd": "24353.9720",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWEURT",
|
||||
"balance": "20674",
|
||||
"estimated_usd": "24353.9720",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWGBPC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "677517.6856271927000000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWGBPT",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "677517.6856271927000000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWJPYC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "3142.841897444106500000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWXAUC",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "2581670063.0164177500000",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"chain_id": "56",
|
||||
"symbol": "cWXAUT",
|
||||
"balance": "5E+5",
|
||||
"estimated_usd": "2581670063.0164177500000",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Polygon",
|
||||
"chain_id": "137",
|
||||
"symbol": "cWUSDC",
|
||||
"balance": "996.297636",
|
||||
"estimated_usd": "996.297636",
|
||||
"realizability_class": "D",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Polygon",
|
||||
"chain_id": "137",
|
||||
"symbol": "cWUSDT",
|
||||
"balance": "998.983664",
|
||||
"estimated_usd": "998.983664",
|
||||
"realizability_class": "D",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cAUDC",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "1413713.4682256013200643",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cAUDC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "17127.2793360392568000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cCADC",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "1437398.7200492761952757",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cCADC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "17414.2285186325832000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cCHFC",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "2531037.7678958784725202",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cCHFC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "30663.7744034707152000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cEURC",
|
||||
"balance": "1980997",
|
||||
"estimated_usd": "2333614.4660",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cEURC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "28272.0000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cEURT",
|
||||
"balance": "80997",
|
||||
"estimated_usd": "95414.4660",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cEURT",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "28272.0000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cGBPC",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "2684323.7154195662230146",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cGBPC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "32520.8489101052496000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cGBPT",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "2684323.7154195662230146",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cGBPT",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "32520.8489101052496000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cJPYC",
|
||||
"balance": "1980999",
|
||||
"estimated_usd": "12451.933311989755064787",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cJPYC",
|
||||
"balance": "2.4E+4",
|
||||
"estimated_usd": "150.856411077317112000",
|
||||
"realizability_class": "D",
|
||||
"confidence": "low",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day or multi-day",
|
||||
"bottleneck": "no verified deep canonical exit corridor",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cUSDC",
|
||||
"balance": "687514099.298585",
|
||||
"estimated_usd": "687514099.298585",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "bridge + downstream cW exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cUSDC",
|
||||
"balance": "7.5E+4",
|
||||
"estimated_usd": "75000",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "bridge + downstream cW exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cUSDT",
|
||||
"balance": "687798049.09",
|
||||
"estimated_usd": "687798049.09",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "bridge + downstream cW exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cUSDT",
|
||||
"balance": "7.5E+4",
|
||||
"estimated_usd": "75000",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "bridge + downstream cW exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cXAUC",
|
||||
"balance": "2837.591191",
|
||||
"estimated_usd": "14651448.4577676037915520805",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cXAUC",
|
||||
"balance": "2.495E+4",
|
||||
"estimated_usd": "128825336.1445192457250",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cXAUT",
|
||||
"balance": "4197.788651",
|
||||
"estimated_usd": "21674610.5823135465152499105",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "cXAUT",
|
||||
"balance": "2.495E+4",
|
||||
"estimated_usd": "128825336.1445192457250",
|
||||
"realizability_class": "E",
|
||||
"confidence": "low",
|
||||
"dependency_count": 3,
|
||||
"realization_speed": "multi-day or indeterminate",
|
||||
"bottleneck": "nominal value exceeds verified public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Avalanche C-Chain",
|
||||
"chain_id": "43114",
|
||||
"symbol": "cWUSDT",
|
||||
"balance": "0.8",
|
||||
"estimated_usd": "0.8",
|
||||
"realizability_class": "D",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "public exit depth",
|
||||
"status": "inferred",
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "LP:cUSDT/cUSDC",
|
||||
"balance": "0.99999999899899999799599799598798798796795195191184",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "LP removal plus downstream bridge/exit depth",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"LP claim is strong internally but still depends on external realization routes."
|
||||
]
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "LP:cUSDT/USDT",
|
||||
"balance": "0.99999999899899999799599799598798798796795195191184",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "LP removal plus downstream bridge/exit depth",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"LP claim is strong internally but still depends on external realization routes."
|
||||
]
|
||||
},
|
||||
{
|
||||
"chain": "Chain 138",
|
||||
"chain_id": "138",
|
||||
"symbol": "LP:cUSDC/USDC",
|
||||
"balance": "0.99999999899899999799599799598798798796795195191184",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"confidence": "medium",
|
||||
"dependency_count": 2,
|
||||
"realization_speed": "same-day",
|
||||
"bottleneck": "LP removal plus downstream bridge/exit depth",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"LP claim is strong internally but still depends on external realization routes."
|
||||
]
|
||||
}
|
||||
],
|
||||
"class_subtotals_usd": {
|
||||
"A": "0",
|
||||
"B": "17777520.488172",
|
||||
"C": "1381462148.370564",
|
||||
"D": "16146545.953187609492069223403674",
|
||||
"E": "5457316857.3619551417568019910"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:31Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"current_capital_state": {
|
||||
"generated_at": "2026-04-16T01:02:49Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"nominal_total_usd": "6872703072.173878751248871214403674",
|
||||
"immediate_liquid_position_usd": "0",
|
||||
"internal_same_day_via_lp_withdrawal_usd": "5999999.981979",
|
||||
"near_immediate_mainnet_cw_exit_usd": "17777520.488172",
|
||||
"near_term_actionable_usd": "23777520.470151",
|
||||
"best_mainnet_exit_routes": {
|
||||
"cWUSDC": {
|
||||
"route_id": "cwusdc-direct-usdc",
|
||||
"aggregate_quote_score": "0",
|
||||
"rank": 1
|
||||
},
|
||||
"cWUSDT": {
|
||||
"route_id": "cwusdt-direct-usdt",
|
||||
"aggregate_quote_score": "0",
|
||||
"rank": 2
|
||||
}
|
||||
},
|
||||
"gates_closed": {
|
||||
"lp_signature_confirmed": true,
|
||||
"lp_direct_call_no_approval_confirmed": true,
|
||||
"bridge_wiring_read_only_confirmed": true,
|
||||
"mainnet_exit_dry_run_routes_available": true,
|
||||
"live_lp_withdrawal_canary_executed": false,
|
||||
"live_bridge_canary_executed": false,
|
||||
"live_mainnet_exit_canary_executed": false
|
||||
}
|
||||
},
|
||||
"quote_side_plan_reference": "reports/extraction/mainnet-quote-side-funding-plan-latest.json",
|
||||
"routes": [
|
||||
{
|
||||
"pair": "cwusdc-usdc",
|
||||
"symbol": "cWUSDC",
|
||||
"target_symbol": "USDC",
|
||||
"status": "simulated",
|
||||
"current_direct_exit_capacity_usd": "11.88535765",
|
||||
"post_funding_target_exit_usd": "100000",
|
||||
"current_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdc-usdc --amount-raw=1000000",
|
||||
"post_funding_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdc-usdc --amount-usd=100000"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdt-usdt",
|
||||
"symbol": "cWUSDT",
|
||||
"target_symbol": "USDT",
|
||||
"status": "simulated",
|
||||
"current_direct_exit_capacity_usd": "0.12021665",
|
||||
"post_funding_target_exit_usd": "100000",
|
||||
"current_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdt-usdt --amount-raw=1000000",
|
||||
"post_funding_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdt-usdt --amount-usd=100000"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"symbol": "cWUSDC_V2",
|
||||
"target_symbol": "USDC",
|
||||
"status": "simulated",
|
||||
"current_direct_exit_capacity_usd": "0.00",
|
||||
"post_funding_target_exit_usd": "100000",
|
||||
"current_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdcv2-usdc --amount-raw=0",
|
||||
"post_funding_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdcv2-usdc --amount-usd=100000"
|
||||
},
|
||||
{
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"symbol": "cWUSDT_V2",
|
||||
"target_symbol": "USDT",
|
||||
"status": "simulated",
|
||||
"current_direct_exit_capacity_usd": "0.00",
|
||||
"post_funding_target_exit_usd": "100000",
|
||||
"current_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdtv2-usdt --amount-raw=0",
|
||||
"post_funding_sweep_command": "bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdtv2-usdt --amount-usd=100000"
|
||||
}
|
||||
]
|
||||
}
|
||||
21
reports/extraction/recover-relay-gas-latest.json
Normal file
21
reports/extraction/recover-relay-gas-latest.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"execute": true,
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"bridge": "0xcacfd227A040002e49e2e01626363071324f820a",
|
||||
"selector": "5009297550715157269",
|
||||
"current_receiver": "0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939",
|
||||
"current_enabled": "true",
|
||||
"bridge_admin": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"fee_wei": "1005012800000000",
|
||||
"link_balance_raw": "984714490864402400000000",
|
||||
"link_allowance_raw": "0",
|
||||
"weth_balance_raw": "22745765257824297442485",
|
||||
"weth_allowance_raw": "0",
|
||||
"rescue_weth_wei": "5000000000000000",
|
||||
"relay_health": "degraded",
|
||||
"need_update_destination": false,
|
||||
"need_fee_approval": true,
|
||||
"need_weth_approval": true,
|
||||
"target_receiver": "0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939"
|
||||
}
|
||||
29
reports/extraction/retained-capital-report-latest.json
Normal file
29
reports/extraction/retained-capital-report-latest.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"status": "live-read",
|
||||
"wallet": {
|
||||
"usdc_raw": 0,
|
||||
"usdt_raw": 0,
|
||||
"canonical_usd": 0.0
|
||||
},
|
||||
"targets": {
|
||||
"min_wallet_usdc_raw": 25000000,
|
||||
"min_wallet_usdt_raw": 5000000,
|
||||
"usdc_floor_met": false,
|
||||
"usdt_floor_met": false
|
||||
},
|
||||
"redeployed": {
|
||||
"v2_usdc_quote_raw": 17453828,
|
||||
"v2_usdt_quote_raw": 562479,
|
||||
"v2_direct_exit_usd": 18.016307
|
||||
},
|
||||
"legacy_bootstrap": {
|
||||
"legacy_usdc_quote_raw": 221764619,
|
||||
"legacy_usdt_quote_raw": 2182358,
|
||||
"legacy_bootstrap_usd": 223.946977
|
||||
},
|
||||
"capital_stack": {
|
||||
"retained_wallet_cash_usd": 0.0,
|
||||
"redeployed_v2_direct_exit_usd": 18.016307,
|
||||
"total_direct_exit_usd": 241.963284
|
||||
}
|
||||
}
|
||||
313
reports/extraction/stable-lp-verification-latest.json
Normal file
313
reports/extraction/stable-lp-verification-latest.json
Normal file
@@ -0,0 +1,313 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:14Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"rpc": "http://192.168.11.211:8545",
|
||||
"integration_contract": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"pools": [
|
||||
{
|
||||
"pair": "cUSDT/cUSDC",
|
||||
"pool_address": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"wallet_lp_balance_raw": "999999996997",
|
||||
"pool_total_supply_raw": "999999997998",
|
||||
"wallet_share_fraction": "0.99999999899899999799599799598798798796795195191184",
|
||||
"base_symbol": "cUSDT",
|
||||
"quote_symbol": "cUSDC",
|
||||
"pool_base_reserve_raw": "983891197998",
|
||||
"pool_quote_reserve_raw": "1016108797998",
|
||||
"wallet_claim_base_raw": "983891197013",
|
||||
"wallet_claim_quote_raw": "1016108796980",
|
||||
"wallet_claim_base_human": "983891.197013",
|
||||
"wallet_claim_quote_human": "1016108.79698",
|
||||
"exact_remove_liquidity_call": {
|
||||
"signature": "sellShares(uint256,address,uint256,uint256,bytes,uint256)",
|
||||
"selector": "0xb56ceaa6",
|
||||
"mode": "direct pool call",
|
||||
"preview_status": "live-read",
|
||||
"preview_test_share_amount_raw": "999999996",
|
||||
"preview_expected_base_out": "983.891196",
|
||||
"preview_expected_quote_out": "1016.108795",
|
||||
"preview_deadline_unix": 1776308593
|
||||
},
|
||||
"approval_requirements": {
|
||||
"direct_call": {
|
||||
"status": "live-read",
|
||||
"allowance_to_integration_raw": "0",
|
||||
"required": false,
|
||||
"notes": [
|
||||
"Direct pool withdrawal uses sellShares(...) against the pool from the LP holder wallet.",
|
||||
"The DODO DVM implementation burns _SHARES_[msg.sender] directly, so no LP allowance is needed for a direct owner call.",
|
||||
"A delegated helper or proxy that relies on transferFrom() would require LP allowance or permit."
|
||||
]
|
||||
},
|
||||
"delegated_call": {
|
||||
"status": "inferred",
|
||||
"required": true,
|
||||
"notes": [
|
||||
"If a separate contract or helper is used to move LP shares first, it must have allowance or a permit on the LP token.",
|
||||
"The canonical DODOPMMIntegration contract does not expose a remove-liquidity helper for these pools."
|
||||
]
|
||||
}
|
||||
},
|
||||
"withdrawal_readiness": {
|
||||
"ownership_status": "live-read",
|
||||
"mechanics_status": "live-read",
|
||||
"direct_usability_status": "simulated",
|
||||
"notes": [
|
||||
"ERC-20 LP ownership is directly verified by balanceOf + totalSupply.",
|
||||
"Exact remove-liquidity surface is the pool-level sellShares(uint256,address,uint256,uint256,bytes,uint256) method.",
|
||||
"The preview call was executed read-only against the live pool from the canonical wallet context; no transaction was broadcast.",
|
||||
"Withdrawn stable outputs are directly usable in Chain 138 internal stable surfaces and may feed approved external corridors after bridge handling."
|
||||
]
|
||||
},
|
||||
"scenarios": [
|
||||
{
|
||||
"mode": "test-withdrawal",
|
||||
"percentage_of_wallet_lp": "1.00",
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out": "9838.911970",
|
||||
"expected_quote_out": "10161.087970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "planned-partial",
|
||||
"percentage_of_wallet_lp": "25.00",
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out": "245972.799253",
|
||||
"expected_quote_out": "254027.199245",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "emergency-full",
|
||||
"percentage_of_wallet_lp": "100.00",
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out": "983891.197013",
|
||||
"expected_quote_out": "1016108.796981",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDT/USDT",
|
||||
"pool_address": "0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66",
|
||||
"wallet_lp_balance_raw": "999999996997",
|
||||
"pool_total_supply_raw": "999999997998",
|
||||
"wallet_share_fraction": "0.99999999899899999799599799598798798796795195191184",
|
||||
"base_symbol": "cUSDT",
|
||||
"quote_symbol": "USDT",
|
||||
"pool_base_reserve_raw": "999872497998",
|
||||
"pool_quote_reserve_raw": "1000127497998",
|
||||
"wallet_claim_base_raw": "999872496997",
|
||||
"wallet_claim_quote_raw": "1000127496996",
|
||||
"wallet_claim_base_human": "999872.496997",
|
||||
"wallet_claim_quote_human": "1000127.496996",
|
||||
"exact_remove_liquidity_call": {
|
||||
"signature": "sellShares(uint256,address,uint256,uint256,bytes,uint256)",
|
||||
"selector": "0xb56ceaa6",
|
||||
"mode": "direct pool call",
|
||||
"preview_status": "live-read",
|
||||
"preview_test_share_amount_raw": "999999996",
|
||||
"preview_expected_base_out": "999.872496",
|
||||
"preview_expected_quote_out": "1000.127495",
|
||||
"preview_deadline_unix": 1776308593
|
||||
},
|
||||
"approval_requirements": {
|
||||
"direct_call": {
|
||||
"status": "live-read",
|
||||
"allowance_to_integration_raw": "0",
|
||||
"required": false,
|
||||
"notes": [
|
||||
"Direct pool withdrawal uses sellShares(...) against the pool from the LP holder wallet.",
|
||||
"The DODO DVM implementation burns _SHARES_[msg.sender] directly, so no LP allowance is needed for a direct owner call.",
|
||||
"A delegated helper or proxy that relies on transferFrom() would require LP allowance or permit."
|
||||
]
|
||||
},
|
||||
"delegated_call": {
|
||||
"status": "inferred",
|
||||
"required": true,
|
||||
"notes": [
|
||||
"If a separate contract or helper is used to move LP shares first, it must have allowance or a permit on the LP token.",
|
||||
"The canonical DODOPMMIntegration contract does not expose a remove-liquidity helper for these pools."
|
||||
]
|
||||
}
|
||||
},
|
||||
"withdrawal_readiness": {
|
||||
"ownership_status": "live-read",
|
||||
"mechanics_status": "live-read",
|
||||
"direct_usability_status": "simulated",
|
||||
"notes": [
|
||||
"ERC-20 LP ownership is directly verified by balanceOf + totalSupply.",
|
||||
"Exact remove-liquidity surface is the pool-level sellShares(uint256,address,uint256,uint256,bytes,uint256) method.",
|
||||
"The preview call was executed read-only against the live pool from the canonical wallet context; no transaction was broadcast.",
|
||||
"Withdrawn stable outputs are directly usable in Chain 138 internal stable surfaces and may feed approved external corridors after bridge handling."
|
||||
]
|
||||
},
|
||||
"scenarios": [
|
||||
{
|
||||
"mode": "test-withdrawal",
|
||||
"percentage_of_wallet_lp": "1.00",
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out": "9998.724970",
|
||||
"expected_quote_out": "10001.274970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "planned-partial",
|
||||
"percentage_of_wallet_lp": "25.00",
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out": "249968.124249",
|
||||
"expected_quote_out": "250031.874249",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "emergency-full",
|
||||
"percentage_of_wallet_lp": "100.00",
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out": "999872.496997",
|
||||
"expected_quote_out": "1000127.496997",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pair": "cUSDC/USDC",
|
||||
"pool_address": "0xc39B7D0F40838cbFb54649d327f49a6DAC964062",
|
||||
"wallet_lp_balance_raw": "999999996997",
|
||||
"pool_total_supply_raw": "999999997998",
|
||||
"wallet_share_fraction": "0.99999999899899999799599799598798798796795195191184",
|
||||
"base_symbol": "cUSDC",
|
||||
"quote_symbol": "USDC",
|
||||
"pool_base_reserve_raw": "1010462997998",
|
||||
"pool_quote_reserve_raw": "989536997998",
|
||||
"wallet_claim_base_raw": "1010462996986",
|
||||
"wallet_claim_quote_raw": "989536997007",
|
||||
"wallet_claim_base_human": "1010462.996986",
|
||||
"wallet_claim_quote_human": "989536.997007",
|
||||
"exact_remove_liquidity_call": {
|
||||
"signature": "sellShares(uint256,address,uint256,uint256,bytes,uint256)",
|
||||
"selector": "0xb56ceaa6",
|
||||
"mode": "direct pool call",
|
||||
"preview_status": "live-read",
|
||||
"preview_test_share_amount_raw": "999999996",
|
||||
"preview_expected_base_out": "1010.462995",
|
||||
"preview_expected_quote_out": "989.536996",
|
||||
"preview_deadline_unix": 1776308593
|
||||
},
|
||||
"approval_requirements": {
|
||||
"direct_call": {
|
||||
"status": "live-read",
|
||||
"allowance_to_integration_raw": "0",
|
||||
"required": false,
|
||||
"notes": [
|
||||
"Direct pool withdrawal uses sellShares(...) against the pool from the LP holder wallet.",
|
||||
"The DODO DVM implementation burns _SHARES_[msg.sender] directly, so no LP allowance is needed for a direct owner call.",
|
||||
"A delegated helper or proxy that relies on transferFrom() would require LP allowance or permit."
|
||||
]
|
||||
},
|
||||
"delegated_call": {
|
||||
"status": "inferred",
|
||||
"required": true,
|
||||
"notes": [
|
||||
"If a separate contract or helper is used to move LP shares first, it must have allowance or a permit on the LP token.",
|
||||
"The canonical DODOPMMIntegration contract does not expose a remove-liquidity helper for these pools."
|
||||
]
|
||||
}
|
||||
},
|
||||
"withdrawal_readiness": {
|
||||
"ownership_status": "live-read",
|
||||
"mechanics_status": "live-read",
|
||||
"direct_usability_status": "simulated",
|
||||
"notes": [
|
||||
"ERC-20 LP ownership is directly verified by balanceOf + totalSupply.",
|
||||
"Exact remove-liquidity surface is the pool-level sellShares(uint256,address,uint256,uint256,bytes,uint256) method.",
|
||||
"The preview call was executed read-only against the live pool from the canonical wallet context; no transaction was broadcast.",
|
||||
"Withdrawn stable outputs are directly usable in Chain 138 internal stable surfaces and may feed approved external corridors after bridge handling."
|
||||
]
|
||||
},
|
||||
"scenarios": [
|
||||
{
|
||||
"mode": "test-withdrawal",
|
||||
"percentage_of_wallet_lp": "1.00",
|
||||
"lp_tokens_to_burn_raw": "9999999970",
|
||||
"expected_base_out": "10104.629970",
|
||||
"expected_quote_out": "9895.369970",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "planned-partial",
|
||||
"percentage_of_wallet_lp": "25.00",
|
||||
"lp_tokens_to_burn_raw": "249999999249",
|
||||
"expected_base_out": "252615.749247",
|
||||
"expected_quote_out": "247384.249252",
|
||||
"status": "simulated"
|
||||
},
|
||||
{
|
||||
"mode": "emergency-full",
|
||||
"percentage_of_wallet_lp": "100.00",
|
||||
"lp_tokens_to_burn_raw": "999999996997",
|
||||
"expected_base_out": "1010462.996987",
|
||||
"expected_quote_out": "989536.997007",
|
||||
"status": "simulated"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"mainnet_bridge_wallet_readiness": {
|
||||
"generated_at": "2026-04-16T02:03:14Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"remaining_manual_items": [
|
||||
"Run a small live LP withdrawal only under a separate operator-approved mutation workflow.",
|
||||
"Run a small live cUSDT or cUSDC bridge canary to Mainnet only under a separate operator-approved mutation workflow.",
|
||||
"If a delegated withdrawal helper is introduced later, verify LP allowance or permit handling in an isolated mutation-approved test flow."
|
||||
]
|
||||
}
|
||||
662
reports/extraction/treasury-segmentation-assignment-latest.json
Normal file
662
reports/extraction/treasury-segmentation-assignment-latest.json
Normal file
@@ -0,0 +1,662 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:22Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"policy": {
|
||||
"generated_at": "2026-04-16T02:03:22Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status": "inferred",
|
||||
"buckets": {
|
||||
"gas_reserve": {
|
||||
"purpose": "Per-chain native gas needed to keep read/write optionality alive.",
|
||||
"minimum_floor_usd": 25,
|
||||
"movement_rule": "May top up from stable working capital only after operator review."
|
||||
},
|
||||
"stable_working_capital": {
|
||||
"purpose": "Assets intentionally used for controlled extraction or collateral pilot workflows.",
|
||||
"minimum_floor_usd": 250000,
|
||||
"movement_rule": "Use only through approved corridors with ledgered outputs."
|
||||
},
|
||||
"bridge_inventory": {
|
||||
"purpose": "Assets whose main role is to move value between Chain 138 and public chains.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Use only when route health is green and fallback exists."
|
||||
},
|
||||
"lp_reserve": {
|
||||
"purpose": "LP claims that currently anchor internal stable liquidity.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "Planned partial or emergency full only; no ad hoc removal."
|
||||
},
|
||||
"non_core_wrappers": {
|
||||
"purpose": "Wrapped or synthetic assets without near-term reliable canonical exits.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Do not include in routine extraction forecasts."
|
||||
},
|
||||
"protected_reserve": {
|
||||
"purpose": "Inventory intentionally excluded from routine extraction until stronger public depth exists.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "No movement under this pack; manual governance only."
|
||||
}
|
||||
},
|
||||
"wallet_roles": {
|
||||
"current_state": [
|
||||
{
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"role": "mixed-use / overconcentrated",
|
||||
"status": "live-read",
|
||||
"notes": "Current state collapses reserve, bridge inventory, LP custody, and extraction inventory into one wallet."
|
||||
}
|
||||
],
|
||||
"target_state": [
|
||||
{
|
||||
"role": "execution",
|
||||
"status": "manual-required",
|
||||
"notes": "Dedicated working wallet for approved exits only."
|
||||
},
|
||||
{
|
||||
"role": "reserve",
|
||||
"status": "manual-required",
|
||||
"notes": "Protected reserve wallet with no routine route execution."
|
||||
},
|
||||
{
|
||||
"role": "external-canonical-stable",
|
||||
"status": "manual-required",
|
||||
"notes": "Clean landing wallet for realized USDC/USDT only."
|
||||
},
|
||||
{
|
||||
"role": "testing",
|
||||
"status": "manual-required",
|
||||
"notes": "Low-balance wallet for corridor rehearsal and approvals."
|
||||
}
|
||||
]
|
||||
},
|
||||
"movement_rules": [
|
||||
"No asset movement from protected reserve to execution wallet without manual operator sign-off.",
|
||||
"Realized canonical stable balances should not be mixed with bridge inventory or non-core wrappers.",
|
||||
"LP reserve withdrawals should follow the stable LP runbook and preserve reserve floor assumptions."
|
||||
]
|
||||
},
|
||||
"assignments": [
|
||||
{
|
||||
"symbol": "cWAUDC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.0039549742533470650494",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWCADC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.0039000615953187556125",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWCHFC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.1723700195227765690978",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWEURC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.0587445040",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWGBPC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.0064675838269971815142",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWJPYC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "0.000109358326663465129774",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDC",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "8888610.523693",
|
||||
"realizability_class": "B",
|
||||
"recommended_bucket": "bridge_inventory",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Split working tranche from long-tail inventory into dedicated execution wallet."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDT",
|
||||
"chain": "Ethereum Mainnet",
|
||||
"estimated_usd": "8888909.964479",
|
||||
"realizability_class": "B",
|
||||
"recommended_bucket": "bridge_inventory",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Split working tranche from long-tail inventory into dedicated execution wallet."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWAUDC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "356818.3195008178500000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWCADC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "362796.4274715121500000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWCHFC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "638828.6334056399000000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWEURC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "24353.9720",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWEURT",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "24353.9720",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWGBPC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "677517.6856271927000000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWGBPT",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "677517.6856271927000000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWJPYC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "3142.841897444106500000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWXAUC",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "2581670063.0164177500000",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWXAUT",
|
||||
"chain": "BSC (BNB Chain)",
|
||||
"estimated_usd": "2581670063.0164177500000",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDC",
|
||||
"chain": "Polygon",
|
||||
"estimated_usd": "996.297636",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "bridge_inventory",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Split working tranche from long-tail inventory into dedicated execution wallet."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDT",
|
||||
"chain": "Polygon",
|
||||
"estimated_usd": "998.983664",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "bridge_inventory",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Split working tranche from long-tail inventory into dedicated execution wallet."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cAUDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "1413713.4682256013200643",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cAUDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "17127.2793360392568000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cCADC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "1437398.7200492761952757",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cCADC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "17414.2285186325832000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cCHFC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "2531037.7678958784725202",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cCHFC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "30663.7744034707152000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cEURC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "2333614.4660",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cEURC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "28272.0000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cEURT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "95414.4660",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cEURT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "28272.0000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cGBPC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "2684323.7154195662230146",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cGBPC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "32520.8489101052496000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cGBPT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "2684323.7154195662230146",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cGBPT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "32520.8489101052496000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cJPYC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "12451.933311989755064787",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cJPYC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "150.856411077317112000",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "non_core_wrappers",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Treat as constrained inventory pending better canonical exits."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "687514099.298585",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "stable_working_capital",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Define exact sub-balance reserved for bridge inventory vs internal reserve."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "75000",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "stable_working_capital",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Define exact sub-balance reserved for bridge inventory vs internal reserve."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "687798049.09",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "stable_working_capital",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Define exact sub-balance reserved for bridge inventory vs internal reserve."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "75000",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "stable_working_capital",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Define exact sub-balance reserved for bridge inventory vs internal reserve."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cXAUC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "14651448.4577676037915520805",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cXAUC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "128825336.1445192457250",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cXAUT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "21674610.5823135465152499105",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cXAUT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "128825336.1445192457250",
|
||||
"realizability_class": "E",
|
||||
"recommended_bucket": "protected_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Do not route through routine extraction until public depth is materially stronger."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cWUSDT",
|
||||
"chain": "Avalanche C-Chain",
|
||||
"estimated_usd": "0.8",
|
||||
"realizability_class": "D",
|
||||
"recommended_bucket": "bridge_inventory",
|
||||
"target_wallet_role": "execution",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Split working tranche from long-tail inventory into dedicated execution wallet."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "LP:cUSDT/cUSDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "lp_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Move LP custody to a dedicated reserve wallet before operational extraction."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "LP:cUSDT/USDT",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "lp_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Move LP custody to a dedicated reserve wallet before operational extraction."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "LP:cUSDC/USDC",
|
||||
"chain": "Chain 138",
|
||||
"estimated_usd": "1999999.993993",
|
||||
"realizability_class": "C",
|
||||
"recommended_bucket": "lp_reserve",
|
||||
"target_wallet_role": "reserve",
|
||||
"status": "inferred",
|
||||
"gap_to_target": [
|
||||
"Move LP custody to a dedicated reserve wallet before operational extraction."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
1476
scripts/lib/extraction_gap_closure.py
Normal file
1476
scripts/lib/extraction_gap_closure.py
Normal file
File diff suppressed because it is too large
Load Diff
823
scripts/lib/immediate_liquidity_expansion.py
Normal file
823
scripts/lib/immediate_liquidity_expansion.py
Normal file
@@ -0,0 +1,823 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Immediate-liquidity expansion pack.
|
||||
|
||||
Focuses on the next operator layer after the dry-run canary pack:
|
||||
1. GRU V2 Mainnet bridge parity
|
||||
2. V2 mint -> bridge -> pool-funding planning/execution
|
||||
3. Mainnet quote-side funding plans for direct cW exits
|
||||
4. Realize-to-canonical sweep planning/execution
|
||||
5. Before/after liquidity-state reporting
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
from decimal import Decimal, ROUND_DOWN, getcontext
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
import extraction_gap_closure as egc
|
||||
import liquidity_improvement_pack as lip
|
||||
|
||||
getcontext().prec = 50
|
||||
|
||||
ROOT = egc.ROOT
|
||||
CONFIG_DIR = egc.CONFIG_DIR
|
||||
REPORTS_DIR = egc.REPORTS_DIR
|
||||
DOCS_DIR = egc.DOCS_DIR
|
||||
CANONICAL_WALLET = egc.CANONICAL_WALLET
|
||||
STATUS_LIVE = egc.STATUS_LIVE
|
||||
STATUS_SIM = egc.STATUS_SIM
|
||||
STATUS_INF = egc.STATUS_INF
|
||||
STATUS_MANUAL = egc.STATUS_MANUAL
|
||||
|
||||
THRESHOLDS_PATH = CONFIG_DIR / "immediate-liquidity-expansion-thresholds.json"
|
||||
DOC_PATH = DOCS_DIR / "IMMEDIATE_LIQUIDITY_EXPANSION_PACK.md"
|
||||
|
||||
USDC_MAINNET = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
||||
USDT_MAINNET = "0xdAC17F958D2ee523a2206206994597C13D831ec7"
|
||||
CWUSDC_MAINNET = os.environ.get("CWUSDC_MAINNET", "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a")
|
||||
CWUSDT_MAINNET = os.environ.get("CWUSDT_MAINNET", "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE")
|
||||
CWUSDC_V2_MAINNET = os.environ.get("CWUSDC_V2_MAINNET", "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c")
|
||||
CWUSDT_V2_MAINNET = os.environ.get("CWUSDT_V2_MAINNET", "0x7E8FF0DcC974F290a29968e9350800a6df674447")
|
||||
CUSDC_V2_138 = os.environ.get("COMPLIANT_USDC_V2", "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d")
|
||||
CUSDT_V2_138 = os.environ.get("COMPLIANT_USDT_V2", "0x9FBfab33882Efe0038DAa608185718b772EE5660")
|
||||
L1_BRIDGE_138 = (
|
||||
os.environ.get("CW_MULTITOKEN_BRIDGE_L1_138")
|
||||
or os.environ.get("CW_L1_BRIDGE_CHAIN138")
|
||||
or os.environ.get("CHAIN138_L1_BRIDGE")
|
||||
or egc.CHAIN138_L1_BRIDGE_DEFAULT
|
||||
)
|
||||
L2_BRIDGE_MAINNET = (
|
||||
os.environ.get("CW_MULTITOKEN_BRIDGE_L2_MAINNET")
|
||||
or os.environ.get("CW_BRIDGE_MAINNET")
|
||||
or egc.MAINNET_L2_BRIDGE_DEFAULT
|
||||
)
|
||||
MAINNET_SELECTOR = egc.ETH_MAINNET_SELECTOR
|
||||
|
||||
OUTPUTS = {
|
||||
"parity": REPORTS_DIR / "gru-v2-mainnet-bridge-parity-latest.json",
|
||||
"quote_plan": REPORTS_DIR / "mainnet-quote-side-funding-plan-latest.json",
|
||||
"v2_funding": REPORTS_DIR / "gru-v2-mainnet-funding-plan-latest.json",
|
||||
"sweep_plan": REPORTS_DIR / "realize-to-canonical-sweep-plan-latest.json",
|
||||
"delta": REPORTS_DIR / "liquidity-state-delta-latest.json",
|
||||
}
|
||||
|
||||
EXECUTION_OUTPUTS = {
|
||||
"parity_run": REPORTS_DIR / "live-gru-v2-mainnet-bridge-parity-run-latest.json",
|
||||
"quote_run": REPORTS_DIR / "live-mainnet-quote-side-funding-run-latest.json",
|
||||
"v2_funding_run": REPORTS_DIR / "live-gru-v2-mainnet-funding-run-latest.json",
|
||||
"sweep_run": REPORTS_DIR / "live-realize-to-canonical-sweep-run-latest.json",
|
||||
}
|
||||
|
||||
DIRECT_POOLS = [
|
||||
{
|
||||
"pair": "cwusdc-usdc",
|
||||
"pool_address": egc.pick_pool("cWUSDC", "USDC")["poolAddress"],
|
||||
"source_symbol": "cWUSDC",
|
||||
"source_token": CWUSDC_MAINNET,
|
||||
"quote_symbol": "USDC",
|
||||
"quote_token": USDC_MAINNET,
|
||||
"v2_symbol": "cUSDC_V2",
|
||||
"v2_token": CUSDC_V2_138,
|
||||
},
|
||||
{
|
||||
"pair": "cwusdt-usdt",
|
||||
"pool_address": egc.pick_pool("cWUSDT", "USDT")["poolAddress"],
|
||||
"source_symbol": "cWUSDT",
|
||||
"source_token": CWUSDT_MAINNET,
|
||||
"quote_symbol": "USDT",
|
||||
"quote_token": USDT_MAINNET,
|
||||
"v2_symbol": "cUSDT_V2",
|
||||
"v2_token": CUSDT_V2_138,
|
||||
},
|
||||
{
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"pool_address": "0xf633D2617316096e876E9C693111B8e76CE95302",
|
||||
"source_symbol": "cWUSDC_V2",
|
||||
"source_token": CWUSDC_V2_MAINNET,
|
||||
"quote_symbol": "USDC",
|
||||
"quote_token": USDC_MAINNET,
|
||||
"v2_symbol": "cUSDC_V2",
|
||||
"v2_token": CUSDC_V2_138,
|
||||
},
|
||||
{
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"pool_address": "0x983D9ac22967209821C908e95FeACC37baA6fECA",
|
||||
"source_symbol": "cWUSDT_V2",
|
||||
"source_token": CWUSDT_V2_MAINNET,
|
||||
"quote_symbol": "USDT",
|
||||
"quote_token": USDT_MAINNET,
|
||||
"v2_symbol": "cUSDT_V2",
|
||||
"v2_token": CUSDT_V2_138,
|
||||
},
|
||||
]
|
||||
|
||||
V2_ASSETS = [
|
||||
{
|
||||
"symbol": "cUSDC_V2",
|
||||
"canonical_token": CUSDC_V2_138,
|
||||
"mirrored_token": CWUSDC_V2_MAINNET,
|
||||
"funding_pair": "cwusdcv2-usdc",
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDT_V2",
|
||||
"canonical_token": CUSDT_V2_138,
|
||||
"mirrored_token": CWUSDT_V2_MAINNET,
|
||||
"funding_pair": "cwusdtv2-usdt",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def now_utc() -> str:
|
||||
return time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
|
||||
|
||||
|
||||
def write_json(path: Path, data: Dict[str, Any]) -> None:
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(json.dumps(data, indent=2) + "\n")
|
||||
|
||||
|
||||
def write_text(path: Path, text: str) -> None:
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(text.rstrip() + "\n")
|
||||
|
||||
|
||||
def load_json(path: Path) -> Dict[str, Any]:
|
||||
return json.loads(path.read_text())
|
||||
|
||||
|
||||
def fmt_money(value: Decimal) -> str:
|
||||
return f"{value.quantize(Decimal('0.01')):,}"
|
||||
|
||||
|
||||
def thresholds() -> Dict[str, Any]:
|
||||
data = {
|
||||
"generated_at": now_utc(),
|
||||
"status": STATUS_INF,
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"direct_exit_support_fraction": "0.05",
|
||||
"target_exit_usd": [25000, 100000, 250000, 1000000],
|
||||
"default_target_exit_usd": 100000,
|
||||
"default_sweep_raw": 1000000,
|
||||
"sweep_slippage_bps": 100,
|
||||
"notes": [
|
||||
"Target exit USD is translated into required usable-side reserves under the 5% direct-exit heuristic.",
|
||||
"All deployment wrappers are dry-run by default and require an explicit --execute flag for mutations.",
|
||||
],
|
||||
}
|
||||
write_json(THRESHOLDS_PATH, data)
|
||||
return data
|
||||
|
||||
|
||||
def required_usable_raw(target_exit_usd: int, support_fraction: Decimal) -> int:
|
||||
amount = (Decimal(target_exit_usd) / support_fraction) * Decimal(1_000_000)
|
||||
return int(amount.to_integral_value(rounding=ROUND_DOWN))
|
||||
|
||||
|
||||
def latest_token_key_balance(token_key: str) -> Optional[Dict[str, Any]]:
|
||||
audit_dir = ROOT / "reports" / "deployer-token-audit"
|
||||
latest_balances = egc.latest_file(audit_dir, "deployer-token-balances-*.json")
|
||||
if not latest_balances:
|
||||
return None
|
||||
payload = load_json(latest_balances)
|
||||
for row in payload.get("balances", []):
|
||||
if row.get("token_key") == token_key:
|
||||
return row
|
||||
return None
|
||||
|
||||
|
||||
def latest_access_roles(token_key: str) -> Optional[Dict[str, Any]]:
|
||||
audit_dir = ROOT / "reports" / "deployer-token-audit"
|
||||
latest_access = egc.latest_file(audit_dir, "deployer-token-access-*.json")
|
||||
if not latest_access:
|
||||
return None
|
||||
payload = load_json(latest_access)
|
||||
for row in payload.get("access", []):
|
||||
if row.get("token_key") == token_key:
|
||||
return row.get("roles")
|
||||
return None
|
||||
|
||||
|
||||
def token_balance(rpc: Optional[str], token: str, wallet: str) -> Optional[int]:
|
||||
if not rpc:
|
||||
return None
|
||||
try:
|
||||
return egc.call_balance_of(rpc, token, wallet)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
def direct_pool_state() -> List[Dict[str, Any]]:
|
||||
rpc_mainnet = egc.env_rpc("ETHEREUM_MAINNET_RPC")
|
||||
rows: List[Dict[str, Any]] = []
|
||||
for pool in DIRECT_POOLS:
|
||||
base_reserve = 0
|
||||
quote_reserve = 0
|
||||
wallet_source_balance_raw = "0"
|
||||
wallet_quote_balance_raw = "0"
|
||||
status = STATUS_MANUAL
|
||||
if rpc_mainnet:
|
||||
reserves = egc.call_get_vault_reserve(rpc_mainnet, pool["pool_address"])
|
||||
if reserves:
|
||||
base_reserve, quote_reserve = reserves
|
||||
status = STATUS_LIVE
|
||||
source_balance = egc.call_balance_of(rpc_mainnet, pool["source_token"], CANONICAL_WALLET)
|
||||
quote_balance = egc.call_balance_of(rpc_mainnet, pool["quote_token"], CANONICAL_WALLET)
|
||||
wallet_source_balance_raw = str(source_balance)
|
||||
wallet_quote_balance_raw = str(quote_balance)
|
||||
usable_raw = min(base_reserve, quote_reserve)
|
||||
current_capacity_usd = (Decimal(usable_raw) / Decimal(1_000_000)) * Decimal("0.05")
|
||||
rows.append(
|
||||
{
|
||||
**pool,
|
||||
"base_reserve_raw": str(base_reserve),
|
||||
"quote_reserve_raw": str(quote_reserve),
|
||||
"usable_side_raw": str(usable_raw),
|
||||
"current_direct_exit_capacity_usd": str(current_capacity_usd),
|
||||
"wallet_source_balance_raw": wallet_source_balance_raw,
|
||||
"wallet_quote_balance_raw": wallet_quote_balance_raw,
|
||||
"status": status,
|
||||
"dry_run_surface": {
|
||||
"returncode": 0 if status == STATUS_LIVE else 1,
|
||||
"pool_surface": "reserve_only",
|
||||
"quote_source": "onchain_reserve",
|
||||
},
|
||||
}
|
||||
)
|
||||
return rows
|
||||
|
||||
|
||||
def build_gru_v2_mainnet_bridge_parity() -> Dict[str, Any]:
|
||||
dry = lip.run_command(["bash", "scripts/verify/dry-run-gru-v2-cw-mainnet-corridor.sh", "--json"], timeout=30)
|
||||
payload: Dict[str, Any] = {}
|
||||
if dry["returncode"] == 0 and dry["stdout"].strip():
|
||||
payload = json.loads(dry["stdout"])
|
||||
asset_rows = []
|
||||
by_label = {row["label"]: row for row in payload.get("assets", [])}
|
||||
v1_rows = []
|
||||
for label in ("cUSDT_V1", "cUSDC_V1"):
|
||||
probe = by_label.get(label, {})
|
||||
v1_rows.append(
|
||||
{
|
||||
"symbol": label,
|
||||
"canonical_token": probe.get("canonicalToken"),
|
||||
"status": STATUS_LIVE if probe.get("corridorReady") else STATUS_MANUAL,
|
||||
"corridor_ready": probe.get("corridorReady", False),
|
||||
"l1_destination_wired": probe.get("l1DestinationWired", False),
|
||||
"l2_token_pair_configured": probe.get("l2TokenPairConfigured", False),
|
||||
"l1_fee_quote_ok": probe.get("l1FeeQuoteOk", False),
|
||||
"mainnet_mirrored_token": probe.get("mainnetMirroredToken"),
|
||||
"dry_run_probe": probe,
|
||||
}
|
||||
)
|
||||
for asset in V2_ASSETS:
|
||||
probe = by_label.get(asset["symbol"], {})
|
||||
token_key = asset["symbol"]
|
||||
balance_row = latest_token_key_balance(token_key)
|
||||
roles = latest_access_roles(token_key)
|
||||
asset_rows.append(
|
||||
{
|
||||
"symbol": asset["symbol"],
|
||||
"canonical_token": asset["canonical_token"],
|
||||
"mirrored_token": probe.get("mainnetMirroredToken") or asset["mirrored_token"],
|
||||
"status": STATUS_LIVE if probe.get("corridorReady") else STATUS_MANUAL,
|
||||
"corridor_ready": probe.get("corridorReady", False),
|
||||
"l1_destination_wired": probe.get("l1DestinationWired", False),
|
||||
"l2_token_pair_configured": probe.get("l2TokenPairConfigured", False),
|
||||
"l1_fee_quote_ok": probe.get("l1FeeQuoteOk", False),
|
||||
"current_chain138_balance_raw": balance_row.get("balance_raw") if balance_row else None,
|
||||
"operator_roles": roles,
|
||||
"dry_run_probe": probe,
|
||||
"configure_pair_command": (
|
||||
"bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh "
|
||||
f"--asset {asset['symbol']}"
|
||||
),
|
||||
"execute_pair_command": (
|
||||
"bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh "
|
||||
f"--asset {asset['symbol']} --execute"
|
||||
),
|
||||
}
|
||||
)
|
||||
v2_ready = all(row["corridor_ready"] for row in asset_rows)
|
||||
coexistence_ready = v2_ready and all(row["corridor_ready"] for row in v1_rows)
|
||||
v1_displaced = [
|
||||
row["symbol"]
|
||||
for row in v1_rows
|
||||
if row["l1_destination_wired"] and row["l1_fee_quote_ok"] and not row["l2_token_pair_configured"]
|
||||
]
|
||||
v2_distinct_mirrors = all(
|
||||
row.get("mirrored_token") and row.get("mirrored_token").lower() not in {CWUSDT_MAINNET.lower(), CWUSDC_MAINNET.lower()}
|
||||
for row in asset_rows
|
||||
)
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"status_legend": [STATUS_LIVE, STATUS_SIM, STATUS_INF, STATUS_MANUAL],
|
||||
"overall_ready": v2_ready,
|
||||
"coexistence_ready": coexistence_ready,
|
||||
"lane_policy": {
|
||||
"status": STATUS_LIVE if v2_ready else STATUS_MANUAL,
|
||||
"shared_mirrored_lanes_on_mainnet": not coexistence_ready,
|
||||
"v2_cutover_active": v2_ready and not coexistence_ready,
|
||||
"v1_displaced_assets": v1_displaced,
|
||||
"coexistence_requires_distinct_mirrored_tokens": True,
|
||||
"distinct_v2_mirrors_live": v2_distinct_mirrors,
|
||||
"notes": [
|
||||
"The deployed Mainnet CWMultiTokenBridgeL2 uses a one-to-one mirroredToken -> canonicalToken mapping.",
|
||||
"configureTokenPair(canonical, mirrored) clears the previous canonical mapping for the same mirrored token.",
|
||||
"True V1/V2 coexistence requires distinct V2 mirrored tokens.",
|
||||
"The live parity state is coexistence-ready when both V1 legacy lanes and V2 distinct lanes are mapped at once.",
|
||||
],
|
||||
"code_reference": "smom-dbis-138/contracts/bridge/CWMultiTokenBridgeL2.sol:88",
|
||||
},
|
||||
"l1_bridge_138": L1_BRIDGE_138,
|
||||
"l2_bridge_mainnet": L2_BRIDGE_MAINNET,
|
||||
"mainnet_selector": MAINNET_SELECTOR,
|
||||
"assets": asset_rows,
|
||||
"v1_reference_assets": v1_rows,
|
||||
"dry_run_result": payload or {"status": STATUS_MANUAL, "stderr": dry["stderr"]},
|
||||
}
|
||||
|
||||
|
||||
def build_mainnet_quote_side_funding_plan() -> Dict[str, Any]:
|
||||
cfg = thresholds()
|
||||
support_fraction = Decimal(cfg["direct_exit_support_fraction"])
|
||||
rows = []
|
||||
for state in direct_pool_state():
|
||||
base_reserve = int(state["base_reserve_raw"])
|
||||
quote_reserve = int(state["quote_reserve_raw"])
|
||||
wallet_base = int(state["wallet_source_balance_raw"])
|
||||
wallet_quote = int(state["wallet_quote_balance_raw"])
|
||||
targets = []
|
||||
for target_usd in cfg["target_exit_usd"]:
|
||||
req_raw = required_usable_raw(int(target_usd), support_fraction)
|
||||
quote_only_add = max(0, min(req_raw, base_reserve) - quote_reserve)
|
||||
full_base_add = max(0, req_raw - base_reserve)
|
||||
full_quote_add = max(0, req_raw - quote_reserve)
|
||||
capacity_after_quote_only = (
|
||||
Decimal(min(base_reserve, quote_reserve + quote_only_add)) / Decimal(1_000_000)
|
||||
) * support_fraction
|
||||
targets.append(
|
||||
{
|
||||
"target_exit_usd": target_usd,
|
||||
"required_usable_side_raw": str(req_raw),
|
||||
"quote_only_add_raw": str(quote_only_add),
|
||||
"full_target_base_add_raw": str(full_base_add),
|
||||
"full_target_quote_add_raw": str(full_quote_add),
|
||||
"wallet_can_fund_quote_only_now": wallet_quote >= quote_only_add and wallet_base >= 1,
|
||||
"wallet_can_fund_full_now": wallet_quote >= full_quote_add and wallet_base >= full_base_add,
|
||||
"projected_capacity_after_quote_only_usd": str(capacity_after_quote_only),
|
||||
"quote_only_command": (
|
||||
"bash scripts/deployment/apply-mainnet-direct-exit-funding.sh "
|
||||
f"--pair={state['pair']} --mode=quote-only --target-usd={target_usd}"
|
||||
),
|
||||
"full_target_command": (
|
||||
"bash scripts/deployment/apply-mainnet-direct-exit-funding.sh "
|
||||
f"--pair={state['pair']} --mode=full-target --target-usd={target_usd}"
|
||||
),
|
||||
}
|
||||
)
|
||||
rows.append(
|
||||
{
|
||||
**state,
|
||||
"target_table": targets,
|
||||
"recommended_next_quote_only_target_usd": next(
|
||||
(row["target_exit_usd"] for row in targets if int(row["quote_only_add_raw"]) > 0),
|
||||
None,
|
||||
),
|
||||
}
|
||||
)
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"status_legend": [STATUS_LIVE, STATUS_SIM, STATUS_INF, STATUS_MANUAL],
|
||||
"thresholds": cfg,
|
||||
"pools": rows,
|
||||
}
|
||||
|
||||
|
||||
def funding_target_row(pair: str, target_usd: int) -> Dict[str, Any]:
|
||||
plan = build_mainnet_quote_side_funding_plan()
|
||||
pool = next(row for row in plan["pools"] if row["pair"] == pair)
|
||||
return next(row for row in pool["target_table"] if int(row["target_exit_usd"]) == target_usd)
|
||||
|
||||
|
||||
def build_gru_v2_mainnet_funding_plan() -> Dict[str, Any]:
|
||||
cfg = thresholds()
|
||||
target_usd = int(cfg["default_target_exit_usd"])
|
||||
parity = build_gru_v2_mainnet_bridge_parity()
|
||||
rows = []
|
||||
for asset in V2_ASSETS:
|
||||
pair = asset["funding_pair"]
|
||||
target = funding_target_row(pair, target_usd)
|
||||
current_row = latest_token_key_balance(asset["symbol"])
|
||||
current_v2_balance = int(current_row["balance_raw"]) if current_row else 0
|
||||
bridge_amount = int(target["full_target_base_add_raw"])
|
||||
mint_needed = max(0, bridge_amount - current_v2_balance)
|
||||
quote_needed = int(target["full_target_quote_add_raw"])
|
||||
rows.append(
|
||||
{
|
||||
"symbol": asset["symbol"],
|
||||
"canonical_token": asset["canonical_token"],
|
||||
"mirrored_token": asset["mirrored_token"],
|
||||
"funding_pair": pair,
|
||||
"status": STATUS_SIM if parity["overall_ready"] else STATUS_MANUAL,
|
||||
"parity_required": not parity["overall_ready"],
|
||||
"lane_cutover_active": parity["lane_policy"]["v2_cutover_active"],
|
||||
"v1_coexistence_ready": parity["coexistence_ready"],
|
||||
"target_exit_usd": target_usd,
|
||||
"current_chain138_balance_raw": str(current_v2_balance),
|
||||
"bridge_amount_raw": str(bridge_amount),
|
||||
"mint_needed_raw": str(mint_needed),
|
||||
"quote_side_requirement_raw": str(quote_needed),
|
||||
"wallet_can_fund_quote_side_now": int(target["full_target_quote_add_raw"]) <= 0
|
||||
or bool(target["wallet_can_fund_full_now"]),
|
||||
"capital_movement_required": True,
|
||||
"mint_command": (
|
||||
f"cast send {asset['canonical_token']} "
|
||||
"\"mint(address,uint256)\" "
|
||||
f"{CANONICAL_WALLET} {mint_needed} "
|
||||
"--rpc-url \"$RPC_URL_138\" --private-key \"$PRIVATE_KEY\" --legacy"
|
||||
),
|
||||
"bridge_command": (
|
||||
"bash scripts/bridge/bridge-canonical-token-to-mainnet-cw.sh "
|
||||
f"--label {asset['symbol']} "
|
||||
f"--canonical-token {asset['canonical_token']} "
|
||||
f"--mirrored-token {asset['mirrored_token']} "
|
||||
f"--raw-amount {bridge_amount} "
|
||||
f"--recipient {CANONICAL_WALLET} --approve"
|
||||
),
|
||||
"fund_pool_command": (
|
||||
"bash scripts/deployment/apply-mainnet-direct-exit-funding.sh "
|
||||
f"--pair={pair} --mode=full-target --target-usd={target_usd}"
|
||||
),
|
||||
}
|
||||
)
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"status_legend": [STATUS_LIVE, STATUS_SIM, STATUS_INF, STATUS_MANUAL],
|
||||
"default_target_exit_usd": target_usd,
|
||||
"parity_state": parity,
|
||||
"assets": rows,
|
||||
}
|
||||
|
||||
|
||||
def build_realize_to_canonical_sweep_plan() -> Dict[str, Any]:
|
||||
cfg = thresholds()
|
||||
quote_plan = build_mainnet_quote_side_funding_plan()
|
||||
if lip.OUTPUTS["capital_state"].exists():
|
||||
current_capital = load_json(lip.OUTPUTS["capital_state"])
|
||||
else:
|
||||
current_capital = {
|
||||
"status": STATUS_MANUAL,
|
||||
"note": "capital-state artifact missing; regenerate the base liquidity improvement pack first",
|
||||
}
|
||||
rows = []
|
||||
for state in quote_plan["pools"]:
|
||||
current_capacity = Decimal(state["current_direct_exit_capacity_usd"])
|
||||
target = next(item for item in state["target_table"] if int(item["target_exit_usd"]) == int(cfg["default_target_exit_usd"]))
|
||||
current_amount_raw = min(int(cfg["default_sweep_raw"]), int(state["wallet_source_balance_raw"]))
|
||||
rows.append(
|
||||
{
|
||||
"pair": state["pair"],
|
||||
"symbol": state["source_symbol"],
|
||||
"target_symbol": state["quote_symbol"],
|
||||
"status": STATUS_SIM,
|
||||
"current_direct_exit_capacity_usd": str(current_capacity),
|
||||
"post_funding_target_exit_usd": str(target["target_exit_usd"]),
|
||||
"current_sweep_command": (
|
||||
"bash scripts/deployment/run-realize-to-canonical-sweep.sh "
|
||||
f"--pair={state['pair']} --amount-raw={current_amount_raw}"
|
||||
),
|
||||
"post_funding_sweep_command": (
|
||||
"bash scripts/deployment/run-realize-to-canonical-sweep.sh "
|
||||
f"--pair={state['pair']} --amount-usd={target['target_exit_usd']}"
|
||||
),
|
||||
}
|
||||
)
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"current_capital_state": current_capital,
|
||||
"quote_side_plan_reference": str(OUTPUTS["quote_plan"].relative_to(ROOT)),
|
||||
"routes": rows,
|
||||
}
|
||||
|
||||
|
||||
def build_liquidity_state_delta() -> Dict[str, Any]:
|
||||
cfg = thresholds()
|
||||
before = lip.build_capital_state()
|
||||
quote_plan = build_mainnet_quote_side_funding_plan()
|
||||
default_target = int(cfg["default_target_exit_usd"])
|
||||
direct_before = sum(Decimal(row["current_direct_exit_capacity_usd"]) for row in quote_plan["pools"])
|
||||
direct_after = Decimal("0")
|
||||
quote_only_after = Decimal("0")
|
||||
scenarios = []
|
||||
for row in quote_plan["pools"]:
|
||||
target = next(item for item in row["target_table"] if int(item["target_exit_usd"]) == default_target)
|
||||
direct_after += Decimal(default_target)
|
||||
quote_only_after += Decimal(target["projected_capacity_after_quote_only_usd"])
|
||||
scenarios.append(
|
||||
{
|
||||
"pair": row["pair"],
|
||||
"before_direct_exit_capacity_usd": row["current_direct_exit_capacity_usd"],
|
||||
"after_quote_only_capacity_usd": target["projected_capacity_after_quote_only_usd"],
|
||||
"after_full_target_capacity_usd": str(default_target),
|
||||
"quote_only_add_raw": target["quote_only_add_raw"],
|
||||
"full_target_base_add_raw": target["full_target_base_add_raw"],
|
||||
"full_target_quote_add_raw": target["full_target_quote_add_raw"],
|
||||
}
|
||||
)
|
||||
immediate_before = Decimal(before["immediate_liquid_position_usd"])
|
||||
near_immediate_before = Decimal(before["near_immediate_mainnet_cw_exit_usd"])
|
||||
projected_immediate_after_sweep = immediate_before + direct_after
|
||||
projected_near_immediate_remaining = max(Decimal("0"), near_immediate_before - direct_after)
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"default_target_exit_usd": default_target,
|
||||
"before": before,
|
||||
"direct_exit_capacity_before_usd": str(direct_before),
|
||||
"direct_exit_capacity_after_quote_only_usd": str(quote_only_after),
|
||||
"direct_exit_capacity_after_full_target_usd": str(direct_after),
|
||||
"projected_immediate_liquid_if_full_target_swept_usd": str(projected_immediate_after_sweep),
|
||||
"projected_near_immediate_remaining_after_full_target_swept_usd": str(projected_near_immediate_remaining),
|
||||
"scenarios": scenarios,
|
||||
}
|
||||
|
||||
|
||||
def render_markdown() -> str:
|
||||
parity = load_json(OUTPUTS["parity"])
|
||||
quote_plan = load_json(OUTPUTS["quote_plan"])
|
||||
v2_funding = load_json(OUTPUTS["v2_funding"])
|
||||
sweep = load_json(OUTPUTS["sweep_plan"])
|
||||
delta = load_json(OUTPUTS["delta"])
|
||||
lines = [
|
||||
"# Immediate Liquidity Expansion Pack",
|
||||
"",
|
||||
f"- Generated: `{now_utc()}`",
|
||||
f"- Wallet: `{CANONICAL_WALLET}`",
|
||||
"- This pack focuses on GRU V2 parity, direct-exit pool funding, sweep execution, and before/after liquidity deltas.",
|
||||
"",
|
||||
"## Commands",
|
||||
"",
|
||||
"| Artifact | Command |",
|
||||
"|---|---|",
|
||||
"| GRU V2 Mainnet parity report | `bash scripts/verify/build-gru-v2-mainnet-bridge-parity.sh` |",
|
||||
"| Quote-side funding plan | `bash scripts/verify/build-mainnet-direct-exit-funding-plan.sh` |",
|
||||
"| GRU V2 funding plan | `bash scripts/verify/build-gru-v2-mainnet-funding-plan.sh` |",
|
||||
"| Realize-to-canonical sweep plan | `bash scripts/verify/build-realize-to-canonical-sweep-plan.sh` |",
|
||||
"| Liquidity-state delta report | `bash scripts/verify/build-liquidity-state-delta-report.sh` |",
|
||||
"| Run full pack | `bash scripts/verify/run-immediate-liquidity-expansion-pack.sh` |",
|
||||
"| Validate | `bash scripts/validation/validate-immediate-liquidity-expansion-pack.sh` |",
|
||||
"| Execute GRU V2 parity | `bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh --execute` |",
|
||||
"| Execute V2 funding | `bash scripts/deployment/run-gru-v2-mainnet-funding.sh --execute` |",
|
||||
"| Apply direct-exit funding | `bash scripts/deployment/apply-mainnet-direct-exit-funding.sh --pair=cwusdc-usdc --mode=quote-only --target-usd=100000 --execute` |",
|
||||
"| Execute realize sweep | `bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair=cwusdt-usdt --amount-raw=1000000 --execute` |",
|
||||
"",
|
||||
"## GRU V2 Parity",
|
||||
"",
|
||||
f"- Overall ready: `{parity['overall_ready']}`",
|
||||
f"- Coexistence ready: `{parity['coexistence_ready']}`",
|
||||
f"- V1 displaced assets on shared lanes: `{', '.join(parity['lane_policy']['v1_displaced_assets']) or 'none'}`",
|
||||
"",
|
||||
"| Asset | Corridor Ready | Chain 138 Balance Raw |",
|
||||
"|---|---|---:|",
|
||||
]
|
||||
for row in parity["assets"]:
|
||||
lines.append(f"| `{row['symbol']}` | `{row['corridor_ready']}` | `{row['current_chain138_balance_raw']}` |")
|
||||
lines.extend(
|
||||
[
|
||||
"",
|
||||
"## Lane Policy",
|
||||
"",
|
||||
f"- Shared Mainnet mirrored lanes: `{parity['lane_policy']['shared_mirrored_lanes_on_mainnet']}`",
|
||||
f"- V2 cutover active: `{parity['lane_policy']['v2_cutover_active']}`",
|
||||
f"- Distinct mirrored tokens required for V1/V2 coexistence: `{parity['lane_policy']['coexistence_requires_distinct_mirrored_tokens']}`",
|
||||
f"- Code reference: `{parity['lane_policy']['code_reference']}`",
|
||||
]
|
||||
)
|
||||
lines.extend(["", "## Direct Exit Funding", "", "| Pair | Current Capacity USD | Recommended Next Quote-Only Target |", "|---|---:|---:|"])
|
||||
for row in quote_plan["pools"]:
|
||||
lines.append(
|
||||
f"| `{row['pair']}` | `${fmt_money(Decimal(row['current_direct_exit_capacity_usd']))}` | `{row['recommended_next_quote_only_target_usd']}` |"
|
||||
)
|
||||
lines.extend(["", "## GRU V2 Funding", "", "| Asset | Target Exit USD | Mint Needed Raw | Bridge Raw | Quote Requirement Raw | Quote Side Ready Now |", "|---|---:|---:|---:|---:|---|"])
|
||||
for row in v2_funding["assets"]:
|
||||
lines.append(
|
||||
f"| `{row['symbol']}` | `{row['target_exit_usd']}` | `{row['mint_needed_raw']}` | `{row['bridge_amount_raw']}` | `{row['quote_side_requirement_raw']}` | `{row['wallet_can_fund_quote_side_now']}` |"
|
||||
)
|
||||
lines.extend(["", "## Sweep", "", "| Pair | Current Direct Capacity USD | Post-Funding Target Exit USD |", "|---|---:|---:|"])
|
||||
for row in sweep["routes"]:
|
||||
lines.append(
|
||||
f"| `{row['pair']}` | `${fmt_money(Decimal(row['current_direct_exit_capacity_usd']))}` | `${row['post_funding_target_exit_usd']}` |"
|
||||
)
|
||||
lines.extend(
|
||||
[
|
||||
"",
|
||||
"## Liquidity Delta",
|
||||
"",
|
||||
f"- Direct exit capacity before: `${fmt_money(Decimal(delta['direct_exit_capacity_before_usd']))}`",
|
||||
f"- Direct exit capacity after quote-only adds: `${fmt_money(Decimal(delta['direct_exit_capacity_after_quote_only_usd']))}`",
|
||||
f"- Direct exit capacity after full-target funding: `${fmt_money(Decimal(delta['direct_exit_capacity_after_full_target_usd']))}`",
|
||||
f"- Projected immediate liquid if full-target sweep executed: `${fmt_money(Decimal(delta['projected_immediate_liquid_if_full_target_swept_usd']))}`",
|
||||
]
|
||||
)
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def build_run_report(run_type: str, execute: bool, payload: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
"generated_at": now_utc(),
|
||||
"wallet": CANONICAL_WALLET,
|
||||
"run_type": run_type,
|
||||
"execute": execute,
|
||||
**payload,
|
||||
}
|
||||
|
||||
|
||||
def cmd_execute_gru_v2_parity(execute: bool) -> None:
|
||||
command = "bash scripts/deployment/configure-gru-v2-mainnet-bridge-parity.sh"
|
||||
if execute:
|
||||
command += " --execute"
|
||||
result = lip.run_shell(command, timeout=300)
|
||||
write_json(
|
||||
EXECUTION_OUTPUTS["parity_run"],
|
||||
build_run_report("gru-v2-mainnet-bridge-parity", execute, {"status": "executed" if execute and result["returncode"] == 0 else ("dry-run" if not execute else "failed"), "command": command, "result": result}),
|
||||
)
|
||||
|
||||
|
||||
def cmd_execute_quote_funding(pair: str, mode: str, target_usd: int, execute: bool) -> None:
|
||||
command = (
|
||||
"bash scripts/deployment/apply-mainnet-direct-exit-funding.sh "
|
||||
f"--pair={pair} --mode={mode} --target-usd={target_usd}"
|
||||
)
|
||||
if execute:
|
||||
command += " --execute"
|
||||
result = lip.run_shell(command, timeout=300)
|
||||
write_json(
|
||||
EXECUTION_OUTPUTS["quote_run"],
|
||||
build_run_report("mainnet-quote-side-funding", execute, {"status": "executed" if execute and result["returncode"] == 0 else ("dry-run" if not execute else "failed"), "command": command, "result": result}),
|
||||
)
|
||||
|
||||
|
||||
def cmd_execute_v2_funding(execute: bool) -> None:
|
||||
command = "bash scripts/deployment/run-gru-v2-mainnet-funding.sh"
|
||||
if execute:
|
||||
command += " --execute"
|
||||
result = lip.run_shell(command, timeout=600)
|
||||
write_json(
|
||||
EXECUTION_OUTPUTS["v2_funding_run"],
|
||||
build_run_report("gru-v2-mainnet-funding", execute, {"status": "executed" if execute and result["returncode"] == 0 else ("dry-run" if not execute else "failed"), "command": command, "result": result}),
|
||||
)
|
||||
|
||||
|
||||
def cmd_execute_sweep(pair: str, amount_raw: Optional[int], amount_usd: Optional[int], execute: bool) -> None:
|
||||
command = f"bash scripts/deployment/run-realize-to-canonical-sweep.sh --pair={pair}"
|
||||
if amount_raw is not None:
|
||||
command += f" --amount-raw={amount_raw}"
|
||||
if amount_usd is not None:
|
||||
command += f" --amount-usd={amount_usd}"
|
||||
if execute:
|
||||
command += " --execute"
|
||||
result = lip.run_shell(command, timeout=300)
|
||||
write_json(
|
||||
EXECUTION_OUTPUTS["sweep_run"],
|
||||
build_run_report("realize-to-canonical-sweep", execute, {"status": "executed" if execute and result["returncode"] == 0 else ("dry-run" if not execute else "failed"), "command": command, "result": result}),
|
||||
)
|
||||
|
||||
|
||||
def validate() -> Tuple[bool, List[str]]:
|
||||
errors: List[str] = []
|
||||
required = [THRESHOLDS_PATH, DOC_PATH] + list(OUTPUTS.values())
|
||||
for path in required:
|
||||
if not path.exists():
|
||||
errors.append(f"missing required artifact: {path.relative_to(ROOT)}")
|
||||
checks = {
|
||||
OUTPUTS["parity"]: ["overall_ready", "coexistence_ready", "lane_policy", "assets", "generated_at"],
|
||||
OUTPUTS["quote_plan"]: ["pools", "generated_at"],
|
||||
OUTPUTS["v2_funding"]: ["assets", "generated_at"],
|
||||
OUTPUTS["sweep_plan"]: ["routes", "generated_at"],
|
||||
OUTPUTS["delta"]: ["before", "direct_exit_capacity_after_full_target_usd", "generated_at"],
|
||||
}
|
||||
for path, fields in checks.items():
|
||||
if not path.exists():
|
||||
continue
|
||||
try:
|
||||
data = load_json(path)
|
||||
except Exception as exc:
|
||||
errors.append(f"invalid JSON in {path.relative_to(ROOT)}: {exc}")
|
||||
continue
|
||||
for field in fields:
|
||||
if field not in data:
|
||||
errors.append(f"{path.relative_to(ROOT)} missing field: {field}")
|
||||
return (not errors, errors)
|
||||
|
||||
|
||||
def cmd_parity() -> None:
|
||||
write_json(OUTPUTS["parity"], build_gru_v2_mainnet_bridge_parity())
|
||||
|
||||
|
||||
def cmd_quote_plan() -> None:
|
||||
write_json(OUTPUTS["quote_plan"], build_mainnet_quote_side_funding_plan())
|
||||
|
||||
|
||||
def cmd_v2_funding() -> None:
|
||||
write_json(OUTPUTS["v2_funding"], build_gru_v2_mainnet_funding_plan())
|
||||
|
||||
|
||||
def cmd_sweep_plan() -> None:
|
||||
write_json(OUTPUTS["sweep_plan"], build_realize_to_canonical_sweep_plan())
|
||||
|
||||
|
||||
def cmd_delta() -> None:
|
||||
write_json(OUTPUTS["delta"], build_liquidity_state_delta())
|
||||
|
||||
|
||||
def cmd_index() -> None:
|
||||
write_text(DOC_PATH, render_markdown())
|
||||
|
||||
|
||||
def cmd_all() -> None:
|
||||
thresholds()
|
||||
cmd_parity()
|
||||
cmd_quote_plan()
|
||||
cmd_v2_funding()
|
||||
cmd_sweep_plan()
|
||||
cmd_delta()
|
||||
cmd_index()
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser()
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
for name in ["parity", "quote-plan", "v2-funding", "sweep-plan", "delta", "index", "all", "validate"]:
|
||||
sub.add_parser(name)
|
||||
exec_parity = sub.add_parser("execute-parity")
|
||||
exec_parity.add_argument("--execute", action="store_true")
|
||||
exec_quote = sub.add_parser("execute-quote-funding")
|
||||
exec_quote.add_argument("--pair", required=True)
|
||||
exec_quote.add_argument("--mode", choices=["quote-only", "full-target"], default="quote-only")
|
||||
exec_quote.add_argument("--target-usd", type=int, default=100000)
|
||||
exec_quote.add_argument("--execute", action="store_true")
|
||||
exec_v2 = sub.add_parser("execute-v2-funding")
|
||||
exec_v2.add_argument("--execute", action="store_true")
|
||||
exec_sweep = sub.add_parser("execute-sweep")
|
||||
exec_sweep.add_argument("--pair", required=True)
|
||||
exec_sweep.add_argument("--amount-raw", type=int)
|
||||
exec_sweep.add_argument("--amount-usd", type=int)
|
||||
exec_sweep.add_argument("--execute", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.command == "parity":
|
||||
cmd_parity()
|
||||
return
|
||||
if args.command == "quote-plan":
|
||||
cmd_quote_plan()
|
||||
return
|
||||
if args.command == "v2-funding":
|
||||
cmd_v2_funding()
|
||||
return
|
||||
if args.command == "sweep-plan":
|
||||
cmd_sweep_plan()
|
||||
return
|
||||
if args.command == "delta":
|
||||
cmd_delta()
|
||||
return
|
||||
if args.command == "index":
|
||||
cmd_index()
|
||||
return
|
||||
if args.command == "all":
|
||||
cmd_all()
|
||||
return
|
||||
if args.command == "validate":
|
||||
ok, errors = validate()
|
||||
if ok:
|
||||
print("[ok] immediate liquidity expansion pack validated")
|
||||
return
|
||||
for error in errors:
|
||||
print(f"[fail] {error}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if args.command == "execute-parity":
|
||||
cmd_execute_gru_v2_parity(args.execute)
|
||||
return
|
||||
if args.command == "execute-quote-funding":
|
||||
cmd_execute_quote_funding(args.pair, args.mode, args.target_usd, args.execute)
|
||||
return
|
||||
if args.command == "execute-v2-funding":
|
||||
cmd_execute_v2_funding(args.execute)
|
||||
return
|
||||
if args.command == "execute-sweep":
|
||||
cmd_execute_sweep(args.pair, args.amount_raw, args.amount_usd, args.execute)
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
1263
scripts/lib/liquidity_improvement_pack.py
Normal file
1263
scripts/lib/liquidity_improvement_pack.py
Normal file
File diff suppressed because it is too large
Load Diff
5
scripts/validation/validate-extraction-gap-closure-pack.sh
Executable file
5
scripts/validation/validate-extraction-gap-closure-pack.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
python3 "$ROOT/scripts/lib/extraction_gap_closure.py" validate
|
||||
5
scripts/validation/validate-immediate-liquidity-expansion-pack.sh
Executable file
5
scripts/validation/validate-immediate-liquidity-expansion-pack.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT/scripts/lib/load-project-env.sh" >/dev/null 2>&1 || true
|
||||
python3 "$ROOT/scripts/lib/immediate_liquidity_expansion.py" validate
|
||||
6
scripts/validation/validate-liquidity-improvement-pack.sh
Executable file
6
scripts/validation/validate-liquidity-improvement-pack.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT/scripts/lib/load-project-env.sh" >/dev/null 2>&1 || true
|
||||
python3 "$ROOT/scripts/lib/liquidity_improvement_pack.py" validate
|
||||
12
scripts/verify/run-extraction-gap-closure-pack.sh
Executable file
12
scripts/verify/run-extraction-gap-closure-pack.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT/scripts/lib/load-project-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
bash "$ROOT/scripts/verify/build-canonical-exit-corridor-map.sh"
|
||||
bash "$ROOT/scripts/verify/run-corridor-tranche-capacity-tests.sh"
|
||||
bash "$ROOT/scripts/verify/verify-stable-lp-withdrawal-readiness.sh"
|
||||
bash "$ROOT/scripts/verify/build-realizable-capital-ladder.sh"
|
||||
bash "$ROOT/scripts/verify/build-treasury-segmentation-assignment.sh"
|
||||
python3 "$ROOT/scripts/lib/extraction_gap_closure.py" index
|
||||
5
scripts/verify/run-immediate-liquidity-expansion-pack.sh
Executable file
5
scripts/verify/run-immediate-liquidity-expansion-pack.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT/scripts/lib/load-project-env.sh" >/dev/null 2>&1 || true
|
||||
python3 "$ROOT/scripts/lib/immediate_liquidity_expansion.py" all
|
||||
6
scripts/verify/run-liquidity-improvement-pack.sh
Executable file
6
scripts/verify/run-liquidity-improvement-pack.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT/scripts/lib/load-project-env.sh" >/dev/null 2>&1 || true
|
||||
python3 "$ROOT/scripts/lib/liquidity_improvement_pack.py" all
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:09Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"bridge_wallet_readiness": {
|
||||
"generated_at": "2026-04-16T02:03:09Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status_legend": [
|
||||
"live-read",
|
||||
"simulated",
|
||||
"inferred",
|
||||
"manual-required"
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"corridors": [
|
||||
{
|
||||
"corridor_id": "chain138-stable-lp-to-eth-stables",
|
||||
"source_chain": "138",
|
||||
"source_asset": "Chain 138 stable LP claims",
|
||||
"source_action": "Remove liquidity from cUSDT/cUSDC + cUSDT/USDT + cUSDC/USDC pools",
|
||||
"bridge": "CW bridge corridor to Ethereum (manual-required verification of exact production path)",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC / cWUSDT",
|
||||
"final_exit_surface": "Ethereum mainnet DODO PMM direct stable exits",
|
||||
"final_asset": "Ethereum USDC / USDT or approved external stable wallet balances",
|
||||
"route_type": "internal withdrawal + bridge + public DEX exit",
|
||||
"status": "manual-required",
|
||||
"notes": [
|
||||
"LP ownership is directly verifiable on Chain 138.",
|
||||
"Wallet-specific read-only bridge preflight now confirms the canonical v1 cUSDT/cUSDC -> Mainnet cWUSDT/cWUSDC wiring and fee quote path.",
|
||||
"Bridge leg still remains manual-required for production readiness until a separate operator-approved live canary is executed.",
|
||||
"Final exit depth is constrained by public Ethereum cW/canonical stable pools."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "LP withdrawal on Chain 138 is strong, but final external realization remains constrained by downstream cW exit depth."
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdc-to-eth-usdc",
|
||||
"source_chain": "138",
|
||||
"source_asset": "cUSDC",
|
||||
"source_action": "Bridge cUSDC to Ethereum cWUSDC",
|
||||
"bridge": "CW bridge to Ethereum",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "bridge + public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Destination pool is verified in deployment-status.json.",
|
||||
"Route is structurally valid but expected to be depth-constrained at the final PMM step."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "Bridge plus mainnet PMM exit; final depth constrained by shallow public cW/canonical pools.",
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDC",
|
||||
"canonical_token": "0xf22258f57794CC8E06237084b353Ab30fFfa640b",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0x2de5f116bfce3d0f922d9c8351e0c5fc24b9284a",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "chain138-cusdt-to-eth-usdt",
|
||||
"source_chain": "138",
|
||||
"source_asset": "cUSDT",
|
||||
"source_action": "Bridge cUSDT to Ethereum cWUSDT",
|
||||
"bridge": "CW bridge to Ethereum",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDT",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"final_asset": "Ethereum USDT / approved external stable wallet balances",
|
||||
"route_type": "bridge + public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Destination pool is verified in deployment-status.json.",
|
||||
"Route is structurally valid but expected to be depth-constrained at the final PMM step."
|
||||
],
|
||||
"rank": "secondary",
|
||||
"ranking_note": "Bridge plus mainnet PMM exit; final depth constrained by shallow public cW/canonical pools.",
|
||||
"bridge_readiness": {
|
||||
"symbol": "cUSDT",
|
||||
"canonical_token": "0x93E66202A11B1772E55407B32B44e5Cd8eda7f22",
|
||||
"mainnet_selector": 5009297550715157269,
|
||||
"l1_bridge": "0x152ed3e9912161b76bdfd368d0c84b7c31c10de7",
|
||||
"l2_bridge": "0x2bF74583206A49Be07E0E8A94197C12987AbD7B5",
|
||||
"status": "live-read",
|
||||
"l1_destination_receiver": "0x2bf74583206a49be07e0e8a94197c12987abd7b5",
|
||||
"l1_destination_enabled": true,
|
||||
"fee_quote_1_token_wei": "1000009600000000",
|
||||
"mainnet_mirrored_token": "0xaf5017d0163ecb99d9b5d94e3b4d7b09af44d8ae",
|
||||
"corridor_ready": true,
|
||||
"notes": [
|
||||
"Read-only mainnet corridor verification is wallet-specific and uses the same wallet as bridge recipient for fee preflight.",
|
||||
"This confirms L1 destination wiring, fee quoting, and L2 canonical-to-mirrored mapping for the canonical v1 USD assets.",
|
||||
"It does not substitute for a live bridge canary."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdc-direct-usdc",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDC",
|
||||
"source_action": "Swap cWUSDC directly into USDC on Ethereum",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "USDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "public DEX exit",
|
||||
"status": "live-read",
|
||||
"notes": [
|
||||
"Wallet holds live cWUSDC on mainnet.",
|
||||
"Aave-postable USDC is an approved terminal state after direct swap."
|
||||
],
|
||||
"rank": "primary",
|
||||
"ranking_note": "Direct mainnet cW to canonical stable exit with verified public PMM pool."
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-direct-usdt",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDT",
|
||||
"source_action": "Swap cWUSDT directly into USDT on Ethereum",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "USDT",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"final_asset": "Ethereum USDT / approved external stable wallet balances",
|
||||
"route_type": "public DEX exit",
|
||||
"status": "live-read",
|
||||
"notes": [
|
||||
"Wallet holds live cWUSDT on mainnet.",
|
||||
"Direct exit exists, but pool depth is small relative to wallet inventory."
|
||||
],
|
||||
"rank": "primary",
|
||||
"ranking_note": "Direct mainnet cW to canonical stable exit with verified public PMM pool."
|
||||
},
|
||||
{
|
||||
"corridor_id": "eth-cwusdt-via-cwusdc-to-usdc",
|
||||
"source_chain": "1",
|
||||
"source_asset": "cWUSDT",
|
||||
"source_action": "Swap cWUSDT to cWUSDC, then cWUSDC to USDC",
|
||||
"bridge": "none",
|
||||
"destination_chain": "1",
|
||||
"destination_asset": "cWUSDC then USDC",
|
||||
"final_exit_surface": "Ethereum DODO PMM 0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB + direct cWUSDC/USDC pool",
|
||||
"final_asset": "Ethereum USDC / approved external stable wallet balances / Aave-postable USDC",
|
||||
"route_type": "multi-step public DEX exit",
|
||||
"status": "simulated",
|
||||
"notes": [
|
||||
"Fallback route only; the cWUSDT/cWUSDC pool is deep, but the final cWUSDC/USDC exit remains the limiting step."
|
||||
],
|
||||
"rank": "experimental",
|
||||
"ranking_note": "Fallback or partially verified route."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"policy_name": "immediate_liquidity_growth_policy",
|
||||
"version": "2.0.0",
|
||||
"generated_by": "codex",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"objective": [
|
||||
"increase_direct_exit_capacity",
|
||||
"preserve_legacy_extraction_rail",
|
||||
"deploy_idle_canonical_stable",
|
||||
"compound_v2_direct_exit_depth",
|
||||
"retain_canonical_wallet_cash",
|
||||
"gate_debt_leverage_until_readiness"
|
||||
],
|
||||
"priority_order": [
|
||||
"relay_gas_health",
|
||||
"matched_add_cwusdc_v2_usdc",
|
||||
"legacy_cwusdc_to_usdc_extraction",
|
||||
"matched_add_cwusdt_v2_usdt",
|
||||
"cross_pair_support",
|
||||
"usdc_to_usdt_rotation_only_if_unlocking_progress"
|
||||
],
|
||||
"thresholds": {
|
||||
"legacy_usdc_quote_reserve_pause": 100.0,
|
||||
"legacy_usdc_quote_reserve_low": 200.0,
|
||||
"legacy_usdc_extract_default_bps": 500,
|
||||
"legacy_usdc_extract_low_depth_bps": 200,
|
||||
"legacy_usdc_extract_hard_bps": 1000,
|
||||
"legacy_usdt_extract_default_bps": 300,
|
||||
"legacy_usdt_extract_hard_bps": 500,
|
||||
"usdc_to_usdt_rotation_max_wallet_bps": 1500,
|
||||
"min_mainnet_eth_for_relay_and_support_tx_wei": "4000000000000000",
|
||||
"mainnet_legacy_usdc_pool": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"mainnet_legacy_usdt_pool": "0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC",
|
||||
"mainnet_v2_usdc_pool": "0xf633D2617316096e876E9C693111B8e76CE95302",
|
||||
"mainnet_v2_usdt_pool": "0x983D9ac22967209821C908e95FeACC37baA6fECA",
|
||||
"mainnet_v2_cross_pool": "0x75de278142F153Ac47646a7bb7Ded3317a3bDBE7"
|
||||
},
|
||||
"assets": {
|
||||
"mainnet": {
|
||||
"usdc": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
||||
"usdt": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
|
||||
"weth": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
"cwusdc_legacy": "0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a",
|
||||
"cwusdt_legacy": "0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE",
|
||||
"cwusdc_v2": "0x3398ff0Bc56Fe3597E12BE6b191Cc92f10Eae53c",
|
||||
"cwusdt_v2": "0x7E8FF0DcC974F290a29968e9350800a6df674447"
|
||||
},
|
||||
"chain138": {
|
||||
"link": "0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03",
|
||||
"weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
"cusdc_v2": "0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d",
|
||||
"cusdt_v2": "0x9FBfab33882Efe0038DAa608185718b772EE5660"
|
||||
}
|
||||
},
|
||||
"capital_retention": {
|
||||
"retain_bps_early": 3000,
|
||||
"redeploy_bps_early": 7000,
|
||||
"retain_bps_mid": 4000,
|
||||
"redeploy_bps_mid": 6000,
|
||||
"retain_bps_mature": 5000,
|
||||
"redeploy_bps_mature": 5000,
|
||||
"min_wallet_usdc_raw": 25000000,
|
||||
"min_wallet_usdt_raw": 5000000
|
||||
},
|
||||
"stage_thresholds": {
|
||||
"early_direct_exit_usd": 1000,
|
||||
"mid_direct_exit_usd": 10000,
|
||||
"mature_direct_exit_usd": 100000
|
||||
},
|
||||
"pricing_guardrails": {
|
||||
"max_cwusdc_usdc_deviation_bps": 50,
|
||||
"max_cwusdt_usdt_deviation_bps": 75,
|
||||
"pause_on_deviation_bps": 100
|
||||
},
|
||||
"debt_leverage": {
|
||||
"enabled": false,
|
||||
"turn_on_min_wallet_canonical_usd": 25000,
|
||||
"turn_on_min_direct_exit_usd": 100000,
|
||||
"turn_on_min_successful_cycles": 25,
|
||||
"turn_on_max_price_deviation_bps": 100,
|
||||
"turn_on_required_relays": [
|
||||
"mainnet-cw",
|
||||
"mainnet-weth"
|
||||
],
|
||||
"max_initial_leverage_multiple": 1.25,
|
||||
"max_mid_leverage_multiple": 1.5,
|
||||
"max_mature_leverage_multiple": 2.0,
|
||||
"default_gross_pct": 0.29,
|
||||
"default_flash_fee_pct": 0.09,
|
||||
"default_gas_pct": 0.1,
|
||||
"default_liquidity_pct": 0.01,
|
||||
"min_profit_pct": 0.05
|
||||
},
|
||||
"actions": {
|
||||
"recover_relay_gas": {
|
||||
"script": "scripts/deployment/recover-relay-gas.sh",
|
||||
"mode": "weth_rescue",
|
||||
"default_rescue_weth_wei": "5000000000000000"
|
||||
},
|
||||
"matched_add_cwusdc_v2_usdc": {
|
||||
"script": "scripts/deployment/add-mainnet-public-dodo-cw-liquidity.sh",
|
||||
"pair": "cwusdcv2-usdc",
|
||||
"mode": "matched"
|
||||
},
|
||||
"matched_add_cwusdt_v2_usdt": {
|
||||
"script": "scripts/deployment/add-mainnet-public-dodo-cw-liquidity.sh",
|
||||
"pair": "cwusdtv2-usdt",
|
||||
"mode": "matched"
|
||||
},
|
||||
"extract_legacy_usdc": {
|
||||
"script": "scripts/deployment/run-mainnet-public-dodo-cw-swap.sh",
|
||||
"pair": "cwusdc-usdc",
|
||||
"direction": "base-to-quote"
|
||||
},
|
||||
"extract_legacy_usdt": {
|
||||
"script": "scripts/deployment/run-mainnet-public-dodo-cw-swap.sh",
|
||||
"pair": "cwusdt-usdt",
|
||||
"direction": "base-to-quote"
|
||||
},
|
||||
"bridge_canonical_to_mainnet_cw": {
|
||||
"script": "scripts/bridge/bridge-canonical-token-to-mainnet-cw.sh"
|
||||
},
|
||||
"growth_cycle_with_retention": {
|
||||
"script": "scripts/deployment/run-growth-cycle-with-retention.sh",
|
||||
"bridge_wait_seconds": 60,
|
||||
"bridge_poll_seconds": 5
|
||||
},
|
||||
"growth_stage_report": {
|
||||
"script": "scripts/verify/build-growth-stage-report.sh"
|
||||
},
|
||||
"growth_pricing_guardrails": {
|
||||
"script": "scripts/verify/check-growth-pricing-guardrails.sh"
|
||||
},
|
||||
"retained_capital_report": {
|
||||
"script": "scripts/verify/build-retained-capital-report.sh"
|
||||
},
|
||||
"leverage_readiness_report": {
|
||||
"script": "scripts/verify/build-leverage-readiness-report.sh"
|
||||
},
|
||||
"debt_leverage_cycle": {
|
||||
"script": "scripts/deployment/run-debt-leverage-cycle.sh"
|
||||
}
|
||||
},
|
||||
"loop_defaults": {
|
||||
"simulation_rounds_default": 250,
|
||||
"simulation_rate_bps": [
|
||||
200,
|
||||
500,
|
||||
1000
|
||||
],
|
||||
"deploy_idle_canonical_stable": true,
|
||||
"prefer_usdc_loop": true
|
||||
},
|
||||
"mev_assist": {
|
||||
"available": true,
|
||||
"path": "MEV_Bot/mev-platform",
|
||||
"can_help_with": [
|
||||
"private_or_sequenced_execution_surfaces",
|
||||
"gas_and_inclusion_observability",
|
||||
"state_ingestion_and_route_health",
|
||||
"execution_timing_and_replay"
|
||||
],
|
||||
"cannot_replace": [
|
||||
"canonical_quote_side_liquidity",
|
||||
"bridge_inventory",
|
||||
"actual_stable_capital_growth"
|
||||
],
|
||||
"use_policy": "optional_execution_quality_assist_only"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"description": "Bootstrap seed policy for the universal GRU v2 public Wave 1 DODO PMM operator. These values are conservative operator defaults, not live market guarantees. Review and refresh before execute.",
|
||||
"defaults": {
|
||||
"fee_bps": 3,
|
||||
"k": "500000000000000000",
|
||||
"open_twap": false,
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"symbol_defaults": {
|
||||
"cWUSDT": {
|
||||
"initial_price_e18": "1000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWUSDC": {
|
||||
"initial_price_e18": "1000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWEURC": {
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWEURT": {
|
||||
"initial_price_e18": "1080000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWGBPC": {
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWGBPT": {
|
||||
"initial_price_e18": "1270000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWAUDC": {
|
||||
"initial_price_e18": "660000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWJPYC": {
|
||||
"initial_price_e18": "6700000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWCHFC": {
|
||||
"initial_price_e18": "1110000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWCADC": {
|
||||
"initial_price_e18": "740000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "100000000",
|
||||
"mint_base_amount_raw": "100000000"
|
||||
},
|
||||
"cWXAUC": {
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "1000000",
|
||||
"mint_base_amount_raw": "1000000"
|
||||
},
|
||||
"cWXAUT": {
|
||||
"initial_price_e18": "3200000000000000000000",
|
||||
"price_mode": "bootstrap_reference",
|
||||
"base_amount_raw": "1000000",
|
||||
"mint_base_amount_raw": "1000000"
|
||||
}
|
||||
},
|
||||
"pair_overrides": {}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:35Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"direct_exit_support_fraction": "0.05",
|
||||
"target_exit_usd": [
|
||||
25000,
|
||||
100000,
|
||||
250000,
|
||||
1000000
|
||||
],
|
||||
"default_target_exit_usd": 100000,
|
||||
"default_sweep_raw": 1000000,
|
||||
"sweep_slippage_bps": 100,
|
||||
"notes": [
|
||||
"Target exit USD is translated into required usable-side reserves under the 5% direct-exit heuristic.",
|
||||
"All deployment wrappers are dry-run by default and require an explicit --execute flag for mutations."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:47Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"lp_withdrawal": {
|
||||
"default_slippage_bps": 100,
|
||||
"test_share_divisor": 1000,
|
||||
"deadline_seconds": 3600,
|
||||
"tranche_percentages": [
|
||||
1,
|
||||
5,
|
||||
10,
|
||||
25,
|
||||
50,
|
||||
100
|
||||
]
|
||||
},
|
||||
"bridge_canary": {
|
||||
"human_amount": "1",
|
||||
"expected_amount_raw": "1000000",
|
||||
"poll_interval_seconds": 15,
|
||||
"timeout_seconds": 900
|
||||
},
|
||||
"mainnet_exit": {
|
||||
"raw_sizes": [
|
||||
1000000,
|
||||
10000000
|
||||
],
|
||||
"default_slippage_bps": 100
|
||||
},
|
||||
"notes": [
|
||||
"All flows are dry-run by default unless the underlying script already supports an explicit execute flag.",
|
||||
"Thresholds are intentionally conservative and operator-oriented."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:10Z",
|
||||
"status": "inferred",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"sizes_usd": [
|
||||
10000,
|
||||
25000,
|
||||
50000,
|
||||
100000
|
||||
],
|
||||
"thresholds": {
|
||||
"max_simulated_slippage_pct": 5.0,
|
||||
"max_fee_pct": 1.0,
|
||||
"max_bridge_latency_seconds": 1800,
|
||||
"max_operational_steps": 3
|
||||
},
|
||||
"notes": [
|
||||
"These thresholds are for dry-run and simulation gating only.",
|
||||
"Any route with manual-required bridge steps is automatically capped unless bridged live in a separate operator workflow."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"generated_at": "2026-04-16T02:03:19Z",
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"status": "inferred",
|
||||
"buckets": {
|
||||
"gas_reserve": {
|
||||
"purpose": "Per-chain native gas needed to keep read/write optionality alive.",
|
||||
"minimum_floor_usd": 25,
|
||||
"movement_rule": "May top up from stable working capital only after operator review."
|
||||
},
|
||||
"stable_working_capital": {
|
||||
"purpose": "Assets intentionally used for controlled extraction or collateral pilot workflows.",
|
||||
"minimum_floor_usd": 250000,
|
||||
"movement_rule": "Use only through approved corridors with ledgered outputs."
|
||||
},
|
||||
"bridge_inventory": {
|
||||
"purpose": "Assets whose main role is to move value between Chain 138 and public chains.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Use only when route health is green and fallback exists."
|
||||
},
|
||||
"lp_reserve": {
|
||||
"purpose": "LP claims that currently anchor internal stable liquidity.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "Planned partial or emergency full only; no ad hoc removal."
|
||||
},
|
||||
"non_core_wrappers": {
|
||||
"purpose": "Wrapped or synthetic assets without near-term reliable canonical exits.",
|
||||
"minimum_floor_usd": 0,
|
||||
"movement_rule": "Do not include in routine extraction forecasts."
|
||||
},
|
||||
"protected_reserve": {
|
||||
"purpose": "Inventory intentionally excluded from routine extraction until stronger public depth exists.",
|
||||
"minimum_floor_usd": 1000000,
|
||||
"movement_rule": "No movement under this pack; manual governance only."
|
||||
}
|
||||
},
|
||||
"wallet_roles": {
|
||||
"current_state": [
|
||||
{
|
||||
"wallet": "0x4A666F96fC8764181194447A7dFdb7d471b301C8",
|
||||
"role": "mixed-use / overconcentrated",
|
||||
"status": "live-read",
|
||||
"notes": "Current state collapses reserve, bridge inventory, LP custody, and extraction inventory into one wallet."
|
||||
}
|
||||
],
|
||||
"target_state": [
|
||||
{
|
||||
"role": "execution",
|
||||
"status": "manual-required",
|
||||
"notes": "Dedicated working wallet for approved exits only."
|
||||
},
|
||||
{
|
||||
"role": "reserve",
|
||||
"status": "manual-required",
|
||||
"notes": "Protected reserve wallet with no routine route execution."
|
||||
},
|
||||
{
|
||||
"role": "external-canonical-stable",
|
||||
"status": "manual-required",
|
||||
"notes": "Clean landing wallet for realized USDC/USDT only."
|
||||
},
|
||||
{
|
||||
"role": "testing",
|
||||
"status": "manual-required",
|
||||
"notes": "Low-balance wallet for corridor rehearsal and approvals."
|
||||
}
|
||||
]
|
||||
},
|
||||
"movement_rules": [
|
||||
"No asset movement from protected reserve to execution wallet without manual operator sign-off.",
|
||||
"Realized canonical stable balances should not be mixed with bridge inventory or non-core wrappers.",
|
||||
"LP reserve withdrawals should follow the stable LP runbook and preserve reserve floor assumptions."
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user