#contracts #token #ibc #type #asset-info #orai-dex #oraichain

oraiswap

Common oraiswap types used in different Oraichain Labs contracts like oraiDEX, IBC Wasm

3 releases (stable)

1.0.1 Jul 26, 2023
1.0.0 Feb 10, 2023
0.1.1 Jul 26, 2023

#4 in #asset-info

37 downloads per month
Used in cw20-ics20-msg

MIT license

83KB
2K SLoC

Oraiswap: Common Types

This is a collection of common types and the queriers which are commonly used in oraiswap contracts.

Data Types

AssetInfo

AssetInfo is a convience wrapper to represent the native token and the contract token as a single type. Currently there only Orai native token in Oraichain blockchain.

#[cw_serde]
pub enum AssetInfo {
    Token { contract_addr: Addr },
    NativeToken { denom: String },
}

Asset

It contains asset info with the amount of token.

pub struct Asset {
    pub info: AssetInfo,
    pub amount: Uint128,
}

PairInfo

It is used to represent response data of Pair-Info-Querier

pub struct PairInfo {
    pub contract_addr: Addr,
    pub asset_infos: [AssetInfo; 2],
}

Queriers

Native Token Balance Querier

It uses CosmWasm standard interface to query the account balance to chain.

pub fn query_balance(
    querier: &QuerierWrapper,
    account_addr: Addr,
    denom: String,
) -> StdResult<Uint128> {

Token Balance Querier

It provides simliar query interface with Native-Token-Balance-Querier for CW20 token balance.

pub fn query_token_balance(
    querier: &QuerierWrapper,
    contract_addr: Addr,
    account_addr: Addr,
) -> StdResult<Uint128> {

Token Supply Querier

It provides token supply querier for CW20 token contract.

pub fn query_supply(
    querier: &QuerierWrapper,
    contract_addr: Addr,
) -> StdResult<Uint128> {

Pair Info Querier

It also provides the query interface to query avaliable oraiswap pair contract info. Any contract can query pair info to oraiswap factory contract.

pub fn query_pair_info(
    querier: &QuerierWrapper,
    factory_contract: Addr,
    asset_infos: &[AssetInfo; 2],
) -> StdResult<PairInfo> {

Dependencies

~5.5–8MB
~168K SLoC