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