Manage Trust Connections
Trust reads work without a runner. Trust writes use the typed avatar wrappers and
submit HubV2::trust calls through your configured runner.
What exists today:
trust_relations,aggregated_trust_relations,trusts,trusted_by,mutual_trusts,is_trusting, andis_trusted_bytrust_add(&[...], expiry)andtrust_remove(&[...])on human avatars- equivalent trust helpers on organisation and group avatars
Example: add a trust edge from a human avatar
use std::sync::Arc;
use alloy_primitives::address;
use circles_sdk::{Avatar, EoaContractRunner, Sdk, config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let runner = Arc::new(
EoaContractRunner::connect(
"https://rpc.aboutcircles.com/",
"0xYOUR_PRIVATE_KEY",
)
.await?,
);
let sdk = Sdk::new(config::gnosis_mainnet(), Some(runner))?;
let me = address!("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
let other = address!("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
if let Avatar::Human(human) = sdk.get_avatar(me).await? {
let submitted = human.trust_add(&[other], 4_102_444_800).await?;
println!("submitted {} tx(s)", submitted.len());
}
Ok(())
}