# Deploy Confirm and Full E2E Testing Runbook **Last updated:** 2026-02-14 Run this sequence to ensure everything is **deployed**, **confirmed**, **verified**, and then run **full e2e testing**. --- ## 1. Deploy confirmed (from LAN only) From a host on the same LAN as 192.168.11.x (or with reachable RPC): ```bash # On-chain check: all contract addresses from config/smart-contracts-master.json have bytecode source scripts/lib/load-project-env.sh ./scripts/verify/check-contracts-on-chain-138.sh # Expect: "Total: N present, 0 missing" ``` If RPC is unreachable from your host, you'll see "0 present, N missing" and a WARN. Run the same command from a machine on VPN/LAN or pass a reachable RPC: `./scripts/verify/check-contracts-on-chain-138.sh https://rpc.d-bis.org`. --- ## 2. Contracts verified (Blockscout) Verification was fixed (forge-verification-proxy accepts form-encoded bodies). From LAN: ```bash source smom-dbis-138/.env 2>/dev/null ./scripts/verify/run-contract-verification-with-proxy.sh # Or one contract: ./scripts/verify/run-contract-verification-with-proxy.sh --only Multicall ``` Check https://explorer.d-bis.org/address/ for verification status. --- ## 3. Unit and E2E tests (no LAN required) ### smom-dbis-138 ```bash cd smom-dbis-138 forge test forge test --match-path "test/e2e/*.sol" ``` ### alltra-lifi-settlement ```bash cd alltra-lifi-settlement forge test npm run test:e2e -- --forceExit ``` - **Forge tests:** pass without RPC. - **Jest e2e:** `payment-flow` and `monitoring-flow` can pass; `withdrawal-flow` **requires reachable Chain 138 RPC** (192.168.11.211:8545 or public RPC). Run from LAN for full e2e pass. --- ## 4. E2E routing (public domains) From anywhere (uses public DNS/HTTPS): ```bash ./scripts/verify/verify-end-to-end-routing.sh ``` - **DNS:** all domains. - **HTTPS / RPC:** Some endpoints may return 502 (dbis-admin, dbis-api, rpc-http-prv, rpc-alltra*, rpc-hybx*, cacti-*) if backends are stopped or unreachable from the test host. Fix from LAN: - **Comprehensive fix (all 502 backends):** `./scripts/maintenance/fix-all-502s-comprehensive.sh` (10130 Python, dbis-api, 2101/2500-2505 Besu, Cacti). - **Deep dive (diagnose + fix per backend):** `./scripts/maintenance/diagnose-and-fix-502s-via-ssh.sh` (use `--diagnose-only` to only report). - Start containers: `./scripts/maintenance/start-stopped-containers-via-ssh.sh` - Ensure services in DBIS containers: `./scripts/maintenance/ensure-dbis-services-via-ssh.sh` - Add explorer security headers: `./scripts/maintenance/add-explorer-security-headers-via-ssh.sh` - To have the script **exit 0** when only 502s remain (e.g. for CI): `E2E_ACCEPT_502_INTERNAL=1 ./scripts/verify/verify-end-to-end-routing.sh` - Report: `docs/04-configuration/verification-evidence/e2e-verification-/verification_report.md`. --- ## 5. Explorer E2E ```bash EXPLORER_URL="https://explorer.d-bis.org" bash explorer-monorepo/scripts/e2e-test-explorer.sh ``` Covers: homepage, Blockscout API, SPA routes, security headers (warnings only), performance. From LAN you can also use `BASE_URL="http://192.168.11.140"` for direct backend checks. --- ## Quick reference | Step | Command / action | Requires LAN? | |-------------------|-----------------------------------------------------------------------------------|---------------| | On-chain check | `./scripts/verify/check-contracts-on-chain-138.sh` | Yes (RPC) | | Blockscout verify | `./scripts/verify/run-contract-verification-with-proxy.sh` | Yes | | smom forge test | `cd smom-dbis-138 && forge test && forge test --match-path "test/e2e/*.sol"` | No | | alltra forge | `cd alltra-lifi-settlement && forge test` | No | | alltra Jest e2e | `cd alltra-lifi-settlement && npm run test:e2e -- --forceExit` | Yes for full | | E2E routing | `./scripts/verify/verify-end-to-end-routing.sh` | No | | Explorer E2E | `EXPLORER_URL="https://explorer.d-bis.org" bash explorer-monorepo/scripts/e2e-test-explorer.sh` | No | | Fix 502s (LAN) | `./scripts/maintenance/start-stopped-containers-via-ssh.sh` then `ensure-dbis-services-via-ssh.sh` | Yes (SSH) | | E2E accept 502 | `E2E_ACCEPT_502_INTERNAL=1 ./scripts/verify/verify-end-to-end-routing.sh` (exit 0 when only 502s) | No | --- ## Last run summary (2026-02-14) - **On-chain check:** Not run from this host (RPC 192.168.11.211 unreachable off-LAN). Run from LAN to confirm deploy. - **Blockscout verification:** Already completed for all 11 contracts (Multicall, Aggregator, Proxy, MultiSig, CCIPReceiver, Voting, CCIPSender, CCIPWETH10/9, MerchantSettlementRegistry, WithdrawalEscrow). - **smom-dbis-138:** `forge test` passed; `forge test --match-path "test/e2e/*.sol"` — 26 e2e tests passed. - **alltra-lifi-settlement:** `forge test` 8 passed; `npm run test:e2e` — 33 passed, 1 failed (withdrawal-flow, RPC unreachable). - **E2E routing:** 34 DNS pass, 10 HTTPS pass, 7 RPC/502 fails (alltra/hybx/prv tunnels); explorer.d-bis.org and Blockscout API passed. - **Explorer E2E:** 37 passed, 0 failed, 4 warnings.