2
2
// Distributed under the MIT/X11 software license, see the accompanying
3
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
4
5
- // #define ENABLE_DASH_DEBUG
6
-
7
5
#include " governance-classes.h"
8
6
#include " core_io.h"
9
7
#include " init.h"
@@ -36,8 +34,6 @@ std::vector<std::string> SplitBy(const std::string& strCommand, const std::strin
36
34
37
35
CAmount ParsePaymentAmount (const std::string& strAmount)
38
36
{
39
- DBG (std::cout << " ParsePaymentAmount Start: strAmount = " << strAmount << std::endl;);
40
-
41
37
CAmount nAmount = 0 ;
42
38
if (strAmount.empty ()) {
43
39
std::ostringstream ostr;
@@ -91,8 +87,6 @@ CAmount ParsePaymentAmount(const std::string& strAmount)
91
87
throw std::runtime_error (ostr.str ());
92
88
}
93
89
94
- DBG (std::cout << " ParsePaymentAmount Returning true nAmount = " << nAmount << std::endl;);
95
-
96
90
return nAmount;
97
91
}
98
92
@@ -102,17 +96,12 @@ CAmount ParsePaymentAmount(const std::string& strAmount)
102
96
103
97
bool CGovernanceTriggerManager::AddNewTrigger (uint256 nHash)
104
98
{
105
- DBG (std::cout << " CGovernanceTriggerManager::AddNewTrigger: Start" << std::endl;);
106
99
AssertLockHeld (governance.cs );
107
100
108
101
// IF WE ALREADY HAVE THIS HASH, RETURN
109
102
if (mapTrigger.count (nHash)) {
110
- DBG (
111
- std::cout << " CGovernanceTriggerManager::AddNewTrigger: Already have hash"
112
- << " , nHash = " << nHash.GetHex ()
113
- << " , count = " << mapTrigger.count (nHash)
114
- << " , mapTrigger.size() = " << mapTrigger.size ()
115
- << std::endl;);
103
+ LogPrint (" gobject" , " CGovernanceTriggerManager::AddNewTrigger -- Already have hash, nHash = %s, count = %d, size = %s\n " ,
104
+ nHash.GetHex (), mapTrigger.count (nHash), mapTrigger.size ());
116
105
return false ;
117
106
}
118
107
@@ -121,24 +110,17 @@ bool CGovernanceTriggerManager::AddNewTrigger(uint256 nHash)
121
110
CSuperblock_sptr pSuperblockTmp (new CSuperblock (nHash));
122
111
pSuperblock = pSuperblockTmp;
123
112
} catch (std::exception & e) {
124
- DBG (std::cout << " CGovernanceTriggerManager::AddNewTrigger Error creating superblock"
125
- << " , e.what() = " << e.what ()
126
- << std::endl;);
127
113
LogPrintf (" CGovernanceTriggerManager::AddNewTrigger -- Error creating superblock: %s\n " , e.what ());
128
114
return false ;
129
115
} catch (...) {
130
116
LogPrintf (" CGovernanceTriggerManager::AddNewTrigger: Unknown Error creating superblock\n " );
131
- DBG (std::cout << " CGovernanceTriggerManager::AddNewTrigger Error creating superblock catchall" << std::endl;);
132
117
return false ;
133
118
}
134
119
135
120
pSuperblock->SetStatus (SEEN_OBJECT_IS_VALID);
136
121
137
- DBG (std::cout << " CGovernanceTriggerManager::AddNewTrigger: Inserting trigger" << std::endl;);
138
122
mapTrigger.insert (std::make_pair (nHash, pSuperblock));
139
123
140
- DBG (std::cout << " CGovernanceTriggerManager::AddNewTrigger: End" << std::endl;);
141
-
142
124
return true ;
143
125
}
144
126
@@ -150,12 +132,9 @@ bool CGovernanceTriggerManager::AddNewTrigger(uint256 nHash)
150
132
151
133
void CGovernanceTriggerManager::CleanAndRemove ()
152
134
{
153
- LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- Start\n " );
154
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: Start" << std::endl;);
155
135
AssertLockHeld (governance.cs );
156
136
157
137
// Remove triggers that are invalid or expired
158
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: mapTrigger.size() = " << mapTrigger.size () << std::endl;);
159
138
LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- mapTrigger.size() = %d\n " , mapTrigger.size ());
160
139
161
140
trigger_m_it it = mapTrigger.begin ();
@@ -164,18 +143,15 @@ void CGovernanceTriggerManager::CleanAndRemove()
164
143
CGovernanceObject* pObj = nullptr ;
165
144
CSuperblock_sptr& pSuperblock = it->second ;
166
145
if (!pSuperblock) {
167
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: NULL superblock marked for removal" << std::endl;);
168
146
LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- NULL superblock marked for removal\n " );
169
147
remove = true ;
170
148
} else {
171
149
pObj = governance.FindGovernanceObject (it->first );
172
150
if (!pObj || pObj->GetObjectType () != GOVERNANCE_OBJECT_TRIGGER) {
173
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: Unknown or non-trigger superblock" << std::endl;);
174
151
LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- Unknown or non-trigger superblock\n " );
175
152
pSuperblock->SetStatus (SEEN_OBJECT_ERROR_INVALID);
176
153
}
177
154
178
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: superblock status = " << pSuperblock->GetStatus () << std::endl;);
179
155
LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- superblock status = %d\n " , pSuperblock->GetStatus ());
180
156
switch (pSuperblock->GetStatus ()) {
181
157
case SEEN_OBJECT_ERROR_INVALID:
@@ -194,15 +170,11 @@ void CGovernanceTriggerManager::CleanAndRemove()
194
170
LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- %smarked for removal\n " , remove ? " " : " NOT " );
195
171
196
172
if (remove ) {
197
- DBG (
198
- std::string strDataAsPlainString = " NULL" ;
199
- if (pObj) {
200
- strDataAsPlainString = pObj->GetDataAsPlainString ();
201
- }
202
- std::cout << " CGovernanceTriggerManager::CleanAndRemove: Removing object: "
203
- << strDataAsPlainString
204
- << std::endl;);
205
- LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- Removing trigger object\n " );
173
+ std::string strDataAsPlainString = " NULL" ;
174
+ if (pObj) {
175
+ strDataAsPlainString = pObj->GetDataAsPlainString ();
176
+ }
177
+ LogPrint (" gobject" , " CGovernanceTriggerManager::CleanAndRemove -- Removing trigger object %s\n " , strDataAsPlainString);
206
178
// mark corresponding object for deletion
207
179
if (pObj) {
208
180
pObj->fCachedDelete = true ;
@@ -216,8 +188,6 @@ void CGovernanceTriggerManager::CleanAndRemove()
216
188
++it;
217
189
}
218
190
}
219
-
220
- DBG (std::cout << " CGovernanceTriggerManager::CleanAndRemove: End" << std::endl;);
221
191
}
222
192
223
193
/* *
@@ -232,19 +202,14 @@ std::vector<CSuperblock_sptr> CGovernanceTriggerManager::GetActiveTriggers()
232
202
AssertLockHeld (governance.cs );
233
203
std::vector<CSuperblock_sptr> vecResults;
234
204
235
- DBG (std::cout << " GetActiveTriggers: mapTrigger.size() = " << mapTrigger.size () << std::endl;);
236
-
237
205
// LOOK AT THESE OBJECTS AND COMPILE A VALID LIST OF TRIGGERS
238
206
for (const auto & pair : mapTrigger) {
239
207
CGovernanceObject* pObj = governance.FindGovernanceObject (pair.first );
240
208
if (pObj) {
241
- DBG (std::cout << " GetActiveTriggers: pObj->GetDataAsPlainString() = " << pObj->GetDataAsPlainString () << std::endl;);
242
209
vecResults.push_back (pair.second );
243
210
}
244
211
}
245
212
246
- DBG (std::cout << " GetActiveTriggers: vecResults.size() = " << vecResults.size () << std::endl;);
247
-
248
213
return vecResults;
249
214
}
250
215
@@ -267,20 +232,16 @@ bool CSuperblockManager::IsSuperblockTriggered(int nBlockHeight)
267
232
268
233
LogPrint (" gobject" , " CSuperblockManager::IsSuperblockTriggered -- vecTriggers.size() = %d\n " , vecTriggers.size ());
269
234
270
- DBG (std::cout << " IsSuperblockTriggered Number triggers = " << vecTriggers.size () << std::endl;);
271
-
272
235
for (const auto & pSuperblock : vecTriggers) {
273
236
if (!pSuperblock) {
274
237
LogPrintf (" CSuperblockManager::IsSuperblockTriggered -- Non-superblock found, continuing\n " );
275
- DBG (std::cout << " IsSuperblockTriggered Not a superblock, continuing " << std::endl;);
276
238
continue ;
277
239
}
278
240
279
241
CGovernanceObject* pObj = pSuperblock->GetGovernanceObject ();
280
242
281
243
if (!pObj) {
282
244
LogPrintf (" CSuperblockManager::IsSuperblockTriggered -- pObj == nullptr, continuing\n " );
283
- DBG (std::cout << " IsSuperblockTriggered pObj is NULL, continuing" << std::endl;);
284
245
continue ;
285
246
}
286
247
@@ -292,10 +253,6 @@ bool CSuperblockManager::IsSuperblockTriggered(int nBlockHeight)
292
253
LogPrint (" gobject" , " CSuperblockManager::IsSuperblockTriggered -- block height doesn't match nBlockHeight = %d, blockStart = %d, continuing\n " ,
293
254
nBlockHeight,
294
255
pSuperblock->GetBlockHeight ());
295
- DBG (std::cout << " IsSuperblockTriggered Not the target block, continuing"
296
- << " , nBlockHeight = " << nBlockHeight
297
- << " , superblock->GetBlockHeight() = " << pSuperblock->GetBlockHeight ()
298
- << std::endl;);
299
256
continue ;
300
257
}
301
258
@@ -305,11 +262,9 @@ bool CSuperblockManager::IsSuperblockTriggered(int nBlockHeight)
305
262
306
263
if (pObj->IsSetCachedFunding ()) {
307
264
LogPrint (" gobject" , " CSuperblockManager::IsSuperblockTriggered -- fCacheFunding = true, returning true\n " );
308
- DBG (std::cout << " IsSuperblockTriggered returning true" << std::endl;);
309
265
return true ;
310
266
} else {
311
267
LogPrint (" gobject" , " CSuperblockManager::IsSuperblockTriggered -- fCacheFunding = false, continuing\n " );
312
- DBG (std::cout << " IsSuperblockTriggered No fCachedFunding, continuing" << std::endl;);
313
268
}
314
269
}
315
270
@@ -328,31 +283,22 @@ bool CSuperblockManager::GetBestSuperblock(CSuperblock_sptr& pSuperblockRet, int
328
283
int nYesCount = 0 ;
329
284
330
285
for (const auto & pSuperblock : vecTriggers) {
331
- if (!pSuperblock) {
332
- DBG (std::cout << " GetBestSuperblock Not a superblock, continuing" << std::endl;);
286
+ if (!pSuperblock || nBlockHeight != pSuperblock->GetBlockHeight ()) {
333
287
continue ;
334
288
}
335
289
336
290
CGovernanceObject* pObj = pSuperblock->GetGovernanceObject ();
337
291
338
292
if (!pObj) {
339
- DBG (std::cout << " GetBestSuperblock pObj is NULL, continuing" << std::endl;);
340
- continue ;
341
- }
342
-
343
- if (nBlockHeight != pSuperblock->GetBlockHeight ()) {
344
- DBG (std::cout << " GetBestSuperblock Not the target block, continuing" << std::endl;);
345
293
continue ;
346
294
}
347
295
348
296
// DO WE HAVE A NEW WINNER?
349
297
350
298
int nTempYesCount = pObj->GetAbsoluteYesCount (VOTE_SIGNAL_FUNDING);
351
- DBG (std::cout << " GetBestSuperblock nTempYesCount = " << nTempYesCount << std::endl;);
352
299
if (nTempYesCount > nYesCount) {
353
300
nYesCount = nTempYesCount;
354
301
pSuperblockRet = pSuperblock;
355
- DBG (std::cout << " GetBestSuperblock Valid superblock found, pSuperblock set" << std::endl;);
356
302
}
357
303
}
358
304
@@ -367,16 +313,13 @@ bool CSuperblockManager::GetBestSuperblock(CSuperblock_sptr& pSuperblockRet, int
367
313
368
314
bool CSuperblockManager::GetSuperblockPayments (int nBlockHeight, std::vector<CTxOut>& voutSuperblockRet)
369
315
{
370
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Start" << std::endl;);
371
-
372
316
LOCK (governance.cs );
373
317
374
318
// GET THE BEST SUPERBLOCK FOR THIS BLOCK HEIGHT
375
319
376
320
CSuperblock_sptr pSuperblock;
377
321
if (!CSuperblockManager::GetBestSuperblock (pSuperblock, nBlockHeight)) {
378
322
LogPrint (" gobject" , " CSuperblockManager::GetSuperblockPayments -- Can't find superblock for height %d\n " , nBlockHeight);
379
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Failed to get superblock for height, returning" << std::endl;);
380
323
return false ;
381
324
}
382
325
@@ -386,17 +329,14 @@ bool CSuperblockManager::GetSuperblockPayments(int nBlockHeight, std::vector<CTx
386
329
// GET SUPERBLOCK OUTPUTS
387
330
388
331
// Superblock payments will be appended to the end of the coinbase vout vector
389
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Number payments: " << pSuperblock->CountPayments () << std::endl;);
390
332
391
333
// TODO: How many payments can we add before things blow up?
392
334
// Consider at least following limits:
393
335
// - max coinbase tx size
394
336
// - max "budget" available
395
337
for (int i = 0 ; i < pSuperblock->CountPayments (); i++) {
396
338
CGovernancePayment payment;
397
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments i = " << i << std::endl;);
398
339
if (pSuperblock->GetPayment (i, payment)) {
399
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Payment found " << std::endl;);
400
340
// SET COINBASE OUTPUT TO SUPERBLOCK SETTING
401
341
402
342
CTxOut txout = CTxOut (payment.nAmount , payment.script );
@@ -410,16 +350,13 @@ bool CSuperblockManager::GetSuperblockPayments(int nBlockHeight, std::vector<CTx
410
350
411
351
// TODO: PRINT NICE N.N DASH OUTPUT
412
352
413
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Before LogPrintf call, nAmount = " << payment.nAmount << std::endl;);
414
- LogPrintf (" NEW Superblock : output %d (addr %s, amount %d)\n " , i, address2.ToString (), payment.nAmount );
415
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments After LogPrintf call " << std::endl;);
353
+ LogPrint (" gobject" , " CSuperblockManager::GetSuperblockPayments -- NEW Superblock: output %d (addr %s, amount %lld)\n " ,
354
+ i, address2.ToString (), payment.nAmount );
416
355
} else {
417
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments Payment not found " << std::endl; );
356
+ LogPrint ( " gobject " , " CSuperblockManager::GetSuperblockPayments -- Payment not found\n " );
418
357
}
419
358
}
420
359
421
- DBG (std::cout << " CSuperblockManager::GetSuperblockPayments End" << std::endl;);
422
-
423
360
return true ;
424
361
}
425
362
@@ -464,22 +401,16 @@ CSuperblock::
464
401
nStatus(SEEN_OBJECT_UNKNOWN),
465
402
vecPayments()
466
403
{
467
- DBG (std::cout << " CSuperblock Constructor Start" << std::endl;);
468
-
469
404
CGovernanceObject* pGovObj = GetGovernanceObject ();
470
405
471
406
if (!pGovObj) {
472
- DBG (std::cout << " CSuperblock Constructor pGovObjIn is NULL, returning" << std::endl;);
473
407
throw std::runtime_error (" CSuperblock: Failed to find Governance Object" );
474
408
}
475
409
476
- DBG (std::cout << " CSuperblock Constructor pGovObj : "
477
- << pGovObj->GetDataAsPlainString ()
478
- << " , nObjectType = " << pGovObj->GetObjectType ()
479
- << std::endl;);
410
+ LogPrint (" gobject" , " CSuperblock -- Constructor pGovObj: %s, nObjectType = %d\n " ,
411
+ pGovObj->GetDataAsPlainString (), pGovObj->GetObjectType ());
480
412
481
413
if (pGovObj->GetObjectType () != GOVERNANCE_OBJECT_TRIGGER) {
482
- DBG (std::cout << " CSuperblock Constructor pGovObj not a trigger, returning" << std::endl;);
483
414
throw std::runtime_error (" CSuperblock: Governance Object not a trigger" );
484
415
}
485
416
@@ -495,8 +426,6 @@ CSuperblock::
495
426
496
427
LogPrint (" gobject" , " CSuperblock -- nBlockHeight = %d, strAddresses = %s, strAmounts = %s, vecPayments.size() = %d\n " ,
497
428
nBlockHeight, strAddresses, strAmounts, vecPayments.size ());
498
-
499
- DBG (std::cout << " CSuperblock Constructor End" << std::endl;);
500
429
}
501
430
502
431
/* *
@@ -580,8 +509,6 @@ void CSuperblock::ParsePaymentSchedule(const std::string& strPaymentAddresses, c
580
509
AMOUNTS = [AMOUNT1|2|3|4|5|6]
581
510
*/
582
511
583
- DBG (std::cout << " CSuperblock::ParsePaymentSchedule vecParsed1.size() = " << vecParsed1.size () << std::endl;);
584
-
585
512
for (int i = 0 ; i < (int )vecParsed1.size (); i++) {
586
513
CBitcoinAddress address (vecParsed1[i]);
587
514
if (!address.IsValid ()) {
@@ -603,16 +530,9 @@ void CSuperblock::ParsePaymentSchedule(const std::string& strPaymentAddresses, c
603
530
throw std::runtime_error (ostr.str ());
604
531
}
605
532
606
- DBG (std::cout << " CSuperblock::ParsePaymentSchedule i = " << i
607
- << " , vecParsed2[i] = " << vecParsed2[i]
608
- << std::endl;);
609
-
610
533
CAmount nAmount = ParsePaymentAmount (vecParsed2[i]);
611
534
612
- DBG (std::cout << " CSuperblock::ParsePaymentSchedule: "
613
- << " amount string = " << vecParsed2[i]
614
- << " , nAmount = " << nAmount
615
- << std::endl;);
535
+ LogPrint (" gobject" , " CSuperblock::ParsePaymentSchedule -- i = %d, amount string = %s, nAmount = %lld\n " , i, vecParsed2[i], nAmount);
616
536
617
537
CGovernancePayment payment (address, nAmount);
618
538
if (payment.IsValid ()) {
@@ -676,7 +596,7 @@ bool CSuperblock::IsValid(const CTransaction& txNew, int nBlockHeight, CAmount b
676
596
int nPayments = CountPayments ();
677
597
int nMinerAndMasternodePayments = nOutputs - nPayments;
678
598
679
- LogPrint (" gobject" , " CSuperblock::IsValid nOutputs = %d, nPayments = %d, GetDataAsHexString = %s\n " ,
599
+ LogPrint (" gobject" , " CSuperblock::IsValid -- nOutputs = %d, nPayments = %d, GetDataAsHexString = %s\n " ,
680
600
nOutputs, nPayments, GetGovernanceObject ()->GetDataAsHexString ());
681
601
682
602
// We require an exact match (including order) between the expected
0 commit comments