Merge branch 'v0.11.2.x' of https://github.com/darkcoin/darkcoin into v0.11.2.x
@ -1159,7 +1159,13 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||
if (readResult == CMasternodeDB::FileError)
|
||||
LogPrintf("Missing masternode cache file - mncache.dat, will try to recreate\n");
|
||||
else if (readResult != CMasternodeDB::Ok)
|
||||
LogPrintf("Masternode cache file mncache.dat has invalid format\n");
|
||||
{
|
||||
LogPrintf("Error reading mncache.dat: ");
|
||||
if(readResult == CMasternodeDB::IncorrectFormat)
|
||||
LogPrintf("magic is ok but data has invalid format, will try to recreate\n");
|
||||
else
|
||||
LogPrintf("file format is unknown or invalid, please fix it manually\n");
|
||||
}
|
||||
|
||||
fMasterNode = GetBoolArg("-masternode", false);
|
||||
if(fMasterNode) {
|
||||
|
@ -40,15 +40,17 @@ struct CompareValueOnlyMN
|
||||
CMasternodeDB::CMasternodeDB()
|
||||
{
|
||||
pathMN = GetDataDir() / "mncache.dat";
|
||||
strMagicMessage = "MasternodeCache";
|
||||
}
|
||||
|
||||
bool CMasternodeDB::Write(const CMasternodeMan& mnodemanToSave)
|
||||
{
|
||||
int64_t nStart = GetTimeMillis();
|
||||
|
||||
// serialize addresses, checksum data up to that point, then append csum
|
||||
// serialize, checksum data up to that point, then append checksum
|
||||
CDataStream ssMasternodes(SER_DISK, CLIENT_VERSION);
|
||||
ssMasternodes << FLATDATA(Params().MessageStart());
|
||||
ssMasternodes << strMagicMessage; // masternode cache file specific magic message
|
||||
ssMasternodes << FLATDATA(Params().MessageStart()); // network specific magic number
|
||||
ssMasternodes << mnodemanToSave;
|
||||
uint256 hash = Hash(ssMasternodes.begin(), ssMasternodes.end());
|
||||
ssMasternodes << hash;
|
||||
@ -119,7 +121,19 @@ CMasternodeDB::ReadResult CMasternodeDB::Read(CMasternodeMan& mnodemanToLoad)
|
||||
}
|
||||
|
||||
unsigned char pchMsgTmp[4];
|
||||
std::string strMagicMessageTmp;
|
||||
try {
|
||||
// de-serialize file header (masternode cache file specific magic message) and ..
|
||||
|
||||
ssMasternodes >> strMagicMessageTmp;
|
||||
|
||||
// ... verify the message matches predefined one
|
||||
if (strMagicMessage != strMagicMessageTmp)
|
||||
{
|
||||
error("%s : Invalid masternode cache magic message", __func__);
|
||||
return IncorrectMagicMessage;
|
||||
}
|
||||
|
||||
// de-serialize file header (network specific magic number) and ..
|
||||
ssMasternodes >> FLATDATA(pchMsgTmp);
|
||||
|
||||
@ -127,10 +141,9 @@ CMasternodeDB::ReadResult CMasternodeDB::Read(CMasternodeMan& mnodemanToLoad)
|
||||
if (memcmp(pchMsgTmp, Params().MessageStart(), sizeof(pchMsgTmp)))
|
||||
{
|
||||
error("%s : Invalid network magic number", __func__);
|
||||
return IncorrectMagic;
|
||||
return IncorrectMagicNumber;
|
||||
}
|
||||
|
||||
// de-serialize address data into one CMnList object
|
||||
// de-serialize data into CMasternodeMan object
|
||||
ssMasternodes >> mnodemanToLoad;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
@ -160,8 +173,14 @@ void DumpMasternodes()
|
||||
LogPrintf("Missing masternode cache file - mncache.dat, will try to recreate\n");
|
||||
else if (readResult != CMasternodeDB::Ok)
|
||||
{
|
||||
LogPrintf("Masternode cache file mncache.dat has invalid format\n");
|
||||
return;
|
||||
LogPrintf("Error reading mncache.dat: ");
|
||||
if(readResult == CMasternodeDB::IncorrectFormat)
|
||||
LogPrintf("magic is ok but data has invalid format, will try to recreate\n");
|
||||
else
|
||||
{
|
||||
LogPrintf("file format is unknown or invalid, please fix it manually\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
LogPrintf("Writting info to mncache.dat...\n");
|
||||
mndb.Write(mnodeman);
|
||||
|
@ -32,13 +32,15 @@ class CMasternodeDB
|
||||
{
|
||||
private:
|
||||
boost::filesystem::path pathMN;
|
||||
std::string strMagicMessage;
|
||||
public:
|
||||
enum ReadResult {
|
||||
Ok,
|
||||
FileError,
|
||||
HashReadError,
|
||||
IncorrectHash,
|
||||
IncorrectMagic,
|
||||
IncorrectMagicMessage,
|
||||
IncorrectMagicNumber,
|
||||
IncorrectFormat
|
||||
};
|
||||
|
||||
|
@ -40,14 +40,14 @@ color:#333;
|
||||
}
|
||||
|
||||
QToolBar {
|
||||
background-color:#3D8AC6;
|
||||
background-color:#3398CC;
|
||||
border:0px solid #000;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
QToolBar > QToolButton {
|
||||
background-color:#3D8AC6;
|
||||
background-color:#3398CC;
|
||||
border:0px solid #333;
|
||||
min-height:2.5em;
|
||||
padding: 0em 1em;
|
||||
@ -101,7 +101,7 @@ background-color:#f2f2f2;
|
||||
/*******************************************************/
|
||||
|
||||
QPushButton { /* Global Button Style */
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #3D8AC6, stop: .95 #3D8AC6, stop: 1 #1D80B5);
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #3398CC, stop: .95 #3398CC, stop: 1 #1D80B5);
|
||||
border:0;
|
||||
border-radius:3px;
|
||||
color:#ffffff;
|
||||
@ -114,7 +114,7 @@ padding-bottom:5px;
|
||||
}
|
||||
|
||||
QPushButton:hover {
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #4895d1, stop: .95 #4895d1, stop: 1 #1D80B5);
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #46AADE, stop: .95 #46AADE, stop: 1 #1D80B5);
|
||||
}
|
||||
|
||||
QPushButton:focus {
|
||||
@ -139,7 +139,7 @@ background:#f2f2f2;
|
||||
}
|
||||
|
||||
QComboBox:editable {
|
||||
background: #3D8AC6;
|
||||
background: #3398CC;
|
||||
color:#616161;
|
||||
border:0px solid transparent;
|
||||
}
|
||||
@ -234,7 +234,7 @@ background-color:transparent;
|
||||
|
||||
QHeaderView::section { /* Table Header Sections */
|
||||
qproperty-alignment:center;
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #4c97bf, stop: 1 #5FA2D6);
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #4c97bf, stop: 1 #56ABD8);
|
||||
color:#fff;
|
||||
min-height:25px;
|
||||
font-weight:bold;
|
||||
@ -677,11 +677,11 @@ padding-right:5px;
|
||||
/* OVERVIEW SCREEN */
|
||||
|
||||
QWidget .QFrame#frame { /* Wallet Balance */
|
||||
|
||||
min-width:490px;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frame > .QLabel {
|
||||
min-width:175px;
|
||||
min-width:190px;
|
||||
font-weight:normal;
|
||||
min-height:30px;
|
||||
}
|
||||
@ -703,7 +703,7 @@ margin-left:20px;
|
||||
QWidget .QFrame#frame .QLabel#label { /* Available Balance Label */
|
||||
qproperty-alignment: 'AlignVCenter | AlignRight';
|
||||
min-width:230px;
|
||||
background-color:#5FA2D6;
|
||||
background-color:#56ABD8;
|
||||
color:#ffffff;
|
||||
margin-right:5px;
|
||||
padding-right:5px;
|
||||
@ -714,10 +714,10 @@ min-height:35px;
|
||||
|
||||
QWidget .QFrame#frame .QLabel#labelBalance { /* Available Balance */
|
||||
qproperty-alignment: 'AlignVCenter | AlignLeft';
|
||||
font-size:17px;
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
color:#5FA2D6;
|
||||
margin-left:13px;
|
||||
color:#56ABD8;
|
||||
margin-left:14px;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frame .QLabel#label_3 { /* Pending Balance Label */
|
||||
@ -763,22 +763,23 @@ margin-left:16px;
|
||||
|
||||
QWidget .QFrame#frameDarksend { /* Darksend Widget */
|
||||
background-color:transparent;
|
||||
qproperty-minimumSize: 451px 330px;
|
||||
qproperty-minimumSize: 451px 343px;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend QWidget {
|
||||
qproperty-geometry: rect(10 0 431 22);
|
||||
qproperty-geometry: rect(10 0 431 35);
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend .QLabel#label_2 { /* Darksend Header */
|
||||
qproperty-alignment: 'AlignVCenter | AlignRight';
|
||||
min-width:230px;
|
||||
color:#3D8AC6;
|
||||
background-color:#56ABD8;
|
||||
color:#fff;
|
||||
margin-right:5px;
|
||||
padding-right:5px;
|
||||
font-weight:bold;
|
||||
font-size:16px;
|
||||
min-height:22px;
|
||||
min-height:35px;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend .QLabel#labelDarksendSyncStatus { /* Darksend Sync Status */
|
||||
@ -787,7 +788,7 @@ margin-left:20px;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend #formLayoutWidget {
|
||||
qproperty-geometry: rect(10 38 451 175);
|
||||
qproperty-geometry: rect(10 51 451 175);
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend #formLayoutWidget > .QLabel {
|
||||
@ -827,7 +828,7 @@ color:#818181;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend #formLayoutWidget .QProgressBar#darksendProgress::chunk {
|
||||
background-color: #3D8AC6;
|
||||
background-color: #3398CC;
|
||||
width:10px;
|
||||
}
|
||||
|
||||
@ -869,7 +870,7 @@ QWidget .QFrame#frameDarksend #formLayoutWidget .QLabel#labelSubmittedDenom { /*
|
||||
|
||||
QWidget .QFrame#frameDarksend .QLabel#darksendStatus { /* Darksend Status Notifications */
|
||||
qproperty-alignment: 'AlignVCenter | AlignCenter';
|
||||
qproperty-geometry: rect(70 213 395 34);
|
||||
qproperty-geometry: rect(70 226 395 34);
|
||||
font-size:11px;
|
||||
color:#818181;
|
||||
}
|
||||
@ -890,7 +891,7 @@ qproperty-geometry: rect(0 0 0 0);
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend .QPushButton#toggleDarksend { /* Start Darksend Mixing */
|
||||
qproperty-geometry: rect(120 255 295 40);
|
||||
qproperty-geometry: rect(115 268 295 40);
|
||||
font-size:17px;
|
||||
font-weight:bold;
|
||||
color:#ffffff;
|
||||
@ -905,7 +906,7 @@ QWidget .QFrame#frameDarksend .QPushButton#toggleDarksend:hover {
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend .QPushButton#darksendAuto { /* Try Mix Button */
|
||||
qproperty-geometry: rect(125 301 140 25);
|
||||
qproperty-geometry: rect(120 314 140 25);
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
|
||||
border:1px solid #d2d2d2;
|
||||
color:#616161;
|
||||
@ -924,7 +925,7 @@ border:1px solid #9e9e9e;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frameDarksend .QPushButton#darksendReset { /* Reset Button */
|
||||
qproperty-geometry: rect(270 301 140 25);
|
||||
qproperty-geometry: rect(265 314 140 25);
|
||||
background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
|
||||
border:1px solid #d2d2d2;
|
||||
color:#616161;
|
||||
@ -945,15 +946,16 @@ border:1px solid #9e9e9e;
|
||||
/* RECENT TRANSACTIONS */
|
||||
|
||||
QWidget .QFrame#frame_2 { /* Transactions Widget */
|
||||
min-width:410px;
|
||||
margin-right:20px;
|
||||
margin-left:20px;
|
||||
margin-left:0;
|
||||
background-image: url(':/images/dash_logo_horizontal');
|
||||
background-repeat:none;
|
||||
}
|
||||
|
||||
QWidget .QFrame#frame_2 .QLabel#label_4 { /* Recent Transactions Label */
|
||||
min-width:200px;
|
||||
color:#3D8AC6;
|
||||
color:#3398CC;
|
||||
margin-left:67px;
|
||||
margin-top:123px;
|
||||
margin-right:5px;
|
||||
@ -994,7 +996,7 @@ min-height:25px;
|
||||
}
|
||||
|
||||
QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlFeatures { /* Coin Control Header */
|
||||
color:#3D8AC6;
|
||||
color:#3398CC;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
}
|
||||
@ -1101,7 +1103,7 @@ min-height:27px;
|
||||
QDialog#SendCoinsDialog QLabel#labelBalance {
|
||||
margin-left:0px;
|
||||
padding-left:0px;
|
||||
color:#616161;
|
||||
color:#333333;
|
||||
/* font-weight:bold;
|
||||
border-radius:5px;
|
||||
padding-top:20px;
|
||||
@ -1113,7 +1115,7 @@ min-height:27px;
|
||||
/* SEND COINS ENTRY */
|
||||
|
||||
QStackedWidget#SendCoinsEntry .QFrame#SendCoins > .QLabel { /* Send Coin Entry Labels */
|
||||
background-color:#5FA2D6;
|
||||
background-color:#56ABD8;
|
||||
min-width:102px;
|
||||
font-weight:bold;
|
||||
font-size:11px;
|
||||
@ -1294,7 +1296,7 @@ QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::indicator { /* Coin
|
||||
/* RECEIVE COINS */
|
||||
|
||||
QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_2 { /* Label Label */
|
||||
background-color:#5FA2D6;
|
||||
background-color:#56ABD8;
|
||||
min-width:102px;
|
||||
color:#ffffff;
|
||||
font-weight:bold;
|
||||
@ -1312,7 +1314,7 @@ padding-right:5px;
|
||||
}
|
||||
|
||||
QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_3 { /* Message Label */
|
||||
background-color:#5FA2D6;
|
||||
background-color:#56ABD8;
|
||||
min-width:102px;
|
||||
color:#ffffff;
|
||||
font-weight:bold;
|
||||
@ -1372,7 +1374,7 @@ border:1px solid #9e9e9e;
|
||||
}
|
||||
|
||||
QWidget#ReceiveCoinsDialog .QFrame#frame .QLabel#label_6 { /* Requested Payments History Label */
|
||||
color:#3D8AC6;
|
||||
color:#3398CC;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
}
|
||||
|
BIN
src/qt/res/images/about.png
Executable file → Normal file
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.8 KiB |
BIN
src/qt/res/images/splash.png
Executable file → Normal file
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 138 KiB |
BIN
src/qt/res/images/splash_testnet.png
Executable file → Normal file
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 155 KiB |
4
src/qt/rpcconsole.cpp
Normal file → Executable file
@ -391,8 +391,8 @@ void RPCConsole::on_lineEdit_returnPressed()
|
||||
{
|
||||
message(CMD_REQUEST, cmd);
|
||||
emit cmdRequest(cmd);
|
||||
// Truncate history from current position
|
||||
history.erase(history.begin() + historyPtr, history.end());
|
||||
// Remove command, if already in history
|
||||
history.removeOne(cmd);
|
||||
// Append command to history
|
||||
history.append(cmd);
|
||||
// Enforce maximum history size
|
||||
|
@ -33,7 +33,7 @@ static const int PROTOCOL_VERSION = 70075;
|
||||
static const int INIT_PROTO_VERSION = 209;
|
||||
|
||||
// disconnect from peers older than this proto version
|
||||
static const int MIN_PEER_PROTO_VERSION = 70054;
|
||||
static const int MIN_PEER_PROTO_VERSION = 70066;
|
||||
|
||||
// nTime field added to CAddress, starting with this version;
|
||||
// if possible, avoid requesting addresses nodes older than this
|
||||
|