From 01f15a8fb8e97e961e15ca9590405f1f6a214f70 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Mon, 7 Aug 2023 15:21:55 +0200 Subject: [PATCH 1/8] Only allow integers in the GUI for autocombine threshold --- .../settings/forms/settingswalletoptionswidget.ui | 2 +- .../pivx/settings/settingswalletoptionswidget.cpp | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui index 1bbea14e9..1d6ef6662 100644 --- a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui +++ b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui @@ -167,7 +167,7 @@ - 8 + 0 0 diff --git a/src/qt/pivx/settings/settingswalletoptionswidget.cpp b/src/qt/pivx/settings/settingswalletoptionswidget.cpp index 284745db7..11ae7e8b4 100644 --- a/src/qt/pivx/settings/settingswalletoptionswidget.cpp +++ b/src/qt/pivx/settings/settingswalletoptionswidget.cpp @@ -100,20 +100,23 @@ void SettingsWalletOptionsWidget::setSpinBoxStakeSplitThreshold(double val) void SettingsWalletOptionsWidget::onSpinBoxStakeSplitThresholdChanged() { - if (ui->spinBoxStakeSplitThreshold->value() > 0) { - if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2) { - ui->spinBoxAutoCombineThreshold->setValue(ui->spinBoxStakeSplitThreshold->value() * 2 - 1); + if (ui->spinBoxStakeSplitThreshold->value() > 1) { + if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } } } void SettingsWalletOptionsWidget::onSpinBoxAutoCombineThresholdChanged() { - if (ui->spinBoxStakeSplitThreshold->value() > 0) { - if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2) { - ui->spinBoxAutoCombineThreshold->setValue(ui->spinBoxStakeSplitThreshold->value() * 2 - 1); + if (ui->spinBoxStakeSplitThreshold->value() > 1) { + if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } } + + // Enforce only integers. + ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxAutoCombineThreshold->value())); } void SettingsWalletOptionsWidget::onAutoCombineCheckboxStateChanged() From bd5858044a77836078f37bbfc3793caa205c425e Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Mon, 7 Aug 2023 15:39:00 +0200 Subject: [PATCH 2/8] Enforce a minimum of 1 in the GUI for autocombine threshold --- src/qt/pivx/settings/forms/settingswalletoptionswidget.ui | 2 +- src/qt/pivx/settings/settingswalletoptionswidget.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui index 1d6ef6662..4df7a8f89 100644 --- a/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui +++ b/src/qt/pivx/settings/forms/settingswalletoptionswidget.ui @@ -170,7 +170,7 @@ 0 - 0 + 1 999999 diff --git a/src/qt/pivx/settings/settingswalletoptionswidget.cpp b/src/qt/pivx/settings/settingswalletoptionswidget.cpp index 11ae7e8b4..f802ad77e 100644 --- a/src/qt/pivx/settings/settingswalletoptionswidget.cpp +++ b/src/qt/pivx/settings/settingswalletoptionswidget.cpp @@ -104,6 +104,8 @@ void SettingsWalletOptionsWidget::onSpinBoxStakeSplitThresholdChanged() if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } + } else { + ui->spinBoxAutoCombineThreshold->setValue(1); } } @@ -113,6 +115,8 @@ void SettingsWalletOptionsWidget::onSpinBoxAutoCombineThresholdChanged() if (ui->spinBoxAutoCombineThreshold->value() >= ui->spinBoxStakeSplitThreshold->value() * 2 - 1) { ui->spinBoxAutoCombineThreshold->setValue(floor(ui->spinBoxStakeSplitThreshold->value() * 2 - 1)); } + } else { + ui->spinBoxAutoCombineThreshold->setValue(1); } // Enforce only integers. From a0f9a0ed046361b4d61217d4985eb18509d012a6 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Mon, 7 Aug 2023 16:49:12 +0200 Subject: [PATCH 3/8] Make sure setautocombinerewards only allows integers --- src/wallet/rpcwallet.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index a1961144f..c0ba3f707 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -2969,7 +2969,7 @@ UniValue setautocombinethreshold(const JSONRPCRequest& request) "}\n" "\nExamples:\n" + - HelpExampleCli("setautocombinethreshold", "true 500.12") + HelpExampleRpc("setautocombinethreshold", "true, 500.12")); + HelpExampleCli("setautocombinethreshold", "true 500") + HelpExampleRpc("setautocombinethreshold", "true, 500")); RPCTypeCheck(request.params, {UniValue::VBOOL, UniValue::VNUM}); @@ -2983,6 +2983,8 @@ UniValue setautocombinethreshold(const JSONRPCRequest& request) nThreshold = AmountFromValue(request.params[1]); if (nThreshold < COIN) throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("The threshold value cannot be less than %s", FormatMoney(COIN))); + if (nThreshold % COIN != 0) + throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("The threshold value must be an integer")); } CWalletDB walletdb(pwalletMain->strWalletFile); From 0edee622271e43517c3967440254178fc5f848b5 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Mon, 7 Aug 2023 21:33:32 +0200 Subject: [PATCH 4/8] Distinguish between old and new wallets in AutoCombineDust --- src/wallet/wallet.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index c400b67cc..88a5802b5 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3242,7 +3242,13 @@ void CWallet::AutoCombineDust(CConnman* connman) return; } - std::map > mapCoinsByAddress = AvailableCoinsByAddress(true, nAutoCombineThreshold * COIN); + // Make sure we don't break the settings saved in the old wallets where the autocombine threshold was saved incorrectly. + CAmount adjustedAutoCombineThreshold = nAutoCombineThreshold; + if (nAutoCombineThreshold < COIN) { + adjustedAutoCombineThreshold = nAutoCombineThreshold * COIN; + } + + std::map > mapCoinsByAddress = AvailableCoinsByAddress(true, adjustedAutoCombineThreshold); //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address for (std::map >::iterator it = mapCoinsByAddress.begin(); it != mapCoinsByAddress.end(); it++) { @@ -3270,7 +3276,7 @@ void CWallet::AutoCombineDust(CConnman* connman) nTotalRewardsValue += out.Value(); // Combine to the threshold and not way above - if (nTotalRewardsValue > nAutoCombineThreshold * COIN) + if (nTotalRewardsValue > adjustedAutoCombineThreshold) break; // Around 180 bytes per input. We use 190 to be certain @@ -3317,7 +3323,7 @@ void CWallet::AutoCombineDust(CConnman* connman) } //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees - if (!maxSize && nTotalRewardsValue < nAutoCombineThreshold * COIN && nFeeRet > 0) + if (!maxSize && nTotalRewardsValue < adjustedAutoCombineThreshold && nFeeRet > 0) continue; const CWallet::CommitResult& res = CommitTransaction(wtx, keyChange, connman); From 8d5dabdcd0b7b79a032fc611b0dae5b01ca69edd Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Mon, 7 Aug 2023 21:34:21 +0200 Subject: [PATCH 5/8] Remove trailing whitespace in some files --- src/wallet/rpcwallet.cpp | 20 ++++++++++---------- src/wallet/wallet.cpp | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index c0ba3f707..1d912f241 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1019,7 +1019,7 @@ UniValue getbalance(const JSONRPCRequest& request) " To use this deprecated argument, start __decenomy__d with -deprecatedrpc=accounts. Only include transactions confirmed at least this many times.\n" "3. includeWatchonly (bool, optional, default=false) DEPRECATED. This argument will be removed in v5.0.\n" " To use this deprecated argument, start __decenomy__d with -deprecatedrpc=accounts. Also include balance in watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "amount (numeric) The total amount in __DSW__ received for this account.\n" @@ -1045,7 +1045,7 @@ UniValue getbalance(const JSONRPCRequest& request) isminefilter filter = ISMINE_SPENDABLE; if (request.params.size() > 2 && request.params[2].get_bool()) filter = filter | ISMINE_WATCH_ONLY; - + return ValueFromAmount(pwalletMain->GetLegacyBalance(filter, nMinDepth, account)); } @@ -1172,7 +1172,7 @@ UniValue sendfrom(const JSONRPCRequest& request) "6. \"comment-to\" (string, optional) An optional comment to store the name of the person or organization \n" " to which you're sending the transaction. This is not part of the transaction, \n" " it is just kept in your wallet.\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id.\n" @@ -1203,7 +1203,7 @@ UniValue sendfrom(const JSONRPCRequest& request) wtx.mapValue["to"] = request.params[5].get_str(); isminefilter filter = ISMINE_SPENDABLE; - + EnsureWalletIsUnlocked(); // Check funds @@ -1236,7 +1236,7 @@ UniValue sendmany(const JSONRPCRequest& request) " }\n" "3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n" "4. \"comment\" (string, optional) A comment\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id for the send. Only 1 transaction is created regardless of \n" " the number of addresses.\n" @@ -1263,7 +1263,7 @@ UniValue sendmany(const JSONRPCRequest& request) " }\n" "3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n" "4. \"comment\" (string, optional) A comment\n" - + "\nResult:\n" "\"transactionid\" (string) The transaction id for the send. Only 1 transaction is created regardless of \n" " the number of addresses.\n" @@ -1320,7 +1320,7 @@ UniValue sendmany(const JSONRPCRequest& request) } isminefilter filter = ISMINE_SPENDABLE; - + EnsureWalletIsUnlocked(); // Check funds @@ -1732,7 +1732,7 @@ UniValue listtransactions(const JSONRPCRequest& request) "2. count (numeric, optional, default=10) The number of transactions to return\n" "3. from (numeric, optional, default=0) The number of transactions to skip\n" "4. includeWatchonly (bool, optional, default=false) Include transactions to watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "[\n" " {\n" @@ -1783,7 +1783,7 @@ UniValue listtransactions(const JSONRPCRequest& request) "2. count (numeric, optional, default=10) The number of transactions to return\n" "3. from (numeric, optional, default=0) The number of transactions to skip\n" "4. includeWatchonly (bool, optional, default=false) Include transactions to watchonly addresses (see 'importaddress')\n" - + "\nResult:\n" "[\n" " {\n" @@ -1852,7 +1852,7 @@ UniValue listtransactions(const JSONRPCRequest& request) isminefilter filter = ISMINE_SPENDABLE; if ( request.params.size() > 3 && request.params[3].get_bool() ) filter = filter | ISMINE_WATCH_ONLY; - + if (nCount < 0) throw JSONRPCError(RPC_INVALID_PARAMETER, "Negative count"); if (nFrom < 0) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 88a5802b5..2120658b2 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1651,9 +1651,9 @@ CAmount CWallet::GetStakingBalance() const { return std::max(CAmount(0), loopTxsBalance( [](const uint256& id, const CWalletTx& pcoin, CAmount& nTotal) { - if (pcoin.IsTrusted() && - pcoin.GetDepthInMainChain() - >= + if (pcoin.IsTrusted() && + pcoin.GetDepthInMainChain() + >= (Params().GetConsensus().NetworkUpgradeActive(chainActive.Height(), Consensus::UPGRADE_STAKE_MIN_DEPTH_V2) ? Params().GetConsensus().nStakeMinDepthV2 : Params().GetConsensus().nStakeMinDepth) ) { @@ -1810,7 +1810,7 @@ bool CWallet::GetMasternodeVinAndKeys(CTxIn& txinRet, CPubKey& pubKeyRet, CKey& CTxOut txOut = wtx.vout[nOutputIndex]; // Masternode collateral value - if (!CMasternode::CheckMasternodeCollateral(txOut.nValue)) + if (!CMasternode::CheckMasternodeCollateral(txOut.nValue)) { strError = "Invalid collateral tx value"; return error("%s: tx %s, index %d not a masternode collateral", __func__, strTxHash, nOutputIndex); @@ -1863,7 +1863,7 @@ bool CWallet::AvailableCoins(std::vector* pCoins, // --> populates { if (pCoins) pCoins->clear(); const bool fCoinsSelected = (coinControl != nullptr) && coinControl->HasSelected(); - + { LOCK2(cs_main, cs_wallet); for (std::map::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) { @@ -1876,9 +1876,9 @@ bool CWallet::AvailableCoins(std::vector* pCoins, // --> populates continue; // Check min depth requirement for stake inputs - if (nCoinType == STAKEABLE_COINS && - nDepth - < + if (nCoinType == STAKEABLE_COINS && + nDepth + < (Params().GetConsensus().NetworkUpgradeActive(chainActive.Height(), Consensus::UPGRADE_STAKE_MIN_DEPTH_V2) ? Params().GetConsensus().nStakeMinDepthV2 : Params().GetConsensus().nStakeMinDepth)) continue; @@ -2503,7 +2503,7 @@ bool CWallet::CreateCoinStake( if (WITH_LOCK(cs_main, return chainActive.Height()) != pindexPrev->nHeight) return false; // Make sure the wallet is unlocked and shutdown hasn't been requested - if (IsLocked() || ShutdownRequested()) return false; + if (IsLocked() || ShutdownRequested()) return false; nCredit = 0; @@ -2623,7 +2623,7 @@ CWallet::CommitResult CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& AddToWallet(wtxNew); // Notify that old coins are spent - + std::set updated_hashes; for (const CTxIn& txin : wtxNew.vin) { // notify only once From 98a2a0e7fbc1ecb1814f5a11cff6d44f4fbebd80 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Wed, 9 Aug 2023 12:43:21 +0200 Subject: [PATCH 6/8] Remove redundant transaction size check --- src/wallet/wallet.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 2120658b2..277a172be 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3253,7 +3253,6 @@ void CWallet::AutoCombineDust(CConnman* connman) //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address for (std::map >::iterator it = mapCoinsByAddress.begin(); it != mapCoinsByAddress.end(); it++) { std::vector vCoins, vRewardCoins; - bool maxSize = false; vCoins = it->second; // We don't want the tx to be refused for being too large @@ -3282,7 +3281,6 @@ void CWallet::AutoCombineDust(CConnman* connman) // Around 180 bytes per input. We use 190 to be certain txSizeEstimate += 190; if (txSizeEstimate >= MAX_STANDARD_TX_SIZE - 200) { - maxSize = true; break; } } @@ -3323,7 +3321,7 @@ void CWallet::AutoCombineDust(CConnman* connman) } //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees - if (!maxSize && nTotalRewardsValue < adjustedAutoCombineThreshold && nFeeRet > 0) + if (nTotalRewardsValue < adjustedAutoCombineThreshold && nFeeRet > 0) continue; const CWallet::CommitResult& res = CommitTransaction(wtx, keyChange, connman); From e1017e24ad622cb871652ec05085b712f5c21408 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Sat, 26 Aug 2023 05:56:34 +0200 Subject: [PATCH 7/8] Update checkpoints --- src/chainparams.cpp | 206 ++++++++++++++++++++++---------------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 548e7deea..858bed5e7 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -70,114 +70,114 @@ static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits static Checkpoints::MapCheckpoints mapCheckpoints = boost::assign::map_list_of (0, uint256S("0000086d20056b2feb29fb638fe1086ac017b481bf52f0cc1cca297385a91f44")) - (20322, uint256S("53c670b3927ecd566f005589344cffeb3ed61e785994d228ae11e146c7fbbf40")) - (40645, uint256S("6ca3d452234cf9a25a37f8d3d86631a126097a76122c2d43014d59120f409953")) - (60968, uint256S("4fa565f74306e0616980c0bb1baca19a0070e0460f58356eed1a29d58834e6c7")) - (81291, uint256S("6e5667acd0ae9f921b54b0942bb082052fe0aef25e5cc978048241badb843f0c")) - (101614, uint256S("8fdffe3171696639c8b5fd0ebed79cd065e36f93fcb7ded62260a71a4e2778b3")) - (121937, uint256S("b37ad38676e809cdcdb9bbad84148e66c20c44337d07592182b970ed64c1aa00")) - (142260, uint256S("f4075eb573d5252982780f5bbf35eaea19b12bb588d9372ded2b22dfe884c01e")) - (162583, uint256S("3fa18d4cf3124c02bc5ed09f79e05c7436dc186181a3d13e6903aed9802a1bed")) - (182906, uint256S("db91085b6f5750fd2d7763586ac8d44e344a52426f0c75a97f61c0dad46ef2bf")) - (203229, uint256S("1187f82f0a542e99867db80f6452408f1747f8ce53e84a1c169d7d26ad02ee9f")) - (223552, uint256S("2fde3c25c6032b83ed8893942ac58c2bfec4d5703713408c2789b6e4c5182ca7")) - (243875, uint256S("d085dc21e3a8fb69ae41a5ffaa9125191891fc64bbd7624298c960e0cef78736")) - (264198, uint256S("14895ff69df5b9b51371a7e74b7b64184d339ccd3f4291692e216b64de570adc")) - (284521, uint256S("e60e4d90cced0f7d0572740aa7653a96370a06341fd695d6fb601d55b14dab2b")) - (304844, uint256S("922dac364137b440240443f2f6865aac1beff042aa24156917a0b4c12458da06")) - (325167, uint256S("9cb853fa4094e773d873c2f528efd499aec3d32facb56ed9c42822d9066ae254")) - (345490, uint256S("07a1f0eb40e11c38f93e537bc134be499ca73df51477f566f41c49eb42260aea")) - (365813, uint256S("a56a3735683f7d5a89f675b9b07718dbb3dd55656cd9d18584955b84c6a2e46b")) - (386136, uint256S("aa4b351062e66db34a52076fd89829c9350e81bbe15035899d95f0b11695caa0")) - (406459, uint256S("b3fb1781c3d74b52faa7ac5c6b4b6c406b0995a7c323c0cc9c9dd2e6207cdbce")) - (426782, uint256S("f0030657b432e26bca91e43cc6f1054ee707dea87d4a59e319ee7f54468ac4ff")) - (447105, uint256S("0e85fcb3ed148599387094118ea9c086505ea5c6d35b7ac8245a2256a17cf28d")) - (467428, uint256S("9f46c58bac482f57586e36f9f5a53f87f1500990fe08d4b2a532eba81b13ffe7")) - (487751, uint256S("6ea2d39eb60f00a1bfc114c38e6367b8d27ab77f871e34309303c905f238b4c6")) - (508074, uint256S("357a1f515318939f5e0f6b0dda9c0a31be29e571a64328c01566d0f2f44f1b1e")) - (528397, uint256S("84c18a440b1ecc73de41fc32bbfa34fe3f6eece4c8035f5d04bca42f4708b78f")) - (548720, uint256S("fdeaff86c803594400d3cad5fc4a959fa2af2e3557d8cfdf896e29fecfa22c2d")) - (569043, uint256S("412cd12de10d0963a4da00708453d7b759f52848b3b61b4c04e74c730bd4e1f9")) - (589366, uint256S("264f051c1d4f79f47afe7c0fc48f702637a7dcf81513788775f707e47e948369")) - (609689, uint256S("226b0938adbd8e2ae48c92ea3562e22061c6673759559af24a3280f8583fe425")) - (630012, uint256S("e3988aefe3ff40a419b39741c4bb1aba7980b3ac654d4d06219dae53deb9b0fd")) - (650335, uint256S("b983e958326f002b7cf5b9129dcf3033e784460a7fa54ff6534d77e0080a514e")) - (670658, uint256S("6655abaef8804da36da66a7cd5fd74e05cbd3bf90faeeae57ec59e355bc651cd")) - (690981, uint256S("3bc1d2955a4cd13f69d276645c3dee2b9597db1de05f2d0c4baf337ccbd725d5")) - (711304, uint256S("9362cc8558e2f3ff36173bdf7416bfca995b36b0a4f1988b6550b361901a9f99")) - (731627, uint256S("106498330e458b2d6d239a4aad9667abcda4f2eda8726c40143a580751748ff6")) - (751950, uint256S("537057d44e96f0e9ec0c8756f05d33b047630744725dab9882bb45da1e43dd75")) - (772273, uint256S("8f82bc38ec85913acb847137c6910119cd6eccc31e4345f1d5877ad1c0c02e6d")) - (792596, uint256S("00421209cfe4eb6283b322c404ed3754ac070fb07d2bc576d77035a67c84b6ef")) - (812919, uint256S("1e128ff83cdee782d8e9cedd775f449b786506d3bd6665b2882fc2bc6e7a0e7f")) - (833242, uint256S("6564495a99654ffad9c19342378f8263e478749ebe5cda189b1ac7e24d493a94")) - (853565, uint256S("23e9009d9f645451a6980d5a213e79f88ac173f001f922b990bbfd4771a6bcd5")) - (873888, uint256S("7d647e58b6fe707c067005ae1818ddb2abf219da8d8182aaccd7705f5863c5dd")) - (894211, uint256S("40ad09e7a023161a44ed974c7acd5098461c4cb35f42ee65f4c23f842f448116")) - (914534, uint256S("4d7439cfd160423d66a0b7b886ad32db06d4787477da17b8c58f58b6c1674507")) - (934857, uint256S("29dd7cfbe2235c85d4fdaf601217736ac941f40a3f1c8c4ce75b2cc900554b7f")) - (955180, uint256S("07ba7874fba520db0f5a9f0c8166339c8c6c3f6b91cd0ec7d08e684a0371d7de")) - (975503, uint256S("6a86ee167f59a51a8c8a1c6a76781bbd6d6be251ca3f878ab2735c903670c7ac")) - (995826, uint256S("862cbc6a69bca6433e966cef3931a721543fa7e99bf70bfa69f64aa648506694")) - (1016149, uint256S("a6613aa7459a9b234920eaa7a265a58d3cf0e0b10145e6872390558d1032d818")) - (1036472, uint256S("56109e3ae65d7fe4be7d2bc68ffe098afdfb2069be354e30d6bbd7960eb12cac")) - (1056795, uint256S("9916ad9f2d2ad9d584b919594ea504c4ed16f455c7b9dadfecb95a52da1cb97f")) - (1077118, uint256S("8a868740069485d70e812b175ee7074dba59e39e2825c3ae29c31c565b33e442")) - (1097441, uint256S("78871835aebf064765ec045d312c566c9280431fc53afc5c968cf97498d9d1c7")) - (1117764, uint256S("f1714ae88e86ec4a0dfe07f2dad55e8af6f5dc2564d4c52809eb1b38a31434c1")) - (1138087, uint256S("235fbea7fd7a31af64151624ca900906a94f1d37a67381e2c94f2fd7eb039c0b")) - (1158410, uint256S("7478b75e58d4dc8c70667b5f5b0a6460dc6753c75de67fb5e1bb91575003af24")) - (1178733, uint256S("31e824bb880e36f2d461473810706d7dac1d0097b45e6a04936b400748ff8367")) - (1199056, uint256S("4c9b365fed2d2667a1d7c8b21ff65c01f169d96d4d57ab8590caf7453f63c79d")) - (1219379, uint256S("83521b7054b48b67af1c88c93ae58afbfe1ab85a7f3963372ccf2cbbefae28d7")) - (1239702, uint256S("e583bd13b01ae27f4eb925f418f9a89ff024e139392017c5282504c1698e3b8d")) - (1260025, uint256S("539edd649861d7085d79c524ef8438411bc9da08289698c9f17926dd12f88ee9")) - (1280348, uint256S("8f6a661cf29571cbbcbcce3183195440d689504f128bfc88a9c7e52ae9daa4f0")) - (1300671, uint256S("34b021e40ca5f4e270bf041a62ba54dc22968d32c0b7dbeff760a4dcd1a4fd38")) - (1320994, uint256S("44bd5fe1b5be28d803c0cc37b04a4623ad698abde1b3597133a77905d469a24c")) - (1341317, uint256S("34597bbf9a82b5e13cbb94f729619f756c0ed563307c56f4bdc7538c701e4fde")) - (1361640, uint256S("58e4b59d6a24e69a3baf2d888ee48e6790c74001ef3eeb3be877a15a8fb9d982")) - (1381963, uint256S("8b20548fffca83ab8e23d866ec799af222cc6058ce642abaadbf19bf57d44e75")) - (1402286, uint256S("66ab7b514d60b1a7ff890a5d82f124a97ce272838d766275b1fb0b68fc9ae163")) - (1422609, uint256S("b4a5794a95e35845c132223b6a70ed381cca467566fad0d4d3d8d32dd179efee")) - (1442932, uint256S("694a193a7da43b51be2d8092409db2b7021d355c10e810a9b89f23de533ed210")) - (1463255, uint256S("ce6ffd69b7452fc76fd9d96fca486eb4825f50974e6349a876a4b10351bde3a6")) - (1483578, uint256S("8fc9114d76a158a483b665edad42f547b81ee031a321e04cdfd695a74c28e774")) - (1503901, uint256S("dbb9fa45950986ddac9e4be9e4d3c720a13f3db1a23beff8e936a69b4b0a4fff")) - (1524224, uint256S("47295e00161f36f4be03c842d39803f104f03601e5eb8d11777e2df70e25e401")) - (1544547, uint256S("e2ec8516db3293c0203bb3785db419086a34efebb0ceff39691fceddf884c757")) - (1564870, uint256S("c6576209b527f427f5aa6a79abcf6635d8f87ed54b71559be2c16e057865f60f")) - (1585193, uint256S("41c9b2ee4b3df0d648f7890bc36f397c8f3aca64d7f794c51abaa04f5ee45491")) - (1605516, uint256S("1946f10d33dc6a7e299fced22709ad4ffd078ef67c29cb53df5147baaea211c5")) - (1625839, uint256S("a6a6a3a79ecf591b89135d7598f9941be69d1e7640e54d5ba5e8f036605ada5e")) - (1646162, uint256S("fa3a9a828afff39299b9a831d90c9201ace9c4c6b0903e95f708ba845aab325c")) - (1666485, uint256S("ae1d4d808d027d310658b949566b75c56ab1405c068c04df0500c86f8f08e676")) - (1686808, uint256S("2926f290c3e07a7ba1d561fb0ed186d9d42e9fc64146427c7b2cf620c25f9ffb")) - (1707131, uint256S("b3e415d8af8bae06a817f465fb25fe56357a6a33fa32407ab2eec9cdee42e957")) - (1727454, uint256S("88b3638d791a6df786885187207f3ee4c5ca83aaea302900b2a03061977d79b4")) - (1747777, uint256S("572153d3d15577bd841e29728d9d5a4f8f746efd55b56d1ea80d5b82c789b79c")) - (1768100, uint256S("8b2a2e3fc35c857c5848aa044b73e9a8bf6dbaf0363b21704f5663602ec56c2d")) - (1788423, uint256S("1be8673ff94e9f5f6af00a6fa7c13b5ce0d67d1027a446053441d5b9728fd95a")) - (1808746, uint256S("414118ad38239866ff4b5d3cef104015d3a9199e5e49aafbf3c6a09dcb7270f8")) - (1829069, uint256S("830afd39d697e71f79d7bae6928fc376b6a81c9cdf515c6f18d74de4213da279")) - (1849392, uint256S("6fe9c36241e6c3a70fb0fed7ec852579bca2e1fb7eaa9832b735cc2f53f0a6df")) - (1869715, uint256S("ad4b6ff26c771ba934d5e0687bef1fc291a870756b5e6ff3ada77de2965bb18c")) - (1890038, uint256S("fca0e05096a6f6f139ed5f57bf701e7d9f89d37c122ed0300c175713ff795a5f")) - (1910361, uint256S("0f8ebef0c5939de34727c7cecdf35453f6a4ae26639c9bce0e8d57a28a6400aa")) - (1930684, uint256S("e51e364b95e80d21d5da3f7bf0aa4f6ff9ea858ae8da5722f9e8aecd1c312b3d")) - (1951007, uint256S("d250c0deb336ea002f0cf46f955742c4547cbfbae609689440b33a85ce9e53fa")) - (1971330, uint256S("55bb706d2eb0f654238fe19a7a07df4406d12109283d78bb3a843cd680954b33")) - (1991653, uint256S("b3fb754d655935a2a39ddca2e3ae34a761ce26508981498bdcd25ba0e3b222a5")) - (2011976, uint256S("ddf8dcad4dfe3fe0fbf6a004b505204bd4b3d7bb6a591e46c64d3654d3cfb914")) - (2032299, uint256S("0f2846bc42ed22ce465e4b53cf7a22f0f87c2c342222b07ff822d6adb3d42767")) + (21279, uint256S("6cecf2667c1abca0d0146b387c0518e56a6719982baad64c1854249835f07f56")) + (42559, uint256S("6d2e65aa13fc80f293db02cc4c0a109d65354f5fc0917eed37bf98dc4f990307")) + (63839, uint256S("1a0b8e65383b5b8a95b6b6d0ef2fcc7990fd9668f39b4a54fb5cf3764fdb7a8f")) + (85119, uint256S("4c654fa5e55ba2cac304a204f481d87d303326b2716865634efea11eadacd79c")) + (106399, uint256S("93902cec8dc97ba5ee6c3b45e9452fb13956a05ef38fbfaf1409eb1a64d95ece")) + (127679, uint256S("378345fb75271fa71cac22a04fff07b0f99249e5c8e442913186ad9aac628c4c")) + (148959, uint256S("fd2091289dc210d2997a75df40fd5cc60a18123698086bb45b21efab7c6151b9")) + (170239, uint256S("c53e9f0691289e6885ba08ece3e10ac1518ca7f7d246a309fbb34ac9461b8e5f")) + (191519, uint256S("8047e4cf4a3367c745ed93ce18857463f0282b3a76db4d7b2a448870cb8ca2c1")) + (212799, uint256S("c1a14e622ac20ac76a08f9ec90cc57ce873987ce40560069d4218c9e9dc4f733")) + (234079, uint256S("69991ff9557fc48c1e9fa9e6c33041cbcadfafd5286f0ed45f31509bfad25d6e")) + (255359, uint256S("bd3d161dfe67447569759f490d175df3f4c9b878c4bcc14938768b8f4597a474")) + (276639, uint256S("98ce60b8d053358d8255c278946fb1484bbc672f4532e4496ee3e81af4d6d46a")) + (297919, uint256S("88a47508f71c90080f6f5d2e122f9ebb41f9c0c12bc8fe66e2293433c6a417c2")) + (319199, uint256S("bbce5ee32998099555eaf9420958c6429bff88e005e414791f37881910fba04b")) + (340479, uint256S("0e4dd00a2113960d71fcb2a4d24d08268453e157b03bcf817210350c4d46df6e")) + (361759, uint256S("d9e0cc3a5efa4609b329a8ed389c2f94f32f2441e17819eef3b6022f5c718251")) + (383039, uint256S("1cd3c7595a4cdbd8548cbfeb889e292fb0fbd06e23d66523440986a1a8509afe")) + (404319, uint256S("1a6ac6dc0bb6f6f00b8e71e48b2e60d3db29dccb2e83f70d272d505f4b1287f5")) + (425599, uint256S("c8841ef5922c05fc63d1f69fbe6aa03e473674ad1e81b06697f2741be326f466")) + (446879, uint256S("6171de118ee346edb19b965b88fb005b045c941c4dd2bdf6710db3b5c2beca74")) + (468159, uint256S("9773eab60b4fcf56c0f1d60372261e457d4fa68758565d0cd13830e93a2e5305")) + (489439, uint256S("dd645b690e8e11471dbf023b0aa937d022adb133bfc428f9f881aef8840c12f7")) + (510719, uint256S("847c2020283c4d2e5a72f8313a9c7c7f6c371254fab0cc78ca6c50b7db04f59f")) + (531999, uint256S("49d36638553442fd307e033773a6f475c7aefb063b3de6a5fb7a774fd4a8aa51")) + (553279, uint256S("fa0672f39ed9f62428da6c12c577dd42a59b1fee667204cb4f2914bb75ea49bf")) + (574559, uint256S("6546877ee20af4154710cedad027704f1fb02ec8fc4a269fef6ba1fb474c027b")) + (595839, uint256S("c17c05196297a569afea5c8719629e29dcb904683783297641ef654340ca9c29")) + (617119, uint256S("9746d65da4395e1720f2529ff3b20478a4c3ef1b254dd1b86e079dcc0e92a33b")) + (638399, uint256S("ecdaf71ca698cfb1425c9945a50f5fc6c047f997a12cf54323d7c22af537985d")) + (659679, uint256S("c40d26a54858f59065f1cfe0ac0d6e15c5edba3ef811d91156066d5af962165d")) + (680959, uint256S("5a8382f1ed15b2bbf4bcce52af20fcbaa40dc1c8475ee7028c3cb28ce1886dac")) + (702239, uint256S("c1b256815ebc290be453e159d514da8d1f2fe689061b54c616680c16fc7068bc")) + (723519, uint256S("cc318c1708d7a9657efac3eb20d71f2deba5e5d9e9e058a08077b71aa14034a0")) + (744799, uint256S("e6b5912921bd56fed8d10fcd97b383e57604bee9c215bb5a557f71fbc9759316")) + (766079, uint256S("8f8b5af159553b4544877b0f1ea2b41747586bd5b995c76fe2785d0e8774ed62")) + (787359, uint256S("10e5823933aaf68e5ae12863a63ddf6d9a42dc285541e5bf9cd44c82cd11c3e1")) + (808639, uint256S("da618b8845b8d0449075f76b698e30699fb3b2e882b32e99a5bda643fa1e65cd")) + (829919, uint256S("3931685856c0b0979920d81b8f51b00323d92329c5fe7c4dfac657bcb9023ab9")) + (851199, uint256S("7533909db2ff0f5774d09463157682ec9f8a97e758feb155b8a81d5dbce20581")) + (872479, uint256S("7f7c02596cb5b86b14b22dfa9eb51d5e358b86e806b7d512a2caeac3084421f5")) + (893759, uint256S("8e14b386972e4dc08f7a9b593f66795948a03f541fb34c336f53110299f190e9")) + (915039, uint256S("f70c75422466f0bfc00a05dbd910a58b32758b979ed0cd61fab0bb33c903407b")) + (936319, uint256S("d78820a7d0c8c5ba53e390365108489aeacc2df6479627af42c7c12ebb0f72e4")) + (957599, uint256S("4bb599856f0a76457b90e8c708fef9bd6c5ca4fb63dfb775b4921ea110d8f67a")) + (978879, uint256S("8fc3c39108b33db754b8e70d5fcccb0ff966fd0aa30a44e148d36c21a7d33d92")) + (1000159, uint256S("8702c6106f9161dab3fab11130bea72f1edbf570a2025cfdba40eb451d903ff7")) + (1021439, uint256S("d59198af1c6f5c1d198dc218c21ec0c906351728cbc63edc2b712d310e5fbd84")) + (1042719, uint256S("03c413032a134e247999b60d969ccb6e8a215015335196a8c0b892027c126318")) + (1063999, uint256S("7e048a0f4add95d53a31d06f5f7cbdacff67f4328bd923d1a3f7726346de0989")) + (1085279, uint256S("49957d3605896af92b44c7e34cd2195efddd4b6d79603f1cc4069edffa634ef2")) + (1106559, uint256S("dec45e0e653b676ea603de634b4c2c5c7426bc9b4e6506cb0103109632c44a15")) + (1127839, uint256S("7896e355ab46e21dfe2c9b1fd961ba65dd49333c34f1c2ab47c3700f22a1f59a")) + (1149119, uint256S("a5decab0b5f7d42da8f3dcd67877371f785923bb594b865bfd814f7bf6d8e16b")) + (1170399, uint256S("b82c46fed0a5b4533f23c192bf5bbaf7879e6862c6cbea72a8920ade7e10ef77")) + (1191679, uint256S("705cac7aae4c19ec95d684b5e47d65832976fab5f092476720c950b01c896bd5")) + (1212959, uint256S("1825347d948baa6a273b907d6915242950a2bd2b7d51d36f00dec9dd9e68b74f")) + (1234239, uint256S("5f3b588bc4120021b012bbc43d1792b6dc978beffbcb6ee1ca5f075307c36f8a")) + (1255519, uint256S("1a82b8d4bcd8611e4f3de4bbf86f4186c7731df69b531690107960be78b009e9")) + (1276799, uint256S("543e52db9a19b1ec01cdb4ad5be8aeadb00cd8184e259d1d6034ec5dac6dc461")) + (1298079, uint256S("460c058460fbc21183eaf462fcfa2536a9a84be4e997f6487b230a78d2f13739")) + (1319359, uint256S("6ec7904d35d7adfa941fa0a3aad98be5870ee100385352d8717714769bffb750")) + (1340639, uint256S("4ef837f2cd6e81aeb5ea71a855ec18a12200d0d2d50240bddf872e894c01b888")) + (1361919, uint256S("63923ddd64e3a5d538684872f0cc58ccae45ea406cb805580d9fd37a8601faa6")) + (1383199, uint256S("4dd8970a034bd00d9b177e482bde7a6f7c3246085b0a01cfeefe8005e014e7f6")) + (1404479, uint256S("f74607a7a47baab1da5ee5211e5b77800a8e8dc90ba48e8f5e18bb610bd86201")) + (1425759, uint256S("01e9f2c541c0dae393b3de69c382ae41a479d892f55a82689ecbea6a3ae444e9")) + (1447039, uint256S("8e63d24b6c88aefb79d656fa93dd457e955029f9d56288ec1062846741b1e4bf")) + (1468319, uint256S("d493071c8c8a22a8223ce75786cd37d9afc5a05c5ba720db4792e160ffca447a")) + (1489599, uint256S("7aebb318e1cc06ec7149b78796558afa5feaed45664c26308aa90e7da35f5273")) + (1510879, uint256S("f43980433aa982d3ad08131c923ee73543b9b62b8fc829d481d6fcdac9f4fc23")) + (1532159, uint256S("dce9266c5b2ba1d1f94525d9d446d7f7b85b9633388e65b3bbd83be94f0f6d2d")) + (1553439, uint256S("0a133d763c3b0a1ee51a28694eadbe6d985c6713607276151ea6bd8f87f482b8")) + (1574719, uint256S("7499e894d7b103296b1c340ecf2c61b0882d0af6d9a8409b892c3f25e1d533d4")) + (1595999, uint256S("34df3a45999fa068fa372aa319399c9eb57c6f20bedf55fda754f16e7b707658")) + (1617279, uint256S("e00863d1dc7f7fa8e3afaf9ae3c16d21babc6376f1464a5a51d88d05e7c08426")) + (1638559, uint256S("bdf0c25394c2cd765fb06737652a1070de7449fa61a98f34d38e5a11934a55ae")) + (1659839, uint256S("d5eadf8b9a522f372969799e2ff6461dc3b2dee210499f9dd1d438d2f5d8f87d")) + (1681119, uint256S("8664fbff2881c580123bf6bd3a58ad25c9fa3aa58987d9fe860dc2071e2ea923")) + (1702399, uint256S("9463d5f63ae0a312d86cce23c69a3f1e689d9f63a8cc3a1c7e1ad8d6931dffde")) + (1723679, uint256S("de4942c42f35710239dfe931029bb35904894cfd0af714cd9a32172f8086e2d6")) + (1744959, uint256S("37cfce7f9ade273a28d895b963eac0b7978de4757fc2bc7dba4763671f427261")) + (1766239, uint256S("d5e6e0fe51f0e923956d1ada12eda15bcd3657a00f428777c334c62d7d4044fd")) + (1787519, uint256S("b04efc3305e5b98a663f7d08151af8d88205258afafcd135c356a29cd428fb1d")) + (1808799, uint256S("7bf840d1e3c3b1018d2c9447716f1ff69aa9864ce04f2de5330765a129168f1b")) + (1830079, uint256S("f4b5473d81c3249b7d949fc05d947a26a307526773aafc7da41dc1d7be708aa7")) + (1851359, uint256S("b4073f17380143822c7e870a3d730605522ef09d1bdaa4777d119f9ced234d92")) + (1872639, uint256S("1863f7795229af0bdd1296cc48b05508baf78fdbc5e16cc7d0c2ccbfd06cec58")) + (1893919, uint256S("6edd93032101ef8cb8b78f9a1f0359ce8f176d70185692bff5531fb9cd887d3a")) + (1915199, uint256S("8e381e1d2626c4d0d3a243103c25772959d40ca3923e926957351435a9878f1c")) + (1936479, uint256S("87413f71719db3bf7e1b1a43a5964746066179bfb52d72820b4be7ecfd15b73e")) + (1957759, uint256S("3ce8b3ccbc00ac50fd01f25a644c4105ce5d30b7dda23dc3d45110993c088443")) + (1979039, uint256S("65526e5c3ee03f7b0d71266ec93fb5e3e5d7455a5cde5526d9dfff96a3f6641d")) + (2000319, uint256S("f3c117004aca031faa9260e83ab40f0497603a4be84a94313ccf15bfdd63b21a")) + (2021599, uint256S("001a42d683a17da0f496f171aac2b60cc93c45047d4a4bc2add15e53c2d0d8f3")) + (2042879, uint256S("0a4223035f08f54dbef376f9967b6b6513e33ddc157b6242c23bc4b1144d1e26")) + (2064159, uint256S("e371b32e26913e86c934a701a082b65ec7ebee16f0f939f631a9edbdea234bc7")) + (2085439, uint256S("3fe4104922b0d4333adf292034aae13301008629352c6d8ca812c85e4829ec0c")) + (2106719, uint256S("25683c29869cb0abc977825cbce5645154c4ea62aa516fb4bdce9c9d84ea13b1")) + (2127999, uint256S("5e8e482806202f1880f0c72ff9f73af60ebea4e11e31bccb59352f64a268e6a0")) ; static const Checkpoints::CCheckpointData data = { &mapCheckpoints, - 1687137315, // * UNIX timestamp of last checkpoint block - 4724866, // * total number of transactions between genesis and last checkpoint + 1693016430, // * UNIX timestamp of last checkpoint block + 4920115, // * total number of transactions between genesis and last checkpoint // (the tx=... number in the UpdateTip debug.log lines) - 2822 // * estimated number of transactions per day after checkpoint + 2818 // * estimated number of transactions per day after checkpoint }; static Checkpoints::MapCheckpoints mapCheckpointsTestnet = From df270f42783d129d8861db227c91aeda2005e499 Mon Sep 17 00:00:00 2001 From: Dmitri Ranfft Date: Sat, 26 Aug 2023 05:57:04 +0200 Subject: [PATCH 8/8] Bump client version --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c544189f7..002ad3acc 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 3) define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_BUILD, 1) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2022)