From a595747affcbc5a20b476c76c414b8f2dbc59c1e Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Fri, 20 Mar 2026 10:32:43 -0400 Subject: [PATCH] Add Cashu keyset endpoints support and per-amount unblinding with live checkstate validation --- VERSION | 2 +- nostr_core/cashu_mint.c | 230 +++++++++++++++++++++++++++----- nostr_core/cashu_mint.h | 30 +++++ nostr_core/nip060.h | 2 +- nostr_core/nostr_core.h | 4 +- tests/nip60_live_receive_test | Bin 200480 -> 202312 bytes tests/nip60_live_receive_test.c | 218 ++++++++++++++---------------- 7 files changed, 332 insertions(+), 154 deletions(-) diff --git a/VERSION b/VERSION index d1d899fa..b49b2533 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.5.5 +0.5.6 diff --git a/nostr_core/cashu_mint.c b/nostr_core/cashu_mint.c index 5de7178a..00a5b308 100644 --- a/nostr_core/cashu_mint.c +++ b/nostr_core/cashu_mint.c @@ -226,6 +226,82 @@ static int cashu_call_raw(const char* mint_url, return NOSTR_SUCCESS; } +static int cashu_parse_keysets_array(cJSON* keysets, + cashu_keyset_t** keysets_out, + int* keyset_count_out) { + if (!keysets_out || !keyset_count_out) return NOSTR_ERROR_INVALID_INPUT; + + *keysets_out = NULL; + *keyset_count_out = 0; + + if (!keysets || !cJSON_IsArray(keysets)) { + return NOSTR_SUCCESS; + } + + int n = cJSON_GetArraySize(keysets); + if (n <= 0) return NOSTR_SUCCESS; + + cashu_keyset_t* out = (cashu_keyset_t*)calloc((size_t)n, sizeof(cashu_keyset_t)); + if (!out) return NOSTR_ERROR_MEMORY_FAILED; + + int out_count = 0; + for (int i = 0; i < n; i++) { + cJSON* ks = cJSON_GetArrayItem(keysets, i); + if (!ks || !cJSON_IsObject(ks)) continue; + + cJSON* id = cJSON_GetObjectItem(ks, "id"); + cJSON* unit = cJSON_GetObjectItem(ks, "unit"); + cJSON* active = cJSON_GetObjectItem(ks, "active"); + + if (!id || !cJSON_IsString(id) || !id->valuestring || id->valuestring[0] == '\0') continue; + + snprintf(out[out_count].id, sizeof(out[out_count].id), "%s", id->valuestring); + if (unit && cJSON_IsString(unit) && unit->valuestring) { + snprintf(out[out_count].unit, sizeof(out[out_count].unit), "%s", unit->valuestring); + } + if (active && cJSON_IsBool(active)) { + out[out_count].active = cJSON_IsTrue(active) ? 1 : 0; + } + + out_count++; + } + + if (out_count == 0) { + free(out); + return NOSTR_SUCCESS; + } + + *keysets_out = out; + *keyset_count_out = out_count; + return NOSTR_SUCCESS; +} + +int cashu_mint_get_keysets(const char* mint_url, + cashu_keyset_t** keysets_out, + int* keyset_count_out, + int timeout_seconds) { + if (!mint_url || !keysets_out || !keyset_count_out) return NOSTR_ERROR_INVALID_INPUT; + + *keysets_out = NULL; + *keyset_count_out = 0; + + cJSON* json = NULL; + int rc = cashu_call_raw(mint_url, "/v1/keysets", "GET", NULL, &json, timeout_seconds); + if (rc != NOSTR_SUCCESS) { + cJSON_Delete(json); + return rc; + } + + cJSON* keysets = cJSON_GetObjectItem(json, "keysets"); + rc = cashu_parse_keysets_array(keysets, keysets_out, keyset_count_out); + cJSON_Delete(json); + return rc; +} + +void cashu_mint_free_keysets(cashu_keyset_t* keysets) { + free(keysets); +} + int cashu_mint_get_info(const char* mint_url, cashu_mint_info_t* info_out, int timeout_seconds) { @@ -249,41 +325,23 @@ int cashu_mint_get_info(const char* mint_url, if (version && cJSON_IsString(version)) info_out->version = cashu_strdup(cJSON_GetStringValue(version)); cJSON* keysets = cJSON_GetObjectItem(json, "keysets"); - if (keysets && cJSON_IsArray(keysets)) { - int n = cJSON_GetArraySize(keysets); - if (n > 0) { - info_out->keysets = (cashu_keyset_t*)calloc((size_t)n, sizeof(cashu_keyset_t)); - if (!info_out->keysets) { - cJSON_Delete(json); - cashu_mint_free_info(info_out); - return NOSTR_ERROR_MEMORY_FAILED; - } + rc = cashu_parse_keysets_array(keysets, &info_out->keysets, &info_out->keyset_count); + cJSON_Delete(json); + if (rc != NOSTR_SUCCESS) { + cashu_mint_free_info(info_out); + return rc; + } - for (int i = 0; i < n; i++) { - cJSON* ks = cJSON_GetArrayItem(keysets, i); - if (!ks || !cJSON_IsObject(ks)) continue; - - cJSON* id = cJSON_GetObjectItem(ks, "id"); - cJSON* unit = cJSON_GetObjectItem(ks, "unit"); - cJSON* active = cJSON_GetObjectItem(ks, "active"); - - if (id && cJSON_IsString(id)) { - strncpy(info_out->keysets[info_out->keyset_count].id, - cJSON_GetStringValue(id), sizeof(info_out->keysets[info_out->keyset_count].id) - 1); - } - if (unit && cJSON_IsString(unit)) { - strncpy(info_out->keysets[info_out->keyset_count].unit, - cJSON_GetStringValue(unit), sizeof(info_out->keysets[info_out->keyset_count].unit) - 1); - } - if (active && cJSON_IsBool(active)) { - info_out->keysets[info_out->keyset_count].active = cJSON_IsTrue(active) ? 1 : 0; - } - info_out->keyset_count++; - } + if (!info_out->keysets || info_out->keyset_count == 0) { + cashu_keyset_t* fetched = NULL; + int fetched_count = 0; + rc = cashu_mint_get_keysets(mint_url, &fetched, &fetched_count, timeout_seconds); + if (rc == NOSTR_SUCCESS && fetched && fetched_count > 0) { + info_out->keysets = fetched; + info_out->keyset_count = fetched_count; } } - cJSON_Delete(json); return NOSTR_SUCCESS; } @@ -292,10 +350,118 @@ void cashu_mint_free_info(cashu_mint_info_t* info) { free(info->name); free(info->pubkey); free(info->version); - free(info->keysets); + cashu_mint_free_keysets(info->keysets); memset(info, 0, sizeof(*info)); } +int cashu_mint_get_keys(const char* mint_url, + const char* keyset_id, + cashu_keyset_keys_t* keys_out, + int timeout_seconds) { + if (!mint_url || !keyset_id || !keys_out) return NOSTR_ERROR_INVALID_INPUT; + + memset(keys_out, 0, sizeof(*keys_out)); + + char endpoint[640]; + snprintf(endpoint, sizeof(endpoint), "/v1/keys/%s", keyset_id); + + cJSON* json = NULL; + int rc = cashu_call_raw(mint_url, endpoint, "GET", NULL, &json, timeout_seconds); + if (rc != NOSTR_SUCCESS) { + cJSON_Delete(json); + return rc; + } + + cJSON* keysets = cJSON_GetObjectItem(json, "keysets"); + if (!keysets || !cJSON_IsArray(keysets) || cJSON_GetArraySize(keysets) <= 0) { + cJSON_Delete(json); + return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; + } + + cJSON* ks = cJSON_GetArrayItem(keysets, 0); + if (!ks || !cJSON_IsObject(ks)) { + cJSON_Delete(json); + return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; + } + + cJSON* id = cJSON_GetObjectItem(ks, "id"); + cJSON* unit = cJSON_GetObjectItem(ks, "unit"); + cJSON* keys = cJSON_GetObjectItem(ks, "keys"); + if (!id || !cJSON_IsString(id) || !id->valuestring || !keys || !cJSON_IsObject(keys)) { + cJSON_Delete(json); + return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; + } + + snprintf(keys_out->keyset_id, sizeof(keys_out->keyset_id), "%s", id->valuestring); + if (unit && cJSON_IsString(unit) && unit->valuestring) { + snprintf(keys_out->unit, sizeof(keys_out->unit), "%s", unit->valuestring); + } + + int count = 0; + for (cJSON* it = keys->child; it; it = it->next) { + if (!it->string || !cJSON_IsString(it) || !it->valuestring) continue; + count++; + } + + if (count <= 0) { + cJSON_Delete(json); + return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; + } + + keys_out->keys = (cashu_amount_key_t*)calloc((size_t)count, sizeof(cashu_amount_key_t)); + if (!keys_out->keys) { + cJSON_Delete(json); + return NOSTR_ERROR_MEMORY_FAILED; + } + + int out_idx = 0; + for (cJSON* it = keys->child; it; it = it->next) { + if (!it->string || !cJSON_IsString(it) || !it->valuestring) continue; + + unsigned long long amount = strtoull(it->string, NULL, 10); + if (amount == 0) continue; + + keys_out->keys[out_idx].amount = (uint64_t)amount; + snprintf(keys_out->keys[out_idx].pubkey, sizeof(keys_out->keys[out_idx].pubkey), "%s", it->valuestring); + out_idx++; + } + + keys_out->key_count = out_idx; + cJSON_Delete(json); + + if (keys_out->key_count <= 0) { + cashu_mint_free_keyset_keys(keys_out); + return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; + } + + return NOSTR_SUCCESS; +} + +void cashu_mint_free_keyset_keys(cashu_keyset_keys_t* keys) { + if (!keys) return; + free(keys->keys); + memset(keys, 0, sizeof(*keys)); +} + +int cashu_keyset_keys_find_pubkey_for_amount(const cashu_keyset_keys_t* keys, + uint64_t amount, + const char** pubkey_out) { + if (!keys || !keys->keys || keys->key_count <= 0 || amount == 0 || !pubkey_out) { + return NOSTR_ERROR_INVALID_INPUT; + } + + *pubkey_out = NULL; + + for (int i = 0; i < keys->key_count; i++) { + if (keys->keys[i].amount != amount) continue; + if (keys->keys[i].pubkey[0] == '\0') continue; + *pubkey_out = keys->keys[i].pubkey; + return NOSTR_SUCCESS; + } + + return NOSTR_ERROR_CASHU_INVALID_KEYSET; +} + int cashu_mint_request_mint_quote(const char* mint_url, uint64_t amount, const char* unit, diff --git a/nostr_core/cashu_mint.h b/nostr_core/cashu_mint.h index 46ee8151..39d14782 100644 --- a/nostr_core/cashu_mint.h +++ b/nostr_core/cashu_mint.h @@ -22,6 +22,18 @@ typedef struct { int active; } cashu_keyset_t; +typedef struct { + uint64_t amount; + char pubkey[67]; +} cashu_amount_key_t; + +typedef struct { + char keyset_id[65]; + char unit[16]; + cashu_amount_key_t* keys; + int key_count; +} cashu_keyset_keys_t; + typedef struct { char* name; char* pubkey; @@ -120,6 +132,24 @@ int cashu_mint_get_info(const char* mint_url, void cashu_mint_free_info(cashu_mint_info_t* info); +int cashu_mint_get_keysets(const char* mint_url, + cashu_keyset_t** keysets_out, + int* keyset_count_out, + int timeout_seconds); + +void cashu_mint_free_keysets(cashu_keyset_t* keysets); + +int cashu_mint_get_keys(const char* mint_url, + const char* keyset_id, + cashu_keyset_keys_t* keys_out, + int timeout_seconds); + +void cashu_mint_free_keyset_keys(cashu_keyset_keys_t* keys); + +int cashu_keyset_keys_find_pubkey_for_amount(const cashu_keyset_keys_t* keys, + uint64_t amount, + const char** pubkey_out); + int cashu_mint_request_mint_quote(const char* mint_url, uint64_t amount, const char* unit, diff --git a/nostr_core/nip060.h b/nostr_core/nip060.h index c0c4eb6f..1a00acee 100644 --- a/nostr_core/nip060.h +++ b/nostr_core/nip060.h @@ -22,7 +22,7 @@ extern "C" { #define NOSTR_NIP60_HISTORY_KIND 7376 #define NOSTR_NIP60_QUOTE_KIND 7374 -#define NOSTR_CASHU_KEYSET_ID_HEX_SIZE 17 +#define NOSTR_CASHU_KEYSET_ID_HEX_SIZE 65 #define NOSTR_CASHU_PUBKEY_HEX_SIZE 67 #define NOSTR_CASHU_EVENT_ID_HEX_SIZE 65 diff --git a/nostr_core/nostr_core.h b/nostr_core/nostr_core.h index 8cb9665d..24004b3c 100644 --- a/nostr_core/nostr_core.h +++ b/nostr_core/nostr_core.h @@ -2,10 +2,10 @@ #define NOSTR_CORE_H // Version information (auto-updated by increment_and_push.sh) -#define VERSION "v0.5.5" +#define VERSION "v0.5.6" #define VERSION_MAJOR 0 #define VERSION_MINOR 5 -#define VERSION_PATCH 5 +#define VERSION_PATCH 6 /* * NOSTR Core Library - Complete API Reference diff --git a/tests/nip60_live_receive_test b/tests/nip60_live_receive_test index 86c9e445a133b00baed3a38f314dbed03d22e2c9..1795ac75a3ddccc9ed0e592326e2a3e6ecec0965 100755 GIT binary patch literal 202312 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
Ut-@RFH=UX*5!KV=cX7=E$*N{(UrD-vI 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 literal 200480 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 #include #include -#include #include "../nostr_core/nostr_core.h" +/* private secp256k1 wrappers from utils.c */ +typedef struct { + unsigned char data[64]; +} nostr_secp256k1_pubkey; + +int nostr_secp256k1_ec_pubkey_parse(nostr_secp256k1_pubkey* pubkey, const unsigned char* input, size_t inputlen); + static int tests_run = 0; static int tests_passed = 0; @@ -21,123 +27,45 @@ static int tests_passed = 0; else { printf("❌ %s\n", msg); } \ } while (0) -typedef struct { - char* data; - size_t size; - size_t capacity; -} http_buf_t; +static int secret_to_Y_hex(const char* secret, char out_Y_hex[67]) { + if (!secret || !out_Y_hex) return NOSTR_ERROR_INVALID_INPUT; -static size_t write_cb(void* contents, size_t size, size_t nmemb, void* userp) { - http_buf_t* b = (http_buf_t*)userp; - size_t n = size * nmemb; - - if (b->size + n + 1 > b->capacity) { - size_t cap = b->capacity ? b->capacity * 2 : 1024; - while (cap < b->size + n + 1) cap *= 2; - char* p = (char*)realloc(b->data, cap); - if (!p) return 0; - b->data = p; - b->capacity = cap; + unsigned char digest[32] = {0}; + if (nostr_sha256((const unsigned char*)secret, strlen(secret), digest) != 0) { + return NOSTR_ERROR_CRYPTO_FAILED; } - memcpy(b->data + b->size, contents, n); - b->size += n; - b->data[b->size] = '\0'; - return n; -} + unsigned char candidate[33] = {0}; + for (int counter = 0; counter < 1024; counter++) { + unsigned char h[32] = {0}; + unsigned char data[36] = {0}; + memcpy(data, digest, 32); + data[32] = (unsigned char)((counter >> 24) & 0xff); + data[33] = (unsigned char)((counter >> 16) & 0xff); + data[34] = (unsigned char)((counter >> 8) & 0xff); + data[35] = (unsigned char)(counter & 0xff); -static int http_get_json(const char* url, cJSON** out_json) { - if (!url || !out_json) return NOSTR_ERROR_INVALID_INPUT; - *out_json = NULL; + if (nostr_sha256(data, sizeof(data), h) != 0) { + return NOSTR_ERROR_CRYPTO_FAILED; + } - CURL* curl = curl_easy_init(); - if (!curl) return NOSTR_ERROR_NETWORK_FAILED; + candidate[0] = 0x02; + memcpy(candidate + 1, h, 32); - http_buf_t b; - memset(&b, 0, sizeof(b)); - b.capacity = 2048; - b.data = (char*)malloc(b.capacity); - if (!b.data) { - curl_easy_cleanup(curl); - return NOSTR_ERROR_MEMORY_FAILED; - } - b.data[0] = '\0'; + nostr_secp256k1_pubkey pub; + if (nostr_secp256k1_ec_pubkey_parse(&pub, candidate, sizeof(candidate))) { + nostr_bytes_to_hex(candidate, sizeof(candidate), out_Y_hex); + return NOSTR_SUCCESS; + } - curl_easy_setopt(curl, CURLOPT_URL, url); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)write_cb); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &b); - curl_easy_setopt(curl, CURLOPT_TIMEOUT, 15L); - curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); - curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 3L); - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); - - CURLcode rc = curl_easy_perform(curl); - long status = 0; - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status); - curl_easy_cleanup(curl); - - if (rc != CURLE_OK || status < 200 || status >= 300) { - free(b.data); - return NOSTR_ERROR_CASHU_HTTP_FAILED; - } - - cJSON* json = cJSON_Parse(b.data); - free(b.data); - if (!json) return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; - - *out_json = json; - return NOSTR_SUCCESS; -} - -static int get_active_keyset_id(const char* mint_url, char out_id[65]) { - if (!mint_url || !out_id) return NOSTR_ERROR_INVALID_INPUT; - out_id[0] = '\0'; - - char url[1024]; - snprintf(url, sizeof(url), "%s/v1/keysets", mint_url); - - cJSON* root = NULL; - int rc = http_get_json(url, &root); - if (rc != NOSTR_SUCCESS) return rc; - - cJSON* arr = cJSON_GetObjectItem(root, "keysets"); - if (!arr || !cJSON_IsArray(arr)) { - cJSON_Delete(root); - return NOSTR_ERROR_CASHU_JSON_PARSE_FAILED; - } - - cJSON* selected = NULL; - int n = cJSON_GetArraySize(arr); - for (int i = 0; i < n; i++) { - cJSON* it = cJSON_GetArrayItem(arr, i); - if (!it || !cJSON_IsObject(it)) continue; - cJSON* active = cJSON_GetObjectItem(it, "active"); - if (active && cJSON_IsBool(active) && cJSON_IsTrue(active)) { - selected = it; - break; + candidate[0] = 0x03; + if (nostr_secp256k1_ec_pubkey_parse(&pub, candidate, sizeof(candidate))) { + nostr_bytes_to_hex(candidate, sizeof(candidate), out_Y_hex); + return NOSTR_SUCCESS; } } - if (!selected && n > 0) { - selected = cJSON_GetArrayItem(arr, 0); - } - - if (!selected) { - cJSON_Delete(root); - return NOSTR_ERROR_CASHU_INVALID_KEYSET; - } - - cJSON* id = cJSON_GetObjectItem(selected, "id"); - const char* id_s = (id && cJSON_IsString(id)) ? cJSON_GetStringValue(id) : NULL; - if (!id_s || id_s[0] == '\0') { - cJSON_Delete(root); - return NOSTR_ERROR_CASHU_INVALID_KEYSET; - } - - snprintf(out_id, 65, "%s", id_s); - cJSON_Delete(root); - return NOSTR_SUCCESS; + return NOSTR_ERROR_CRYPTO_FAILED; } static int base64_to_base64url_no_pad(const unsigned char* in, size_t in_len, char* out, size_t out_size) { @@ -243,15 +171,33 @@ static void test_live_mint_and_receive(const char* mint_url) { return; } - char keyset_id[65]; - memset(keyset_id, 0, sizeof(keyset_id)); - rc = get_active_keyset_id(mint_url, keyset_id); - TEST_ASSERT(rc == NOSTR_SUCCESS, "fetch active keyset id"); + cashu_keyset_t active_keyset; + memset(&active_keyset, 0, sizeof(active_keyset)); + rc = cashu_mint_get_active_keyset(&info, "sat", &active_keyset); + TEST_ASSERT(rc == NOSTR_SUCCESS, "select active sat keyset"); if (rc != NOSTR_SUCCESS) { cashu_mint_free_info(&info); return; } + cashu_keyset_keys_t keyset_keys; + memset(&keyset_keys, 0, sizeof(keyset_keys)); + rc = cashu_mint_get_keys(mint_url, active_keyset.id, &keyset_keys, 15); + TEST_ASSERT(rc == NOSTR_SUCCESS, "fetch per-amount keyset keys"); + if (rc != NOSTR_SUCCESS) { + cashu_mint_free_info(&info); + return; + } + + const char* amount_pubkey = NULL; + rc = cashu_keyset_keys_find_pubkey_for_amount(&keyset_keys, 1, &amount_pubkey); + TEST_ASSERT(rc == NOSTR_SUCCESS && amount_pubkey != NULL, "find pubkey for amount=1"); + if (rc != NOSTR_SUCCESS || !amount_pubkey) { + cashu_mint_free_keyset_keys(&keyset_keys); + cashu_mint_free_info(&info); + return; + } + cashu_mint_quote_t quote; memset("e, 0, sizeof(quote)); rc = cashu_mint_request_mint_quote(mint_url, 1, "sat", "e, 15); @@ -286,14 +232,15 @@ static void test_live_mint_and_receive(const char* mint_url) { cashu_blinded_output_t output; memset(&output, 0, sizeof(output)); - size_t keyset_len = strlen(keyset_id); + size_t keyset_len = strlen(active_keyset.id); TEST_ASSERT(keyset_len < sizeof(output.id), "keyset id fits library struct"); if (keyset_len >= sizeof(output.id)) { + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } - memcpy(output.id, keyset_id, keyset_len + 1); + memcpy(output.id, active_keyset.id, keyset_len + 1); output.amount = 1; snprintf(output.B_, sizeof(output.B_), "%s", B_hex); @@ -308,6 +255,7 @@ static void test_live_mint_and_receive(const char* mint_url) { rc = cashu_build_mint_tokens_request(&mint_req, &mint_body); TEST_ASSERT(rc == NOSTR_SUCCESS && mint_body != NULL, "build mint tokens request"); if (rc != NOSTR_SUCCESS || !mint_body) { + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } @@ -318,6 +266,7 @@ static void test_live_mint_and_receive(const char* mint_url) { TEST_ASSERT(rc == NOSTR_SUCCESS && mint_resp_json != NULL, "mint tokens call"); if (rc != NOSTR_SUCCESS || !mint_resp_json) { cJSON_Delete(mint_resp_json); + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } @@ -330,24 +279,27 @@ static void test_live_mint_and_receive(const char* mint_url) { TEST_ASSERT(mint_resp.signature_count >= 1, "mint returned signatures"); if (rc != NOSTR_SUCCESS || mint_resp.signature_count < 1) { cashu_mint_free_mint_tokens_response(&mint_resp); + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } char C_hex[67]; - rc = cashu_unblind_signature(mint_resp.signatures[0].C_, info.pubkey, r, C_hex); - TEST_ASSERT(rc == NOSTR_SUCCESS, "unblind signature"); + rc = cashu_unblind_signature(mint_resp.signatures[0].C_, amount_pubkey, r, C_hex); + TEST_ASSERT(rc == NOSTR_SUCCESS, "unblind signature with per-amount key"); if (rc != NOSTR_SUCCESS) { cashu_mint_free_mint_tokens_response(&mint_resp); + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } char token_string[10000]; - rc = build_cashuA_token_string(mint_url, keyset_id, 1, secret, C_hex, token_string, sizeof(token_string)); + rc = build_cashuA_token_string(mint_url, active_keyset.id, 1, secret, C_hex, token_string, sizeof(token_string)); TEST_ASSERT(rc == NOSTR_SUCCESS, "build cashuA token string"); if (rc != NOSTR_SUCCESS) { cashu_mint_free_mint_tokens_response(&mint_resp); + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); return; } @@ -359,12 +311,42 @@ static void test_live_mint_and_receive(const char* mint_url) { TEST_ASSERT(decoded.mint_url != NULL && strcmp(decoded.mint_url, mint_url) == 0, "decoded mint url matches"); TEST_ASSERT(decoded.proof_count == 1, "decoded proof count"); TEST_ASSERT(decoded.proofs != NULL && decoded.proofs[0].amount == 1, "decoded proof amount"); - TEST_ASSERT(decoded.proofs != NULL && strcmp(decoded.proofs[0].id, keyset_id) == 0, "decoded keyset id"); + TEST_ASSERT(decoded.proofs != NULL && strcmp(decoded.proofs[0].id, active_keyset.id) == 0, "decoded keyset id"); TEST_ASSERT(decoded.proofs != NULL && decoded.proofs[0].secret != NULL && strcmp(decoded.proofs[0].secret, secret) == 0, "decoded secret matches"); + char Y_hex[67]; + rc = secret_to_Y_hex(secret, Y_hex); + TEST_ASSERT(rc == NOSTR_SUCCESS, "derive Y from secret for checkstate"); + if (rc == NOSTR_SUCCESS) { + const char* Ys[1] = {Y_hex}; + cJSON* check_req = NULL; + rc = cashu_build_checkstate_request(Ys, 1, &check_req); + TEST_ASSERT(rc == NOSTR_SUCCESS && check_req != NULL, "build checkstate request"); + + if (rc == NOSTR_SUCCESS && check_req != NULL) { + cJSON* check_resp_json = NULL; + rc = cashu_mint_check_proofs_state(mint_url, check_req, &check_resp_json, 15); + cJSON_Delete(check_req); + TEST_ASSERT(rc == NOSTR_SUCCESS && check_resp_json != NULL, "checkstate call"); + + if (rc == NOSTR_SUCCESS && check_resp_json != NULL) { + cashu_checkstate_response_t state; + memset(&state, 0, sizeof(state)); + rc = cashu_parse_checkstate_response(check_resp_json, &state); + cJSON_Delete(check_resp_json); + TEST_ASSERT(rc == NOSTR_SUCCESS, "parse checkstate response"); + TEST_ASSERT(state.state_count >= 1, "checkstate returned at least one state"); + TEST_ASSERT(state.state_count >= 1 && strcmp(state.states[0].state, "UNSPENT") == 0, + "mint reports proof as UNSPENT"); + cashu_mint_free_checkstate_response(&state); + } + } + } + cashu_free_decoded_token(&decoded); cashu_mint_free_mint_tokens_response(&mint_resp); + cashu_mint_free_keyset_keys(&keyset_keys); cashu_mint_free_info(&info); }