4个版本
0.2.2 | 2022年8月27日 |
---|---|
0.2.1 | 2022年6月2日 |
0.2.0 | 2022年4月26日 |
0.1.0 | 2022年3月1日 |
#5 in #cyber
29KB
815 行
CosmWasm的Cyber绑定
此crate提供Cyber特定绑定,使您的CosmWasm智能合约可以通过公开可从合约内部发出和使用的消息和查询器与Cyber区块链交互。
绑定
目前,Cyber绑定包括
- 对以下内容的查询支持
- 图
- 粒子数量
- Cyberlinks数量
- 带宽
- 带宽价格
- 带宽负载
- 总带宽
- 神经元带宽
- 排名
- 粒子排名
- 能源
- 源路由
- 源路由能源
- 目的路由能源
- 路由
- DMN
- 思想
- 思想统计
- 最低手续费思想
- 流动性
- 池参数
- 池流动性
- 池供应
- 池价格
- 池地址
- 图
- 消息
- 图
- MsgCyberlink
- 资源
- MsgInvestmint
- 能源
- MsgCreateRoute
- MsgEditRoute
- MsgEditRouteName
- MsgDeleteRoute
- DMN
- MsgCreateThought
- MsgForgetThought
- MsgChangeThoughtInput
- MsgChangeThoughtPeriod
- MsgChangeThoughtBlock
- MsgChangeThoughtGasPrice
- MsgChangeThoughtParticle
- MsgChangeThoughtName
- 流动性
- MsgCreatePool
- MsgDepositWithinBath
- MsgWithdrawWithinBath
- MsgSwapWithinBath
- 图
使用
查询
为了使用由绑定启用的查询功能,在您的合约逻辑中创建一个 CyberQuerier
实例。您可以通过此对象访问所有启用的查询。
// src/contract.rs
use cosmwasm_std::Coin;
use cyber_std::{ CyberQuerier, RankValueResponse };
...
// handler
pub fn try_something(
deps: Deps,
_env: Env,
particle: String,
...
) -> StdResult<ParticleRankResponse> {
let querier = CyberQuerier::new(&deps.querier);
let res: ParticleRankResponse = querier.query_particle_rank(particle)?;
...
Ok(res)
}
创建消息
您可能希望您的合约在其执行结束时执行诸如 MsgCyberlink
操作之类的消息。为此,使用预定义的函数创建消息
create_cyberlink_msg
use cosmwasm_std::CosmosMsg;
use cyber_std::{ create_cyberlink_msg, CyberMsgWrapper };
...
pub fn try_something(
deps: DepsMut,
env: Env,
links: Vec<Link>,
...
) -> Result<Response, ContractError> {
...
let contract_addr = env.contract.address;
let msg: CosmosMsg<CyberMsgWrapper> = create_cyberlink_msg(contract_addr.into(), links);
let res = Response::new()
.add_message(msg);
Ok(res)
}
依赖关系
~3.5–5.5MB
~116K SLoC