From d746baad799ac159a2c2097bb5e7549f5d7170b9 Mon Sep 17 00:00:00 2001 From: Web3 Philosopher Date: Mon, 24 Apr 2023 08:41:54 +0100 Subject: [PATCH] consensus updates (#32) --- Cargo.toml | 3 ++- src/{consensus_client.rs => consensus.rs} | 0 src/error.rs | 2 +- src/handlers.rs | 8 +++----- src/handlers/consensus.rs | 13 ++----------- src/host.rs | 2 +- src/lib.rs | 2 +- src/messaging.rs | 10 ++++------ src/router.rs | 2 +- 9 files changed, 15 insertions(+), 27 deletions(-) rename src/{consensus_client.rs => consensus.rs} (100%) diff --git a/Cargo.toml b/Cargo.toml index 907cda3d8..cfcaf6bb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,8 @@ name = "ismp" version = "0.1.0" edition = "2021" -authors = ["Polytope Labs"] +description = "Rust implementation of the ISMP protocol" +authors = ["Polytope Labs "] [package.metadata.docs.rs] all-features = true diff --git a/src/consensus_client.rs b/src/consensus.rs similarity index 100% rename from src/consensus_client.rs rename to src/consensus.rs diff --git a/src/error.rs b/src/error.rs index 15f57e418..e89913aca 100644 --- a/src/error.rs +++ b/src/error.rs @@ -16,7 +16,7 @@ //! ISMP error definitions use crate::{ - consensus_client::{ConsensusClientId, StateMachineHeight}, + consensus::{ConsensusClientId, StateMachineHeight}, host::StateMachine, }; use alloc::string::String; diff --git a/src/handlers.rs b/src/handlers.rs index 067268f70..c38493ad7 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -16,7 +16,7 @@ //! ISMP handler definitions use crate::{ - consensus_client::{ConsensusClient, ConsensusClientId, StateMachineHeight}, + consensus::{ConsensusClient, ConsensusClientId, StateMachineHeight}, error::Error, host::ISMPHost, messaging::{Message, Proof}, @@ -29,6 +29,8 @@ mod request; mod response; mod timeout; +pub use consensus::create_consensus_client; + pub struct ConsensusUpdateResult { /// Consensus client Id pub consensus_client_id: ConsensusClientId, @@ -46,7 +48,6 @@ pub enum MessageResult { ConsensusMessage(ConsensusUpdateResult), Request(Vec), Response(Vec), - ConsensusClientCreated(ConsensusClientCreatedResult), Timeout(Vec), } @@ -59,9 +60,6 @@ where Message::Consensus(consensus_message) => consensus::handle(host, consensus_message), Message::Request(req) => request::handle(host, req), Message::Response(resp) => response::handle(host, resp), - Message::CreateConsensusClient(create_consensus_client_message) => { - consensus::create_consensus_client(host, create_consensus_client_message) - } Message::Timeout(timeout) => timeout::handle(host, timeout), } } diff --git a/src/handlers/consensus.rs b/src/handlers/consensus.rs index a93ca903b..6a920645e 100644 --- a/src/handlers/consensus.rs +++ b/src/handlers/consensus.rs @@ -91,18 +91,10 @@ where pub fn create_consensus_client( host: &H, message: CreateConsensusClient, -) -> Result +) -> Result where H: ISMPHost, { - // Do not attempt to create a new consensus client if consensus state already exists for the - // client - if host.consensus_state(message.consensus_client_id).is_ok() { - return Err(Error::CannotCreateAlreadyExistingConsensusClient { - id: message.consensus_client_id, - }) - } - // Store the initial state for the consensus client host.store_consensus_state(message.consensus_client_id, message.consensus_state)?; @@ -116,6 +108,5 @@ where host.store_consensus_update_time(message.consensus_client_id, host.timestamp())?; - let result = ConsensusClientCreatedResult { consensus_client_id: message.consensus_client_id }; - Ok(MessageResult::ConsensusClientCreated(result)) + Ok(ConsensusClientCreatedResult { consensus_client_id: message.consensus_client_id }) } diff --git a/src/host.rs b/src/host.rs index 9e0a4b093..3d6c40358 100644 --- a/src/host.rs +++ b/src/host.rs @@ -16,7 +16,7 @@ //! The ISMPHost definition use crate::{ - consensus_client::{ + consensus::{ ConsensusClient, ConsensusClientId, StateCommitment, StateMachineHeight, StateMachineId, }, error::Error, diff --git a/src/lib.rs b/src/lib.rs index 0256535f8..0e6fc7df3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,7 +25,7 @@ extern crate alloc; extern crate core; -pub mod consensus_client; +pub mod consensus; pub mod error; pub mod handlers; pub mod host; diff --git a/src/messaging.rs b/src/messaging.rs index 3f7be74df..ee1e19304 100644 --- a/src/messaging.rs +++ b/src/messaging.rs @@ -16,7 +16,7 @@ //! ISMP message types use crate::{ - consensus_client::{ConsensusClientId, IntermediateState, StateMachineHeight}, + consensus::{ConsensusClientId, IntermediateState, StateMachineHeight}, router::{Request, Response}, }; use alloc::vec::Vec; @@ -76,13 +76,11 @@ pub struct Proof { #[derive(Debug, Clone, Encode, Decode, scale_info::TypeInfo, PartialEq, Eq)] pub enum Message { #[codec(index = 0)] - CreateConsensusClient(CreateConsensusClient), - #[codec(index = 1)] Consensus(ConsensusMessage), - #[codec(index = 2)] + #[codec(index = 1)] Request(RequestMessage), - #[codec(index = 3)] + #[codec(index = 2)] Response(ResponseMessage), - #[codec(index = 4)] + #[codec(index = 3)] Timeout(TimeoutMessage), } diff --git a/src/router.rs b/src/router.rs index a4c2dbbd4..2f5f60812 100644 --- a/src/router.rs +++ b/src/router.rs @@ -15,7 +15,7 @@ //! ISMPRouter definition -use crate::{consensus_client::StateMachineHeight, host::StateMachine, prelude::Vec}; +use crate::{consensus::StateMachineHeight, host::StateMachine, prelude::Vec}; use alloc::string::String; use codec::{Decode, Encode}; use core::time::Duration;