diff --git a/src/request.rs b/src/request.rs index 402aafc27b..6b07ff38a2 100644 --- a/src/request.rs +++ b/src/request.rs @@ -12,6 +12,7 @@ use transaction::Transaction; pub enum Request { Transaction(Transaction), GetBalance { key: PublicKey }, + GetLastId, GetTransactionCount, Subscribe { subscriptions: Vec }, } @@ -41,6 +42,7 @@ impl Request { #[derive(Serialize, Deserialize, Debug)] pub enum Response { Balance { key: PublicKey, val: Option }, + LastId { id: Hash }, TransactionCount { transaction_count: u64 }, EntryInfo(EntryInfo), } diff --git a/src/request_processor.rs b/src/request_processor.rs index ad7f76183b..f2b6c51e25 100644 --- a/src/request_processor.rs +++ b/src/request_processor.rs @@ -46,6 +46,12 @@ impl RequestProcessor { info!("Response::Balance {:?}", rsp); Some(rsp) } + Request::GetLastId => { + let id = self.accountant.last_id(); + let rsp = (Response::LastId { id }, rsp_addr); + info!("Response::LastId {:?}", rsp); + Some(rsp) + } Request::GetTransactionCount => { let transaction_count = self.accountant.transaction_count() as u64; let rsp = (Response::TransactionCount { transaction_count }, rsp_addr); diff --git a/src/thin_client.rs b/src/thin_client.rs index b5337e75d1..eee2fec17b 100644 --- a/src/thin_client.rs +++ b/src/thin_client.rs @@ -64,6 +64,10 @@ impl ThinClient { info!("Response balance {:?} {:?}", key, val); self.balances.insert(key, val); } + Response::LastId { id } => { + info!("Response last_id {:?}", id); + self.last_id = Some(id); + } Response::TransactionCount { transaction_count } => { info!("Response transaction count {:?}", transaction_count); self.transaction_count = transaction_count;