1use cosmwasm_std::{Decimal, Uint128};
2use terraswap::asset::Asset;
3
4pub fn get_value_of_token(
5 principal_asset: Asset,
6 payout_decimals: u8,
7 principal_decimals: u8,
8) -> Uint128 {
9 if payout_decimals == principal_decimals {
10 principal_asset.amount
11 } else if payout_decimals > principal_decimals {
12 principal_asset.amount
13 * Uint128::from(
14 10u128
15 .checked_pow((payout_decimals - principal_decimals) as u32)
16 .unwrap(),
17 )
18 } else {
19 principal_asset.amount
20 * Decimal::from_ratio(
21 1u128,
22 10u128
23 .checked_pow((principal_decimals - payout_decimals) as u32)
24 .unwrap(),
25 )
26 }
27}