Skip to content

Commit c9b1962

Browse files
committed
nits
Signed-off-by: Sam Batschelet <[email protected]>
1 parent 3d137e5 commit c9b1962

File tree

3 files changed

+21
-17
lines changed

3 files changed

+21
-17
lines changed

spacesvm/src/api/client.rs

+16-12
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use serde::de;
2828
pub use http::Uri;
2929
use tokio::sync::RwLock;
3030

31-
/// HTTP client for interacting with the API.
31+
/// Thread safe HTTP client for interacting with the API.
3232
pub struct Client<C> {
3333
inner: Arc<RwLock<ClientInner<C>>>,
3434
}
@@ -73,18 +73,22 @@ impl Client<HttpConnector> {
7373
}
7474

7575
/// Returns a serialized json request as string and the request id.
76-
pub async fn raw_request(&self, method: &str, params: &Params) -> (Id, String) {
76+
pub async fn raw_request(&self, method: &str, params: &Params) -> Result<(Id, String)> {
7777
let id = self.next_id().await;
7878
let request = jsonrpc_core::Request::Single(Call::MethodCall(MethodCall {
7979
jsonrpc: Some(Version::V2),
8080
method: method.to_owned(),
8181
params: params.to_owned(),
8282
id: id.clone(),
8383
}));
84-
(
85-
id,
86-
serde_json::to_string(&request).expect("jsonrpc request should be serializable"),
87-
)
84+
let request = serde_json::to_string(&request).map_err(|e| {
85+
Error::new(
86+
ErrorKind::Other,
87+
format!("jsonrpc request should be serializable: {}", e),
88+
)
89+
})?;
90+
91+
Ok((id, request))
8892
}
8993

9094
/// Returns a recoverable signature from 32 byte SHA256 message.
@@ -98,7 +102,7 @@ impl Client<HttpConnector> {
98102

99103
/// Returns a PingResponse from client request.
100104
pub async fn ping(&self) -> Result<PingResponse> {
101-
let (_id, json_request) = self.raw_request("ping", &Params::None).await;
105+
let (_id, json_request) = self.raw_request("ping", &Params::None).await?;
102106
let resp = self.post_de::<PingResponse>(&json_request).await?;
103107

104108
Ok(resp)
@@ -109,7 +113,7 @@ impl Client<HttpConnector> {
109113
let arg_value = serde_json::to_value(&DecodeTxArgs { tx_data })?;
110114
let (_id, json_request) = self
111115
.raw_request("decodeTx", &Params::Array(vec![arg_value]))
112-
.await;
116+
.await?;
113117
let resp = self.post_de::<DecodeTxResponse>(&json_request).await?;
114118

115119
Ok(resp)
@@ -127,7 +131,7 @@ impl Client<HttpConnector> {
127131
})?;
128132
let (_id, json_request) = self
129133
.raw_request("issueTx", &Params::Array(vec![arg_value]))
130-
.await;
134+
.await?;
131135
let resp = self.post_de::<IssueTxResponse>(&json_request).await?;
132136

133137
Ok(resp)
@@ -141,7 +145,7 @@ impl Client<HttpConnector> {
141145
})?;
142146
let (_id, json_request) = self
143147
.raw_request("resolve", &Params::Array(vec![arg_value]))
144-
.await;
148+
.await?;
145149
let resp = self.post_de::<ResolveResponse>(&json_request).await?;
146150

147151
Ok(resp)
@@ -241,9 +245,9 @@ pub fn get_or_create_pk(path: &str) -> Result<key::secp256k1::private_key::Key>
241245
#[tokio::test]
242246
async fn test_raw_request() {
243247
let cli = Client::new(Uri::from_static("http://test.url"));
244-
let (id, _) = cli.raw_request("ping", &Params::None).await;
248+
let (id, _) = cli.raw_request("ping", &Params::None).await?;
245249
assert_eq!(id, jsonrpc_core::Id::Num(0));
246-
let (id, req) = cli.raw_request("ping", &Params::None).await;
250+
let (id, req) = cli.raw_request("ping", &Params::None).await?;
247251
assert_eq!(id, jsonrpc_core::Id::Num(1));
248252
assert_eq!(
249253
req,

spacesvm/tests/vm/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ async fn test_api() {
113113
let client = spacesvm::api::client::Client::new(http::Uri::from_static("http://test.url"));
114114

115115
// ping
116-
let (_id, json_str) = client.raw_request("ping", &Params::None).await;
116+
let (_id, json_str) = client.raw_request("ping", &Params::None).await?;
117117
let req = http::request::Builder::new()
118118
.body(json_str.as_bytes().to_vec())
119119
.unwrap();
@@ -141,7 +141,7 @@ async fn test_api() {
141141

142142
let (_id, json_str) = client
143143
.raw_request("decodeTx", &Params::Array(vec![arg_value]))
144-
.await;
144+
.await?;
145145
log::info!("decodeTx request: {}", json_str);
146146
let req = http::request::Builder::new()
147147
.body(json_str.as_bytes().to_vec())

tests/e2e/src/tests/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ async fn e2e() {
217217
.decode_tx(claim_tx("test"))
218218
.await
219219
.expect("decodeTx success");
220-
log::info!("decode claim response from {}: {:?}", chain_url, resp);
220+
log::info!("decode claim tx response from {}: {:?}", chain_url, resp);
221221

222222
log::info!("issue claim tx request...");
223223
let resp = scli
@@ -231,14 +231,14 @@ async fn e2e() {
231231
.decode_tx(set_tx("test", "foo", "bar"))
232232
.await
233233
.expect("decodeTx success");
234-
log::info!("decode set response from {}: {:?}", chain_url, resp);
234+
log::info!("decode set tx response from {}: {:?}", chain_url, resp);
235235

236236
log::info!("issue set tx request...");
237237
let resp = scli
238238
.issue_tx(&resp.typed_data)
239239
.await
240240
.expect("issue_tx success");
241-
log::info!("issue tx tx response from {}: {:?}", chain_url, resp);
241+
log::info!("issue set tx response from {}: {:?}", chain_url, resp);
242242

243243
log::info!("issue resolve request...");
244244
let resp = scli.resolve("test", "foo").await.expect("resolve success");

0 commit comments

Comments
 (0)