Remove block signature for proof-of-work blocks since 20 Sep 2013
[novacoin.git] / src / rpcmining.cpp
index 103b933..a8022fc 100644 (file)
@@ -204,8 +204,11 @@ Value getworkex(const Array& params, bool fHelp)
 
         pblock->hashMerkleRoot = pblock->BuildMerkleTree();
 
-        if (!pblock->SignBlock(*pwalletMain))
-            throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+        if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
+        {
+            if (!pblock->SignBlock(*pwalletMain))
+                throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+        }
 
         return CheckWork(pblock, *pwalletMain, reservekey);
     }
@@ -320,8 +323,11 @@ Value getwork(const Array& params, bool fHelp)
         pblock->vtx[0].vin[0].scriptSig = mapNewBlock[pdata->hashMerkleRoot].second;
         pblock->hashMerkleRoot = pblock->BuildMerkleTree();
 
-        if (!pblock->SignBlock(*pwalletMain))
-            throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+        if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
+        {
+            if (!pblock->SignBlock(*pwalletMain))
+                throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+        }
 
         return CheckWork(pblock, *pwalletMain, reservekey);
     }
@@ -504,8 +510,11 @@ Value submitblock(const Array& params, bool fHelp)
         throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed");
     }
 
-    if (!block.SignBlock(*pwalletMain))
-        throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+    if (!fTestNet && block.GetBlockTime() < CHAINCHECKS_SWITCH_TIME)
+    {
+        if (!block.SignBlock(*pwalletMain))
+            throw JSONRPCError(-100, "Unable to sign block, wallet locked?");
+    }
 
     bool fAccepted = ProcessBlock(NULL, &block);
     if (!fAccepted)