#include #include #include #include #include #include #include #include #include #include namespace xrpl::test::jtx { json::Value trust(Account const& account, STAmount const& amount, std::uint32_t flags) { if (isXRP(amount)) Throw("trust() requires IOU"); json::Value jv; jv[jss::Account] = account.human(); jv[jss::LimitAmount] = amount.getJson(JsonOptions::Values::None); jv[jss::TransactionType] = jss::TrustSet; jv[jss::Flags] = flags; return jv; } // This function overload is especially useful for modelling Authorised trust // lines. account (first function parameter) is the issuing authority, it // authorises peer (third function parameter) to hold a certain currency // (amount, the second function parameter) json::Value trust(Account const& account, STAmount const& amount, Account const& peer, std::uint32_t flags) { if (isXRP(amount)) Throw("trust() requires IOU"); json::Value jv; jv[jss::Account] = account.human(); { auto& ja = jv[jss::LimitAmount] = amount.getJson(JsonOptions::Values::None); ja[jss::issuer] = peer.human(); } jv[jss::TransactionType] = jss::TrustSet; jv[jss::Flags] = flags; return jv; } json::Value claw(Account const& account, STAmount const& amount, std::optional const& mptHolder) { json::Value jv; jv[jss::Account] = account.human(); jv[jss::Amount] = amount.getJson(JsonOptions::Values::None); jv[jss::TransactionType] = jss::Clawback; if (mptHolder) jv[sfHolder.jsonName] = mptHolder->human(); return jv; } } // namespace xrpl::test::jtx