4 stable releases
Uses new Rust 2024
1.8.1 | May 15, 2025 |
---|---|
1.8.0 | Apr 11, 2025 |
1.7.1 | Feb 3, 2025 |
1.7.0 | Nov 26, 2024 |
#4 in #message-payload
243 downloads per month
55KB
1K
SLoC
Helper crate defining Gear built-in actors communication protocol.
This crate defines a set of types that contracts can use to interact with the so-called "builtin" actors - that is the actors that are defined for any Gear runtime and provide an API for the applications to build on top of some blockchain logic like staking, governance, etc. For a builtin actor to process a message, it should be able to decode its payload into one of the supported message types.
Examples
The following example shows how a contract can send a message to a builtin actor
(specifically, a staking actor) to bond some value
to self as the controller
so that the contract can later use the staking API to nominate validators.
use gstd::{msg, ActorId};
use gbuiltins::staking::{Request, RewardAccount};
use parity_scale_codec::Encode;
const BUILTIN_ADDRESS: ActorId = ActorId::new(hex_literal::hex!(
"77f65ef190e11bfecb8fc8970fd3749e94bed66a23ec2f7a3623e785d0816761"
));
#[gstd::async_main]
async fn main() {
let value = msg::value();
let payee: RewardAccount = RewardAccount::Program;
let payload = Request::Bond { value, payee }.encode();
let _ = msg::send_bytes_for_reply(BUILTIN_ADDRESS, &payload[..], 0, 0)
.expect("Error sending message")
.await;
}
# fn main() {}
Dependencies
~5MB
~106K SLoC