Files
proxmox/docs/11-references/OPERATOR_OPTIONAL_CHECKLIST.md
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

149 lines
7.4 KiB
Markdown

# Operator optional checklist
**Purpose:** Single list of all remaining operator and optional tasks with exact commands and references. Use when you want to complete Blockscout verification, deploy the trustless bridge, or run any "when needed" deployment.
**Related:** [CONTRACT_NEXT_STEPS_LIST](CONTRACT_NEXT_STEPS_LIST.md) | [CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE](CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE.md) | [OPERATOR_ACTIONS](OPERATOR_ACTIONS.md)
---
## 1. Blockscout source verification (optional)
**When:** After deployments or when contracts show "Unverified" on the explorer.
**Option A — Proxy (from host that can reach Blockscout, e.g. LAN/VPN):**
```bash
source smom-dbis-138/.env 2>/dev/null
./scripts/verify/run-contract-verification-with-proxy.sh
```
- RPC and Blockscout must be reachable (set `RPC_URL_138` for Core; explorer.d-bis.org for Blockscout).
- If submission returns "Invalid JSON", use Option B or C.
**Option B — Direct Forge (same host, explorer reachable):**
```bash
cd smom-dbis-138
export RPC="${RPC_URL_138:-https://rpc-core.d-bis.org}" # Chain 138 Core
export VERIFIER="https://explorer.d-bis.org/api"
# Example: CCIPSender
forge verify-contract 0x105F8A15b819948a89153505762444Ee9f324684 \
contracts/ccip/CCIPSender.sol:CCIPSender \
--chain-id 138 --rpc-url "$RPC" --verifier blockscout --verifier-url "$VERIFIER" --flatten
```
- Other contracts and full manual commands: [BLOCKSCOUT_VERIFICATION_GUIDE](../08-monitoring/BLOCKSCOUT_VERIFICATION_GUIDE.md) and script `scripts/verify-contracts-blockscout.sh` (addresses/paths).
**Option C — Manual UI:**
Open https://explorer.d-bis.org/address/<ADDRESS>#verify-contract and use "Verify & Publish" with Standard JSON or flattened source.
---
## 2. Trustless bridge (optional, when needed)
**When:** You need the trustless bridge stack on Chain 138 and mainnet.
**Steps:**
- Deploy from `script/bridge/trustless/` (see scripts and order in repo).
- Set production env: replace placeholders in `config/production/.env.production.example` and use `config/production/.env.production`.
- Reference: [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md), [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md).
---
## 3. Mainnet / multichain deployments (optional)
**When:** Deploying to Ethereum mainnet or other chains.
**Steps:**
- Use `DeployAll.s.sol` or chain-specific scripts in `smom-dbis-138/script/` with correct RPC and env.
- Document addresses per chain in [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) or [SMART_CONTRACTS_INVENTORY_ALL_CHAINS](SMART_CONTRACTS_INVENTORY_ALL_CHAINS.md).
---
## 3b. Relay and token mapping (138↔Mainnet)
**When:** Running the relay (138→Mainnet), adding a new token, or enabling LINK on the mainnet bridge.
**Reference:**
- Token mapping source of truth: [config/token-mapping.json](../../config/token-mapping.json). When adding a token, add an entry and optionally update [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md).
- Full table and recommendations: [TOKEN_MAPPING_AND_MAINNET_ADDRESSES](../07-ccip/TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md).
- Fund mainnet CCIPRelayBridge (WETH9) for payouts: [CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md). Optional LINK support: [RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK](../07-ccip/RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK.md).
---
## 4. CREATE2 / deterministic core (optional, when needed)
**When:** Deterministic addresses are required.
**Command / reference:**
`smom-dbis-138/script/deploy/DeployDeterministicCore.s.sol` — run with Foundry from `smom-dbis-138`; see [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md).
---
## 5. Vault / reserve / Keeper (optional, when needed)
**When:** Vault or reserve flow is needed.
**Reference:**
`smom-dbis-138/script/deploy/vault/`, `smom-dbis-138/script/reserve/` — see [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md).
---
## 6. Dodo / swap integration (optional, when needed)
**When:** DEX integration is needed.
**Reference:**
`smom-dbis-138/script/deploy/dex/`, `smom-dbis-138/script/bridge/trustless/DeployEnhancedSwapRouter.s.sol` — see [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md). Set Dodo-related addresses in `smom-dbis-138/.env` per `.env.example`.
---
## 7. eMoney / smart accounts (optional, when needed)
**When:** eMoney or account abstraction is needed.
**Reference:**
`smom-dbis-138/script/emoney/`, `smom-dbis-138/script/smart-accounts/` — see [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md).
---
## 8. PaymentChannelManager / GenericStateChannelManager / Mirror (optional, when needed)
**When:** Channel or mirror features are needed on Mainnet or Chain 138.
**Chain 138 (2026-02-12):** AddressMapper `0xe48E3f248698610e18Db865457fcd935Bb3da856`, MirrorManager `0x6eD905A30c552a6e003061A38FD52A5A427beE56` — deployed. TransactionMirror: if `forge script script/DeployTransactionMirror.s.sol` hits constructor-args decode error, deploy via `forge create contracts/mirror/TransactionMirror.sol:TransactionMirror --constructor-args <ADMIN> --rpc-url $RPC_URL_138 --private-key $PRIVATE_KEY --gas-price 1000000000`.
**Steps:**
- **Chain 138:** Always use `--with-gas-price 1000000000` for any `forge script` or `forge create`.
- Deploy channel managers via `smom-dbis-138/script/DeployPaymentChannelManager.s.sol` and `DeployGenericStateChannelManager.s.sol`.
- Reference: [PAYMENT_CHANNELS_DEPLOYMENT](../../smom-dbis-138/docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md) and `smom-dbis-138/docs/channels/`.
---
## Summary
| # | Task | When | Command / reference |
|---|------|------|----------------------|
| 1 | Blockscout verification | After deploy or when unverified | Proxy script or direct forge or manual UI (above) |
| 2 | Trustless bridge | When using trustless stack | script/bridge/trustless/ + config/production |
| 3 | Mainnet/multichain | When deploying to other chains | DeployAll or chain scripts; document addresses |
| 4 | CREATE2 core | When deterministic addresses needed | DeployDeterministicCore.s.sol |
| 5 | Vault / reserve / Keeper | When vault/reserve needed | script/deploy/vault/, script/reserve/ |
| 6 | Dodo / swap | When DEX needed | script/deploy/dex/, DeployEnhancedSwapRouter |
| 7 | eMoney / smart accounts | When needed | script/emoney/, script/smart-accounts/ |
| 8 | Payment/state channels / mirror | When channel/mirror needed | AddressMapper, MirrorManager deployed 2026-02-12; TransactionMirror via forge create if script fails; DeployPaymentChannelManager, DeployGenericStateChannelManager; use --with-gas-price 1000000000 on Chain 138 |
---
## Completion status (automated run)
| Task | Result |
|------|--------|
| **Blockscout verification** | Direct `--verifier-url https://explorer.d-bis.org/api` fails (Blockscout requires `module`/`action` in query; use **proxy** from LAN or manual UI). |
| **PaymentChannelManager** | Script simulated OK (no `--broadcast`). To deploy: add `--broadcast --private-key $PRIVATE_KEY`. |
| **GenericStateChannelManager** | Script simulated OK (no `--broadcast`). To deploy: add `--broadcast --private-key $PRIVATE_KEY`. |
| **DeployDeterministicCore** | **Fixed 2026-02-11:** Refactored to struct + _deployAll; registry deployed via proxy. Compiles and simulates. |
| **Trustless bridge** | No `script/bridge/trustless/` in repo; referenced in docs only. |
| **Vault / reserve / eMoney** | Scripts exist; run when needed (simulate first with `forge script ... --rpc-url $RPC` then `--broadcast` to deploy). |
---
**Last updated:** 2026-02-12