3个版本
0.1.2 | 2023年5月20日 |
---|---|
0.1.1 | 2023年5月11日 |
0.1.0 | 2023年5月9日 |
#57 在 #tendermint
每月 47 次下载
用于 wasm-deploy
115KB
3K SLoC
cosm-utils
为 tendermint-rpc 和 cosmrs 提供简单的实用特性扩展。
目标
此软件包处于非常早期的发展阶段。不建议在生产环境中使用。我目前正在将此用于其他项目的开发目的。
此软件包的目标是为与 tendermint_rpc 交互提供简单的实用方法。
灵感
从 cosm-tome 分支,但侧重于更容易维护和更模块化的方法。
软件包状态
特性
features | 开发状态 |
---|---|
tendermint 0.34 | ✅ |
tendermint 0.37 | ✅ |
自动 tendermint 版本协商 | ✅ |
客户端
后端API | 开发状态 |
---|---|
Tendermint RPC HTTP/S | ✅ |
Tendermint RPC Websocket | ✅ |
模块
Cosmos模块 | 开发状态 |
---|---|
认证 | ✅ |
授权 | 🚫 |
银行 | ✅ |
Tendermint | 🔨 |
危机 | 🚫 |
分配 | 🚫 |
证据 | 🚫 |
费率授予 | 🚫 |
治理 | 🚫 |
铸币 | 🚫 |
参数 | 🚫 |
减产 | 🚫 |
质押 | 🚫 |
交易 | 🔨 |
升级 | 🚫 |
归属 | 🚫 |
CosmWasm | 🔨 |
IBC | 🚫 |
用法
只需导入 prelude
并直接在支持的客户端上使用提供的方法。
// bring traits into scope
use std::str::FromStr;
use cosm_utils::{
prelude::*,
chain::{
coin::{Coin, Denom},
request::TxOptions,
},
config::cfg::ChainConfig,
modules::{
auth::model::Address,
bank::{
api::{BankCommit, BankQuery},
model::SendRequest,
},
},
signing_key::key::{Key, SigningKey},
};
use tendermint_rpc::{Client, HttpClient, WebSocketClient};
// Get you're relevant info
// Here are some examples of what that could look like
let mnemonic = "clump subway install trick split fiction mixed hundred much lady loyal crime fuel wrap book loud mammal plunge round penalty cereal desert essence chuckle";
let address = "cosmos1ya34jc44vvqzdhmwnfhkax7v4l3sj3stkwy9h5";
let key = SigningKey {
name: "test".to_string(),
key: Key::Mnemonic(mnemonic.to_string()),
};
let chain_cfg = ChainConfig {
denom: "uatom".to_string(),
prefix: "cosmos".to_string(),
chain_id: "cosmoshub-4".to_string(),
derivation_path: "m/44'/118'/0'/0/0".to_string(),
gas_price: 0.025f64,
gas_adjustment: 1.3f64,
};
let req = SendRequest {
from: Address::from_str(address).unwrap(),
to: Address::from_str(address).unwrap(),
amounts: vec![Coin {
denom: Denom::from_str(chain_cfg.denom.as_str()).unwrap(),
amount: 1u128,
}],
};
let tx_options = TxOptions::default();
// Create your client as usual
let rpc_endpoint = "http://localhost:26657";
let client = HttpClient::new(rpc_endpoint).unwrap();
// Then use the provided methods
let res = client
.bank_send_commit(&chain_cfg, req, &key, &tx_options)
.await
.unwrap();
依赖关系
~28–41MB
~781K SLoC