diff options
| author | Your Name <you@example.com> | 2026-05-17 05:27:06 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-17 05:27:06 +0530 |
| commit | fdf662f8f1a1a3b38fe4d251982fffab8e9bf664 (patch) | |
| tree | 2413bdc936b757adf4849a522b7df2a5c8eb0aec /main/config.c | |
| parent | edd125d0e3fe5fe7c0edf30c429723f3b0120c68 (diff) | |
Phase 7: MCP handler (25 tests), NIP-04 encrypt/decrypt (15 tests), CVM server skeleton
- mcp_handler.c/h: 4 tools (get_config, set_config, get_balance, wallet_send)
- nip04.c/h: AES-256-CBC + ECDH with 0x02 compressed pubkey prefix
- Fixed IV copy bug: mbedTLS AES-CBC modifies IV in-place
- Base64 encode/decode for ciphertext transport
- PKCS7 padding
- cvm_server.c/h: Nostr DM listener with FreeRTOS task
- config: cvm_enabled, cvm_relays fields
- 156 total tests passing across 10 test binaries
Diffstat (limited to 'main/config.c')
| -rw-r--r-- | main/config.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/main/config.c b/main/config.c index 3e01efc..2ee8637 100644 --- a/main/config.c +++ b/main/config.c | |||
| @@ -33,6 +33,8 @@ esp_err_t tollgate_config_init(void) | |||
| 33 | g_config.payout.check_interval_s = 60; | 33 | g_config.payout.check_interval_s = 60; |
| 34 | g_config.payout.recipient_count = 0; | 34 | g_config.payout.recipient_count = 0; |
| 35 | g_config.payout.mint_count = 0; | 35 | g_config.payout.mint_count = 0; |
| 36 | g_config.cvm_enabled = false; | ||
| 37 | strncpy(g_config.cvm_relays, "wss://relay.damus.io", sizeof(g_config.cvm_relays) - 1); | ||
| 36 | 38 | ||
| 37 | esp_vfs_spiffs_conf_t conf = { | 39 | esp_vfs_spiffs_conf_t conf = { |
| 38 | .base_path = "/spiffs", | 40 | .base_path = "/spiffs", |
| @@ -235,6 +237,16 @@ esp_err_t tollgate_config_init(void) | |||
| 235 | } | 237 | } |
| 236 | } | 238 | } |
| 237 | 239 | ||
| 240 | cJSON *cvm = cJSON_GetObjectItem(root, "cvm"); | ||
| 241 | if (cvm && cJSON_IsObject(cvm)) { | ||
| 242 | cJSON *cvm_en = cJSON_GetObjectItem(cvm, "enabled"); | ||
| 243 | if (cvm_en && cJSON_IsBool(cvm_en)) g_config.cvm_enabled = cJSON_IsTrue(cvm_en); | ||
| 244 | cJSON *cvm_relays = cJSON_GetObjectItem(cvm, "relays"); | ||
| 245 | if (cvm_relays && cJSON_IsString(cvm_relays)) { | ||
| 246 | strncpy(g_config.cvm_relays, cvm_relays->valuestring, sizeof(g_config.cvm_relays) - 1); | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 238 | if (g_config.payout.mint_count == 0 && g_config.mint_url[0] != '\0') { | 250 | if (g_config.payout.mint_count == 0 && g_config.mint_url[0] != '\0') { |
| 239 | strncpy(g_config.payout.mints[0].url, g_config.mint_url, | 251 | strncpy(g_config.payout.mints[0].url, g_config.mint_url, |
| 240 | sizeof(g_config.payout.mints[0].url) - 1); | 252 | sizeof(g_config.payout.mints[0].url) - 1); |