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 7655ee5239d0c4726c9a582284f56ba88c2f0581..6339b4093580089da11d3ecb2794c8f74021e7d2 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 @@ -3523,7 +3523,11 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, void **a_str_reply) json_object_object_add(l_json_obj_tx, "node_address", json_object_new_string(l_node_address_text_block)); json_object_object_add(l_json_obj_tx, "value_coins", json_object_new_string(l_coins)); json_object_object_add(l_json_obj_tx, "value_datoshi", json_object_new_string(l_balance)); - dap_sign_t *l_owner_sign = dap_chain_datum_tx_get_sign(l_datum_tx, 0); + dap_hash_fast_t l_owner_hash = dap_ledger_get_first_chain_tx_hash(l_net->pub.ledger, l_datum_tx, DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_POS_DELEGATE); + dap_chain_datum_tx_t *l_owner_tx = dap_hash_fast_is_blank(&l_owner_hash) ? l_datum_tx + : dap_ledger_tx_find_datum_by_hash(l_net->pub.ledger, &l_owner_hash, NULL, false); + assert(l_owner_tx); + dap_sign_t *l_owner_sign = dap_chain_datum_tx_get_sign(l_owner_tx, 0); dap_chain_addr_t l_owner_addr; dap_chain_addr_fill_from_sign(&l_owner_addr, l_owner_sign, l_net->pub.id); json_object_object_add(l_json_obj_tx, "owner_addr", json_object_new_string(dap_chain_addr_to_str_static(&l_owner_addr))); json_object_array_add(l_json_arr_tx, l_json_obj_tx);