Skip to content

Commit ba0e645

Browse files
committed
fix: creditOutputs in AssetLock tx json output should be an array of objects, not debug strings
1 parent 045e178 commit ba0e645

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/evo/assetlocktx.h

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <primitives/transaction.h>
1010
#include <gsl/pointers.h>
1111

12+
#include <core_io.h>
1213
#include <serialize.h>
1314
#include <univalue.h>
1415

@@ -51,14 +52,18 @@ class CAssetLockPayload
5152

5253
[[nodiscard]] UniValue ToJson() const
5354
{
54-
UniValue obj;
55-
obj.setObject();
56-
obj.pushKV("version", int(nVersion));
57-
UniValue outputs;
58-
outputs.setArray();
59-
for (const CTxOut& out : creditOutputs) {
60-
outputs.push_back(out.ToString());
55+
UniValue outputs(UniValue::VARR);
56+
for (const CTxOut& credit_output : creditOutputs) {
57+
UniValue out(UniValue::VOBJ);
58+
out.pushKV("value", ValueFromAmount(credit_output.nValue));
59+
out.pushKV("valueSat", credit_output.nValue);
60+
UniValue spk(UniValue::VOBJ);
61+
ScriptPubKeyToUniv(credit_output.scriptPubKey, spk, /* fIncludeHex = */ true, /* include_addresses = */ false);
62+
out.pushKV("scriptPubKey", spk);
63+
outputs.push_back(out);
6164
}
65+
UniValue obj(UniValue::VOBJ);
66+
obj.pushKV("version", int(nVersion));
6267
obj.pushKV("creditOutputs", outputs);
6368
return obj;
6469
}

test/lint/lint-circular-dependencies.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ EXPECTED_CIRCULAR_DEPENDENCIES=(
102102
"llmq/chainlocks -> net_processing -> llmq/context -> llmq/chainlocks"
103103
"coinjoin/client -> coinjoin/coinjoin -> llmq/chainlocks -> net_processing -> coinjoin/client"
104104
"rpc/blockchain -> rpc/server -> rpc/blockchain"
105+
"core_io -> evo/assetlocktx -> core_io"
105106
)
106107

107108
EXIT_CODE=0

0 commit comments

Comments
 (0)