From 26a8d194846ba44a9688c3db4de998300430cf5f Mon Sep 17 00:00:00 2001 From: Michael Toutonghi Date: Tue, 10 Apr 2018 00:33:38 -0700 Subject: [PATCH] fix build --- src/komodo_defs.h | 1 + src/komodo_globals.h | 4 +--- src/komodo_utils.h | 29 +++++++++++++++-------------- src/miner.cpp | 5 +++-- src/util.cpp | 14 ++++++++------ src/util.h | 2 +- 6 files changed, 29 insertions(+), 26 deletions(-) diff --git a/src/komodo_defs.h b/src/komodo_defs.h index db792c44e..78859e00d 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -2,6 +2,7 @@ #define KOMODO_DEFS_H #define ASSETCHAINS_MINHEIGHT 128 +#define ASSETCHAINS_MAX_ERAS 3 #define KOMODO_ELECTION_GAP 2000 #define ROUNDROBIN_DELAY 61 #define KOMODO_ASSETCHAIN_MAXLEN 65 diff --git a/src/komodo_globals.h b/src/komodo_globals.h index 53a2d80a8..e1bd25ba4 100644 --- a/src/komodo_globals.h +++ b/src/komodo_globals.h @@ -57,10 +57,8 @@ uint32_t ASSETCHAINS_MAGIC = 2387029918; uint64_t ASSETCHAINS_SUPPLY = 10; uint64_t ASSETCHAINS_COMMISSION; -#define _MAX_ERAS 3 -int MAX_ERAS = _MAX_ERAS; uint32_t ASSETCHAINS_ERAS = 1; -uint64_t ASSETCHAINS_ENDSUBSIDY[_MAX_ERAS],ASSETCHAINS_REWARD[_MAX_ERAS],ASSETCHAINS_HALVING[_MAX_ERAS],ASSETCHAINS_DECAY[_MAX_ERAS]; +uint64_t ASSETCHAINS_ENDSUBSIDY[ASSETCHAINS_MAX_ERAS],ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS],ASSETCHAINS_HALVING[ASSETCHAINS_MAX_ERAS],ASSETCHAINS_DECAY[ASSETCHAINS_MAX_ERAS]; uint32_t KOMODO_INITDONE; char KMDUSERPASS[4096],BTCUSERPASS[4096]; uint16_t KMD_PORT = 7771,BITCOIND_PORT = 7771; diff --git a/src/komodo_utils.h b/src/komodo_utils.h index 75c7c5663..ff90d7307 100644 --- a/src/komodo_utils.h +++ b/src/komodo_utils.h @@ -1501,8 +1501,9 @@ char *argv0names[] = int64_t komodo_max_money() { uint64_t max_money; + int32_t baseid; - if ( (baseid = komodo_baseid(ASSETCHAINS_SYMBOL)) >= 0 && baseid < 32 ) + if ( ( baseid = komodo_baseid(ASSETCHAINS_SYMBOL)) >= 0 && baseid < 32 ) max_money = komodo_maxallowed(baseid); else { @@ -1516,9 +1517,9 @@ int64_t komodo_max_money() if ( reward > 0 ) { uint64_t lastEnd = j == 0 ? 0 : ASSETCHAINS_ENDSUBSIDY[j - 1]; - uint64_t curEnd = ASSETCHAINS_ENDSUBSIDY[j] == 0 ? 10000000 : : ASSETCHAINS_ENDSUBSIDY[j]; + uint64_t curEnd = ASSETCHAINS_ENDSUBSIDY[j] == 0 ? 10000000 : ASSETCHAINS_ENDSUBSIDY[j]; uint64_t period = ASSETCHAINS_HALVING[j]; - uint64_t decay = ASSETCHAINS_DECAY[j]; + uint64_t nextReward, decay = ASSETCHAINS_DECAY[j]; // if exactly SATOSHIDEN, linear decay to zero or next era, same as: // (next_era_reward + (starting reward - next_era_reward) / 2) * num_blocks @@ -1534,11 +1535,11 @@ int64_t komodo_max_money() // it can go either up or down if linear, swap to prevent underflow if ( nextReward > reward ) { - tmp = reward; + uint64_t tmp = reward; reward = nextReward; nextReward = tmp; } - max_money += ((nextReward + ((reward - nextReward + 1) >> 1)) * (curEnd - lastEnd); + max_money += (nextReward + ((reward - nextReward + 1) >> 1)) * (curEnd - lastEnd); } else { @@ -1598,7 +1599,7 @@ uint64_t komodo_ac_block_subsidy(int nHeight) nSubsidy = cached_subsidy; else { - for (i=0; i < numhalvings && nSubsidy != 0; i++) + for (int i=0; i < numhalvings && nSubsidy != 0; i++) nSubsidy = (nSubsidy * ASSETCHAINS_DECAY[curEra]) / 100000000; cached_subsidy = nSubsidy; cached_numhalvings = numhalvings; @@ -1648,20 +1649,20 @@ void komodo_args(char *argv0) } if ( name.c_str()[0] != 0 ) { - ASSETCHAINS_ERAS = GetArg("-ac_eras",1) - if ( ASSETCHAINS_ERAS < 1 || ASSETCHAINS_ERAS > MAX_ERAS ) + ASSETCHAINS_ERAS = GetArg("-ac_eras", 1); + if ( ASSETCHAINS_ERAS < 1 || ASSETCHAINS_ERAS > ASSETCHAINS_MAX_ERAS ) { ASSETCHAINS_ERAS = 1; - printf("ASSETCHAINS_ERAS, if specified, must be between 1 and %u. ASSETCHAINS_ERAS set to %u\n", MAX_ERAS, ASSETCHAINS_ERAS); + printf("ASSETCHAINS_ERAS, if specified, must be between 1 and %u. ASSETCHAINS_ERAS set to %u\n", ASSETCHAINS_MAX_ERAS, ASSETCHAINS_ERAS); } ASSETCHAINS_ERAS -= 1; - SplitToi64(GetArg("-ac_end",""), &ASSETCHAINS_ENDSUBSIDY, 0); - SplitToi64(GetArg("-ac_reward",""), &ASSETCHAINS_REWARD, 0); - SplitToi64(GetArg("-ac_halving",""), &ASSETCHAINS_HALVING, 0); - SplitToi64(GetArg("-ac_decay",""), &ASSETCHAINS_DECAY, 0); + Split(GetArg("-ac_end",""), ASSETCHAINS_ENDSUBSIDY, 0); + Split(GetArg("-ac_reward",""), ASSETCHAINS_REWARD, 0); + Split(GetArg("-ac_halving",""), ASSETCHAINS_HALVING, 0); + Split(GetArg("-ac_decay",""), ASSETCHAINS_DECAY, 0); - for ( int i = 0; i < MAX_ERAS; i++ ) + for ( int i = 0; i < ASSETCHAINS_MAX_ERAS; i++ ) { if ( ASSETCHAINS_HALVING[i] != 0 && ASSETCHAINS_HALVING[i] < 1440 ) { diff --git a/src/miner.cpp b/src/miner.cpp index 9a8eb59a5..d80948c48 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -106,7 +106,8 @@ void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, #include "komodo_defs.h" extern int32_t ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; -extern uint32_t ASSETCHAINS_REWARD,ASSETCHAINS_COMMISSION; +extern uint64_t ASSETCHAINS_COMMISSION; +extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS]; extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; extern std::string NOTARY_PUBKEY; extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33]; @@ -733,7 +734,7 @@ void static BitcoinMiner() CBlock *pblock = &pblocktemplate->block; if ( ASSETCHAINS_SYMBOL[0] != 0 ) { - if ( ASSETCHAINS_REWARD == 0 ) + if ( ASSETCHAINS_REWARD[0] == 0 ) { if ( pblock->vtx.size() == 1 && pblock->vtx[0].vout.size() == 1 && Mining_height > ASSETCHAINS_MINHEIGHT ) { diff --git a/src/util.cpp b/src/util.cpp index 5f5b7d10d..fc8a5d1af 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -364,12 +364,12 @@ void ParseParameters(int argc, const char* const argv[]) } } -void SplitToi64(const std::string& strVal, int64_t[_MAX_ERAS] *outVals, const int64_t nDefault) +void Split(const std::string& strVal, uint64_t *outVals, const uint64_t nDefault) { istringstream ss(strVal); - vector vec; + vector vec; - int64_t i, numVals = 0; + uint64_t i, nLast, numVals = 0; while ( ss.peek() == ' ' ) ss.ignore(); @@ -388,11 +388,13 @@ void SplitToi64(const std::string& strVal, int64_t[_MAX_ERAS] *outVals, const in } if ( numVals > 0 ) - nDefault = outVals[numVals - 1]; + nLast = outVals[numVals - 1]; + else + nLast = nDefault; - for ( i=numVals; i < MAX_ERAS; i++ ) + for ( i = numVals; i < ASSETCHAINS_MAX_ERAS; i++ ) { - outVals[i] = nDefault; + outVals[i] = nLast; } } diff --git a/src/util.h b/src/util.h index 547996a5d..a67d3aa7e 100644 --- a/src/util.h +++ b/src/util.h @@ -166,7 +166,7 @@ inline bool IsSwitchChar(char c) * else if the string has fewer than _MAX_ERAS entries, then the last * entry fills remaining entries */ -void SplitToi64(const std::string& strVal, int64_t[_MAX_ERAS] *outVals, int64_t nDefault); +void Split(const std::string& strVal, uint64_t *outVals, uint64_t nDefault); /** * Return string argument or default value