diff --git a/modules/common/dap_chain_datum.c b/modules/common/dap_chain_datum.c index 4f6b45cd3efae9eba4eeb528f3f9b652f7f09752..b56d27d77414828098c9e92a5fe2bce8e7844e07 100644 --- a/modules/common/dap_chain_datum.c +++ b/modules/common/dap_chain_datum.c @@ -102,14 +102,12 @@ void dap_datum_token_dump_tsd_to_json(json_object * json_obj_out, dap_chain_datu switch(l_tsd->type) { case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_SET_FLAGS: { uint16_t l_t = 0; - dap_chain_datum_token_flags_dump_to_json(json_obj_out,_dap_tsd_get_scalar(l_tsd, &l_t)); - json_object_object_add(json_obj_out, "flags_set", json_object_new_string("empty")); + dap_chain_datum_token_flags_dump_to_json(json_obj_out, "flags_set", _dap_tsd_get_scalar(l_tsd, &l_t)); continue; } case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_UNSET_FLAGS: { uint16_t l_t = 0; - dap_chain_datum_token_flags_dump_to_json(json_obj_out,_dap_tsd_get_scalar(l_tsd, &l_t)); - json_object_object_add(json_obj_out, "flags_unset", json_object_new_string("empty")); + dap_chain_datum_token_flags_dump_to_json(json_obj_out, "flags_unset", _dap_tsd_get_scalar(l_tsd, &l_t)); continue; } case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY: { // 256 @@ -887,7 +885,7 @@ void dap_chain_datum_dump_json(json_object *a_obj_out, dap_chain_datum_t *a_dat json_object_object_add(json_obj_datum,"auth signs total",json_object_new_uint64(l_token->signs_total)); json_object_object_add(json_obj_datum,"total_supply",json_object_new_string(dap_uint256_to_char(l_token->total_supply, NULL))); - dap_chain_datum_token_flags_dump_to_json(json_obj_datum,l_token->header_private_decl.flags); + dap_chain_datum_token_flags_dump_to_json(json_obj_datum, "flags",l_token->header_private_decl.flags); dap_datum_token_dump_tsd_to_json(json_obj_datum,l_token, l_token_size, a_hash_out_type); size_t l_certs_field_size = l_token_size - sizeof(*l_token) - l_token->header_private_update.tsd_total_size; dap_chain_datum_token_certs_dump_to_json(json_obj_datum,l_token->tsd_n_signs + l_token->header_private_update.tsd_total_size, @@ -899,7 +897,7 @@ void dap_chain_datum_dump_json(json_object *a_obj_out, dap_chain_datum_t *a_dat json_object_object_add(json_obj_datum,"auth signs valid",json_object_new_uint64(l_token->signs_valid)); json_object_object_add(json_obj_datum,"auth signs total",json_object_new_uint64(l_token->signs_total)); json_object_object_add(json_obj_datum,"total_supply",json_object_new_string(dap_uint256_to_char(l_token->total_supply, NULL))); - dap_chain_datum_token_flags_dump_to_json(json_obj_datum, l_token->header_native_decl.flags); + dap_chain_datum_token_flags_dump_to_json(json_obj_datum, "flags", l_token->header_native_decl.flags); dap_datum_token_dump_tsd_to_json(json_obj_datum, l_token, l_token_size, a_hash_out_type); size_t l_certs_field_size = l_token_size - sizeof(*l_token) - l_token->header_native_decl.tsd_total_size; dap_chain_datum_token_certs_dump_to_json(json_obj_datum, l_token->tsd_n_signs + l_token->header_native_decl.tsd_total_size, @@ -911,7 +909,7 @@ void dap_chain_datum_dump_json(json_object *a_obj_out, dap_chain_datum_t *a_dat json_object_object_add(json_obj_datum,"premine_supply", json_object_new_string(dap_uint256_to_char(l_token->header_public.premine_supply, NULL))); json_object_object_add(json_obj_datum,"premine_address", json_object_new_string(dap_chain_addr_to_str(&l_premine_addr))); - dap_chain_datum_token_flags_dump_to_json(json_obj_datum, l_token->header_public.flags); + dap_chain_datum_token_flags_dump_to_json(json_obj_datum, "flags", l_token->header_public.flags); } break; } } break; diff --git a/modules/common/dap_chain_datum_token.c b/modules/common/dap_chain_datum_token.c index 8be5bcfd4bb3946399f51bf86e462cc3f0377ceb..0774e6bce8eae8b4e0fcd7f30407458edb3e9ba5 100644 --- a/modules/common/dap_chain_datum_token.c +++ b/modules/common/dap_chain_datum_token.c @@ -194,17 +194,17 @@ uint32_t dap_chain_datum_token_flag_from_str(const char *a_str) * @param json_obj_out * @param a_flags */ -void dap_chain_datum_token_flags_dump_to_json(json_object * json_obj_out, uint16_t a_flags) +void dap_chain_datum_token_flags_dump_to_json(json_object * json_obj_out, const char *a_key, uint16_t a_flags) { if (!a_flags) { - json_object_object_add(json_obj_out, "flags", json_object_new_string(dap_chain_datum_token_flag_to_str(DAP_CHAIN_DATUM_TOKEN_FLAG_NONE))); + json_object_object_add(json_obj_out, a_key, json_object_new_string(dap_chain_datum_token_flag_to_str(DAP_CHAIN_DATUM_TOKEN_FLAG_NONE))); return; } json_object *l_array_flags = json_object_new_array(); for (uint16_t i = 0; BIT(i) <= DAP_CHAIN_DATUM_TOKEN_FLAG_MAX; i++) if (a_flags & BIT(i)) json_object_array_add(l_array_flags, json_object_new_string(dap_chain_datum_token_flag_to_str(BIT(i)))); - json_object_object_add(json_obj_out, "flags", l_array_flags); + json_object_object_add(json_obj_out, a_key, l_array_flags); } /** diff --git a/modules/common/include/dap_chain_datum_token.h b/modules/common/include/dap_chain_datum_token.h index 04a469261564173fa0c4c438a30018e4a823a7b6..53c5ec4b30ceb0c0003cc12ba1baa598acec9364 100644 --- a/modules/common/include/dap_chain_datum_token.h +++ b/modules/common/include/dap_chain_datum_token.h @@ -416,7 +416,7 @@ DAP_STATIC_INLINE const char *dap_chain_datum_emission_type_str(uint8_t a_type) /// TDS op funcs dap_tsd_t* dap_chain_datum_token_tsd_get(dap_chain_datum_token_t * a_token, size_t a_token_size); -void dap_chain_datum_token_flags_dump_to_json(json_object * json_obj_out, uint16_t a_flags); +void dap_chain_datum_token_flags_dump_to_json(json_object * json_obj_out, const char *a_key, uint16_t a_flags); void dap_chain_datum_token_certs_dump(dap_string_t * a_str_out, byte_t * a_tsd_n_signs, size_t a_certs_size, const char *a_hash_out_type); void dap_chain_datum_token_certs_dump_to_json(json_object *a_json_obj_out, byte_t * a_tsd_n_signs, size_t a_certs_size, const char *a_hash_out_type); dap_chain_datum_token_t *dap_chain_datum_token_read(const byte_t *a_token_serial, size_t *a_token_size); diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c index 48250421cce50d999ac3f2b5a71bfee49be77d44..7e39e6ea8d658717074178ff317fbf2224f887ee 100644 --- a/modules/net/dap_chain_ledger.c +++ b/modules/net/dap_chain_ledger.c @@ -2185,7 +2185,7 @@ json_object *s_token_item_to_json(dap_ledger_token_item_t *a_token_item) json_object_object_add(json_obj_datum, "-->Token name", json_object_new_string(a_token_item->ticker)); json_object_object_add(json_obj_datum, "type", json_object_new_string(l_type_str)); if (a_token_item->subtype != DAP_CHAIN_DATUM_TOKEN_SUBTYPE_SIMPLE && a_token_item->subtype != DAP_CHAIN_DATUM_TOKEN_SUBTYPE_PUBLIC) { - dap_chain_datum_token_flags_dump_to_json(json_obj_datum, a_token_item->datum_token->header_native_decl.flags); + dap_chain_datum_token_flags_dump_to_json(json_obj_datum, "flags", a_token_item->flags); json_object_object_add(json_obj_datum, "description", a_token_item->description ? json_object_new_string(a_token_item->description) : json_object_new_string("The token description is not set")); diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c index eee2e5e2a920b000e05260910540251213a87370..d3c31c3f1c35284a83c382684f714c6fff836e8b 100644 --- a/modules/net/dap_chain_node_cli.c +++ b/modules/net/dap_chain_node_cli.c @@ -131,14 +131,16 @@ int dap_chain_node_cli_init(dap_config_t * g_config) "\nPrivate token update\n" "token_update -net <net_name> [-chain <chain_name>] -token <existing token_ticker> -type private -total_supply <the same or more> -decimals <18>\n" "-signs_total <the same total as the token you are updating> -signs_emission <the same total as the token you are updating> -certs <use the certificates of the token you are update>\n" - "-flags [<Flag 1>][,<Flag 2>]...[,<Flag N>]...\n" + "-flags_set [<Flag_1>][,<Flag_2>]...[,<Flag_N>]...\n" + "-flag_unset [<Flag_1>][,<Flag_2>]...[,<Flag_N>]...\n" "\t [-<Param name 1> <Param Value 1>] [-Param name 2> <Param Value 2>] ...[-<Param Name N> <Param Value N>]\n" "\t Update token for <netname>:<chain name> with ticker <token ticker>, flags <Flag 1>,<Flag2>...<Flag N>\n" "\t and custom parameters list <Param 1>, <Param 2>...<Param N>.\n" "\nCF20 token update\n" "token_update -net <net_name> [-chain <chain_name>] -token <existing token_ticker> -type CF20 -total_supply <the same or more/if 0 = endless> -decimals <18>\n" "-signs_total <the same total as the token you are updating> -signs_emission <the same total as the token you are updating> -certs <use the certificates of the token you are update>\n" - "\t -flags [<Flag 1>][,<Flag 2>]...[,<Flag N>]...\n" + "-flags_set [<Flag_1>][,<Flag_2>]...[,<Flag_N>]...\n" + "-flag_unset [<Flag_1>][,<Flag_2>]...[,<Flag_N>]...\n" "\t [-<Param name 1> <Param Value 1>] [-Param name 2> <Param Value 2>] ...[-<Param Name N> <Param Value N>]\n" "\t Update token for <netname>:<chain name> with ticker <token ticker>, flags <Flag 1>,<Flag2>...<Flag N>\n" "\t and custom parameters list <Param 1>, <Param 2>...<Param N>.\n" diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index 6af9ea50c83ead5c526cc08006fff8a900443c3a..ed051406368b87504f2b379851e6bff70664813e 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -426,7 +426,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) switch (cmd_name) { case CMD_NAME_CELL: { - + if(!arg_index || a_argc < 3) { dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR, "parameters are not valid"); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR; @@ -440,7 +440,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) const char *l_cell_str = NULL, *l_chain_str = NULL; // find cell and chain dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-cell", &l_cell_str); - + int arg_index_n = ++arg_index; // find command (add, delete, etc) as second parameter only int cmd_num = CMD_NONE; @@ -473,7 +473,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) } else dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_CAN_CREATE_CELL_ERR, "can't create file for cell 0x%016"DAP_UINT64_FORMAT_X" ( %s )", - l_cell->id.uint64,l_cell->file_storage_path); + l_cell->id.uint64,l_cell->file_storage_path); dap_chain_cell_close(l_cell); return l_ret; @@ -497,7 +497,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) case -1: dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_CAN_NOT_OPEN_DIR, "Couldn't open db directory. Can't init cdb\n" - "Reboot the node.\n\n"); + "Reboot the node.\n\n"); break; case -2: dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_CAN_NOT_INIT_DB, @@ -542,7 +542,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) } else{ dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR, - "Subcommand '%s' not recognized, available subcommands are 'get', 'pin' or 'unpin'", a_argv[2]); + "Subcommand '%s' not recognized, available subcommands are 'get', 'pin' or 'unpin'", a_argv[2]); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR; } // read record from database @@ -576,13 +576,13 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_MEMORY_ERR; } json_object_object_add(json_obj_rec, "command status", json_object_new_string("Commit data base and filesystem caches to disk completed.")); - + size_t ret = dap_bin2hex(l_value_str, l_value, l_value_len); json_object_object_add(json_obj_rec, "command status", json_object_new_string("Record found")); json_object_object_add(json_obj_rec, "lenght(byte)", json_object_new_uint64(l_value_len)); json_object_object_add(json_obj_rec, "hash", json_object_new_string(l_hash_str)); json_object_object_add(json_obj_rec, "pinned", l_is_pinned ? json_object_new_string("Yes") : json_object_new_string("No") ); - json_object_object_add(json_obj_rec, "value", json_object_new_string(l_value_str)); + json_object_object_add(json_obj_rec, "value", json_object_new_string(l_value_str)); DAP_DELETE(l_value_str); break; } @@ -593,7 +593,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) break; } if(dap_global_db_set_sync( l_group, l_key, l_value, l_value_len, true) ==0 ){ - json_object_object_add(json_obj_rec, "pinned status", json_object_new_string("record successfully pinned")); + json_object_object_add(json_obj_rec, "pinned status", json_object_new_string("record successfully pinned")); } else{ dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_RECORD_NOT_PINED, @@ -603,7 +603,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) break; } case SUMCMD_UNPIN: // Unpin record - { + { if(!l_is_pinned) { json_object_object_add(json_obj_rec, "unpinned status", json_object_new_string("record already unpinned")); break; @@ -617,7 +617,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) l_ret = -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_RECORD_NOT_UNPINED; } break; - } + } } json_object_array_add(*json_arr_reply, json_obj_rec); DAP_DELETE(l_value); @@ -627,7 +627,8 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) { const char *l_group_str = NULL; const char *l_key_str = NULL; - const char *l_value_str = NULL; + const char *l_value_str = NULL; + dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-group", &l_group_str); dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-key", &l_key_str); dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-value", &l_value_str); @@ -666,7 +667,8 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) case CMD_READ: { const char *l_group_str = NULL; - const char *l_key_str = NULL; + const char *l_key_str = NULL; + dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-group", &l_group_str); dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-key", &l_key_str); @@ -790,7 +792,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) json_object_array_add(*json_arr_reply, json_obj_drop); return DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_JSON_OK; } else { - dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_DROP_FAILED,"Failed to drop table %s", l_group_str); + dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_DROP_FAILED,"Failed to drop table %s", l_group_str); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_DROP_FAILED; } } @@ -800,7 +802,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-group", &l_group_str); if(!l_group_str) { - dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR,"%s requires parameter 'group' to be valid", a_argv[0]); + dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR,"%s requires parameter 'group' to be valid", a_argv[0]); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR; } @@ -809,7 +811,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) if (!l_obj || !l_objs_count) { - dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_NO_DATA_IN_GROUP,"No data in group %s.", l_group_str); + dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_NO_DATA_IN_GROUP,"No data in group %s.", l_group_str); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_NO_DATA_IN_GROUP; } @@ -850,7 +852,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) return DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_JSON_OK; } default: - dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR,"parameters are not valid"); + dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR,"parameters are not valid"); return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR; } } @@ -2181,7 +2183,7 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; "sig_multi_chained. You must specify at least two more " "signatures other than sig_multi_chained.\n" "After sig_multi_chained, you must specify two more signatures " - "from the list:\n%s", dap_cert_get_str_recommended_sign()); + "from the list: %s", dap_cert_get_str_recommended_sign()); json_object_put(json_arr_out); return DAP_CHAIN_NODE_CLI_COM_TX_WALLET_UNKNOWN_SIGN_ERR; } @@ -4231,6 +4233,7 @@ static int s_parse_additional_token_decl_arg(int a_argc, char ** a_argv, void ** l_flags = 0; l_tsd_list = dap_list_append(l_tsd_list, l_flag_set_tsd); l_tsd_total_size += dap_tsd_size(l_flag_set_tsd); + a_params->ext.parsed_tsd_size += dap_tsd_size(l_flag_set_tsd); } if (l_unset_flags) { l_str_flags = dap_strsplit(l_unset_flags,",",0xffff ); @@ -4247,6 +4250,7 @@ static int s_parse_additional_token_decl_arg(int a_argc, char ** a_argv, void ** l_flags = 0; l_tsd_list = dap_list_append(l_tsd_list, l_flag_unset_tsd); l_tsd_total_size += dap_tsd_size(l_flag_unset_tsd); + a_params->ext.parsed_tsd_size += dap_tsd_size(l_flag_unset_tsd); } }