14 个稳定版本
1.7.3 | 2024年7月20日 |
---|---|
1.7.2 | 2024年7月11日 |
1.7.0 | 2024年6月5日 |
1.6.0 | 2024年3月26日 |
1.1.0 | 2023年5月17日 |
#2045 在 神奇豆
每月下载量 246
42KB
868 行
为 kujira-rs 编写的模拟测试接口
添加到开发依赖项
[dev-dependencies]
kujira-rs-testing = { git = "https://github.com/team-kujira/kujira-rs-testing" }
mock.rs
这创建了一个对链核心的模拟接口,支持 Oracle 查询和 Denom 消息和查询。
n.b: 目前不支持代币铸造。目前的建议是在测试设置中通过预加载目标代币来模拟,然后检查正确的 mint
事件。
更新 Oracle 价格
app.init_modules(|router, _api, _storage| {
router
.custom
.set_oracle_price(Decimal::from_ratio(1325u128, 100u128));
});
检查铸造事件
let mint_event = res.events.iter().find(|e| e.ty == "mint").unwrap();
assert_eq!(mint_event.attributes[0], attr("amount", "8122"));
assert_eq!(mint_event.attributes[1], attr("denom", STABLE));
assert_eq!(
mint_event.attributes[2],
attr("recipient", contract.clone())
);
fin.rs
使用这些模拟合同接口添加到 mock::mock_app
let fin_code = ContractWrapper::new(
kujira_stable_testing::fin::execute,
kujira_stable_testing::fin::instantiate,
kujira_stable_testing::fin::query,
);
let fin_code_id = app.store_code(Box::new(fin_code));
let fin_contract = app
.instantiate_contract(
fin_code_id,
owner.clone(),
&kujira::fin::InstantiateMsg {
owner: Addr::unchecked("owner"),
denoms: [
Denom::Native(COLLATERAL.to_string()),
Denom::Native(STABLE.to_string()),
],
decimal_delta: None,
price_precision: Precision::DecimalPlaces(3),
},
&vec![],
"fin",
Some(owner.to_string()),
)
.unwrap();
orca.rs
同样适用于 Orca.rs
let orca_code = ContractWrapper::new(
kujira_stable_testing::orca::execute,
kujira_stable_testing::orca::instantiate,
kujira_stable_testing::orca::query,
);
let orca_code_id = app.store_code(Box::new(orca_code));
let orca_contract = app
.instantiate_contract(
orca_code_id,
owner.clone(),
&kujira::orca::InstantiateMsg {
owner: Addr::unchecked("owner"),
market: Addr::unchecked("market"),
bid_denom: Denom::Native(STABLE.to_string()),
collateral_denom: Denom::Cw20(Addr::unchecked(COLLATERAL)),
bid_threshold: Uint128::from(1000000u128),
max_slot: 20,
premium_rate_per_slot: Decimal::from_ratio(1u128, 100u128),
waiting_period: 600,
liquidation_fee: Decimal::from_ratio(1u128, 100u128),
withdrawal_fee: Decimal::from_ratio(1u128, 200u128),
fee_address: fee_address(),
},
&vec![],
"orca",
Some(owner.to_string()),
)
.unwrap();
依赖项
~5.5–9MB
~184K SLoC