pub struct TokenAmount(/* private fields */);Expand description
Raw token amount (not normalized for decimals)
This represents the raw token amount as stored on-chain in the smallest
unit (e.g., wei for ETH, satoshis for WBTC). To convert to human-readable
amounts, use normalize with the token’s TokenDecimals.
§Examples
use alloy_primitives::U256;
use semioscan::{TokenAmount, TokenDecimals};
// 1.5 ETH in wei (18 decimals)
let amount = TokenAmount::new(U256::from(1_500_000_000_000_000_000u64));
let normalized = amount.normalize(TokenDecimals::STANDARD);
assert!((normalized.as_f64() - 1.5).abs() < 0.0001);Implementations§
Source§impl TokenAmount
impl TokenAmount
Sourcepub fn normalize(&self, decimals: TokenDecimals) -> NormalizedAmount
pub fn normalize(&self, decimals: TokenDecimals) -> NormalizedAmount
Normalize by token decimals: amount / 10^decimals
Converts raw token amount to human-readable decimal form.
§Examples
use alloy_primitives::U256;
use semioscan::{TokenAmount, TokenDecimals};
// 100 USDC (6 decimals)
let raw = TokenAmount::new(U256::from(100_000_000u64));
let normalized = raw.normalize(TokenDecimals::USDC);
assert_eq!(normalized.as_f64(), 100.0);Trait Implementations§
Source§impl Add for TokenAmount
impl Add for TokenAmount
Source§impl Clone for TokenAmount
impl Clone for TokenAmount
Source§fn clone(&self) -> TokenAmount
fn clone(&self) -> TokenAmount
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TokenAmount
impl Debug for TokenAmount
Source§impl<'de> Deserialize<'de> for TokenAmount
impl<'de> Deserialize<'de> for TokenAmount
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for TokenAmount
impl Display for TokenAmount
Source§impl From<Uint<256, 4>> for TokenAmount
impl From<Uint<256, 4>> for TokenAmount
Source§impl From<u64> for TokenAmount
impl From<u64> for TokenAmount
Source§impl Ord for TokenAmount
impl Ord for TokenAmount
Source§fn cmp(&self, other: &TokenAmount) -> Ordering
fn cmp(&self, other: &TokenAmount) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for TokenAmount
impl PartialEq for TokenAmount
Source§impl PartialOrd for TokenAmount
impl PartialOrd for TokenAmount
Source§impl Serialize for TokenAmount
impl Serialize for TokenAmount
impl Copy for TokenAmount
impl Eq for TokenAmount
impl StructuralPartialEq for TokenAmount
Auto Trait Implementations§
impl Freeze for TokenAmount
impl RefUnwindSafe for TokenAmount
impl Send for TokenAmount
impl Sync for TokenAmount
impl Unpin for TokenAmount
impl UnwindSafe for TokenAmount
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.