docs.rs failed to build cosmos-grpc-client-3.0.1
Please check the
build logs for more information.
See
Builds for ideas on how to fix a failed build,
or
Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault,
open an issue.
Cosmos Grpc Client
Grpc client interface with wallet abstraction to perform queries, build and sign transaction within a single packages.
Package

Usage
Add cosmos-grpc-client = "3.0.1" into your Cargo.toml
use {
cosmos_grpc_client::{
cosmos_sdk_proto::{
cosmos::{
bank::v1beta1::{MsgSend, QueryBalanceRequest, QueryBalanceResponse},
base::v1beta1::Coin,
},
traits::Message,
},
osmosis_std::types::osmosis::{
gamm::v1beta1::Pool,
poolmanager::v1beta1::{PoolRequest, PoolResponse},
},
BroadcastMode, CoinType, Decimal, GrpcClient, ProstMsgNameToAny, Wallet,
OSMOSIS_GRPC_TESTNET,
},
std::str::FromStr,
};
#[tokio::main]
async fn main() {
let client = GrpcClient::new(OSMOSIS_GRPC_TESTNET).await.unwrap();
let request = QueryBalanceRequest {
address: "osmo123...".to_string(),
denom: "uosmo".to_string(),
};
let response = client
.clients
.clone()
.bank
.balance(request)
.await
.unwrap()
.into_inner();
println!(
"Balance of address osmo123..., {:?}",
response.clone().balance.unwrap()
);
let request = QueryBalanceRequest {
address: "osmo123...".to_string(),
denom: "uosmo".to_string(),
};
let c_response: QueryBalanceResponse = client
.proto_query(request, "/cosmos.bank.v1beta1.Query/Balance")
.await
.unwrap();
assert_eq!(response, c_response);
let request = PoolRequest { pool_id: 1 };
let response: PoolResponse = client
.proto_query(request, "/osmosis.poolmanager.v1beta1.Query/Pool")
.await
.unwrap();
let pool = Pool::decode(response.pool.unwrap().value.as_slice()).unwrap();
println!("{pool:#?}");
let mut wallet = Wallet::from_seed_phrase(
client,
"ball fish ...",
"osmo",
CoinType::Cosmos, 0,
Decimal::from_str("0.015").unwrap(),
Decimal::from_str("1.5").unwrap(),
"uosmo",
)
.await
.unwrap();
let msg = MsgSend {
from_address: wallet.account_address.clone(),
to_address: "osmo123...".to_string(),
amount: vec![Coin {
denom: "osmo".to_string(),
amount: "100".to_string(),
}],
}
.build_any();
let response = wallet
.broadcast_tx(
vec![msg],
None,
None,
BroadcastMode::Sync,
)
.await
.unwrap();
println!("response: {response:#?}")
}