Transaction - 2.1
Here you can find additional examples on how to correctly construct the payload.
use avail_rust::error::ClientError;
#[tokio::main]
async fn main() -> Result<(), ClientError> {
data_availability_create_key().await?;
balances_transfer_keep_alive().await?;
identity_set_identity().await?;
// Payload
Ok(())
}
async fn data_availability_create_key() -> Result<(), ClientError> {
let key = String::from("My Data").into_bytes();
let key = avail_rust::BoundedVec(key);
let _payload = avail_rust::avail::tx()
.data_availability()
.create_application_key(key);
Ok(())
}
async fn balances_transfer_keep_alive() -> Result<(), ClientError> {
let dest = avail_rust::account::account_id_from_str(
"5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty",
)?; // Bob
let value = avail_rust::SDK::one_avail();
let _payload = avail_rust::avail::tx()
.balances()
.transfer_keep_alive(dest.into(), value);
Ok(())
}
async fn identity_set_identity() -> Result<(), ClientError> {
use avail_rust::avail::{
identity::calls::types::set_identity::Info,
runtime_types::{
bounded_collections::bounded_vec::BoundedVec, pallet_identity::types::Data,
},
};
let display_name: [u8; 7] = String::from("My Name").into_bytes().try_into().unwrap();
let info = Info {
additional: BoundedVec(vec![(Data::None, Data::None)]),
display: Data::Raw7(display_name),
legal: Data::None,
web: Data::None,
riot: Data::None,
email: Data::None,
pgp_fingerprint: None,
image: Data::None,
twitter: Data::None,
};
let _payload = avail_rust::avail::tx().identity().set_identity(info);
Ok(())
}