aboutsummaryrefslogtreecommitdiff
path: root/src/core_write.cpp
diff options
context:
space:
mode:
authorMichael Dietz <michael.dietz@waya.ai>2021-05-10 15:14:16 -0400
committerMichael Dietz <michael.dietz@waya.ai>2021-09-24 14:22:53 -0500
commitd64deac7b823a0eba97ab3a3686054eefe330d3c (patch)
tree64d3de6c88d7e33b77f79bfae9a4dfe939e5d68c /src/core_write.cpp
parent8721638daa8502c7f8de5ae24a9393d7290a2ce5 (diff)
downloadbitcoin-d64deac7b823a0eba97ab3a3686054eefe330d3c.tar.xz
refactor: share logic between ScriptPubKeyToUniv and ScriptToUniv
Diffstat (limited to 'src/core_write.cpp')
-rw-r--r--src/core_write.cpp20
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));