@@ -470,10 +470,10 @@ void CDeterministicMNList::AddMN(const CDeterministicMNCPtr& dmn, bool fBumpTota
470470 throw (std::runtime_error (strprintf (" %s: Can't add a masternode %s with a duplicate collateralOutpoint=%s" , __func__,
471471 dmn->proTxHash .ToString (), dmn->collateralOutpoint .ToStringShort ())));
472472 }
473- if (dmn->pdmnState ->addr != CService () && !AddUniqueProperty (*dmn, dmn->pdmnState ->addr )) {
473+ if (dmn->pdmnState ->netInfo . m_addr != CService () && !AddUniqueProperty (*dmn, dmn->pdmnState ->netInfo )) {
474474 mnUniquePropertyMap = mnUniquePropertyMapSaved;
475475 throw (std::runtime_error (strprintf (" %s: Can't add a masternode %s with a duplicate address=%s" , __func__,
476- dmn->proTxHash .ToString (), dmn->pdmnState ->addr .ToStringAddrPort ())));
476+ dmn->proTxHash .ToString (), dmn->pdmnState ->netInfo . m_addr .ToStringAddrPort ())));
477477 }
478478 if (!AddUniqueProperty (*dmn, dmn->pdmnState ->keyIDOwner )) {
479479 mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -511,10 +511,10 @@ void CDeterministicMNList::UpdateMN(const CDeterministicMN& oldDmn, const std::s
511511 // Using this temporary map as a checkpoint to roll back to in case of any issues.
512512 decltype (mnUniquePropertyMap) mnUniquePropertyMapSaved = mnUniquePropertyMap;
513513
514- if (!UpdateUniqueProperty (*dmn, oldState->addr , pdmnState->addr )) {
514+ if (!UpdateUniqueProperty (*dmn, oldState->netInfo , pdmnState->netInfo )) {
515515 mnUniquePropertyMap = mnUniquePropertyMapSaved;
516516 throw (std::runtime_error (strprintf (" %s: Can't update a masternode %s with a duplicate address=%s" , __func__,
517- oldDmn.proTxHash .ToString (), pdmnState->addr .ToStringAddrPort ())));
517+ oldDmn.proTxHash .ToString (), pdmnState->netInfo . m_addr .ToStringAddrPort ())));
518518 }
519519 if (!UpdateUniqueProperty (*dmn, oldState->keyIDOwner , pdmnState->keyIDOwner )) {
520520 mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -571,10 +571,10 @@ void CDeterministicMNList::RemoveMN(const uint256& proTxHash)
571571 throw (std::runtime_error (strprintf (" %s: Can't delete a masternode %s with a collateralOutpoint=%s" , __func__,
572572 proTxHash.ToString (), dmn->collateralOutpoint .ToStringShort ())));
573573 }
574- if (dmn->pdmnState ->addr != CService () && !DeleteUniqueProperty (*dmn, dmn->pdmnState ->addr )) {
574+ if (dmn->pdmnState ->netInfo . m_addr != CService () && !DeleteUniqueProperty (*dmn, dmn->pdmnState ->netInfo )) {
575575 mnUniquePropertyMap = mnUniquePropertyMapSaved;
576576 throw (std::runtime_error (strprintf (" %s: Can't delete a masternode %s with a address=%s" , __func__,
577- proTxHash.ToString (), dmn->pdmnState ->addr .ToStringAddrPort ())));
577+ proTxHash.ToString (), dmn->pdmnState ->netInfo . m_addr .ToStringAddrPort ())));
578578 }
579579 if (!DeleteUniqueProperty (*dmn, dmn->pdmnState ->keyIDOwner )) {
580580 mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -789,7 +789,7 @@ bool CDeterministicMNManager::BuildNewListFromBlock(const CBlock& block, gsl::no
789789 }
790790 }
791791
792- if (newList.HasUniqueProperty (proTx.addr )) {
792+ if (newList.HasUniqueProperty (proTx.netInfo )) {
793793 return state.Invalid (BlockValidationResult::BLOCK_CONSENSUS, " bad-protx-dup-addr" );
794794 }
795795 if (newList.HasUniqueProperty (proTx.keyIDOwner ) || newList.HasUniqueProperty (proTx.pubKeyOperator )) {
@@ -800,7 +800,7 @@ bool CDeterministicMNManager::BuildNewListFromBlock(const CBlock& block, gsl::no
800800
801801 auto dmnState = std::make_shared<CDeterministicMNState>(proTx);
802802 dmnState->nRegisteredHeight = nHeight;
803- if (proTx.addr == CService ()) {
803+ if (proTx.netInfo . m_addr == CService ()) {
804804 // start in banned pdmnState as we need to wait for a ProUpServTx
805805 dmnState->BanIfNotBanned (nHeight);
806806 }
@@ -818,7 +818,8 @@ bool CDeterministicMNManager::BuildNewListFromBlock(const CBlock& block, gsl::no
818818 return state.Invalid (BlockValidationResult::BLOCK_CONSENSUS, " bad-protx-payload" );
819819 }
820820
821- if (newList.HasUniqueProperty (opt_proTx->addr ) && newList.GetUniquePropertyMN (opt_proTx->addr )->proTxHash != opt_proTx->proTxHash ) {
821+ if (newList.HasUniqueProperty (opt_proTx->netInfo ) &&
822+ newList.GetUniquePropertyMN (opt_proTx->netInfo )->proTxHash != opt_proTx->proTxHash ) {
822823 return state.Invalid (BlockValidationResult::BLOCK_CONSENSUS, " bad-protx-dup-addr" );
823824 }
824825
@@ -834,7 +835,7 @@ bool CDeterministicMNManager::BuildNewListFromBlock(const CBlock& block, gsl::no
834835 }
835836
836837 auto newState = std::make_shared<CDeterministicMNState>(*dmn->pdmnState );
837- newState->addr = opt_proTx->addr ;
838+ newState->netInfo = opt_proTx->netInfo ;
838839 newState->scriptOperatorPayout = opt_proTx->scriptOperatorPayout ;
839840 if (opt_proTx->nType == MnType::Evo) {
840841 newState->platformNodeID = opt_proTx->platformNodeID ;
@@ -1177,24 +1178,25 @@ void CDeterministicMNManager::CleanupCache(int nHeight)
11771178template <typename ProTx>
11781179static bool CheckService (const ProTx& proTx, TxValidationState& state)
11791180{
1180- if (!proTx.addr .IsValid ()) {
1181+ const auto & addr{proTx.netInfo .m_addr };
1182+ if (!addr.IsValid ()) {
11811183 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-ipaddr" );
11821184 }
1183- if (Params ().RequireRoutableExternalIP () && !proTx. addr .IsRoutable ()) {
1185+ if (Params ().RequireRoutableExternalIP () && !addr.IsRoutable ()) {
11841186 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-ipaddr" );
11851187 }
11861188
11871189 // TODO: use real args here
11881190 static int mainnetDefaultPort = CreateChainParams (ArgsManager{}, CBaseChainParams::MAIN)->GetDefaultPort ();
11891191 if (Params ().NetworkIDString () == CBaseChainParams::MAIN) {
1190- if (proTx. addr .GetPort () != mainnetDefaultPort) {
1192+ if (addr.GetPort () != mainnetDefaultPort) {
11911193 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-ipaddr-port" );
11921194 }
1193- } else if (proTx. addr .GetPort () == mainnetDefaultPort) {
1195+ } else if (addr.GetPort () == mainnetDefaultPort) {
11941196 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-ipaddr-port" );
11951197 }
11961198
1197- if (!proTx. addr .IsIPv4 ()) {
1199+ if (!addr.IsIPv4 ()) {
11981200 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-ipaddr" );
11991201 }
12001202
@@ -1233,9 +1235,8 @@ static bool CheckPlatformFields(const ProTx& proTx, TxValidationState& state)
12331235 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-platform-http-port" );
12341236 }
12351237
1236- if (proTx.platformP2PPort == proTx.platformHTTPPort ||
1237- proTx.platformP2PPort == proTx.addr .GetPort () ||
1238- proTx.platformHTTPPort == proTx.addr .GetPort ()) {
1238+ if (proTx.platformP2PPort == proTx.platformHTTPPort || proTx.platformP2PPort == proTx.netInfo .m_addr .GetPort () ||
1239+ proTx.platformHTTPPort == proTx.netInfo .m_addr .GetPort ()) {
12391240 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-platform-dup-ports" );
12401241 }
12411242
@@ -1300,7 +1301,7 @@ bool CheckProRegTx(CDeterministicMNManager& dmnman, const CTransaction& tx, gsl:
13001301
13011302 // It's allowed to set addr to 0, which will put the MN into PoSe-banned state and require a ProUpServTx to be issues later
13021303 // If any of both is set, it must be valid however
1303- if (opt_ptx->addr != CService () && !CheckService (*opt_ptx, state)) {
1304+ if (opt_ptx->netInfo . m_addr != CService () && !CheckService (*opt_ptx, state)) {
13041305 // pass the state returned by the function above
13051306 return false ;
13061307 }
@@ -1360,7 +1361,8 @@ bool CheckProRegTx(CDeterministicMNManager& dmnman, const CTransaction& tx, gsl:
13601361 auto mnList = dmnman.GetListForBlock (pindexPrev);
13611362
13621363 // only allow reusing of addresses when it's for the same collateral (which replaces the old MN)
1363- if (mnList.HasUniqueProperty (opt_ptx->addr ) && mnList.GetUniquePropertyMN (opt_ptx->addr )->collateralOutpoint != collateralOutpoint) {
1364+ if (mnList.HasUniqueProperty (opt_ptx->netInfo ) &&
1365+ mnList.GetUniquePropertyMN (opt_ptx->netInfo )->collateralOutpoint != collateralOutpoint) {
13641366 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-dup-addr" );
13651367 }
13661368
@@ -1430,7 +1432,8 @@ bool CheckProUpServTx(CDeterministicMNManager& dmnman, const CTransaction& tx, g
14301432 }
14311433
14321434 // don't allow updating to addresses already used by other MNs
1433- if (mnList.HasUniqueProperty (opt_ptx->addr ) && mnList.GetUniquePropertyMN (opt_ptx->addr )->proTxHash != opt_ptx->proTxHash ) {
1435+ if (mnList.HasUniqueProperty (opt_ptx->netInfo ) &&
1436+ mnList.GetUniquePropertyMN (opt_ptx->netInfo )->proTxHash != opt_ptx->proTxHash ) {
14341437 return state.Invalid (TxValidationResult::TX_BAD_SPECIAL, " bad-protx-dup-addr" );
14351438 }
14361439
0 commit comments