feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault. - Token-aggregation service routes, planner, chain config, relay env templates. - Config snapshots and multi-chain deployment markdown updates. - gitignore services/btc-intake/dist/ (tsc output); do not track dist. Run forge build && forge test before deploy (large solc graph). Made-with: Cursor
This commit is contained in:
@@ -29,14 +29,14 @@ contract DeployEnhancedSwapRouter is Script {
|
||||
address constant CHAIN138_USDC = 0x71D6687F38b93CCad569Fa6352c876eea967201b;
|
||||
address constant CHAIN138_DAI_PLACEHOLDER = 0x6B175474E89094C44Da98b954EedeAC495271d0F;
|
||||
|
||||
// Chain 138 live DODO pool map (2026-03-26)
|
||||
// Chain 138 live DODO pool map (2026-04-02 corrected stable stack)
|
||||
address constant CHAIN138_cUSDT = 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22;
|
||||
address constant CHAIN138_cUSDC = 0xf22258f57794CC8E06237084b353Ab30fFfa640b;
|
||||
address constant CHAIN138_cEURT = 0xdf4b71c61E5912712C1Bdd451416B9aC26949d72;
|
||||
address constant CHAIN138_cXAUC = 0x290E52a8819A4fbD0714E517225429aA2B70EC6b;
|
||||
address constant CHAIN138_POOL_CUSDTCUSDC = 0xff8d3b8fDF7B112759F076B69f4271D4209C0849;
|
||||
address constant CHAIN138_POOL_CUSDTUSDT = 0x6fc60DEDc92a2047062294488539992710b99D71;
|
||||
address constant CHAIN138_POOL_CUSDCUSDC = 0x0309178Ae30302D83C76d6DD402a684ef3160eeC;
|
||||
address constant CHAIN138_POOL_CUSDTCUSDC = 0x9e89bAe009adf128782E19e8341996c596ac40dC;
|
||||
address constant CHAIN138_POOL_CUSDTUSDT = 0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66;
|
||||
address constant CHAIN138_POOL_CUSDCUSDC = 0xc39B7D0F40838cbFb54649d327f49a6DAC964062;
|
||||
address constant CHAIN138_POOL_CUSDT_XAU_PUBLIC = 0x1AA55E2001E5651349aFf5a63FD7a7ae44f0f1b0;
|
||||
address constant CHAIN138_POOL_CUSDC_XAU_PUBLIC = 0xEa9AC6357CaCB42a83b9082B870610363b177CbA;
|
||||
address constant CHAIN138_POOL_CEURT_XAU_PUBLIC = 0xba99bc1eAac164569d5aca96c806934dDaf970CF;
|
||||
@@ -171,6 +171,8 @@ contract DeployEnhancedSwapRouter is Script {
|
||||
_registerPair(router, CHAIN138_cUSDT, CHAIN138_cXAUC, CHAIN138_POOL_CUSDT_XAU_PUBLIC);
|
||||
_registerPair(router, CHAIN138_cUSDC, CHAIN138_cXAUC, CHAIN138_POOL_CUSDC_XAU_PUBLIC);
|
||||
_registerPair(router, CHAIN138_cEURT, CHAIN138_cXAUC, CHAIN138_POOL_CEURT_XAU_PUBLIC);
|
||||
_registerOptionalEnvPool(router, "CHAIN138_POOL_WETH_USDT", CHAIN138_WETH, CHAIN138_USDT);
|
||||
_registerOptionalEnvPool(router, "CHAIN138_POOL_WETH_USDC", CHAIN138_WETH, CHAIN138_USDC);
|
||||
|
||||
if (dodoPmmProvider != address(0)) {
|
||||
router.setDodoLiquidityProvider(dodoPmmProvider);
|
||||
@@ -205,6 +207,20 @@ contract DeployEnhancedSwapRouter is Script {
|
||||
console.log("WARNING: current Chain 138 DODO initialization is primarily for token-to-token pair mappings via swapTokenToToken().");
|
||||
}
|
||||
|
||||
function _registerOptionalEnvPool(
|
||||
EnhancedSwapRouter router,
|
||||
string memory envKey,
|
||||
address tokenA,
|
||||
address tokenB
|
||||
) internal {
|
||||
address pool = vm.envOr(envKey, address(0));
|
||||
if (pool == address(0)) {
|
||||
console.log("Optional pool env not set:", envKey);
|
||||
return;
|
||||
}
|
||||
_registerPair(router, tokenA, tokenB, pool);
|
||||
}
|
||||
|
||||
function _registerPair(
|
||||
EnhancedSwapRouter router,
|
||||
address tokenA,
|
||||
|
||||
Reference in New Issue
Block a user