diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c index ca769f4f7b0552eedcaab9199ed1e54339077e64..c90c9e70c129c29e3b4e29ed2ecd3298a16bf60e 100644 --- a/modules/chain/dap_chain_ledger.c +++ b/modules/chain/dap_chain_ledger.c @@ -1783,6 +1783,26 @@ dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger) return l_ret_list; } +/** + * @brief Get all token declatations + * @param a_ledger + * @return + */ +dap_list_t* dap_chain_ledger_token_decl_all(dap_ledger_t *a_ledger) +{ + 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) { + dap_chain_datum_token_t *l_token = l_token_item->datum_token; + l_ret = dap_list_append(l_ret, l_token); + } + pthread_rwlock_unlock(&PVT(a_ledger)->tokens_rwlock); + return l_ret; +} + + /** * @brief s_threshold_emissions_proc * @param a_ledger diff --git a/modules/chain/include/dap_chain_ledger.h b/modules/chain/include/dap_chain_ledger.h index c76a9d11278b889d3fb494319ddf37a21b716558..e0cc9f45e2b47ad6fc6c244095aeb61186f803da 100644 --- a/modules/chain/include/dap_chain_ledger.h +++ b/modules/chain/include/dap_chain_ledger.h @@ -142,6 +142,10 @@ int dap_chain_ledger_token_add(dap_ledger_t *a_ledger, dap_chain_datum_token_t * int dap_chain_ledger_token_load(dap_ledger_t *a_ledger, dap_chain_datum_token_t *a_token, size_t a_token_size); int dap_chain_ledger_token_decl_add_check(dap_ledger_t *a_ledger, dap_chain_datum_token_t *a_token, size_t a_token_size); dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger); + +// Get all token-declarations +dap_list_t* dap_chain_ledger_token_decl_all(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_balance_info(dap_ledger_t *a_ledger);