Remove more cc stuff

This commit is contained in:
Duke
2024-10-01 10:49:13 -04:00
parent a00ad8eeb8
commit 18e4ca070e
11 changed files with 7 additions and 97 deletions

View File

@@ -322,31 +322,14 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
} }
else if ( bitcoin_base58decode(rmd160,destaddr) != 25 ) else if ( bitcoin_base58decode(rmd160,destaddr) != 25 )
{ {
if ( (len= is_hexstr(destaddr,0)) > 0 ) if ( (len= is_hexstr(destaddr,0)) > 0 ) {
{ result.push_back(Pair("result","error"));
len >>= 1; return(result);
data.resize(len); } else {
decode_hex(&data[0],len,destaddr);
if ( data[len-1] == OP_CHECKCRYPTOCONDITION )
{
data.resize(--len);
scriptPubKey = CScript() << data << OP_CHECKCRYPTOCONDITION;
}
else
{
result.push_back(Pair("result","error"));
result.push_back(Pair("error","only CC hex allowed for now"));
return(result); }
}
else
{
result.push_back(Pair("result","error")); result.push_back(Pair("result","error"));
result.push_back(Pair("error","invalid destaddr/CCvout hex"));
return(result); return(result);
} }
} } else {
else
{
data.resize(20); data.resize(20);
memcpy(&data[0],&rmd160[1],20); memcpy(&data[0],&rmd160[1],20);
scriptPubKey = (CScript() << OP_DUP << OP_HASH160 << ParseHex(HexStr(data)) << OP_EQUALVERIFY << OP_CHECKSIG); scriptPubKey = (CScript() << OP_DUP << OP_HASH160 << ParseHex(HexStr(data)) << OP_EQUALVERIFY << OP_CHECKSIG);

View File

@@ -994,11 +994,10 @@ bool IsStandardTx(const CTransaction& tx, string& reason, const int nHeight)
} }
nDataOut++; nDataOut++;
//fprintf(stderr,"is OP_RETURN\n"); //fprintf(stderr,"is OP_RETURN\n");
} } else if ((whichType == TX_MULTISIG) && (!fIsBareMultisigStd)) {
else if ((whichType == TX_MULTISIG) && (!fIsBareMultisigStd)) {
reason = "bare-multisig"; reason = "bare-multisig";
return false; return false;
} else if (whichType != TX_CRYPTOCONDITION && txout.IsDust(::minRelayTxFee)) { } else if (txout.IsDust(::minRelayTxFee)) {
reason = "dust"; reason = "dust";
return false; return false;
} }

View File

@@ -156,9 +156,6 @@ const char* GetOpName(opcodetype opcode)
case OP_CHECKSIGVERIFY : return "OP_CHECKSIGVERIFY"; case OP_CHECKSIGVERIFY : return "OP_CHECKSIGVERIFY";
case OP_CHECKMULTISIG : return "OP_CHECKMULTISIG"; case OP_CHECKMULTISIG : return "OP_CHECKMULTISIG";
case OP_CHECKMULTISIGVERIFY : return "OP_CHECKMULTISIGVERIFY"; case OP_CHECKMULTISIGVERIFY : return "OP_CHECKMULTISIGVERIFY";
case OP_CHECKCRYPTOCONDITION : return "OP_CHECKCRYPTOCONDITION";
case OP_CHECKCRYPTOCONDITIONVERIFY
: return "OP_CHECKCRYPTOCONDITIONVERIFY";
// expansion // expansion
case OP_NOP1 : return "OP_NOP1"; case OP_NOP1 : return "OP_NOP1";

View File

