#include "init.h"
#include "base58.h"
#include "bitcoinunits.h"
+#include "script.h"
#include "walletmodel.h"
#include "addresstablemodel.h"
#include "optionsmodel.h"
#include "coincontrol.h"
#include "dialogwindowflags.h"
+#include "wallet.h"
#include <QApplication>
#include <QCheckBox>
coinControl->ListSelected(vCoinControl);
model->getOutputs(vCoinControl, vOutputs);
- BOOST_FOREACH(const COutput& out, vOutputs)
+ for (const COutput& out : vOutputs)
{
// Quantity
nQuantity++;
dPriorityInputs += (double)out.tx->vout[out.i].nValue * (out.nDepth+1);
// Bytes
- CTxDestination address;
- if(ExtractDestination(out.tx->vout[out.i].scriptPubKey, address))
+ CBitcoinAddress address;
+ if(ExtractAddress(*pwalletMain, out.tx->vout[out.i].scriptPubKey, address))
{
- CPubKey pubkey;
- CKeyID *keyid = boost::get< CKeyID >(&address);
- if (keyid && model->getPubKey(*keyid, pubkey))
- nBytesInputs += (pubkey.IsCompressed() ? 148 : 180);
- else
- nBytesInputs += 148; // in all error cases, simply assume 148 here
+ if (address.IsPair())
+ nBytesInputs += 213;
+ else if (address.IsPubKey())
+ {
+ CPubKey pubkey;
+ CKeyID keyid;
+ if (address.GetKeyID(keyid) && model->getPubKey(keyid, pubkey))
+ nBytesInputs += (pubkey.IsCompressed() ? 148 : 180);
+ else
+ nBytesInputs += 148; // in all error cases, simply assume 148 here
+ }
}
- else nBytesInputs += 148;
}
// calculation
map<QString, vector<COutput> > mapCoins;
model->listCoins(mapCoins);
- BOOST_FOREACH(PAIRTYPE(QString, vector<COutput>) coins, mapCoins)
+ for (auto coins : mapCoins)
{
QTreeWidgetItem *itemWalletAddress = new QTreeWidgetItem();
QString sWalletAddress = coins.first;
int nChildren = 0;
int nInputSum = 0;
uint64_t nTxWeight = 0, nTxWeightSum = 0;
- BOOST_FOREACH(const COutput& out, coins.second)
+ for (const COutput& out : coins.second)
{
int nInputSize = 148; // 180 if uncompressed public key
nSum += out.tx->vout[out.i].nValue;
itemOutput->setCheckState(COLUMN_CHECKBOX,Qt::Unchecked);
// address
- CTxDestination outputAddress;
+ CBitcoinAddress outputAddress;
QString sAddress = "";
- if(ExtractDestination(out.tx->vout[out.i].scriptPubKey, outputAddress))
+
+ if(ExtractAddress(*pwalletMain, out.tx->vout[out.i].scriptPubKey, outputAddress))
{
sAddress = CBitcoinAddress(outputAddress).ToString().c_str();
if (!treeMode || (!(sAddress == sWalletAddress)))
itemOutput->setText(COLUMN_ADDRESS, sAddress);
- CPubKey pubkey;
- CKeyID *keyid = boost::get< CKeyID >(&outputAddress);
- if (keyid && model->getPubKey(*keyid, pubkey) && !pubkey.IsCompressed())
- nInputSize = 180;
+ if (outputAddress.IsPubKey())
+ {
+ CPubKey pubkey;
+ CKeyID keyid;
+ if (outputAddress.GetKeyID(keyid) && model->getPubKey(keyid, pubkey) && !pubkey.IsCompressed())
+ nInputSize = 180;
+ }
}
// label