shuttle-sdk 0.1.0

Stellar Horizon Server client.
Documentation
use std::collections::HashMap;
use shuttle_core::{SignedTransaction, ToXdr};
use error::Result;
use client::{self, InnerClient};

#[derive(Debug, Clone)]
pub struct SubmitTransactionRequest {
    inner: InnerClient,
    tx_envelope: String,
}

impl SubmitTransactionRequest {
    pub fn new(inner: InnerClient, tx: &SignedTransaction) -> Result<SubmitTransactionRequest> {
        let tx_envelope = tx.to_base64()?;
        Ok(SubmitTransactionRequest { inner, tx_envelope })
    }

    pub fn send(&self) -> Result<SubmitTransactionResponse> {
        let mut body = HashMap::new();
        body.insert("tx", self.tx_envelope.clone());
        client::parse_response(&mut self.inner.post(&["transactions"])?.form(&body).send()?)
    }
}

#[derive(Debug, Clone, Deserialize)]
pub struct SubmitTransactionResponse {
    hash: String,
    ledger: u64,
    envelope_xdr: String,
    result_xdr: String,
    result_meta_xdr: String,
}