4.9 KiB
4.9 KiB
Chain 138 Deployment: Warnings and Optional Tasks
Last updated: 2026-02-20
This document lists warnings and errors from deployment/verification and how they were fixed or deferred, plus a consolidated Todos list including optional tasks.
1. Warnings and Errors Addressed
1.1 Verify script (verify-chain138-full-deployment.sh)
| Item | Before | After |
|---|---|---|
| CCIPTxReporter not in .env | Error | Warning (optional; set CHAIN138_CCIP_REPORTER when deployed) |
| genesis.json not found | Error | Warning (optional for RPC-only Chain 138) |
| Namespace besu-network not found | Warning | Unchanged (optional when not using K8s for Chain 138) |
| log_info / log_success / log_warn / log_error | Undefined when init.sh not loaded | Fallback functions defined in script |
| Unset CHAIN138_CCIP_REPORTER etc. | Script exit (set -u) | Defaults set after sourcing .env |
Verification now exits 0 when only optional items are missing; failures are reserved for required RPC, .env, and core contracts.
1.2 @emoney/interfaces (Hardhat / CCIPLogger)
- Issue: Hardhat compile failed with
Library @emoney/interfaces is not installedwhen runningdeploy-ccip-logger-all-chains.sh. - Fix: Replaced
@emoney/interfaceswith relative imports:contracts/reserve/ReserveTokenIntegration.sol:../emoney/interfaces/IeMoneyToken.sol,../emoney/interfaces/ITokenFactory138.solscript/reserve/DeployReserveSystem.s.sol:../../contracts/emoney/interfaces/ITokenFactory138.sol
- Note: Forge already remaps
@emoney/=contracts/emoney/infoundry.toml; Hardhat has no remapping, so relative imports were used.
1.3 Hardhat compile (CCIPLogger deploy)
- Issue: After adding 0.8.22 for OpenZeppelin, full Hardhat compile can hit “Stack too deep” (needs
viaIR: true) and is slow. - Status: Hardhat config has two compilers (0.8.20, 0.8.22). If “Stack too deep” appears, enable
viaIR: trueinhardhat.config.jsfor the relevant compiler(s); compile may be slow. CCIPLogger deploy remains optional; see ensure-prerequisites.sh.
1.4 LINK funding (fund-ccip-bridges-with-link.sh)
- Issue: All chains failed (insufficient LINK, RPC, or gas).
- Status: Operator must hold LINK on each target chain and re-run the script. No code change.
1.5 DODO_VENDING_MACHINE_ADDRESS
- Issue: ensure-prerequisites.sh warns when unset; run-pmm-and-pools.sh exits if unset.
- Status: Documented in .env.example; set to DODO DVM factory on Chain 138 when using PMM. See docs/deployment/ALL_MAINNETS_DEPLOYMENT_RUNBOOK.md.
2. .env Additions
- CHAIN138_CCIP_REPORTER: Optional. Documented in .env.example; set after deploying CCIPTxReporter (e.g. deploy-ccip-reporter or CCIPLogger).
- DODO_VENDING_MACHINE_ADDRESS: Comment in .env.example clarified (DVM factory on Chain 138; ensure-prerequisites warns if unset).
3. Master Todos List (including optional)
Required / one-time
- Update .env with phased core addresses after 01_DeployCore / 02_DeployBridges.
- Run ensure-prerequisites.sh before deploy.
- Run check-balances-gas-and-deploy.sh (and --deploy for Chain 138 when intended).
- Fix verify-chain138-full-deployment.sh (optional checks → warnings; log_* fallbacks; unset vars).
- Fix @emoney/interfaces for Hardhat (relative imports in ReserveTokenIntegration and DeployReserveSystem).
- Add .env.example placeholders/comments for CHAIN138_CCIP_REPORTER and DODO_VENDING_MACHINE_ADDRESS.
Optional
- LINK funding: Script run; transfers failed (deployer needs LINK on each chain). Re-run when LINK is available.
- CCIPLogger: Hardhat viaIR + 0.8.22. Deployed to mainnet at
0x4F95297C23d9f4A1032B1c6a2E553225CB175BEe;CCIP_LOGGER_ETH_ADDRESSin .env. - PMM / DODO: Mock DVM deployed on Chain 138 (
MockDVMFactory+MockDVMPool);DODO_VENDING_MACHINE_ADDRESSandDODO_PMM_INTEGRATIONset;run-pmm-and-pools.shrun. For real DODO liquidity use official DVM (see DVM_DEPLOYMENT_CHECK.md). - CCIPTxReporter: Contract added, deployed to Chain 138 at
0x3F88b662F04d9B1413BA8d65bFC229e830D7d077;CHAIN138_CCIP_REPORTERin .env. - genesis.json: Left as warning for RPC-only.
- Kubernetes / besu-network: Left as warning when not using K8s.
- Forge clean: Run when needed;
forge buildavailable.
Reference
- Prerequisites:
scripts/deployment/ensure-prerequisites.sh - Balance check + deploy:
scripts/deployment/check-balances-gas-and-deploy.sh[--deploy] - Verification:
scripts/deployment/verify-chain138-full-deployment.sh - LINK:
scripts/deployment/fund-ccip-bridges-with-link.sh - PMM:
scripts/deployment/run-pmm-and-pools.sh - CCIPLogger:
scripts/deployment/deploy-ccip-logger-all-chains.sh - Single env source:
smom-dbis-138/.env(see docs/04-configuration/DOTENV_FILES_REFERENCE.md in parent repo).