olympus_pro/
utils.rs

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}