diff options
| author | Pieter Wuille <[email protected]> | 2017-11-30 16:48:38 -0800 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2018-01-03 05:43:06 -0800 |
| commit | 985c79552ceb6a5f5812d421dc5c86fa3b1cc41d (patch) | |
| tree | 682a791059736fe9e74a5314df7536f576e16645 /src/script/standard.cpp | |
| parent | [refactor] GetAccount{PubKey,Address} -> GetAccountDestination (diff) | |
| download | discoin-985c79552ceb6a5f5812d421dc5c86fa3b1cc41d.tar.xz discoin-985c79552ceb6a5f5812d421dc5c86fa3b1cc41d.zip | |
Improve witness destination types and use them more
Diffstat (limited to 'src/script/standard.cpp')
| -rw-r--r-- | src/script/standard.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/script/standard.cpp b/src/script/standard.cpp index b7b33fade..0d9f6ae1f 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -348,19 +348,14 @@ CScript GetScriptForWitness(const CScript& redeemscript) std::vector<std::vector<unsigned char> > vSolutions; if (Solver(redeemscript, typ, vSolutions)) { if (typ == TX_PUBKEY) { - unsigned char h160[20]; - CHash160().Write(&vSolutions[0][0], vSolutions[0].size()).Finalize(h160); - ret << OP_0 << std::vector<unsigned char>(&h160[0], &h160[20]); - return ret; + return GetScriptForDestination(WitnessV0KeyHash(Hash160(vSolutions[0].begin(), vSolutions[0].end()))); } else if (typ == TX_PUBKEYHASH) { - ret << OP_0 << vSolutions[0]; - return ret; + return GetScriptForDestination(WitnessV0KeyHash(vSolutions[0])); } } uint256 hash; CSHA256().Write(&redeemscript[0], redeemscript.size()).Finalize(hash.begin()); - ret << OP_0 << ToByteVector(hash); - return ret; + return GetScriptForDestination(WitnessV0ScriptHash(hash)); } bool IsValidDestination(const CTxDestination& dest) { |