Crates.io | soroban-decimal |
lib.rs | soroban-decimal |
version | 1.1.0 |
source | src |
created_at | 2024-05-08 13:10:56.54633 |
updated_at | 2024-08-27 13:51:58.230117 |
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