@@ -40,9 +40,6 @@
static const unsigned int MAX_SCRIPT_ELEMENT_SIZE = 520; // bytes static const unsigned int MAX_SCRIPT_ELEMENT_SIZE = 520; // bytes
// Max size of pushdata in a CC sig in bytes
static const unsigned int MAX_SCRIPT_CRYPTOCONDITION_FULFILLMENT_SIZE = 2048;
// Maximum script length in bytes // Maximum script length in bytes
static const int MAX_SCRIPT_SIZE = 10000; static const int MAX_SCRIPT_SIZE = 10000;
@@ -178,8 +175,6 @@ enum opcodetype
OP_CHECKSIGVERIFY = 0xad, OP_CHECKSIGVERIFY = 0xad,
OP_CHECKMULTISIG = 0xae, OP_CHECKMULTISIG = 0xae,
OP_CHECKMULTISIGVERIFY = 0xaf, OP_CHECKMULTISIGVERIFY = 0xaf,
OP_CHECKCRYPTOCONDITION = 0xcc,
OP_CHECKCRYPTOCONDITIONVERIFY = 0xcd,
// expansion // expansion
OP_NOP1 = 0xb0, OP_NOP1 = 0xb0,
@@ -200,7 +195,6 @@ enum opcodetype
OP_PUBKEYS = 0xfb, OP_PUBKEYS = 0xfb,
OP_PUBKEYHASH = 0xfd, OP_PUBKEYHASH = 0xfd,
OP_PUBKEY = 0xfe, OP_PUBKEY = 0xfe,
OP_CRYPTOCONDITION = 0xfc,
OP_INVALIDOPCODE = 0xff, OP_INVALIDOPCODE = 0xff,
}; };

View File

@@ -83,8 +83,6 @@ const char* ScriptErrorString(const ScriptError serror)
return "NOPx reserved for soft-fork upgrades"; return "NOPx reserved for soft-fork upgrades";
case SCRIPT_ERR_PUBKEYTYPE: case SCRIPT_ERR_PUBKEYTYPE:
return "Public key is neither compressed or uncompressed"; return "Public key is neither compressed or uncompressed";
case SCRIPT_ERR_CRYPTOCONDITION_INVALID_FULFILLMENT:
return "Crypto-Condition payload is invalid";
case SCRIPT_ERR_UNKNOWN_ERROR: case SCRIPT_ERR_UNKNOWN_ERROR:
case SCRIPT_ERR_ERROR_COUNT: case SCRIPT_ERR_ERROR_COUNT:
default: break; default: break;

View File

@@ -70,9 +70,6 @@ typedef enum ScriptError_t
SCRIPT_ERR_ERROR_COUNT, SCRIPT_ERR_ERROR_COUNT,
/* crypto-condition script errors */
SCRIPT_ERR_CRYPTOCONDITION_VERIFY,
SCRIPT_ERR_CRYPTOCONDITION_INVALID_FULFILLMENT
} ScriptError; } ScriptError;
#define SCRIPT_ERR_LAST SCRIPT_ERR_ERROR_COUNT #define SCRIPT_ERR_LAST SCRIPT_ERR_ERROR_COUNT

View File

@@ -128,29 +128,6 @@ static bool SignN(const vector<valtype>& multisigdata, const BaseSignatureCreato
return nSigned==nRequired; return nSigned==nRequired;
} }
std::vector<CCcontract_info> &GetCryptoConditions()
{
static bool initialized = false;
static std::vector<CCcontract_info> vCC = std::vector<CCcontract_info>();
CCcontract_info C;
if (!initialized)
{
// this should initialize any desired auto-signed crypto-conditions
}
return vCC;
}
bool GetCCByUnspendableAddress(struct CCcontract_info *cp, char *addrstr)
{
return false;
}
bool CCinitLite(struct CCcontract_info *cp, uint8_t evalcode)
{
return false;
}
bool _Getscriptaddress(char *destaddr, const CScript &scriptPubKey) bool _Getscriptaddress(char *destaddr, const CScript &scriptPubKey)
{ {
CTxDestination address; CTxDestination address;
@@ -239,9 +216,6 @@ static bool SignStep(const BaseSignatureCreator& creator, const CScript& scriptP
} }
return false; return false;
case TX_CRYPTOCONDITION:
return SignStepCC(creator, scriptPubKey, vSolutions, ret, consensusBranchId);
case TX_MULTISIG: case TX_MULTISIG:
ret.push_back(valtype()); // workaround CHECKMULTISIG bug ret.push_back(valtype()); // workaround CHECKMULTISIG bug
return (SignN(vSolutions, creator, scriptPubKey, ret, consensusBranchId)); return (SignN(vSolutions, creator, scriptPubKey, ret, consensusBranchId));
@@ -429,11 +403,6 @@ static Stacks CombineSignatures(const CScript& scriptPubKey, const BaseSignature
return sigs2; return sigs2;
case TX_PUBKEY: case TX_PUBKEY:
case TX_PUBKEYHASH: case TX_PUBKEYHASH:
case TX_CRYPTOCONDITION:
// Signatures are bigger than placeholders or empty scripts:
if (sigs1.script.empty() || sigs1.script[0].empty())
return sigs2;
return sigs1;
case TX_SCRIPTHASH: case TX_SCRIPTHASH:
if (sigs1.script.empty() || sigs1.script.back().empty()) if (sigs1.script.empty() || sigs1.script.back().empty())
return sigs2; return sigs2;

View File

@@ -143,7 +143,6 @@ const char* GetTxnOutputType(txnouttype t)
case TX_SCRIPTHASH: return "scripthash"; case TX_SCRIPTHASH: return "scripthash";
case TX_MULTISIG: return "multisig"; case TX_MULTISIG: return "multisig";
case TX_NULL_DATA: return "nulldata"; case TX_NULL_DATA: return "nulldata";
case TX_CRYPTOCONDITION: return "cryptocondition";
default: return "invalid"; default: return "invalid";
} }
return NULL; return NULL;
@@ -294,8 +293,6 @@ int ScriptSigArgsExpected(txnouttype t, const std::vector<std::vector<unsigned c
return vSolutions[0][0] + 1; return vSolutions[0][0] + 1;
case TX_SCRIPTHASH: case TX_SCRIPTHASH:
return 1; // doesn't include args needed by the script return 1; // doesn't include args needed by the script
case TX_CRYPTOCONDITION:
return 1;
} }
return -1; return -1;
} }

