1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize)]
5pub struct RpcRequest {
6 pub method: String,
7 pub params: serde_json::Value,
8 pub id: u64,
9}
10
11#[derive(Debug, Serialize, Deserialize)]
13pub struct RpcResponse {
14 pub result: Option<serde_json::Value>,
15 pub error: Option<RpcError>,
16 pub id: u64,
17}
18
19#[derive(Debug, Serialize, Deserialize)]
20pub struct RpcError {
21 pub code: i32,
22 pub message: String,
23}
24
25impl RpcResponse {
26 pub fn ok(id: u64, result: serde_json::Value) -> Self {
27 Self {
28 result: Some(result),
29 error: None,
30 id,
31 }
32 }
33
34 pub fn err(id: u64, code: i32, message: String) -> Self {
35 Self {
36 result: None,
37 error: Some(RpcError { code, message }),
38 id,
39 }
40 }
41}
42
43#[derive(Debug, Serialize)]
45pub struct StatusInfo {
46 pub validator_id: u64,
47 pub current_view: u64,
48 pub last_committed_height: u64,
49 pub mempool_size: usize,
50}
51
52#[derive(Debug, Serialize)]
54pub struct TxResult {
55 pub accepted: bool,
56}