Skip to content

Commit b63d6ab

Browse files
committed
Handle missing SC_ADDRESS_TYPEs in XDRCereal JSONOutputArchive overrides
1 parent 2eab552 commit b63d6ab

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/util/XDRCereal.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,24 @@ cereal_override(cereal::JSONOutputArchive& ar, const stellar::SCAddress& addr,
2929
case stellar::SC_ADDRESS_TYPE_ACCOUNT:
3030
xdr::archive(ar, stellar::KeyUtils::toStrKey(addr.accountId()), field);
3131
return;
32+
case stellar::SC_ADDRESS_TYPE_MUXED_ACCOUNT:
33+
xdr::archive(ar,
34+
std::make_tuple(
35+
cereal::make_nvp("id", addr.muxedAccount().id),
36+
cereal::make_nvp(
37+
"accountID",
38+
stellar::strKey::toStrKey(
39+
stellar::strKey::STRKEY_MUXED_ACCOUNT_ED25519,
40+
addr.muxedAccount().ed25519)
41+
.value)),
42+
field);
43+
break;
44+
case stellar::SC_ADDRESS_TYPE_CLAIMABLE_BALANCE:
45+
xdr::archive(ar, addr.claimableBalanceId(), field);
46+
return;
47+
case stellar::SC_ADDRESS_TYPE_LIQUIDITY_POOL:
48+
xdr::archive(ar, addr.liquidityPoolId(), field);
49+
return;
3250
default:
3351
// this would be a bug
3452
abort();

0 commit comments

Comments
 (0)