2018-05-12 16:57:28 -07:00
|
|
|
//! The `request` module defines the messages for the thin client.
|
|
|
|
|
2018-08-10 21:13:34 -07:00
|
|
|
use bank::Account;
|
2018-05-12 16:57:28 -07:00
|
|
|
use hash::Hash;
|
2018-08-09 08:13:57 -07:00
|
|
|
use signature::{Pubkey, Signature};
|
2018-05-12 16:57:28 -07:00
|
|
|
|
|
|
|
#[cfg_attr(feature = "cargo-clippy", allow(large_enum_variant))]
|
2018-07-11 20:10:25 -07:00
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone, Copy)]
|
2018-05-12 16:57:28 -07:00
|
|
|
pub enum Request {
|
2018-08-10 21:13:34 -07:00
|
|
|
GetAccount { key: Pubkey },
|
2018-05-14 08:35:10 -07:00
|
|
|
GetLastId,
|
2018-05-14 06:16:39 -07:00
|
|
|
GetTransactionCount,
|
2018-06-28 11:58:33 -07:00
|
|
|
GetSignature { signature: Signature },
|
2018-08-13 08:55:13 -07:00
|
|
|
GetFinality,
|
2018-05-12 16:57:28 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Request {
|
|
|
|
/// Verify the request is valid.
|
|
|
|
pub fn verify(&self) -> bool {
|
2018-05-15 11:15:29 -07:00
|
|
|
true
|
2018-05-12 16:57:28 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
pub enum Response {
|
2018-08-10 21:13:34 -07:00
|
|
|
Account {
|
|
|
|
key: Pubkey,
|
|
|
|
account: Option<Account>,
|
|
|
|
},
|
|
|
|
LastId {
|
|
|
|
id: Hash,
|
|
|
|
},
|
|
|
|
TransactionCount {
|
|
|
|
transaction_count: u64,
|
|
|
|
},
|
|
|
|
SignatureStatus {
|
|
|
|
signature_status: bool,
|
|
|
|
},
|
|
|
|
Finality {
|
|
|
|
time: usize,
|
|
|
|
},
|
2018-05-12 16:57:28 -07:00
|
|
|
}
|