message: Enforce CLTV-multi-sig for premine
diff: @@ -3018,6 +3018,24 @@ static bool ContextualCheckBlock(const CBlock& block, CValidationState& state, c
  }
  }
  + if (nHeight >= consensusParams.BTGHeight &&
  + nHeight < consensusParams.BTGHeight + consensusParams.BTGPremineWindow)
  + {
  + if (block.vtx[0]->vout.size() != 1) {
  + return state.DoS(
  + 100, error("%s: only one coinbase output is allowed",__func__),
  + REJECT_INVALID, "bad-premine-coinbase-output");
  + }
  + const CTxOut& output = block.vtx[0]->vout[0];
  + bool valid = Params().IsPremineAddressScript(output.scriptPubKey, (uint32_t)nHeight);
  + if (!valid) {
  + return state.DoS(
  + 100, error("%s: not in premine whitelist", __func__),
  + REJECT_INVALID, "bad-premine-coinbase-scriptpubkey");
  + }
  + }
  +
  +
  // Validation for witness commitments.
  // * We compute the witness hash (which is the hash including witnesses) of all the block's transactions, except the
  // coinbase (where 0x0000....0000 is used instead).
  