1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年1月26日

#23 in #submit

Apache-2.0GPL-3.0 许可证

25KB
584 代码行

shuttle-sdk

shuttle-sdk 提供了一种与 Stellar Horizon 服务器 通信的方法。

入门

  1. 获取最新版本 crates.io
  2. 阅读 文档

许可证

版权所有 2018 Francesco Ceccon [email protected]

根据 Apache 许可证,版本 2.0(“许可证”);除非根据适用法律或书面同意,否则不得使用此文件,除非符合许可证。您可以在以下位置获得许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言和限制,请参阅许可证。


lib.rs:

shuttle-sdk

shuttle-sdk 包提供了一种与 Stellar Horizon 服务器 通信的方法。

它提供了一种向 Horizon 实例提交请求,并构建、签名和提交交易到网络的方法。

示例用法

创建并资助一个新的账户

use shuttle_sdk::{KeyPair, Server};

const TESTNET_URL: &'static str = "https://horizon-testnet.stellar.org";

let keypair = KeyPair::random()?;
let account_id = keypair.public_key();

let server = Server::new(TESTNET_URL)?;
let response = server.friendbot(&account_id)?.send()?;
println!("response = {:?}", response);

获取可用资产列表

use shuttle_sdk::{KeyPair, Server};

const TESTNET_URL: &'static str = "https://horizon-testnet.stellar.org";

let keypair = KeyPair::random()?;
let account_id = keypair.public_key();

let server = Server::new(TESTNET_URL)?;
let response = server.assets().for_code("MOBI").send()?;
println!("response = {:?}", response);

创建并提交交易

use std::str::FromStr;
use shuttle_sdk::{Account, KeyPair, Network, Server};
use shuttle_sdk::{Amount, OperationBuilder, TransactionBuilder};

const TESTNET_URL: &'static str = "https://horizon-testnet.stellar.org";

let keypair = KeyPair::random()?;
let account_id = keypair.public_key();
let new_keypair = KeyPair::random()?;

let server = Server::new(TESTNET_URL)?;
let network = Network::test_network();

let account_details = server.accounts().account_id(&account_id)?.send()?;
let mut account = Account::new(account_id.clone(), account_details.sequence);
let tx = TransactionBuilder::new(&mut account)
    .operation(
        OperationBuilder::create_account(
            new_keypair.public_key().clone(),
            Amount::from_str("20.0")?,
        ).build(),
    ).build();
let signed_tx = tx.sign(&keypair, &network)?;
let response = server.submit_transaction(&signed_tx)?.send()?;
println!("response = {:?}", response);

依赖关系

~43MB
~548K SLoC