cryptnox-pos 1.0.0
Standalone USDC payment terminal firmware (ESP32 + Cryptnox smart card)
Loading...
Searching...
No Matches
File List
Here is a list of all files with brief descriptions:
 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