| Crates.io | soroban-decimal |
| lib.rs | soroban-decimal |
| version | 1.1.0 |
| created_at | 2024-05-08 13:10:56.54633+00 |
| updated_at | 2024-08-27 13:51:58.230117+00 |
| description | A precise decimal arithmetic package for Soroban contracts |
| homepage | |
| repository | https://github.com/Phoenix-Protocol-Group/phoenix-contracts |
| max_upload_size | |
| id | 1233772 |
| size | 77,609 |
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.
new(value: i128) -> Self: Creates a new Decimal.
raw(value: i128) -> Self: Returns the raw value from i128.
one() -> Self: Create a 1.0 Decimal.
zero() -> Self: Create a 0.0 Decimal.
percent(x: i64) -> Self: Convert x% 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 inverse 1/d for decimal d.
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.
new(value: u128) -> Self: Creates a new Decimal.
raw(value: u128) -> Self: Returns the raw value from u128.
one() -> Self: Create a 1.0 Decimal.
zero() -> Self: Create a 0.0 Decimal.
percent(x: u64) -> Self: Convert x% into Decimal.
permille(x: u64) -> Self: Convert permille (x/1000) into Decimal.
bps(x: u64) -> Self: Convert basis points (x/10000) into Decimal.
from_atomics(atomics: u128, decimal_places: i32) -> Self: Creates a Decimal from atomic units and decimal places.
inv(&self) -> Option<Self>: Returns the multiplicative inverse 1/d for decimal d.
from_ratio(numerator: impl Into<U256>, denominator: impl Into<U256>) -> 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.
N.B.: from_atomics(atomics: u128, decimal_places: i32) -> Self currently supports maximum 38 as input for decimcal_places