#account #near #interaction #deployment #contract #abstraction #transaction

near-accounts

简化与 NEAR 协议账户的交互。用于管理账户、部署合约和在 NEAR 区块链上执行交易的高级抽象。

1 个不稳定发布

0.1.0-alpha2024 年 3 月 20 日

#18#transactions


用于 near-api-lib

MIT/Apache

70KB
289

near-accounts

near-accounts 是一个 Rust 包,旨在简化与 NEAR 协议账户的交互。在较低级别的 near-transactionsnear-providers 包的基础上,它为开发者提供了管理账户、部署合约和在 NEAR 区块链上执行交易的高级抽象。

特性

  • 账户管理:创建和删除 NEAR 协议账户。

  • 访问密钥管理:为账户添加和删除访问密钥。

  • 合约部署:部署和调用智能合约。

  • 交易处理:发送 NEAR 并调用合约函数,可自定义汽油费和附加存款。

  • 查询区块链状态:查看账户详情、合约状态并在合约上调用视图函数。

  • 异步 API:所有网络交互都是异步的,利用 tokio 进行高效并发。

  • 构建器模式:利用 TransactionBuilder 以灵活和错误避免的方式构建交易。

入门

near-accounts 添加到您的包中

要在项目中使用 near-accounts,请在您的 Cargo.toml 中添加以下内容

[dependencies]
near-accounts = "0.1.0-alpha"

确保您的项目中已设置 tokio 和其他依赖项以异步运行时。

用法

查看 examples 目录中的 deploy_contract.rs 示例。

#[tokio::main]
async  fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let signer_account_id: AccountId = utils::input("Enter the signer Account ID: ")?.parse()?;
let signer_secret_key = utils::input("Enter the signer's private key: ")?.parse()?;

let signer = InMemorySigner::from_secret_key(signer_account_id.clone(), signer_secret_key);
let signer = Arc::new(signer);

let provider = Arc::new(JsonRpcProvider::new("https://rpc.testnet.near.org"));

let account = Account::new(signer_account_id, signer, provider);
let wasm_code = read_wasm_file()?;

let result = account.deploy_contract(wasm_code).await;
println!("response: {:#?}", result);
Ok(())
}

示例

该包包含示例,演示如何使用各种功能。要运行示例,请使用以下命令

cargorun --example <example_name>

例如,要测试 create_account 函数

cargorun --examplecreate_subaccount

贡献

我们欢迎对 near-accounts 包的贡献!请随时提交拉取请求或打开问题,以建议改进或添加新功能。

依赖关系

~32–48MB
~762K SLoC