From eeeb6dc6b637034ee1a80cb3f0c034b94e24a1b1 Mon Sep 17 00:00:00 2001 From: "roman.khlopkov" <roman.khlopkov@demlabs.net> Date: Wed, 17 Jan 2024 14:17:09 +0300 Subject: [PATCH] [*] Network fee correction fix --- modules/net/dap_chain_ledger.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c index f68cc9d280..0a2672e1bc 100644 --- a/modules/net/dap_chain_ledger.c +++ b/modules/net/dap_chain_ledger.c @@ -4098,7 +4098,7 @@ int dap_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx if (l_tax_check && l_tx_out->header.subtype == DAP_CHAIN_TX_OUT_COND_SUBTYPE_FEE && SUBTRACT_256_256(l_taxed_value, l_value, &l_taxed_value)) { log_it(L_WARNING, "Fee is greater than sum of inputs"); - l_err_num = -89; + l_err_num = -98; break; } } break; @@ -4156,7 +4156,7 @@ int dap_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx if(s_debug_more) log_it(L_WARNING, "No permission for addr %s", l_tmp_tx_out_to?l_tmp_tx_out_to:"(null)"); DAP_DELETE(l_tmp_tx_out_to); - l_err_num = -20; + l_err_num = -22; break; } } @@ -4193,13 +4193,14 @@ int dap_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx } // 7. Check the network fee - if (!l_err_num && l_fee_check && compare256(l_fee_sum, a_ledger->net->pub.fee_value) == -1) { + if (!l_err_num && l_fee_check) { // Check for PoA-cert-signed "service" no-tax tx - if (!dap_ledger_tx_poa_signed(a_ledger, a_tx)) { + if (compare256(l_fee_sum, a_ledger->net->pub.fee_value) == -1 && + !dap_ledger_tx_poa_signed(a_ledger, a_tx)) { char *l_current_fee = dap_chain_balance_to_coins(l_fee_sum); char *l_expected_fee = dap_chain_balance_to_coins(a_ledger->net->pub.fee_value); - log_it(L_ERROR, "Fee value is invalid, expected %s pointed %s", l_expected_fee, l_current_fee); - l_err_num = -55; + log_it(L_WARNING, "Fee value is invalid, expected %s pointed %s", l_expected_fee, l_current_fee); + l_err_num = -54; DAP_DEL_Z(l_current_fee); DAP_DEL_Z(l_expected_fee); } @@ -4240,7 +4241,7 @@ int dap_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx if (compare256(l_tax_sum, l_expected_tax) == -1) { char *l_current_tax_str = dap_chain_balance_to_coins(l_tax_sum); char *l_expected_tax_str = dap_chain_balance_to_coins(l_expected_tax); - log_it(L_ERROR, "Tax value is invalid, expected %s pointed %s", l_expected_tax_str, l_current_tax_str); + log_it(L_WARNING, "Tax value is invalid, expected %s pointed %s", l_expected_tax_str, l_current_tax_str); l_err_num = -55; DAP_DEL_Z(l_current_tax_str); DAP_DEL_Z(l_expected_tax_str); -- GitLab