diff --git a/modules/common/dap_chain_datum_decree.c b/modules/common/dap_chain_datum_decree.c index 467d98c872e104cdd1e7229307f1a27e1b09600f..7a33f3351b2d08c9d6b5c9a67a1a00c5e9c1f76e 100644 --- a/modules/common/dap_chain_datum_decree.c +++ b/modules/common/dap_chain_datum_decree.c @@ -255,6 +255,7 @@ void dap_chain_datum_decree_dump_json(json_object *a_json_out, dap_chain_datum_d ? dap_enc_base58_encode_hash_to_str_static(&l_pkey_signing) : dap_chain_hash_fast_to_str_static(&l_pkey_signing); json_object_object_add(a_json_out, "Signing pkey fingerprint", json_object_new_string(l_pkey_signing_str)); + break; case DAP_CHAIN_DATUM_DECREE_TSD_TYPE_NODE_ADDR: if(l_tsd->size > sizeof(dap_chain_node_addr_t)){ json_object_object_add(a_json_out, "Node addr", json_object_new_string("WRONG SIZE")); diff --git a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c index 924b48e5091cea447629b622ae9074073547256a..13c322491b97989fd42918cd68cdd8d685474442 100644 --- a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c +++ b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c @@ -1263,7 +1263,7 @@ static dap_chain_datum_decree_t *s_stake_decree_invalidate(dap_chain_net_t *a_ne dap_tsd_t *l_tsd = NULL; l_total_tsd_size += sizeof(dap_tsd_t) + sizeof(dap_chain_addr_t); - l_tsd = DAP_NEW_Z_SIZE(dap_tsd_t, l_total_tsd_size); + l_tsd = DAP_NEW_Z_SIZE(dap_tsd_t, sizeof(dap_tsd_t) + sizeof(dap_chain_addr_t)); if (!l_tsd) { log_it(L_CRITICAL, "%s", c_error_memory_alloc); return NULL; @@ -1273,6 +1273,17 @@ static dap_chain_datum_decree_t *s_stake_decree_invalidate(dap_chain_net_t *a_ne *(dap_chain_addr_t*)(l_tsd->data) = l_tx_out_cond->subtype.srv_stake_pos_delegate.signing_addr; l_tsd_list = dap_list_append(l_tsd_list, l_tsd); + l_total_tsd_size += sizeof(dap_tsd_t) + sizeof(dap_chain_node_addr_t); + l_tsd = DAP_NEW_Z_SIZE(dap_tsd_t, sizeof(dap_tsd_t) + sizeof(dap_chain_node_addr_t)); + if (!l_tsd) { + log_it(L_CRITICAL, "%s", c_error_memory_alloc); + return NULL; + } + l_tsd->type = DAP_CHAIN_DATUM_DECREE_TSD_TYPE_NODE_ADDR; + l_tsd->size = sizeof(dap_chain_node_addr_t); + *(dap_chain_node_addr_t*)(l_tsd->data) = l_tx_out_cond->subtype.srv_stake_pos_delegate.signer_node_addr; + l_tsd_list = dap_list_append(l_tsd_list, l_tsd); + l_decree = DAP_NEW_Z_SIZE(dap_chain_datum_decree_t, sizeof(dap_chain_datum_decree_t) + l_total_tsd_size); if (!l_decree) { log_it(L_CRITICAL, "%s", c_error_memory_alloc);