From cca18eee8d916049d3536b32f5ff4ab22500a0e9 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 14 Nov 2014 16:58:12 -0800 Subject: [PATCH] Add withdraw lock to script/standard.h (and, thus, RPC raw txn) --- src/script/ismine.cpp | 1 + src/script/sign.cpp | 2 ++ src/script/standard.cpp | 9 ++++++++- src/script/standard.h | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/script/ismine.cpp b/src/script/ismine.cpp index 7467d23b2d..1dbd75ddfc 100644 --- a/src/script/ismine.cpp +++ b/src/script/ismine.cpp @@ -62,6 +62,7 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey, bool& { case TX_NONSTANDARD: case TX_NULL_DATA: + case TX_WITHDRAW_LOCK: break; case TX_PUBKEY: keyID = CPubKey(vSolutions[0]).GetID(); diff --git a/src/script/sign.cpp b/src/script/sign.cpp index f552ad5bba..36738d2877 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -82,6 +82,7 @@ static bool SignStep(const BaseSignatureCreator& creator, const CScript& scriptP { case TX_NONSTANDARD: case TX_NULL_DATA: + case TX_WITHDRAW_LOCK: return false; case TX_PUBKEY: keyID = CPubKey(vSolutions[0]).GetID(); @@ -318,6 +319,7 @@ static Stacks CombineSignatures(const CScript& scriptPubKey, const BaseSignature { case TX_NONSTANDARD: case TX_NULL_DATA: + case TX_WITHDRAW_LOCK: // Don't know anything about this, assume bigger one is correct: if (sigs1.script.size() >= sigs2.script.size()) return sigs1; diff --git a/src/script/standard.cpp b/src/script/standard.cpp index bb178f49fe..c6f6e441b3 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -33,6 +33,7 @@ const char* GetTxnOutputType(txnouttype t) case TX_NULL_DATA: return "nulldata"; case TX_WITNESS_V0_KEYHASH: return "witness_v0_keyhash"; case TX_WITNESS_V0_SCRIPTHASH: return "witness_v0_scripthash"; + case TX_WITHDRAW_LOCK: return "withdraw"; } return NULL; } @@ -94,6 +95,12 @@ bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector vSolutions; if (!Solver(scriptPubKey, typeRet, vSolutions)) return false; - if (typeRet == TX_NULL_DATA){ + if (typeRet == TX_NULL_DATA || typeRet == TX_WITHDRAW_LOCK){ // This is data, not addresses return false; } diff --git a/src/script/standard.h b/src/script/standard.h index 72aaea0b7b..c5b055207a 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -53,6 +53,7 @@ enum txnouttype TX_NULL_DATA, TX_WITNESS_V0_SCRIPTHASH, TX_WITNESS_V0_KEYHASH, + TX_WITHDRAW_LOCK, }; class CNoDestination {