// This check is to make sure that the script we created can actually be solved for and signed by us
// if we were to have the private keys. This is just to make sure that the script is valid and that,
// if found in a transaction, we would still accept and relay that transaction. In particular,
// it will reject witness outputs that require signing with an uncompressed public key.
DummySignatureCreatorcreator(&store);
SignatureDatasigs;
// Make sure that STANDARD_SCRIPT_VERIFY_FLAGS includes SCRIPT_VERIFY_WITNESS_PUBKEYTYPE, the most
// important property this function is designed to test for.
static_assert(STANDARD_SCRIPT_VERIFY_FLAGS&SCRIPT_VERIFY_WITNESS_PUBKEYTYPE,"IsSolvable requires standard script flags to include WITNESS_PUBKEYTYPE");
if(ProduceSignature(creator,script,sigs)){
// VerifyScript check is just defensive, and should never fail.