88#include < consensus/validation.h>
99#include < core_io.h>
1010#include < deploymentstatus.h>
11+ #include < evo/chainhelper.h>
1112#include < evo/deterministicmns.h>
1213#include < evo/dmn_types.h>
1314#include < evo/providertx.h>
@@ -324,13 +325,13 @@ static void SignSpecialTxPayloadByHash(const CMutableTransaction& tx, SpecialTxP
324325 payload.sig = key.Sign (hash);
325326}
326327
327- static std::string SignAndSendSpecialTx (const JSONRPCRequest& request, CDeterministicMNManager& dmnman , const ChainstateManager& chainman, const CMutableTransaction& tx, bool fSubmit = true )
328+ static std::string SignAndSendSpecialTx (const JSONRPCRequest& request, CChainstateHelper& chain_helper , const ChainstateManager& chainman, const CMutableTransaction& tx, bool fSubmit = true )
328329{
329330 {
330331 LOCK (cs_main);
331332
332333 TxValidationState state;
333- if (!CheckSpecialTx (dmnman, CTransaction (tx), chainman.ActiveChain ().Tip (), chainman.ActiveChainstate ().CoinsTip (), true , state)) {
334+ if (!chain_helper. special_tx -> CheckSpecialTx (CTransaction (tx), chainman.ActiveChain ().Tip (), chainman.ActiveChainstate ().CoinsTip (), true , state)) {
334335 throw std::runtime_error (state.ToString ());
335336 }
336337 } // cs_main
@@ -579,7 +580,7 @@ static void protx_register_prepare_evo_help(const JSONRPCRequest& request)
579580}
580581
581582static UniValue protx_register_common_wrapper (const JSONRPCRequest& request,
582- CDeterministicMNManager& dmnman ,
583+ CChainstateHelper& chain_helper ,
583584 const ChainstateManager& chainman,
584585 const bool specific_legacy_bls_scheme,
585586 const bool isExternalRegister,
@@ -739,7 +740,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
739740 ptx.collateralOutpoint .n = collateralIndex;
740741
741742 SetTxPayload (tx, ptx);
742- return SignAndSendSpecialTx (request, dmnman , chainman, tx, fSubmit );
743+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx, fSubmit );
743744 } else {
744745 // referencing external collateral
745746
@@ -787,7 +788,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
787788 }
788789 SignSpecialTxPayloadByString (tx, ptx, key);
789790 SetTxPayload (tx, ptx);
790- return SignAndSendSpecialTx (request, dmnman , chainman, tx, fSubmit );
791+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx, fSubmit );
791792 }
792793 } catch (...) {
793794 if (unlockOnError) {
@@ -798,7 +799,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
798799 }
799800}
800801
801- static UniValue protx_register_evo (const JSONRPCRequest& request, CDeterministicMNManager& dmnman , const ChainstateManager& chainman)
802+ static UniValue protx_register_evo (const JSONRPCRequest& request, CChainstateHelper& chain_helper , const ChainstateManager& chainman)
802803{
803804 bool isExternalRegister = request.strMethod == " protxregister_evo" ;
804805 bool isFundRegister = request.strMethod == " protxregister_fund_evo" ;
@@ -811,26 +812,26 @@ static UniValue protx_register_evo(const JSONRPCRequest& request, CDeterministic
811812 isFundRegister = request.strMethod == " protxregister_fund_hpmn" ;
812813 isPrepareRegister = request.strMethod == " protxregister_prepare_hpmn" ;
813814 }
814- return protx_register_common_wrapper (request, dmnman , chainman, false , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Evo);
815+ return protx_register_common_wrapper (request, chain_helper , chainman, false , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Evo);
815816}
816817
817- static UniValue protx_register (const JSONRPCRequest& request, CDeterministicMNManager& dmnman , const ChainstateManager& chainman)
818+ static UniValue protx_register (const JSONRPCRequest& request, CChainstateHelper& chain_helper , const ChainstateManager& chainman)
818819{
819820 bool isExternalRegister = request.strMethod == " protxregister" ;
820821 bool isFundRegister = request.strMethod == " protxregister_fund" ;
821822 bool isPrepareRegister = request.strMethod == " protxregister_prepare" ;
822- return protx_register_common_wrapper (request, dmnman , chainman, false , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Regular);
823+ return protx_register_common_wrapper (request, chain_helper , chainman, false , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Regular);
823824}
824825
825- static UniValue protx_register_legacy (const JSONRPCRequest& request, CDeterministicMNManager& dmnman , const ChainstateManager& chainman)
826+ static UniValue protx_register_legacy (const JSONRPCRequest& request, CChainstateHelper& chain_helper , const ChainstateManager& chainman)
826827{
827828 bool isExternalRegister = request.strMethod == " protxregister_legacy" ;
828829 bool isFundRegister = request.strMethod == " protxregister_fund_legacy" ;
829830 bool isPrepareRegister = request.strMethod == " protxregister_prepare_legacy" ;
830- return protx_register_common_wrapper (request, dmnman , chainman, true , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Regular);
831+ return protx_register_common_wrapper (request, chain_helper , chainman, true , isExternalRegister, isFundRegister, isPrepareRegister, MnType::Regular);
831832}
832833
833- static UniValue protx_register_submit (const JSONRPCRequest& request, CDeterministicMNManager& dmnman , const ChainstateManager& chainman)
834+ static UniValue protx_register_submit (const JSONRPCRequest& request, CChainstateHelper& chain_helper , const ChainstateManager& chainman)
834835{
835836 protx_register_submit_help (request);
836837
@@ -863,7 +864,7 @@ static UniValue protx_register_submit(const JSONRPCRequest& request, CDeterminis
863864 }
864865
865866 SetTxPayload (tx, ptx);
866- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
867+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
867868}
868869
869870static void protx_update_service_help (const JSONRPCRequest& request)
@@ -914,7 +915,7 @@ static void protx_update_service_evo_help(const JSONRPCRequest& request)
914915 }.Check (request);
915916}
916917
917- static UniValue protx_update_service_common_wrapper (const JSONRPCRequest& request, CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const MnType mnType)
918+ static UniValue protx_update_service_common_wrapper (const JSONRPCRequest& request, CChainstateHelper& chain_helper, CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const MnType mnType)
918919{
919920 if (request.strMethod .find (" _hpmn" ) != std::string::npos) {
920921 if (!IsDeprecatedRPCEnabled (" hpmn" )) {
@@ -1026,7 +1027,7 @@ static UniValue protx_update_service_common_wrapper(const JSONRPCRequest& reques
10261027 SignSpecialTxPayloadByHash (tx, ptx, keyOperator);
10271028 SetTxPayload (tx, ptx);
10281029
1029- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1030+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
10301031}
10311032
10321033static void protx_update_registrar_help (const JSONRPCRequest& request, bool legacy)
@@ -1056,7 +1057,7 @@ static void protx_update_registrar_help(const JSONRPCRequest& request, bool lega
10561057 }.Check (request);
10571058}
10581059
1059- static UniValue protx_update_registrar_wrapper (const JSONRPCRequest& request, CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const bool specific_legacy_bls_scheme)
1060+ static UniValue protx_update_registrar_wrapper (const JSONRPCRequest& request, CChainstateHelper& chain_helper, CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const bool specific_legacy_bls_scheme)
10601061{
10611062 protx_update_registrar_help (request, specific_legacy_bls_scheme);
10621063
@@ -1131,17 +1132,17 @@ static UniValue protx_update_registrar_wrapper(const JSONRPCRequest& request, CD
11311132 SignSpecialTxPayloadByHash (tx, ptx, keyOwner);
11321133 SetTxPayload (tx, ptx);
11331134
1134- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1135+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
11351136}
11361137
1137- static UniValue protx_update_registrar (const JSONRPCRequest& request, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
1138+ static UniValue protx_update_registrar (const JSONRPCRequest& request, CChainstateHelper& chain_helper, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
11381139{
1139- return protx_update_registrar_wrapper (request, dmnman, chainman, false );
1140+ return protx_update_registrar_wrapper (request, chain_helper, dmnman, chainman, false );
11401141}
11411142
1142- static UniValue protx_update_registrar_legacy (const JSONRPCRequest& request, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
1143+ static UniValue protx_update_registrar_legacy (const JSONRPCRequest& request, CChainstateHelper& chain_helper, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
11431144{
1144- return protx_update_registrar_wrapper (request, dmnman, chainman, true );
1145+ return protx_update_registrar_wrapper (request, chain_helper, dmnman, chainman, true );
11451146}
11461147
11471148static void protx_revoke_help (const JSONRPCRequest& request)
@@ -1167,7 +1168,7 @@ static void protx_revoke_help(const JSONRPCRequest& request)
11671168 }.Check (request);
11681169}
11691170
1170- static UniValue protx_revoke (const JSONRPCRequest& request, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
1171+ static UniValue protx_revoke (const JSONRPCRequest& request, CChainstateHelper& chain_helper, CDeterministicMNManager& dmnman, const ChainstateManager& chainman)
11711172{
11721173 protx_revoke_help (request);
11731174
@@ -1227,7 +1228,7 @@ static UniValue protx_revoke(const JSONRPCRequest& request, CDeterministicMNMana
12271228 SignSpecialTxPayloadByHash (tx, ptx, keyOperator);
12281229 SetTxPayload (tx, ptx);
12291230
1230- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1231+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
12311232}
12321233
12331234#endif // ENABLE_WALLET
@@ -1676,24 +1677,27 @@ static UniValue protx(const JSONRPCRequest& request)
16761677 CMasternodeMetaMan& mn_metaman = *node.mn_metaman ;
16771678
16781679#ifdef ENABLE_WALLET
1680+ CHECK_NONFATAL (node.chain_helper );
1681+ CChainstateHelper& chain_helper = *node.chain_helper ;
1682+
16791683 if (command == " protxregister" || command == " protxregister_fund" || command == " protxregister_prepare" ) {
1680- return protx_register (new_request, dmnman , chainman);
1684+ return protx_register (new_request, chain_helper , chainman);
16811685 } else if (command == " protxregister_evo" || command == " protxregister_fund_evo" || command == " protxregister_prepare_evo" || command == " protxregister_hpmn" || command == " protxregister_fund_hpmn" || command == " protxregister_prepare_hpmn" ) {
1682- return protx_register_evo (new_request, dmnman , chainman);
1686+ return protx_register_evo (new_request, chain_helper , chainman);
16831687 } else if (command == " protxregister_legacy" || command == " protxregister_fund_legacy" || command == " protxregister_prepare_legacy" ) {
1684- return protx_register_legacy (new_request, dmnman , chainman);
1688+ return protx_register_legacy (new_request, chain_helper , chainman);
16851689 } else if (command == " protxregister_submit" ) {
1686- return protx_register_submit (new_request, dmnman , chainman);
1690+ return protx_register_submit (new_request, chain_helper , chainman);
16871691 } else if (command == " protxupdate_service" ) {
1688- return protx_update_service_common_wrapper (new_request, dmnman, chainman, MnType::Regular);
1692+ return protx_update_service_common_wrapper (new_request, chain_helper, dmnman, chainman, MnType::Regular);
16891693 } else if (command == " protxupdate_service_evo" || command == " protxupdate_service_hpmn" ) {
1690- return protx_update_service_common_wrapper (new_request, dmnman, chainman, MnType::Evo);
1694+ return protx_update_service_common_wrapper (new_request, chain_helper, dmnman, chainman, MnType::Evo);
16911695 } else if (command == " protxupdate_registrar" ) {
1692- return protx_update_registrar (new_request, dmnman, chainman);
1696+ return protx_update_registrar (new_request, chain_helper, dmnman, chainman);
16931697 } else if (command == " protxupdate_registrar_legacy" ) {
1694- return protx_update_registrar_legacy (new_request, dmnman, chainman);
1698+ return protx_update_registrar_legacy (new_request, chain_helper, dmnman, chainman);
16951699 } else if (command == " protxrevoke" ) {
1696- return protx_revoke (new_request, dmnman, chainman);
1700+ return protx_revoke (new_request, chain_helper, dmnman, chainman);
16971701 } else
16981702#endif
16991703 if (command == " protxlist" ) {
0 commit comments