From 18679dc79c12834e8b9effac04bb5087943ea009 Mon Sep 17 00:00:00 2001 From: Romain Ruetschi Date: Fri, 31 May 2024 10:03:32 +0200 Subject: [PATCH] Add support for missing event types --- rpc/src/query.rs | 49 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/rpc/src/query.rs b/rpc/src/query.rs index 0e7d61e7d..55fc04f7d 100644 --- a/rpc/src/query.rs +++ b/rpc/src/query.rs @@ -393,17 +393,49 @@ where } /// The types of Tendermint events for which we can query at present. +/// +/// Ref: #[derive(Debug, Clone, PartialEq, Eq)] pub enum EventType { NewBlock, + NewBlockHeader, + NewBlockEvents, + NewEvidence, Tx, + ValidatorSetUpdates, + CompleteProposal, + Lock, + NewRound, + NewRoundStep, + Polka, + Relock, + TimeoutPropose, + TimeoutWait, + Unlock, + ValidBlock, + Vote, } impl fmt::Display for EventType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { EventType::NewBlock => write!(f, "NewBlock"), + EventType::NewBlockHeader => write!(f, "NewBlockHeader"), + EventType::NewBlockEvents => write!(f, "NewBlockEvents"), + EventType::NewEvidence => write!(f, "NewEvidence"), EventType::Tx => write!(f, "Tx"), + EventType::ValidatorSetUpdates => write!(f, "ValidatorSetUpdates"), + EventType::CompleteProposal => write!(f, "CompleteProposal"), + EventType::Lock => write!(f, "Lock"), + EventType::NewRound => write!(f, "NewRound"), + EventType::NewRoundStep => write!(f, "NewRoundStep"), + EventType::Polka => write!(f, "Polka"), + EventType::Relock => write!(f, "Relock"), + EventType::TimeoutPropose => write!(f, "TimeoutPropose"), + EventType::TimeoutWait => write!(f, "TimeoutWait"), + EventType::Unlock => write!(f, "Unlock"), + EventType::ValidBlock => write!(f, "ValidBlock"), + EventType::Vote => write!(f, "Vote"), } } } @@ -411,10 +443,25 @@ impl fmt::Display for EventType { impl FromStr for EventType { type Err = Error; - fn from_str(s: &str) -> Result { + fn from_str(s: &str) -> Result { match s { "NewBlock" => Ok(Self::NewBlock), + "NewBlockHeader" => Ok(Self::NewBlockHeader), + "NewBlockEvents" => Ok(Self::NewBlockEvents), + "NewEvidence" => Ok(Self::NewEvidence), "Tx" => Ok(Self::Tx), + "ValidatorSetUpdates" => Ok(Self::ValidatorSetUpdates), + "CompleteProposal" => Ok(Self::CompleteProposal), + "Lock" => Ok(Self::Lock), + "NewRound" => Ok(Self::NewRound), + "NewRoundStep" => Ok(Self::NewRoundStep), + "Polka" => Ok(Self::Polka), + "Relock" => Ok(Self::Relock), + "TimeoutPropose" => Ok(Self::TimeoutPropose), + "TimeoutWait" => Ok(Self::TimeoutWait), + "Unlock" => Ok(Self::Unlock), + "ValidBlock" => Ok(Self::ValidBlock), + "Vote" => Ok(Self::Vote), invalid => Err(Error::unrecognized_event_type(invalid.to_string())), } }