Add Monad CCIP deploy scripts, relay hardening, and bridge contract updates.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m21s
CI/CD Pipeline / Lint and Format (push) Failing after 25s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m6s
Validation / validate-documentation (push) Failing after 16s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 13m52s

Includes Monad↔Chain138 CCIP proof/deploy/verify tooling, relay service guards,
bridge integration tweaks, and frontend ENS/network config follow-ups.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-06-13 12:52:49 -07:00
parent 78edb86c3b
commit 1ec308c3a0
26 changed files with 5292 additions and 79 deletions

View File

@@ -22,6 +22,7 @@ import {CCIPWETH10Bridge} from "../contracts/ccip/CCIPWETH10Bridge.sol";
* - Base (chainId 8453): Deploys all contracts
* - Arbitrum (chainId 42161): Deploys all contracts
* - Optimism (chainId 10): Deploys all contracts
* - Monad (chainId 143): Deploys all contracts (WMON as wrapped native; native MON CCIP fees if LINK unset)
*/
contract DeployAll is Script {
// Chain IDs
@@ -34,6 +35,13 @@ contract DeployAll is Script {
uint256 constant BASE = 8453;
uint256 constant ARBITRUM = 42161;
uint256 constant OPTIMISM = 10;
uint256 constant MONAD = 143;
// Canonical wrapped native on Monad mainnet (WMON)
address constant WMON_MAINNET = 0x754704Bc059F8C67012fEd69BC8A327a5aafb603;
// Chainlink CCIP router on Monad mainnet
address constant CCIP_ROUTER_MONAD_DEFAULT = 0x33566fE5976AAa420F3d5C64996641Fc3858CaDB;
uint64 constant MONAD_SELECTOR_DEFAULT = 8481857512324358265;
// CCIP Configuration per chain
struct CCIPConfig {
@@ -209,6 +217,12 @@ contract DeployAll is Script {
linkToken: vm.envAddress("CCIP_OPTIMISM_LINK_TOKEN"),
chainSelector: uint64(vm.envUint("OPTIMISM_SELECTOR"))
});
} else if (chainId == MONAD) {
return CCIPConfig({
router: vm.envOr("CCIP_MONAD_ROUTER", CCIP_ROUTER_MONAD_DEFAULT),
linkToken: vm.envOr("CCIP_MONAD_LINK_TOKEN", address(0)),
chainSelector: uint64(vm.envOr("MONAD_SELECTOR", uint256(MONAD_SELECTOR_DEFAULT)))
});
} else {
revert("Unsupported chain");
}
@@ -255,6 +269,16 @@ contract DeployAll is Script {
address weth9 = vm.envOr("WETH9_OPTIMISM", address(0));
address weth10 = vm.envOr("WETH10_OPTIMISM", address(0));
return WETHConfig({weth9: weth9, weth10: weth10});
} else if (chainId == MONAD) {
address weth9 = vm.envOr("WETH9_MONAD", address(0));
address weth10 = vm.envOr("WETH10_MONAD", address(0));
if (weth9 == address(0)) {
weth9 = WMON_MAINNET;
}
if (weth10 == address(0)) {
weth10 = WMON_MAINNET;
}
return WETHConfig({weth9: weth9, weth10: weth10});
} else {
revert("Unsupported chain");
}