Merge branch 'duke' into dev
This commit is contained in:
@@ -458,6 +458,7 @@ std::string HelpMessage(HelpMessageMode mode)
|
|||||||
strUsage += HelpMessageOpt("-disablewallet", _("Do not load the wallet and disable wallet RPC calls"));
|
strUsage += HelpMessageOpt("-disablewallet", _("Do not load the wallet and disable wallet RPC calls"));
|
||||||
strUsage += HelpMessageOpt("-keypool=<n>", strprintf(_("Set key pool size to <n> (default: %u)"), 100));
|
strUsage += HelpMessageOpt("-keypool=<n>", strprintf(_("Set key pool size to <n> (default: %u)"), 100));
|
||||||
strUsage += HelpMessageOpt("-consolidation", _("Enable auto Sapling note consolidation (default: false)"));
|
strUsage += HelpMessageOpt("-consolidation", _("Enable auto Sapling note consolidation (default: false)"));
|
||||||
|
strUsage += HelpMessageOpt("-consolidationinterval", _("Block interval between consolidations (default: 25)"));
|
||||||
strUsage += HelpMessageOpt("-consolidatesaplingaddress=<zaddr>", _("Specify Sapling Address to Consolidate. (default: all)"));
|
strUsage += HelpMessageOpt("-consolidatesaplingaddress=<zaddr>", _("Specify Sapling Address to Consolidate. (default: all)"));
|
||||||
strUsage += HelpMessageOpt("-consolidationtxfee", strprintf(_("Fee amount in Puposhis used send consolidation transactions. (default %i)"), DEFAULT_CONSOLIDATION_FEE));
|
strUsage += HelpMessageOpt("-consolidationtxfee", strprintf(_("Fee amount in Puposhis used send consolidation transactions. (default %i)"), DEFAULT_CONSOLIDATION_FEE));
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,13 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
|
|||||||
g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
|
g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
|
||||||
g_signals.ChainTip.connect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3));
|
g_signals.ChainTip.connect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3));
|
||||||
g_signals.SetBestChain.connect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
|
g_signals.SetBestChain.connect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
|
||||||
g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
|
|
||||||
|
if(GetArg("-resendtx", true)) {
|
||||||
|
g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
|
||||||
|
} else {
|
||||||
|
LogPrintf("%s: automatic resending of wallet transactions disabled\n", __func__);
|
||||||
|
}
|
||||||
|
|
||||||
g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
|
g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
|
||||||
//g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
|
//g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
|
||||||
}
|
}
|
||||||
@@ -40,7 +46,9 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
|
|||||||
void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
|
void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
|
||||||
//g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
|
//g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
|
||||||
g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
|
g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
|
||||||
g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
|
if(GetArg("-resendtx", true)) {
|
||||||
|
g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
|
||||||
|
}
|
||||||
g_signals.ChainTip.disconnect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3));
|
g_signals.ChainTip.disconnect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3));
|
||||||
g_signals.SetBestChain.disconnect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
|
g_signals.SetBestChain.disconnect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
|
||||||
g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
|
g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
|
||||||
@@ -135,9 +143,6 @@ void ThreadNotifyWallets(CBlockIndex *pindexLastTip)
|
|||||||
while (pindex && pindex != pindexFork) {
|
while (pindex && pindex != pindexFork) {
|
||||||
// Get the Sprout commitment tree as of the start of this block.
|
// Get the Sprout commitment tree as of the start of this block.
|
||||||
SproutMerkleTree oldSproutTree;
|
SproutMerkleTree oldSproutTree;
|
||||||
//TODO: how important is oldSproutTree ?
|
|
||||||
//assert(pcoinsTip->GetSproutAnchorAt(pindex->hashSproutAnchor, oldSproutTree));
|
|
||||||
|
|
||||||
// Get the Sapling commitment tree as of the start of this block.
|
// Get the Sapling commitment tree as of the start of this block.
|
||||||
// We can get this from the `hashFinalSaplingRoot` of the last block
|
// We can get this from the `hashFinalSaplingRoot` of the last block
|
||||||
// However, this is only reliable if the last block was on or after
|
// However, this is only reliable if the last block was on or after
|
||||||
|
|||||||
@@ -5667,8 +5667,10 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp, const CPubKey& myp
|
|||||||
|
|
||||||
if (address == "ANY_TADDR") {
|
if (address == "ANY_TADDR") {
|
||||||
useAnyUTXO = true;
|
useAnyUTXO = true;
|
||||||
} else if (address == "ANY_SAPLING") {
|
} else if (address == "ANY_ZADDR" || address == "ANY_SAPLING") {
|
||||||
useAnySapling = true;
|
useAnySapling = true;
|
||||||
|
} else if (address == "*") {
|
||||||
|
useAnyUTXO = useAnySapling = true;
|
||||||
} else {
|
} else {
|
||||||
CTxDestination taddr = DecodeDestination(address);
|
CTxDestination taddr = DecodeDestination(address);
|
||||||
if (IsValidDestination(taddr)) {
|
if (IsValidDestination(taddr)) {
|
||||||
@@ -5692,7 +5694,7 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp, const CPubKey& myp
|
|||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific t-addrs when using \"ANY_TADDR\"");
|
throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific t-addrs when using \"ANY_TADDR\"");
|
||||||
}
|
}
|
||||||
if ((useAnySapling) && zaddrs.size() > 0) {
|
if ((useAnySapling) && zaddrs.size() > 0) {
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific z-addrs when using \"ANY_SAPLING\"");
|
throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific z-addrs when using \"ANY_SAPLING\" or \"ANY_ZADDR\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
const int nextBlockHeight = chainActive.Height() + 1;
|
const int nextBlockHeight = chainActive.Height() + 1;
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ bool fPayAtLeastCustomFee = true;
|
|||||||
|
|
||||||
CBlockIndex *hush_chainactive(int32_t height);
|
CBlockIndex *hush_chainactive(int32_t height);
|
||||||
extern std::string DONATION_PUBKEY;
|
extern std::string DONATION_PUBKEY;
|
||||||
|
extern int32_t HUSH_LOADINGBLOCKS;
|
||||||
int32_t hush_dpowconfs(int32_t height,int32_t numconfs);
|
int32_t hush_dpowconfs(int32_t height,int32_t numconfs);
|
||||||
int tx_height( const uint256 &hash );
|
int tx_height( const uint256 &hash );
|
||||||
bool fTxDeleteEnabled = false;
|
bool fTxDeleteEnabled = false;
|
||||||
@@ -3116,6 +3117,7 @@ std::vector<uint256> CWallet::ResendWalletTransactionsBefore(int64_t nTime)
|
|||||||
// Sort them in chronological order
|
// Sort them in chronological order
|
||||||
multimap<unsigned int, CWalletTx*> mapSorted;
|
multimap<unsigned int, CWalletTx*> mapSorted;
|
||||||
uint32_t now = (uint32_t)time(NULL);
|
uint32_t now = (uint32_t)time(NULL);
|
||||||
|
LogPrintf("%s: nTime=%ld now=%d\n", __func__, nTime, now);
|
||||||
|
|
||||||
// vector of wallet transactions to delete
|
// vector of wallet transactions to delete
|
||||||
std::vector<uint256> vwtxh;
|
std::vector<uint256> vwtxh;
|
||||||
@@ -3193,11 +3195,26 @@ void CWallet::ResendWalletTransactions(int64_t nBestBlockTime)
|
|||||||
if (fFirst)
|
if (fFirst)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// do not resend during IBD/rescan because some txs will be unconfirmed
|
||||||
|
// until completion
|
||||||
|
if(IsInitialBlockDownload()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (pwalletMain->fRescanning) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// do not resend during a reindex or initial loading of blocks
|
||||||
|
if (HUSH_LOADINGBLOCKS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Only do it if there's been a new block since last time
|
// Only do it if there's been a new block since last time
|
||||||
if (nBestBlockTime < nLastResend)
|
if (nBestBlockTime < nLastResend)
|
||||||
return;
|
return;
|
||||||
nLastResend = GetTime();
|
nLastResend = GetTime();
|
||||||
|
|
||||||
|
LogPrintf("%s: nBestBlockTime=%ld nNextResend=%ld nLastResend=%ld time=%ld\n", __func__, nBestBlockTime, nNextResend, nLastResend, GetTime());
|
||||||
// Rebroadcast unconfirmed txes older than 5 minutes before the last
|
// Rebroadcast unconfirmed txes older than 5 minutes before the last
|
||||||
// block was found:
|
// block was found:
|
||||||
std::vector<uint256> relayed = ResendWalletTransactionsBefore(nBestBlockTime-5*60);
|
std::vector<uint256> relayed = ResendWalletTransactionsBefore(nBestBlockTime-5*60);
|
||||||
@@ -3207,15 +3224,11 @@ void CWallet::ResendWalletTransactions(int64_t nBestBlockTime)
|
|||||||
|
|
||||||
/** @} */ // end of mapWallet
|
/** @} */ // end of mapWallet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** @defgroup Actions
|
/** @defgroup Actions
|
||||||
*
|
*
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
CAmount CWallet::GetBalance() const
|
CAmount CWallet::GetBalance() const
|
||||||
{
|
{
|
||||||
CAmount nTotal = 0;
|
CAmount nTotal = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user