79 lines
4.6 KiB
Markdown
79 lines
4.6 KiB
Markdown
|
|
# cW* Tokens and Networks
|
||
|
|
|
||
|
|
**Purpose:** Single reference for all compliant wrapped tokens (cW*) and the networks where they are defined or deployed.
|
||
|
|
|
||
|
|
**Source of truth:** `config/token-mapping-multichain.json` (`cToCwSymbolMapping`), `smom-dbis-138/script/deploy/DeployCWTokens.s.sol`, and `smom-dbis-138/.env` (for recorded addresses).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. All cW* tokens and deployability
|
||
|
|
|
||
|
|
All 12 cW* tokens are deployable via `DeployCWTokens.s.sol` (env flags `DEPLOY_CWUSDT=1`, `DEPLOY_CWEURC=1`, etc.; default all 1). Set `DEPLOY_*=0` to skip a token.
|
||
|
|
|
||
|
|
| cW* Token | Deploy script | Networks deployable (script) | Deployed on (addresses in .env) |
|
||
|
|
|-----------|---------------|------------------------------|----------------------------------|
|
||
|
|
| **cWUSDT** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | All 9 chains (Mainnet, Cronos, BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism) |
|
||
|
|
| **cWUSDC** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | All 9 chains |
|
||
|
|
| **cWEURC** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | BSC, Polygon, Gnosis, Avalanche, Base, Optimism (Mainnet/Cronos/Arbitrum: deploy failed nonce/gas) |
|
||
|
|
| **cWEURT** | Yes | Same | Same as cWEURC |
|
||
|
|
| **cWGBPC** | Yes | Same | Same |
|
||
|
|
| **cWGBPT** | Yes | Same | Same |
|
||
|
|
| **cWAUDC** | Yes | Same | Same |
|
||
|
|
| **cWJPYC** | Yes | Same | Same |
|
||
|
|
| **cWCHFC** | Yes | Same | Same |
|
||
|
|
| **cWCADC** | Yes | Same | Same |
|
||
|
|
| **cWXAUC** | Yes | Same | Same |
|
||
|
|
| **cWXAUT** | Yes | Same | Same |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Network names (chain ID)
|
||
|
|
|
||
|
|
| Chain ID | Network name |
|
||
|
|
|----------|--------------|
|
||
|
|
| 1 | Ethereum Mainnet |
|
||
|
|
| 10 | Optimism |
|
||
|
|
| 25 | Cronos |
|
||
|
|
| 56 | BSC (BNB Chain) |
|
||
|
|
| 100 | Gnosis Chain |
|
||
|
|
| 137 | Polygon |
|
||
|
|
| 43114 | Avalanche C-Chain |
|
||
|
|
| 8453 | Base |
|
||
|
|
| 42161 | Arbitrum One |
|
||
|
|
|
||
|
|
Chains **42220** (Celo) and **1111** (Wemix) are in the token-mapping file for c*→cW* mapping but are not in the current `deploy-tokens-and-weth-all-chains-skip-canonical.sh` chain list for cW* deployment. **651940** (ALL Mainnet) is env-validation only; no cW* deploy from this repo.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2.1 Bridge support status
|
||
|
|
|
||
|
|
| Chain(s) | Bridge / receiver | Bridge code mints cW*? | Notes |
|
||
|
|
|----------|-------------------|------------------------|-------|
|
||
|
|
| All (1, 25, 56, 137, 100, 43114, 8453, 42161, 10) | CCIPRelayBridge (Mainnet), CCIPWETH9_BRIDGE_* (others) | **No** | Current suite is WETH-only; `ccipReceive` only transfers the received token. Granting MINTER/BURNER to these addresses allows DeployCWTokens to run but does not enable cross-chain mint until the receiver is extended or a dedicated cW* receiver (e.g. TwoWayTokenBridgeL2) is deployed. See [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md) and [CW_BRIDGE_TASK_LIST.md](CW_BRIDGE_TASK_LIST.md). |
|
||
|
|
| After Phase B or C | Extended bridge or TwoWayTokenBridgeL2 / CCIPReceiverCW | **Yes** (when implemented) | Per [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md), Option 2 (dedicated receiver) is chosen; deploy TwoWayTokenBridgeL2 or equivalent per chain and point `CW_BRIDGE_<CHAIN>` to it for cW* mint/burn. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. How to deploy cWUSDT / cWUSDC
|
||
|
|
|
||
|
|
1. **Bridge addresses:** `CW_BRIDGE_ADDRESS` is left as default (zero). Per-chain `CW_BRIDGE_<CHAIN>` are set in `smom-dbis-138/.env` from the deployed bridge suite (Mainnet: CCIPRelayBridge; other chains: CCIPWETH9_BRIDGE_*). That contract receives MINTER_ROLE and BURNER_ROLE when deploying cW*; extend it for cW* support if needed.
|
||
|
|
2. Run with `--deploy-cw`:
|
||
|
|
```bash
|
||
|
|
cd smom-dbis-138 && ./scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-cw
|
||
|
|
```
|
||
|
|
Or deploy to a single chain (e.g. BSC):
|
||
|
|
```bash
|
||
|
|
CW_BRIDGE_ADDRESS=0x... forge script script/deploy/DeployCWTokens.s.sol:DeployCWTokens \
|
||
|
|
--rpc-url "$BSC_RPC_URL" --chain-id 56 --broadcast --private-key "$PRIVATE_KEY" --legacy
|
||
|
|
```
|
||
|
|
3. Set `CWUSDT_<CHAIN>`, `CWUSDC_<CHAIN>` in `.env` from the script output, and update `config/token-mapping-multichain.json` `addressTo` for the corresponding `Compliant_USDT_cW` / `Compliant_USDC_cW` entries.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. References
|
||
|
|
|
||
|
|
- [C_TO_CW_MAPPER_MAPPING.md](../04-configuration/C_TO_CW_MAPPER_MAPPING.md) — c*→cW* symbol and address mapping for the mapper.
|
||
|
|
- [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) — Deployer tokens on other chains; cW* deploy path.
|
||
|
|
- [config/token-mapping-multichain.json](../../config/token-mapping-multichain.json) — `cToCwSymbolMapping` and per-pair `_cW` tokens.
|
||
|
|
- **[CW_BRIDGE_TASK_LIST.md](../00-meta/CW_BRIDGE_TASK_LIST.md)** — Detailed task list: note review, checks performed, and phases (bridge extension vs dedicated receiver, deploy cW*, wire config, E2E).
|