diff --git a/src/libxrpl/protocol/STLedgerEntry.cpp b/src/libxrpl/protocol/STLedgerEntry.cpp index 68d1455cb1d..1801149ab2a 100644 --- a/src/libxrpl/protocol/STLedgerEntry.cpp +++ b/src/libxrpl/protocol/STLedgerEntry.cpp @@ -125,6 +125,10 @@ STLedgerEntry::getJson(JsonOptions options) const ret[jss::index] = to_string(key_); + if (getType() == ltMPTOKEN_ISSUANCE) + ret[jss::mpt_issuance_id] = to_string( + makeMptID(getFieldU32(sfSequence), getAccountID(sfIssuer))); + return ret; } diff --git a/src/test/rpc/LedgerRPC_test.cpp b/src/test/rpc/LedgerRPC_test.cpp index 891515b221e..792da88b5bc 100644 --- a/src/test/rpc/LedgerRPC_test.cpp +++ b/src/test/rpc/LedgerRPC_test.cpp @@ -2394,6 +2394,9 @@ class LedgerRPC_test : public beast::unit_test::suite BEAST_EXPECT( jrr[jss::node][sfMPTokenMetadata.jsonName] == strHex(std::string{"123"})); + BEAST_EXPECT( + jrr[jss::node][jss::mpt_issuance_id] == + strHex(mptAlice.issuanceID())); } { // Request an index that is not a MPTIssuance. diff --git a/src/xrpld/rpc/detail/RPCHelpers.cpp b/src/xrpld/rpc/detail/RPCHelpers.cpp index f3df4be263e..930f8d8a0e5 100644 --- a/src/xrpld/rpc/detail/RPCHelpers.cpp +++ b/src/xrpld/rpc/detail/RPCHelpers.cpp @@ -285,13 +285,7 @@ getAccountObjects( if (!typeFilter.has_value() || typeMatchesFilter(typeFilter.value(), sleNode->getType())) { - auto sleJson = sleNode->getJson(JsonOptions::none); - if (sleNode->getType() == ltMPTOKEN_ISSUANCE) - sleJson[jss::mpt_issuance_id] = to_string(makeMptID( - (*sleNode)[sfSequence], - sleNode->getAccountID(sfIssuer))); - - jvObjects.append(sleJson); + jvObjects.append(sleNode->getJson(JsonOptions::none)); } if (++i == mlimit) diff --git a/src/xrpld/rpc/handlers/LedgerData.cpp b/src/xrpld/rpc/handlers/LedgerData.cpp index 573f3f62f88..ad26b83b43b 100644 --- a/src/xrpld/rpc/handlers/LedgerData.cpp +++ b/src/xrpld/rpc/handlers/LedgerData.cpp @@ -124,10 +124,6 @@ doLedgerData(RPC::JsonContext& context) Json::Value& entry = nodes.append(sle->getJson(JsonOptions::none)); entry[jss::index] = to_string(sle->key()); - - if (sle->getType() == ltMPTOKEN_ISSUANCE) - entry[jss::mpt_issuance_id] = to_string(makeMptID( - (*sle)[sfSequence], sle->getAccountID(sfIssuer))); } } }