From 4518965a41f7e4b253a4943a760af76fefc878df Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Fri, 18 Oct 2019 12:38:28 -0700 Subject: [PATCH] Return txid from send --- lib/src/grpcconnector.rs | 14 ++++++++++++-- lib/src/lightclient.rs | 2 +- lib/src/lightwallet/data.rs | 1 + 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/src/grpcconnector.rs b/lib/src/grpcconnector.rs index 03bef21..0f22c67 100644 --- a/lib/src/grpcconnector.rs +++ b/lib/src/grpcconnector.rs @@ -1,10 +1,11 @@ - use log::{error}; use std::sync::{Arc}; use std::net::ToSocketAddrs; use std::net::SocketAddr; +use json::object; + use futures::{Future}; use futures::stream::Stream; @@ -280,7 +281,16 @@ pub fn broadcast_raw_tx(uri: &http::Uri, no_cert: bool, tx_bytes: Box<[u8]>) -> .and_then(move |response| { let sendresponse = response.into_inner(); if sendresponse.error_code == 0 { - Ok(format!("Successfully broadcast Tx: {}", sendresponse.error_message)) + let mut txid = sendresponse.error_message; + if txid.starts_with("\"") && txid.ends_with("\"") { + txid = txid[1..txid.len()-1].to_string(); + } + + let r = object!{ + "result" => "success", + "txid" => txid, + }; + Ok(r.pretty(2)) } else { Err(format!("Error: {:?}", sendresponse)) } diff --git a/lib/src/lightclient.rs b/lib/src/lightclient.rs index 4850ad5..2afb5db 100644 --- a/lib/src/lightclient.rs +++ b/lib/src/lightclient.rs @@ -771,7 +771,7 @@ impl LightClient { Ok(k) => k, Err(e) => e, }, - Err(e) => format!("No Tx to broadcast. Error was: {}", e) + Err(e) => format!("Error: No Tx to broadcast. Error was: {}", e) } } } diff --git a/lib/src/lightwallet/data.rs b/lib/src/lightwallet/data.rs index 8ee5c80..5a2a586 100644 --- a/lib/src/lightwallet/data.rs +++ b/lib/src/lightwallet/data.rs @@ -386,6 +386,7 @@ pub struct WalletTx { // All outgoing sapling sends to addresses outside this wallet pub outgoing_metadata: Vec, + // Whether this TxID was downloaded from the server and scanned for Memos pub full_tx_scanned: bool, }