From b0d7394e089f00a9ffa67a2b33a502e47b778a93 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 May 2026 02:48:19 +0530 Subject: interop: ESP32 ↔ OpenWRT TollGate cross-platform test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - interop/Makefile: 10 targets for 4 test scenarios - interop-status: show device status for all devices - interop-laptop-esp32: laptop pays ESP32 with V3 token - interop-laptop-openwrt: laptop pays OpenWRT with V4 token - interop-openwrt-esp32: OpenWRT daemon auto-pays ESP32 upstream - interop-esp32-esp32: cross-board payment (needs Board B) - interop-setup/cleanup: mint alignment + wallet funding - INTEROP_PLAN.md: full test plan with scenarios and token format details - PROGRESS.md: checklist of setup/interop tasks - AGENTS.md: standing instructions for interop testing - routers.env.example: device config template - Verified interop-status against real hardware (OpenWRT + ESP32 Board A) --- interop/PROGRESS.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 interop/PROGRESS.md (limited to 'interop/PROGRESS.md') diff --git a/interop/PROGRESS.md b/interop/PROGRESS.md new file mode 100644 index 0000000..576eff2 --- /dev/null +++ b/interop/PROGRESS.md @@ -0,0 +1,70 @@ +# PROGRESS.md — Interop Test Checklist + +## Setup + +- [ ] Create `interop/routers.env` from `routers.env.example` +- [ ] Verify SSH access to OpenWRT: `ssh root@10.47.41.1 echo ok` +- [ ] Verify WiFi connection to ESP32: `ping -c 2 10.192.45.1` +- [ ] Build `mint-token` binary: `cd physical-router-test-automation/scripts/mint-token && go build -o /tmp/mint-token .` +- [ ] Install `cashu` CLI: `pip install cashu` + +## Mint Alignment + +- [ ] Add `testnut.cashu.space` to OpenWRT's `accepted_mints` +- [ ] Add `nofee.testnut.cashu.space` to ESP32's config +- [ ] Verify both mints accepted on OpenWRT +- [ ] Verify both mints accepted on ESP32 + +## Wallet Funding + +- [ ] Fund ESP32 wallet via `cashu send --legacy` (V3 token) +- [ ] Fund OpenWRT wallet via `mint-token` (V4 token) +- [ ] Verify ESP32 balance > 0 +- [ ] Verify OpenWRT balance > 0 + +## Scenario 1: Laptop → ESP32 + +- [ ] `make interop-laptop-esp32` — mint V3 token, POST to ESP32, verify internet +- [ ] Token accepted (kind=1022) +- [ ] Internet works after payment +- [ ] Spent token rejected (kind=21023) + +## Scenario 2: Laptop → OpenWRT + +- [ ] `make interop-laptop-openwrt` — mint V4 token, POST to OpenWRT, verify internet +- [ ] Token accepted (kind=1022) +- [ ] Internet works after payment +- [ ] Spent token rejected (kind=21023) + +## Scenario 3: OpenWRT → ESP32 (Reseller) + +- [ ] `make interop-openwrt-esp32` — OpenWRT connects to ESP32 AP, auto-pays +- [ ] OpenWRT STA connects to `TollGate-C0E9CA` +- [ ] OpenWRT daemon detects TollGate upstream +- [ ] Auto-payment succeeds (ESP32 session created) +- [ ] OpenWRT has internet through ESP32 +- [ ] ESP32 wallet balance increased +- [ ] Cleanup: restore OpenWRT upstream + +## Scenario 5: ESP32 ↔ ESP32 + +- [ ] Flash Board B with different nsec +- [ ] Configure Board B's config.json +- [ ] Fund Board B wallet +- [ ] `make interop-esp32-esp32` — cross-board payment +- [ ] Cleanup: restore both boards + +## Cleanup + +- [ ] Restore OpenWRT production config +- [ ] Restore ESP32 original config (if changed) +- [ ] Verify both devices back to normal operation + +## Infrastructure + +- [x] `interop/INTEROP_PLAN.md` written +- [ ] `interop/AGENTS.md` written +- [ ] `interop/routers.env.example` written +- [ ] `interop/Makefile` written +- [ ] `interop-status` target tested against real hardware +- [ ] Committed and pushed -- cgit v1.2.3