if (type == TX_PUBKEY_DROP)
{
vector<valtype> vSolutions;
- if (!Solver(scriptPubKey, type, vSolutions))
- {
- out.push_back(Pair("keyVariant", HexStr(vSolutions[0])));
- out.push_back(Pair("R", HexStr(vSolutions[1])));
- }
+ Solver(scriptPubKey, type, vSolutions);
+ out.push_back(Pair("keyVariant", HexStr(vSolutions[0])));
+ out.push_back(Pair("R", HexStr(vSolutions[1])));
}
Array a;
// Standard tx, sender provides pubkey, receiver adds signature
mTemplates.insert(make_pair(TX_PUBKEY, CScript() << OP_PUBKEY << OP_CHECKSIG));
- if (GetTime() > SMALLDATA_SWITCH_TIME)
+ if (fTestNet || GetTime() > SMALLDATA_SWITCH_TIME)
{
// Malleable pubkey tx hack, sender provides generated pubkey combined with R parameter. The R parameter is dropped before checking a signature.
mTemplates.insert(make_pair(TX_PUBKEY_DROP, CScript() << OP_PUBKEY << OP_PUBKEY << OP_DROP << OP_CHECKSIG));
vector<valtype> vSolutions;
if (!Solver(scriptPubKey, typeRet, vSolutions))
return false;
- if (typeRet == TX_NULL_DATA || typeRet == TX_PUBKEY_DROP)
+ if (typeRet == TX_NULL_DATA)
+ {
+ nRequiredRet = 0;
return true;
+ }
if (typeRet == TX_MULTISIG)
{
else
{
nRequiredRet = 1;
+ if (typeRet == TX_PUBKEY_DROP)
+ return true;
CTxDestination address;
if (!ExtractDestination(scriptPubKey, address))
return false;