#transaction #near #signing #facilitate #creation #blockchain #builder

near-transactions

NEAR区块链上创建、操作和签名交易的底层抽象

1 个不稳定版本

0.1.0-alpha2024年3月20日

#31 in #facilitate


2 个crate中使用(通过 near-accounts

MIT/Apache

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-transactionscrate的贡献!请随时提交pull请求或打开问题来提出改进或添加新功能的建议。

依赖关系

~30–44MB
~647K SLoC