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