1 stable release
new 1.0.0 | May 8, 2024 |
---|
#2922 in Magic Beans
101 downloads per month
37KB
692 lines
Soroban Decimal
This code is taken from the cosmwasm-std crate, which is licensed under the Apache License 2.0
The contract provides a Decimal
struct for arithmetic operations, suitable for blockchain De-Fi operations, where precision is of highest importance. It ensures that calculations are accurate up to 18 decimal places.
Messages
new(value: i128) -> Self
: Creates a new Decimal.raw(value: i128) -> Self
: Returns the raw value fromi128
.one() -> Self
: Create a1.0
Decimal.zero() -> Self
: Create a0.0
Decimal.percent(x: i64) -> Self
: Convertx%
into Decimal.permille(x: i64) -> Self
: Convert permille(x/1000)
into Decimal.bps(x: i64) -> Self
: Convert basis points(x/10000)
into Decimal.from_atomics(atomics: i128, decimal_places: i32) -> Self
: Creates a Decimal from atomic units and decimal places.inv(&self) -> Option<Self>
: Returns the multiplicative inverse1/d
for decimald
.from_ratio(numerator: impl Into<i128>, denominator: impl Into<i128>) -> Self
: Returns the ratio (numerator / denominator) as a Decimal.abs(&self) -> Self
: Returns the absolute value of the Decimal.to_string(&self, env: &Env) -> String
: Converts the Decimal to a string.
Dependencies
~13MB
~282K SLoC