diff --git a/dap_chain_mempool.c b/dap_chain_mempool.c index 3019c9549c575523341fb69421ec0294e5a98fe5..4641bb087ca672bc5e885e64597564a96e8d19a1 100755 --- a/dap_chain_mempool.c +++ b/dap_chain_mempool.c @@ -52,7 +52,6 @@ #include "dap_list.h" #include "dap_chain_sign.h" #include "dap_chain_datum_tx.h" -#include "dap_chain_utxo.h" #include "dap_chain_datum_tx_items.h" #define LOG_TAG "dap_chain_mempool" @@ -88,14 +87,14 @@ int dap_chain_mempool_datum_add(dap_chain_datum_t * a_datum) * * return 0 Ok, -2 not enough funds to transfer, -1 other Error */ -int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, +int dap_chain_mempool_tx_create(dap_ledger_t *a_ledger, dap_enc_key_t *a_key_from, const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_to, const dap_chain_addr_t* a_addr_fee, const char a_token_ticker[10], uint64_t a_value, uint64_t a_value_fee) { // check valid param - if(!a_key_from || !a_key_from->priv_key_data || !a_key_from->priv_key_data_size || + if(!a_ledger | !a_key_from || !a_key_from->priv_key_data || !a_key_from->priv_key_data_size || !dap_chain_addr_check_sum(a_addr_from) || !dap_chain_addr_check_sum(a_addr_to) || (a_addr_fee && !dap_chain_addr_check_sum(a_addr_fee)) || !a_value) return -1; @@ -109,7 +108,7 @@ int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, while(l_value_transfer < l_value_need) { // Get the transaction in the cache by the addr in out item - const dap_chain_datum_tx_t *l_tx = dap_chain_utxo_tx_find_by_addr(a_addr_from, + const dap_chain_datum_tx_t *l_tx = dap_chain_ledger_tx_find_by_addr(a_ledger, a_addr_from, &l_tx_cur_hash); if(!l_tx) break; @@ -125,7 +124,7 @@ int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, if(out_item && &out_item->addr && !memcmp(a_addr_from, &out_item->addr, sizeof(dap_chain_addr_t))) { // Check whether used 'out' items - if(!dap_chain_utxo_tx_hash_is_used_out_item(&l_tx_cur_hash, l_out_idx_tmp)) { + if(!dap_chain_ledger_tx_hash_is_used_out_item(a_ledger, &l_tx_cur_hash, l_out_idx_tmp)) { list_used_item_t *item = DAP_NEW(list_used_item_t); memcpy(&item->tx_hash_fast, &l_tx_cur_hash, sizeof(dap_chain_hash_fast_t)); @@ -207,9 +206,9 @@ int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum, dap_chain_datum_size(l_datum) , c_dap_datum_mempool_gdb_group)) { log_it(L_NOTICE, "Transaction %s placed in mempool", l_key_str); - // add transaction to utxo - if(dap_chain_utxo_tx_add((dap_chain_datum_tx_t*) l_datum->data) < 0) - log_it(L_ERROR, "Transaction %s not placed in UTXO", l_key_str); + // add transaction to ledger + if(dap_chain_ledger_tx_add(a_ledger, (dap_chain_datum_tx_t*) l_datum->data) < 0) + log_it(L_ERROR, "Transaction %s not placed in LEDGER", l_key_str); } DAP_DELETE(l_key_str); @@ -221,13 +220,14 @@ int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, * * return 0 Ok, -2 not enough funds to transfer, -1 other Error */ -int dap_chain_mempool_tx_create_cond(dap_enc_key_t *a_key_from, dap_enc_key_t *a_key_cond, +int dap_chain_mempool_tx_create_cond(dap_ledger_t *a_ledger, + dap_enc_key_t *a_key_from, dap_enc_key_t *a_key_cond, const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_cond, const dap_chain_addr_t* a_addr_fee, const char a_token_ticker[10], uint64_t a_value, uint64_t a_value_fee, const void *a_cond, size_t a_cond_size) { // check valid param - if(!a_key_from || !a_key_from->priv_key_data || !a_key_from->priv_key_data_size || + if(!a_ledger || !a_key_from || !a_key_from->priv_key_data || !a_key_from->priv_key_data_size || !dap_chain_addr_check_sum(a_addr_from) || !dap_chain_addr_check_sum(a_addr_cond) || (a_addr_fee && !dap_chain_addr_check_sum(a_addr_fee)) || !a_value) return -1; @@ -241,7 +241,7 @@ int dap_chain_mempool_tx_create_cond(dap_enc_key_t *a_key_from, dap_enc_key_t *a while(l_value_transfer < l_value_need) { // Get the transaction in the cache by the addr in out item - const dap_chain_datum_tx_t *l_tx = dap_chain_utxo_tx_find_by_addr(a_addr_from, + const dap_chain_datum_tx_t *l_tx = dap_chain_ledger_tx_find_by_addr(a_ledger, a_addr_from, &l_tx_cur_hash); if(!l_tx) break; @@ -257,7 +257,7 @@ int dap_chain_mempool_tx_create_cond(dap_enc_key_t *a_key_from, dap_enc_key_t *a if(out_item && &out_item->addr && !memcmp(a_addr_from, &out_item->addr, sizeof(dap_chain_addr_t))) { // Check whether used 'out' items - if(!dap_chain_utxo_tx_hash_is_used_out_item(&l_tx_cur_hash, l_out_idx_tmp)) { + if(!dap_chain_ledger_tx_hash_is_used_out_item(a_ledger, &l_tx_cur_hash, l_out_idx_tmp)) { list_used_item_t *item = DAP_NEW(list_used_item_t); memcpy(&item->tx_hash_fast, &l_tx_cur_hash, sizeof(dap_chain_hash_fast_t)); @@ -340,9 +340,9 @@ int dap_chain_mempool_tx_create_cond(dap_enc_key_t *a_key_from, dap_enc_key_t *a if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum, dap_chain_datum_size(l_datum) , c_dap_datum_mempool_gdb_group)) { log_it(L_NOTICE, "Transaction %s placed in mempool", l_key_str); - // add transaction to utxo - if(dap_chain_utxo_tx_add((dap_chain_datum_tx_t*) l_datum->data) < 0) - log_it(L_ERROR, "Transaction %s not placed in UTXO", l_key_str); + // add transaction to ledger + if(dap_chain_ledger_tx_add(a_ledger, (dap_chain_datum_tx_t*) l_datum->data) < 0) + log_it(L_ERROR, "Transaction %s not placed in LEDGER", l_key_str); } DAP_DELETE(l_key_str); @@ -375,7 +375,7 @@ int dap_chain_mempool_tx_create_receipt(uint64_t a_value) while(l_value_transfer < l_value_need) { // Get the transaction in the cache by the addr in out item - const dap_chain_datum_tx_t *l_tx = dap_chain_utxo_tx_find_by_addr(a_addr_from, + const dap_chain_datum_tx_t *l_tx = dap_chain_ledger_tx_find_by_addr(a_addr_from, &l_tx_cur_hash); if(!l_tx) break; @@ -391,7 +391,7 @@ int dap_chain_mempool_tx_create_receipt(uint64_t a_value) if(out_item && &out_item->addr && !memcmp(a_addr_from, &out_item->addr, sizeof(dap_chain_addr_t))) { // Check whether used 'out' items - if(!dap_chain_utxo_tx_hash_is_used_out_item(&l_tx_cur_hash, l_out_idx_tmp)) { + if(!dap_chain_ledger_tx_hash_is_used_out_item(&l_tx_cur_hash, l_out_idx_tmp)) { list_used_item_t *item = DAP_NEW(list_used_item_t); memcpy(&item->tx_hash_fast, &l_tx_cur_hash, sizeof(dap_chain_hash_fast_t)); @@ -474,9 +474,9 @@ int dap_chain_mempool_tx_create_receipt(uint64_t a_value) if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum, dap_chain_datum_size(l_datum) , c_dap_datum_mempool_gdb_group)) { log_it(L_NOTICE, "Transaction %s placed in mempool", l_key_str); - // add transaction to utxo - if(dap_chain_utxo_tx_add((dap_chain_datum_tx_t*) l_datum->data) < 0) - log_it(L_ERROR, "Transaction %s not placed in UTXO", l_key_str); + // add transaction to ledger + if(dap_chain_ledger_tx_add((dap_chain_datum_tx_t*) l_datum->data) < 0) + log_it(L_ERROR, "Transaction %s not placed in LEDGER", l_key_str); } DAP_DELETE(l_key_str);*/ diff --git a/dap_chain_mempool.h b/dap_chain_mempool.h index ea22e054027d1b9bbd0e32221ae2199bbdf66dc0..b9b5a8e939acca94abe2ad099c348bc7c770152c 100755 --- a/dap_chain_mempool.h +++ b/dap_chain_mempool.h @@ -2,6 +2,7 @@ #include <stdint.h> #include "dap_chain_datum.h" +#include "dap_chain_ledger.h" #include "dap_http.h" /* // datum mempool structure @@ -41,15 +42,17 @@ void dap_datum_mempool_free(dap_datum_mempool_t *datum); void dap_chain_mempool_add_proc(dap_http_t * a_http_server, const char * a_url); -int dap_chain_mempool_tx_create(dap_enc_key_t *a_key_from, - const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_to, const dap_chain_addr_t* a_addr_fee, - const char a_token_ticker[10], +int dap_chain_mempool_tx_create(dap_ledger_t *a_ledger, dap_enc_key_t *a_key_from, + const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_to, + const dap_chain_addr_t* a_addr_fee, + const char a_token_ticker[10], uint64_t a_value, uint64_t a_value_fee); // Make transfer transaction & insert to cache -int dap_chain_mempool_tx_create_cond(dap_enc_key_t *a_key_from, dap_enc_key_t *a_key_cond, - const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_cond, - const dap_chain_addr_t* a_addr_fee, const char a_token_ticker[10], - uint64_t a_value, uint64_t a_value_fee, const void *a_cond, size_t a_cond_size); +int dap_chain_mempool_tx_create_cond(dap_ledger_t *a_ledger, + dap_enc_key_t *a_key_from, dap_enc_key_t *a_key_cond, + const dap_chain_addr_t* a_addr_from, const dap_chain_addr_t* a_addr_cond, + const dap_chain_addr_t* a_addr_fee, const char a_token_ticker[10], + uint64_t a_value, uint64_t a_value_fee, const void *a_cond, size_t a_cond_size); int dap_chain_mempool_datum_add(dap_chain_datum_t * a_datum);