#include "init.h"
#include "base58.h"
#include "bitcoinunits.h"
+#include "wallet.h"
#include "walletmodel.h"
#include "addresstablemodel.h"
#include "optionsmodel.h"
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(pwalletMain->ExtractAddress(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;
+ CTxDestination dest = address.Get();
+ CKeyID *keyid = boost::get< CKeyID >(&dest);
+ if (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
itemOutput->setCheckState(COLUMN_CHECKBOX,Qt::Unchecked);
// address
- CTxDestination outputAddress;
+ CBitcoinAddress outputAddress;
QString sAddress = "";
- if(ExtractDestination(out.tx->vout[out.i].scriptPubKey, outputAddress))
+
+ if(pwalletMain->ExtractAddress(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;
+ CTxDestination dest = outputAddress.Get();
+ CKeyID *keyid = boost::get< CKeyID >(&dest);
+ if (keyid && model->getPubKey(*keyid, pubkey) && !pubkey.IsCompressed())
+ nInputSize = 180;
+ }
}
// label