Co-authored-by: Cursor <cursoragent@cursor.com>
5.2 KiB
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):
# 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:
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
cd smom-dbis-138
forge test
forge test --match-path "test/e2e/*.sol"
alltra-lifi-settlement
cd alltra-lifi-settlement
forge test
npm run test:e2e -- --forceExit
- Forge tests: pass without RPC.
- Jest e2e:
payment-flowandmonitoring-flowcan pass;withdrawal-flowrequires 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):
./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-onlyto 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
- Comprehensive fix (all 502 backends):
- 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-<timestamp>/verification_report.md.
5. Explorer E2E
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 testpassed;forge test --match-path "test/e2e/*.sol"— 26 e2e tests passed. - alltra-lifi-settlement:
forge test8 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.