1 个不稳定版本
0.1.0-alpha | 2024年3月20日 |
---|
#31 in #facilitate
在 2 个crate中使用(通过 near-accounts)
10KB
107 代码行
near-transactions
“near-transactions”crate是一个Rust crate,旨在简化NEAR区块链上创建、操作和签名交易的过程。利用构建器模式,这个crate提供了一种流畅且灵活的方式来程序化构建交易,简化了与区块链交互的过程。
特性
-
交易构建器:本crate的核心是TransactionBuilder,一个引导用户构建交易的struct。从基本细节,如签名者和接收者ID开始,通过添加操作(如代币转账、合约部署和函数调用)逐步构建交易。
-
全面操作支持:支持各种操作,包括创建账户、部署合约、转账代币、抵押代币、添加密钥、删除密钥和删除账户。这允许在NEAR区块链上执行复杂的操作。
-
签名交易:一旦交易完全构建,就可以使用签名者进行签名。
-
可扩展性:设计时考虑到可扩展性,允许在不破坏现有实现的情况下添加更多操作和功能。
入门
将near-transactions添加到您的Cargo.toml中以开始构建和签名交易
[dependencies]
near-transactions = "0.1.0-alpha"
示例用法
use near_transactions::TransactionBuilder;
use near_crypto::{InMemorySigner, KeyType};
use near_primitives::types::{AccountId, Balance, Gas};
fn main() {
// Initialize a signer
let signer = InMemorySigner::from_seed("example.signer", KeyType::ED25519, "seed");
// Build a transaction
let transaction = TransactionBuilder::new(
"example.signer.near".parse().unwrap(),
signer.public_key(),
"example.receiver.near".parse().unwrap(),
1, // nonce
"e...".parse().unwrap(), // block hash
)
.transfer(100_000_000_000_000_000_000_000_000) // transferring 100 NEAR
.sign_transaction(&signer); // Sign the transaction
// Now `transaction` is ready to be sent to the blockchain
}
此示例演示了如何构建并签名一个简单的转账代币的交易。这个过程涉及创建一个TransactionBuilder
,添加所需的操作,最后使用签名者签名交易。
贡献
我们欢迎对near-transactions
crate的贡献!请随时提交pull请求或打开问题来提出改进或添加新功能的建议。
依赖关系
~30–44MB
~647K SLoC