chore: update submodule references and documentation
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- Marked submodules ai-mcp-pmm-controller, explorer-monorepo, and smom-dbis-138 as dirty to reflect recent changes. - Updated documentation to clarify operator script usage, including dotenv loading and task execution instructions. - Enhanced the README and various index files to provide clearer navigation and task completion guidance. Made-with: Cursor
This commit is contained in:
125
docs/11-references/13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md
Normal file
125
docs/11-references/13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# 13-node and full assets — bring-online checklist
|
||||
|
||||
**Last updated:** 2026-03-03
|
||||
**Purpose:** Phased checklist to bring r630-03…r630-13, 3× R750, 2× Dell 7920, and second UDM Pro online and into the documented architecture.
|
||||
|
||||
**Related:** [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) | [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md) | [R630_03_04_POWER_ON_ISSUES_AND_FIXES.md](../../reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
| Asset | Count | IP range | Primary doc / notes |
|
||||
|-------|-------|----------|---------------------|
|
||||
| UDM Pro #2 | 1 | 192.168.11.2 | This checklist |
|
||||
| R630 | 11 (03–13) | .13–.23 | r630-03/04: [R630_03_04_POWER_ON_ISSUES_AND_FIXES.md](../../reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md); 05–13: generic steps below |
|
||||
| GPU/AI tier (R750 or XE9680) | 3 or 2 | .24–.26 (R750) or .24–.25 (XE9680) | [XE9680_VS_R750_DECISION.md](XE9680_VS_R750_DECISION.md); this checklist Phase 3 |
|
||||
| Dell 7920 | 2 | .30–.31 | This checklist |
|
||||
|
||||
**Already online:** UDM Pro #1 (.1), r630-01 (.11), r630-02 (.12). **ML110 (.10):** Being repurposed to OPNsense/pfSense WAN aggregator; migrate all workloads off ml110 first (see [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md)). After repurpose, cluster has 2 Proxmox nodes (r630-01, r630-02) until r630-03+ join.
|
||||
|
||||
---
|
||||
|
||||
## Phase 0: Prep (no power-on)
|
||||
|
||||
- [ ] **IP and DNS:** Reserve and document 192.168.11.2 (UDM Pro #2), .24–.26 (R750), .30–.31 (7920). Update `config/ip-addresses.conf` and internal DNS.
|
||||
- [ ] **Cabling:** Complete 10G cabling per [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md) (R630s and R750s to XG #1 / XG #2).
|
||||
- [ ] **ML110 repurpose (OPNsense/pfSense):** Migrate all containers/VMs off ml110 to r630-01/r630-02; remove ml110 from cluster or reinstall. Install OPNsense or pfSense; add 8–12 GbE (6–10 WAN to Spectrum modems, 1–2 LAN to UDM Pros). See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md).
|
||||
- [ ] **Second UDM Pro:** Decide role (cold standby, warm standby, or separate segment). Plan WAN/LAN ports; WAN uplink from ML110 after repurpose.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Second UDM Pro
|
||||
|
||||
- [ ] Rack and power UDM Pro #2; connect 1G management to existing LAN.
|
||||
- [ ] Assign static IP 192.168.11.2 (or DHCP reservation); ensure it does not conflict with gateway .1.
|
||||
- [ ] If **standby:** Adopt in UniFi Controller; configure same LAN subnet and firewall rules; document failover procedure.
|
||||
- [ ] If **separate segment:** Configure separate VLAN/subnet and document routing.
|
||||
- [ ] Update [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md) with UDM Pro #2 role and IP.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: R630 nodes (r630-03 through r630-13)
|
||||
|
||||
### 2.1 r630-03 and r630-04 (detailed fixes)
|
||||
|
||||
Use the full issue list and fixes in **[R630_03_04_POWER_ON_ISSUES_AND_FIXES.md](../../reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md)**. Summary:
|
||||
|
||||
- [ ] **r630-03 (192.168.11.13):** Power on; fix cluster join, SSL certs (e.g. `pvecm updatecerts -f`), hostname in `/etc/hosts`, Proxmox services, firewall, and any storage/network issues per report. Run `./scripts/fix-ssl-certificate-error-596.sh 192.168.11.13` if needed.
|
||||
- [ ] **r630-04 (192.168.11.14):** Same as r630-03 using the report; verify `pvecm status` and web UI https://192.168.11.14:8006.
|
||||
|
||||
### 2.2 r630-05 through r630-13 (generic bring-online)
|
||||
|
||||
For each node **r630-N** (IP 192.168.11.(10+N), N=5..13):
|
||||
|
||||
- [ ] **Hardware:** Power on; verify 1G and 10G links (cabling checklist). Set hostname `r630-N` and management IP 192.168.11.(10+N).
|
||||
- [ ] **Proxmox:** Install Proxmox VE (same major version as cluster) if not already installed; ensure `/etc/hosts` has `192.168.11.(10+N) r630-N`.
|
||||
- [ ] **Cluster join:** On cluster master (e.g. r630-01 at 192.168.11.11, since ml110 is repurposed to OPNsense/pfSense), run `pvecm create join-info` (or get join info); on r630-N run `pvecm add <join-info>`. Verify `pvecm status`.
|
||||
- [ ] **SSL:** Run `pvecm updatecerts -f` if joining an existing cluster; restart `pveproxy pvedaemon`.
|
||||
- [ ] **Firewall / hardening:** Apply project firewall and SSH key scripts (e.g. `scripts/security/run-security-on-proxmox-hosts.sh`); add new host to script list.
|
||||
- [ ] **Document:** Add to `config/ip-addresses.conf`; update any runbooks that list cluster members.
|
||||
|
||||
**Order suggestion:** Bring r630-03 and r630-04 online first (using the detailed report), then r630-05…r630-13 in sequence to avoid quorum issues; odd number of nodes (e.g. 5, 7, 13) keeps quorum simple.
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: GPU/AI tier (3× R750 or 2× XE9680)
|
||||
|
||||
**Planned role:** GPU/AI (ML training, inference). See [XE9680_VS_R750_DECISION.md](XE9680_VS_R750_DECISION.md) for choosing 2× XE9680 vs 3× R750.
|
||||
|
||||
**If using 3× R750:**
|
||||
- [ ] **r750-01 (192.168.11.24):** Power on; connect 1G (mgmt) and 10G (to XG). Install Proxmox VE (or GPU stack); set hostname and IP; install GPUs (e.g. A6000, L40S); document GPU passthrough or container runtime.
|
||||
- [ ] **r750-02 (192.168.11.25), r750-03 (192.168.11.26):** Same as r750-01.
|
||||
- [ ] **Config:** Add `PROXMOX_HOST_R750_01`, `_02`, `_03` to `config/ip-addresses.conf`; update cabling checklist with port assignments.
|
||||
|
||||
**If using 2× XE9680 instead:** Assign .24–.25 to the two nodes; connect 100G/200G to fabric (or 10G to XG for mgmt). Document in inventory as GPU tier (XE9680); bring-online steps similar (OS/stack install, GPU drivers, networking).
|
||||
|
||||
- [ ] **Role:** Document GPU tier in architecture (R750 or XE9680); optional cluster join for Proxmox or standalone Kubernetes/ML stack.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Dell Precision 7920 workstations (2×)
|
||||
|
||||
- [ ] **workstation-01 (192.168.11.30):** Power on; connect 1G to management LAN; set static IP .30 (or DHCP reservation). Install OS and tools (admin/dev); optional 10G to XG if needed for large data.
|
||||
- [ ] **workstation-02 (192.168.11.31):** Same; IP .31.
|
||||
- [ ] **Document:** Add to inventory and network diagram; no Proxmox cluster join (workstations are clients).
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Post–bring-online
|
||||
|
||||
- [ ] **Quorum:** Verify `pvecm status` on all Proxmox nodes; confirm majority quorum (e.g. 7 of 13 for 13-node).
|
||||
- [ ] **Ceph (if applicable):** When adding R630/R750 to Ceph, follow [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md) Phase 2; add OSDs and configure cluster network on 10G.
|
||||
- [ ] **HA and fencing:** Configure fence_pve or IPMI for new nodes; add to HA groups per master plan.
|
||||
- [ ] **Automation:** Extend `scripts/security/run-security-on-proxmox-hosts.sh` and any backup/monitoring to include new host IPs.
|
||||
- [ ] **Runbooks:** Update PROXMOX_LOAD_BALANCING_RUNBOOK and migration scripts to include r750-01..03 and all r630 nodes.
|
||||
|
||||
---
|
||||
|
||||
## Quick reference — join cluster (generic)
|
||||
|
||||
```bash
|
||||
# On cluster master (r630-01; ml110 repurposed to OPNsense/pfSense)
|
||||
ssh root@192.168.11.11
|
||||
pvecm status
|
||||
# Get join info (one-time or per-node):
|
||||
# pvecm create join-info # or use existing join info
|
||||
|
||||
# On new node (e.g. r630-05 at 192.168.11.15)
|
||||
ssh root@192.168.11.15
|
||||
# Ensure /etc/hosts: 192.168.11.15 r630-05
|
||||
pvecm add <paste-join-info-from-master>
|
||||
pvecm updatecerts -f
|
||||
systemctl restart pveproxy pvedaemon
|
||||
# Verify
|
||||
pvecm status
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) — full asset list (R630, R750, 7920, UDM Pro x2, XG x2).
|
||||
- [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md) — VLANs and XG port mapping.
|
||||
- [R630_03_04_POWER_ON_ISSUES_AND_FIXES.md](../../reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md) — detailed fixes for r630-03 and r630-04.
|
||||
- [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md) — Ceph, HA, and phased implementation.
|
||||
144
docs/11-references/13_NODE_NETWORK_AND_CABLING_CHECKLIST.md
Normal file
144
docs/11-references/13_NODE_NETWORK_AND_CABLING_CHECKLIST.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 13-node + full inventory — network diagram and cabling checklist
|
||||
|
||||
**Last updated:** 2026-03-03
|
||||
**Purpose:** VLANs, logical topology, and physical cabling for R630s, R750s, 7920 workstations, 2× UDM Pro, and 2× UniFi XG 10G switches.
|
||||
|
||||
**Related:** [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) | [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. Logical topology (high level)
|
||||
|
||||
```
|
||||
[6–10 × Spectrum cable modems] (WAN)
|
||||
│
|
||||
▼
|
||||
[ML110 Gen9: OPNsense/pfSense] 8–12 GbE; multi-WAN → LAN
|
||||
│
|
||||
▼
|
||||
[UDM Pro #1] [UDM Pro #2] .1 (primary) .2 (HA)
|
||||
│ │
|
||||
└──────┬───────┘
|
||||
│ 1G management (VLAN 11)
|
||||
┌──────┴──────┐
|
||||
│ MGMT LAN │ 192.168.11.0/24
|
||||
└──────┬──────┘
|
||||
│
|
||||
┌───────────┼───────────┬────────────────┬─────────────────┐
|
||||
│ │ │ │ │
|
||||
[r630-01..13] [r750-01..03] [7920 x2] [NPMplus LXC, etc.]
|
||||
.11–.23 .24–.26 .30–.31 (existing IPs)
|
||||
│ │
|
||||
└───────────┴─────────────────────────────────────────────
|
||||
│
|
||||
[UniFi XG #1] ←──→ [UniFi XG #2] (10G backbone)
|
||||
10G Ceph/VLAN 10G Ceph/VLAN
|
||||
R630/R750 10G NICs connect to one or both XG switches
|
||||
```
|
||||
|
||||
**ML110:** No longer a Proxmox host. ML110 Gen9 runs OPNsense/pfSense as WAN aggregator (8–12 GbE) between cable modems and UDM Pros. See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md).
|
||||
|
||||
- **Management (1G):** All hosts and workstations use existing 1G LAN via UDM Pro; VLAN 11 (MGMT-LAN), 192.168.11.0/24.
|
||||
- **10G backbone:** Dedicated for Ceph cluster network and inter-node traffic. R630s and R750s use 10G NICs to the XG switches; dual-attach (one link per switch) for HA.
|
||||
|
||||
---
|
||||
|
||||
## 2. VLAN summary
|
||||
|
||||
| VLAN / purpose | Subnet | Devices | Notes |
|
||||
|---------------------|-------------------|----------------------------------------------|--------------------------|
|
||||
| MGMT-LAN (11) | 192.168.11.0/24 | UDM Pro(s), Proxmox hosts, R750s, 7920s, LXC | Current production LAN |
|
||||
| Ceph cluster (opt.) | e.g. 10.0.1.0/24 | R630/R750 10G interfaces only | Isolate storage traffic |
|
||||
| Ceph public (opt.) | 192.168.11.0/24 | Same as management if not split | Or separate subnet |
|
||||
|
||||
Ceph VLANs are optional; can run Ceph over management until a dedicated cluster network is defined.
|
||||
|
||||
---
|
||||
|
||||
## 3. IP allocation summary
|
||||
|
||||
| Asset | Count | IP range / example | Hostnames / role |
|
||||
|-------------|-------|---------------------------|-------------------------|
|
||||
| ML110 | 1 | .10 (LAN/mgmt after repurpose) | OPNsense/pfSense WAN aggregator (6–10 modems → UDM Pros) |
|
||||
| UDM Pro | 2 | .1 (primary), .2 (second) | Gateway / HA; WAN from ML110 |
|
||||
| R630 | 13 | .11–.23 | r630-01 … r630-13 (Proxmox) |
|
||||
| R750 | 3 | .24–.26 | r750-01, r750-02, r750-03 |
|
||||
| Dell 7920 | 2 | .30–.31 | workstation-01, -02 |
|
||||
| Existing | — | .36–.251 (see NETWORK_CONFIGURATION_MASTER) | LXC, NPMplus, RPC, etc. |
|
||||
|
||||
---
|
||||
|
||||
## 4. Cabling checklist — UniFi XG 10G switches (2×)
|
||||
|
||||
**Assumption:** Each R630 and R750 has at least one 10G NIC (or dual 10G). 7920 workstations: 10G optional.
|
||||
|
||||
### 4.1 Switch assignment
|
||||
|
||||
| Switch | Role | Ports 1–16 |
|
||||
|---------------|-------------------|------------|
|
||||
| **UniFi XG #1** | Primary 10G spine | R630s, R750s, optional 7920, link to XG #2 |
|
||||
| **UniFi XG #2** | Redundant 10G | Second 10G link from each node; link to XG #1 |
|
||||
|
||||
### 4.2 R630 (13 nodes) — 10G ports
|
||||
|
||||
| Node | IP (mgmt) | XG #1 port (suggested) | XG #2 port (suggested) | Notes |
|
||||
|---------|-------------|-------------------------|-------------------------|---------|
|
||||
| r630-01 | 192.168.11.11 | 1 | 1 | Already in use |
|
||||
| r630-02 | 192.168.11.12 | 2 | 2 | Already in use |
|
||||
| r630-03 | 192.168.11.13 | 3 | 3 | Power on and cable |
|
||||
| r630-04 | 192.168.11.14 | 4 | 4 | Power on and cable |
|
||||
| r630-05 | 192.168.11.15 | 5 | 5 | Bring online |
|
||||
| r630-06 | 192.168.11.16 | 6 | 6 | Bring online |
|
||||
| r630-07 | 192.168.11.17 | 7 | 7 | Bring online |
|
||||
| r630-08 | 192.168.11.18 | 8 | 8 | Bring online |
|
||||
| r630-09 | 192.168.11.19 | 9 | 9 | Bring online |
|
||||
| r630-10 | 192.168.11.20 | 10 | 10 | Bring online |
|
||||
| r630-11 | 192.168.11.21 | 11 | 11 | Bring online |
|
||||
| r630-12 | 192.168.11.22 | 12 | 12 | Bring online |
|
||||
| r630-13 | 192.168.11.23 | 13 | 13 | Bring online |
|
||||
|
||||
**Note:** If a node has only one 10G NIC, cable to XG #1 only; add second NIC later for XG #2.
|
||||
|
||||
### 4.3 R750 (3 nodes) — 10G ports
|
||||
|
||||
| Node | IP (mgmt) | XG #1 port | XG #2 port |
|
||||
|---------|-------------|------------|------------|
|
||||
| r750-01 | 192.168.11.24 | 14 | 14 |
|
||||
| r750-02 | 192.168.11.25 | 15 | 15 |
|
||||
| r750-03 | 192.168.11.26 | 16 | 16 |
|
||||
|
||||
### 4.4 Dell 7920 workstations (2) — optional 10G
|
||||
|
||||
| Workstation | IP (mgmt) | 10G cable |
|
||||
|-----------------|-------------|-----------------|
|
||||
| workstation-01 | 192.168.11.30 | Optional: XG #1 port (spare) |
|
||||
| workstation-02 | 192.168.11.31 | Optional: XG #1 port (spare) |
|
||||
|
||||
### 4.5 Inter-switch link
|
||||
|
||||
- **XG #1** port 15 or 16 ↔ **XG #2** port 15 or 16: 10G uplink between switches (if not already in use for R750).
|
||||
- Adjust port numbers above so one port per switch is reserved for the inter-switch link.
|
||||
|
||||
---
|
||||
|
||||
## 5. Management (1G) connectivity
|
||||
|
||||
- **UDM Pro #1:** Existing; gateway 192.168.11.1; all management and VM traffic.
|
||||
- **UDM Pro #2:** Connect to same LAN (192.168.11.0/24), assign 192.168.11.2; configure as standby or separate segment per design.
|
||||
- **R630 / R750:** 1G management NIC to existing LAN switch (or UDM Pro LAN ports). **ML110:** After repurpose, 8–12 GbE — 6–10 to cable modems (WAN), 1–2 to UDM Pro WAN ports (LAN).
|
||||
- **Dell 7920:** 1G to management LAN; static or DHCP reservation .30, .31.
|
||||
|
||||
---
|
||||
|
||||
## 6. Checklist summary
|
||||
|
||||
- [ ] Document which physical port on each R630/R750 is 1G (mgmt) vs 10G (Ceph).
|
||||
- [ ] Cable all 13 R630s to XG #1 (and XG #2 if dual 10G).
|
||||
- [ ] Cable 3× R750 to XG #1 (and XG #2 if dual 10G).
|
||||
- [ ] Optional: cable 2× 7920 to XG for high-throughput workloads.
|
||||
- [ ] Connect XG #1 ↔ XG #2 for redundant backbone.
|
||||
- [ ] Assign 192.168.11.2 to UDM Pro #2 and connect to LAN.
|
||||
- [ ] Update `config/ip-addresses.conf` and DNS for .24–.26 (R750), .30–.31 (7920), .2 (UDM Pro #2).
|
||||
- [ ] Configure Ceph cluster network (VLAN or subnet) on 10G interfaces when bringing nodes online.
|
||||
|
||||
See [13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md) for power-on and join-order.
|
||||
@@ -1,7 +1,7 @@
|
||||
# Address Matrix and Status — Correlated Reference
|
||||
|
||||
**Last Updated:** 2026-02-28
|
||||
**Purpose:** Single correlated matrix of all existing contract, token, and pool addresses with deployment status.
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Single correlated matrix of all existing contract, token, and pool addresses with deployment status. **On-chain verification (2026-03-04):** DODOPMMIntegration at `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` returns canonical cUSDT/cUSDC per [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) §8.
|
||||
**Sources:** CONTRACT_ADDRESSES_REFERENCE, CHAIN138_TOKEN_ADDRESSES, LIQUIDITY_POOLS_MASTER_MAP, DEPLOYED_COINS_TOKENS_AND_NETWORKS, env examples, PRE_DEPLOYMENT_CHECKLIST.
|
||||
|
||||
---
|
||||
@@ -29,9 +29,18 @@
|
||||
| LINK | Chainlink Token | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | 18 | ✅ | CCIP fees |
|
||||
| cUSDT | Compliant Tether USD | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 | ✅ | Compliant stablecoin |
|
||||
| cUSDC | Compliant USD Coin | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 | ✅ | Compliant stablecoin |
|
||||
| cEURC | Euro Coin (Compliant) | `0x8085961F9cF02b4d800A3c6d386D31da4B34266a` | 6 | ✅ | Compliant stablecoin |
|
||||
| cEURT | Tether EUR (Compliant) | `0xdf4b71c61E5912712C1Bdd451416B9aC26949d72` | 6 | ✅ | Compliant stablecoin |
|
||||
| cGBPC | Pound Sterling (Compliant) | `0x003960f16D9d34F2e98d62723B6721Fb92074aD2` | 6 | ✅ | Compliant stablecoin |
|
||||
| cGBPT | Tether GBP (Compliant) | `0x350f54e4D23795f86A9c03988c7135357CCaD97c` | 6 | ✅ | Compliant stablecoin |
|
||||
| cAUDC | Australian Dollar (Compliant) | `0xD51482e567c03899eecE3CAe8a058161FD56069D` | 6 | ✅ | Compliant stablecoin |
|
||||
| cJPYC | Japanese Yen (Compliant) | `0xEe269e1226a334182aace90056EE4ee5Cc8A6770` | 6 | ✅ | Compliant stablecoin |
|
||||
| cCHFC | Swiss Franc (Compliant) | `0x873990849DDa5117d7C644f0aF24370797C03885` | 6 | ✅ | Compliant stablecoin |
|
||||
| cCADC | Canadian Dollar (Compliant) | `0x54dBd40cF05e15906A2C21f600937e96787f5679` | 6 | ✅ | Compliant stablecoin |
|
||||
| cXAUC | Gold (Compliant) | `0x290E52a8819A4fbD0714E517225429aA2B70EC6b` | 6 | ✅ | Compliant |
|
||||
| cXAUT | Tether XAU (Compliant) | `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` | 6 | ✅ | Compliant |
|
||||
| — | Tether USDT (official, Chain 138) | `0x15DF1D5BFDD8Aa4b380445D4e3E9B38d34283619` | — | ✅ | Reference / mainnet-style |
|
||||
| XAU | Gold (anchor) | — | — | ❌ | Not deployed |
|
||||
| cEURT | Compliant EUR T | — | — | ❌ | Not deployed |
|
||||
|
||||
### 1.2 Core / registry / vault
|
||||
|
||||
@@ -96,7 +105,7 @@
|
||||
|
||||
| Contract / pool | Address | Status | Notes |
|
||||
|-----------------|---------|--------|-------|
|
||||
| DODOPMMIntegration | `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` | ✅ | Mock DVM |
|
||||
| DODOPMMIntegration | `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` | ✅ | Mock DVM; canonical cUSDT/cUSDC verified on-chain 2026-03-04 (EXPLORER_TOKEN_LIST_CROSSCHECK §8) |
|
||||
| DODOPMMProvider | `0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0` | ✅ | Pools registered |
|
||||
| Pool cUSDT/cUSDC | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | ✅ | Created |
|
||||
| Pool cUSDT/USDT | `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` | ✅ | Created |
|
||||
@@ -108,7 +117,7 @@
|
||||
|
||||
| Item | Address | Status | Notes |
|
||||
|------|---------|--------|-------|
|
||||
| TransactionMirror | From deploy script (e.g. `0xb5876547c52CaBf49d7f40233B6f6a140F403d25`) | ⏳ | Set TRANSACTION_MIRROR_ADDRESS in .env |
|
||||
| TransactionMirror | `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` | ✅ | Deployed 2026-02-27; set TRANSACTION_MIRROR_ADDRESS in .env |
|
||||
| Deployer / Admin | `0x4A666F96fC8764181194447A7dFdb7d471b301C8` | ✅ | EOA |
|
||||
|
||||
---
|
||||
@@ -119,13 +128,13 @@
|
||||
|
||||
| Category | Count | Status summary |
|
||||
|----------|-------|-----------------|
|
||||
| Tokens | 5 live, 2 not deployed (XAU, cEURT) | ✅ cUSDT, cUSDC, WETH, WETH10, LINK |
|
||||
| Tokens | 16 live (cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT, WETH, WETH10, LINK, ETH-USD); 1 not deployed (XAU) | ✅ See §1.1 |
|
||||
| Core / registry | 11+ | ✅ All deployed |
|
||||
| CCIP / bridge | 4 (1 deprecated) | ✅ Use 0x971c… WETH9 bridge |
|
||||
| Governance / deterministic | 9 | ✅ All deployed |
|
||||
| Channels / mirror / reserve / vault | 14+ | ✅ All deployed |
|
||||
| PMM / pools | 1 integration, 1 provider, 3 pools | ✅ Created; add liquidity to pools |
|
||||
| TransactionMirror | 1 | ⏳ Set from deploy output |
|
||||
| TransactionMirror | 1 | ✅ `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` |
|
||||
|
||||
### 2.2 Ethereum Mainnet (1)
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# CCIP 138 → Destination: Receiver Behavior by Chain and Token
|
||||
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Confirms for each destination chain and token whether the receiver **mints**, **receives-from-CCIP-and-forwards**, or **releases** (pre-fund required). Source: contract code and docs.
|
||||
|
||||
**Source contracts:** `smom-dbis-138/contracts/ccip/CCIPWETH9Bridge.sol`, `CCIPWETH10Bridge.sol`, `contracts/relay/CCIPRelayBridge.sol`; [07-ccip/CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md), [07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md), [07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md).
|
||||
|
||||
---
|
||||
|
||||
## 1. Summary: mechanism by chain and token
|
||||
|
||||
| Chain ID | Chain name | Token(s) | Receiver contract | Mechanism | Pre-fund required? |
|
||||
|----------|--------------|------------|----------------------------|-----------|---------------------|
|
||||
| **1** | Ethereum | WETH9, WETH10 | CCIPRelayBridge (Mainnet only) | **Release** from own balance (relay does not deliver tokens) | **Yes** |
|
||||
| **25** | Cronos | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** (native CCIP delivers token amounts to receiver) | No |
|
||||
| **56** | BSC | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **100** | Gnosis | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **137** | Polygon | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **10** | Optimism | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **42161**| Arbitrum One | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **8453** | Base | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **43114**| Avalanche | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **42220**| Celo | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
| **1111** | Wemix | WETH9, WETH10 | CCIPWETH9Bridge, CCIPWETH10Bridge | **Receive from CCIP + forward** | No |
|
||||
|
||||
**cW* (any supported chain, when deployed):** Token cWUSDT, cWUSDC (etc.). Receiver: **TwoWayTokenBridgeL2** (or CCIPReceiverCW). Mechanism: **Mint** (`ccipReceive` → `cW*.mint(recipient, amount)`). Pre-fund: No.
|
||||
*(Design only; deployment-status empty.)*
|
||||
|
||||
---
|
||||
|
||||
## 2. Why Mainnet (1) is different
|
||||
|
||||
- **138 → other chains (25, 56, 100, 137, 10, 42161, 8453, 43114, 42220, 1111):** Use **native Chainlink CCIP** end-to-end. The source bridge sends a message with `tokenAmounts` (WETH9/WETH10). The CCIP protocol locks tokens on 138 and **delivers** the token amounts to the **receiver contract** on the destination when the message is executed. The receiver is **CCIPWETH9Bridge** / **CCIPWETH10Bridge** (same code as on 138). In `ccipReceive` it does `IERC20(weth9).transfer(recipient, amount)` — i.e. it **forwards** the tokens it **received from the CCIP router** to the final recipient. So the receiver does **not** mint; it **receives from CCIP and forwards**. No pre-fund.
|
||||
|
||||
- **138 → Mainnet (1):** Uses a **custom relay** (not native CCIP token delivery). The relay service watches 138 for `MessageSent`, then calls **CCIPRelayRouter.relayMessage(CCIPRelayBridge, message)** on Mainnet. The **tokens are not** delivered by the CCIP protocol; only the message is relayed. So **CCIPRelayBridge**’s `ccipReceive` is called with the message, but the bridge **never receives** WETH from any router. It does `IERC20(weth9).transfer(recipient, amount)` from **its own balance**, so it must be **pre-funded with Mainnet WETH**.
|
||||
|
||||
**Code reference:**
|
||||
- `CCIPWETH9Bridge.sol` / `CCIPWETH10Bridge.sol`: `ccipReceive` → `IERC20(weth9).transfer(recipient, amount)` (receive from router + forward on native CCIP; release from balance on relay path).
|
||||
- `CCIPRelayBridge.sol`: same `transfer(recipient, amount)` but only called by relay; no token delivery → release only.
|
||||
|
||||
---
|
||||
|
||||
## 3. Tokens for which the receiver **mints** (no pre-fund)
|
||||
|
||||
| Token(s) | Chain(s) | Receiver | Mechanism |
|
||||
|---------------|----------|------------------------|-----------|
|
||||
| **cWUSDT, cWUSDC** (cW*) | 56, 100, 137, 10, 42161, 8453, 43114, 25, 1, etc. (when deployed) | TwoWayTokenBridgeL2 (or CCIPReceiverCW) | `ccipReceive` → `cW*.mint(recipient, amount)`; receiver has MINTER_ROLE |
|
||||
|
||||
**Source:** [CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md). Deployment status: design only; deployment-status.json empty.
|
||||
|
||||
---
|
||||
|
||||
## 4. Tokens for which the receiver **receives from CCIP and forwards** (no pre-fund)
|
||||
|
||||
| Token(s) | Chain(s) | Receiver | Mechanism |
|
||||
|------------|--------------------------------------------------------------|----------------------------------|-----------|
|
||||
| **WETH9, WETH10** | 25, 56, 100, 137, 10, 42161, 8453, 43114, 42220, 1111 | CCIPWETH9Bridge, CCIPWETH10Bridge | Native CCIP delivers token amounts to receiver; receiver `transfer(recipient, amount)` to forward. No mint. |
|
||||
|
||||
---
|
||||
|
||||
## 5. Tokens for which the receiver **releases** (pre-fund required)
|
||||
|
||||
| Token(s) | Chain | Receiver | Mechanism |
|
||||
|------------|-------|-------------------|-----------|
|
||||
| **WETH9, WETH10** | **1 (Ethereum Mainnet)** | CCIPRelayBridge | Relay calls `ccipReceive`; no token delivery. Bridge `transfer(recipient, amount)` from **own balance** → must be funded with Mainnet WETH. |
|
||||
|
||||
---
|
||||
|
||||
## 6. References
|
||||
|
||||
| Document | Use |
|
||||
|----------|-----|
|
||||
| [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md) | Routes that do not require bridge pre-funding |
|
||||
| [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md) | Full routes; 138→Mainnet WETH pre-fund prerequisite |
|
||||
| [07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md) | Mainnet relay and CCIPRelayBridge |
|
||||
| [07-ccip/CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md) | cW* mint-on-receive |
|
||||
| [07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) | Deploy CCIPWETH9/WETH10 per chain (Gnosis, Cronos, Celo, Wemix) |
|
||||
@@ -1,8 +1,8 @@
|
||||
# Contract Addresses Reference - ChainID 138
|
||||
|
||||
**Last Updated:** 2026-02-28
|
||||
**Last Updated:** 2026-03-04
|
||||
**Document Version:** 1.4
|
||||
**Status:** Active Documentation
|
||||
**Status:** Active Documentation. DODOPMMIntegration token addresses verified on-chain 2026-03-04 — see EXPLORER_TOKEN_LIST_CROSSCHECK §8.
|
||||
|
||||
---
|
||||
|
||||
@@ -93,8 +93,9 @@ Contracts deployed after chain initialization:
|
||||
|
||||
| Contract | Address | Status / Notes |
|
||||
|----------|---------|----------------|
|
||||
| **DODOPMMIntegration** | `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` | ✅ Deployed; **on-chain verified 2026-03-04:** `compliantUSDT()` = canonical cUSDT, `compliantUSDC()` = canonical cUSDC. See [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) §8. |
|
||||
| **TransactionMirror** | `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` (Chain 138; deployed 2026-02-27) | Set `TRANSACTION_MIRROR_ADDRESS` in `smom-dbis-138/.env`. Deploy: `./scripts/deployment/deploy-transaction-mirror-and-pmm-pool-after-txpool-clear.sh`. |
|
||||
| **DODO cUSDT/cUSDC pool** | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | Pending until CreateCUSDTCUSDCPool succeeds; same script deploys after mirror. See [REQUIRED_FIXES_AND_DEPLOYMENTS_STATUS](../03-deployment/REQUIRED_FIXES_AND_DEPLOYMENTS_STATUS.md). |
|
||||
| **DODO cUSDT/cUSDC pool** | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | ✅ Created (deploy-transaction-mirror-and-pmm-pool-after-txpool-clear.sh). See [REQUIRED_FIXES_AND_DEPLOYMENTS_STATUS](../03-deployment/REQUIRED_FIXES_AND_DEPLOYMENTS_STATUS.md). |
|
||||
|
||||
### Deployer / Admin (Chain 138)
|
||||
|
||||
@@ -203,5 +204,5 @@ Chain 138 WETH9 bridges (LINK fee and native ETH fee) have mainnet destination s
|
||||
|
||||
---
|
||||
|
||||
**Related:** [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) (correlated matrix and status) | [EXPLORER_AND_BLOCKSCAN_REFERENCE](EXPLORER_AND_BLOCKSCAN_REFERENCE.md) (correct explorer vs blockscan.com) | [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) | [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md) | [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md) | [TOKEN_MAPPING_AND_MAINNET_ADDRESSES](../07-ccip/TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md) (138↔Mainnet token mapping)
|
||||
**Related:** [DEPLOYER_CONTRACTS_INVENTORY_AND_VERIFICATION_STATUS](DEPLOYER_CONTRACTS_INVENTORY_AND_VERIFICATION_STATUS.md) (all contracts by deployer, network, verified status) | [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) (Explorer /tokens vs repo token lists) | [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) (correlated matrix and status) | [EXPLORER_AND_BLOCKSCAN_REFERENCE](EXPLORER_AND_BLOCKSCAN_REFERENCE.md) (correct explorer vs blockscan.com) | [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) | [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md) | [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md) | [TOKEN_MAPPING_AND_MAINNET_ADDRESSES](../07-ccip/TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md) (138↔Mainnet token mapping)
|
||||
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
# Deployed Tokens, Bridges, DODO/Uniswap LPs — Status & Complete Routing Map
|
||||
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Single reference for (1) deployed tokens/coins and bridges per destination network, (2) DODO and Uniswap LPs with addresses, and (3) a complete mapping of all possible routes for routing **to** and **from** each chain.
|
||||
|
||||
---
|
||||
|
||||
## 1. Executive summary
|
||||
|
||||
| Area | Status | Notes |
|
||||
|------|--------|-------|
|
||||
| **Chain 138 tokens** | ✅ Live | cUSDT, cUSDC, WETH, WETH10, LINK; 10 more compliant tokens deployable (cEURC, cEURT, cGBP*, cAUD*, cJPY*, cCHF*, cCAD*, cAUSDT). |
|
||||
| **Chain 138 DODO PMM** | ✅ Live | DODOPMMIntegration + 3 pools (cUSDT/cUSDC usable; cUSDT/USDT, cUSDC/USDC use mainnet addresses → no liquidity on 138). DODOPMMProvider deployed; routing cUSDT↔cUSDC live. |
|
||||
| **Chain 138 → destination bridges** | ✅ CCIP + Alltra | CCIP WETH9/WETH10 to Ethereum, BSC, Polygon, Arbitrum, Optimism, Avalanche, Cronos, **Celo + Gnosis (2026-03-04)**. Gnosis: 0x4ab39b5BaB7b463435209A9039bd40Cf241F5a82 (WETH9), 0xC15ACdBAC59B3C7Cb4Ea4B3D58334A4b143B4b44 (WETH10). AlltraAdapter 138↔651940. Wemix pending (need 0.4 WEMIX). |
|
||||
| **Destination tokens (cW\*)** | ⚠️ Design / partial | cWUSDT, cWUSDC deployed on 9 chains (1, 25, 56, 137, 100, 43114, 8453, 42161, 10); cWEURC and others partial. Addresses in .env; **deployment-status.json** empty (design-only). |
|
||||
| **Destination DODO/Uniswap LPs** | ❌ Not deployed | cross-chain-pmm-lps **pool-matrix** defines cW*/USDC, cW*/USDT per chain; **deployment-status.json** has no pool addresses. Public-chain edge pools and bot not live. |
|
||||
| **Uniswap on 138** | ❌ | No Uniswap V2/V3 factory on Chain 138. |
|
||||
| **Uniswap on ALL Mainnet (651940)** | ⚠️ Env placeholders | HYDX DEX present; Uniswap V2/V3 and DODO env vars in dex-factories; no pool addresses in repo. |
|
||||
|
||||
---
|
||||
|
||||
## 2. Deployed tokens and coins by network
|
||||
|
||||
### 2.1 Chain 138 (DeFi Oracle Meta Mainnet) — primary
|
||||
|
||||
| Symbol | Address | Decimals | Status |
|
||||
|--------|---------|----------|--------|
|
||||
| WETH | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | 18 | ✅ Genesis |
|
||||
| WETH10 | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | 18 | ✅ Genesis |
|
||||
| LINK | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | 18 | ✅ |
|
||||
| cUSDT | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 | ✅ |
|
||||
| cUSDC | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 | ✅ |
|
||||
| cEURC, cEURT, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC, cAUSDT | Script / .env | 6 | ⏳ Deployable via DeployCompliantFiatTokens |
|
||||
|
||||
**Source:** [DEPLOYED_COINS_TOKENS_AND_NETWORKS.md](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md), [CHAIN138_TOKEN_ADDRESSES.md](CHAIN138_TOKEN_ADDRESSES.md).
|
||||
|
||||
### 2.2 Destination networks — supported chain IDs
|
||||
|
||||
| Chain ID | Name | Tokens / bridges |
|
||||
|----------|------|-------------------|
|
||||
| **1** | Ethereum Mainnet | WETH, USDT, USDC, DAI; CCIP WETH9/WETH10 bridges; relay router. cW* deployable. |
|
||||
| **25** | Cronos | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W); cW* deployable. |
|
||||
| **56** | BSC | cWUSDT, cWUSDC (and other cW* per CW_TOKENS_AND_NETWORKS). |
|
||||
| **100** | Gnosis | cW* deployable. |
|
||||
| **137** | Polygon | cW* deployable. |
|
||||
| **10** | Optimism | cW* deployable. |
|
||||
| **42161** | Arbitrum One | cW* deployable. |
|
||||
| **8453** | Base | cW* deployable. |
|
||||
| **43114** | Avalanche C-Chain | cW* deployable. |
|
||||
| **42220** | Celo | In pool-matrix; cW* not in deploy script chain list. |
|
||||
| **1111** | Wemix | In pool-matrix; cW* not in deploy script chain list. |
|
||||
| **651940** | ALL Mainnet (Alltra) | AUSDT, USDC, WETH, WALL; AlltraAdapter 138↔651940. |
|
||||
|
||||
**Source:** [DEPLOYED_COINS_TOKENS_AND_NETWORKS.md](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md), [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md), [cross-chain-pmm-lps/config/chains.json](../../cross-chain-pmm-lps/config/chains.json).
|
||||
|
||||
---
|
||||
|
||||
## 3. Bridges — source → destination
|
||||
|
||||
### 3.1 Chain 138 as source
|
||||
|
||||
| Destination | Bridge type | Contract (138) | Status | Notes |
|
||||
|-------------|-------------|----------------|--------|--------|
|
||||
| Ethereum (1) | CCIP WETH9 / WETH10 | CCIPWETH9Bridge `0x971cD9D156f193df8051E48043C476e53ECd4693`, CCIPWETH10Bridge `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | ✅ | Relay path to mainnet (CCIPRelayBridge). |
|
||||
| BSC (56) | CCIP | Same bridges + addDestination(selector, receiver) | ✅ | Per CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING. |
|
||||
| Polygon (137) | CCIP | Same | ✅ | |
|
||||
| Arbitrum (42161) | CCIP | Same | ✅ | |
|
||||
| Optimism (10) | CCIP | Same | ✅ | |
|
||||
| Avalanche (43114) | CCIP | Same | ✅ | |
|
||||
| Cronos (25) | CCIP | Same | ✅ | |
|
||||
| ALL Mainnet (651940) | AlltraAdapter | AlltraAdapter `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` | ✅ | 138 ↔ 651940. |
|
||||
| Celo (42220) | CCIP | CCIPWETH9Bridge `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04`, CCIPWETH10Bridge `0xa4B9DD039565AeD9641D45b57061f99d9cA6Df08` (Celo); 138↔Celo destinations configured 2026-03-04 | ✅ | complete-config-ready-chains.sh Celo→138 OK. |
|
||||
| Wemix (1111) | CCIP | Bridge addresses in .env when deployed; deployer needs 0.4 WEMIX | ⏳ | Run deploy-bridges-config-ready-chains.sh wemix after funding. |
|
||||
|
||||
### 3.2 Destination → Chain 138 (inbound)
|
||||
|
||||
- **CCIP:** Each destination chain has a CCIP WETH9/WETH10 receiver bridge; 138’s bridges have `addDestination(chainSelector, receiverBridge)` for two-way routing.
|
||||
- **Alltra:** AlltraAdapter on 138 and corresponding adapter on 651940 for two-way.
|
||||
|
||||
**Source:** [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md), [smom-dbis-138/docs/deployment/CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING.md](../../smom-dbis-138/docs/deployment/CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING.md).
|
||||
|
||||
---
|
||||
|
||||
## 4. DODO and Uniswap LPs — by chain
|
||||
|
||||
### 4.1 Chain 138 — DODO PMM only
|
||||
|
||||
| Pool pair | Pool address | Base token | Quote token | Status | Routing |
|
||||
|-----------|--------------|------------|-------------|--------|---------|
|
||||
| cUSDT / cUSDC | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | cUSDT | cUSDC | ✅ Created; liquidity addible | **To:** cUSDT→cUSDC. **From:** cUSDC→cUSDT. |
|
||||
| cUSDT / USDT (official) | `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` | cUSDT | USDT (mainnet addr) | ✅ Created | Not used on 138 (official USDT has no code on 138). |
|
||||
| cUSDC / USDC (official) | `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5` | cUSDC | USDC (mainnet addr) | ✅ Created | Not used on 138 (official USDC has no code on 138). |
|
||||
|
||||
- **DODOPMMIntegration:** `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` (Mock DVM).
|
||||
- **DODOPMMProvider:** `0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0` (all pools registered).
|
||||
- **Uniswap on 138:** None (no factory documented).
|
||||
|
||||
**MCP allowlist (Chain 138):** [ai-mcp-pmm-controller/config/allowlist-138.json](../../ai-mcp-pmm-controller/config/allowlist-138.json) — lists the three pools; `get_pool_state`, `identify_pool_interface`, quote/add/remove liquidity.
|
||||
|
||||
**Source:** [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md), [PMM_DEX_ROUTING_STATUS.md](PMM_DEX_ROUTING_STATUS.md).
|
||||
|
||||
### 4.2 ALL Mainnet (651940)
|
||||
|
||||
| DEX / type | Status | Config |
|
||||
|------------|--------|--------|
|
||||
| Uniswap V2/V3 | ⚠️ Env | `CHAIN_651940_UNISWAP_V2_FACTORY`, `_ROUTER`, `_START_BLOCK` |
|
||||
| DODO PMM | ⚠️ Env | `CHAIN_651940_DODO_POOL_MANAGER`, `_DODO_VENDING_MACHINE` |
|
||||
| HYDX | Present | Token `0x0d9793861AEB9244AD1B34375a83A6730F6AdD38`; no pool addresses in repo. |
|
||||
|
||||
### 4.3 Public chains (1, 56, 137, 10, 100, 25, 42161, 8453, 43114, 42220, 1111) — cW* edge pools
|
||||
|
||||
**Designed (pool-matrix.json):** Per chain, first-tier pools: cWUSDT/USDC or cWUSDT/USDT, cWUSDC/USDC or cWUSDC/USDT, plus cWAUSDT, cWEURC, cWEURT, cWUSDW vs hub stable. Optional: cW*/USDT, cW*/DAI, cW*/BUSD, cW*/mUSD.
|
||||
|
||||
**Deployment status:** [cross-chain-pmm-lps/config/deployment-status.json](../../cross-chain-pmm-lps/config/deployment-status.json) — **empty** (no cW* addresses, no PMM pool addresses). Design and simulation only; edge pools and bot **not deployed**.
|
||||
|
||||
**Source:** [cross-chain-pmm-lps/config/pool-matrix.json](../../cross-chain-pmm-lps/config/pool-matrix.json), [cross-chain-pmm-lps/config/token-map.json](../../cross-chain-pmm-lps/config/token-map.json).
|
||||
|
||||
---
|
||||
|
||||
## 5. Complete routing map — to and from
|
||||
|
||||
### 5.1 Same-chain routing (Chain 138)
|
||||
|
||||
| From token | To token | Route | Status |
|
||||
|------------|----------|--------|--------|
|
||||
| cUSDT | cUSDC | DODOPMMIntegration / DODOPMMProvider → pool cUSDT/cUSDC | ✅ |
|
||||
| cUSDC | cUSDT | Same pool | ✅ |
|
||||
| cUSDT | USDT (official) | Pool exists; **not usable on 138** (no official USDT contract on 138) | — |
|
||||
| cUSDC | USDC (official) | Pool exists; **not usable on 138** (no official USDC contract on 138) | — |
|
||||
|
||||
### 5.2 Cross-chain routing (138 → destination)
|
||||
|
||||
| From (138) | To (chain) | Bridge | Destination asset | Destination LP (if any) |
|
||||
|------------|------------|--------|--------------------|---------------------------|
|
||||
| WETH9 | 1, 56, 137, 10, 42161, 43114, 25 | CCIP WETH9 | WETH | Native DEX / cW* pool when deployed |
|
||||
| WETH10 | Same | CCIP WETH10 | WETH | Same |
|
||||
| cUSDT / cUSDC | Any | — | — | No direct bridge for compliant stables; swap to WETH then CCIP, or use Alltra for 651940 |
|
||||
| Any (138) | 651940 | AlltraAdapter | AUSDT, WETH, WALL, etc. | ALL Mainnet DEX (env placeholders) |
|
||||
|
||||
### 5.3 Cross-chain routing (destination → 138)
|
||||
|
||||
| From (chain) | To (138) | Bridge | 138 asset |
|
||||
|--------------|----------|--------|-----------|
|
||||
| WETH (1, 56, 137, …) | 138 | CCIP receiver bridge on 138 | WETH9 / WETH10 |
|
||||
| 651940 | 138 | AlltraAdapter | Per adapter config |
|
||||
|
||||
### 5.4 Public-chain cW* routing (when deployed)
|
||||
|
||||
| From | To | Route |
|
||||
|------|-----|--------|
|
||||
| cW* (e.g. cWUSDT) | USDC / USDT (same chain) | Single-sided cW*/hub pool (pool-matrix); **not deployed**. |
|
||||
| USDC / USDT | cW* | Same pool (reverse). |
|
||||
| cW* chain A | cW* chain B | Bridge cW* or bridge underlying + mint cW* on dest; depends on bridge and cW* deployment. |
|
||||
|
||||
### 5.5 Swap–bridge–swap (orchestration)
|
||||
|
||||
- **Flow:** User gets quote (source swap 138 → bridge → destination swap) via `POST /api/bridge/quote`. Source leg: DODOPMMIntegration (138). Destination leg: public DEX or cW* pool when available.
|
||||
- **Status:** QuoteService implemented; SwapBridgeSwapCoordinator deployable; full E2E depends on destination pools and bridge config.
|
||||
|
||||
**Source:** [DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md](../03-deployment/DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md), [PMM_DEX_ROUTING_STATUS.md](PMM_DEX_ROUTING_STATUS.md).
|
||||
|
||||
---
|
||||
|
||||
## 6. Summary tables
|
||||
|
||||
### 6.1 Networks and bridge status
|
||||
|
||||
| Chain ID | Name | Tokens deployed | Bridge from 138 | Bridge to 138 | DODO/Uniswap LPs |
|
||||
|----------|------|------------------|------------------|---------------|-------------------|
|
||||
| 138 | DeFi Oracle | cUSDT, cUSDC, WETH, WETH10, LINK | — | — | DODO: 3 pools (1 usable: cUSDT/cUSDC) |
|
||||
| 1 | Ethereum | WETH, USDT, USDC, DAI | ✅ CCIP WETH9/10 | ✅ CCIP relay | Native DEX; cW* design |
|
||||
| 651940 | ALL Mainnet | AUSDT, USDC, WETH, WALL | ✅ AlltraAdapter | ✅ AlltraAdapter | Env placeholders; HYDX |
|
||||
| 25 | Cronos | USDW, EURW, …; cW* | ✅ CCIP | ✅ CCIP | cW* design only |
|
||||
| 56, 100, 137, 10, 42161, 8453, 43114 | BSC, Gnosis, Polygon, Optimism, Arbitrum, Base, Avalanche | cW* (partial) | ✅ CCIP | ✅ CCIP | cW* pool-matrix; not deployed |
|
||||
| 42220, 1111 | Celo, Wemix | — | Config | Config | pool-matrix only |
|
||||
|
||||
### 6.2 Route matrix (to and from)
|
||||
|
||||
| Direction | Route | Live? |
|
||||
|-----------|--------|-------|
|
||||
| **138 same-chain** | cUSDT ↔ cUSDC via DODO PMM | ✅ |
|
||||
| **138 → 1** | WETH via CCIP WETH9/10 → mainnet | ✅ |
|
||||
| **138 → 56, 137, 10, 42161, 43114, 25** | WETH via CCIP | ✅ |
|
||||
| **138 ↔ 651940** | AlltraAdapter | ✅ |
|
||||
| **1, 56, … → 138** | WETH via CCIP receiver on 138 | ✅ |
|
||||
| **138 → dest** | cUSDT/cUSDC (swap to WETH then bridge) | ✅ (swap leg); bridge per above |
|
||||
| **Dest cW* → USDC/USDT** | cW* edge pool (single-sided) | ❌ Pools not deployed |
|
||||
| **Dest USDC/USDT → cW*** | Same pool | ❌ |
|
||||
|
||||
---
|
||||
|
||||
## 7. References
|
||||
|
||||
| Document | Purpose |
|
||||
|----------|---------|
|
||||
| [DEPLOYED_COINS_TOKENS_AND_NETWORKS.md](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md) | Tokens and networks inventory |
|
||||
| [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) | Pool map 138 and 651940 |
|
||||
| [PMM_DEX_ROUTING_STATUS.md](PMM_DEX_ROUTING_STATUS.md) | DEX/PMM routing status |
|
||||
| [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md) | Contract and bridge addresses |
|
||||
| [ADDRESS_MATRIX_AND_STATUS.md](ADDRESS_MATRIX_AND_STATUS.md) | Correlated address matrix |
|
||||
| [DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md](../03-deployment/DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md) | Routing flow diagram |
|
||||
| [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md) | cW* tokens and networks |
|
||||
| [cross-chain-pmm-lps/config/](../../cross-chain-pmm-lps/config/) | pool-matrix, deployment-status, token-map, chains |
|
||||
| [ai-mcp-pmm-controller/config/allowlist-138.json](../../ai-mcp-pmm-controller/config/allowlist-138.json) | MCP allowlist Chain 138 |
|
||||
@@ -0,0 +1,183 @@
|
||||
# Deployer Wallet — Complete Contract List by Network and Verification Status
|
||||
|
||||
**Last Updated:** 2026-02-27
|
||||
**Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
**Purpose:** Single list of all contracts deployed by (or attributed to) the deployer wallet, the network each is on, and whether each is **verified** on the chain’s explorer (Blockscout for Chain 138).
|
||||
|
||||
**Verification:** For Chain 138, verification is done via Blockscout (https://explorer.d-bis.org). Run `./scripts/verify/run-contract-verification-with-proxy.sh` (from LAN with Blockscout reachable) or `./scripts/verify/check-contracts-on-chain-138.sh` to check/verify. **Verified** below means “source code verified on explorer”; **Not verified** means not yet submitted or not yet confirmed; **Unknown** means not yet checked in this repo.
|
||||
|
||||
---
|
||||
|
||||
## Legend
|
||||
|
||||
| Column | Meaning |
|
||||
|--------|--------|
|
||||
| **Contract** | Contract name |
|
||||
| **Address** | Contract address on the given network |
|
||||
| **Network** | Chain ID and network name |
|
||||
| **Deployed by** | **Genesis** = pre-deployed at chain init; **Deployer** = deployed by `0x4A66...` via repo scripts |
|
||||
| **Verified** | **Yes** = verified on explorer; **No** = not verified; **Unknown** = not checked |
|
||||
|
||||
---
|
||||
|
||||
## Chain 138 (DeFi Oracle Meta Mainnet)
|
||||
|
||||
Explorer: https://explorer.d-bis.org
|
||||
|
||||
### Tokens (ERC-20)
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| WETH9 | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | Genesis | Unknown |
|
||||
| WETH10 | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | Genesis | Unknown |
|
||||
| LINK | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | Deployer | Unknown |
|
||||
| cUSDT (CompliantUSDT) | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | Deployer | Unknown |
|
||||
| cUSDC (CompliantUSDC) | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | Deployer | Unknown |
|
||||
|
||||
### Core / registry / compliance
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| ComplianceRegistry | `0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1` | Deployer | Unknown |
|
||||
| TokenFactory | `0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133` | Deployer | Unknown |
|
||||
| TokenRegistry | `0x91Efe92229dbf7C5B38D422621300956B55870Fa` | Deployer | Unknown |
|
||||
| BridgeVault | `0x31884f84555210FFB36a19D2471b8eBc7372d0A8` | Deployer | Unknown |
|
||||
| FeeCollector | `0xF78246eB94c6CB14018E507E60661314E5f4C53f` | Deployer | Unknown |
|
||||
| DebtRegistry | `0x95BC4A997c0670d5DAC64d55cDf3769B53B63C28` | Deployer | Unknown |
|
||||
| PolicyManager | `0x0C4FD27018130A00762a802f91a72D6a64a60F14` | Deployer | Unknown |
|
||||
| TokenImplementation | `0x0059e237973179146237aB49f1322E8197c22b21` | Deployer | Unknown |
|
||||
| Price Feed Keeper | `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04` | Deployer | Unknown |
|
||||
|
||||
### Oracle / Multicall
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| Multicall | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Genesis | Unknown |
|
||||
| Oracle Aggregator | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Deployer (or same slot as Multicall) | Unknown |
|
||||
| Oracle Proxy | `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` | Deployer | Unknown |
|
||||
| Multicall (deploy 2026-02-13) | `0xF4AA429BE277d1a1a1A744C9e5B3aD821a9b96f7` | Deployer | Unknown |
|
||||
| Oracle Aggregator (deploy 2026-02-13) | `0xaFd9E25ff301a79feaBcc56F46969F34808358CE` | Deployer | Unknown |
|
||||
| Oracle Proxy (deploy 2026-02-13) | `0x90563867F2ba94ed277303e200f4311c00982E92` | Deployer | Unknown |
|
||||
|
||||
### CCIP / bridge
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| CCIP Router | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | Deployer | Unknown |
|
||||
| CCIP Sender | `0x105F8A15b819948a89153505762444Ee9f324684` | Deployer | Unknown |
|
||||
| CCIPWETH9Bridge | `0x971cD9D156f193df8051E48043C476e53ECd4693` | Deployer | Unknown |
|
||||
| CCIPWETH10Bridge | `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | Deployer | Unknown |
|
||||
| CCIPReceiver (2026-02-13) | `0xC12236C03b28e675d376774FCE2C2C052488430F` | Deployer | Unknown |
|
||||
|
||||
### Governance / phased core / deterministic
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| UniversalAssetRegistry (proxy) | `0xAEE4b7fBe82E1F8295951584CBc772b8BBD68575` | Deployer | Unknown |
|
||||
| GovernanceController (proxy) | `0xA6891D5229f2181a34D4FF1B515c3Aa37dd90E0e` | Deployer | Unknown |
|
||||
| UniversalCCIPBridge (proxy) | `0xCd42e8eD79Dc50599535d1de48d3dAFa0BE156F8` | Deployer | Unknown |
|
||||
| BridgeOrchestrator (proxy) | `0x89aB428c437f23bAB9781ff8Db8D3848e27EeD6c` | Deployer | Unknown |
|
||||
| CREATE2Factory | `0x750E4a8adCe9f0e67A420aBE91342DC64Eb90825` | Deployer | Unknown |
|
||||
| UniversalAssetRegistry (deterministic) | `0xC98602aa574F565b5478E8816BCab03C9De0870f` | Deployer | Unknown |
|
||||
| UniversalCCIPBridge (deterministic) | `0x532DE218b94993446Be30eC894442f911499f6a3` | Deployer | Unknown |
|
||||
| MirrorRegistry | `0x6427F9739e6B6c3dDb4E94fEfeBcdF35549549d8` | Deployer | Unknown |
|
||||
| AlltraAdapter | `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` | Deployer | Unknown |
|
||||
|
||||
### Channels / mirror / trustless / reserve / vault
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| PaymentChannelManager | `0x302aF72966aFd21C599051277a48DAa7f01a5f54` | Deployer | Unknown |
|
||||
| GenericStateChannelManager | `0xe5e3bB424c8a0259FDE23F0A58F7e36f73B90aBd` | Deployer | Unknown |
|
||||
| AddressMapper | `0x439Fcb2d2ab2f890DCcAE50461Fa7d978F9Ffe1A` | Deployer | Unknown |
|
||||
| MirrorManager | `0x6eD905A30c552a6e003061A38FD52A5A427beE56` | Deployer | Unknown |
|
||||
| Lockbox138 | `0xFce6f50B312B3D936Ea9693C5C9531CF92a3324c` | Deployer | Unknown |
|
||||
| MerchantSettlementRegistry | `0x16D9A2cB94A0b92721D93db4A6Cd8023D3338800` | Deployer | Unknown |
|
||||
| WithdrawalEscrow | `0xe77cb26eA300e2f5304b461b0EC94c8AD6A7E46D` | Deployer | Unknown |
|
||||
| ReserveSystem | `0x607e97cD626f209facfE48c1464815DDE15B5093` | Deployer | Unknown |
|
||||
| ReserveTokenIntegration | `0x34B73e6EDFd9f85a7c25EeD31dcB13aB6E969b96` | Deployer | Unknown |
|
||||
| RegulatedEntityRegistry | `0xEA4C892D6c1253797c5D95a05BF3863363080b4B` | Deployer | Unknown |
|
||||
| VaultFactory | `0xB2Ac70f35A81481B005067ed6567a5043BA32336` | Deployer | Unknown |
|
||||
| Ledger | `0x67b3831dc64C14FB9352B2a45C6Dd69b3C86B7af` | Deployer | Unknown |
|
||||
| Liquidation | `0x3aCdbCB749d6037a02F0ef6ea2E5Fb89D31fAB72` | Deployer | Unknown |
|
||||
| XAU Oracle | `0xf23E1eDa304082ab7a81531dFE6020E6105e77A8` | Deployer | Unknown |
|
||||
| MultiSig (2026-02-13) | `0xb9E29cFa1f89d369671E640d0BB3aD94Cab43965` | Deployer | Unknown |
|
||||
| Voting (2026-02-13) | `0x022267b26400114aF01BaCcb92456Fe36cfccD93` | Deployer | Unknown |
|
||||
|
||||
### DODO PMM / liquidity
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| DODOPMMIntegration | `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` | Deployer | Unknown |
|
||||
| DODOPMMProvider | `0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0` | Deployer | Unknown |
|
||||
| Pool cUSDT/cUSDC | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | Deployer | Unknown |
|
||||
| Pool cUSDT/USDT | `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` | Deployer | Unknown |
|
||||
| Pool cUSDC/USDC | `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5` | Deployer | Unknown |
|
||||
|
||||
### TransactionMirror
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| TransactionMirror | `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` | Deployer | Unknown |
|
||||
|
||||
### Deprecated (do not use)
|
||||
|
||||
| Contract | Address | Deployed by | Verified |
|
||||
|----------|---------|-------------|----------|
|
||||
| CCIPWETH9Bridge (old) | `0x89dd12025bfCD38A168455A44B400e913ED33BE2` | Deployer | — |
|
||||
|
||||
---
|
||||
|
||||
## Ethereum Mainnet (Chain 1)
|
||||
|
||||
Contracts used as **destinations** for Chain 138 CCIP/relay; may have been deployed by this deployer or by another party.
|
||||
|
||||
| Contract | Address | Network | Deployed by | Verified |
|
||||
|----------|---------|---------|-------------|----------|
|
||||
| CCIPRelayRouter | `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` | 1 (Ethereum Mainnet) | Unknown | Unknown |
|
||||
| CCIPRelayBridge | `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` | 1 (Ethereum Mainnet) | Unknown | Unknown |
|
||||
|
||||
Explorer: https://etherscan.io (or https://blockscan.com for multi-chain).
|
||||
|
||||
---
|
||||
|
||||
## Other networks (CCIP / cW* / Cronos)
|
||||
|
||||
Contracts on **other chains** (BSC, Polygon, Cronos, Arbitrum, Optimism, Avalanche, Base, Gnosis, Celo, Wemix) that the deployer may have deployed (e.g. CCIP WETH9/WETH10 bridges, cW* tokens, Cronos D-WIN W) are **not** listed here by address. Addresses are stored in `smom-dbis-138/.env` (e.g. `CCIPWETH9_BRIDGE_BSC`, `CWUSDT_MAINNET`, etc.). See [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) and [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md). Verification status on those chains is **per-chain** (Etherscan, BscScan, Polygonscan, etc.) and not tracked in this doc.
|
||||
|
||||
---
|
||||
|
||||
## Sources of deployment data (dotenv and config)
|
||||
|
||||
Files that contain smart contract addresses or deployment configuration:
|
||||
|
||||
**Primary dotenv:** `smom-dbis-138/.env` (canonical for Chain 138: tokens, CCIP, DODO PMM, pools, vaults, TRANSACTION_MIRROR). Root `.env` and `.env.master.example` hold RPC/keys.
|
||||
|
||||
**Documented examples:** `smom-dbis-138/docs/deployment/ENV_EXAMPLE_CONTENT.md` (full env var reference), `smom-dbis-138/env.additions.example` (DODO/pool addrs), `smom-dbis-138/docs/deployment/ENV_CONFIG_READY_CHAINS.example` (CCIP per chain), `smom-dbis-138/terraform/phases/phase1/.env.chain138` and `config/env.chain138.example`, `config/env.mainnet.example` (138 and mainnet examples).
|
||||
|
||||
**Config JSON:** `config/token-mapping-multichain.json` (138↔651940 and multichain token mapping), `cross-chain-pmm-lps/config/deployment-status.json` (per-chain cW*/pools status), `ai-mcp-pmm-controller/config/allowlist-138.json` (Chain 138 DODO pools for MCP).
|
||||
|
||||
**Script load order:** Scripts use `scripts/lib/load-project-env.sh` (loads root .env, ip-addresses.conf, smom-dbis-138/.env) and optionally `scripts/lib/load-contract-addresses.sh` (reads `config/smart-contracts-master.json` when present; .env overrides).
|
||||
|
||||
**Full index:** [DEPLOYMENT_DATA_SOURCES_INDEX.md](DEPLOYMENT_DATA_SOURCES_INDEX.md).
|
||||
|
||||
---
|
||||
|
||||
## How to update verification status
|
||||
|
||||
1. **Chain 138:** From a host that can reach Blockscout (e.g. LAN), run:
|
||||
- `./scripts/verify/run-contract-verification-with-proxy.sh` to submit verification for contracts in the verification config.
|
||||
- Open https://explorer.d-bis.org/address/<ADDRESS> for each contract and confirm “Contract source code verified” (or equivalent).
|
||||
2. **This doc:** Set **Verified** to **Yes** or **No** for each contract after checking. Leave **Unknown** until checked.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
| Document | Purpose |
|
||||
|----------|---------|
|
||||
| [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md) | Canonical contract list and .env mapping |
|
||||
| [ADDRESS_MATRIX_AND_STATUS.md](ADDRESS_MATRIX_AND_STATUS.md) | Correlated address matrix and status |
|
||||
| [BLOCKSCOUT_VERIFICATION_GUIDE.md](../08-monitoring/BLOCKSCOUT_VERIFICATION_GUIDE.md) | How to verify on Blockscout |
|
||||
| [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md) | Deployer address and funding |
|
||||
| [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) | Tokens deployer deployed on other chains |
|
||||
158
docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md
Normal file
158
docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# Routes: Deployer Wallet → Public-Network Stablecoins
|
||||
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Single reference for **all possible routes** from the deployer wallet as **source** (minted/held tokens on all blockchains) **to** public-network stablecoins (USDT, USDC, DAI, AUSDT, etc.) on each chain. Uses Master Documentation and verifiable sources only.
|
||||
|
||||
**Deployer address (source):** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
|
||||
**Sources:** [MASTER_INDEX](MASTER_INDEX.md), [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) §5/§8, [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md), [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md), [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md), [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md), [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md), [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md).
|
||||
|
||||
---
|
||||
|
||||
## 1. Deployer-held / mintable tokens by chain
|
||||
|
||||
Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos, or acquirable on other chains):
|
||||
|
||||
| Chain ID | Chain name | Source tokens (deployer as holder) |
|
||||
|----------|-------------------|------------------------------------|
|
||||
| **138** | DeFi Oracle (SMOM-DBIS-138) | cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT, WETH, WETH10, LINK, native ETH |
|
||||
| **1** | Ethereum Mainnet | WETH (via CCIP from 138), USDT, USDC, DAI (acquire) |
|
||||
| **651940** | ALL Mainnet (Alltra) | AUSDT, USDC (AUSDC), WETH, WALL (via AlltraAdapter from 138 or acquire) |
|
||||
| **25** | Cronos | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W; mintable if MINTER_ROLE), WETH9, WETH10, LINK |
|
||||
| **56** | BSC | cWUSDT, cWUSDC (design; deployment-status empty), USDT, USDC (acquire) |
|
||||
| **100** | Gnosis | cW* (design), xDAI, USDC (acquire) |
|
||||
| **137** | Polygon | cW* (design), USDT, USDC (acquire) |
|
||||
| **10** | Optimism | cW* (design), USDT, USDC (acquire) |
|
||||
| **42161**| Arbitrum One | cW* (design), USDT, USDC (acquire) |
|
||||
| **8453** | Base | cW* (design), USDT, USDC (acquire) |
|
||||
| **43114**| Avalanche C-Chain | cW* (design), USDT, USDC (acquire) |
|
||||
| **42220**| Celo | (CCIP config 2026-03-04); USDC, cEUR (acquire) |
|
||||
| **1111** | Wemix | (pending 0.4 WEMIX); WEMIX, USDT/USDC (acquire) |
|
||||
|
||||
---
|
||||
|
||||
## 2. Public-network stablecoins (destination) by chain
|
||||
|
||||
| Chain ID | Chain name | Public stablecoins (destination) |
|
||||
|----------|--------------|-----------------------------------|
|
||||
| **138** | DeFi Oracle | cUSDT, cUSDC (compliant stables; no native USDT/USDC contract on 138) |
|
||||
| **1** | Ethereum | USDT `0xdAC17F958D2ee523a2206206994597C13D831ec7`, USDC `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`, DAI `0x6B175474E89094C44Da98b954EedeAC495271d0F` |
|
||||
| **651940** | ALL Mainnet | AUSDT `0x015B1897Ed5279930bC2Be46F661894d219292A6`, USDC (AUSDC) `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881` |
|
||||
| **25** | Cronos | USDW, EURW, GBPW, etc. (D-WIN W); native CRO; USDT/USDC if bridged |
|
||||
| **56** | BSC | USDT, USDC, BUSD (native) |
|
||||
| **100** | Gnosis | USDC, xDAI |
|
||||
| **137** | Polygon | USDT, USDC (native) |
|
||||
| **10** | Optimism | USDT, USDC (native) |
|
||||
| **42161**| Arbitrum | USDT, USDC (native) |
|
||||
| **8453** | Base | USDT, USDC (native) |
|
||||
| **43114**| Avalanche | USDT, USDC (native) |
|
||||
| **42220**| Celo | USDC, cEUR |
|
||||
| **1111** | Wemix | USDT, USDC (if listed) |
|
||||
|
||||
---
|
||||
|
||||
## 3. Routes: deployer source token → public stablecoin
|
||||
|
||||
### 3.1 Chain 138 (same-chain)
|
||||
|
||||
| From (deployer holds) | To (public stable on 138) | Route | Status |
|
||||
|------------------------|----------------------------|--------|--------|
|
||||
| cUSDT | cUSDC | DODOPMMIntegration / pool `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | ✅ Live |
|
||||
| cUSDC | cUSDT | Same pool | ✅ Live |
|
||||
| cUSDT | “USDT (official)” | Pool `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` exists; **not usable** — no official USDT contract on 138 | — |
|
||||
| cUSDC | “USDC (official)” | Pool `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5` exists; **not usable** — no official USDC on 138 | — |
|
||||
|
||||
**Note:** On 138 the only “public” stablecoin destinations that exist are cUSDT and cUSDC. There is no native USDT/USDC contract on 138.
|
||||
|
||||
---
|
||||
|
||||
### 3.2 Chain 138 → Ethereum Mainnet (1)
|
||||
|
||||
**Prerequisite:** The route 138 WETH → CCIP → Ethereum **requires that the Mainnet bridge be funded first.** CCIPRelayBridge on chain 1 (`0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939`) **releases** WETH to recipients when relay messages are delivered; it does not mint WETH. So **Mainnet WETH must be sent to CCIPRelayBridge** (or the relay/release mechanism) before 138→Mainnet transfers can complete. Flow: fund bridge with Mainnet WETH → then 138 WETH can be locked/sent via CCIP → relay delivers message → bridge releases pre-funded Mainnet WETH to recipient.
|
||||
|
||||
| From (138, deployer holds) | To (Mainnet public stable) | Route | Status |
|
||||
|----------------------------|----------------------------|--------|--------|
|
||||
| WETH9 | WETH (then DEX) → USDT / USDC / DAI | CCIP WETH9 bridge `0x971cD9D156f193df8051E48043C476e53ECd4693` → Mainnet → swap via native DEX | ✅ Live (bridge); **requires Mainnet WETH funding of CCIPRelayBridge**; swap via DEX |
|
||||
| WETH10 | Same | CCIP WETH10 bridge `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` → Mainnet → DEX | ✅ Live; **same prerequisite** |
|
||||
| cUSDT | USDT / USDC / DAI | **No direct bridge.** Swap 138: cUSDT→cUSDC or cUSDT→WETH (no cUSDT→WETH pool documented); or cUSDT→cUSDC then no bridge for cUSDC. **Indirect:** cUSDT→cUSDC (DODO) then no 138→mainnet bridge for compliant stables. Use: **cUSDT/cUSDC → swap to WETH on 138 (no pool today)** then CCIP WETH→mainnet→DEX→USDT/USDC/DAI. | ⚠️ Swap leg on 138 to WETH not documented; bridge leg ✅ |
|
||||
| cUSDC | USDT / USDC / DAI | Same as cUSDT; need 138 cUSDC→WETH path (not in docs). Then CCIP WETH→mainnet→DEX. | ⚠️ Same |
|
||||
|
||||
**Mainnet relay:** CCIP messages to chain 1 go via CCIPRelayRouter `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` and CCIPRelayBridge `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` (releases WETH; **must be funded with Mainnet WETH** — see [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md)).
|
||||
|
||||
---
|
||||
|
||||
### 3.3 Chain 138 → ALL Mainnet (651940)
|
||||
|
||||
| From (138, deployer holds) | To (651940 public stable) | Route | Status |
|
||||
|----------------------------|----------------------------|--------|--------|
|
||||
| Any (cUSDT, cUSDC, WETH, etc.) | AUSDT, USDC (AUSDC) | AlltraAdapter `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` (138↔651940) → then DEX on 651940 (env placeholders; HYDX present) | ✅ Bridge live; destination swap via ALL Mainnet DEX |
|
||||
|
||||
---
|
||||
|
||||
### 3.4 Chain 138 → other public chains (56, 100, 137, 10, 42161, 8453, 43114, 25, 42220, 1111)
|
||||
|
||||
| From (138) | To (destination chain public stable) | Bridge | Status |
|
||||
|------------|--------------------------------------|--------|--------|
|
||||
| WETH9 / WETH10 | WETH on dest → USDT/USDC via DEX | CCIP WETH9/WETH10 to BSC, Polygon, Arbitrum, Optimism, Avalanche, Cronos, **Celo**, **Gnosis** | ✅ Live (Celo + Gnosis 2026-03-04) |
|
||||
| WETH9 / WETH10 | Wemix USDT/USDC | CCIP when Wemix bridges deployed (deployer needs 0.4 WEMIX) | ⏳ Pending |
|
||||
| cUSDT / cUSDC | Any dest public stable | No direct bridge for compliant stables; must swap to WETH on 138 then CCIP (see 3.2). | ⚠️ Same as 3.2 |
|
||||
|
||||
---
|
||||
|
||||
### 3.5 Destination chain → public stable (when deployer holds asset on that chain)
|
||||
|
||||
| Chain | Deployer holds there | To public stable (same chain) | Route | Status |
|
||||
|-------|----------------------|------------------------------|--------|--------|
|
||||
| **1** | WETH (after CCIP), USDT, USDC, DAI | USDT, USDC, DAI | Native DEX (Uniswap, etc.) | ✅ Standard |
|
||||
| **651940** | AUSDT, USDC, WETH, WALL | AUSDT, USDC | HYDX / Uniswap (env placeholders) | ✅ DEX present |
|
||||
| **25** | USDW, EURW, … (D-WIN W) | USDW, EURW, etc. | Same-chain swap / DEX | ✅ If DEX exists |
|
||||
| **56, 100, 137, 10, 42161, 8453, 43114** | cW* (design only; deployment-status empty) | USDT, USDC | cW*/USDC, cW*/USDT edge pools (pool-matrix) | ❌ Pools not deployed |
|
||||
| **42220, 1111** | — | USDC, cEUR / USDT, USDC | Acquire then DEX | ✅ Standard (acquire + DEX) |
|
||||
|
||||
---
|
||||
|
||||
## 4. Summary: deployer → public stablecoin route matrix
|
||||
|
||||
| Source chain | Deployer source token | Destination chain | Destination public stable | Route | Live? |
|
||||
|--------------|------------------------|-------------------|---------------------------|--------|------|
|
||||
| 138 | cUSDT | 138 | cUSDC | DODO PMM pool cUSDT/cUSDC | ✅ |
|
||||
| 138 | cUSDC | 138 | cUSDT | Same pool | ✅ |
|
||||
| 138 | WETH9 | 1 | USDT, USDC, DAI | CCIP WETH9 → Mainnet → DEX; **requires Mainnet WETH funding of CCIPRelayBridge first** | ✅ |
|
||||
| 138 | WETH10 | 1 | USDT, USDC, DAI | Same; **CCIPRelayBridge must be funded with Mainnet WETH** | ✅ |
|
||||
| 138 | WETH9/10 | 56, 137, 10, 42161, 43114, 25, 100, 42220 | WETH → USDT/USDC via DEX | CCIP → dest → DEX | ✅ |
|
||||
| 138 | Any | 651940 | AUSDT, USDC | AlltraAdapter → 651940 DEX | ✅ |
|
||||
| 138 | cUSDT, cUSDC | Any | USDT, USDC (any chain) | Swap to WETH on 138 (no c*→WETH pool in docs) + CCIP WETH → dest DEX | ⚠️ Bridge leg ✅; 138 swap leg not documented |
|
||||
| Dest (1, 651940, 25, …) | Deployer-held token on that chain | Same | Public stable | Native DEX | ✅ |
|
||||
| Dest (56, 100, 137, …) | cW* | Same | USDT, USDC | cW* edge pools | ❌ Not deployed |
|
||||
|
||||
---
|
||||
|
||||
## 5. Reverse: public stablecoin → deployer (inbound)
|
||||
|
||||
| From (chain, public stable) | To (deployer on 138) | Route | Status |
|
||||
|------------------------------|----------------------|--------|--------|
|
||||
| Mainnet (1) USDT, USDC, DAI | 138 | No direct bridge for stables; WETH via CCIP receiver on 138 | ✅ WETH only |
|
||||
| 651940 AUSDT, USDC | 138 | AlltraAdapter 651940→138 | ✅ |
|
||||
| Other chains WETH | 138 | CCIP receiver bridge on 138 → WETH9/WETH10 | ✅ |
|
||||
| Any chain USDT/USDC | 138 cUSDT/cUSDC | No canonical bridge; would require lock-mint or third-party bridge | ❌ Not in docs |
|
||||
|
||||
---
|
||||
|
||||
## 6. Related: routes without pre-funded bridge
|
||||
|
||||
For routes where **pre-funding a destination bridge is not required** (same-chain, AlltraAdapter lock-mint, CCIP to chains other than Mainnet with mint-on-receive), see [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md).
|
||||
|
||||
---
|
||||
|
||||
## 7. References
|
||||
|
||||
| Document | Use |
|
||||
|----------|-----|
|
||||
| [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md) | Routes that do not require bridge pre-funding |
|
||||
| [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md) | Full routing map, bridges, DODO/Uniswap LPs |
|
||||
| [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) | Canonical token addresses (§5), on-chain verification (§8) |
|
||||
| [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) | Deployer, DODOPMMIntegration, CCIP bridges, relay |
|
||||
| [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) | Mintable-to-deployer tokens (138, Cronos); acquire elsewhere |
|
||||
| [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md) | Deployer address, balances, tokens on all networks |
|
||||
| [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md) | Pool addresses (138, 651940) |
|
||||
| [MASTER_INDEX](../MASTER_INDEX.md) | Master documentation entry point |
|
||||
@@ -64,7 +64,7 @@ forge script script/dex/AddLiquidityPMMPoolsChain138.s.sol:AddLiquidityPMMPoolsC
|
||||
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY"
|
||||
```
|
||||
|
||||
See [LIQUIDITY_POOL_CONTROLS_RUNBOOK](../03-deployment/LIQUIDITY_POOL_CONTROLS_RUNBOOK.md) and [NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS](../03-deployment/NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS.md).
|
||||
See [PMM_POOLS_FUNDING_PLAN](../03-deployment/PMM_POOLS_FUNDING_PLAN.md) (step-by-step plan), [LIQUIDITY_POOL_CONTROLS_RUNBOOK](../03-deployment/LIQUIDITY_POOL_CONTROLS_RUNBOOK.md) and [NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS](../03-deployment/NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS.md).
|
||||
|
||||
---
|
||||
|
||||
|
||||
60
docs/11-references/DEPLOYMENT_DATA_SOURCES_INDEX.md
Normal file
60
docs/11-references/DEPLOYMENT_DATA_SOURCES_INDEX.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Deployment Data Sources Index — Dotenv and Config Files
|
||||
|
||||
**Last Updated:** 2026-02-27
|
||||
**Purpose:** Index of files that contain or reference smart contract deployment addresses, RPC endpoints, or deployment configuration.
|
||||
|
||||
**Deployer:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
**Canonical contract list:** [DEPLOYER_CONTRACTS_INVENTORY_AND_VERIFICATION_STATUS.md](DEPLOYER_CONTRACTS_INVENTORY_AND_VERIFICATION_STATUS.md) | [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. Primary dotenv
|
||||
|
||||
| File | Contains addresses? | Notes |
|
||||
|------|--------------------|--------|
|
||||
| **smom-dbis-138/.env** | Yes | Canonical for Chain 138: PRIVATE_KEY, RPC_URL_138, cUSDT/cUSDC/…, CCIP, DODO PMM, pools, TRANSACTION_MIRROR, vaults. Do not commit. |
|
||||
| **.env** (repo root) | Partial | RPC_URL_138, PRIVATE_KEY, ETHEREUM_MAINNET_RPC, CHAIN_651940_RPC_URL, API keys. |
|
||||
|
||||
---
|
||||
|
||||
## 2. Env examples (address reference)
|
||||
|
||||
| File | Notes |
|
||||
|------|--------|
|
||||
| **smom-dbis-138/docs/deployment/ENV_EXAMPLE_CONTENT.md** | Full env var reference: RPC, Chain 138 c*, CCIP per chain, WETH9/WETH10, mainnet bridges, gas. |
|
||||
| **smom-dbis-138/env.additions.example** | DODO_PMM_*, POOL_CUSDTCUSDC, POOL_CUSDTUSDT, POOL_CUSDCUSDC. |
|
||||
| **smom-dbis-138/docs/deployment/ENV_CONFIG_READY_CHAINS.example** | CCIP routers/LINK/bridges for Gnosis, Celo, Wemix, Cronos. |
|
||||
| **smom-dbis-138/terraform/phases/phase1/.env.chain138** | Chain 138 RPC, CCIP, LINK, WETH, bridges. Prefer smom-dbis-138/.env. |
|
||||
| **smom-dbis-138/terraform/phases/phase1/config/env.chain138.example** | Example 138 env. |
|
||||
| **smom-dbis-138/terraform/phases/phase1/config/env.mainnet.example** | Example mainnet env. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Config JSON
|
||||
|
||||
| File | Notes |
|
||||
|------|--------|
|
||||
| **config/token-mapping-multichain.json** | 138↔651940 and multichain token mapping; addressFrom/addressTo per pair. |
|
||||
| **cross-chain-pmm-lps/config/deployment-status.json** | Per-chain cwTokens, anchorAddresses, pmmPools, bridgeAvailable. |
|
||||
| **ai-mcp-pmm-controller/config/allowlist-138.json** | Chain 138 DODO pool list for MCP. |
|
||||
| **config/smart-contracts-master.json** | Referenced by load-contract-addresses.sh; may be optional or removed. |
|
||||
| **config/contract-addresses.conf** | Legacy; sourced by load-contract-addresses.sh. |
|
||||
|
||||
---
|
||||
|
||||
## 4. Script load order
|
||||
|
||||
- **scripts/lib/load-project-env.sh** — loads root .env, ip-addresses.conf, smom-dbis-138/.env.
|
||||
- **scripts/lib/load-contract-addresses.sh** — reads config/smart-contracts-master.json and contract-addresses.conf; .env overrides.
|
||||
|
||||
---
|
||||
|
||||
## 5. Service env (may reference RPC/contracts)
|
||||
|
||||
smom-dbis-138/services/relay/.env, smom-dbis-138/services/transaction-mirroring-service/.env, smom-dbis-138/services/state-anchoring-service/.env, explorer-monorepo/.env, alltra-lifi-settlement/.env, rpc-translator-138/.env.
|
||||
|
||||
---
|
||||
|
||||
## 6. Docs with contract lists (no env)
|
||||
|
||||
CONTRACT_ADDRESSES_REFERENCE.md, DEPLOYER_CONTRACTS_INVENTORY_AND_VERIFICATION_STATUS.md, ADDRESS_MATRIX_AND_STATUS.md, CHAIN138_TOKEN_ADDRESSES.md, DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md.
|
||||
201
docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md
Normal file
201
docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md
Normal file
@@ -0,0 +1,201 @@
|
||||
# Explorer Token List Cross-Check
|
||||
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Cross-check the token list shown at [https://explorer.d-bis.org/tokens](https://explorer.d-bis.org/tokens) against repo token lists, canonical addresses, and CONTRACT_ADDRESSES_REFERENCE.
|
||||
|
||||
---
|
||||
|
||||
## 1. Where the Explorer Gets Its Token List
|
||||
|
||||
| Source | Used for | API / file |
|
||||
|--------|----------|------------|
|
||||
| **Blockscout API** | The **Tokens** tab on the Explorer (`/tokens`) | `GET https://explorer.d-bis.org/api/v2/tokens?page=1&page_size=100` |
|
||||
| **Embedded token list (MetaMask)** | Wallet “token list” URL for Chain 138 / multi-chain | Explorer backend `GET /api/config/token-list` → `explorer-monorepo/backend/config/metamask/DUAL_CHAIN_TOKEN_LIST.tokenlist.json` |
|
||||
|
||||
The **Tokens** page content is **not** from the repo’s static token list files. It is **live from Blockscout**: whatever Blockscout has indexed on-chain (ERC-20 contracts) for Chain 138.
|
||||
|
||||
---
|
||||
|
||||
## 2. Blockscout Token List (Live as of 2026-02-27)
|
||||
|
||||
Fetched from `https://explorer.d-bis.org/api/v2/tokens?page=1&page_size=100`:
|
||||
|
||||
| Address | Symbol | Name | Decimals | Match to repo canonical? |
|
||||
|---------|--------|------|----------|---------------------------|
|
||||
| `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | *(null)* | *(null)* | 0 | ✅ WETH9 — **metadata missing** (name/symbol/decimals not set in response; on-chain may differ) |
|
||||
| `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | LINK | Chainlink Token | 18 | ✅ Canonical LINK |
|
||||
| `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | cUSDT | Tether USD (Compliant) | 6 | ✅ Canonical cUSDT |
|
||||
| `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | cUSDC | USD Coin (Compliant) | 6 | ✅ Canonical cUSDC |
|
||||
| `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9F` | WETH10 | Wrapped Ether v10 | 18 | ✅ Canonical WETH10 |
|
||||
| `0x8085961F9cF02b4d800A3c6d386D31da4B34266a` | cEURC | Euro Coin (Compliant) | 6 | ✅ Canonical cEURC |
|
||||
| `0xdf4b71c61E5912712C1Bdd451416B9aC26949d72` | cEURT | Tether EUR (Compliant) | 6 | ✅ Canonical cEURT |
|
||||
| `0x003960f16D9d34F2e98d62723B6721Fb92074aD2` | cGBPC | Pound Sterling (Compliant) | 6 | ✅ Canonical cGBPC |
|
||||
| `0x350f54e4D23795f86A9c03988c7135357CCaD97c` | cGBPT | Tether GBP (Compliant) | 6 | ✅ Canonical cGBPT |
|
||||
| `0xD51482e567c03899eecE3CAe8a058161FD56069D` | cAUDC | Australian Dollar (Compliant) | 6 | ✅ Canonical cAUDC |
|
||||
| `0xEe269e1226a334182aace90056EE4ee5Cc8A6770` | cJPYC | Japanese Yen (Compliant) | 6 | ✅ Canonical cJPYC |
|
||||
| `0x873990849DDa5117d7C644f0aF24370797C03885` | cCHFC | Swiss Franc (Compliant) | 6 | ✅ Canonical cCHFC |
|
||||
| `0x54dBd40cF05e15906A2C21f600937e96787f5679` | cCADC | Canadian Dollar (Compliant) | 6 | ✅ Canonical cCADC |
|
||||
| `0x290E52a8819A4fbD0714E517225429aA2B70EC6b` | cXAUC | Gold (Compliant) | 6 | ✅ Canonical cXAUC |
|
||||
| `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` | cXAUT | Tether XAU (Compliant) | 6 | ✅ Canonical cXAUT |
|
||||
|
||||
**Additional contracts returned by Blockscout (same symbol, different addresses):**
|
||||
|
||||
| Address | Symbol | Note |
|
||||
|---------|--------|------|
|
||||
| `0x362E9a45Ef6e554760f9671938235Cbc9b6E80Ed` | LINK | Non-canonical; likely test/deploy clone |
|
||||
| `0xC158b6cD3A3088C52F797D41f5Aa02825361629e` | LINK | Non-canonical; likely test/deploy clone |
|
||||
| `0x36927A5D9896CD6323cfEca1060A9aE932b05B05` | cUSDT | Non-canonical |
|
||||
| `0xFe6023265F3893C4cc98CE5Fe7ACBd79DB9cbB2D` | cUSDT | Non-canonical |
|
||||
| `0x044032f30393c60138445061c941e2FB15fb0af2` | cUSDC | Non-canonical |
|
||||
| `0x98E6aF252C55020d99A32F46B541d9A95987Cd0e` | cUSDC | Non-canonical |
|
||||
|
||||
These extra addresses are on-chain ERC-20 contracts that Blockscout indexes; they are **not** in the repo’s canonical token list and may be legacy/test deployments.
|
||||
|
||||
### 2.1 WETH9 metadata quirk (confirmed live 2026-03)
|
||||
|
||||
The Explorer’s Blockscout endpoint returns **WETH9 at `0xC02a…` with `name=null`, `symbol=null`, `decimals="0"`**, while other tokens (cUSDT, cUSDC, WETH10) return correct metadata. The **address is correct by design**: Chain 138’s WETH9 is deployed at the same canonical Ethereum mainnet address (genesis/pre-deploy). The only issue is **Blockscout’s metadata extraction** for that contract.
|
||||
|
||||
**Minimal diff for WETH9:**
|
||||
|
||||
| Address | Field | Blockscout `/api/v2/tokens` | Expected (tokenlist / override) |
|
||||
| ------------- | ---------- | --------------------------- | ------------------------------- |
|
||||
| `0xC02a…6Cc2` | `name` | `null` | "Wrapped Ether" |
|
||||
| `0xC02a…6Cc2` | `symbol` | `null` | "WETH" |
|
||||
| `0xC02a…6Cc2` | `decimals` | `"0"` | `18` |
|
||||
|
||||
**Root cause (likely):** Either (1) the contract at `0xC02a…` on 138 does not expose `name()`/`symbol()`/`decimals()` in the way Blockscout expects (or proxy/etch/genesis quirks), or (2) Blockscout’s token metadata indexer failed to decode that address and cached null/0.
|
||||
|
||||
**Actionable fixes (practical order):**
|
||||
|
||||
1. **Confirm WETH9 on-chain** — Call `name()`, `symbol()`, `decimals()` against Chain 138 RPC for `0xC02a…`. If any revert or return empty → fix deployment/etching or add a metadata wrapper.
|
||||
2. **Fix Blockscout** — Force re-index/rescan token metadata for that address (Blockscout admin/indexer), or add a token metadata override for `0xC02a…` if supported.
|
||||
3. **Keep Explorer UI override** — The Explorer SPA already patches WETH9 via `knownTokens` in `explorer-spa.js`; keep as stopgap until Blockscout returns correct metadata.
|
||||
|
||||
To regenerate a full diff (missing_in_blockscout, missing_in_tokenlist, metadata_mismatches), run:
|
||||
`node token-lists/scripts/diff-blockscout-vs-tokenlist.js [--url URL] [--file path/to/blockscout-tokens.json]`
|
||||
and use `dbis-138.tokenlist.json` as the curated source. See §9.
|
||||
|
||||
---
|
||||
|
||||
## 3. Repo Token Lists vs Explorer (Blockscout)
|
||||
|
||||
### 3.1 `token-lists/lists/dbis-138.tokenlist.json` (Chain 138 only)
|
||||
|
||||
| In dbis-138.tokenlist.json | In Blockscout /v2/tokens? | Note |
|
||||
|----------------------------|---------------------------|------|
|
||||
| ETH-USD (0x3304… — Oracle) | No (not an ERC-20 supply token) | Expected; Oracle is a contract, not a supply token in Blockscout list |
|
||||
| WETH (0xC02aa…) | Yes (name/symbol null, decimals 0) | **Explorer:** WETH9 metadata incomplete in API response |
|
||||
| WETH10 (0xf4BB2e…) | Yes | Match |
|
||||
| LINK (0xb7721d…) | Yes | Match |
|
||||
| cUSDT (0x93E6…) | Yes | Match |
|
||||
| cUSDC (0xf22258…) | Yes | Match |
|
||||
| cEURC (0x808596…) | Yes | Match |
|
||||
|
||||
**Missing from dbis-138.tokenlist.json but present on Explorer (Blockscout):**
|
||||
cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT.
|
||||
So the **curated token list is missing 9 compliant tokens** that exist on-chain and appear on the Explorer.
|
||||
|
||||
### 3.2 `explorer-monorepo/backend/config/metamask/DUAL_CHAIN_TOKEN_LIST.tokenlist.json`
|
||||
|
||||
Chain 138 entries: same 7 as dbis-138 (ETH-USD, WETH, WETH10, LINK, cUSDT, cUSDC, cEURC). So **same gap**: the 9 additional compliant tokens (cEURT, cGBP*, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT) are **not** in the MetaMask token list.
|
||||
|
||||
### 3.3 `ADDRESS_MATRIX_AND_STATUS.md` / `CONTRACT_ADDRESSES_REFERENCE.md`
|
||||
|
||||
All **canonical** Chain 138 token addresses (WETH, WETH10, LINK, cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT) match the Blockscout “canonical” set above. The matrix marks cEURT as “not deployed” but Blockscout shows it at `0xdf4b71…` — **update doc:** cEURT is deployed.
|
||||
|
||||
---
|
||||
|
||||
## 4. Summary of Gaps and Actions
|
||||
|
||||
| Item | Status | Recommendation |
|
||||
|------|--------|----------------|
|
||||
| **Explorer token list source** | Confirmed: Blockscout `GET /api/v2/tokens` | No change; document only. |
|
||||
| **WETH9 on Blockscout** | First token has `decimals: "0"`, `name`/`symbol`: null | Verify WETH9 contract metadata on-chain; fix in contract or in Blockscout indexing if needed. |
|
||||
| **dbis-138.tokenlist.json** | Done (2026-02-28) | Added cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT. |
|
||||
| **DUAL_CHAIN_TOKEN_LIST (MetaMask)** | Done (2026-02-28) | Added same 9 tokens to backend and api/rest copies. |
|
||||
| **ADDRESS_MATRIX / docs** | Done | cEURT and all 16 tokens in §1.1; TransactionMirror 0x7131…; summary updated. |
|
||||
| **Extra LINK/cUSDT/cUSDC on Blockscout** | 6 additional contracts | Non-canonical; use §5 canonical addresses only. |
|
||||
|
||||
---
|
||||
|
||||
## 5. Reference: Canonical Chain 138 Token Addresses (Single Source)
|
||||
|
||||
Use this table to align token lists and docs with the Explorer (Blockscout) and `canonical-tokens.ts`:
|
||||
|
||||
| Symbol | Address | Decimals |
|
||||
|--------|---------|----------|
|
||||
| WETH (WETH9) | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | 18 |
|
||||
| WETH10 | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | 18 |
|
||||
| LINK | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | 18 |
|
||||
| cUSDT | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 |
|
||||
| cUSDC | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 |
|
||||
| cEURC | `0x8085961F9cF02b4d800A3c6d386D31da4B34266a` | 6 |
|
||||
| cEURT | `0xdf4b71c61E5912712C1Bdd451416B9aC26949d72` | 6 |
|
||||
| cGBPC | `0x003960f16D9d34F2e98d62723B6721Fb92074aD2` | 6 |
|
||||
| cGBPT | `0x350f54e4D23795f86A9c03988c7135357CCaD97c` | 6 |
|
||||
| cAUDC | `0xD51482e567c03899eecE3CAe8a058161FD56069D` | 6 |
|
||||
| cJPYC | `0xEe269e1226a334182aace90056EE4ee5Cc8A6770` | 6 |
|
||||
| cCHFC | `0x873990849DDa5117d7C644f0aF24370797C03885` | 6 |
|
||||
| cCADC | `0x54dBd40cF05e15906A2C21f600937e96787f5679` | 6 |
|
||||
| cXAUC | `0x290E52a8819A4fbD0714E517225429aA2B70EC6b` | 6 |
|
||||
| cXAUT | `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` | 6 |
|
||||
|
||||
---
|
||||
|
||||
## 6. Related Files
|
||||
|
||||
| File | Role |
|
||||
|------|------|
|
||||
| `explorer-monorepo/frontend/public/explorer-spa.js` | Calls `BLOCKSCOUT_API + '/v2/tokens?page=1&page_size=100'` for the Tokens view |
|
||||
| `explorer-monorepo/backend/api/rest/config.go` | Serves embedded `DUAL_CHAIN_TOKEN_LIST.tokenlist.json` at `/api/config/token-list` |
|
||||
| `explorer-monorepo/backend/config/metamask/DUAL_CHAIN_TOKEN_LIST.tokenlist.json` | Multi-chain token list (138, 1, 651940, 25) for MetaMask |
|
||||
| `token-lists/lists/dbis-138.tokenlist.json` | Chain 138 curated token list (Uniswap-style) |
|
||||
| `smom-dbis-138/services/token-aggregation/src/config/canonical-tokens.ts` | Canonical addresses and env overrides for indexing/reporting |
|
||||
| `docs/11-references/ADDRESS_MATRIX_AND_STATUS.md` | Correlated address matrix; §1.1 includes all 16 tokens; TransactionMirror and summary updated |
|
||||
|
||||
---
|
||||
|
||||
## 7. Pool / allowlist cross-check (Chain 138)
|
||||
|
||||
| Source | cUSDT/cUSDC pool | cUSDT/USDT pool | cUSDC/USDC pool |
|
||||
|--------|------------------|-----------------|----------------|
|
||||
| **ai-mcp-pmm-controller/config/allowlist-138.json** | `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` | `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5` |
|
||||
| **LIQUIDITY_POOLS_MASTER_MAP.md** | Same | Same | Same |
|
||||
| **DEPLOYER_CONTRACTS_INVENTORY / ADDRESS_MATRIX** | Same | Same | Same |
|
||||
|
||||
**Result:** Pool addresses are consistent across allowlist, docs, and deployer inventory. `cross-chain-pmm-lps/config/deployment-status.json` does not list Chain 138 pools (it tracks cW* edge pools on other chains); Chain 138 PMM state is in allowlist and docs.
|
||||
|
||||
---
|
||||
|
||||
## 8. On-chain verification: DODOPMMIntegration token addresses (2026-03-04)
|
||||
|
||||
**Purpose:** Confirm the deployed PMM integration uses the same cUSDT/cUSDC as Explorer canonical and mint/add-liquidity scripts.
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| **Contract** | DODOPMMIntegration at `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` (Chain 138) |
|
||||
| **Method** | `eth_call` to `compliantUSDT()` and `compliantUSDC()` (RPC: `http://192.168.11.211:8545`) |
|
||||
| **compliantUSDT()** | `0x93e66202a11b1772e55407b32b44e5cd8eda7f22` — matches §5 canonical cUSDT |
|
||||
| **compliantUSDC()** | `0xf22258f57794cc8e06237084b353ab30fffa640b` — matches §5 canonical cUSDC |
|
||||
|
||||
**Result:** Explorer canonical tokens, `mint-for-liquidity.sh` (and `.env`), and the deployed DODOPMMIntegration are aligned. Mint and add-liquidity use the correct contracts. Use §5 canonical addresses only; avoid non-canonical Blockscout addresses (§2).
|
||||
|
||||
---
|
||||
|
||||
## 9. Full diff script (Blockscout vs token list)
|
||||
|
||||
To regenerate **missing_in_blockscout**, **missing_in_tokenlist**, and **metadata_mismatches** (and source-of-truth recommendations), run:
|
||||
|
||||
```bash
|
||||
# From repo root (or token-lists/)
|
||||
node token-lists/scripts/diff-blockscout-vs-tokenlist.js
|
||||
```
|
||||
|
||||
Optional:
|
||||
|
||||
- **`--url URL`** — Blockscout tokens API base URL (default: `https://explorer.d-bis.org/api/v2/tokens`). The script paginates until `next_page_params` is null.
|
||||
- **`--file path/to/blockscout-tokens.json`** — Use a saved snapshot instead of live fetch (e.g. when the Explorer is unreachable from the current host).
|
||||
|
||||
Curated list used for comparison: **`token-lists/lists/dbis-138.tokenlist.json`** (Chain 138 only). ETH-USD (oracle) is expected to appear in `missing_in_blockscout` with note *Oracle; not ERC-20 supply token*.
|
||||
|
||||
Output is JSON with: `missing_in_blockscout`, `missing_in_tokenlist`, `metadata_mismatches`, and `source_of_truth` (recommended source per field: address, symbol, name, decimals, logo).
|
||||
60
docs/11-references/HARDWARE_INVENTORY_MASTER.md
Normal file
60
docs/11-references/HARDWARE_INVENTORY_MASTER.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Hardware inventory — master reference
|
||||
|
||||
**Last updated:** 2026-03-03
|
||||
**Purpose:** Single source of truth for total server, workstation, switching, and gateway hardware.
|
||||
|
||||
---
|
||||
|
||||
## Servers
|
||||
|
||||
| Type | Count | Model / notes | Role |
|
||||
|------|-------|----------------|------|
|
||||
| **Dell PowerEdge R630** | **13** | 2-socket, ECC, 2.5" bays | Proxmox cluster nodes (r630-01 … r630-13); IP plan 192.168.11.11–23. Currently 2 active (r630-01, r630-02); r630-03/04 documented powered off. See [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md). |
|
||||
| **Dell PowerEdge R750** | **3** | 2U, 2-socket, NVMe/SSD, GPU-capable | **GPU/AI tier** — assign IPs 192.168.11.24–.26; 2–4 PCIe GPUs per node (e.g. A6000, L40S) for ML/inference. *Alternative:* [2× XE9680](XE9680_VS_R750_DECISION.md) (16× A100 80GB) for heavy AI/training instead of 3× R750. |
|
||||
|
||||
**R630 IP plan (13 nodes):** 192.168.11.11 – 192.168.11.23 (r630-01 … r630-13).
|
||||
**R750 IP suggestion:** 192.168.11.24 – 192.168.11.26 (r750-01, r750-02, r750-03). Document in `config/ip-addresses.conf` as nodes are brought online.
|
||||
|
||||
---
|
||||
|
||||
## Workstations
|
||||
|
||||
| Type | Count | Model / notes | Role |
|
||||
|------|-------|----------------|------|
|
||||
| **Dell Precision 7920** | **2** | Tower workstation, multi-GPU capable | Admin, dev, or build workstations; assign IPs in 192.168.11.x (e.g. .30–.31); connect to management LAN and/or 10G if NICs support. |
|
||||
|
||||
**7920 IP suggestion:** 192.168.11.30 – 192.168.11.31 (workstation-01, workstation-02).
|
||||
|
||||
---
|
||||
|
||||
## Gateways / firewalls / WAN aggregation
|
||||
|
||||
| Type | Count | Model / notes | Role |
|
||||
|------|-------|----------------|------|
|
||||
| **ML110 Gen9** | 1 | Dell PowerEdge ML110 Gen9, 8–12 GbE | **OPNsense/pfSense WAN aggregator** — between 6–10 Spectrum cable modems (WAN) and redundant UDM Pro gateways (LAN). Multi-WAN load balance/failover. See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md). *Prerequisite:* Migrate all Proxmox workloads off ML110 before repurpose. |
|
||||
| **UniFi Dream Machine Pro (UDM Pro)** | **2** | UniFi UDM Pro | Primary: 192.168.11.1; second: 192.168.11.2 (HA/failover). WAN uplink from ML110 OPNsense/pfSense. Port forward 76.53.10.36 → NPMplus, etc. |
|
||||
|
||||
---
|
||||
|
||||
## Switching
|
||||
|
||||
| Type | Count | Model | Notes |
|
||||
|------|-------|------|--------|
|
||||
| **UniFi XG 10G 16-port** | **2** | UniFi Switch XG (10GbE, 16 ports) | 10 Gbps backbone for Proxmox inter-node and Ceph storage; dual-attach for HA. See [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md). |
|
||||
|
||||
**Use for 13-node cluster:**
|
||||
|
||||
- **Ceph cluster network:** Dedicated VLAN or subnet across the 10G switches; connect all 13 R630s (and R750s if in Ceph) for backend traffic.
|
||||
- **Management (1G):** UDM Pro(s) and existing 1G LAN; workstations and management IPs on same subnet or VLAN.
|
||||
- **Redundancy:** Two XG switches allow dual-attach per node (one link per switch or LACP).
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- **13-node architecture:** [02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md)
|
||||
- **Network + cabling checklist:** [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md)
|
||||
- **Bring-online checklist:** [13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md)
|
||||
- **Network master:** [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md)
|
||||
- **ML110 → OPNsense/pfSense:** [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md)
|
||||
- **r630-03/04 power-on and fixes:** [reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md](../../reports/R630_03_04_POWER_ON_ISSUES_AND_FIXES.md)
|
||||
@@ -65,11 +65,11 @@ This document maps all **private**, **public**, **reserve**, and **stabilization
|
||||
| cUSDC / USDC (official) | Public | DODO PMM | ✅ **Created** | Pool: `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5`; script: `CreateCUSDCUSDCPool.s.sol` |
|
||||
| cUSDT / XAU | Public | DODO PMM | ❌ **Not deployed** | Requires XAU token (not on chain) |
|
||||
| cUSDC / XAU | Public | DODO PMM | ❌ **Not deployed** | Requires XAU token |
|
||||
| cEURT / XAU | Public | DODO PMM | ❌ **Not deployed** | Requires cEURT + XAU (neither deployed) |
|
||||
| cEURT / XAU | Public | DODO PMM | ❌ **Not deployed** | Requires XAU (not on chain); cEURT deployed |
|
||||
|
||||
**Purpose:** User routing, price discovery, flash loan access. **Not** primary stabilization.
|
||||
|
||||
**Contracts:** `DODOPMMIntegration.sol` at `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` (Mock DVM); all three pools created. **DODOPMMProvider** deployed at `0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0`; pools registered via `RegisterDODOPools.s.sol`. **Add liquidity:** [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md). **Pre-deployment steps:** [PRE_DEPLOYMENT_CHECKLIST.md](../03-deployment/PRE_DEPLOYMENT_CHECKLIST.md).
|
||||
**Contracts:** `DODOPMMIntegration.sol` at `0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` (Mock DVM); all three pools created. **DODOPMMProvider** deployed at `0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0`; pools registered via `RegisterDODOPools.s.sol`. **Full mesh:** [PMM_FULL_MESH_AND_PUBLIC_SINGLE_SIDED_PLAN.md](../03-deployment/PMM_FULL_MESH_AND_PUBLIC_SINGLE_SIDED_PLAN.md) and `create-pmm-full-mesh-chain138.sh` (all c* vs c* + optional c* vs official). **Add liquidity:** [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md). **Pre-deployment steps:** [PRE_DEPLOYMENT_CHECKLIST.md](../03-deployment/PRE_DEPLOYMENT_CHECKLIST.md).
|
||||
**Config:** `CHAIN_138_DODO_PMM_INTEGRATION` set in .env; `CHAIN_138_DODO_POOL_MANAGER`, `CHAIN_138_DODO_VENDING_MACHINE` (optional).
|
||||
|
||||
**Source:** [VAULT_SYSTEM_MASTER_TECHNICAL_PLAN.md](../VAULT_SYSTEM_MASTER_TECHNICAL_PLAN.md) §4, [DODO_PMM_INTEGRATION.md](../../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md)
|
||||
@@ -204,6 +204,7 @@ From [VAULT_SYSTEM_MASTER_TECHNICAL_PLAN.md](../VAULT_SYSTEM_MASTER_TECHNICAL_PL
|
||||
|
||||
| Document | Purpose |
|
||||
|----------|---------|
|
||||
| [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md) | **Status + full route map:** deployed tokens/coins and bridges per network, DODO/Uniswap LPs, routing to and from all chains. |
|
||||
| [POOLS_AND_NETWORKS_FULL_DESIGN.md](POOLS_AND_NETWORKS_FULL_DESIGN.md) | **Full design:** every pool and network (61 pools, 6 networks). |
|
||||
| [POOL_ACCESS_DASHBOARD_API_MCP.md](POOL_ACCESS_DASHBOARD_API_MCP.md) | Whether pools are accessible via standard DODO dashboard, API, and MCP. |
|
||||
| [GAPS_FILLED_2026-02-27.md](GAPS_FILLED_2026-02-27.md) | Summary of gaps filled (API cW* chains, MCP mock_dvm, pool-matrix 11 chains, docs). |
|
||||
|
||||
103
docs/11-references/MINT_C_AND_CW_ON_ALL_NETWORKS.md
Normal file
103
docs/11-references/MINT_C_AND_CW_ON_ALL_NETWORKS.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Minting c* and cW* on Chain 138 and Other Networks
|
||||
|
||||
**Purpose:** How to mint compliant tokens (c*) and compliant wrapped tokens (cW*) to the deployer on Chain 138 and on other networks where they are deployed.
|
||||
|
||||
**Deployer:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
| Token type | Chain 138 | Other networks (1, 25, 56, 137, 100, 10, 42161, 8453, 43114) |
|
||||
|------------|-----------|---------------------------------------------------------------|
|
||||
| **c*** (cUSDT, cUSDC, cEURC, …) | Deployer is **owner** → can mint | Deploy first with `DeployCompliantFiatTokensForChain.s.sol` (owner = deployer), then mint same as 138 |
|
||||
| **cW*** (cWUSDT, cWUSDC, …) | Not deployed on 138 (cW* are on destination chains only) | Deployer is **admin** and has **MINTER_ROLE** → can mint on any chain where cW* are deployed |
|
||||
|
||||
---
|
||||
|
||||
## 1. c* on Chain 138
|
||||
|
||||
All 12 c* are already deployed; deployer is owner. Mint with cast or scripts.
|
||||
|
||||
**Script (cUSDT/cUSDC only):** `smom-dbis-138/scripts/mint-for-liquidity.sh`
|
||||
**Script (all 12 c*):** `smom-dbis-138/scripts/mint-all-c-star-138.sh [amount_human]` — mints cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT to deployer (default 1M each).
|
||||
|
||||
**Cast (per token):**
|
||||
```bash
|
||||
cd smom-dbis-138 && source .env
|
||||
DEPLOYER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
|
||||
# 1M tokens = 1000000000000 base units (6 decimals)
|
||||
cast send <CUSDT_ADDRESS> "mint(address,uint256)" "$DEPLOYER" 1000000000000 \
|
||||
--rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" --legacy --gas-limit 100000
|
||||
```
|
||||
|
||||
Addresses: see [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) §1.1.
|
||||
|
||||
---
|
||||
|
||||
## 2. c* on other networks
|
||||
|
||||
### Step 1: Deploy c* to the target chain (if not already deployed)
|
||||
|
||||
From `smom-dbis-138/`:
|
||||
|
||||
```bash
|
||||
source .env
|
||||
# Example: Polygon (137). Set RPC and chain-id for the target chain.
|
||||
export RPC_URL="$POLYGON_MAINNET_RPC" # or BSC_RPC_URL, etc.
|
||||
# Deploy cUSDT + cUSDC (default). Add DEPLOY_CEURC=1 etc. for more.
|
||||
forge script script/deploy/DeployCompliantFiatTokensForChain.s.sol:DeployCompliantFiatTokensForChain \
|
||||
--rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --chain-id 137
|
||||
|
||||
# Optional: deploy all 12 c* (set env flags)
|
||||
DEPLOY_CEURC=1 DEPLOY_CEURT=1 DEPLOY_CGBPC=1 DEPLOY_CGBPT=1 \
|
||||
DEPLOY_CAUDC=1 DEPLOY_CJPYC=1 DEPLOY_CCHFC=1 DEPLOY_CCADC=1 \
|
||||
DEPLOY_CXAUC=1 DEPLOY_CXAUT=1 \
|
||||
forge script script/deploy/DeployCompliantFiatTokensForChain.s.sol:DeployCompliantFiatTokensForChain \
|
||||
--rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --chain-id 137
|
||||
```
|
||||
|
||||
Then set in `.env`: `CUSDT_137=<addr>`, `CUSDC_137=<addr>`, etc.
|
||||
|
||||
### Step 2: Mint c* on that chain
|
||||
|
||||
Same as 138: deployer is owner. Use cast with the chain’s RPC and token address:
|
||||
|
||||
```bash
|
||||
RPC="$POLYGON_MAINNET_RPC"
|
||||
CUSDT_POLY="0x..." # from deploy output or .env CUSDT_137
|
||||
cast send "$CUSDT_POLY" "mint(address,uint256)" "$DEPLOYER" 1000000000000 \
|
||||
--rpc-url "$RPC" --private-key "$PRIVATE_KEY" --legacy --gas-limit 100000
|
||||
```
|
||||
|
||||
Use the same cast pattern with that chain's RPC and token addresses from .env (e.g. `CUSDT_POLYGON`, `CUSDC_POLYGON` for Polygon).
|
||||
|
||||
---
|
||||
|
||||
## 3. cW* on other networks
|
||||
|
||||
cW* are **CompliantWrappedToken**; the deploy script grants **MINTER_ROLE** to both the **bridge** and the **admin (deployer)**. So the deployer can mint cW* on any chain where cW* were deployed by this repo.
|
||||
|
||||
**Per token, per chain (cast):**
|
||||
```bash
|
||||
cd smom-dbis-138 && source .env
|
||||
# Example: mint 1M cWUSDT on Polygon (137)
|
||||
CWUSDT_ADDR="$CWUSDT_137" # from .env after DeployCWTokens
|
||||
RPC="$POLYGON_MAINNET_RPC"
|
||||
DEPLOYER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
|
||||
cast send "$CWUSDT_ADDR" "mint(address,uint256)" "$DEPLOYER" 1000000000000 \
|
||||
--rpc-url "$RPC" --private-key "$PRIVATE_KEY" --legacy --gas-limit 100000
|
||||
```
|
||||
|
||||
**Env vars for addresses (examples):** `CWUSDT_137`, `CWUSDC_137`, `CWUSDT_1`, `CWUSDC_1`, … (see [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md) and `token-mapping-multichain.json`).
|
||||
|
||||
Use `smom-dbis-138/scripts/mint-cw-on-chain.sh <CHAIN_NAME> [amount]` to mint all cW* on a chain (e.g. `./scripts/mint-cw-on-chain.sh Polygon`). Requires `CWUSDT_<CHAIN>`, `CWUSDC_<CHAIN>`, etc. and chain RPC in .env.
|
||||
|
||||
---
|
||||
|
||||
## 4. Reference: token addresses by chain
|
||||
|
||||
- **Chain 138 c*:** [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) §1.1
|
||||
- **cW* and networks:** [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md), `config/token-mapping-multichain.json`
|
||||
- **Deploy c* on a chain:** `DeployCompliantFiatTokensForChain.s.sol`
|
||||
- **Deploy cW* on a chain:** `DeployCWTokens.s.sol` (set `CW_BRIDGE_ADDRESS`)
|
||||
76
docs/11-references/ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md
Normal file
76
docs/11-references/ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# ML110 Gen9 → OPNsense/pfSense WAN aggregator
|
||||
|
||||
**Last updated:** 2026-03-03
|
||||
**Purpose:** Repurpose the Dell ML110 Gen9 from a Proxmox host to a **firewall/WAN aggregator** running OPNsense or pfSense, with 8–12 GbE ports, sitting between 6–10 Spectrum cable modems and the redundant UDM Pro gateways.
|
||||
|
||||
**Related:** [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) | [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md)
|
||||
|
||||
---
|
||||
|
||||
## Role
|
||||
|
||||
| Aspect | Description |
|
||||
|--------|-------------|
|
||||
| **Hardware** | Dell PowerEdge ML110 Gen9 (repurposed from Proxmox) |
|
||||
| **Software** | OPNsense or pfSense (firewall / router OS) |
|
||||
| **Ports** | **8–12 Gigabit Ethernet** (onboard + add-in NICs as needed) |
|
||||
| **Position** | **Between** 6–10 Spectrum cable modems (WAN) and the 2× UDM Pro gateways (LAN) |
|
||||
| **Function** | Multi-WAN aggregation, load balancing or failover across modems; single or redundant uplink to UDM Pros; optional firewall/DPI before traffic reaches UniFi |
|
||||
|
||||
---
|
||||
|
||||
## Topology
|
||||
|
||||
```
|
||||
[6–10 × Spectrum cable modems]
|
||||
│
|
||||
│ WAN (GbE) — 6–10 ports on ML110
|
||||
▼
|
||||
┌─────────────────────────────────────────┐
|
||||
│ ML110 Gen9 │
|
||||
│ OPNsense or pfSense │
|
||||
│ 8–12 GbE: 6–10 WAN, 1–2 LAN to UDM Pro │
|
||||
└─────────────────────────────────────────┘
|
||||
│
|
||||
│ LAN (1–2 GbE) — to UDM Pro WAN ports
|
||||
▼
|
||||
┌────────────────────┬────────────────────┐
|
||||
│ UDM Pro #1 │ UDM Pro #2 │
|
||||
│ 192.168.11.1 │ 192.168.11.2 │
|
||||
│ (primary gateway) │ (HA / standby) │
|
||||
└────────────────────┴────────────────────┘
|
||||
│
|
||||
▼
|
||||
192.168.11.0/24 — LAN (Proxmox, LXC, workstations, etc.)
|
||||
```
|
||||
|
||||
- **WAN side:** 6–10 GbE ports to Spectrum modems (multi-WAN in OPNsense/pfSense).
|
||||
- **LAN side:** 1–2 GbE ports to UDM Pro(s); UDM Pros receive WAN from ML110 (or from ML110’s aggregated/failover uplink).
|
||||
- **IP:** ML110’s LAN-facing interface can use a dedicated subnet (e.g. 192.168.10.0/24) between ML110 and UDM Pros, or a chosen IP (e.g. 192.168.11.10) if it’s on the same segment; document chosen scheme in [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md).
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites (before repurpose)
|
||||
|
||||
1. **Migrate all workloads off ML110:** ML110 is currently a Proxmox node (192.168.11.10) with containers/VMs (e.g. Besu validators, CCIP monitor, others). Move them to r630-01, r630-02, or other R630s **before** converting ML110 to OPNsense/pfSense. See [PROXMOX_LOAD_BALANCING_RUNBOOK.md](../04-configuration/PROXMOX_LOAD_BALANCING_RUNBOOK.md) and cluster migration/backup-restore.
|
||||
2. **Remove ML110 from Proxmox cluster:** After migration, remove the node from the cluster (or reinstall the OS for a clean OPNsense/pfSense install). Cluster will then be 2 nodes (r630-01, r630-02) until r630-03 (and others) are joined.
|
||||
3. **NIC count:** Ensure ML110 has **8–12 GbE** (onboard + PCIe NICs). Add Intel/Broadcom multi-port GbE cards if needed.
|
||||
|
||||
---
|
||||
|
||||
## Implementation notes
|
||||
|
||||
- **OS install:** Fresh install of OPNsense or pfSense on ML110 (replace Proxmox); no dual-boot required.
|
||||
- **Multi-WAN:** Configure 6–10 WAN interfaces; use gateway groups for failover or load balancing.
|
||||
- **LAN to UDM Pro:** Connect 1–2 LAN ports to UDM Pro WAN ports; configure UDM Pros to use ML110 as upstream (DHCP or static from ML110).
|
||||
- **Redundant UDM Pro:** Both UDM Pros can receive WAN from the same ML110 (different ports or VLANs), or use ML110 HA/carp if you add a second firewall later.
|
||||
- **Documentation:** After cutover, update [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md) so 192.168.11.10 (if retained) or the new management IP is the OPNsense/pfSense appliance, not Proxmox.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) — ML110 listed as WAN aggregator (OPNsense/pfSense).
|
||||
- [NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md) — Gateway and Proxmox host table (ml110 no longer Proxmox).
|
||||
- [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md) — Topology with ML110 between modems and UDM Pros.
|
||||
- [PROXMOX_LOAD_BALANCING_RUNBOOK.md](../04-configuration/PROXMOX_LOAD_BALANCING_RUNBOOK.md) — Migrate workloads off ml110 before repurpose.
|
||||
@@ -17,14 +17,15 @@
|
||||
- **VLAN:** 11 (MGMT-LAN)
|
||||
- **DNS Servers:** 8.8.8.8, 8.8.4.4
|
||||
|
||||
### Proxmox Hosts (192.168.11.10–12)
|
||||
### Proxmox Hosts (192.168.11.11–12; ml110 repurposed)
|
||||
|
||||
| Host | IP Address | Role | Status |
|
||||
|------|------------|------|--------|
|
||||
| ml110 | 192.168.11.10 | Besu network nodes | ✅ Active |
|
||||
| r630-01 | 192.168.11.11 | Infrastructure, RPC, Services, **CCIP Relay** | ✅ Active |
|
||||
| r630-02 | 192.168.11.12 | Firefly, NPMplus secondary, MIM4U | ✅ Active |
|
||||
|
||||
**ML110 (192.168.11.10) repurposed:** ML110 Gen9 is being converted to **OPNsense/pfSense** with 8–12 GbE, acting as **WAN aggregator** between 6–10 Spectrum cable modems and the 2× UDM Pro gateways. After repurpose, .10 is the firewall appliance (not Proxmox). See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md). **Before repurpose:** Migrate all containers/VMs off ml110 to r630-01/r630-02 (or other R630s); cluster will be 2 nodes until r630-03+ join.
|
||||
|
||||
**CCIP Relay (r630-01):** Host service at `/opt/smom-dbis-138/services/relay`; relays Chain 138 → Mainnet; uses VMID 2201 (192.168.11.221) for RPC. See [07-ccip/CCIP_RELAY_DEPLOYMENT.md](../07-ccip/CCIP_RELAY_DEPLOYMENT.md).
|
||||
|
||||
**Four NPMplus instances (one per public IP):** 76.53.10.36, 76.53.10.37, 76.53.10.38, 76.53.10.40. See [04-configuration/NPMPLUS_FOUR_INSTANCES_MASTER.md](../04-configuration/NPMPLUS_FOUR_INSTANCES_MASTER.md).
|
||||
@@ -33,7 +34,7 @@
|
||||
|
||||
**NPMplus #3 (76.53.10.38, LXC VMID 10235):** 192.168.11.169 (single NIC). Port forwarding: 76.53.10.38:80/81/443 → 192.168.11.169:80/81/443. **Nathan's core-2 RPC, All Mainnet (Alltra), and HYBX** nodes and services route here. Designated public IP: 76.53.10.42. See [04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md](../04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md).
|
||||
|
||||
**NPMplus #4 (76.53.10.40, LXC VMID 10236):** 192.168.11.170. Port forwarding: 76.53.10.40:80/81/443 → 192.168.11.170:80/81/443; optional 22 → 192.168.11.59 (dev VM). **Dev/Codespaces:** Gitea, Cursor Remote SSH, Proxmox admin panels (pve.ml110, pve.r630-01, pve.r630-02). Dedicated Cloudflare Tunnel. See [04-configuration/DEV_CODESPACES_76_53_10_40.md](../04-configuration/DEV_CODESPACES_76_53_10_40.md) and [04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md](../04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md).
|
||||
**NPMplus #4 (76.53.10.40, LXC VMID 10236):** 192.168.11.170. Port forwarding: 76.53.10.40:80/81/443 → 192.168.11.170:80/81/443; optional 22 → 192.168.11.59 (dev VM). **Dev/Codespaces:** Gitea, Cursor Remote SSH, Proxmox admin panels (pve.r630-01, pve.r630-02). Dedicated Cloudflare Tunnel. *(ml110 repurposed to OPNsense/pfSense WAN aggregator; no longer Proxmox.)* See [04-configuration/DEV_CODESPACES_76_53_10_40.md](../04-configuration/DEV_CODESPACES_76_53_10_40.md) and [04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md](../04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md).
|
||||
|
||||
**Dev VM (VMID 5700):** 192.168.11.59. Shared Cursor dev environment, four users, Gitea (private GitOps). See [04-configuration/DEV_VM_GITOPS_PLAN.md](../04-configuration/DEV_VM_GITOPS_PLAN.md).
|
||||
|
||||
@@ -258,6 +259,9 @@ Direct to RPC Nodes (192.168.11.211-243:8545/8546)
|
||||
## Related Documents
|
||||
|
||||
- **[NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md)** (this doc) - IP matrix above
|
||||
- **[HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md)** - 13× R630, 3× R750, 2× Dell 7920, 2× UDM Pro, 2× UniFi XG 10G, ml110
|
||||
- **[13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md)** - VLANs, topology, XG port mapping
|
||||
- **[13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md)** - Bring-online order for R630/R750/7920/UDM Pro #2
|
||||
- **[VMID_ALLOCATION_FINAL.md](../02-architecture/VMID_ALLOCATION_FINAL.md)** - VMID master inventory
|
||||
- **[VMID_IP_FIXED_REFERENCE.md](VMID_IP_FIXED_REFERENCE.md)** - Fixed VMID→IP (2101, 2201, 5000)
|
||||
- **[BLOCKSCOUT_FIX_RUNBOOK.md](../03-deployment/BLOCKSCOUT_FIX_RUNBOOK.md)** - Blockscout (VMID 5000) troubleshooting
|
||||
|
||||
@@ -97,6 +97,8 @@ So: **all pools can be accessed via API and MCP** once the above config and code
|
||||
|
||||
## References
|
||||
|
||||
- [AI_AGENTS_57XX_MCP_ADDENDUM.md](../02-architecture/AI_AGENTS_57XX_MCP_ADDENDUM.md) — Multi-chain MCP, Uniswap profile, automation triggers
|
||||
- [MCP_AI_POOL_MANAGEMENT_PLAN_UPGRADES.md](../03-deployment/MCP_AI_POOL_MANAGEMENT_PLAN_UPGRADES.md) — Plan upgrades and completed items (allowlist scripts, runbook steps)
|
||||
- [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) — Pool map 138 & 651940
|
||||
- [POOLS_AND_NETWORKS_FULL_DESIGN.md](POOLS_AND_NETWORKS_FULL_DESIGN.md) — All 61 pools, 6 networks
|
||||
- [AI_AGENTS_57XX_MCP_CONTRACTS_AND_CHAINS.md](../02-architecture/AI_AGENTS_57XX_MCP_CONTRACTS_AND_CHAINS.md) — MCP allowlist and chains
|
||||
|
||||
106
docs/11-references/ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md
Normal file
106
docs/11-references/ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Routes: No Pre-Funded Bridge Required
|
||||
|
||||
**Last Updated:** 2026-03-04
|
||||
**Purpose:** Routes from the deployer wallet (or any user) to public-network stablecoins (or between tokens) where **pre-funding a destination bridge is not required**. These use **lock-mint** (source locks, destination mints), **same-chain** (no bridge), or **DEX-only** flows. For routes that *do* require bridge pre-funding (e.g. 138 → Mainnet WETH), see [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md).
|
||||
|
||||
**Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
|
||||
**Why this doc:** The 138 → Ethereum Mainnet WETH path uses a **relay + release** model: CCIPRelayBridge on Mainnet **releases** WETH from a pool and must be **funded with Mainnet WETH** before transfers can complete. Other paths (same-chain DODO, AlltraAdapter, CCIP to non-Mainnet chains with mint-on-receive) do not require pre-funding the destination bridge.
|
||||
|
||||
**Sources:** [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md), [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md), [07-ccip/CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md), [07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md), [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md).
|
||||
|
||||
---
|
||||
|
||||
## 1. Excluded: routes that require a pre-funded bridge
|
||||
|
||||
| Route | Reason |
|
||||
|-------|--------|
|
||||
| **138 WETH → Ethereum Mainnet (1)** | CCIPRelayBridge on chain 1 **releases** WETH (does not mint). Mainnet WETH must be sent to the bridge before 138→Mainnet transfers can complete. See [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md) §3.2 and [CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md). |
|
||||
|
||||
All routes below **do not** require pre-funding the destination bridge.
|
||||
|
||||
---
|
||||
|
||||
## 2. Same-chain (no bridge)
|
||||
|
||||
No bridge is used; no pre-fund requirement.
|
||||
|
||||
| From (chain) | To (same chain) | Mechanism | Status |
|
||||
|--------------|-----------------|------------|--------|
|
||||
| **138 cUSDT** | 138 cUSDC | DODOPMMIntegration / pool `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | ✅ Live |
|
||||
| **138 cUSDC** | 138 cUSDT | Same pool | ✅ Live |
|
||||
| **Any chain** | Same chain public stable | Native DEX (Uniswap, etc.) — deployer or user holds token on that chain, swaps on DEX | ✅ Standard |
|
||||
|
||||
---
|
||||
|
||||
## 3. Cross-chain: lock-mint (destination mints)
|
||||
|
||||
Destination bridge **mints** (or releases from lock) on receive; no need to pre-fund a liquidity pool on the destination.
|
||||
|
||||
### 3.1 Chain 138 ↔ ALL Mainnet (651940) — AlltraAdapter
|
||||
|
||||
Design: **lock on 138 → relayer mints on 651940** (and reverse). No destination bridge pre-fund.
|
||||
|
||||
| From | To | Route | Status |
|
||||
|------|-----|--------|--------|
|
||||
| 138 (cUSDT, cUSDC, WETH, etc.) | 651940 AUSDT, USDC, WETH, WALL | AlltraAdapter `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` (138↔651940) → then DEX on 651940 if needed | ✅ Live |
|
||||
| 651940 | 138 | AlltraAdapter 651940→138 | ✅ |
|
||||
|
||||
**Source:** [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md), [CROSS_CHAIN_ARBITRAGE_DESIGN](../07-ccip/CROSS_CHAIN_ARBITRAGE_DESIGN.md) (lock on 138, relayer mints on 651940).
|
||||
|
||||
### 3.2 Chain 138 → CCIP destinations other than Mainnet (1)
|
||||
|
||||
For **138 → BSC (56), Polygon (137), Arbitrum (42161), Optimism (10), Avalanche (43114), Cronos (25), Celo (42220), Gnosis (100), Wemix (1111)**, the destination receiver is **CCIPWETH9Bridge** / **CCIPWETH10Bridge** (same contract type as on 138). With **native CCIP**, the protocol **delivers** the token amounts to the receiver when the message is executed; the receiver then **forwards** to the recipient (`transfer(recipient, amount)`). So the receiver **does not mint** — it **receives from CCIP and forwards**. No pre-fund is required (tokens arrive with the message).
|
||||
|
||||
| From (138) | To (chain) | Route | Status |
|
||||
|------------|------------|--------|--------|
|
||||
| WETH9 / WETH10 | 56, 100, 137, 10, 42161, 8453, 43114, 25, 42220, 1111 | CCIP WETH9/WETH10 → destination (receiver **receives from CCIP + forwards**); then DEX to USDT/USDC on that chain | ✅ (Celo, Gnosis 2026-03-04); Wemix ⏳ |
|
||||
|
||||
**Per-chain, per-token confirmation:** See [CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN](CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN.md) for which tokens use **mint** vs **receive+forward** vs **release** (pre-fund) on each chain.
|
||||
|
||||
### 3.3 cW* (c* → cW* on public chains) — when deployed
|
||||
|
||||
Design: **lock cUSDT/cUSDC on 138, mint cWUSDT/cWUSDC on destination** in `ccipReceive`. No pre-funded pool; receiver has MINTER_ROLE and mints.
|
||||
|
||||
| From (138) | To (destination chain) | Route | Status |
|
||||
|------------|------------------------|--------|--------|
|
||||
| cUSDT / cUSDC | cWUSDT / cWUSDC on chain (e.g. 56, 137, 1) | UniversalCCIPBridge or dedicated lock-and-send → destination TwoWayTokenBridgeL2 (or CCIPReceiverCW) → `ccipReceive` → `cW*.mint(recipient, amount)` | ⏳ Design / partial; deployment-status empty |
|
||||
|
||||
**Source:** [CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md) — “lock c* on 138, mint cW* on destination”; receiver implements `ccipReceive` → `cW*.mint(recipient, amount)`.
|
||||
|
||||
---
|
||||
|
||||
## 4. Reverse: inbound to 138 (no pre-fund)
|
||||
|
||||
| From (chain) | To (138) | Route | Pre-fund? |
|
||||
|---------------|----------|--------|-----------|
|
||||
| 651940 | 138 | AlltraAdapter 651940→138 | No (lock-mint / adapter design) |
|
||||
| Other chains (56, 137, 10, etc.) WETH | 138 | CCIP receiver on 138 → WETH9/WETH10 | No (138 side mints or credits) |
|
||||
| Mainnet (1) WETH | 138 | Via relay: Mainnet burns/locks, 138 receives. 138 side does not require a pre-funded pool for *inbound*; the relay’s **outbound** (138→1) is what requires Mainnet bridge pre-fund. | Inbound to 138: no pre-fund |
|
||||
|
||||
---
|
||||
|
||||
## 5. Summary: no pre-fund required
|
||||
|
||||
| Category | Routes | Pre-funded bridge required? |
|
||||
|----------|--------|-----------------------------|
|
||||
| Same-chain 138 (cUSDT↔cUSDC) | DODO PMM pool | No |
|
||||
| Same-chain any (DEX swap) | User holds token on chain, swap on DEX | No |
|
||||
| 138 ↔ 651940 | AlltraAdapter (lock / mint) | No |
|
||||
| 138 → chains other than Mainnet (1) | CCIP WETH9/WETH10 (destination **receives from CCIP + forwards**; no mint) | No |
|
||||
| 138 → Mainnet (1) WETH | CCIP relay → CCIPRelayBridge **releases** | **Yes** — excluded from this doc |
|
||||
| cW* 138 → dest (when deployed) | Lock c* on 138, mint cW* on dest | No |
|
||||
| Inbound to 138 | AlltraAdapter, CCIP receiver on 138 | No |
|
||||
|
||||
---
|
||||
|
||||
## 6. References
|
||||
|
||||
| Document | Use |
|
||||
|----------|-----|
|
||||
| [CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN](CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN.md) | **Per chain and token:** confirms receiver mints vs receive+forward vs release (pre-fund) |
|
||||
| [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md) | Full route list including routes that *do* require pre-funded bridge (138→Mainnet WETH) |
|
||||
| [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md) | Bridges and routing by chain |
|
||||
| [07-ccip/CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md) | cW* lock-mint flow (no pre-fund) |
|
||||
| [07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md) | Why Mainnet WETH requires bridge pre-fund (relay + release) |
|
||||
| [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) | AlltraAdapter, CCIP bridges, CCIPRelayBridge |
|
||||
@@ -1,10 +1,12 @@
|
||||
# Tokens and Networks — Mintable to Deployer (Liquidity Pools & Bridges)
|
||||
|
||||
**Last Updated:** 2026-03-01
|
||||
**Last Updated:** 2026-03-02
|
||||
**Purpose:** Single list of all tokens and networks where tokens **can be minted** (or otherwise credited) to the deployer address for funding PMM liquidity pools and bridges. Use this to fund all operator/LAN-only items (add liquidity, CCIP bridges, etc.).
|
||||
|
||||
**Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||||
|
||||
**Full mint runbook (c* and cW* on 138 + other networks):** [MINT_C_AND_CW_ON_ALL_NETWORKS.md](MINT_C_AND_CW_ON_ALL_NETWORKS.md)
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
87
docs/11-references/XE9680_VS_R750_DECISION.md
Normal file
87
docs/11-references/XE9680_VS_R750_DECISION.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 2× XE9680 vs 3× R750 — GPU/AI tier decision
|
||||
|
||||
**Last updated:** 2026-03-03
|
||||
**Context:** The 3× R750 were planned for **GPU/AI** workloads. This doc compares that plan to using **2× Dell PowerEdge XE9680** (8× NVIDIA A100 80GB SXM4 per node) instead.
|
||||
|
||||
**Reference:** [Dell PowerEdge XE9680 — 8× NVIDIA A100 80GB SXM4](https://www.theserverstore.com/dell-poweredge-xe9680-6u-gpu-rackmount-server-with-8x-nvidia-tensor-core-a100-80gb-sxm4-gpu)
|
||||
|
||||
---
|
||||
|
||||
## Opinion summary
|
||||
|
||||
- **For a dedicated GPU/AI tier:** **2× XE9680 is the stronger choice** than 3× R750 (GPU-equipped) if you need serious capacity: 16× A100 80GB, purpose-built cooling and power, NVLink, and optional 200G InfiniBand. Pricing (vendor example): **\$94,999** per node on sale (list \$179,000) → **\$189,998** for 2 nodes; vs ~\$30k–80k for 3× R750 with GPUs.
|
||||
- **3× R750 (GPU) still makes sense** if you prefer lower cost, fewer GPUs (e.g. 6–12 total across 3 nodes), PCIe-based GPUs (e.g. A6000, L40S), and more flexibility to mix GPU and CPU workloads per node.
|
||||
- **Recommendation:** Prefer **2× XE9680** for heavy AI/ML (training, large models, 80GB VRAM); prefer **3× R750 + GPUs** for cost-sensitive or lighter/mixed GPU workloads.
|
||||
|
||||
---
|
||||
|
||||
## 3× R750 as GPU/AI nodes
|
||||
|
||||
| Aspect | R750 (2U, GPU-equipped) |
|
||||
|--------|---------------------------|
|
||||
| Form factor | 2U per node; 6U total for 3 |
|
||||
| GPU capacity | Typically 2–4 PCIe GPUs per node (e.g. NVIDIA A6000, L40S, A40) → 6–12 GPUs total; depends on TDP and slot layout |
|
||||
| GPU memory | PCIe cards: often 24–48GB per GPU; no 80GB SXM4 in 2U |
|
||||
| Interconnect | PCIe; no NVLink across GPUs; 10G/25G typical unless you add high-speed NICs |
|
||||
| Use case | Lighter training, inference, mixed workloads; good for dev/staging GPU pools |
|
||||
| Cost (approx) | ~\$10k–25k per node (server + GPUs) → ~\$30k–75k for 3 nodes |
|
||||
| Power/cooling | Moderate; 2U-appropriate |
|
||||
|
||||
R750 is a **general-purpose 2U** that can hold GPUs; it is not an 8-GPU dense AI chassis.
|
||||
|
||||
---
|
||||
|
||||
## 2× XE9680 as GPU/AI nodes
|
||||
|
||||
| Aspect | XE9680 (6U, 8× A100 SXM4) |
|
||||
|--------|----------------------------|
|
||||
| Form factor | 6U per node; 12U total for 2 |
|
||||
| GPU capacity | **8× NVIDIA A100 80GB SXM4** per node → **16× A100 80GB** total |
|
||||
| GPU memory | 80GB per A100; NVLink within node for fast multi-GPU training |
|
||||
| Interconnect | 100GbE + 200GbE InfiniBand (Mellanox ConnectX-6); ideal for multi-node scaling |
|
||||
| Use case | Large model training, HPC, generative AI, serious ML/DL workloads |
|
||||
| Cost (approx) | \$94,999/node on sale (list \$179,000) → \$189,998 for 2 nodes |
|
||||
| Power/cooling | High; 6U chassis and power designed for 8× A100 |
|
||||
|
||||
XE9680 is **purpose-built** for dense GPU AI; no 2U server matches this density and memory per node.
|
||||
|
||||
---
|
||||
|
||||
## Side-by-side (GPU/AI)
|
||||
|
||||
| Factor | 3× R750 (GPU) | 2× XE9680 |
|
||||
|--------|----------------|-----------|
|
||||
| **Total GPUs** | 6–12 (PCIe, config-dependent) | **16× A100 80GB** |
|
||||
| **VRAM per GPU** | Typically 24–48GB | **80GB** |
|
||||
| **Multi-GPU** | PCIe only | **NVLink** within node |
|
||||
| **Multi-node** | 10G/25G typical | **200G InfiniBand** (option) |
|
||||
| **Rack space** | 6U | 12U |
|
||||
| **Cost** | Lower (~\$30k–75k ballpark) | \$189,998 for 2× (2 × \$94,999 sale) |
|
||||
| **Best for** | Lighter AI, mixed workloads, budget | Heavy training, large models, max throughput |
|
||||
|
||||
---
|
||||
|
||||
## Recommendation (GPU/AI tier)
|
||||
|
||||
| Goal | Recommendation |
|
||||
|------|----------------|
|
||||
| **Maximum GPU capacity and large-model training** | **2× XE9680** — 16× A100 80GB, NVLink, InfiniBand; accept higher cost and power. |
|
||||
| **Lower cost, flexible GPU pool (dev/staging/inference)** | **3× R750 + GPUs** — 6–12 GPUs, PCIe-based; good value and spread across 3 nodes. |
|
||||
| **Start small, expand later** | 3× R750 now; add XE9680 (or similar) later when workload justifies it. |
|
||||
|
||||
If you **replace** the planned 3× R750 (GPU) with 2× XE9680: document the GPU tier as “2× XE9680” in the inventory and assign IPs (e.g. .24–.25 for the two nodes); the R750 IP block (.24–.26) can be repurposed or left for future use.
|
||||
|
||||
---
|
||||
|
||||
## Inventory and docs
|
||||
|
||||
- **[HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md)** — R750 row updated to “GPU/AI tier”; optional XE9680 alternative.
|
||||
- **[13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md)** — If using XE9680, cable 200G/100G to your fabric (or 10G to existing XG backbone for management).
|
||||
- **[13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md)** — Phase 3: treat as “GPU tier (R750 or XE9680)” and document which platform is chosen.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md) — GPU/AI tier role and IP plan.
|
||||
- [Dell XE9680 — 8× A100 80GB (The Server Store)](https://www.theserverstore.com/dell-poweredge-xe9680-6u-gpu-rackmount-server-with-8x-nvidia-tensor-core-a100-80gb-sxm4-gpu) — specs and pricing (refurb).
|
||||
6
docs/11-references/diagrams/README.md
Normal file
6
docs/11-references/diagrams/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Diagrams
|
||||
|
||||
## global-arbitrage-engine
|
||||
|
||||
- **Source:** `global-arbitrage-engine.dot` — Graphviz digraph for the 13-chain global arbitrage engine (Anchor, Hub 138, Bridge, Edge chains). Spec: [real-robinhood/project_plans/repo_ready_graphviz_and_liquidity_heatmap_spec.md](../../smom-dbis-138/real-robinhood/project_plans/repo_ready_graphviz_and_liquidity_heatmap_spec.md).
|
||||
- **Render:** From repo root: `./scripts/diagrams/render-global-arbitrage-engine.sh` (requires `graphviz`). Produces `global-arbitrage-engine.svg` and `global-arbitrage-engine.png` in this directory.
|
||||
221
docs/11-references/diagrams/global-arbitrage-engine.dot
Normal file
221
docs/11-references/diagrams/global-arbitrage-engine.dot
Normal file
@@ -0,0 +1,221 @@
|
||||
digraph GlobalArbitrageEngine {
|
||||
rankdir=LR;
|
||||
compound=true;
|
||||
labelloc="t";
|
||||
fontsize=18;
|
||||
fontname="Inter";
|
||||
|
||||
node [shape=box, style="rounded", fontsize=11, fontname="Inter"];
|
||||
edge [fontsize=10, fontname="Inter"];
|
||||
|
||||
// =========================
|
||||
// ANCHOR / NUMERAIRE LAYER
|
||||
// =========================
|
||||
subgraph cluster_anchor {
|
||||
label="Anchor / Numeraire";
|
||||
style="rounded";
|
||||
|
||||
XAU_ORACLE [label="XAU Oracle\n(ETH/XAU pricing)"];
|
||||
ORACLE_AGG [label="OracleAggregator"];
|
||||
ORACLE_PROXY [label="OracleProxy"];
|
||||
PRICE_KEEPER [label="PriceFeedKeeper"];
|
||||
MULTICALL [label="Multicall"];
|
||||
|
||||
LEDGER [label="Ledger\n(XAU-denominated accounting)"];
|
||||
VAULT_FACTORY [label="VaultFactory"];
|
||||
|
||||
XAU_ORACLE -> ORACLE_AGG;
|
||||
ORACLE_PROXY -> ORACLE_AGG;
|
||||
PRICE_KEEPER -> ORACLE_AGG;
|
||||
MULTICALL -> ORACLE_AGG;
|
||||
|
||||
ORACLE_AGG -> LEDGER;
|
||||
VAULT_FACTORY -> LEDGER;
|
||||
}
|
||||
|
||||
// =========================
|
||||
// HUB: CHAIN 138
|
||||
// =========================
|
||||
subgraph cluster_hub {
|
||||
label="Hub: Chain 138 (Liquidity + Settlement)";
|
||||
style="rounded";
|
||||
|
||||
C138 [shape=oval, label="Chain 138\n(DBIS / DeFi Oracle)"];
|
||||
|
||||
// Tokens
|
||||
CUSDT [label="cUSDT"];
|
||||
CUSDC [label="cUSDC"];
|
||||
WETH [label="WETH / WETH10\n(Bridge Rail)"];
|
||||
|
||||
// Liquidity
|
||||
DODO_INT [label="DODOPMMIntegration"];
|
||||
DODO_PROV [label="DODOPMMProvider"];
|
||||
POOL_CUSDT_CUSDC [label="DODO PMM Pool\ncUSDT/cUSDC"];
|
||||
POOL_CUSDT_USDT [label="DODO PMM Pool\ncUSDT/USDT (official addr)"];
|
||||
POOL_CUSDC_USDC [label="DODO PMM Pool\ncUSDC/USDC (official addr)"];
|
||||
|
||||
// Reserve / Vault / Settlement
|
||||
RESERVE_SYS [label="ReserveSystem"];
|
||||
RESERVE_INT [label="ReserveTokenIntegration"];
|
||||
BRIDGE_VAULT [label="BridgeVault"];
|
||||
LIQUIDATION [label="Liquidation"];
|
||||
|
||||
// Registry / Compliance
|
||||
TOKEN_FACTORY [label="TokenFactory"];
|
||||
TOKEN_IMPL [label="TokenImplementation"];
|
||||
TOKEN_REG [label="TokenRegistry"];
|
||||
COMPLIANCE_REG [label="ComplianceRegistry"];
|
||||
POLICY_MGR [label="PolicyManager"];
|
||||
DEBT_REG [label="DebtRegistry"];
|
||||
FEE_COL [label="FeeCollector"];
|
||||
|
||||
// Governance / Deterministic
|
||||
GOV_CTRL [label="GovernanceController"];
|
||||
UAR [label="UniversalAssetRegistry\n(proxy + deterministic)"];
|
||||
CREATE2 [label="CREATE2Factory"];
|
||||
|
||||
// Channel / Mirror / Settlement
|
||||
MIRROR_REG [label="MirrorRegistry"];
|
||||
MIRROR_MGR [label="MirrorManager"];
|
||||
TX_MIRROR [label="TransactionMirror"];
|
||||
ADDR_MAP [label="AddressMapper"];
|
||||
PAYMENT_CH [label="PaymentChannelManager"];
|
||||
STATE_CH [label="GenericStateChannelManager"];
|
||||
MERCH_SETTLE [label="MerchantSettlementRegistry"];
|
||||
WITHDRAW_ESC [label="WithdrawalEscrow"];
|
||||
LOCKBOX [label="Lockbox138"];
|
||||
|
||||
// Internal edges
|
||||
TOKEN_FACTORY -> TOKEN_IMPL;
|
||||
TOKEN_FACTORY -> TOKEN_REG;
|
||||
TOKEN_REG -> COMPLIANCE_REG;
|
||||
POLICY_MGR -> COMPLIANCE_REG;
|
||||
|
||||
DEBT_REG -> LEDGER;
|
||||
LIQUIDATION -> LEDGER;
|
||||
|
||||
FEE_COL -> BRIDGE_VAULT;
|
||||
|
||||
DODO_PROV -> DODO_INT;
|
||||
DODO_INT -> POOL_CUSDT_CUSDC;
|
||||
DODO_INT -> POOL_CUSDT_USDT;
|
||||
DODO_INT -> POOL_CUSDC_USDC;
|
||||
|
||||
CUSDT -> DODO_INT [label="swap"];
|
||||
CUSDC -> DODO_INT [label="swap"];
|
||||
|
||||
RESERVE_SYS -> RESERVE_INT;
|
||||
RESERVE_INT -> CUSDT;
|
||||
RESERVE_INT -> CUSDC;
|
||||
|
||||
MIRROR_MGR -> MIRROR_REG;
|
||||
TX_MIRROR -> MIRROR_MGR;
|
||||
ADDR_MAP -> MIRROR_MGR;
|
||||
|
||||
PAYMENT_CH -> MERCH_SETTLE;
|
||||
STATE_CH -> MERCH_SETTLE;
|
||||
WITHDRAW_ESC -> MERCH_SETTLE;
|
||||
LOCKBOX -> WITHDRAW_ESC;
|
||||
|
||||
GOV_CTRL -> UAR;
|
||||
GOV_CTRL -> CREATE2;
|
||||
|
||||
// Tie hub to anchor
|
||||
LEDGER -> C138 [style=dashed, label="valuation"];
|
||||
}
|
||||
|
||||
// =========================
|
||||
// BRIDGE LAYER
|
||||
// =========================
|
||||
subgraph cluster_bridge {
|
||||
label="Bridge Layer";
|
||||
style="rounded";
|
||||
|
||||
BRIDGE_ORCH [label="BridgeOrchestrator"];
|
||||
UCCIP [label="UniversalCCIPBridge"];
|
||||
|
||||
CCIP_ROUTER [label="CCIP Router"];
|
||||
CCIP_SENDER [label="CCIP Sender"];
|
||||
CCIP_RECEIVER [label="CCIP Receiver"];
|
||||
CCIP_WETH9 [label="CCIPWETH9Bridge"];
|
||||
CCIP_WETH10 [label="CCIPWETH10Bridge"];
|
||||
|
||||
ALLTRA_ADAPTER [label="AlltraAdapter\n(138 ↔ 651940)"];
|
||||
|
||||
BRIDGE_ORCH -> UCCIP;
|
||||
UCCIP -> CCIP_ROUTER;
|
||||
CCIP_SENDER -> CCIP_ROUTER;
|
||||
CCIP_RECEIVER -> CCIP_ROUTER;
|
||||
CCIP_WETH9 -> CCIP_ROUTER;
|
||||
CCIP_WETH10 -> CCIP_ROUTER;
|
||||
|
||||
BRIDGE_VAULT -> CCIP_WETH9;
|
||||
BRIDGE_VAULT -> CCIP_WETH10;
|
||||
|
||||
BRIDGE_ORCH -> ALLTRA_ADAPTER;
|
||||
}
|
||||
|
||||
// =========================
|
||||
// EDGE CHAINS (13 total)
|
||||
// =========================
|
||||
subgraph cluster_edges {
|
||||
label="Edge Chains (Liquidity Surfaces)";
|
||||
style="rounded";
|
||||
|
||||
ETH [shape=oval, label="Ethereum\n(chain 1)"];
|
||||
BSC [shape=oval, label="BSC\n(chain 56)"];
|
||||
POL [shape=oval, label="Polygon\n(chain 137)"];
|
||||
OPT [shape=oval, label="Optimism\n(chain 10)"];
|
||||
ARB [shape=oval, label="Arbitrum\n(chain 42161)"];
|
||||
AVAX [shape=oval, label="Avalanche\n(chain 43114)"];
|
||||
BASE [shape=oval, label="Base\n(chain 8453)"];
|
||||
GNO [shape=oval, label="Gnosis\n(chain 100)"];
|
||||
CRO [shape=oval, label="Cronos\n(chain 25)"];
|
||||
CELO [shape=oval, label="Celo\n(chain 42220)"];
|
||||
WEMIX [shape=oval, label="Wemix\n(chain 1111)"];
|
||||
ALLTRA [shape=oval, label="ALL Mainnet\n(chain 651940)"];
|
||||
|
||||
// Conceptual edge pools
|
||||
EDGE_POOL_1 [label="Edge Pools\n(cW*/USDC, cW*/USDT)\n(design; deploy per chain)"];
|
||||
|
||||
ETH -> EDGE_POOL_1 [style=dashed];
|
||||
BSC -> EDGE_POOL_1 [style=dashed];
|
||||
POL -> EDGE_POOL_1 [style=dashed];
|
||||
OPT -> EDGE_POOL_1 [style=dashed];
|
||||
ARB -> EDGE_POOL_1 [style=dashed];
|
||||
AVAX -> EDGE_POOL_1 [style=dashed];
|
||||
BASE -> EDGE_POOL_1 [style=dashed];
|
||||
GNO -> EDGE_POOL_1 [style=dashed];
|
||||
CRO -> EDGE_POOL_1 [style=dashed];
|
||||
CELO -> EDGE_POOL_1 [style=dashed];
|
||||
WEMIX -> EDGE_POOL_1 [style=dashed];
|
||||
}
|
||||
|
||||
// =========================
|
||||
// CROSS-CHAIN CONNECTIONS
|
||||
// =========================
|
||||
|
||||
// Hub <-> bridge orchestrator
|
||||
C138 -> BRIDGE_ORCH [lhead=cluster_bridge, label="route orchestration"];
|
||||
WETH -> CCIP_WETH9 [lhead=cluster_bridge, label="bridge rail"];
|
||||
WETH -> CCIP_WETH10 [lhead=cluster_bridge, label="bridge rail"];
|
||||
|
||||
// CCIP connectivity to edges (conceptual)
|
||||
CCIP_ROUTER -> ETH [label="CCIP"];
|
||||
CCIP_ROUTER -> BSC [label="CCIP"];
|
||||
CCIP_ROUTER -> POL [label="CCIP"];
|
||||
CCIP_ROUTER -> OPT [label="CCIP"];
|
||||
CCIP_ROUTER -> ARB [label="CCIP"];
|
||||
CCIP_ROUTER -> AVAX [label="CCIP"];
|
||||
CCIP_ROUTER -> CRO [label="CCIP"];
|
||||
CCIP_ROUTER -> BASE [style=dashed, label="CCIP/Config"];
|
||||
CCIP_ROUTER -> GNO [style=dashed, label="CCIP/Config"];
|
||||
CCIP_ROUTER -> CELO [style=dashed, label="CCIP/Config"];
|
||||
CCIP_ROUTER -> WEMIX [style=dashed, label="CCIP/Config"];
|
||||
|
||||
// Alltra adapter connectivity
|
||||
ALLTRA_ADAPTER -> ALLTRA [label="AlltraAdapter"];
|
||||
|
||||
// Anchor link
|
||||
LEDGER -> XAU_ORACLE [style=dashed, label="XAU ref"];
|
||||
}
|
||||
Reference in New Issue
Block a user