X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fcoincontroldialog.cpp;h=7b7472b5ba133954bc0d6b460695025e9567f97b;hb=db1eaec482383385156b3e7cb6b2baa9454975f0;hp=e77bcc7b702bc3bf6d83b8d4a820638b0e3c00e7;hpb=cdb88a50ce58c7144fe171e9a1bb2281ecb3156e;p=novacoin.git diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index e77bcc7..7b7472b 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -2,7 +2,9 @@ #include "ui_coincontroldialog.h" #include "init.h" +#include "base58.h" #include "bitcoinunits.h" +#include "script.h" #include "walletmodel.h" #include "addresstablemodel.h" #include "optionsmodel.h" @@ -468,17 +470,21 @@ void CoinControlDialog::updateLabels(WalletModel *model, QWidget* dialog) 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 @@ -630,9 +636,10 @@ void CoinControlDialog::updateView() 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(); @@ -640,10 +647,13 @@ void CoinControlDialog::updateView() 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