X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fmultisigdialog.cpp;h=52eb9785a46027d3b8c3a6b53e8d44aabbb76947;hb=532b9005ab4fc02db3db424b4631fe395e0b9071;hp=8e237cb01fc74f097224998567778fdb00fdc0b2;hpb=d3446e4a0f92d722e86038155a75e1e42743fea7;p=novacoin.git diff --git a/src/qt/multisigdialog.cpp b/src/qt/multisigdialog.cpp index 8e237cb..52eb978 100644 --- a/src/qt/multisigdialog.cpp +++ b/src/qt/multisigdialog.cpp @@ -24,6 +24,10 @@ #include "txdb-bdb.h" #endif +#ifdef _MSC_VER +#pragma warning( disable : 4101) +#endif + MultisigDialog::MultisigDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MultisigDialog), model(0) { ui->setupUi(this); @@ -164,11 +168,31 @@ void MultisigDialog::on_createAddressButton_clicked() pubkeys[i].SetPubKey(vchPubKey); } - if((required == 0) || (required > pubkeys.size())) + if(pubkeys.size() > 16) + { + QMessageBox::warning(this, tr("Error"), tr("Number of addresses involved in the address creation > %1\nReduce the number").arg(16), QMessageBox::Ok); + return; + } + + if(required == 0) + { + QMessageBox::warning(this, tr("Error"), tr("Number of required signatures is 0\nNumber of required signatures must be between 1 and number of keys involved in the creation of address."), QMessageBox::Ok); return; + } + if(required > pubkeys.size()) + { + QMessageBox::warning(this, tr("Error"), tr("Number of required signatures > Number of keys involved in the creation of address."), QMessageBox::Ok); + return; + } + CScript script; script.SetMultisig(required, pubkeys); + if (script.size() > MAX_SCRIPT_ELEMENT_SIZE) + { + QMessageBox::warning(this, tr("Error"), tr("Redeem script exceeds size limit: %1 > %2\nReduce the number of addresses involved in the address creation.").arg(script.size()).arg(MAX_SCRIPT_ELEMENT_SIZE), QMessageBox::Ok); + return; + } CScriptID scriptID = script.GetID(); CBitcoinAddress address(scriptID);