Files
rippled/include/xrpl/protocol/MPTIssue.h
Bart 34ef577604 refactor: Replace include guards by '#pragma once' (#6322)
This change replaces all include guards in the `src/` and `include/` directories by `#pragma once`.
2026-02-04 09:50:21 -05:00

86 lines
1.4 KiB
C++

#pragma once
#include <xrpl/protocol/AccountID.h>
#include <xrpl/protocol/UintTypes.h>
namespace xrpl {
/* Adapt MPTID to provide the same interface as Issue. Enables using static
* polymorphism by Asset and other classes. MPTID is a 192-bit concatenation
* of a 32-bit account sequence and a 160-bit account id.
*/
class MPTIssue
{
private:
MPTID mptID_;
public:
MPTIssue() = default;
explicit MPTIssue(MPTID const& issuanceID);
AccountID const&
getIssuer() const;
constexpr MPTID const&
getMptID() const
{
return mptID_;
}
std::string
getText() const;
void
setJson(Json::Value& jv) const;
friend constexpr bool
operator==(MPTIssue const& lhs, MPTIssue const& rhs);
friend constexpr std::weak_ordering
operator<=>(MPTIssue const& lhs, MPTIssue const& rhs);
bool
native() const
{
return false;
}
bool
integral() const
{
return true;
}
};
constexpr bool
operator==(MPTIssue const& lhs, MPTIssue const& rhs)
{
return lhs.mptID_ == rhs.mptID_;
}
constexpr std::weak_ordering
operator<=>(MPTIssue const& lhs, MPTIssue const& rhs)
{
return lhs.mptID_ <=> rhs.mptID_;
}
/** MPT is a non-native token.
*/
inline bool
isXRP(MPTID const&)
{
return false;
}
Json::Value
to_json(MPTIssue const& mptIssue);
std::string
to_string(MPTIssue const& mptIssue);
MPTIssue
mptIssueFromJson(Json::Value const& jv);
} // namespace xrpl