diff --git a/contrib/devtools/circular-dependencies.py b/contrib/devtools/circular-dependencies.py index a6cdc343d5cb..6cbbdb189eea 100755 --- a/contrib/devtools/circular-dependencies.py +++ b/contrib/devtools/circular-dependencies.py @@ -11,6 +11,10 @@ MAPPING = { 'core_read.cpp': 'core_io.cpp', 'core_write.cpp': 'core_io.cpp', + 'evo/core_write.cpp': 'core_io.cpp', + 'evo/providertx_util.cpp': 'evo/providertx.cpp', + 'llmq/core_write.cpp': 'core_io.cpp', + 'qt/guiutil_font.cpp': 'qt/guiutil.cpp', } # Directories with header-based modules, where the assumption that .cpp files diff --git a/src/Makefile.am b/src/Makefile.am index 0cf8ce802fdb..3150de83e809 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -372,7 +372,7 @@ BITCOIN_CORE_H = \ rest.h \ rpc/blockchain.h \ rpc/client.h \ - rpc/evo_util.h \ + rpc/json_help.h \ rpc/mempool.h \ rpc/mining.h \ rpc/protocol.h \ @@ -638,6 +638,7 @@ libbitcoin_node_a_SOURCES = \ rpc/evo.cpp \ rpc/fees.cpp \ rpc/governance.cpp \ + rpc/json_help.cpp \ rpc/masternode.cpp \ rpc/mempool.cpp \ rpc/mining.cpp \ @@ -969,7 +970,6 @@ libbitcoin_common_a_SOURCES = \ evo/providertx_util.cpp \ external_signer.cpp \ governance/common.cpp \ - governance/core_write.cpp \ init/common.cpp \ key.cpp \ key_io.cpp \ @@ -984,7 +984,6 @@ libbitcoin_common_a_SOURCES = \ policy/policy.cpp \ protocol.cpp \ psbt.cpp \ - rpc/evo_util.cpp \ rpc/external_signer.cpp \ rpc/rawtransaction_util.cpp \ rpc/request.cpp \ diff --git a/src/coinjoin/client.cpp b/src/coinjoin/client.cpp index de82104b8910..47a80c4c5be6 100644 --- a/src/coinjoin/client.cpp +++ b/src/coinjoin/client.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include diff --git a/src/core_io.h b/src/core_io.h index 85deffd5c2fd..6785fab15a15 100644 --- a/src/core_io.h +++ b/src/core_io.h @@ -7,6 +7,7 @@ #include +#include #include #include @@ -18,7 +19,7 @@ class CTxUndo; class uint256; struct CMutableTransaction; struct CSpentIndexTxInfo; -struct RPCResult; +enum class MnType : uint16_t; class UniValue; @@ -58,6 +59,11 @@ void ScriptToUniv(const CScript& script, UniValue& out, bool include_hex = true, void TxToUniv(const CTransaction& tx, const uint256& block_hash, UniValue& entry, bool include_hex = true, int serialize_flags = 0, const CTxUndo* txundo = nullptr, TxVerbosity verbosity = TxVerbosity::SHOW_DETAILS, const CSpentIndexTxInfo* ptxSpentInfo = nullptr); // evo/core_write.cpp -RPCResult GetRpcResult(const std::string& key, bool optional = false, const std::string& override_name = ""); +/** Reads network info reporting and appends data from legacy fields if applicable */ +template +UniValue GetNetInfoWithLegacyFields(const Obj& obj, const MnType& type); +/** Returns platform port based on purpose and network info version */ +template +int32_t GetPlatformPort(const Obj& obj); #endif // BITCOIN_CORE_IO_H diff --git a/src/evo/core_write.cpp b/src/evo/core_write.cpp index 0aaafa6e545b..4ebe78675f2d 100644 --- a/src/evo/core_write.cpp +++ b/src/evo/core_write.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include #include @@ -12,80 +12,21 @@ #include #include #include -#include #include #include #include -#include +#include #include