chore: update deployment-status and validate-deployment-status
Made-with: Cursor
This commit is contained in:
@@ -1,10 +1,273 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"description": "Deployed graph: per-chain cW* addresses, anchor addresses, PMM pool existence and params. Gas-native rollout adds gasMirrors, gasPmmPools, gasReferenceVenues, and gasQuoteAddresses so compliant cW gas lanes can publish DODO PMM, Uniswap v3 reference, Balancer, Curve, and 1inch exposure state alongside the stable mesh.",
|
||||
"version": "1.3.0",
|
||||
"updated": "2026-04-17",
|
||||
"version": "1.4.1",
|
||||
"updated": "2026-04-20",
|
||||
"homeChainId": 138,
|
||||
"chains": {
|
||||
"138": {
|
||||
"name": "DeFi Oracle Meta Mainnet (Chain 138)",
|
||||
"anchorAddresses": {
|
||||
"USDT": "0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1",
|
||||
"USDC": "0x71D6687F38b93CCad569Fa6352c876eea967201b",
|
||||
"WETH": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
|
||||
},
|
||||
"bridgeAvailable": true,
|
||||
"pmmPools": [
|
||||
{
|
||||
"base": "cUSDT",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x9e89bAe009adf128782E19e8341996c596ac40dC",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cUSDT",
|
||||
"quote": "USDT",
|
||||
"poolAddress": "0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cUSDC",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xc39B7D0F40838cbFb54649d327f49a6DAC964062",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cEURC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x5efD4771e35B9A101Bc0f4E44905b3c77292D95D",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cEURT",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0xC479ad0c2333c7738DFA13Ef9E0d3eD2De53F191",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cGBPC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0xb7fe7C3B71580f9BcE496076dc8b0B4B40A06edd",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cGBPT",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x77aEfcd4E25eFf32A680057879fB176aF4a66838",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cAUDC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x034B89E3F050F48849139E37813EdFd048253876",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cJPYC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0xD6a83bb947Ea062580c220e03B37E44C9532FA2c",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cCHFC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x9fd00d9875cBd1b8F54F51e153ade0D7DC87f05B",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cCADC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0xf9dEd79Ff2a481C1c6aD6Bfb2114b488Aba567F5",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cXAUC",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0xDC4968F0B665ccDffBba6eB23902e95b5b3B097B",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cXAUT",
|
||||
"quote": "cUSDC",
|
||||
"poolAddress": "0x8C7874d1040377be410c1140A1B5E1B869fbBe30",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cEURC",
|
||||
"quote": "cEURT",
|
||||
"poolAddress": "0x0F2f82bf28e7844898BFABf35A5566681fC2f7ab",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cGBPC",
|
||||
"quote": "cGBPT",
|
||||
"poolAddress": "0x7B3CD08B46b7b1EAD9F5cB5AcEaf1Db298A39db5",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cXAUC",
|
||||
"quote": "cXAUT",
|
||||
"poolAddress": "0x89e0304B724E87F816A1c72e716949d4DbC9c4d5",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cUSDT",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xaE38a008Ba4Dbf8D9F141D03e9dC8f7Dbe0ce17c",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cUSDC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xAAE68830a55767722618E869882c6Ed064Cc1eb2",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cEURC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xbF534b5bc92b43DBC907Dedf3Fc3A23C571C2D77",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cEURT",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0x4a64c886cedF00db42ea5B946D6b304121ad9529",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cGBPC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xE4355CaF23B9487758A60e0BA43174A3Eed0Cb1D",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cGBPT",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xA55c322580Ae3C14DB6CFA8FbB264a99632186d8",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cAUDC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0x3068da5d0aB1E31100910e9c6FCEa72617d42151",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cJPYC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0x21C7ED2Ed7fD8A7518F75FFB63BB9029225766dD",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cCHFC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xc316038D686594f6eb5bb7fB87e58e2E4D1A137B",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cCADC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xEB8Fc45659A2b911527E2Cd484936C5266B9da9F",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cXAUC",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0x6fcfc82Ff1b795fD8F53eDdD04144F20c1669e38",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
},
|
||||
{
|
||||
"base": "cXAUT",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0x43fE1A62803C033a9777F48A1BbDd1d66331b1c3",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"1": {
|
||||
"name": "Ethereum Mainnet",
|
||||
"cwTokens": {
|
||||
@@ -43,8 +306,9 @@
|
||||
"poolAddress": "0x69776fc607e9edA8042e320e7e43f54d06c68f0E",
|
||||
"feeBps": 3,
|
||||
"k": 0,
|
||||
"role": "public_routing",
|
||||
"publicRoutingEnabled": true
|
||||
"role": "defense",
|
||||
"publicRoutingEnabled": false,
|
||||
"maxTradeSizeUnits": 2964298
|
||||
},
|
||||
{
|
||||
"base": "cWUSDT",
|
||||
@@ -189,7 +453,7 @@
|
||||
"cWETH": "0xf6dc5587e18f27adff60e303fdd98f35b50fa8a5"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WETH": "0xaa11000000000000000000000000000000000001",
|
||||
"WETH": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
||||
"USDC": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -197,30 +461,32 @@
|
||||
"familyKey": "eth_mainnet",
|
||||
"base": "cWETH",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xd011000000000000000000000000000000000001",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x746E5e7382603cbaff985C18262afd4f30C51e39",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "eth_mainnet",
|
||||
"base": "cWETH",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd012000000000000000000000000000000000001",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x94ee8EE32FCD86aCa362481160c5eEc1afa6C639",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -325,8 +591,8 @@
|
||||
"cWBTC": "0xcb7c00000000000000000000000000000000000a"
|
||||
},
|
||||
"anchorAddresses": {
|
||||
"USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
||||
"USDT": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
|
||||
"USDC": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
||||
"USDT": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"
|
||||
},
|
||||
"pmmPools": [
|
||||
{
|
||||
@@ -452,7 +718,7 @@
|
||||
{
|
||||
"base": "cWUSDC",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547",
|
||||
"poolAddress": "0x022a8835b5c8fd6714cE33c783a426398468702B",
|
||||
"feeBps": 3,
|
||||
"k": 500000000000000000,
|
||||
"role": "public_routing",
|
||||
@@ -461,7 +727,7 @@
|
||||
{
|
||||
"base": "cWUSDT",
|
||||
"quote": "USDT",
|
||||
"poolAddress": "0xFCB0b0Ac36d67EDBA91100c75C27De945357CD62",
|
||||
"poolAddress": "0x0630059fc9a629DABAC1244c9f021A33A71B098f",
|
||||
"feeBps": 3,
|
||||
"k": 500000000000000000,
|
||||
"role": "public_routing",
|
||||
@@ -503,7 +769,7 @@
|
||||
"cWETHL2": "0x95007ec50d0766162f77848edf7bdc4eba147fb4"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WETH": "0xaa2100000000000000000000000000000000000a",
|
||||
"WETH": "0x4200000000000000000000000000000000000006",
|
||||
"USDC": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -511,30 +777,32 @@
|
||||
"familyKey": "eth_l2",
|
||||
"base": "cWETHL2",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xd02100000000000000000000000000000000000a",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0xA9fC99fd6C1B665CC385156a088c637972e3d34A",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "eth_l2",
|
||||
"base": "cWETHL2",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd02200000000000000000000000000000000000a",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0xB018cdB90ec1EF6cf729Bc7DfF4330EE1D97474a",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -629,14 +897,14 @@
|
||||
"cWBTC": "0xcb7c000000000000000000000000000000000019"
|
||||
},
|
||||
"anchorAddresses": {
|
||||
"USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
||||
"USDT": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
|
||||
"USDC": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"USDT": "0x66e428c3f67a68878562e79A0234c1F83c208770"
|
||||
},
|
||||
"pmmPools": [
|
||||
{
|
||||
"base": "cWUSDT",
|
||||
"quote": "USDT",
|
||||
"poolAddress": "0xFCB0b0Ac36d67EDBA91100c75C27De945357CD62",
|
||||
"poolAddress": "0xb4F3d4C8995032690837543438ac40BA5cbfd8Fe",
|
||||
"feeBps": 3,
|
||||
"k": 500000000000000000,
|
||||
"role": "public_routing",
|
||||
@@ -645,7 +913,7 @@
|
||||
{
|
||||
"base": "cWUSDC",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547",
|
||||
"poolAddress": "0x72c50bb2c621a2C10E162776D0D210d3C9f8Ac02",
|
||||
"feeBps": 3,
|
||||
"k": 500000000000000000,
|
||||
"role": "public_routing",
|
||||
@@ -807,38 +1075,40 @@
|
||||
"cWCRO": "0x9b10eb0f77c45322dbd1fcb07176fd9a7609c164"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WCRO": "0xaa61000000000000000000000000000000000019",
|
||||
"USDT": "0x66e4286603D22FF153A6547700f37C7Eae42F8E2"
|
||||
"WCRO": "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",
|
||||
"USDT": "0x66e428c3f67a68878562e79A0234c1F83c208770"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
{
|
||||
"familyKey": "cro",
|
||||
"base": "cWCRO",
|
||||
"quote": "WCRO",
|
||||
"poolAddress": "0xd061000000000000000000000000000000000019",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x31a1F3fBe7C61936a9c639A355f6b735A53241A1",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "cro",
|
||||
"base": "cWCRO",
|
||||
"quote": "USDT",
|
||||
"poolAddress": "0xd062000000000000000000000000000000000019",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x0a1e33387d55F726233EDA0ee229047DF9145723",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1088,7 +1358,7 @@
|
||||
"cWBNB": "0x179034a08ac2c9c35d2e41239f68c79dca6f18fa"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WBNB": "0xaa31000000000000000000000000000000000038",
|
||||
"WBNB": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
|
||||
"USDT": "0x55d398326f99059fF775485246999027B3197955"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -1096,30 +1366,32 @@
|
||||
"familyKey": "bnb",
|
||||
"base": "cWBNB",
|
||||
"quote": "WBNB",
|
||||
"poolAddress": "0xd031000000000000000000000000000000000038",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x5183fd157BA046E50E65375136A83FC1BcD88184",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "bnb",
|
||||
"base": "cWBNB",
|
||||
"quote": "USDT",
|
||||
"poolAddress": "0xd032000000000000000000000000000000000038",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x5eb7c86c935A22d096D45c2A597B4a8f88Be06e5",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1387,7 +1659,7 @@
|
||||
"cWXDAI": "0x9f833b4f1012f52eb3317b09922a79c6edfca77d"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WXDAI": "0xaa71000000000000000000000000000000000064",
|
||||
"WXDAI": "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
|
||||
"USDC": "0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -1395,30 +1667,32 @@
|
||||
"familyKey": "xdai",
|
||||
"base": "cWXDAI",
|
||||
"quote": "WXDAI",
|
||||
"poolAddress": "0xd071000000000000000000000000000000000064",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x528579867e2914723029b18fD0E5798f3DB7D337",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "xdai",
|
||||
"base": "cWXDAI",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd072000000000000000000000000000000000064",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x6AC4D7E3d2Ef5d94744B3a5BC1f5cE18682383C0",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1514,8 +1788,8 @@
|
||||
"cWBTC": "0xcb7c000000000000000000000000000000000089"
|
||||
},
|
||||
"anchorAddresses": {
|
||||
"USDC": "0xc21223249CA28397B4B6541dfFaEcC539BfF0c59",
|
||||
"USDT": "0x66e4286603D22FF153A6547700f37C7Eae42F8E2"
|
||||
"USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
||||
"USDT": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
|
||||
},
|
||||
"pmmPools": [
|
||||
{
|
||||
@@ -1692,7 +1966,7 @@
|
||||
"cWPOL": "0x25980244aacecb6d8c4b887261ed27f87cb2fc73"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WPOL": "0xaa41000000000000000000000000000000000089",
|
||||
"WPOL": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
|
||||
"USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -1700,30 +1974,32 @@
|
||||
"familyKey": "pol",
|
||||
"base": "cWPOL",
|
||||
"quote": "WPOL",
|
||||
"poolAddress": "0xd041000000000000000000000000000000000089",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x381E9926115871066f777D69e6Ea4b25E390e1a4",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "pol",
|
||||
"base": "cWPOL",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd042000000000000000000000000000000000089",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x3ea5Dfb986BA869106FBE36eA829aCD2e6126f53",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1822,12 +2098,12 @@
|
||||
},
|
||||
"1111": {
|
||||
"name": "Wemix",
|
||||
"activationState": "deferred",
|
||||
"activationState": "planned_gas_scaffold",
|
||||
"cwTokens": {
|
||||
"cWBTC": "0xcb7c000000000000000000000000000000000457"
|
||||
},
|
||||
"anchorAddresses": {
|
||||
"USDC": "0xcebA9300f2b948710d2653dD7B07f33A8B32118C"
|
||||
"USDC": "0xE3F5a90F9cb311505cd691a46596599aA1A0AD7D"
|
||||
},
|
||||
"pmmPools": [],
|
||||
"bridgeAvailable": false,
|
||||
@@ -1835,8 +2111,8 @@
|
||||
"cWWEMIX": "0xc111000000000000000000000000000000000457"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WWEMIX": "0xaa91000000000000000000000000000000000457",
|
||||
"USDC": "0xaa1c000000000000000000000000000000000457"
|
||||
"WWEMIX": "0x7D72b22a74A216Af4a002a1095C8C707d6eC1C5f",
|
||||
"USDC": "0xE3F5a90F9cb311505cd691a46596599aA1A0AD7D"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
{
|
||||
@@ -2103,7 +2379,7 @@
|
||||
"cWETHL2": "0x2a0840e5117683b11682ac46f5cf5621e67269e3"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WETH": "0xaa21000000000000000000000000000000002105",
|
||||
"WETH": "0x4200000000000000000000000000000000000006",
|
||||
"USDC": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -2111,30 +2387,32 @@
|
||||
"familyKey": "eth_l2",
|
||||
"base": "cWETHL2",
|
||||
"quote": "WETH",
|
||||
"poolAddress": "0xd021000000000000000000000000000000002105",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x3722Ebb81e4Fb97E13A4675Da9db72D55Ed8e73a",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "eth_l2",
|
||||
"base": "cWETHL2",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd022000000000000000000000000000000002105",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x07B2b5A74CD846c4732a7F45DA25e6794c9EBC84",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2389,7 +2667,7 @@
|
||||
"cWETHL2": "0xe27be001bc55cb2a8ed5ba5a62c834ca135244a3"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WETH": "0xaa2100000000000000000000000000000000a4b1",
|
||||
"WETH": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
||||
"USDC": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -2676,7 +2954,7 @@
|
||||
"cWCELO": "0xb0fa7ec4123c7c275b3a89d9239569707ea3c66a"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WCELO": "0xaa8100000000000000000000000000000000a4ec",
|
||||
"WCELO": "0x2021B12D8138e2D63cF0895eccABC0DFc92416c6",
|
||||
"USDC": "0xcebA9300f2b948710d2653dD7B07f33A8B32118C"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -2684,30 +2962,32 @@
|
||||
"familyKey": "celo",
|
||||
"base": "cWCELO",
|
||||
"quote": "WCELO",
|
||||
"poolAddress": "0xd08100000000000000000000000000000000a4ec",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x7f84A510a4eeCf9AbCd498Fc5DE89112e8C8754d",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "celo",
|
||||
"base": "cWCELO",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd08200000000000000000000000000000000a4ec",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0xdBc8cAc647CEA82f402a0E7bcdb19865D54F85DF",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2801,6 +3081,29 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"651940": {
|
||||
"name": "ALL Mainnet (Alltra)",
|
||||
"activationState": "bridge_live_swap_inventory_pending",
|
||||
"anchorAddresses": {
|
||||
"WETH": "0x798F6762BB40d6801A593459d08F890603D3979C",
|
||||
"AUSDT": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
|
||||
"AUSDC": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881"
|
||||
},
|
||||
"documentedTokens": {
|
||||
"AUSDT": "0x015B1897Ed5279930bC2Be46F661894d219292A6",
|
||||
"USDT": "0x66D8Efa0AF63B0e84eb1Dd72bf00f00cd1e2234e",
|
||||
"USDC": "0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881",
|
||||
"WETH": "0x798F6762BB40d6801A593459d08F890603D3979C",
|
||||
"WALL": "0x2da2b8f961F161ab6320acB3377e2e844a3C3ce4",
|
||||
"HYDX": "0x0d9793861AEB9244AD1B34375a83A6730F6AdD38",
|
||||
"HYBX": "0x1839f77eBed7F388c7035f7061B4B8Ef0E72317a",
|
||||
"CHT": "0xE59Bb804F4884FcEA183a4A67B1bb04f4a4567bc",
|
||||
"AUDA": "0x690740f055A41FA7669f5a379Bf71B0cDF353073"
|
||||
},
|
||||
"bridgeAvailable": true,
|
||||
"pmmPools": [],
|
||||
"uniswapV2Pools": []
|
||||
},
|
||||
"43114": {
|
||||
"name": "Avalanche C-Chain",
|
||||
"cwTokens": {
|
||||
@@ -2980,7 +3283,7 @@
|
||||
"cWAVAX": "0xe1d4aee2ef8f48a20338935188a8fe7f7c7de7d0"
|
||||
},
|
||||
"gasQuoteAddresses": {
|
||||
"WAVAX": "0xaa5100000000000000000000000000000000a86a",
|
||||
"WAVAX": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",
|
||||
"USDC": "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"
|
||||
},
|
||||
"gasPmmPools": [
|
||||
@@ -2988,30 +3291,32 @@
|
||||
"familyKey": "avax",
|
||||
"base": "cWAVAX",
|
||||
"quote": "WAVAX",
|
||||
"poolAddress": "0xd05100000000000000000000000000000000a86a",
|
||||
"feeBps": 30,
|
||||
"k": 500000000000000000,
|
||||
"poolAddress": "0x19F7649Ef0C7D5e721BF63e4B383b1023200AF0C",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "wrapped_native",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"familyKey": "avax",
|
||||
"base": "cWAVAX",
|
||||
"quote": "USDC",
|
||||
"poolAddress": "0xd05200000000000000000000000000000000a86a",
|
||||
"feeBps": 30,
|
||||
"k": 350000000000000000,
|
||||
"poolAddress": "0x8607546F7f3D836Ceb048fb707E4C61A33401c77",
|
||||
"feeBps": 3,
|
||||
"k": "500000000000000000",
|
||||
"role": "public_routing",
|
||||
"poolType": "stable_quote",
|
||||
"venue": "dodo_pmm",
|
||||
"publicRoutingEnabled": false,
|
||||
"publicRoutingEnabled": true,
|
||||
"notes": [
|
||||
"placeholder_scaffold_not_live"
|
||||
"created_live_2026-04-21",
|
||||
"unseeded_pending_base_and_quote_liquidity"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
@@ -24,6 +24,7 @@ const PHASE1_CW = ['cWUSDT', 'cWUSDC'];
|
||||
const VALID_ROLES = ['defense', 'public_routing', 'truu_routing'];
|
||||
const VALID_REFERENCE_PROTOCOLS = ['uniswap_v3', 'balancer', 'curve', '1inch'];
|
||||
const VALID_NATIVE_REFERENCE_PROTOCOLS = ['uniswap_v3', 'balancer', 'curve'];
|
||||
const HOME_CHAIN_CANONICAL_PREFIXES = ['c'];
|
||||
|
||||
function looksPlaceholderAddress(address) {
|
||||
if (!address || typeof address !== 'string') return false;
|
||||
@@ -105,6 +106,7 @@ function validateUniswapV2Entries(chainId, pools, knownTokens, errors) {
|
||||
function main() {
|
||||
const status = loadJson(DEPLOYMENT_STATUS_PATH);
|
||||
const chains = status.chains || {};
|
||||
const homeChainId = String(status.homeChainId || '');
|
||||
const errors = [];
|
||||
|
||||
for (const [chainId, chain] of Object.entries(chains)) {
|
||||
@@ -119,7 +121,10 @@ function main() {
|
||||
const gasReferenceVenues = chain.gasReferenceVenues || [];
|
||||
const bridgeAvailable = chain.bridgeAvailable;
|
||||
|
||||
if (bridgeAvailable === true) {
|
||||
const isHomeChain = chainId === homeChainId;
|
||||
const skipPhase1Requirement = isHomeChain || chainId === '651940';
|
||||
|
||||
if (bridgeAvailable === true && !skipPhase1Requirement) {
|
||||
for (const sym of PHASE1_CW) {
|
||||
if (!cwTokens[sym] || typeof cwTokens[sym] !== 'string' || !cwTokens[sym].trim()) {
|
||||
errors.push(`Chain ${chainId} (${chain.name}): bridgeAvailable=true but cwTokens.${sym} missing or empty`);
|
||||
@@ -134,6 +139,19 @@ function main() {
|
||||
...Object.keys(gasQuoteAddresses),
|
||||
]);
|
||||
|
||||
if (isHomeChain) {
|
||||
for (const pool of [...pmmPools, ...pmmPoolsVolatile]) {
|
||||
const base = pool.base ?? pool.tokenIn;
|
||||
const quote = pool.quote ?? pool.tokenOut;
|
||||
if (typeof base === 'string' && HOME_CHAIN_CANONICAL_PREFIXES.some((prefix) => base.startsWith(prefix))) {
|
||||
knownTokens.add(base);
|
||||
}
|
||||
if (typeof quote === 'string' && HOME_CHAIN_CANONICAL_PREFIXES.some((prefix) => quote.startsWith(prefix))) {
|
||||
knownTokens.add(quote);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
validatePoolEntries(chainId, pmmPools, 'pmmPools', knownTokens, errors);
|
||||
validateUniswapV2Entries(chainId, uniswapV2Pools, knownTokens, errors);
|
||||
validatePoolEntries(chainId, pmmPoolsVolatile, 'pmmPoolsVolatile', knownTokens, errors);
|
||||
|
||||
Reference in New Issue
Block a user