diff options
| author | Your Name <you@example.com> | 2026-05-18 18:50:20 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-18 18:50:20 +0530 |
| commit | f6369f5b87f5dab17a03315d82454fdcdd668ec9 (patch) | |
| tree | bc16c22f87253eafa680a30da370b1822d855ca4 /components/tollgate_core/idf_component.yml | |
| parent | d8c55d2a072433e16ae5c84b7b7c676587f6f2d9 (diff) | |
feat: extract tollgate_core ESP-IDF component
Extract shared TollGate business logic into a reusable ESP-IDF component
that can be consumed by esp-miner via the IDF Component Manager.
Component structure:
components/tollgate_core/
include/tollgate_core.h — public API
include/tollgate_platform.h — platform interface (config callbacks)
src/tollgate_core.c — orchestrator (init, payment, tick, owner)
src/tollgate_core_cashu.c/h — Cashu V3 token decode/verify
src/tollgate_core_dns.c/h — per-client DNS hijack/forward
src/tollgate_core_firewall.c/h — per-client NAT filter
src/tollgate_core_session.c/h — session lifecycle
Key design decisions:
- Platform interface pattern: consumers implement tollgate_platform_t
(config getters + optional spend_proofs wallet hook)
- Cross-module wiring (session→firewall→dns) stays internal
- No direct config.h dependency — all config via platform callbacks
- spend_proofs can be NULL (accepts payment without local wallet)
Standalone app updated:
- main/tollgate_platform.c implements platform via config singleton
- main/tollgate_main.c calls tollgate_core_init/tick/dns_start
- main/tollgate_api.c routes payment through tollgate_core_process_payment
- Removed cashu.c, dns_server.c, firewall.c, session.c from CMakeLists
Not yet build-verified — blocked on multi-mint, price-discovery,
cvm-integration, and display-fix branches merging to master.
Diffstat (limited to 'components/tollgate_core/idf_component.yml')
| -rw-r--r-- | components/tollgate_core/idf_component.yml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/components/tollgate_core/idf_component.yml b/components/tollgate_core/idf_component.yml new file mode 100644 index 0000000..112aa18 --- /dev/null +++ b/components/tollgate_core/idf_component.yml | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | version: "1.0.0" | ||
| 2 | description: TollGate core component — Cashu payment processing, per-client DNS/firewall, session management for paid WiFi hotspots | ||
| 3 | url: https://github.com/nicoulaj/esp32-tollgate | ||
| 4 | dependencies: | ||
| 5 | idf: | ||
| 6 | version: ">=5.4.0" | ||