CVerusHash::init();
CVerusHashV2::init();
CBlockHeader::SetVerusV2Hash();
- if (strcmp(ASSETCHAINS_SYMBOL,"VRSC") == 0)
+ if (IsVerusMainnetActive())
{
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV2, 310000);
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV3, 800200);
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV4, 800200);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5, 1053660);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5_1, 1053660);
}
- else if (strcmp(ASSETCHAINS_SYMBOL,"VRSCTEST") == 0)
+ else if (IsVerusActive())
{
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV2, 1);
- CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV3, 110);
- CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV4, 110);
- CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5, 2000);
- CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV6, 2000);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV3, 1);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV4, 1);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5, 1);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5_1, 1);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV6, 1);
}
else
{
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV3, 1);
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV4, 1);
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5, 1);
+ CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV5_1, 1);
CConstVerusSolutionVector::activationHeight.SetActivationHeight(CActivationHeight::SOLUTION_VERUSV6, 1);
}
}
// get default IDs and addresses
auto defaultIDDest = DecodeDestination(GetArg("-defaultid", ""));
VERUS_DEFAULTID = defaultIDDest.which() == COptCCParams::ADDRTYPE_ID ? CIdentityID(GetDestinationID(defaultIDDest)) : CIdentityID();
+ auto notaryIDDest = DecodeDestination(GetArg("-notaryid", ""));
+ VERUS_NOTARYID = notaryIDDest.which() == COptCCParams::ADDRTYPE_ID ? CIdentityID(GetDestinationID(notaryIDDest)) : CIdentityID();
+ auto nodeIDDest = DecodeDestination(GetArg("-nodeid", ""));
+ VERUS_NODEID = nodeIDDest.which() == COptCCParams::ADDRTYPE_ID ? GetDestinationID(nodeIDDest) : uint160();
VERUS_DEFAULT_ZADDR = GetArg("-cheatcatcher", "");
VERUS_DEFAULT_ZADDR = GetArg("-defaultzaddr", VERUS_DEFAULT_ZADDR);
+ MAX_OUR_UTXOS_ID_RESCAN = GetArg("-maxourutxosidrescan", MAX_OUR_UTXOS_ID_RESCAN);
+ MAX_UTXOS_ID_RESCAN = GetArg("-maxutxosidrescan", std::min(MAX_UTXOS_ID_RESCAN, MAX_OUR_UTXOS_ID_RESCAN));
+
// if we are supposed to catch stake cheaters, there must be a valid sapling parameter, we need it at
// initialization, and this is the first time we can get it. store the Sapling address here
extern boost::optional<libzcash::SaplingPaymentAddress> defaultSaplingDest;
{
}
}
- VERUS_PRIVATECHANGE = GetBoolArg("-privatechange", defaultSaplingDest == boost::none);
+ VERUS_PRIVATECHANGE = GetBoolArg("-privatechange", !GetArg("-defaultzaddr", VERUS_DEFAULT_ZADDR).empty());
// Sanity check
if (!InitSanityCheck())
}
}
- BOOST_FOREACH(const std::string& strDest, mapMultiArgs["-seednode"])
- AddOneShot(strDest);
+ for (auto &oneNode : ConnectedChains.defaultPeerNodes)
+ {
+ AddOneShot(oneNode.networkAddress);
+ }
#if ENABLE_ZMQ
pzmqNotificationInterface = CZMQNotificationInterface::CreateWithArguments(mapArgs);
bool checkval,fAddressIndex,fSpentIndex,fTimeStampIndex;
pblocktree = new CBlockTreeDB(nBlockTreeDBCache, false, fReindex, dbCompression, dbMaxOpenFiles);
- fAddressIndex = GetBoolArg("-addressindex", DEFAULT_ADDRESSINDEX);
+ fAddressIndex = true;
pblocktree->ReadFlag("addressindex", checkval);
if ( checkval != fAddressIndex )
{
fReindex = true;
}
- fSpentIndex = GetBoolArg("-spentindex", DEFAULT_SPENTINDEX);
+ fSpentIndex = true;
pblocktree->ReadFlag("spentindex", checkval);
if ( checkval != fSpentIndex )
{
fReindex = true;
}
- fTimeStampIndex = GetBoolArg("-timestampindex", fInsightExplorer ? fInsightExplorer : DEFAULT_TIMESTAMPINDEX);
+ fTimeStampIndex = GetBoolArg("-timestampindex", DEFAULT_TIMESTAMPINDEX);
pblocktree->ReadFlag("timestampindex", checkval);
if ( checkval != fTimeStampIndex )
{
break;
}
KOMODO_LOADINGBLOCKS = 0;
+
// Check for changed -txindex state
- if (fTxIndex != GetBoolArg("-txindex", true)) {
+ if (!fReindex && fTxIndex != GetBoolArg("-txindex", true)) {
strLoadError = _("You need to rebuild the database using -reindex to change -txindex");
break;
}
// Check for changed -insightexplorer state
- if (fInsightExplorer != GetBoolArg("-insightexplorer", false)) {
+ if (!fReindex && fInsightExplorer != GetBoolArg("-insightexplorer", DEFAULT_INSIGHTEXPLORER) ) {
strLoadError = _("You need to rebuild the database using -reindex to change -insightexplorer");
break;
}
// Check for changed -prune state. What we are concerned about is a user who has pruned blocks
// in the past, but is now trying to run unpruned.
- if (fHavePruned && !fPruneMode) {
+ if (!fReindex && fHavePruned && !fPruneMode) {
strLoadError = _("You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain");
break;
}
if (clearWitnessCaches || GetBoolArg("-rescan", false))
{
pwalletMain->ClearNoteWitnessCache();
- // zap and rescan clears IDs
- if (GetArg("-zapwallettxes", false))
- {
- pwalletMain->ClearIdentities();
- }
pindexRescan = chainActive.Genesis();
}
else
#ifdef ENABLE_MINING
#ifndef ENABLE_WALLET
if (GetBoolArg("-minetolocalwallet", false)) {
- return InitError(_("Zcash was not built with wallet support. Set -minetolocalwallet=0 to use -mineraddress, or rebuild Zcash with wallet support."));
+ return InitError(_("Verus was not built with wallet support. Set -minetolocalwallet=0 to use -mineraddress, or rebuild Verus with wallet support."));
}
if (GetArg("-mineraddress", "").empty() && GetBoolArg("-gen", false)) {
- return InitError(_("Zcash was not built with wallet support. Set -mineraddress, or rebuild Zcash with wallet support."));
+ return InitError(_("Verus was not built with wallet support. Set -mineraddress, or rebuild Verus with wallet support."));
}
#endif // !ENABLE_WALLET
if (pwalletMain) {
// Address has already been validated
CTxDestination addr = DecodeDestination(mapArgs["-mineraddress"]);
- CKeyID keyID = boost::get<CKeyID>(addr);
- minerAddressInLocalWallet = pwalletMain->HaveKey(keyID);
+ if (addr.which() == COptCCParams::ADDRTYPE_ID)
+ {
+ std::pair<CIdentityMapKey, CIdentityMapValue> keyAndIdentity;
+ minerAddressInLocalWallet = pwalletMain->GetIdentity(GetDestinationID(addr), keyAndIdentity) &&
+ keyAndIdentity.first.CanSpend();
+ }
+ else
+ {
+ CKeyID keyID = boost::get<CKeyID>(addr);
+ minerAddressInLocalWallet = pwalletMain->HaveKey(keyID);
+ }
}
if (GetBoolArg("-minetolocalwallet", true) && !minerAddressInLocalWallet) {
return InitError(_("-mineraddress is not in the local wallet. Either use a local address, or set -minetolocalwallet=0"));