xrpld
Loading...
Searching...
No Matches
PathfinderUtils.h
1#pragma once
2
3#include <xrpl/protocol/Issue.h>
4#include <xrpl/protocol/MPTIssue.h>
5#include <xrpl/protocol/Protocol.h>
6#include <xrpl/protocol/STAmount.h>
7#include <xrpl/protocol/SystemParameters.h>
8
9namespace xrpl {
10
11inline STAmount
13{
14 return amt.asset().visit(
15 [&](Issue const& issue) -> STAmount {
16 if (issue.native())
17 return kInitialXrp;
19 },
20 [&](MPTIssue const&) { return STAmount(amt.asset(), kMaxMpTokenAmount, 0); });
21}
22
23inline STAmount
24convertAmount(STAmount const& amt, bool all)
25{
26 if (!all)
27 return amt;
28
29 return largestAmount(amt);
30};
31
32inline bool
34{
35 return a == largestAmount(a);
36}
37
38} // namespace xrpl
constexpr auto visit(Visitors &&... visitors) const -> decltype(auto)
Definition Asset.h:117
A currency issued by an account.
Definition Issue.h:18
bool native() const
Definition Issue.cpp:54
Asset const & asset() const
Definition STAmount.h:496
static constexpr std::uint64_t kMaxValue
Definition STAmount.h:67
static constexpr int kMaxOffset
Definition STAmount.h:62
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
STAmount convertAmount(STAmount const &amt, bool all)
STAmount largestAmount(STAmount const &amt)
bool convertAllCheck(STAmount const &a)
constexpr std::uint64_t kMaxMpTokenAmount
The maximum amount of MPTokenIssuance.
Definition Protocol.h:296
constexpr XRPAmount kInitialXrp
Configure the native currency.