5 #include <scorum/utils/fraction.hpp>
6 #include <scorum/utils/extra_high_bit_operations.hpp>
65 FC_ASSERT(_symbol == o._symbol);
75 FC_ASSERT(_symbol == o._symbol);
92 template <
typename FractionalNumerator,
typename FractionalDenominator>
93 asset&
operator*=(
const utils::fraction<FractionalNumerator, FractionalDenominator>& fraction)
95 amount = utils::multiply_by_fractional(
amount.value, fraction.numerator, fraction.denominator);
104 return std::tie(a._symbol, a.
amount) == std::tie(b._symbol, b.
amount);
108 FC_ASSERT(a._symbol == b._symbol);
109 return std::tie(a.
amount, a._symbol) < std::tie(b.
amount, b._symbol);
113 return (a == b) || (a < b);
157 template <
typename FractionalNumerator,
typename FractionalDenominator>
158 friend asset operator*(
const asset& a,
const utils::fraction<FractionalNumerator, FractionalDenominator>& fraction)
179 FC_ASSERT(a._symbol == b._symbol);
186 friend struct fc::reflector<
asset>;
191 void _check_symbol();
193 void _set_decimals(uint8_t d);
#define SCORUM_MAX_SHARE_SUPPLY
FC_REFLECT(appender_args,(appender)(stream)) FC_REFLECT_DERIVED(file_appender_args
void to_variant(const game_type &game, fc::variant &var)
void from_variant(const fc::variant &var, game_type &game)
fc::safe< share_value_type > share_type
utils::fraction< odds_value_type, odds_value_type > odds_fraction_type
Stream & operator>>(Stream &stream, scorum::protocol::asset &a)
uint64_t asset_symbol_type
Stream & operator<<(Stream &stream, const scorum::protocol::asset &a)
friend asset operator*(const asset &a, const utils::fraction< FractionalNumerator, FractionalDenominator > &fraction)
asset & operator-=(const asset &o)
friend asset operator*(const asset &a, const T &b_amount)
friend asset operator-(const asset &a, const asset &b)
static asset maximum(asset_symbol_type id)
asset & operator-=(const T &o_amount)
asset_symbol_type symbol() const
std::string to_string() const
int64_t precision() const
asset & operator*=(const odds &k)
static asset min(asset_symbol_type id)
friend bool operator<(const asset &a, const asset &b)
friend asset operator+(const asset &a, const asset &b)
asset & operator/=(const T &o_amount)
friend asset operator/(const asset &a, const T &b_amount)
asset & operator+=(const T &o_amount)
friend bool operator>(const asset &a, const asset &b)
friend bool operator==(const asset &a, const asset &b)
static asset from_string(const std::string &from)
friend asset operator*(const asset &a, const odds &k)
friend bool operator<=(const asset &a, const asset &b)
friend asset operator+(const asset &a, const T &b_amount)
friend bool operator>=(const asset &a, const asset &b)
asset(share_type a, asset_symbol_type id)
asset & operator*=(const utils::fraction< FractionalNumerator, FractionalDenominator > &fraction)
friend asset operator%(const asset &a, const asset &b)
friend asset operator-(const asset &a, const T &b_amount)
std::string symbol_name() const
asset & operator*=(const T &o_amount)
asset & operator+=(const asset &o)
friend bool operator!=(const asset &a, const asset &b)