Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cellframe/libdap-chain-net
1 result
Show changes
Commits on Source (2)
...@@ -630,6 +630,7 @@ lb_proc_state: ...@@ -630,6 +630,7 @@ lb_proc_state:
} }
} }
break; break;
default: log_it (L_DEBUG, "Unprocessed state");
} }
pthread_mutex_unlock(&PVT(l_net)->state_mutex ); pthread_mutex_unlock(&PVT(l_net)->state_mutex );
return ret; return ret;
......
...@@ -86,12 +86,12 @@ bool dap_chain_node_check_addr(dap_chain_net_t * a_net,dap_chain_node_addr_t *ad ...@@ -86,12 +86,12 @@ bool dap_chain_node_check_addr(dap_chain_net_t * a_net,dap_chain_node_addr_t *ad
*/ */
bool dap_chain_node_alias_register(dap_chain_net_t * a_net,const char *alias, dap_chain_node_addr_t *addr) bool dap_chain_node_alias_register(dap_chain_net_t * a_net,const char *alias, dap_chain_node_addr_t *addr)
{ {
const char *a_key = alias; char *a_key = strdup(alias);
// char a_value[2 * sizeof(dap_chain_node_addr_t) + 1]; // char a_value[2 * sizeof(dap_chain_node_addr_t) + 1];
// if(bin2hex(a_value, (const unsigned char *) addr, sizeof(dap_chain_node_addr_t)) == -1) // if(bin2hex(a_value, (const unsigned char *) addr, sizeof(dap_chain_node_addr_t)) == -1)
// return false; // return false;
// a_value[2 * sizeof(dap_chain_node_addr_t)] = '\0'; // a_value[2 * sizeof(dap_chain_node_addr_t)] = '\0';
bool res = dap_chain_global_db_gr_set(a_key, (const uint8_t*) addr, sizeof(dap_chain_node_addr_t) bool res = dap_chain_global_db_gr_set(a_key, addr, sizeof(dap_chain_node_addr_t)
, a_net->pub.gdb_nodes_aliases); , a_net->pub.gdb_nodes_aliases);
return res; return res;
} }
...@@ -114,7 +114,7 @@ dap_chain_node_addr_t * dap_chain_node_alias_find(dap_chain_net_t * a_net,const ...@@ -114,7 +114,7 @@ dap_chain_node_addr_t * dap_chain_node_alias_find(dap_chain_net_t * a_net,const
*/ */
bool dap_chain_node_alias_delete(dap_chain_net_t * a_net,const char *a_alias) bool dap_chain_node_alias_delete(dap_chain_net_t * a_net,const char *a_alias)
{ {
const char *a_key = a_alias; char *a_key = strdup(a_alias);
bool res = dap_chain_global_db_gr_del(a_key, a_net->pub.gdb_nodes_aliases); bool res = dap_chain_global_db_gr_del(a_key, a_net->pub.gdb_nodes_aliases);
return res; return res;
} }
...@@ -153,7 +153,7 @@ int dap_chain_node_info_save(dap_chain_net_t * a_net, dap_chain_node_info_t *nod ...@@ -153,7 +153,7 @@ int dap_chain_node_info_save(dap_chain_net_t * a_net, dap_chain_node_info_t *nod
} }
//char *a_value = dap_chain_node_info_serialize(node_info, NULL); //char *a_value = dap_chain_node_info_serialize(node_info, NULL);
size_t node_info_size = dap_chain_node_info_get_size(node_info); size_t node_info_size = dap_chain_node_info_get_size(node_info);
bool res = dap_chain_global_db_gr_set(l_key, (const uint8_t *) node_info, node_info_size, a_net->pub.gdb_nodes); bool res = dap_chain_global_db_gr_set(l_key, node_info, node_info_size, a_net->pub.gdb_nodes);
DAP_DELETE(l_key); DAP_DELETE(l_key);
//DAP_DELETE(a_value); //DAP_DELETE(a_value);
return res?0:-3; return res?0:-3;
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
#include "dap_strfuncs.h" #include "dap_strfuncs.h"
#include "dap_list.h" #include "dap_list.h"
#include "dap_string.h" #include "dap_string.h"
#include "dap_chain_cert.h" #include "dap_cert.h"
#include "dap_chain_wallet.h" #include "dap_chain_wallet.h"
#include "dap_chain_node.h" #include "dap_chain_node.h"
#include "dap_chain_global_db.h" #include "dap_chain_global_db.h"
...@@ -1575,6 +1575,8 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply) ...@@ -1575,6 +1575,8 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply)
dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-w", &wallet_name); dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-w", &wallet_name);
dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-net", &l_net_name); // for dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-net", &l_net_name); // for
dap_chain_net_t * l_net = l_net_name ? dap_chain_net_by_name( l_net_name) : NULL;
dap_string_t *l_string_ret = dap_string_new(NULL); dap_string_t *l_string_ret = dap_string_new(NULL);
switch (cmd_num) { switch (cmd_num) {
// new wallet // new wallet
...@@ -1584,18 +1586,18 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply) ...@@ -1584,18 +1586,18 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply)
"wallet name option <-w> not defined"); "wallet name option <-w> not defined");
return -1; return -1;
} }
dap_chain_sign_type_t l_sign_type = { SIG_TYPE_BLISS }; dap_sign_type_t l_sign_type = { SIG_TYPE_BLISS };
dap_chain_net_id_t l_net_id = { 0x1 };
// Creates new wallet // Creates new wallet
dap_chain_wallet_t *l_wallet = dap_chain_wallet_create(wallet_name, c_wallets_path, l_net_id, l_sign_type); dap_chain_wallet_t *l_wallet = dap_chain_wallet_create(wallet_name, c_wallets_path, l_sign_type);
dap_chain_addr_t *l_addr = (dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet); dap_chain_addr_t *l_addr = l_net? dap_chain_wallet_get_addr(l_wallet,l_net->pub.id ) : NULL;
if(!l_wallet || !l_addr) { if(!l_wallet ) {
dap_chain_node_cli_set_reply_text(str_reply, "wallet is not created"); dap_chain_node_cli_set_reply_text(str_reply, "wallet is not created");
return -1; return -1;
} }
char *l_addr_str = dap_chain_addr_to_str(l_addr); char *l_addr_str = l_addr? dap_chain_addr_to_str(l_addr) : NULL;
dap_string_append_printf(l_string_ret, "wallet '%s' successfully created\n", l_wallet->name); dap_string_append_printf(l_string_ret, "wallet '%s' successfully created\n", l_wallet->name);
dap_string_append_printf(l_string_ret, "new address %s", l_addr_str); if ( l_addr_str )
dap_string_append_printf(l_string_ret, "new address %s", l_addr_str);
DAP_DELETE(l_addr_str); DAP_DELETE(l_addr_str);
dap_chain_wallet_close(l_wallet); dap_chain_wallet_close(l_wallet);
} }
...@@ -1612,11 +1614,13 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply) ...@@ -1612,11 +1614,13 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply)
char *l_file_path_tmp = dap_strdup_printf("%s/%s", c_wallets_path, l_file_name); char *l_file_path_tmp = dap_strdup_printf("%s/%s", c_wallets_path, l_file_name);
dap_chain_wallet_t *l_wallet = dap_chain_wallet_open_file(l_file_path_tmp); dap_chain_wallet_t *l_wallet = dap_chain_wallet_open_file(l_file_path_tmp);
if(l_wallet) { if(l_wallet) {
dap_chain_addr_t *l_addr = dap_chain_wallet_get_addr(l_wallet); dap_chain_addr_t *l_addr = l_net? dap_chain_wallet_get_addr(l_wallet, l_net->pub.id) : NULL;
char *l_addr_str = dap_chain_addr_to_str(l_addr); char *l_addr_str = dap_chain_addr_to_str(l_addr);
dap_string_append_printf(l_string_ret, "\nwallet: %s\n", l_wallet->name); dap_string_append_printf(l_string_ret, "\nwallet: %s\n", l_wallet->name);
dap_string_append_printf(l_string_ret, "addr: %s\n", (l_addr_str) ? l_addr_str : "-"); if ( l_addr_str){
DAP_DELETE(l_addr_str); dap_string_append_printf(l_string_ret, "addr: %s\n", (l_addr_str) ? l_addr_str : "-");
DAP_DELETE(l_addr_str);
}
dap_chain_wallet_close(l_wallet); dap_chain_wallet_close(l_wallet);
} }
DAP_DELETE(l_file_path_tmp); DAP_DELETE(l_file_path_tmp);
...@@ -1634,7 +1638,8 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply) ...@@ -1634,7 +1638,8 @@ int com_tx_wallet(int argc, char ** argv, char **str_reply)
if(wallet_name) { if(wallet_name) {
l_wallet = dap_chain_wallet_open(wallet_name, c_wallets_path); l_wallet = dap_chain_wallet_open(wallet_name, c_wallets_path);
l_addr = (dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet); if ( l_net )
l_addr = (dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet, l_net->pub.id );
} }
if(!l_addr && addr_str) if(!l_addr && addr_str)
l_addr = dap_chain_addr_from_str(addr_str); l_addr = dap_chain_addr_from_str(addr_str);
...@@ -1774,7 +1779,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1774,7 +1779,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
if(l_datum_hash_str) { if(l_datum_hash_str) {
const char * l_certs_str = NULL; const char * l_certs_str = NULL;
dap_chain_cert_t ** l_certs = NULL; dap_cert_t ** l_certs = NULL;
size_t l_certs_count = 0; size_t l_certs_count = 0;
dap_chain_t * l_chain; dap_chain_t * l_chain;
...@@ -1795,7 +1800,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1795,7 +1800,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
// Load certs lists // Load certs lists
if (l_certs_str) if (l_certs_str)
dap_chain_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_count); dap_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_count);
if(!l_certs_count) { if(!l_certs_count) {
dap_chain_node_cli_set_reply_text(a_str_reply, dap_chain_node_cli_set_reply_text(a_str_reply,
...@@ -1826,9 +1831,9 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1826,9 +1831,9 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
size_t l_signs_count = 0; size_t l_signs_count = 0;
for(size_t l_offset = 0; l_offset < l_signs_size; l_signs_count++) { for(size_t l_offset = 0; l_offset < l_signs_size; l_signs_count++) {
dap_chain_sign_t * l_sign = (dap_chain_sign_t *) l_datum_token->signs + l_offset; dap_sign_t * l_sign = (dap_sign_t *) l_datum_token->signs + l_offset;
l_offset += dap_chain_sign_get_size(l_sign); l_offset += dap_sign_get_size(l_sign);
if( dap_chain_sign_verify(l_sign, l_datum_token, sizeof(l_datum_token->header)) != 1) { if( dap_sign_verify(l_sign, l_datum_token, sizeof(l_datum_token->header)) != 1) {
log_it(L_WARNING, "Wrong signature %u for datum_token with key %s in mempool!", l_signs_count, l_datum_hash_str); log_it(L_WARNING, "Wrong signature %u for datum_token with key %s in mempool!", l_signs_count, l_datum_hash_str);
dap_chain_node_cli_set_reply_text(a_str_reply, dap_chain_node_cli_set_reply_text(a_str_reply,
"Datum %s with datum token has wrong signature %u, break process and exit", "Datum %s with datum token has wrong signature %u, break process and exit",
...@@ -1865,10 +1870,10 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1865,10 +1870,10 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
else if(l_datum_token->header.signs_total >= l_signs_count + l_certs_count) { else if(l_datum_token->header.signs_total >= l_signs_count + l_certs_count) {
size_t l_offset = 0; size_t l_offset = 0;
for(size_t i = 0; i < l_certs_count; i++) { for(size_t i = 0; i < l_certs_count; i++) {
dap_chain_sign_t * l_sign = dap_chain_sign_create(l_certs[i]->enc_key, dap_sign_t * l_sign = dap_sign_create(l_certs[i]->enc_key,
l_datum_token, l_datum_token,
sizeof(l_datum_token->header), 0); sizeof(l_datum_token->header), 0);
size_t l_sign_size = dap_chain_sign_get_size(l_sign); size_t l_sign_size = dap_sign_get_size(l_sign);
l_signs_size+= l_sign_size; l_signs_size+= l_sign_size;
...@@ -1894,14 +1899,15 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1894,14 +1899,15 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
// Recalc hash, string and place new datum // Recalc hash, string and place new datum
// Calc datum's hash // Calc datum's hash
dap_chain_hash_fast_t l_key_hash; dap_chain_hash_fast_t l_key_hash={0};
dap_hash_fast(l_datum, l_datum_size, (uint8_t*) &l_key_hash); dap_hash_fast(l_datum, l_datum_size, &l_key_hash);
char * l_key_str = dap_chain_hash_fast_to_str_new(&l_key_hash); char * l_key_str = dap_chain_hash_fast_to_str_new(&l_key_hash);
// Add datum to mempool with datum_token hash as a key // Add datum to mempool with datum_token hash as a key
if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum, l_datum_size, l_gdb_group_mempool)) { if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum, l_datum_size, l_gdb_group_mempool)) {
char* l_hash_str = strdup(l_datum_hash_str);
// Remove old datum from pool // Remove old datum from pool
if(dap_chain_global_db_gr_del(l_datum_hash_str, l_gdb_group_mempool)) { if(dap_chain_global_db_gr_del( l_hash_str, l_gdb_group_mempool)) {
dap_chain_node_cli_set_reply_text(a_str_reply, dap_chain_node_cli_set_reply_text(a_str_reply,
"datum %s produced from %s is replacing the %s in datum pool", "datum %s produced from %s is replacing the %s in datum pool",
l_key_str, l_datum_hash_str, l_datum_hash_str); l_key_str, l_datum_hash_str, l_datum_hash_str);
...@@ -1919,6 +1925,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply) ...@@ -1919,6 +1925,7 @@ int com_token_decl_sign(int argc, char ** argv, char ** a_str_reply)
DAP_DELETE(l_gdb_group_mempool); DAP_DELETE(l_gdb_group_mempool);
return 1; return 1;
} }
DAP_DELETE(l_hash_str);
} }
else { else {
...@@ -2056,12 +2063,15 @@ int com_mempool_delete(int argc, char ** argv, char ** a_str_reply) ...@@ -2056,12 +2063,15 @@ int com_mempool_delete(int argc, char ** argv, char ** a_str_reply)
const char * l_datum_hash_str = NULL; const char * l_datum_hash_str = NULL;
dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-datum", &l_datum_hash_str); dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-datum", &l_datum_hash_str);
if(l_datum_hash_str) { if(l_datum_hash_str) {
char * l_datum_hash_str2 = strdup(l_datum_hash_str);
char * l_gdb_group_mempool = dap_chain_net_get_gdb_group_mempool(l_chain); char * l_gdb_group_mempool = dap_chain_net_get_gdb_group_mempool(l_chain);
if(dap_chain_global_db_gr_del(l_datum_hash_str, l_gdb_group_mempool)) { if(dap_chain_global_db_gr_del(l_datum_hash_str2, l_gdb_group_mempool)) {
dap_chain_node_cli_set_reply_text(a_str_reply, "Datum %s deleted", l_datum_hash_str); dap_chain_node_cli_set_reply_text(a_str_reply, "Datum %s deleted", l_datum_hash_str);
DAP_DELETE( l_datum_hash_str2);
return 0; return 0;
} else { } else {
dap_chain_node_cli_set_reply_text(a_str_reply, "Error! Can't find datum %s", l_datum_hash_str); dap_chain_node_cli_set_reply_text(a_str_reply, "Error! Can't find datum %s", l_datum_hash_str);
DAP_DELETE( l_datum_hash_str2);
return -4; return -4;
} }
} else { } else {
...@@ -2187,7 +2197,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply) ...@@ -2187,7 +2197,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply)
const char * l_certs_str = NULL; const char * l_certs_str = NULL;
dap_chain_cert_t ** l_certs = NULL; dap_cert_t ** l_certs = NULL;
size_t l_certs_size = 0; size_t l_certs_size = 0;
dap_chain_t * l_chain = NULL; dap_chain_t * l_chain = NULL;
...@@ -2269,7 +2279,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply) ...@@ -2269,7 +2279,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply)
} }
// Load certs lists // Load certs lists
dap_chain_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_size); dap_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_size);
if(!l_certs_size) { if(!l_certs_size) {
dap_chain_node_cli_set_reply_text(a_str_reply, dap_chain_node_cli_set_reply_text(a_str_reply,
"token_create command requres at least one valid certificate to sign the basic transaction of emission"); "token_create command requres at least one valid certificate to sign the basic transaction of emission");
...@@ -2292,11 +2302,11 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply) ...@@ -2292,11 +2302,11 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply)
// Sign header with all certificates in the list and add signs to the end of ticker declaration // Sign header with all certificates in the list and add signs to the end of ticker declaration
// Important: // Important:
for(size_t i = 0; i < l_certs_size; i++) { for(size_t i = 0; i < l_certs_size; i++) {
dap_chain_sign_t * l_sign = dap_chain_cert_sign(l_certs[i], dap_sign_t * l_sign = dap_cert_sign(l_certs[i],
l_datum_token, l_datum_token,
sizeof(l_datum_token->header), sizeof(l_datum_token->header),
0); 0);
size_t l_sign_size = dap_chain_sign_get_size(l_sign); size_t l_sign_size = dap_sign_get_size(l_sign);
l_datum_token = DAP_REALLOC(l_datum_token, sizeof(l_datum_token->header) + l_signs_offset + l_sign_size); l_datum_token = DAP_REALLOC(l_datum_token, sizeof(l_datum_token->header) + l_signs_offset + l_sign_size);
memcpy(l_datum_token->signs + l_signs_offset, l_sign, l_sign_size); memcpy(l_datum_token->signs + l_signs_offset, l_sign, l_sign_size);
l_signs_offset += l_sign_size; l_signs_offset += l_sign_size;
...@@ -2308,7 +2318,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply) ...@@ -2308,7 +2318,7 @@ int com_token_decl(int argc, char ** argv, char ** a_str_reply)
// Calc datum's hash // Calc datum's hash
dap_chain_hash_fast_t l_key_hash; dap_chain_hash_fast_t l_key_hash;
dap_hash_fast(l_datum, l_datum_size, (uint8_t*) &l_key_hash); dap_hash_fast(l_datum, l_datum_size, &l_key_hash);
char * l_key_str = dap_chain_hash_fast_to_str_new(&l_key_hash); char * l_key_str = dap_chain_hash_fast_to_str_new(&l_key_hash);
// Add datum to mempool with datum_token hash as a key // Add datum to mempool with datum_token hash as a key
...@@ -2358,7 +2368,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply) ...@@ -2358,7 +2368,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply)
const char * l_certs_str = NULL; const char * l_certs_str = NULL;
dap_chain_cert_t ** l_certs = NULL; dap_cert_t ** l_certs = NULL;
size_t l_certs_size = 0; size_t l_certs_size = 0;
const char * l_chain_emission_str = NULL; const char * l_chain_emission_str = NULL;
...@@ -2405,7 +2415,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply) ...@@ -2405,7 +2415,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply)
} }
// Load certs // Load certs
dap_chain_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_size); dap_cert_parse_str_list(l_certs_str, &l_certs, &l_certs_size);
if(!l_certs_size) { if(!l_certs_size) {
dap_chain_node_cli_set_reply_text(str_reply, dap_chain_node_cli_set_reply_text(str_reply,
...@@ -2501,9 +2511,9 @@ int com_token_emit(int argc, char ** argv, char ** str_reply) ...@@ -2501,9 +2511,9 @@ int com_token_emit(int argc, char ** argv, char ** str_reply)
// Then add signs // Then add signs
size_t l_offset = 0; size_t l_offset = 0;
for(size_t i = 0; i < l_certs_size; i++) { for(size_t i = 0; i < l_certs_size; i++) {
dap_chain_sign_t * l_sign = dap_chain_cert_sign(l_certs[i], &l_token_emission->hdr, dap_sign_t * l_sign = dap_cert_sign(l_certs[i], &l_token_emission->hdr,
sizeof(l_token_emission->hdr), 0); sizeof(l_token_emission->hdr), 0);
size_t l_sign_size = dap_chain_sign_get_size(l_sign); size_t l_sign_size = dap_sign_get_size(l_sign);
l_token_emission_size += l_sign_size; l_token_emission_size += l_sign_size;
l_token_emission = DAP_REALLOC(l_token_emission, l_token_emission_size); l_token_emission = DAP_REALLOC(l_token_emission, l_token_emission_size);
memcpy(l_token_emission->data.type_auth.signs + l_offset, l_sign, l_sign_size); memcpy(l_token_emission->data.type_auth.signs + l_offset, l_sign, l_sign_size);
...@@ -2519,7 +2529,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply) ...@@ -2519,7 +2529,7 @@ int com_token_emit(int argc, char ** argv, char ** str_reply)
// Calc token's hash // Calc token's hash
dap_chain_hash_fast_t l_token_emission_hash; dap_chain_hash_fast_t l_token_emission_hash;
dap_hash_fast(l_token_emission, l_token_emission_size, (uint8_t*) &l_token_emission_hash); dap_hash_fast(l_token_emission, l_token_emission_size, &l_token_emission_hash);
char * l_key_str = dap_chain_hash_fast_to_str_new(&l_token_emission_hash); char * l_key_str = dap_chain_hash_fast_to_str_new(&l_token_emission_hash);
// Delete token emission // Delete token emission
...@@ -2580,12 +2590,12 @@ int com_token_emit(int argc, char ** argv, char ** str_reply) ...@@ -2580,12 +2590,12 @@ int com_token_emit(int argc, char ** argv, char ** str_reply)
//dap_hash_fast(l_tx, l_tx_size, &l_key_hash); //dap_hash_fast(l_datum_tx, l_datum_tx_size, &l_key_hash); //dap_hash_fast(l_tx, l_tx_size, &l_key_hash); //dap_hash_fast(l_datum_tx, l_datum_tx_size, &l_key_hash);
// calc datum hash // calc datum hash
dap_chain_hash_fast_t l_datum_tx_hash; dap_chain_hash_fast_t l_datum_tx_hash;
dap_hash_fast(l_datum_tx, l_datum_tx_size, (uint8_t*) &l_datum_tx_hash); dap_hash_fast(l_datum_tx, l_datum_tx_size, &l_datum_tx_hash);
l_key_str = dap_chain_hash_fast_to_str_new(&l_datum_tx_hash); l_key_str = dap_chain_hash_fast_to_str_new(&l_datum_tx_hash);
DAP_DELETE(l_tx); DAP_DELETE(l_tx);
// Add to mempool tx token // Add to mempool tx token
if(dap_chain_global_db_gr_set(l_key_str, (uint8_t *) l_datum_tx, l_datum_tx_size if(dap_chain_global_db_gr_set(l_key_str, l_datum_tx, l_datum_tx_size
, l_gdb_group_mempool_base_tx)) { , l_gdb_group_mempool_base_tx)) {
dap_chain_node_cli_set_reply_text(str_reply, "%s\ndatum tx %s is placed in datum pool ", str_reply_tmp, dap_chain_node_cli_set_reply_text(str_reply, "%s\ndatum tx %s is placed in datum pool ", str_reply_tmp,
l_key_str); l_key_str);
...@@ -2611,19 +2621,12 @@ int com_tx_cond_create(int argc, char ** argv, char **str_reply) ...@@ -2611,19 +2621,12 @@ int com_tx_cond_create(int argc, char ** argv, char **str_reply)
{ {
(void) argc; (void) argc;
// test // test
/*
const char * l_token_ticker = NULL; const char * l_token_ticker = NULL;
const char *c_wallets_path = dap_chain_wallet_get_path(g_config); const char *c_wallets_path = dap_chain_wallet_get_path(g_config);
const char *c_wallet_name_from = "w_tesla"; // where to take coins for service const char *c_wallet_name_from = "w_tesla"; // where to take coins for service
const char *c_wallet_name_cond = "w_picnic"; // who will be use service, usually the same address (addr_from) const char *c_wallet_name_cond = "w_picnic"; // who will be use service, usually the same address (addr_from)
// const char *c_net_name = "kelvin-testnet";
uint64_t l_value = 50; uint64_t l_value = 50;
//debug
{
// dap_chain_wallet_t * l_wallet_tesla = dap_chain_wallet_open("w_picnic", c_wallets_path);
// const dap_chain_addr_t *l_addr_tesla = dap_chain_wallet_get_addr(l_wallet_tesla);
// char *addr = dap_chain_addr_to_str(l_addr_tesla);
// addr = 0;
}
dap_chain_wallet_t *l_wallet_from = dap_chain_wallet_open(c_wallet_name_from, c_wallets_path); dap_chain_wallet_t *l_wallet_from = dap_chain_wallet_open(c_wallet_name_from, c_wallets_path);
dap_enc_key_t *l_key = dap_chain_wallet_get_key(l_wallet_from, 0); dap_enc_key_t *l_key = dap_chain_wallet_get_key(l_wallet_from, 0);
...@@ -2648,6 +2651,8 @@ int com_tx_cond_create(int argc, char ** argv, char **str_reply) ...@@ -2648,6 +2651,8 @@ int com_tx_cond_create(int argc, char ** argv, char **str_reply)
dap_chain_node_cli_set_reply_text(str_reply, "cond create=%s\n", dap_chain_node_cli_set_reply_text(str_reply, "cond create=%s\n",
(res == 0) ? "Ok" : (res == -2) ? "False, not enough funds for service fee" : "False"); (res == 0) ? "Ok" : (res == -2) ? "False, not enough funds for service fee" : "False");
return res; return res;
*/
return -1;
} }
/** /**
...@@ -2740,7 +2745,7 @@ int com_tx_create(int argc, char ** argv, char **str_reply) ...@@ -2740,7 +2745,7 @@ int com_tx_create(int argc, char ** argv, char **str_reply)
dap_chain_node_cli_set_reply_text(str_reply, "wallet %s does not exist", l_from_wallet_name); dap_chain_node_cli_set_reply_text(str_reply, "wallet %s does not exist", l_from_wallet_name);
return -1; return -1;
} }
const dap_chain_addr_t *addr_from = (const dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet); const dap_chain_addr_t *addr_from = (const dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet, l_net->pub.id);
dap_chain_addr_t *addr_to = dap_chain_addr_from_str(addr_base58_to); dap_chain_addr_t *addr_to = dap_chain_addr_from_str(addr_base58_to);
dap_chain_addr_t *addr_fee = dap_chain_addr_from_str(addr_base58_fee); dap_chain_addr_t *addr_fee = dap_chain_addr_from_str(addr_base58_fee);
...@@ -2870,7 +2875,7 @@ int com_tx_history(int argc, char ** argv, char **str_reply) ...@@ -2870,7 +2875,7 @@ int com_tx_history(int argc, char ** argv, char **str_reply)
const char *c_wallets_path = dap_chain_wallet_get_path(g_config); const char *c_wallets_path = dap_chain_wallet_get_path(g_config);
dap_chain_wallet_t * l_wallet = dap_chain_wallet_open(l_wallet_name, c_wallets_path); dap_chain_wallet_t * l_wallet = dap_chain_wallet_open(l_wallet_name, c_wallets_path);
if(l_wallet) { if(l_wallet) {
dap_chain_addr_t *l_addr_tmp = (dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet); dap_chain_addr_t *l_addr_tmp = (dap_chain_addr_t *) dap_chain_wallet_get_addr(l_wallet, l_net->pub.id);
l_addr = DAP_NEW_SIZE(dap_chain_addr_t, sizeof(dap_chain_addr_t)); l_addr = DAP_NEW_SIZE(dap_chain_addr_t, sizeof(dap_chain_addr_t));
memcpy(l_addr, l_addr_tmp, sizeof(dap_chain_addr_t)); memcpy(l_addr, l_addr_tmp, sizeof(dap_chain_addr_t));
dap_chain_wallet_close(l_wallet); dap_chain_wallet_close(l_wallet);
......
...@@ -309,7 +309,7 @@ static void s_ch_chain_callback_notify_packet_in(dap_stream_ch_chain_t* a_ch_cha ...@@ -309,7 +309,7 @@ static void s_ch_chain_callback_notify_packet_in(dap_stream_ch_chain_t* a_ch_cha
dap_chain_node_addr_t l_node_addr = { 0 }; dap_chain_node_addr_t l_node_addr = { 0 };
dap_chain_net_t *l_net = dap_chain_net_by_id(a_ch_chain->request_net_id); dap_chain_net_t *l_net = dap_chain_net_by_id(a_ch_chain->request_net_id);
l_node_addr.uint64 = dap_db_get_cur_node_addr(l_net->pub.name); l_node_addr.uint64 = dap_chain_net_get_cur_addr_int(l_net);
dap_stream_ch_chain_pkt_write(a_ch_chain->ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_FIRST_GLOBAL_DB, dap_stream_ch_chain_pkt_write(a_ch_chain->ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_FIRST_GLOBAL_DB,
a_ch_chain->request_net_id, a_ch_chain->request_chain_id, a_ch_chain->request_net_id, a_ch_chain->request_chain_id,
a_ch_chain->request_cell_id, &l_node_addr, sizeof(dap_chain_node_addr_t)); a_ch_chain->request_cell_id, &l_node_addr, sizeof(dap_chain_node_addr_t));
......