xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol
Rate.h
1
#pragma once
2
3
#include <xrpl/protocol/Asset.h>
4
#include <xrpl/protocol/STAmount.h>
5
6
#include <boost/operators.hpp>
7
8
#include <
cstdint
>
9
#include <
ostream
>
10
11
namespace
xrpl
{
12
20
struct
Rate
:
private
boost::totally_ordered<Rate>
21
{
22
std::uint32_t
value
;
23
24
Rate
() =
delete
;
25
26
explicit
Rate
(
std::uint32_t
rate) :
value
(rate)
27
{
28
}
29
};
30
31
inline
bool
32
operator==
(
Rate
const
& lhs,
Rate
const
& rhs)
noexcept
33
{
34
return
lhs.value == rhs.value;
35
}
36
37
inline
bool
38
operator<
(
Rate
const
& lhs,
Rate
const
& rhs)
noexcept
39
{
40
return
lhs.value < rhs.value;
41
}
42
43
inline
std::ostream
&
44
operator<<
(
std::ostream
& os,
Rate
const
& rate)
45
{
46
os << rate.
value
;
47
return
os;
48
}
49
50
STAmount
51
multiply
(STAmount
const
& amount, Rate
const
& rate);
52
53
STAmount
54
multiplyRound
(STAmount
const
& amount, Rate
const
& rate,
bool
roundUp);
55
56
STAmount
57
multiplyRound
(STAmount
const
& amount, Rate
const
& rate, Asset
const
& asset,
bool
roundUp);
58
59
STAmount
60
divide
(STAmount
const
& amount, Rate
const
& rate);
61
62
STAmount
63
divideRound
(STAmount
const
& amount, Rate
const
& rate,
bool
roundUp);
64
65
STAmount
66
divideRound
(STAmount
const
& amount, Rate
const
& rate, Asset
const
& asset,
bool
roundUp);
67
68
namespace
nft {
72
Rate
73
transferFeeAsRate
(
std::uint16_t
fee);
74
75
}
// namespace nft
76
80
extern
Rate
const
kParityRate
;
81
82
}
// namespace xrpl
std::ostream
cstdint
std::uint32_t
xrpl::nft::transferFeeAsRate
Rate transferFeeAsRate(std::uint16_t fee)
Given a transfer fee (in basis points) convert it to a transfer rate.
Definition
Rate2.cpp:26
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::divide
STAmount divide(STAmount const &amount, Rate const &rate)
Definition
Rate2.cpp:69
xrpl::operator<
bool operator<(Slice const &lhs, Slice const &rhs) noexcept
Definition
Slice.h:212
xrpl::operator==
constexpr bool operator==(BaseUInt< Bits, Tag > const &lhs, BaseUInt< Bits, Tag > const &rhs)
Definition
base_uint.h:612
xrpl::operator<<
std::ostream & operator<<(std::ostream &out, BaseUInt< Bits, Tag > const &u)
Definition
base_uint.h:672
xrpl::multiplyRound
STAmount multiplyRound(STAmount const &amount, Rate const &rate, bool roundUp)
Definition
Rate2.cpp:45
xrpl::kParityRate
Rate const kParityRate
A transfer rate signifying a 1:1 exchange.
xrpl::multiply
STAmount multiply(STAmount const &amount, Number const &frac, Number::RoundingMode rm)
Definition
AMMHelpers.cpp:293
xrpl::divideRound
STAmount divideRound(STAmount const &amount, Rate const &rate, bool roundUp)
Definition
Rate2.cpp:80
ostream
xrpl::Rate
Represents a transfer rate.
Definition
Rate.h:21
xrpl::Rate::value
std::uint32_t value
Definition
Rate.h:22
xrpl::Rate::Rate
Rate()=delete
xrpl::Rate::Rate
Rate(std::uint32_t rate)
Definition
Rate.h:26
Generated by
1.17.0