1 个不稳定版本
0.0.1 | 2022 年 2 月 5 日 |
---|
#8 in #asset-info
115KB
2K SLoC
Astroport:常见类型
这是一个常用类型和查询器的集合,这些类型和查询器在 Astroport 合约中经常被使用。
数据类型
AssetInfo
AssetInfo 是一个便利包装器,用于表示一个代币是否是本地代币(来自特定链,如 Terra 的 LUNA)以及返回该代币的合约地址。
#[serde(rename_all = "snake_case")]
pub enum AssetInfo {
Token { contract_addr: Addr },
NativeToken { denom: String },
}
Asset
它包含资产信息和代币数量。
pub struct Asset {
pub info: AssetInfo,
pub amount: Uint128,
}
PairInfo
它用于表示来自 Pair-Info-Querier 的响应数据。
pub struct PairInfo {
pub contract_addr: Addr,
pub asset_infos: [AssetInfo; 2],
pub liquidity_token: Addr,
pub pair_type: PairType,
}
查询器
本地代币余额查询器
它使用 CosmWasm 标准接口查询账户余额。
pub fn query_balance(
deps: &Extern<S, A, Q>,
account_addr: &Addr,
denom: String,
) -> StdResult<Uint128>
代币余额查询器
它提供了一个类似查询接口,用于 Native-Token-Balance-Querier 获取 CW20 代币余额。
pub fn query_token_balance(
deps: &Extern<S, A, Q>,
contract_addr: &Addr,
account_addr: &Addr,
) -> StdResult<Uint128>
代币供应查询器
它获取 CW20 代币的总供应量。
pub fn query_supply(
deps: &Extern<S, A, Q>,
contract_addr: &Addr,
) -> StdResult<Uint128>
对信息查询器
如果该对已在工厂合约中可用,则返回 Astroport 对合约地址。
pub fn query_pair_contract(
deps: &Extern<S, A, Q>,
contract_addr: &Addr,
asset_infos: &[AssetInfo; 2],
) -> StdResult<Addr>
流动性代币查询器
如果该 LP 代币已在 Astroport 中可用(有对),则返回其地址。
pub fn query_liquidity_token(
deps: &Extern<S, A, Q>,
contract_addr: &Addr,
) -> StdResult<Addr>
模拟交换对
模拟
模拟交换并返回输出量、价差和佣金金额。
pub fn simulate(
querier: &QuerierWrapper,
pair_contract: Addr,
offer_asset: &Asset,
) -> StdResult<SimulationResponse>
反向模拟
模拟反向交换并返回输入量、价差和佣金金额。
pub fn reverse_simulate(
querier: &QuerierWrapper,
pair_contract: Addr,
offer_asset: &Asset,
) -> StdResult<ReverseSimulationResponse>
依赖项
~3–4.5MB
~101K SLoC