Skip to content
Snippets Groups Projects
Commit 595f2f01 authored by alexey.stratulat's avatar alexey.stratulat
Browse files

[*] Backported their wizard functionality to get total signature count, wild...

[*] Backported their wizard functionality to get total signature count, wild signature count, and all public key hashes for a token from a ledger.
parent 0b4bdac5
No related branches found
No related tags found
1 merge request!1094Support 8691
Pipeline #26263 passed with stage
in 7 minutes and 41 seconds
...@@ -1623,6 +1623,72 @@ dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger) ...@@ -1623,6 +1623,72 @@ dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger)
return l_str_ret; return l_str_ret;
} }
/**
* @breif dap_chain_ledger_token_auth_signs_valid
* @param a_ledger
* @param a_token_ticker
* @return 0 if no ticker found
*/
size_t dap_chain_ledger_token_auth_signs_valid(dap_ledger_t *a_ledger, const char * a_token_ticker)
{
dap_chain_ledger_token_item_t *l_token_item, *l_tmp_item;
pthread_rwlock_rdlock(&PVT(a_ledger)->tokens_rwlock);
size_t l_res = 0;
HASH_ITER(hh, PVT(a_ledger)->tokens, l_token_item, l_tmp_item) {
if (!dap_strcmp(l_token_item->ticker, a_token_ticker)) {
l_res = l_token_item->auth_signs_valid;
break;
}
}
pthread_rwlock_unlock(&PVT(a_ledger)->tokens_rwlock);
return l_res;
}
/**
* @breif dap_chain_ledger_token_auth_signs_total
* @param a_ledger
* @param a_token_ticker
* @return
*/
size_t dap_chain_ledger_token_auth_signs_total(dap_ledger_t *a_ledger, const char * a_token_ticker)
{
dap_chain_ledger_token_item_t *l_token_item, *l_tmp_item;
pthread_rwlock_rdlock(&PVT(a_ledger)->tokens_rwlock);
size_t l_res = 0;
HASH_ITER(hh, PVT(a_ledger)->tokens, l_token_item, l_tmp_item) {
if (!dap_strcmp(l_token_item->ticker, a_token_ticker)) {
l_res = l_token_item->auth_signs_total;
break;
}
}
pthread_rwlock_unlock(&PVT(a_ledger)->tokens_rwlock);
return l_res;
}
/**
* @breif dap_chain_ledger_token_auth_signs_hashes
* @param a_ledger
* @param a_token_ticker
* @return
*/
dap_list_t * dap_chain_ledger_token_auth_signs_hashes(dap_ledger_t *a_ledger, const char * a_token_ticker)
{
dap_list_t * l_ret = NULL;
dap_chain_ledger_token_item_t *l_token_item, *l_tmp_item;
pthread_rwlock_rdlock(&PVT(a_ledger)->tokens_rwlock);
HASH_ITER(hh, PVT(a_ledger)->tokens, l_token_item, l_tmp_item) {
if (!dap_strcmp(l_token_item->ticker, a_token_ticker)) {
debug_if(s_debug_more, L_INFO, " ! Token %s : total %lu auth signs", a_token_ticker, l_token_item->auth_signs_total);
for (size_t i = 0; i < l_token_item->auth_signs_total; i++) {
l_ret = dap_list_append(l_ret, (dap_chain_hash_fast_t*)(&l_token_item->auth_signs_pkey_hash[i]));
}
break;
}
}
pthread_rwlock_unlock(&PVT(a_ledger)->tokens_rwlock);
return l_ret;
}
/** /**
* @brief Compose string list of all tokens with information * @brief Compose string list of all tokens with information
* @param a_ledger * @param a_ledger
......
...@@ -145,6 +145,11 @@ dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger); ...@@ -145,6 +145,11 @@ dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger);
dap_string_t *dap_chain_ledger_threshold_info(dap_ledger_t *a_ledger); dap_string_t *dap_chain_ledger_threshold_info(dap_ledger_t *a_ledger);
dap_string_t *dap_chain_ledger_threshold_hash_info(dap_ledger_t *a_ledger, dap_chain_hash_fast_t *l_tx_treshold_hash); dap_string_t *dap_chain_ledger_threshold_hash_info(dap_ledger_t *a_ledger, dap_chain_hash_fast_t *l_tx_treshold_hash);
dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger); dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger);
size_t dap_chain_ledger_token_auth_signs_valid(dap_ledger_t *a_ledger, const char * a_token_ticker);
size_t dap_chain_ledger_token_auth_signs_total(dap_ledger_t *a_ledger, const char * a_token_ticker);
dap_list_t * dap_chain_ledger_token_auth_signs_hashes(dap_ledger_t *a_ledger, const char * a_token_ticker);
/** /**
* Add token emission datum * Add token emission datum
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment