From 1ebe5b92ef18395cdae9b88fc38b0ed6166c3243 Mon Sep 17 00:00:00 2001 From: CryptoManiac Date: Mon, 7 Mar 2016 00:47:41 +0300 Subject: [PATCH] Use CBitcoinAddress ti store change destination --- src/coincontrol.h | 6 ++++-- src/qt/bitcoinaddressvalidator.h | 2 +- src/qt/forms/sendcoinsentry.ui | 10 +++++----- src/qt/sendcoinsdialog.cpp | 8 ++++---- src/wallet.cpp | 4 ++-- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/coincontrol.h b/src/coincontrol.h index 236b586..a64a0ec 100644 --- a/src/coincontrol.h +++ b/src/coincontrol.h @@ -1,11 +1,13 @@ #ifndef COINCONTROL_H #define COINCONTROL_H +#include "base58.h" + /** Coin Control Features. */ class CCoinControl { public: - CTxDestination destChange; + CBitcoinAddress destChange; CCoinControl() { @@ -14,7 +16,7 @@ public: void SetNull() { - destChange = CNoDestination(); + destChange = CBitcoinAddress(); setSelected.clear(); } diff --git a/src/qt/bitcoinaddressvalidator.h b/src/qt/bitcoinaddressvalidator.h index 9710d12..6cad8ce 100644 --- a/src/qt/bitcoinaddressvalidator.h +++ b/src/qt/bitcoinaddressvalidator.h @@ -14,7 +14,7 @@ public: State validate(QString &input, int &pos) const; - static const int MaxAddressLength = 35; + static const int MaxAddressLength = 99; signals: public slots: diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 3d90e49..bdbffb1 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -58,7 +58,7 @@ 0 - + true @@ -88,12 +88,12 @@ 0 - + The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) - - 34 + + 100 @@ -152,7 +152,7 @@ QValidatedLineEdit - QLineEdit + QWidget
qvalidatedlineedit.h
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index e40205b..b0e7382 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -131,12 +131,12 @@ void SendCoinsDialog::on_sendButton_clicked() if(!ui->lineEditCoinControlChange->hasAcceptableInput() || (model && !model->validateAddress(ui->lineEditCoinControlChange->text()))) { - CoinControlDialog::coinControl->destChange = CNoDestination(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(); ui->lineEditCoinControlChange->setValid(false); valid = false; } else - CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()).Get(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()); } for(int i = 0; i < ui->entries->count(); ++i) @@ -461,9 +461,9 @@ void SendCoinsDialog::coinControlChangeChecked(int state) if (model) { if (state == Qt::Checked) - CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()).Get(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()); else - CoinControlDialog::coinControl->destChange = CNoDestination(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(); } ui->lineEditCoinControlChange->setEnabled((state == Qt::Checked)); diff --git a/src/wallet.cpp b/src/wallet.cpp index ab44a9b..1846d17 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1688,8 +1688,8 @@ bool CWallet::CreateTransaction(const vector >& vecSend, CScript scriptChange; // coin control: send change to custom address - if (coinControl && !boost::get(&coinControl->destChange)) - scriptChange.SetDestination(coinControl->destChange); + if (coinControl && coinControl->destChange.IsValid()) + scriptChange.SetAddress(coinControl->destChange); // no coin control: send change to newly generated address else -- 1.7.1