From b9b698946276b3908681b1f5964dc3437ab09591 Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Wed, 24 Apr 2024 12:41:36 +0700 Subject: [PATCH] [*] Port from feature-10248: For the tx_create command, a check has been added to ensure that the address of the source of funds and the recipient do not match. --- modules/net/dap_chain_node_cli_cmd.c | 5 +++++ modules/net/include/dap_chain_node_cli_cmd.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index 66792ad9fc..0ae8663965 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -6832,6 +6832,11 @@ int com_tx_create(int a_argc, char **a_argv, void **reply) return DAP_CHAIN_NODE_CLI_COM_TX_CREATE_SOURCE_ADDRESS_INVALID; } + if (addr_from && dap_chain_addr_compare(l_addr_to, addr_from)) { + dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_TX_CREATE_EQ_SOURCE_DESTINATION_ADDRESS, "The transaction cannot be directed to the same address as the source."); + return DAP_CHAIN_NODE_CLI_COM_TX_CREATE_EQ_SOURCE_DESTINATION_ADDRESS; + } + if (l_addr_to->net_id.uint64 != l_net->pub.id.uint64 && !dap_chain_addr_is_blank(l_addr_to)) { bool l_found = false; for (dap_list_t *it = l_net->pub.bridged_networks; it; it = it->next) { diff --git a/modules/net/include/dap_chain_node_cli_cmd.h b/modules/net/include/dap_chain_node_cli_cmd.h index a20814b648..f704cdd943 100644 --- a/modules/net/include/dap_chain_node_cli_cmd.h +++ b/modules/net/include/dap_chain_node_cli_cmd.h @@ -159,7 +159,8 @@ typedef enum s_com_tx_create_err{ DAP_CHAIN_NODE_CLI_COM_TX_CREATE_WALLET_DOES_NOT_EXIST, DAP_CHAIN_NODE_CLI_COM_TX_CREATE_SOURCE_ADDRESS_INVALID, DAP_CHAIN_NODE_CLI_COM_TX_CREATE_DESTINATION_NETWORK_IS_UNREACHEBLE, - DAP_CHAIN_NODE_CLI_COM_TX_CREATE_CAN_NOT_CREATE_TRANSACTION + DAP_CHAIN_NODE_CLI_COM_TX_CREATE_CAN_NOT_CREATE_TRANSACTION, + DAP_CHAIN_NODE_CLI_COM_TX_CREATE_EQ_SOURCE_DESTINATION_ADDRESS }s_com_tx_create_err_t; int com_tx_create(int a_argc, char **a_argv, void **a_str_reply); typedef enum s_com_tx_create_json_err { -- GitLab