Transfer Personal Circles Tokens to Different Avatar
Human avatars now support both path-based and direct transfer helpers.
Use:
plan_transfer/transferwhen pathfinding is neededplan_direct_transfer/direct_transferwhen you already know the tokenplan_replenish/replenishwhen the goal is to top up a specific token
Example: plan a path-based transfer without submitting it yet
use alloy_primitives::{U256, address};
use circles_sdk::{Avatar, Sdk, config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let sdk = Sdk::new(config::gnosis_mainnet(), None)?;
let from = address!("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
let to = address!("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
if let Avatar::Human(human) = sdk.get_avatar(from).await? {
let prepared = human
.plan_transfer(to, U256::from(1_000_000_000_000_000_000u128), None)
.await?;
println!("prepared {} tx(s)", prepared.len());
}
Ok(())
}Attach a runner and swap to transfer(...) when you want the SDK to submit the
prepared transactions for you.