8
8
#include < consensus/validation.h>
9
9
#include < core_io.h>
10
10
#include < deploymentstatus.h>
11
+ #include < evo/chainhelper.h>
11
12
#include < evo/deterministicmns.h>
12
13
#include < evo/dmn_types.h>
13
14
#include < evo/providertx.h>
@@ -324,13 +325,13 @@ static void SignSpecialTxPayloadByHash(const CMutableTransaction& tx, SpecialTxP
324
325
payload.sig = key.Sign (hash);
325
326
}
326
327
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 )
328
329
{
329
330
{
330
331
LOCK (cs_main);
331
332
332
333
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)) {
334
335
throw std::runtime_error (state.ToString ());
335
336
}
336
337
} // cs_main
@@ -579,7 +580,7 @@ static void protx_register_prepare_evo_help(const JSONRPCRequest& request)
579
580
}
580
581
581
582
static UniValue protx_register_common_wrapper (const JSONRPCRequest& request,
582
- CDeterministicMNManager& dmnman ,
583
+ CChainstateHelper& chain_helper ,
583
584
const ChainstateManager& chainman,
584
585
const bool specific_legacy_bls_scheme,
585
586
const bool isExternalRegister,
@@ -739,7 +740,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
739
740
ptx.collateralOutpoint .n = collateralIndex;
740
741
741
742
SetTxPayload (tx, ptx);
742
- return SignAndSendSpecialTx (request, dmnman , chainman, tx, fSubmit );
743
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx, fSubmit );
743
744
} else {
744
745
// referencing external collateral
745
746
@@ -787,7 +788,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
787
788
}
788
789
SignSpecialTxPayloadByString (tx, ptx, key);
789
790
SetTxPayload (tx, ptx);
790
- return SignAndSendSpecialTx (request, dmnman , chainman, tx, fSubmit );
791
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx, fSubmit );
791
792
}
792
793
} catch (...) {
793
794
if (unlockOnError) {
@@ -798,7 +799,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
798
799
}
799
800
}
800
801
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)
802
803
{
803
804
bool isExternalRegister = request.strMethod == " protxregister_evo" ;
804
805
bool isFundRegister = request.strMethod == " protxregister_fund_evo" ;
@@ -811,26 +812,26 @@ static UniValue protx_register_evo(const JSONRPCRequest& request, CDeterministic
811
812
isFundRegister = request.strMethod == " protxregister_fund_hpmn" ;
812
813
isPrepareRegister = request.strMethod == " protxregister_prepare_hpmn" ;
813
814
}
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);
815
816
}
816
817
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)
818
819
{
819
820
bool isExternalRegister = request.strMethod == " protxregister" ;
820
821
bool isFundRegister = request.strMethod == " protxregister_fund" ;
821
822
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);
823
824
}
824
825
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)
826
827
{
827
828
bool isExternalRegister = request.strMethod == " protxregister_legacy" ;
828
829
bool isFundRegister = request.strMethod == " protxregister_fund_legacy" ;
829
830
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);
831
832
}
832
833
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)
834
835
{
835
836
protx_register_submit_help (request);
836
837
@@ -863,7 +864,7 @@ static UniValue protx_register_submit(const JSONRPCRequest& request, CDeterminis
863
864
}
864
865
865
866
SetTxPayload (tx, ptx);
866
- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
867
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
867
868
}
868
869
869
870
static void protx_update_service_help (const JSONRPCRequest& request)
@@ -914,7 +915,7 @@ static void protx_update_service_evo_help(const JSONRPCRequest& request)
914
915
}.Check (request);
915
916
}
916
917
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)
918
919
{
919
920
if (request.strMethod .find (" _hpmn" ) != std::string::npos) {
920
921
if (!IsDeprecatedRPCEnabled (" hpmn" )) {
@@ -1026,7 +1027,7 @@ static UniValue protx_update_service_common_wrapper(const JSONRPCRequest& reques
1026
1027
SignSpecialTxPayloadByHash (tx, ptx, keyOperator);
1027
1028
SetTxPayload (tx, ptx);
1028
1029
1029
- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1030
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
1030
1031
}
1031
1032
1032
1033
static 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
1056
1057
}.Check (request);
1057
1058
}
1058
1059
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)
1060
1061
{
1061
1062
protx_update_registrar_help (request, specific_legacy_bls_scheme);
1062
1063
@@ -1131,17 +1132,17 @@ static UniValue protx_update_registrar_wrapper(const JSONRPCRequest& request, CD
1131
1132
SignSpecialTxPayloadByHash (tx, ptx, keyOwner);
1132
1133
SetTxPayload (tx, ptx);
1133
1134
1134
- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1135
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
1135
1136
}
1136
1137
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)
1138
1139
{
1139
- return protx_update_registrar_wrapper (request, dmnman, chainman, false );
1140
+ return protx_update_registrar_wrapper (request, chain_helper, dmnman, chainman, false );
1140
1141
}
1141
1142
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)
1143
1144
{
1144
- return protx_update_registrar_wrapper (request, dmnman, chainman, true );
1145
+ return protx_update_registrar_wrapper (request, chain_helper, dmnman, chainman, true );
1145
1146
}
1146
1147
1147
1148
static void protx_revoke_help (const JSONRPCRequest& request)
@@ -1167,7 +1168,7 @@ static void protx_revoke_help(const JSONRPCRequest& request)
1167
1168
}.Check (request);
1168
1169
}
1169
1170
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)
1171
1172
{
1172
1173
protx_revoke_help (request);
1173
1174
@@ -1227,7 +1228,7 @@ static UniValue protx_revoke(const JSONRPCRequest& request, CDeterministicMNMana
1227
1228
SignSpecialTxPayloadByHash (tx, ptx, keyOperator);
1228
1229
SetTxPayload (tx, ptx);
1229
1230
1230
- return SignAndSendSpecialTx (request, dmnman , chainman, tx);
1231
+ return SignAndSendSpecialTx (request, chain_helper , chainman, tx);
1231
1232
}
1232
1233
1233
1234
#endif // ENABLE_WALLET
@@ -1676,24 +1677,27 @@ static UniValue protx(const JSONRPCRequest& request)
1676
1677
CMasternodeMetaMan& mn_metaman = *node.mn_metaman ;
1677
1678
1678
1679
#ifdef ENABLE_WALLET
1680
+ CHECK_NONFATAL (node.chain_helper );
1681
+ CChainstateHelper& chain_helper = *node.chain_helper ;
1682
+
1679
1683
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);
1681
1685
} 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);
1683
1687
} 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);
1685
1689
} else if (command == " protxregister_submit" ) {
1686
- return protx_register_submit (new_request, dmnman , chainman);
1690
+ return protx_register_submit (new_request, chain_helper , chainman);
1687
1691
} 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);
1689
1693
} 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);
1691
1695
} 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);
1693
1697
} 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);
1695
1699
} else if (command == " protxrevoke" ) {
1696
- return protx_revoke (new_request, dmnman, chainman);
1700
+ return protx_revoke (new_request, chain_helper, dmnman, chainman);
1697
1701
} else
1698
1702
#endif
1699
1703
if (command == " protxlist" ) {
0 commit comments