3#include <xrpl/protocol/Asset.h>
4#include <xrpl/protocol/STAmount.h>
6#include <boost/operators.hpp>
20struct Rate :
private boost::totally_ordered<Rate>
34 return lhs.value == rhs.value;
40 return lhs.value < rhs.value;
51multiply(STAmount
const& amount, Rate
const& rate);
54multiplyRound(STAmount
const& amount, Rate
const& rate,
bool roundUp);
57multiplyRound(STAmount
const& amount, Rate
const& rate, Asset
const& asset,
bool roundUp);
60divide(STAmount
const& amount, Rate
const& rate);
63divideRound(STAmount
const& amount, Rate
const& rate,
bool roundUp);
66divideRound(STAmount
const& amount, Rate
const& rate, Asset
const& asset,
bool roundUp);
Rate transferFeeAsRate(std::uint16_t fee)
Given a transfer fee (in basis points) convert it to a transfer rate.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
STAmount divide(STAmount const &amount, Rate const &rate)
bool operator<(Slice const &lhs, Slice const &rhs) noexcept
constexpr bool operator==(BaseUInt< Bits, Tag > const &lhs, BaseUInt< Bits, Tag > const &rhs)
std::ostream & operator<<(std::ostream &out, BaseUInt< Bits, Tag > const &u)
STAmount multiplyRound(STAmount const &amount, Rate const &rate, bool roundUp)
Rate const kParityRate
A transfer rate signifying a 1:1 exchange.
STAmount multiply(STAmount const &amount, Number const &frac, Number::RoundingMode rm)
STAmount divideRound(STAmount const &amount, Rate const &rate, bool roundUp)
Represents a transfer rate.