1 个不稳定发布
0.1.0-alpha | 2024 年 3 月 20 日 |
---|
#18 在 #transactions
用于 near-api-lib
70KB
289 行
near-accounts
near-accounts
是一个 Rust 包,旨在简化与 NEAR 协议账户的交互。在较低级别的 near-transactions
和 near-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