#anchor #programs #rpc #account #rpc-client #interact #signer

anchor-client

用于与 Anchor 程序交互的 RPC 客户端

47 个版本 (29 个破坏性版本)

0.30.1 2024 年 6 月 20 日
0.29.0 2023 年 10 月 16 日
0.28.0 2023 年 6 月 9 日
0.27.0 2023 年 3 月 8 日
0.3.0 2021 年 3 月 12 日

#13 in #anchor

Download history 1604/week @ 2024-05-03 1622/week @ 2024-05-10 1894/week @ 2024-05-17 1931/week @ 2024-05-24 1973/week @ 2024-05-31 1822/week @ 2024-06-07 1667/week @ 2024-06-14 2329/week @ 2024-06-21 1638/week @ 2024-06-28 1800/week @ 2024-07-05 1609/week @ 2024-07-12 2104/week @ 2024-07-19 2221/week @ 2024-07-26 1882/week @ 2024-08-02 2450/week @ 2024-08-09 1553/week @ 2024-08-16

8,441 每月下载次数
55 个 crate 中使用 (47 个直接使用)

Apache-2.0

46KB
983

一个用于与用 anchor_lang 编写的 Solana 程序交互的 RPC 客户端。

示例

一个简单的示例,创建客户端,发送交易并获取账户

use std::rc::Rc;

use anchor_client::{
    solana_sdk::{
        signature::{read_keypair_file, Keypair},
        signer::Signer,
        system_program,
    },
    Client, Cluster,
};
use my_program::{accounts, instruction, MyAccount};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create client
    let payer = read_keypair_file("keypair.json")?;
    let client = Client::new(Cluster::Localnet, Rc::new(payer));

    // Create program
    let program = client.program(my_program::ID)?;

    // Send a transaction
    let my_account_kp = Keypair::new();
    program
        .request()
        .accounts(accounts::Initialize {
            my_account: my_account_kp.pubkey(),
            payer: program.payer(),
            system_program: system_program::ID,
        })
        .args(instruction::Initialize { field: 42 })
        .signer(&my_account_kp)
        .send()?;

    // Fetch an account
    let my_account: MyAccount = program.account(my_account_kp.pubkey())?;
    assert_eq!(my_account.field, 42);

    Ok(())
}

更多示例可以在 这里 找到。

功能

客户端默认为阻塞式。要启用异步客户端,请添加 async 功能

anchor-client = { version = "0.30.1 ", features = ["async"] }

依赖项

~75MB
~1.5M SLoC