#aleo #agent #api-bindings #deployment #aleo-hq #aleo-rs

无std aleo-agent

用于与Aleo区块链通信的代理库,遵循公共规范

2个版本 (1个稳定版)

1.0.1 2024年5月8日
1.0.0-alpha2024年5月7日

#578数据结构

每月43次下载

Apache-2.0GPL-3.0 许可证

65KB
1K SLoC

aleo-agent

aleo-agent是一个易于使用的库,用于在Rust中与Aleo网络交互


lib.rs:

aleo-agent是一个易于使用的库,使您能够使用Rust构建应用程序并与Aleo网络交互。

概述

aleo-agent提供了一套用于部署和执行程序的工具,以及与Aleo网络通信的工具。

代理设计用于公开与Aleo网络通信的底层API(例如节点API)以及与部署程序通信的高级API。

示例

在这个示例中,对Aleo网络的调用展示了如何创建一个代理来访问其公开余额并将1个信用(相当于1,000,000个微信用)从公开余额转移到接收者地址。

use aleo_agent::account::Account;
use aleo_agent::agent::{Agent, TransferArgs, TransferType};
use aleo_agent::{Address, MICROCREDITS};
use anyhow::Result;
use std::str::FromStr;

// recipient address format: aleo1...
fn transfer_public_balance(recipient_address : &str) -> Result<()> {
    // private key format: APrivateKey1zkp...
    let private_key = "YOUR PRIVATE KEY";
    // build an account using the private key
    let account = Account::from_private_key(private_key)?;
    // build an agent using the account
    let agent = Agent::builder().with_account(account).build();
    
    let public_balance = agent.get_public_balance()?;
    println!("Public Balance : {}", public_balance);
    
    let recipient_address = Address::from_str(recipient_address).expect("Invalid recipient address");
    // transfer 1 credit to recipient_address
    let transfer_args = TransferArgs::from(
        MICROCREDITS, // 1 credit
        recipient_address,
        1,
        None,
        TransferType::Public,
    );
    let tx_hash = agent.transfer(transfer_args)?;
    println!("Transfer tx hash: {}", tx_hash);
    
    Ok(())
}

有关此示例中使用的代理接口的更多信息,请参阅agent模块中的示例。

参考资料

有关Aleo网络和Aleo程序简介,请参阅以下资源

依赖项

~67MB
~1M SLoC