diff options
author | Michael Dietz <michael.dietz@waya.ai> | 2021-05-10 15:14:16 -0400 |
---|---|---|
committer | Michael Dietz <michael.dietz@waya.ai> | 2021-09-24 14:22:53 -0500 |
commit | d64deac7b823a0eba97ab3a3686054eefe330d3c (patch) | |
tree | 64d3de6c88d7e33b77f79bfae9a4dfe939e5d68c /src/core_write.cpp | |
parent | 8721638daa8502c7f8de5ae24a9393d7290a2ce5 (diff) | |
download | bitcoin-d64deac7b823a0eba97ab3a3686054eefe330d3c.tar.xz |
refactor: share logic between ScriptPubKeyToUniv and ScriptToUniv
Diffstat (limited to 'src/core_write.cpp')
-rw-r--r-- | src/core_write.cpp | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/core_write.cpp b/src/core_write.cpp index 4850ef969f..aa560806cd 100644 --- a/src/core_write.cpp +++ b/src/core_write.cpp @@ -141,22 +141,12 @@ std::string EncodeHexTx(const CTransaction& tx, const int serializeFlags) return HexStr(ssTx); } -void ScriptToUniv(const CScript& script, UniValue& out, bool include_address) +void ScriptToUniv(const CScript& script, UniValue& out) { - out.pushKV("asm", ScriptToAsmStr(script)); - out.pushKV("hex", HexStr(script)); - - std::vector<std::vector<unsigned char>> solns; - TxoutType type = Solver(script, solns); - out.pushKV("type", GetTxnOutputType(type)); - - CTxDestination address; - if (include_address && ExtractDestination(script, address) && type != TxoutType::PUBKEY) { - out.pushKV("address", EncodeDestination(address)); - } + ScriptPubKeyToUniv(script, out, /* fIncludeHex */ true, /* include_address */ false); } -void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fIncludeHex) +void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fIncludeHex, bool include_address) { CTxDestination address; @@ -165,9 +155,9 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fInclud out.pushKV("hex", HexStr(scriptPubKey)); std::vector<std::vector<unsigned char>> solns; - TxoutType type = Solver(scriptPubKey, solns); + const TxoutType type{Solver(scriptPubKey, solns)}; - if (ExtractDestination(scriptPubKey, address) && type != TxoutType::PUBKEY) { + if (include_address && ExtractDestination(scriptPubKey, address) && type != TxoutType::PUBKEY) { out.pushKV("address", EncodeDestination(address)); } out.pushKV("type", GetTxnOutputType(type)); |