diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index fb8f6584f..380919979 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -119,7 +119,10 @@ bool AppInit(int argc, char* argv[]) exit(1); } extern int32_t IS_KOMODO_NOTARY; + extern std::string NOTARY_PUBKEY; IS_KOMODO_NOTARY = GetBoolArg("-notary", false); + NOTARY_PUBKEY = GetArg("-pubkey", ""); + #ifndef WIN32 fDaemon = GetBoolArg("-daemon", false); if (fDaemon) diff --git a/src/komodo.h b/src/komodo.h index a70fed925..44a41cdd6 100644 --- a/src/komodo.h +++ b/src/komodo.h @@ -20,6 +20,7 @@ #include int32_t IS_KOMODO_NOTARY; +std::string NOTARY_PUBKEY; int32_t komodo_is_notaryblock(void *block) { diff --git a/src/miner.cpp b/src/miner.cpp index 25ee1cb65..c7b3a1768 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -405,14 +405,22 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& // // Internal miner // +extern int32_t IS_KOMODO_NOTARY; +extern std::string NOTARY_PUBKEY; CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey) { CPubKey pubkey; - if (!reservekey.GetReservedKey(pubkey)) - return NULL; - - CScript scriptPubKey = CScript() << ToByteVector(pubkey) << OP_CHECKSIG; + if ( IS_KOMODO_NOTARY == 0 ) + { + if (!reservekey.GetReservedKey(pubkey)) + return NULL; + CScript scriptPubKey = CScript() << ToByteVector(pubkey) << OP_CHECKSIG; + } + else + { + CScript scriptPubKey = CScript() << ParseHex(NOTARY_PUBKEY.get_str()) << OP_CHECKSIG; + } return CreateNewBlock(scriptPubKey); } @@ -429,7 +437,8 @@ static bool ProcessBlockFound(CBlock* pblock, CWallet& wallet, CReserveKey& rese } // Remove key from key pool - reservekey.KeepKey(); + if ( IS_KOMODO_NOTARY == 0 ) + reservekey.KeepKey(); // Track how many getdata requests this block gets {