- Changed CCIPWETH10Bridge address from `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` to `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` in various deployment documents and scripts. - Ensured consistency in bridge configuration and verification steps for ChainID 138 and Mainnet. Made-with: Cursor
65 lines
3.6 KiB
Markdown
65 lines
3.6 KiB
Markdown
# Executor Allowlist Matrix
|
|
|
|
**Purpose:** Single source of truth for canonical addresses and permitted call graph for the Chain 138 → Ethereum Mainnet export path. Reference this in contract NatSpec and the CCIP-live runbook.
|
|
|
|
---
|
|
|
|
## Table 1 — Canonical addresses
|
|
|
|
### Chain 138 canonical inputs
|
|
|
|
Used only by StrategyExecutor138 / TreasuryVault as allowed tokens.
|
|
|
|
| Symbol | Address (checksummed) |
|
|
| ----------- | -------------------------------------------------- |
|
|
| cUSDC_138 | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` |
|
|
| cUSDT_138 | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` |
|
|
| WETH9_138 | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` |
|
|
| WETH10_138 | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` |
|
|
|
|
### Ethereum Mainnet canonical outputs
|
|
|
|
Used only by ReceiverExecutorMainnet for swaps/unwrap.
|
|
|
|
| Symbol | Address (checksummed) |
|
|
| -------------- | -------------------------------------------------- |
|
|
| WETH9_mainnet | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` |
|
|
| USDC_mainnet | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` |
|
|
| USDT_mainnet | `0xdAC17F958D2ee523a2206206994597C13D831ec7` |
|
|
|
|
### CCIP core
|
|
|
|
| Role | Chain | Address (checksummed) |
|
|
| ----------------------- | ------- | -------------------------------------------------- |
|
|
| CCIP Router | Mainnet | `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D` |
|
|
| CCIP Router | 138 | `0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817` |
|
|
| CCIPWETH9 Bridge | 138 | `0xcacfd227A040002e49e2e01626363071324f820a` |
|
|
| Ethereum Mainnet selector (decimal) | — | `5009297550715157269` |
|
|
|
|
---
|
|
|
|
## Table 2 — Permitted call graph
|
|
|
|
| Callee | Caller(s) | Purpose |
|
|
| ----------------------- | ------------------------------------------------------------------------- | ------- |
|
|
| TreasuryVault | StrategyExecutor138, CcipBridgeAdapter138, (optional LPManager) | requestTransfer / pull for harvest, rebalance, export |
|
|
| TreasuryVault | Admin only | Config: modules, token allowlist, caps |
|
|
| StrategyExecutor138 | Keeper / bot or multisig | harvestFees, rebalanceLp, exportToMainnet |
|
|
| StrategyExecutor138 | Admin only | ExportPolicy, router/LP allowlist |
|
|
| CcipBridgeAdapter138 | StrategyExecutor138 only | sendWeth9ToMainnet(amount, minAmount, deadline) |
|
|
| ReceiverExecutorMainnet | CCIP Router (or bridge callback) | Receive CCIP transfer (WETH9) |
|
|
| ReceiverExecutorMainnet | Keeper (optional) | swap/unwrap to USDC, USDT, ETH |
|
|
|
|
---
|
|
|
|
## Table 3 — Token flow
|
|
|
|
| Stage | Token(s) allowed |
|
|
| ------------------------ | ---------------- |
|
|
| Leave TreasuryVault | cUSDC_138, cUSDT_138, WETH9_138, WETH10_138 (canonical 138 list only) |
|
|
| Sent via CcipBridgeAdapter138 | WETH9_138 only |
|
|
| Received on Mainnet (ReceiverExecutorMainnet) | WETH9_mainnet only (from CCIP) |
|
|
| Swap/unwrap on Mainnet | WETH9_mainnet, USDC_mainnet, USDT_mainnet, ETH (hardcoded addresses only) |
|
|
|
|
No calldata-provided token or receiver addresses for export or swap destinations.
|