// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include "txdb.h"
+#include "txdb-leveldb.h"
#include "wallet.h"
#include "walletdb.h"
#include "crypter.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "base58.h"
#include "kernel.h"
#include "coincontrol.h"
#include <boost/algorithm/string/replace.hpp>
#include <openssl/bio.h>
-
+#include <random>
#include "main.h"
using namespace std;
return true;
}
-bool CWallet::GetPEM(const CKeyID &keyID, const std::string &fileName, const SecureString &strPassKey) const
-{
- BIO *pemOut = BIO_new_file(fileName.c_str(), "w");
- if (pemOut == NULL)
- return error("GetPEM() : failed to create file %s\n", fileName.c_str());
- CKey key;
- if (!GetKey(keyID, key))
- return error("GetPEM() : failed to get key for address=%s\n", CBitcoinAddress(keyID).ToString().c_str());
- bool result = key.WritePEM(pemOut, strPassKey);
- BIO_free(pemOut);
- return result;
-}
-
int64_t CWallet::IncOrderPosNext(CWalletDB *pwalletdb)
{
int64_t nRet = nOrderPosNext++;
vector<pair<int64_t, pair<const CWalletTx*,unsigned int> > > vValue;
int64_t nTotalLower = 0;
- random_shuffle(vCoins.begin(), vCoins.end(), GetRandInt);
+ std::random_device rd;
+ std::mt19937 g(rd());
+ shuffle(vCoins.begin(), vCoins.end(), g);
BOOST_FOREACH(const COutput &output, vCoins)
{
}
// Solve subset sum by stochastic approximation
- sort(vValue.rbegin(), vValue.rend(), CompareValueOnly());
+ std::sort(vValue.begin(), vValue.end(), CompareValueOnly());
+ std::reverse(vValue.begin(), vValue.end());
vector<char> vfBest;
int64_t nBest;
if (wtxNew.vout[0].nValue > 0) {
int64_t nBytes = ::GetSerializeSize(*(CTransaction*)&wtxNew, SER_NETWORK, PROTOCOL_VERSION) + wtxNew.vin.size() * 110;
- double dFinalPriority = dWeight /= nBytes;
+ double dFinalPriority = dWeight / nBytes;
bool fAllowFree = CTransaction::AllowFree(dFinalPriority);
// Get actual transaction fee according to its size and priority
CBitcoinAddress txoutAddr;
if(!ExtractAddress(*this, txout.scriptPubKey, txoutAddr))
continue;
- grouping.insert(txoutAddr);
+ grouping.insert(txoutAddr);
}
}
if (!grouping.empty())