20#include <xrpl/basics/contract.h>
21#include <xrpl/json/json_value.h>
22#include <xrpl/protocol/AccountID.h>
23#include <xrpl/protocol/Asset.h>
24#include <xrpl/protocol/Issue.h>
25#include <xrpl/protocol/MPTIssue.h>
26#include <xrpl/protocol/SField.h>
27#include <xrpl/protocol/STBase.h>
28#include <xrpl/protocol/STIssue.h>
29#include <xrpl/protocol/Serializer.h>
30#include <xrpl/protocol/UintTypes.h>
47 auto const currencyOrAccount = sit.
get160();
67 MPTID::size() ==
sizeof(sequence) +
sizeof(currencyOrAccount));
68 memcpy(mptID.
data(), &sequence,
sizeof(sequence));
70 mptID.
data() +
sizeof(sequence),
71 currencyOrAccount.data(),
72 sizeof(currencyOrAccount));
82 Throw<std::runtime_error>(
83 "invalid issue: currency and account native mismatch");
116 if (!
isXRP(issue.currency))
125 memcpy(&sequence, issue.getMptID().data(),
sizeof(sequence));
134 return v && (*v == *
this);
152 return emplace(n, buf, std::move(*
this));
void setJson(Json::Value &jv) const
constexpr TIss const & get() const
std::string getText() const
A currency issued by an account.
A type which can be exported to a well known binary format.
static STBase * emplace(std::size_t n, void *buf, T &&val)
void add(Serializer &s) const override
STBase * copy(std::size_t n, void *buf) const override
Json::Value getJson(JsonOptions) const override
bool isEquivalent(STBase const &t) const override
bool isDefault() const override
STBase * move(std::size_t n, void *buf) override
SerializedTypeID getSType() const override
std::string getText() const override
int addBitString(base_uint< Bits, Tag > const &v)
static constexpr std::size_t size()
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Issue const & xrpIssue()
Returns an asset specifier that represents XRP.
AccountID const & noAccount()
A placeholder for empty accounts.
bool isConsistent(Book const &book)
bool isXRP(AccountID const &c)
Asset assetFromJson(Json::Value const &jv)
Issue issueFromJson(Json::Value const &v)
Note, should be treated as flags that can be | and &.