diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c index ae129db15a15dcb2a36cb964d5f30e6ea488be92..aa089177b0d1d6a5e66d58150b79b62907555ee4 100644 --- a/modules/chain/dap_chain_ledger.c +++ b/modules/chain/dap_chain_ledger.c @@ -140,9 +140,9 @@ typedef struct dap_chain_ledger_tx_bound { dap_chain_tx_in_cond_t *tx_cur_in_cond; } in; union { - dap_chain_tx_out_t *tx_prev_out; + dap_chain_tx_out_old_t *tx_prev_out; // 256 - dap_chain_256_tx_out_t *tx_prev_out_256; + dap_chain_tx_out_t *tx_prev_out_256; dap_chain_tx_out_ext_t *tx_prev_out_ext_256; dap_chain_tx_out_cond_t *tx_prev_out_cond_256; } out; @@ -1840,11 +1840,11 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t if (l_cond_type == TX_ITEM_TYPE_IN) { dap_chain_tx_item_type_t l_type = *(uint8_t *)l_tx_prev_out; switch (l_type) { - case TX_ITEM_TYPE_OUT: + case TX_ITEM_TYPE_OUT_OLD: bound_item->out.tx_prev_out = l_tx_prev_out; memcpy(&l_tx_in_from, &bound_item->out.tx_prev_out->addr,sizeof (bound_item->out.tx_prev_out->addr)); break; - case TX_ITEM_TYPE_OUT_256: // 256 + case TX_ITEM_TYPE_OUT: // 256 bound_item->out.tx_prev_out_256 = l_tx_prev_out; memcpy(&l_tx_in_from, &bound_item->out.tx_prev_out_256->addr,sizeof (bound_item->out.tx_prev_out_256->addr)); break; @@ -1874,9 +1874,9 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t uint8_t *l_prev_out_addr_key = NULL; switch (l_type) { - case TX_ITEM_TYPE_OUT_256: - l_prev_out_addr_key = bound_item->out.tx_prev_out_256->addr.data.key; break; case TX_ITEM_TYPE_OUT: + l_prev_out_addr_key = bound_item->out.tx_prev_out_256->addr.data.key; break; + case TX_ITEM_TYPE_OUT_OLD: l_prev_out_addr_key = bound_item->out.tx_prev_out->addr.data.key; break; case TX_ITEM_TYPE_OUT_EXT: l_prev_out_addr_key = bound_item->out.tx_prev_out_ext_256->addr.data.key; break; @@ -1890,9 +1890,9 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t } switch (l_type) { - case TX_ITEM_TYPE_OUT_256: // 256 + case TX_ITEM_TYPE_OUT: // 256 l_value = bound_item->out.tx_prev_out_256->header.value; break; - case TX_ITEM_TYPE_OUT: + case TX_ITEM_TYPE_OUT_OLD: l_value = dap_chain_uint256_from(bound_item->out.tx_prev_out->header.value); break; case TX_ITEM_TYPE_OUT_EXT: // 256 l_value = bound_item->out.tx_prev_out_ext_256->header.value; @@ -1901,7 +1901,7 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t default: break; } } else { // TX_ITEM_TYPE_IN_COND - if(*(uint8_t *)l_tx_prev_out != TX_ITEM_TYPE_OUT_256_COND) { + if(*(uint8_t *)l_tx_prev_out != TX_ITEM_TYPE_OUT_COND) { l_err_num = -8; break; } @@ -2029,7 +2029,7 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t } dap_list_t *l_list_tx_out = NULL; - bool emission_flag = !l_is_first_transaction || (l_is_first_transaction && l_ledger_priv->check_token_emission); + bool l_emission_flag = !l_is_first_transaction || (l_is_first_transaction && l_ledger_priv->check_token_emission); // find 'out' items dap_list_t *l_list_out = dap_chain_datum_tx_items_get((dap_chain_datum_tx_t*) a_tx, TX_ITEM_TYPE_OUT_ALL, NULL); uint256_t l_value = {}; @@ -2037,25 +2037,25 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data; dap_chain_addr_t l_tx_out_to={0}; switch (l_type) { - case TX_ITEM_TYPE_OUT: { - dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_tmp->data; + case TX_ITEM_TYPE_OUT_OLD: { + dap_chain_tx_out_old_t *l_tx_out = (dap_chain_tx_out_old_t *)l_list_tmp->data; if (l_multichannel) { // token ticker is mandatory for multichannel transactions l_err_num = -16; break; } - if (emission_flag) { + if (l_emission_flag) { l_value = dap_chain_uint256_from(l_tx_out->header.value); } memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to)); l_list_tx_out = dap_list_append(l_list_tx_out, l_tx_out); } break; - case TX_ITEM_TYPE_OUT_256: { // 256 - dap_chain_256_tx_out_t *l_tx_out = (dap_chain_256_tx_out_t *)l_list_tmp->data; + case TX_ITEM_TYPE_OUT: { // 256 + dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_tmp->data; if (l_multichannel) { // token ticker is mandatory for multichannel transactions l_err_num = -16; break; } - if (emission_flag) { + if (l_emission_flag) { l_value = l_tx_out->header.value; } memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to)); @@ -2067,16 +2067,16 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t l_err_num = -16; break; } - if (emission_flag) { + if (l_emission_flag) { l_value = l_tx_out->header.value; l_token = l_tx_out->token; } memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to)); l_list_tx_out = dap_list_append(l_list_tx_out, l_tx_out); } break; - case TX_ITEM_TYPE_OUT_256_COND: { + case TX_ITEM_TYPE_OUT_COND: { dap_chain_tx_out_cond_t *l_tx_out = (dap_chain_tx_out_cond_t *)l_list_tmp->data; - if (emission_flag) { + if (l_emission_flag) { l_value = l_tx_out->header.value; } if (l_multichannel) { // out_cond have no field .token @@ -2372,8 +2372,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, void *l_item_out = *(void **)&bound_item->out; dap_chain_tx_item_type_t l_out_type = *(uint8_t *)l_item_out; switch (l_out_type) { - case TX_ITEM_TYPE_OUT_256: l_addr = &bound_item->out.tx_prev_out_256->addr; break; - case TX_ITEM_TYPE_OUT: l_addr = &bound_item->out.tx_prev_out->addr; break; + case TX_ITEM_TYPE_OUT: l_addr = &bound_item->out.tx_prev_out_256->addr; break; + case TX_ITEM_TYPE_OUT_OLD: l_addr = &bound_item->out.tx_prev_out->addr; break; case TX_ITEM_TYPE_OUT_EXT: l_addr = &bound_item->out.tx_prev_out_ext_256->addr; break; default: log_it(L_DEBUG, "Unknown item type %d", l_out_type); @@ -2386,8 +2386,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, pthread_rwlock_unlock(&PVT(a_ledger)->balance_accounts_rwlock); if (wallet_balance) { switch (l_out_type) { - case TX_ITEM_TYPE_OUT_256: l_value = bound_item->out.tx_prev_out_256->header.value; break; - case TX_ITEM_TYPE_OUT: l_value = GET_256_FROM_64(bound_item->out.tx_prev_out->header.value); break; + case TX_ITEM_TYPE_OUT: l_value = bound_item->out.tx_prev_out_256->header.value; break; + case TX_ITEM_TYPE_OUT_OLD: l_value = GET_256_FROM_64(bound_item->out.tx_prev_out->header.value); break; case TX_ITEM_TYPE_OUT_EXT: l_value = bound_item->out.tx_prev_out_ext_256->header.value; break; default: log_it(L_DEBUG, "Unknown item type %d", l_out_type); @@ -2478,7 +2478,7 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, //Update balance : raise for (dap_list_t *l_tx_out = l_list_tx_out; l_tx_out; l_tx_out = dap_list_next(l_tx_out)) { dap_chain_tx_item_type_t l_type = *(uint8_t *)l_tx_out->data; - if (l_type == TX_ITEM_TYPE_OUT_COND) { + if (l_type == TX_ITEM_TYPE_OUT_COND_OLD) { // Update stakes if any dap_chain_tx_out_cond_t *l_cond = (dap_chain_tx_out_cond_t *)l_tx_out->data; if (l_cond->header.subtype == DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE && !l_stake_updated) { @@ -2493,13 +2493,13 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, } continue; // balance raise will be with next conditional transaction } - dap_chain_tx_out_t *l_out_item = NULL; - dap_chain_256_tx_out_t *l_out_item_256 = NULL; + dap_chain_tx_out_old_t *l_out_item = NULL; + dap_chain_tx_out_t *l_out_item_256 = NULL; dap_chain_tx_out_ext_t *l_out_item_ext_256 = NULL; switch (l_type) { - case TX_ITEM_TYPE_OUT_256: l_out_item_256 = (dap_chain_256_tx_out_t *)l_tx_out->data; break; - case TX_ITEM_TYPE_OUT: l_out_item = (dap_chain_tx_out_t *)l_tx_out->data; break; + case TX_ITEM_TYPE_OUT: l_out_item_256 = (dap_chain_tx_out_t *)l_tx_out->data; break; + case TX_ITEM_TYPE_OUT_OLD: l_out_item = (dap_chain_tx_out_old_t *)l_tx_out->data; break; case TX_ITEM_TYPE_OUT_EXT: l_out_item_ext_256 = (dap_chain_tx_out_ext_t *)l_tx_out->data; break; default: log_it(L_DEBUG, "Unknown item type %d", l_type); @@ -2509,8 +2509,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, if ((l_out_item||l_out_item_256||l_out_item_ext_256) && l_ticker_trl) { dap_chain_addr_t *l_addr; switch (l_type) { - case TX_ITEM_TYPE_OUT_256: l_addr = &l_out_item_256->addr; break; - case TX_ITEM_TYPE_OUT: l_addr = &l_out_item->addr; break; + case TX_ITEM_TYPE_OUT: l_addr = &l_out_item_256->addr; break; + case TX_ITEM_TYPE_OUT_OLD: l_addr = &l_out_item->addr; break; case TX_ITEM_TYPE_OUT_EXT: l_addr = &l_out_item_ext_256->addr; break; default: log_it(L_DEBUG, "Unknown item type %d", l_type); @@ -2524,8 +2524,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, char *l_wallet_balance_key = dap_strjoin(" ", l_addr_str, l_token_ticker, (char*)NULL); uint256_t l_value_256 = {}; switch (l_type) { - case TX_ITEM_TYPE_OUT_256: l_value_256 = l_out_item_256->header.value; break; // _256 - case TX_ITEM_TYPE_OUT: l_value_256 = GET_256_FROM_64(l_out_item->header.value); break; + case TX_ITEM_TYPE_OUT: l_value_256 = l_out_item_256->header.value; break; // _256 + case TX_ITEM_TYPE_OUT_OLD: l_value_256 = GET_256_FROM_64(l_out_item->header.value); break; case TX_ITEM_TYPE_OUT_EXT: l_value_256 = l_out_item_ext_256->header.value; break; // _256 default: log_it(L_DEBUG, "Unknown item type %d", l_type); @@ -2579,8 +2579,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, if (dap_log_level_get() == L_DEBUG && s_debug_more) { dap_list_t *it = l_tist_tmp; for (int i = 0; i < l_item_tmp->cache_data.n_outs; i++) { - dap_chain_tx_out_t *l_tx_out = it->data; - if (l_tx_out->header.type != TX_ITEM_TYPE_OUT) + dap_chain_tx_out_old_t *l_tx_out = it->data; + if (l_tx_out->header.type != TX_ITEM_TYPE_OUT_OLD) continue; char * l_tx_out_addr_str = dap_chain_addr_to_str( &l_tx_out->addr ); log_it(L_DEBUG, "Added tx out to %s", l_tx_out_addr_str); @@ -2972,11 +2972,11 @@ uint256_t dap_chain_ledger_calc_balance_full(dap_ledger_t *a_ledger, const dap_c for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_out_idx_tmp++) { assert(l_list_tmp->data); dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data; - if (l_type == TX_ITEM_TYPE_OUT_COND) { + if (l_type == TX_ITEM_TYPE_OUT_COND_OLD) { continue; } - if (l_type == TX_ITEM_TYPE_OUT) { - const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data; + if (l_type == TX_ITEM_TYPE_OUT_OLD) { + const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data; // Check for token name if (!strcmp(a_token_ticker, l_iter_current->cache_data.token_ticker)) { // if transaction has the out item with requested addr @@ -2992,9 +2992,9 @@ uint256_t dap_chain_ledger_calc_balance_full(dap_ledger_t *a_ledger, const dap_c } } } - if (l_type == TX_ITEM_TYPE_OUT_256) { // 256 - const dap_chain_256_tx_out_t *l_tx_out = (const dap_chain_256_tx_out_t*) l_list_tmp->data; - // const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data; + if (l_type == TX_ITEM_TYPE_OUT) { // 256 + const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data; + // const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data; // Check for token name if (!strcmp(a_token_ticker, l_iter_current->cache_data.token_ticker)) { // if transaction has the out item with requested addr @@ -3068,7 +3068,7 @@ static dap_chain_ledger_tx_item_t* tx_item_find_by_addr(dap_ledger_t *a_ledger, for(dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp)) { assert(l_list_tmp->data); dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data; - if (l_type == TX_ITEM_TYPE_OUT_COND) { + if (l_type == TX_ITEM_TYPE_OUT_COND || l_type == TX_ITEM_TYPE_OUT_COND_OLD) { continue; } if (l_type == TX_ITEM_TYPE_OUT) { @@ -3080,6 +3080,15 @@ static dap_chain_ledger_tx_item_t* tx_item_find_by_addr(dap_ledger_t *a_ledger, break; } } + if (l_type == TX_ITEM_TYPE_OUT_OLD) { + const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t *)l_list_tmp->data; + // if transaction has the out item with requested addr + if(!memcmp(a_addr, &l_tx_out->addr, sizeof(dap_chain_addr_t))) { + memcpy(a_tx_first_hash, l_tx_hash, sizeof(dap_chain_hash_fast_t)); + is_tx_found = true; + break; + } + } if (l_type == TX_ITEM_TYPE_OUT_EXT) { const dap_chain_tx_out_ext_t *l_tx_out_ext = (const dap_chain_tx_out_ext_t *)l_list_tmp->data; // If a_token is setup we check if its not our token - miss it @@ -3288,15 +3297,15 @@ dap_list_t *dap_chain_ledger_get_list_tx_outs_with_val(dap_ledger_t *a_ledger, c dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data; uint256_t l_value = {}; switch (l_type) { - case TX_ITEM_TYPE_OUT: { - dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data; + case TX_ITEM_TYPE_OUT_OLD: { + dap_chain_tx_out_old_t *l_out = (dap_chain_tx_out_old_t *)l_list_tmp->data; if (!l_out->header.value || memcmp(a_addr_from, &l_out->addr, sizeof(dap_chain_addr_t))) { continue; } l_value = GET_256_FROM_64(l_out->header.value); } break; - case TX_ITEM_TYPE_OUT_256: { - dap_chain_256_tx_out_t *l_out = (dap_chain_256_tx_out_t *)l_list_tmp->data; + case TX_ITEM_TYPE_OUT: { + dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data; if ( IS_ZERO_256(l_out->header.value) || memcmp(a_addr_from, &l_out->addr, sizeof(dap_chain_addr_t))) { continue; } @@ -3310,8 +3319,8 @@ dap_list_t *dap_chain_ledger_get_list_tx_outs_with_val(dap_ledger_t *a_ledger, c } l_value = l_out_ext->header.value; } break; + case TX_ITEM_TYPE_OUT_COND_OLD: case TX_ITEM_TYPE_OUT_COND: - case TX_ITEM_TYPE_OUT_256_COND: default: continue; } diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c index eb6a5f64fe110dca772346c89ac5098126082661..8cfcbf050da18b46e3fc2391e2402c48811ebda6 100644 --- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c +++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c @@ -186,7 +186,7 @@ static bool s_grace_period_control(dap_chain_net_srv_grace_t *a_grace) if (!l_grace_start) { int l_tx_out_cond_size =0; l_tx_out_cond = (dap_chain_tx_out_cond_t *) - dap_chain_datum_tx_item_get(l_tx, NULL, TX_ITEM_TYPE_OUT_COND, &l_tx_out_cond_size ); + dap_chain_datum_tx_item_get(l_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, &l_tx_out_cond_size ); if ( ! l_tx_out_cond ) { // No conditioned output log_it( L_WARNING, "No conditioned output"); @@ -470,7 +470,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg) } int l_tx_out_cond_size =0; l_tx_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(l_usage->tx_cond, NULL, - TX_ITEM_TYPE_OUT_COND, &l_tx_out_cond_size ); + TX_ITEM_TYPE_OUT_COND_OLD, &l_tx_out_cond_size ); if ( ! l_tx_out_cond ){ // No conditioned output l_err.code = DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_NO_COND_OUT ; dap_stream_ch_pkt_write_unsafe( a_ch, DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR, &l_err, sizeof (l_err) ); diff --git a/modules/common/dap_chain_datum_tx.c b/modules/common/dap_chain_datum_tx.c index e73cdc334cdde6774d50571b0dde95916e5bdbb2..37889fdc067611e805783d5f2864554bc0d0d70e 100644 --- a/modules/common/dap_chain_datum_tx.c +++ b/modules/common/dap_chain_datum_tx.c @@ -149,7 +149,7 @@ int dap_chain_datum_tx_add_in_cond_item(dap_chain_datum_tx_t **a_tx, dap_chain_h */ int dap_chain_datum_tx_add_out_item(dap_chain_datum_tx_t **a_tx, const dap_chain_addr_t *a_addr, uint256_t a_value) { - dap_chain_256_tx_out_t *l_tx_out = dap_chain_datum_tx_item_out_create(a_addr, a_value); + dap_chain_tx_out_t *l_tx_out = dap_chain_datum_tx_item_out_create(a_addr, a_value); if(l_tx_out) { dap_chain_datum_tx_add_item(a_tx, (const uint8_t *)l_tx_out); DAP_DELETE(l_tx_out); diff --git a/modules/common/dap_chain_datum_tx_items.c b/modules/common/dap_chain_datum_tx_items.c index 8723a48914e2171355311548ad57193f2fa22574..3567cca7906dd1cd3e970ef9172f747aa8161f6b 100644 --- a/modules/common/dap_chain_datum_tx_items.c +++ b/modules/common/dap_chain_datum_tx_items.c @@ -51,18 +51,18 @@ static size_t dap_chain_tx_in_cond_get_size(const dap_chain_tx_in_cond_t *a_item return size; } -static size_t dap_chain_tx_out_get_size(const dap_chain_tx_out_t *a_item) +static size_t dap_chain_tx_out_get_size(const dap_chain_tx_out_old_t *a_item) { (void) a_item; - size_t size = sizeof(dap_chain_tx_out_t); + size_t size = sizeof(dap_chain_tx_out_old_t); return size; } // 256 -static size_t dap_chain_256_tx_out_get_size(const dap_chain_256_tx_out_t *a_item) +static size_t dap_chain_256_tx_out_get_size(const dap_chain_tx_out_t *a_item) { (void) a_item; - size_t size = sizeof(dap_chain_256_tx_out_t); + size_t size = sizeof(dap_chain_tx_out_t); return size; } @@ -129,11 +129,11 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item) case TX_ITEM_TYPE_IN: // Transaction inputs size = dap_chain_tx_in_get_size((const dap_chain_tx_in_t*) a_item); break; - case TX_ITEM_TYPE_OUT: // Transaction outputs - size = dap_chain_tx_out_get_size((const dap_chain_tx_out_t*) a_item); + case TX_ITEM_TYPE_OUT_OLD: // Transaction outputs + size = dap_chain_tx_out_get_size((const dap_chain_tx_out_old_t*) a_item); break; - case TX_ITEM_TYPE_OUT_256: // 256 - size = dap_chain_256_tx_out_get_size((const dap_chain_256_tx_out_t*) a_item); + case TX_ITEM_TYPE_OUT: // 256 + size = dap_chain_256_tx_out_get_size((const dap_chain_tx_out_t*) a_item); break; case TX_ITEM_TYPE_OUT_EXT: // Exchange transaction outputs size = dap_chain_tx_out_ext_get_size((const dap_chain_tx_out_ext_t*) a_item); @@ -144,10 +144,10 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item) case TX_ITEM_TYPE_IN_COND: // Transaction inputs with condition size = dap_chain_tx_in_cond_get_size((const dap_chain_tx_in_cond_t*) a_item); break; - case TX_ITEM_TYPE_OUT_COND: // Transaction output with condition + case TX_ITEM_TYPE_OUT_COND_OLD: // Transaction output with condition size = 0; // obsolete dap_chain_tx_out_cond_get_size((const dap_chain_tx_out_cond_t*) a_item); break; - case TX_ITEM_TYPE_OUT_256_COND: // 256 + case TX_ITEM_TYPE_OUT_COND: // 256 size = dap_chain_tx_out_cond_get_size((const dap_chain_tx_out_cond_t *)a_item); break; case TX_ITEM_TYPE_PKEY: // Transaction public keys @@ -183,7 +183,7 @@ dap_chain_tx_token_t *dap_chain_datum_tx_item_token_create(dap_chain_id_t a_id, } /** - * Create item dap_chain_tx_out_t + * Create item dap_chain_tx_out_old_t * * return item, NULL Error */ @@ -219,16 +219,16 @@ dap_chain_tx_in_cond_t* dap_chain_datum_tx_item_in_cond_create(dap_chain_hash_fa } /** - * Create item dap_chain_tx_out_t + * Create item dap_chain_tx_out_old_t * * return item, NULL Error */ -dap_chain_256_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value) +dap_chain_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value) { if(!a_addr) return NULL; - dap_chain_256_tx_out_t *l_item = DAP_NEW_Z(dap_chain_256_tx_out_t); - l_item->header.type = TX_ITEM_TYPE_OUT_256; + dap_chain_tx_out_t *l_item = DAP_NEW_Z(dap_chain_tx_out_t); + l_item->header.type = TX_ITEM_TYPE_OUT; l_item->header.value = a_value; memcpy(&l_item->addr, a_addr, sizeof(dap_chain_addr_t)); return l_item; @@ -263,7 +263,7 @@ dap_chain_tx_out_cond_t* dap_chain_datum_tx_item_out_cond_create_srv_pay(dap_pke if(l_item == NULL) return NULL; - l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND; + l_item->header.item_type = TX_ITEM_TYPE_OUT_COND; l_item->header.value = a_value; l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_PAY; l_item->subtype.srv_pay.srv_uid = a_srv_uid; @@ -285,7 +285,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_item_out_cond_create_srv_xchange(dap return NULL; } dap_chain_tx_out_cond_t *l_item = DAP_NEW_Z_SIZE(dap_chain_tx_out_cond_t, sizeof(dap_chain_tx_out_cond_t) + a_params_size); - l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND; + l_item->header.item_type = TX_ITEM_TYPE_OUT_COND; l_item->header.value = a_value; l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_XCHANGE; l_item->subtype.srv_xchange.srv_uid = a_srv_uid; @@ -303,7 +303,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_item_out_cond_create_srv_stake(dap_c dap_chain_addr_t *a_signing_addr, dap_chain_node_addr_t *a_signer_node_addr) { dap_chain_tx_out_cond_t *l_item = DAP_NEW_Z(dap_chain_tx_out_cond_t); - l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND; + l_item->header.item_type = TX_ITEM_TYPE_OUT_COND; l_item->header.value = a_value; l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE; l_item->subtype.srv_stake.srv_uid = a_srv_uid; @@ -377,6 +377,7 @@ uint8_t* dap_chain_datum_tx_item_get( dap_chain_datum_tx_t *a_tx, int *a_item_id dap_chain_tx_item_type_t l_type = dap_chain_datum_tx_item_get_type(l_item); if (a_type == TX_ITEM_TYPE_ANY || a_type == l_type || (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT) || + (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_OLD) || (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_COND) || (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_EXT)) { if(a_item_idx_start) @@ -425,7 +426,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_out_cond_get(dap_chain_datum_tx_t *a int l_prev_cond_idx = l_list_out_items ? 0 : -1; dap_chain_tx_out_cond_t *l_res = NULL; for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_prev_cond_idx++) { - if (*(uint8_t *)l_list_tmp->data == TX_ITEM_TYPE_OUT_COND) { + if (*(uint8_t *)l_list_tmp->data == TX_ITEM_TYPE_OUT_COND_OLD) { l_res = l_list_tmp->data; break; } diff --git a/modules/common/include/dap_chain_common.h b/modules/common/include/dap_chain_common.h index c7623b2df662cca6d67f252fe73acf484d6586b9..965c90a46007f406a21f08fd669a34648568502b 100644 --- a/modules/common/include/dap_chain_common.h +++ b/modules/common/include/dap_chain_common.h @@ -192,9 +192,9 @@ typedef union { enum dap_chain_tx_item_type { TX_ITEM_TYPE_IN = 0x00, /// @brief Transaction: inputs - TX_ITEM_TYPE_OUT = 0x10, /// @brief Transaction: outputs + TX_ITEM_TYPE_OUT_OLD = 0x10, /// @brief Transaction: outputs TX_ITEM_TYPE_OUT_EXT = 0x11, - TX_ITEM_TYPE_OUT_256 = 0x12, // 256 + TX_ITEM_TYPE_OUT = 0x12, // 256 TX_ITEM_TYPE_PKEY = 0x20, TX_ITEM_TYPE_SIG = 0x30, @@ -203,8 +203,8 @@ enum dap_chain_tx_item_type { TX_ITEM_TYPE_IN_COND = 0x50, /// @brief Transaction: conditon inputs - TX_ITEM_TYPE_OUT_COND = 0x60, // Obsolete - TX_ITEM_TYPE_OUT_256_COND = 0x61, /// @brief Transaction: 256 bit conditon outputs + TX_ITEM_TYPE_OUT_COND_OLD = 0x60, // Obsolete + TX_ITEM_TYPE_OUT_COND = 0x61, /// @brief Transaction: 256 bit conditon outputs TX_ITEM_TYPE_RECEIPT = 0x70, diff --git a/modules/common/include/dap_chain_datum_tx_items.h b/modules/common/include/dap_chain_datum_tx_items.h index 5f1f85ee0f5d683c8860ee0c841af80203005f20..0e33c0ecf03b7fe451c10eeb100e800616d25b53 100644 --- a/modules/common/include/dap_chain_datum_tx_items.h +++ b/modules/common/include/dap_chain_datum_tx_items.h @@ -52,17 +52,17 @@ DAP_STATIC_INLINE const char * dap_chain_datum_tx_item_type_to_str(dap_chain_tx_ { switch(a_item_type){ case TX_ITEM_TYPE_IN: return "TX_ITEM_TYPE_IN"; - case TX_ITEM_TYPE_OUT: return "TX_ITEM_TYPE_OUT"; - case TX_ITEM_TYPE_OUT_256: return "TX_ITEM_TYPE_OUT_256"; // 256 + case TX_ITEM_TYPE_OUT_OLD: return "TX_ITEM_TYPE_OUT_OLD"; + case TX_ITEM_TYPE_OUT: return "TX_ITEM_TYPE_OUT"; // 256 case TX_ITEM_TYPE_OUT_EXT: return "TX_ITEM_TYPE_OUT_EXT"; // 256 case TX_ITEM_TYPE_PKEY: return "TX_ITEM_TYPE_PKEY"; case TX_ITEM_TYPE_SIG: return "TX_ITEM_TYPE_SIG"; case TX_ITEM_TYPE_TOKEN: return "TX_ITEM_TYPE_TOKEN"; case TX_ITEM_TYPE_TOKEN_EXT: return "TX_ITEM_TYPE_TOKEN_EXT"; case TX_ITEM_TYPE_IN_COND: return "TX_ITEM_TYPE_IN_COND"; - case TX_ITEM_TYPE_OUT_COND: return "TX_ITEM_TYPE_OUT_COND"; // 256 + case TX_ITEM_TYPE_OUT_COND_OLD: return "TX_ITEM_TYPE_OUT_COND_OLD"; // 256 case TX_ITEM_TYPE_RECEIPT: return "TX_ITEM_TYPE_RECEIPT"; - case TX_ITEM_TYPE_OUT_ALL: return "TX_ITEM_TYPE_OUT_ALL"; + case TX_ITEM_TYPE_OUT_ALL: return "TX_ITEM_TYPE_OUT_OLDALL"; case TX_ITEM_TYPE_ANY: return "TX_ITEM_TYPE_ANY"; default: return "UNDEFINED"; } @@ -83,7 +83,7 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item); dap_chain_tx_token_t *dap_chain_datum_tx_item_token_create(dap_chain_id_t a_id, dap_chain_hash_fast_t *a_datum_token_hash, const char *a_ticker); /** - * Create item dap_chain_tx_out_t + * Create item dap_chain_tx_out_old_t * * return item, NULL Error */ @@ -93,11 +93,11 @@ dap_chain_tx_in_t* dap_chain_datum_tx_item_in_create(dap_chain_hash_fast_t *a_tx dap_chain_tx_in_cond_t* dap_chain_datum_tx_item_in_cond_create(dap_chain_hash_fast_t *a_tx_prev_hash, uint32_t a_tx_out_prev_idx, uint32_t a_receipt_idx); /** - * Create item dap_chain_tx_out_t + * Create item dap_chain_tx_out_old_t * * return item, NULL Error */ -dap_chain_256_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value); +dap_chain_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value); /** * Create item dap_chain_tx_out_ext_t diff --git a/modules/common/include/dap_chain_datum_tx_out.h b/modules/common/include/dap_chain_datum_tx_out.h index 04d6719941520a3ae76365e8aa16854ba9671a08..852975d64cf82aa023cfa55273546e1ff0652879 100644 --- a/modules/common/include/dap_chain_datum_tx_out.h +++ b/modules/common/include/dap_chain_datum_tx_out.h @@ -32,19 +32,19 @@ * @struct dap_chain_tx_out * @brief Transaction item outout */ -typedef struct dap_chain_tx_out{ +typedef struct dap_chain_tx_out_old { struct { dap_chain_tx_item_type_t type; /// @param type @brief Transaction item type uint64_t value; /// @param value @brief Number of Datoshis ( DAP/10^9 ) to be transfered } header; /// Only header's hash is used for verification dap_chain_addr_t addr; //// -} DAP_ALIGN_PACKED dap_chain_tx_out_t; +} DAP_ALIGN_PACKED dap_chain_tx_out_old_t; //256 -typedef struct dap_chain_256_tx_out{ +typedef struct dap_chain_tx_out { struct { dap_chain_tx_item_type_t type; /// @param type @brief Transaction item type uint256_t value; /// @param value @brief Number of Datoshis ( DAP/10^9 ) to be transfered } header; /// Only header's hash is used for verification dap_chain_addr_t addr; //// -} DAP_ALIGN_PACKED dap_chain_256_tx_out_t; +} DAP_ALIGN_PACKED dap_chain_tx_out_t; diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c index 7a4db683f1aedf0aea8dbf70be41f375abce29a1..6809f15b0d4839146b5bf87b6a7729a6ecd5c87a 100644 --- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c +++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c @@ -378,9 +378,6 @@ static int s_callback_new(dap_chain_t * a_chain, dap_config_t * a_chain_cfg) l_poa_pvt->callback_pre_sign = NULL; l_poa_pvt->prev_callback_created = l_dag->chain->callback_created; l_dag->chain->callback_created = s_callback_created; - -dap_chain_cs_dag_poa_presign_callback_set(l_dag->chain, - (dap_chain_cs_dag_poa_callback_t)s_callback_presign_test, "Presign callback test"); return 0; } @@ -685,9 +682,9 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_ // if my sign exists if (PVT(l_poa)->auto_round_complete) { if ( s_round_event_ready_minimum_check(a_dag, l_event, l_event_size, - a_key, &l_round_item->round_info) ) { + (char *)a_key, &l_round_item->round_info) ) { // cs done (minimum signs & verify passed) - s_round_event_cs_done(a_dag, l_event, a_key, &l_round_item->round_info); + s_round_event_cs_done(a_dag, l_event, (char *)a_key, &l_round_item->round_info); } } DAP_DELETE(l_round_item); @@ -715,7 +712,7 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_ if ( l_round_item->round_info.reject_count // check reject count <= (PVT(l_poa)->auth_certs_count - l_round_item->round_info.confirmations_minimum) ) { // update reject_count - dap_chain_cs_dag_event_gdb_set(a_key, l_event, l_event_size, + dap_chain_cs_dag_event_gdb_set((char *)a_key, l_event, l_event_size, l_round_item, a_group); } else { diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c index 052155dbf323e4ce6b5f3aa44aa07990e275befe..598b213aedb8002fd0622c32503fe244cee2cdc0 100644 --- a/modules/mempool/dap_chain_mempool.c +++ b/modules/mempool/dap_chain_mempool.c @@ -252,9 +252,8 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a break; } if (compare256(l_value_to_items, l_single_val) == -1) { - log_it(L_ERROR, "Not enought values on output %s to produce enought ins %s when need %s", - dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_value_transfer), - dap_chain_balance_print(l_value_need)); + log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s", + dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_single_val)); DAP_DELETE(l_objs); return -5; } @@ -299,7 +298,7 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a int l_out_idx_tmp = 0; // current index of 'out' item //log_it(L_DEBUG,"We have %d outputs in new TX", l_item_count); while(l_list_tmp) { - dap_chain_tx_out_t * l_out = l_list_tmp->data ; + dap_chain_tx_out_t *l_out = l_list_tmp->data; if( ! l_out){ log_it(L_WARNING, "Output is NULL, continue check outputs..."); l_out_idx_tmp++; diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 09b121692f3b532fa302da2756ce3924ca161a24..ea269085792dbe15fc115ef3e30175bd71d01c9f 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -3208,19 +3208,19 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu dap_hash_fast_to_str(&l_in->header.tx_prev_hash, l_tx_prev_hash_str, sizeof (l_tx_prev_hash_str)-1); dap_string_append_printf(a_str_out,"\ttx_prev_hash : %s\n", l_tx_prev_hash_str ); } break; - case TX_ITEM_TYPE_OUT_256: { // 256 + case TX_ITEM_TYPE_OUT: { // 256 dap_string_append_printf(a_str_out,"\tvalue: %s\n", - dap_chain_balance_print(((dap_chain_256_tx_out_t *)l_cur->data)->header.value) + dap_chain_balance_print(((dap_chain_tx_out_t *)l_cur->data)->header.value) ); - char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_256_tx_out_t *)l_cur->data)->addr ); + char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_t *)l_cur->data)->addr ); dap_string_append_printf(a_str_out,"\taddr : %s\n", l_addr_str ); DAP_DELETE(l_addr_str); } break; - case TX_ITEM_TYPE_OUT:{ + case TX_ITEM_TYPE_OUT_OLD:{ dap_string_append_printf(a_str_out,"\tvalue: %"DAP_UINT64_FORMAT_U"\n", - ((dap_chain_tx_out_t *)l_cur->data)->header.value + ((dap_chain_tx_out_old_t *)l_cur->data)->header.value ); - char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_t *)l_cur->data)->addr ); + char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_old_t *)l_cur->data)->addr ); dap_string_append_printf(a_str_out,"\taddr : %s\n", l_addr_str ); DAP_DELETE(l_addr_str); } break; @@ -3273,7 +3273,7 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu dap_hash_fast_to_str(&l_in->header.tx_prev_hash, l_tx_prev_hash_str,sizeof (l_tx_prev_hash_str)-1); dap_string_append_printf(a_str_out,"\ttx_prev_hash : %s\n", l_tx_prev_hash_str ); } break; - case TX_ITEM_TYPE_OUT_256_COND: { // 256 + case TX_ITEM_TYPE_OUT_COND: { // 256 dap_chain_tx_out_cond_t * l_out = l_cur->data; dap_string_append_printf(a_str_out,"\tvalue: %s\n", dap_chain_balance_print(l_out->header.value) ); switch ( l_out->header.subtype){ @@ -3308,7 +3308,7 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu } dap_string_append_printf(a_str_out,"\tparams_size : %u\n", l_out->params_size ); } break; - case TX_ITEM_TYPE_OUT_COND:{ + case TX_ITEM_TYPE_OUT_COND_OLD:{ dap_chain_tx_out_cond_old_t * l_out = l_cur->data; dap_string_append_printf(a_str_out,"\tvalue: %"DAP_UINT64_FORMAT_U"\n", l_out->header.value ); switch ( l_out->header.subtype){ diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index 9724464f4039a18f7d033c545a1fe8e6b18c1c50..2fac9a02075bbf23122695ebc39754292544ebf8 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -3412,7 +3412,7 @@ int com_token_emit(int a_argc, char ** a_argv, char ** a_str_reply) dap_chain_tx_token_t *l_tx_token = dap_chain_datum_tx_item_token_create(l_chain_emission->id, &l_token_emission_hash, l_ticker); dap_chain_tx_in_t *l_in = dap_chain_datum_tx_item_in_create(&l_tx_prev_hash, 0); - dap_chain_256_tx_out_t *l_out = dap_chain_datum_tx_item_out_create(l_addr, l_emission_value); + dap_chain_tx_out_t *l_out = dap_chain_datum_tx_item_out_create(l_addr, l_emission_value); // pack items to transaction dap_chain_datum_tx_add_item(&l_tx, (const uint8_t*) l_tx_token); diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c index 172cbb61fde88278327be52ed0eb823027389652..e0b93b3f27c28e516e275d27619c0fb71bba1760 100644 --- a/modules/net/dap_chain_node_cli_cmd_tx.c +++ b/modules/net/dap_chain_node_cli_cmd_tx.c @@ -144,22 +144,22 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum, ((dap_chain_tx_in_t*)item)->header.tx_out_prev_idx); DAP_DELETE(l_hash_str); break; - case TX_ITEM_TYPE_OUT: + case TX_ITEM_TYPE_OUT_OLD: dap_string_append_printf(a_str_out, "\t OUT:\n" "\t\t Value: %s (%"DAP_UINT64_FORMAT_U")\n" "\t\t Address: %s\n", dap_chain_balance_to_coins(dap_chain_uint256_from( - ((dap_chain_tx_out_t*)item)->header.value)), - ((dap_chain_tx_out_t*)item)->header.value, - dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr)); + ((dap_chain_tx_out_old_t*)item)->header.value)), + ((dap_chain_tx_out_old_t*)item)->header.value, + dap_chain_addr_to_str(&((dap_chain_tx_out_old_t*)item)->addr)); break; - case TX_ITEM_TYPE_OUT_256: { // 256 + case TX_ITEM_TYPE_OUT: { // 256 dap_string_append_printf(a_str_out, "\t OUT 256_t:\n" "\t\t Value: %s (%s)\n" "\t\t Address: %s\n", - dap_chain_balance_to_coins(((dap_chain_256_tx_out_t*)item)->header.value), - dap_chain_balance_print(((dap_chain_256_tx_out_t*)item)->header.value), - dap_chain_addr_to_str(&((dap_chain_256_tx_out_t*)item)->addr)); + dap_chain_balance_to_coins(((dap_chain_tx_out_t*)item)->header.value), + dap_chain_balance_print(((dap_chain_tx_out_t*)item)->header.value), + dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr)); break; } case TX_ITEM_TYPE_TOKEN: @@ -281,7 +281,7 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum, ((dap_chain_tx_in_cond_t*)item)->header.tx_out_prev_idx); DAP_DELETE(l_hash_str); break; - case TX_ITEM_TYPE_OUT_COND: + case TX_ITEM_TYPE_OUT_COND_OLD: dap_string_append_printf(a_str_out, "\t OUT COND:\n" "\t Header:\n" "\t\t\t ts_expires: %s\t" @@ -337,7 +337,7 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum, default: break; } break; - case TX_ITEM_TYPE_OUT_256_COND: // 256 + case TX_ITEM_TYPE_OUT_COND: // 256 dap_string_append_printf(a_str_out, "\t OUT 256_t COND:\n" "\t Header:\n" "\t\t\t ts_expires: %s\t" @@ -469,9 +469,9 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, // find OUT items bool l_type_256 = false; - dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL); + dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL); if (!l_list_out_items) { - l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_256, NULL); + l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL); l_type_256 = true; } @@ -479,8 +479,8 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, while(l_list_tmp) { - const dap_chain_256_tx_out_t *l_tx_out_256 = (const dap_chain_256_tx_out_t*) l_list_tmp->data; - const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data; + const dap_chain_tx_out_t *l_tx_out_256 = (const dap_chain_tx_out_t*) l_list_tmp->data; + const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data; // save OUT item l_tx_out - only for first OUT item if(!l_tx_data) { @@ -563,14 +563,14 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, // find all OUT items in transaction if ( l_type_256 ) - l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_256, NULL); - else l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL); + else + l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL); l_list_tmp = l_list_out_items; while(l_list_tmp) { - const dap_chain_256_tx_out_t *l_tx_out_256 = (const dap_chain_256_tx_out_t*) l_list_tmp->data; - const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data; + const dap_chain_tx_out_t *l_tx_out_256 = (const dap_chain_tx_out_t*) l_list_tmp->data; + const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data; //dap_tx_data_t *l_tx_data_prev = NULL; const char *l_token_str = NULL; @@ -634,22 +634,22 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, if ( l_type_256 ) { // 256 // find OUT items in prev datum dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev, - TX_ITEM_TYPE_OUT_256, NULL); + TX_ITEM_TYPE_OUT, NULL); // find OUT item for IN item; dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_out_prev_items, l_tx_in->header.tx_out_prev_idx); - dap_chain_256_tx_out_t *l_tx_prev_out = - l_list_out_prev_item ? (dap_chain_256_tx_out_t*)l_list_out_prev_item->data : NULL; + dap_chain_tx_out_t *l_tx_prev_out = + l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL; // print value from prev out item dap_string_append_printf(l_str_out, " prev OUT 256bitt item value=%s", l_tx_prev_out ? dap_chain_balance_print(l_tx_prev_out->header.value) : "0"); } else { dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev, - TX_ITEM_TYPE_OUT, NULL); + TX_ITEM_TYPE_OUT_OLD, NULL); dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_out_prev_items, l_tx_in->header.tx_out_prev_idx); - dap_chain_tx_out_t *l_tx_prev_out = - l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL; + dap_chain_tx_out_old_t *l_tx_prev_out = + l_list_out_prev_item ? (dap_chain_tx_out_old_t*)l_list_out_prev_item->data : NULL; dap_string_append_printf(l_str_out, " prev OUT item value=%"DAP_UINT64_FORMAT_U, l_tx_prev_out ? l_tx_prev_out->header.value : 0); @@ -764,9 +764,9 @@ char* dap_db_history_addr(dap_chain_addr_t * a_addr, dap_chain_t * a_chain, cons } strncpy(l_tx_data->token_ticker, l_tx_data_prev->token_ticker, DAP_CHAIN_TICKER_SIZE_MAX); dap_chain_datum_tx_t *l_tx_prev = (dap_chain_datum_tx_t *)l_tx_data_prev->datum->data; - dap_list_t *l_list_prev_out_items = dap_chain_datum_tx_items_get(l_tx_prev, TX_ITEM_TYPE_OUT, NULL); + dap_list_t *l_list_prev_out_items = dap_chain_datum_tx_items_get(l_tx_prev, TX_ITEM_TYPE_OUT_OLD, NULL); dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_prev_out_items, l_tx_in->header.tx_out_prev_idx); - l_src_addr = &((dap_chain_tx_out_t *)l_list_out_prev_item->data)->addr; + l_src_addr = &((dap_chain_tx_out_old_t *)l_list_out_prev_item->data)->addr; l_src_addr_str = dap_chain_addr_to_str(l_src_addr); dap_list_free(l_list_prev_out_items); } @@ -792,9 +792,9 @@ char* dap_db_history_addr(dap_chain_addr_t * a_addr, dap_chain_t * a_chain, cons l_tx_hash_str = dap_enc_base58_encode_to_str(&l_tx_data->tx_hash_str, sizeof(dap_chain_hash_fast_t)); // find OUT items bool l_header_printed = false; - dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL); + dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL); for (dap_list_t *l_list_out = l_list_out_items; l_list_out; l_list_out = dap_list_next(l_list_out)) { - dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_out->data; + dap_chain_tx_out_old_t *l_tx_out = (dap_chain_tx_out_old_t *)l_list_out->data; if (l_src_addr && !memcmp(&l_tx_out->addr, l_src_addr, sizeof(dap_chain_addr_t))) continue; // send to self if (l_src_addr && !memcmp(l_src_addr, a_addr, sizeof(dap_chain_addr_t))) { diff --git a/modules/service/stake/dap_chain_net_srv_stake.c b/modules/service/stake/dap_chain_net_srv_stake.c index da8695e0176b3d90682f3b72c8c3a9225b747c19..b9831fac0dc997278ecf35e9cd39d63885c78c72 100644 --- a/modules/service/stake/dap_chain_net_srv_stake.c +++ b/modules/service/stake/dap_chain_net_srv_stake.c @@ -156,7 +156,7 @@ static void s_stake_update(dap_chain_tx_out_cond_t *a_cond, dap_chain_datum_tx_t else l_stake = DAP_NEW_Z(dap_chain_net_srv_stake_item_t); assert(l_stake); - dap_chain_tx_out_cond_t *l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND, NULL); + dap_chain_tx_out_cond_t *l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, NULL); if (!l_out_cond || l_out_cond->header.subtype != DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE) { // Stake tx is used out HASH_DEL(s_srv_stake->itemlist, l_stake); @@ -194,7 +194,7 @@ static bool s_stake_conditions_calc(dap_chain_tx_out_cond_t *a_cond, dap_chain_d dap_chain_tx_out_cond_t *l_out_cond = NULL; if (!a_cond) { // New stake tx - l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND, NULL); + l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, NULL); } else l_out_cond = a_cond; dap_chain_net_id_t l_cur_net_id = l_out_cond->subtype.srv_stake.hldr_addr.net_id; @@ -300,16 +300,16 @@ bool dap_chain_net_srv_stake_validator(dap_chain_addr_t *a_addr, dap_chain_datum uint32_t l_out_idx_tmp = 0; // current index of 'out' item for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_out_idx_tmp++) { dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data; - if (l_type == TX_ITEM_TYPE_OUT) { - dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data; + if (l_type == TX_ITEM_TYPE_OUT_OLD) { + dap_chain_tx_out_old_t *l_out = (dap_chain_tx_out_old_t *)l_list_tmp->data; if (!memcmp(&l_stake->addr_fee, &l_out->addr, sizeof(dap_chain_addr_t))) { SUM_256_256(l_fee_sum, dap_chain_uint256_from(l_out->header.value), &l_fee_sum); } else if (memcmp(&l_owner_addr, &l_out->addr, sizeof(dap_chain_addr_t))) { SUM_256_256(l_outs_sum, dap_chain_uint256_from(l_out->header.value), &l_outs_sum); } } - if (l_type == TX_ITEM_TYPE_OUT_256) { - dap_chain_256_tx_out_t *l_out = (dap_chain_256_tx_out_t *)l_list_tmp->data; + if (l_type == TX_ITEM_TYPE_OUT) { + dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data; if (!memcmp(&l_stake->addr_fee, &l_out->addr, sizeof(dap_chain_addr_t))) { SUM_256_256(l_fee_sum, l_out->header.value, &l_fee_sum); } else if (memcmp(&l_owner_addr, &l_out->addr, sizeof(dap_chain_addr_t))) {