rippled
Loading...
Searching...
No Matches
MPTIssue.h
1#ifndef XRPL_PROTOCOL_MPTISSUE_H_INCLUDED
2#define XRPL_PROTOCOL_MPTISSUE_H_INCLUDED
3
4#include <xrpl/protocol/AccountID.h>
5#include <xrpl/protocol/UintTypes.h>
6
7namespace ripple {
8
9/* Adapt MPTID to provide the same interface as Issue. Enables using static
10 * polymorphism by Asset and other classes. MPTID is a 192-bit concatenation
11 * of a 32-bit account sequence and a 160-bit account id.
12 */
14{
15private:
17
18public:
19 MPTIssue() = default;
20
21 explicit MPTIssue(MPTID const& issuanceID);
22
23 AccountID const&
24 getIssuer() const;
25
26 constexpr MPTID const&
27 getMptID() const
28 {
29 return mptID_;
30 }
31
33 getText() const;
34
35 void
36 setJson(Json::Value& jv) const;
37
38 friend constexpr bool
39 operator==(MPTIssue const& lhs, MPTIssue const& rhs);
40
41 friend constexpr std::weak_ordering
42 operator<=>(MPTIssue const& lhs, MPTIssue const& rhs);
43
44 bool
45 native() const
46 {
47 return false;
48 }
49};
50
51constexpr bool
52operator==(MPTIssue const& lhs, MPTIssue const& rhs)
53{
54 return lhs.mptID_ == rhs.mptID_;
55}
56
58operator<=>(MPTIssue const& lhs, MPTIssue const& rhs)
59{
60 return lhs.mptID_ <=> rhs.mptID_;
61}
62
65inline bool
66isXRP(MPTID const&)
67{
68 return false;
69}
70
72to_json(MPTIssue const& mptIssue);
73
75to_string(MPTIssue const& mptIssue);
76
77MPTIssue
79
80} // namespace ripple
81
82#endif // XRPL_PROTOCOL_MPTISSUE_H_INCLUDED
Represents a JSON value.
Definition json_value.h:131
std::string getText() const
Definition MPTIssue.cpp:33
MPTIssue()=default
friend constexpr std::weak_ordering operator<=>(MPTIssue const &lhs, MPTIssue const &rhs)
Definition MPTIssue.h:58
AccountID const & getIssuer() const
Definition MPTIssue.cpp:21
friend constexpr bool operator==(MPTIssue const &lhs, MPTIssue const &rhs)
Definition MPTIssue.h:52
void setJson(Json::Value &jv) const
Definition MPTIssue.cpp:39
bool native() const
Definition MPTIssue.h:45
constexpr MPTID const & getMptID() const
Definition MPTIssue.h:27
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
bool isXRP(AccountID const &c)
Definition AccountID.h:71
constexpr std::strong_ordering operator<=>(base_uint< Bits, Tag > const &lhs, base_uint< Bits, Tag > const &rhs)
Definition base_uint.h:544
MPTIssue mptIssueFromJson(Json::Value const &jv)
Definition MPTIssue.cpp:59
Json::Value to_json(Asset const &asset)
Definition Asset.h:104
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
constexpr bool operator==(base_uint< Bits, Tag > const &lhs, base_uint< Bits, Tag > const &rhs)
Definition base_uint.h:566