|
cryptnox-pos 1.0.0
Standalone USDC payment terminal firmware (ESP32 + Cryptnox smart card)
|
| main | |
| fonts | |
| font_icons_48.c | |
| font_inter_14.c | |
| font_inter_14_medium.c | |
| font_pjs_20_medium.c | |
| font_pjs_20_semibold.c | |
| font_pjs_28_light.c | |
| font_pjs_28_semibold.c | |
| addr_check.h | Structural address checks for the config portal |
| assets.h | What each selectable asset IS — one row per pos_chain_t |
| boot.cpp | Bring-up: NVS, panel, reader, wallet, addresses, setup wizard, Wi-Fi and clock — everything before the main loop |
| card_io.cpp | The card on the reader: is it usable, open a channel, sign, read the payout addresses off it |
| card_status.h | What a tapped card is missing, read from its SELECT response |
| chain_icons.c | |
| chain_icons.h | |
| civil_time.cpp | TZ-independent calendar arithmetic and date-string parsing |
| civil_time.h | TZ-independent calendar arithmetic and date-string parsing |
| config_defaults.h | Config.h, plus a default for every key added after the first config.h files shipped — so an older config.h still builds |
| eth_addr.cpp | Implementation of the hex Ethereum-address parser, with EIP-55 checksum verification (HARDENING.md §7.1) |
| eth_addr.h | Hex Ethereum-address parsing — a pure, dependency-free unit so it can be unit-tested and fuzzed on the host (see fuzz/fuzz_parse_address.cpp) |
| eth_json.cpp | Implementation of the JSON-RPC response parsing helpers |
| eth_json.h | JSON-RPC response parsing helpers — kept in their own unit (cJSON + CW_Utils only, no ESP-IDF networking) so they can be fuzzed on the host (see fuzz/fuzz_eth_rpc_json.cpp) |
| eth_rlp.cpp | RLP encoder implementation for EIP-1559 (type 2) transactions |
| eth_rlp.h | Minimal RLP encoder for EIP-1559 (type 2) Ethereum transactions |
| eth_rpc.cpp | Ethereum JSON-RPC client implementation (HTTPS). Network bring-up (Wi-Fi, SNTP) lives in net.cpp |
| eth_rpc.h | Ethereum JSON-RPC client over HTTPS (nonce / ecrecover parity / raw-tx broadcast / receipt polling). Network bring-up (Wi-Fi, SNTP) lives in net.h |
| eth_sig.cpp | Secp256k1 verification + recovery bit, on mbedTLS's ECP module |
| eth_sig.h | The recovery bit of a secp256k1 signature, computed on the device |
| form_parse.h | Application/x-www-form-urlencoded field extraction |
| hardening.cpp | Anomaly handling (§3.3): local fail-closed + persisted counter and a RAM ring buffer for on-site inspection. Never bricks |
| hardening.h | Decision-integrity primitives (see docs/HARDENING.md §3, §4) |
| https_post.cpp | HTTPS JSON POST with the authenticated-Date clock cross-check |
| https_post.h | One HTTPS JSON POST, shared by every RPC client in the firmware |
| json_out.h | Escaping for values the config portal puts inside a JSON string |
| keccak256.cpp | Original (pre-NIST) Keccak-256 implementation, 0x01 padding |
| keccak256.h | Original Keccak-256 digest as used by Ethereum |
| logo_mid.c | |
| logo_mid.h | |
| main.cpp | Cryptnox-pos entry point: touchscreen USDC payment terminal |
| money.h | The sale's arithmetic: keypad cents, base units, wei, fees, calldata |
| net.cpp | Wi-Fi station bring-up (init/scan/connect/RSSI) and SNTP time sync |
| net.h | Network bring-up: Wi-Fi station (init/scan/connect/RSSI) and SNTP time sync. No application-protocol logic lives here — the Ethereum JSON-RPC client is in eth_rpc.h |
| ota.cpp | Firmware slot handling. See ota.h for the why |
| ota.h | Firmware slot handling: receive an image into the idle slot, verify it, and install it only once somebody accepts it on the panel |
| ota_version.h | Dotted version comparison, for deciding whether an update goes forwards or backwards |
| pay.cpp | What a sale is paid with and to, and the sale between broadcast and verdict |
| pay_evm.cpp | Ethereum and Polygon: endpoint, fees, pre-flight balance, sign and broadcast an EIP-1559 transfer |
| pay_tron.cpp | Tron: pre-flight balance, sign and broadcast a TRX or TRC-20 transfer |
| portal_fonts.h | |
| portal_page.h | The config portal's document — the HTML/CSS half and the script half |
| pos_app.h | Private to the application files (main, boot, card_io, pay, pay_evm, pay_tron): the state they share and the calls between them |
| provision.cpp | The config portal: a SoftAP and a captive portal, for setup and for administration alike, one page for both. See provision.h for the why |
| provision.h | The config portal: one web app for setting a terminal up and for administering it afterwards, in two modes |
| rpc_error.h | Turn a node's JSON-RPC refusal into a line an operator can act on |
| settings.cpp | NVS-backed implementation of the persistent device settings |
| settings.h | Persistent device settings stored in NVS (backlight, Wi-Fi creds) |
| settings_rules.h | What a setting may be, apart from where it is stored |
| tap_icon.c | |
| tap_icon.h | |
| touch_cal.h | Touch arithmetic: two-point calibration, and the second-contact guard |
| tron_rpc.cpp | Tron HTTP API client implementation |
| tron_rpc.h | Tron HTTP API client (Nile testnet): build a TRX transfer, broadcast it signed, poll its receipt |
| tron_tx.cpp | Implementation of the Tron transaction hex helpers |
| tron_tx.h | Tron transaction hex helpers — protobuf varints, the TransferContract integrity check and the signed-Transaction envelope |
| ui.cpp | Touchscreen UI implementation built on LVGL 8.x |
| ui.h | Touchscreen UI API: screens, events and transaction states for the CYD (ILI9341 + XPT2046) payment flow |
| ui_admin.cpp | The settings page, touch calibration and the admin-code screens |
| ui_hal.cpp | Panel and touch hardware: TFT_eSPI flush, XPT2046 reads, the LVGL display and input drivers, backlight PWM |
| ui_internal.h | Private to the ui*.cpp files: the state and helpers they share |
| ui_sale.cpp | The sale flow: amount, confirm, PIN, transaction status, and their page chrome |
| ui_setup.cpp | First-run setup on the panel: welcome, the browser hand-off, card reads, Wi-Fi |
| ui_theme.cpp | Colours, the LVGL theme and the shared layout metrics |
| ui_widgets.cpp | Widget helpers shared by every screen, and the Wi-Fi signal mark |
| wdt.h | Task-watchdog feed that is safe to call from any task |