diff --git a/src/chainparams.cpp b/src/chainparams.cpp index f8f2a7f5e..7dc0dfba3 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -171,6 +171,27 @@ public: }; static CMainParams mainParams; +CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward) +{ + CMutableTransaction txNew; + txNew.nVersion = 1; + txNew.vin.resize(1); + txNew.vout.resize(1); + txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << std::vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); + txNew.vout[0].nValue = genesisReward; + txNew.vout[0].scriptPubKey = genesisOutputScript; + + CBlock genesis; + genesis.nTime = nTime; + genesis.nBits = nBits; + genesis.nNonce = nNonce; + genesis.nVersion = nVersion; + genesis.vtx.push_back(txNew); + genesis.hashPrevBlock.SetNull(); + genesis.hashMerkleRoot = BlockMerkleRoot(genesis); + return genesis; +} + void *chainparams_commandline(void *ptr) { //CChainParams *consensus = (CChainParams *)ptr; diff --git a/src/chainparams.h b/src/chainparams.h index b14297488..76e7b88c6 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -14,6 +14,7 @@ #define KOMODO_MINDIFF_NBITS 0x200f0f0f #define GENESIS_NBITS 0x1f00ffff +extern uint32_t ASSETCHAINS_TIMESTAMP; #include @@ -88,7 +89,7 @@ public: void SetRegTestCoinbaseMustBeProtected() { consensus.fCoinbaseMustBeProtected = true; } void SetDefaultPort(uint16_t port) { nDefaultPort = port; } - void setnonce(uint32_t nonce) { genesis.nNonce = nonce; } + void setnonce(uint32_t nonce) { memcpy(&genesis.nNonce,&nonce,sizeof(nonce)); } void settimestamp(uint32_t timestamp) { genesis.nTime = timestamp; } void setgenesis(CBlock &block) { genesis = block; } void recalc_genesis(uint32_t nonce) { genesis = CreateGenesisBlock(ASSETCHAINS_TIMESTAMP, nonce, GENESIS_NBITS, 1, COIN); };