View File

@@ -75,7 +75,6 @@ enum txnouttype
TX_PUBKEYHASH, TX_PUBKEYHASH,
TX_SCRIPTHASH, TX_SCRIPTHASH,
TX_MULTISIG, TX_MULTISIG,
TX_CRYPTOCONDITION,
TX_NULL_DATA, TX_NULL_DATA,
}; };

View File

@@ -156,14 +156,6 @@ void CTxMemPool::addAddressIndex(const CTxMemPoolEntry &entry, const CCoinsViewC
CTxDestination vDest; CTxDestination vDest;
if (Solver(prevout.scriptPubKey, txType, vSols) || ExtractDestination(prevout.scriptPubKey, vDest)) if (Solver(prevout.scriptPubKey, txType, vSols) || ExtractDestination(prevout.scriptPubKey, vDest))
{ {
if (vDest.which())
{
uint160 hashBytes;
if (CBitcoinAddress(vDest).GetIndexKey(hashBytes, keyType, prevout.scriptPubKey.IsPayToCryptoCondition()))
{
vSols.push_back(vector<unsigned char>(hashBytes.begin(), hashBytes.end()));
}
}
if (txType == TX_SCRIPTHASH) if (txType == TX_SCRIPTHASH)
{ {
keyType = 2; keyType = 2;
@@ -190,11 +182,6 @@ void CTxMemPool::addAddressIndex(const CTxMemPoolEntry &entry, const CCoinsViewC
// if we failed to solve, and got a vDest, assume P2PKH or P2PK address returned // if we failed to solve, and got a vDest, assume P2PKH or P2PK address returned
if (vDest.which()) if (vDest.which())
{ {
uint160 hashBytes;
if (CBitcoinAddress(vDest).GetIndexKey(hashBytes, keyType, out.scriptPubKey.IsPayToCryptoCondition()))
{
vSols.push_back(vector<unsigned char>(hashBytes.begin(), hashBytes.end()));
}
} }
else if (txType == TX_SCRIPTHASH) else if (txType == TX_SCRIPTHASH)
{ {

View File

@@ -78,16 +78,6 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& _scriptPubKey)
case TX_NONSTANDARD: case TX_NONSTANDARD:
case TX_NULL_DATA: case TX_NULL_DATA:
break; break;
case TX_CRYPTOCONDITION:
// for now, default is that the first value returned will be the script, subsequent values will be
// pubkeys. if we have the first pub key in our wallet, we consider this spendable
if (vSolutions.size() > 1)
{
keyID = CPubKey(vSolutions[1]).GetID();
if (keystore.HaveKey(keyID))
return ISMINE_SPENDABLE;
}
break;
case TX_PUBKEY: case TX_PUBKEY:
keyID = CPubKey(vSolutions[0]).GetID(); keyID = CPubKey(vSolutions[0]).GetID();
if (keystore.HaveKey(keyID)) if (keystore.HaveKey(keyID))