1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//! # shuttle-sdk
//!
//! The `shuttle-sdk` crate provides a way to communicate with a
//! [Stellar Horizon Server](https://github.com/stellar/go/tree/master/services/horizon).
//!
//! It provides a way to submit requests to the Horizon instance, and to build,
//! sign, and submit transactions to the network.
//!
//! ## Example Usage
//!
//! ### Create and fund a new account
//!
//! ```rust
//! # use shuttle_sdk::Result;
//! use shuttle_sdk::{KeyPair, Server};
//!
//! const TESTNET_URL: &'static str = "https://horizon-testnet.stellar.org";
//!
//! # fn run() -> Result<()> {
//! 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);
//! # Ok(())
//! # }
//! ```
//!
//! ### Get a list of available assets
//!
//! ```rust
//! # use shuttle_sdk::Result;
//! use shuttle_sdk::{KeyPair, Server};
//!
//! const TESTNET_URL: &'static str = "https://horizon-testnet.stellar.org";
//!
//! # fn run() -> Result<()> {
//! 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);
//! # Ok(())
//! # }
//! ```
//!
//!
//! ### Create and Submit transaction
//!
//! ```rust
//! # use shuttle_sdk::Result;
//! 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";
//!
//! # fn run() -> Result<()> {
//! 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);
//! # Ok(())
//! # }
//! ```
extern crate reqwest;
extern crate serde;
extern crate serde_derive;
extern crate serde_json;
extern crate shuttle_core;
pub use ;
pub use Server;
pub use ;
// re-export shuttle_core structs
pub use ;
pub use ;
pub use ;