From 43349dbc16cfe6b977e160906d0aa3ee322ca5f9 Mon Sep 17 00:00:00 2001 From: Itamar Reif <9663129+itamarreif@users.noreply.github.com> Date: Tue, 19 Nov 2024 08:26:21 +0200 Subject: [PATCH 01/16] chore(proto): move optimistic block protos to v1 (#1707) ## Summary This updates the protos used for the auctioneer to be based on the new v1 protos. ## Background We bumped our proto definition versions from `v1alpha_` to `v1`. ## Changes - Moved the `sequencerblock/optimistic_block` file into its own subpackage in order to have `sequencerblock.optimisticblock.v1alpha1` - Updated to use `FilteredSequencerBlock` from v1 ## Breaking Changelist - This shouldn't break anything as none of these protos are used by anything in main currently. closes https://github.com/astriaorg/astria/issues/1767 --- ...tria.sequencerblock.optimistic.v1alpha1.rs | 516 ++++++++++++++++++ ...equencerblock.optimistic.v1alpha1.serde.rs | 460 ++++++++++++++++ ...sequencerblock.optimisticblock.v1alpha1.rs | 516 ++++++++++++++++++ ...cerblock.optimisticblock.v1alpha1.serde.rs | 460 ++++++++++++++++ .../astria.sequencerblock.v1alpha1.rs | 506 ----------------- .../astria.sequencerblock.v1alpha1.serde.rs | 460 ---------------- crates/astria-core/src/generated/mod.rs | 12 + .../v1alpha1/service.proto} | 6 +- 8 files changed, 1967 insertions(+), 969 deletions(-) create mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.rs create mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.serde.rs create mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs create mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs rename proto/sequencerblockapis/astria/sequencerblock/{v1alpha1/optimistic_block.proto => optimistic/v1alpha1/service.proto} (88%) diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.rs new file mode 100644 index 0000000000..b52cde36b9 --- /dev/null +++ b/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.rs @@ -0,0 +1,516 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetBlockCommitmentStreamRequest {} +impl ::prost::Name for GetBlockCommitmentStreamRequest { + const NAME: &'static str = "GetBlockCommitmentStreamRequest"; + const PACKAGE: &'static str = "astria.sequencerblock.optimistic.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimistic.v1alpha1.{}", Self::NAME + ) + } +} +/// Identifying metadata for blocks that have been successfully committed in the Sequencer. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SequencerBlockCommit { + /// Height of the sequencer block that was committed. + #[prost(uint64, tag = "1")] + pub height: u64, + /// Hash of the sequencer block that was committed. + #[prost(bytes = "bytes", tag = "2")] + pub block_hash: ::prost::bytes::Bytes, +} +impl ::prost::Name for SequencerBlockCommit { + const NAME: &'static str = "SequencerBlockCommit"; + const PACKAGE: &'static str = "astria.sequencerblock.optimistic.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimistic.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetBlockCommitmentStreamResponse { + #[prost(message, optional, tag = "1")] + pub commitment: ::core::option::Option, +} +impl ::prost::Name for GetBlockCommitmentStreamResponse { + const NAME: &'static str = "GetBlockCommitmentStreamResponse"; + const PACKAGE: &'static str = "astria.sequencerblock.optimistic.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimistic.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOptimisticBlockStreamRequest { + /// The rollup id for which the Sequencer block is being streamed. + #[prost(message, optional, tag = "1")] + pub rollup_id: ::core::option::Option, +} +impl ::prost::Name for GetOptimisticBlockStreamRequest { + const NAME: &'static str = "GetOptimisticBlockStreamRequest"; + const PACKAGE: &'static str = "astria.sequencerblock.optimistic.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimistic.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOptimisticBlockStreamResponse { + /// The optimistic Sequencer block that is being streamed, filtered for the provided rollup id. + #[prost(message, optional, tag = "1")] + pub block: ::core::option::Option, +} +impl ::prost::Name for GetOptimisticBlockStreamResponse { + const NAME: &'static str = "GetOptimisticBlockStreamResponse"; + const PACKAGE: &'static str = "astria.sequencerblock.optimistic.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimistic.v1alpha1.{}", Self::NAME + ) + } +} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod optimistic_block_service_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// The Sequencer will serve this to the aucitoneer + #[derive(Debug, Clone)] + pub struct OptimisticBlockServiceClient { + inner: tonic::client::Grpc, + } + impl OptimisticBlockServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl OptimisticBlockServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> OptimisticBlockServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + OptimisticBlockServiceClient::new( + InterceptedService::new(inner, interceptor), + ) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided + /// rollup id) to the Auctioneer. + pub async fn get_optimistic_block_stream( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response< + tonic::codec::Streaming, + >, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService", + "GetOptimisticBlockStream", + ), + ); + self.inner.server_streaming(req, path, codec).await + } + /// The Sequencer will stream the block commits to the Auctioneer. + pub async fn get_block_commitment_stream( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response< + tonic::codec::Streaming, + >, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService", + "GetBlockCommitmentStream", + ), + ); + self.inner.server_streaming(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod optimistic_block_service_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with OptimisticBlockServiceServer. + #[async_trait] + pub trait OptimisticBlockService: Send + Sync + 'static { + /// Server streaming response type for the GetOptimisticBlockStream method. + type GetOptimisticBlockStreamStream: tonic::codegen::tokio_stream::Stream< + Item = std::result::Result< + super::GetOptimisticBlockStreamResponse, + tonic::Status, + >, + > + + Send + + 'static; + /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided + /// rollup id) to the Auctioneer. + async fn get_optimistic_block_stream( + self: std::sync::Arc, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Server streaming response type for the GetBlockCommitmentStream method. + type GetBlockCommitmentStreamStream: tonic::codegen::tokio_stream::Stream< + Item = std::result::Result< + super::GetBlockCommitmentStreamResponse, + tonic::Status, + >, + > + + Send + + 'static; + /// The Sequencer will stream the block commits to the Auctioneer. + async fn get_block_commitment_stream( + self: std::sync::Arc, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// The Sequencer will serve this to the aucitoneer + #[derive(Debug)] + pub struct OptimisticBlockServiceServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl OptimisticBlockServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> + for OptimisticBlockServiceServer + where + T: OptimisticBlockService, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream" => { + #[allow(non_camel_case_types)] + struct GetOptimisticBlockStreamSvc( + pub Arc, + ); + impl< + T: OptimisticBlockService, + > tonic::server::ServerStreamingService< + super::GetOptimisticBlockStreamRequest, + > for GetOptimisticBlockStreamSvc { + type Response = super::GetOptimisticBlockStreamResponse; + type ResponseStream = T::GetOptimisticBlockStreamStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetOptimisticBlockStreamRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_optimistic_block_stream( + inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetOptimisticBlockStreamSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream" => { + #[allow(non_camel_case_types)] + struct GetBlockCommitmentStreamSvc( + pub Arc, + ); + impl< + T: OptimisticBlockService, + > tonic::server::ServerStreamingService< + super::GetBlockCommitmentStreamRequest, + > for GetBlockCommitmentStreamSvc { + type Response = super::GetBlockCommitmentStreamResponse; + type ResponseStream = T::GetBlockCommitmentStreamStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetBlockCommitmentStreamRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_block_commitment_stream( + inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetBlockCommitmentStreamSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for OptimisticBlockServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService + for OptimisticBlockServiceServer { + const NAME: &'static str = "astria.sequencerblock.optimistic.v1alpha1.OptimisticBlockService"; + } +} diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.serde.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.serde.rs new file mode 100644 index 0000000000..816fc26a6c --- /dev/null +++ b/crates/astria-core/src/generated/astria.sequencerblock.optimistic.v1alpha1.serde.rs @@ -0,0 +1,460 @@ +impl serde::Serialize for GetBlockCommitmentStreamRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetBlockCommitmentStreamRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(GetBlockCommitmentStreamRequest { + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetBlockCommitmentStreamResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.commitment.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamResponse", len)?; + if let Some(v) = self.commitment.as_ref() { + struct_ser.serialize_field("commitment", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "commitment", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Commitment, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "commitment" => Ok(GeneratedField::Commitment), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetBlockCommitmentStreamResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut commitment__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Commitment => { + if commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("commitment")); + } + commitment__ = map_.next_value()?; + } + } + } + Ok(GetBlockCommitmentStreamResponse { + commitment: commitment__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetBlockCommitmentStreamResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetOptimisticBlockStreamRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.rollup_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamRequest", len)?; + if let Some(v) = self.rollup_id.as_ref() { + struct_ser.serialize_field("rollupId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rollup_id", + "rollupId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RollupId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "rollupId" | "rollup_id" => Ok(GeneratedField::RollupId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetOptimisticBlockStreamRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rollup_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RollupId => { + if rollup_id__.is_some() { + return Err(serde::de::Error::duplicate_field("rollupId")); + } + rollup_id__ = map_.next_value()?; + } + } + } + Ok(GetOptimisticBlockStreamRequest { + rollup_id: rollup_id__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetOptimisticBlockStreamResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.block.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamResponse", len)?; + if let Some(v) = self.block.as_ref() { + struct_ser.serialize_field("block", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "block", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Block, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "block" => Ok(GeneratedField::Block), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetOptimisticBlockStreamResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut block__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Block => { + if block__.is_some() { + return Err(serde::de::Error::duplicate_field("block")); + } + block__ = map_.next_value()?; + } + } + } + Ok(GetOptimisticBlockStreamResponse { + block: block__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimistic.v1alpha1.GetOptimisticBlockStreamResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SequencerBlockCommit { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.height != 0 { + len += 1; + } + if !self.block_hash.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimistic.v1alpha1.SequencerBlockCommit", len)?; + if self.height != 0 { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; + } + if !self.block_hash.is_empty() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("blockHash", pbjson::private::base64::encode(&self.block_hash).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SequencerBlockCommit { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "height", + "block_hash", + "blockHash", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Height, + BlockHash, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "height" => Ok(GeneratedField::Height), + "blockHash" | "block_hash" => Ok(GeneratedField::BlockHash), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SequencerBlockCommit; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimistic.v1alpha1.SequencerBlockCommit") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut height__ = None; + let mut block_hash__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Height => { + if height__.is_some() { + return Err(serde::de::Error::duplicate_field("height")); + } + height__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::BlockHash => { + if block_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("blockHash")); + } + block_hash__ = + Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SequencerBlockCommit { + height: height__.unwrap_or_default(), + block_hash: block_hash__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimistic.v1alpha1.SequencerBlockCommit", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs new file mode 100644 index 0000000000..612e5c9fcf --- /dev/null +++ b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs @@ -0,0 +1,516 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetBlockCommitmentStreamRequest {} +impl ::prost::Name for GetBlockCommitmentStreamRequest { + const NAME: &'static str = "GetBlockCommitmentStreamRequest"; + const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME + ) + } +} +/// Identifying metadata for blocks that have been successfully committed in the Sequencer. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SequencerBlockCommit { + /// Height of the sequencer block that was committed. + #[prost(uint64, tag = "1")] + pub height: u64, + /// Hash of the sequencer block that was committed. + #[prost(bytes = "bytes", tag = "2")] + pub block_hash: ::prost::bytes::Bytes, +} +impl ::prost::Name for SequencerBlockCommit { + const NAME: &'static str = "SequencerBlockCommit"; + const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetBlockCommitmentStreamResponse { + #[prost(message, optional, tag = "1")] + pub commitment: ::core::option::Option, +} +impl ::prost::Name for GetBlockCommitmentStreamResponse { + const NAME: &'static str = "GetBlockCommitmentStreamResponse"; + const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOptimisticBlockStreamRequest { + /// The rollup id for which the Sequencer block is being streamed. + #[prost(message, optional, tag = "1")] + pub rollup_id: ::core::option::Option, +} +impl ::prost::Name for GetOptimisticBlockStreamRequest { + const NAME: &'static str = "GetOptimisticBlockStreamRequest"; + const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME + ) + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOptimisticBlockStreamResponse { + /// The optimistic Sequencer block that is being streamed, filtered for the provided rollup id. + #[prost(message, optional, tag = "1")] + pub block: ::core::option::Option, +} +impl ::prost::Name for GetOptimisticBlockStreamResponse { + const NAME: &'static str = "GetOptimisticBlockStreamResponse"; + const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; + fn full_name() -> ::prost::alloc::string::String { + ::prost::alloc::format!( + "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME + ) + } +} +/// Generated client implementations. +#[cfg(feature = "client")] +pub mod optimistic_block_service_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// The Sequencer will serve this to the aucitoneer + #[derive(Debug, Clone)] + pub struct OptimisticBlockServiceClient { + inner: tonic::client::Grpc, + } + impl OptimisticBlockServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl OptimisticBlockServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> OptimisticBlockServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + OptimisticBlockServiceClient::new( + InterceptedService::new(inner, interceptor), + ) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided + /// rollup id) to the Auctioneer. + pub async fn get_optimistic_block_stream( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response< + tonic::codec::Streaming, + >, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService", + "GetOptimisticBlockStream", + ), + ); + self.inner.server_streaming(req, path, codec).await + } + /// The Sequencer will stream the block commits to the Auctioneer. + pub async fn get_block_commitment_stream( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response< + tonic::codec::Streaming, + >, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService", + "GetBlockCommitmentStream", + ), + ); + self.inner.server_streaming(req, path, codec).await + } + } +} +/// Generated server implementations. +#[cfg(feature = "server")] +pub mod optimistic_block_service_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with OptimisticBlockServiceServer. + #[async_trait] + pub trait OptimisticBlockService: Send + Sync + 'static { + /// Server streaming response type for the GetOptimisticBlockStream method. + type GetOptimisticBlockStreamStream: tonic::codegen::tokio_stream::Stream< + Item = std::result::Result< + super::GetOptimisticBlockStreamResponse, + tonic::Status, + >, + > + + Send + + 'static; + /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided + /// rollup id) to the Auctioneer. + async fn get_optimistic_block_stream( + self: std::sync::Arc, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Server streaming response type for the GetBlockCommitmentStream method. + type GetBlockCommitmentStreamStream: tonic::codegen::tokio_stream::Stream< + Item = std::result::Result< + super::GetBlockCommitmentStreamResponse, + tonic::Status, + >, + > + + Send + + 'static; + /// The Sequencer will stream the block commits to the Auctioneer. + async fn get_block_commitment_stream( + self: std::sync::Arc, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// The Sequencer will serve this to the aucitoneer + #[derive(Debug)] + pub struct OptimisticBlockServiceServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl OptimisticBlockServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> + for OptimisticBlockServiceServer + where + T: OptimisticBlockService, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream" => { + #[allow(non_camel_case_types)] + struct GetOptimisticBlockStreamSvc( + pub Arc, + ); + impl< + T: OptimisticBlockService, + > tonic::server::ServerStreamingService< + super::GetOptimisticBlockStreamRequest, + > for GetOptimisticBlockStreamSvc { + type Response = super::GetOptimisticBlockStreamResponse; + type ResponseStream = T::GetOptimisticBlockStreamStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetOptimisticBlockStreamRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_optimistic_block_stream( + inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetOptimisticBlockStreamSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream" => { + #[allow(non_camel_case_types)] + struct GetBlockCommitmentStreamSvc( + pub Arc, + ); + impl< + T: OptimisticBlockService, + > tonic::server::ServerStreamingService< + super::GetBlockCommitmentStreamRequest, + > for GetBlockCommitmentStreamSvc { + type Response = super::GetBlockCommitmentStreamResponse; + type ResponseStream = T::GetBlockCommitmentStreamStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetBlockCommitmentStreamRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_block_commitment_stream( + inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetBlockCommitmentStreamSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for OptimisticBlockServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService + for OptimisticBlockServiceServer { + const NAME: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService"; + } +} diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs new file mode 100644 index 0000000000..bc159c576f --- /dev/null +++ b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs @@ -0,0 +1,460 @@ +impl serde::Serialize for GetBlockCommitmentStreamRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetBlockCommitmentStreamRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(GetBlockCommitmentStreamRequest { + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetBlockCommitmentStreamResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.commitment.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse", len)?; + if let Some(v) = self.commitment.as_ref() { + struct_ser.serialize_field("commitment", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "commitment", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Commitment, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "commitment" => Ok(GeneratedField::Commitment), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetBlockCommitmentStreamResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut commitment__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Commitment => { + if commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("commitment")); + } + commitment__ = map_.next_value()?; + } + } + } + Ok(GetBlockCommitmentStreamResponse { + commitment: commitment__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetOptimisticBlockStreamRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.rollup_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest", len)?; + if let Some(v) = self.rollup_id.as_ref() { + struct_ser.serialize_field("rollupId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rollup_id", + "rollupId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RollupId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "rollupId" | "rollup_id" => Ok(GeneratedField::RollupId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetOptimisticBlockStreamRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rollup_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RollupId => { + if rollup_id__.is_some() { + return Err(serde::de::Error::duplicate_field("rollupId")); + } + rollup_id__ = map_.next_value()?; + } + } + } + Ok(GetOptimisticBlockStreamRequest { + rollup_id: rollup_id__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetOptimisticBlockStreamResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.block.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse", len)?; + if let Some(v) = self.block.as_ref() { + struct_ser.serialize_field("block", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "block", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Block, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "block" => Ok(GeneratedField::Block), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetOptimisticBlockStreamResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut block__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Block => { + if block__.is_some() { + return Err(serde::de::Error::duplicate_field("block")); + } + block__ = map_.next_value()?; + } + } + } + Ok(GetOptimisticBlockStreamResponse { + block: block__, + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SequencerBlockCommit { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.height != 0 { + len += 1; + } + if !self.block_hash.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit", len)?; + if self.height != 0 { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; + } + if !self.block_hash.is_empty() { + #[allow(clippy::needless_borrow)] + struct_ser.serialize_field("blockHash", pbjson::private::base64::encode(&self.block_hash).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SequencerBlockCommit { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "height", + "block_hash", + "blockHash", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Height, + BlockHash, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "height" => Ok(GeneratedField::Height), + "blockHash" | "block_hash" => Ok(GeneratedField::BlockHash), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SequencerBlockCommit; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut height__ = None; + let mut block_hash__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Height => { + if height__.is_some() { + return Err(serde::de::Error::duplicate_field("height")); + } + height__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::BlockHash => { + if block_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("blockHash")); + } + block_hash__ = + Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SequencerBlockCommit { + height: height__.unwrap_or_default(), + block_hash: block_hash__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.rs b/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.rs index 5537a617fb..3607446f91 100644 --- a/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.rs +++ b/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.rs @@ -330,512 +330,6 @@ impl ::prost::Name for SubmittedMetadata { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetBlockCommitmentStreamRequest {} -impl ::prost::Name for GetBlockCommitmentStreamRequest { - const NAME: &'static str = "GetBlockCommitmentStreamRequest"; - const PACKAGE: &'static str = "astria.sequencerblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("astria.sequencerblock.v1alpha1.{}", Self::NAME) - } -} -/// Identifying metadata for blocks that have been successfully committed in the Sequencer. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SequencerBlockCommit { - /// Height of the sequencer block that was committed. - #[prost(uint64, tag = "1")] - pub height: u64, - /// Hash of the sequencer block that was committed. - #[prost(bytes = "bytes", tag = "2")] - pub block_hash: ::prost::bytes::Bytes, -} -impl ::prost::Name for SequencerBlockCommit { - const NAME: &'static str = "SequencerBlockCommit"; - const PACKAGE: &'static str = "astria.sequencerblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("astria.sequencerblock.v1alpha1.{}", Self::NAME) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetBlockCommitmentStreamResponse { - #[prost(message, optional, tag = "1")] - pub commitment: ::core::option::Option, -} -impl ::prost::Name for GetBlockCommitmentStreamResponse { - const NAME: &'static str = "GetBlockCommitmentStreamResponse"; - const PACKAGE: &'static str = "astria.sequencerblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("astria.sequencerblock.v1alpha1.{}", Self::NAME) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetOptimisticBlockStreamRequest { - /// The rollup id for which the Sequencer block is being streamed. - #[prost(message, optional, tag = "1")] - pub rollup_id: ::core::option::Option, -} -impl ::prost::Name for GetOptimisticBlockStreamRequest { - const NAME: &'static str = "GetOptimisticBlockStreamRequest"; - const PACKAGE: &'static str = "astria.sequencerblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("astria.sequencerblock.v1alpha1.{}", Self::NAME) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetOptimisticBlockStreamResponse { - /// The optimistic Sequencer block that is being streamed, filtered for the provided rollup id. - #[prost(message, optional, tag = "1")] - pub block: ::core::option::Option, -} -impl ::prost::Name for GetOptimisticBlockStreamResponse { - const NAME: &'static str = "GetOptimisticBlockStreamResponse"; - const PACKAGE: &'static str = "astria.sequencerblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!("astria.sequencerblock.v1alpha1.{}", Self::NAME) - } -} -/// Generated client implementations. -#[cfg(feature = "client")] -pub mod optimistic_block_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - /// The Sequencer will serve this to the aucitoneer - #[derive(Debug, Clone)] - pub struct OptimisticBlockServiceClient { - inner: tonic::client::Grpc, - } - impl OptimisticBlockServiceClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl OptimisticBlockServiceClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> OptimisticBlockServiceClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + Send + Sync, - { - OptimisticBlockServiceClient::new( - InterceptedService::new(inner, interceptor), - ) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided - /// rollup id) to the Auctioneer. - pub async fn get_optimistic_block_stream( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response< - tonic::codec::Streaming, - >, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/astria.sequencerblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "astria.sequencerblock.v1alpha1.OptimisticBlockService", - "GetOptimisticBlockStream", - ), - ); - self.inner.server_streaming(req, path, codec).await - } - /// The Sequencer will stream the block commits to the Auctioneer. - pub async fn get_block_commitment_stream( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response< - tonic::codec::Streaming, - >, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/astria.sequencerblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "astria.sequencerblock.v1alpha1.OptimisticBlockService", - "GetBlockCommitmentStream", - ), - ); - self.inner.server_streaming(req, path, codec).await - } - } -} -/// Generated server implementations. -#[cfg(feature = "server")] -pub mod optimistic_block_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with OptimisticBlockServiceServer. - #[async_trait] - pub trait OptimisticBlockService: Send + Sync + 'static { - /// Server streaming response type for the GetOptimisticBlockStream method. - type GetOptimisticBlockStreamStream: tonic::codegen::tokio_stream::Stream< - Item = std::result::Result< - super::GetOptimisticBlockStreamResponse, - tonic::Status, - >, - > - + Send - + 'static; - /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided - /// rollup id) to the Auctioneer. - async fn get_optimistic_block_stream( - self: std::sync::Arc, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Server streaming response type for the GetBlockCommitmentStream method. - type GetBlockCommitmentStreamStream: tonic::codegen::tokio_stream::Stream< - Item = std::result::Result< - super::GetBlockCommitmentStreamResponse, - tonic::Status, - >, - > - + Send - + 'static; - /// The Sequencer will stream the block commits to the Auctioneer. - async fn get_block_commitment_stream( - self: std::sync::Arc, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - /// The Sequencer will serve this to the aucitoneer - #[derive(Debug)] - pub struct OptimisticBlockServiceServer { - inner: _Inner, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - struct _Inner(Arc); - impl OptimisticBlockServiceServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - let inner = _Inner(inner); - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> - for OptimisticBlockServiceServer - where - T: OptimisticBlockService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); - match req.uri().path() { - "/astria.sequencerblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream" => { - #[allow(non_camel_case_types)] - struct GetOptimisticBlockStreamSvc( - pub Arc, - ); - impl< - T: OptimisticBlockService, - > tonic::server::ServerStreamingService< - super::GetOptimisticBlockStreamRequest, - > for GetOptimisticBlockStreamSvc { - type Response = super::GetOptimisticBlockStreamResponse; - type ResponseStream = T::GetOptimisticBlockStreamStream; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::GetOptimisticBlockStreamRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_optimistic_block_stream( - inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let inner = inner.0; - let method = GetOptimisticBlockStreamSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.server_streaming(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/astria.sequencerblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream" => { - #[allow(non_camel_case_types)] - struct GetBlockCommitmentStreamSvc( - pub Arc, - ); - impl< - T: OptimisticBlockService, - > tonic::server::ServerStreamingService< - super::GetBlockCommitmentStreamRequest, - > for GetBlockCommitmentStreamSvc { - type Response = super::GetBlockCommitmentStreamResponse; - type ResponseStream = T::GetBlockCommitmentStreamStream; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::GetBlockCommitmentStreamRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_block_commitment_stream( - inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let inner = inner.0; - let method = GetBlockCommitmentStreamSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.server_streaming(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } - } - impl Clone for OptimisticBlockServiceServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - impl Clone for _Inner { - fn clone(&self) -> Self { - Self(Arc::clone(&self.0)) - } - } - impl std::fmt::Debug for _Inner { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self.0) - } - } - impl tonic::server::NamedService - for OptimisticBlockServiceServer { - const NAME: &'static str = "astria.sequencerblock.v1alpha1.OptimisticBlockService"; - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] pub struct GetSequencerBlockRequest { /// The height of the block to retrieve. #[prost(uint64, tag = "1")] diff --git a/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.serde.rs b/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.serde.rs index 72c4d3ea26..8b1a35e407 100644 --- a/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.serde.rs +++ b/crates/astria-core/src/generated/astria.sequencerblock.v1alpha1.serde.rs @@ -383,168 +383,6 @@ impl<'de> serde::Deserialize<'de> for FilteredSequencerBlock { deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.FilteredSequencerBlock", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for GetBlockCommitmentStreamRequest { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let len = 0; - let struct_ser = serializer.serialize_struct("astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamRequest", len)?; - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamRequest { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - Err(serde::de::Error::unknown_field(value, FIELDS)) - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetBlockCommitmentStreamRequest; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamRequest") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - while map_.next_key::()?.is_some() { - let _ = map_.next_value::()?; - } - Ok(GetBlockCommitmentStreamRequest { - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamRequest", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GetBlockCommitmentStreamResponse { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.commitment.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamResponse", len)?; - if let Some(v) = self.commitment.as_ref() { - struct_ser.serialize_field("commitment", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamResponse { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "commitment", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Commitment, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "commitment" => Ok(GeneratedField::Commitment), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetBlockCommitmentStreamResponse; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamResponse") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut commitment__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Commitment => { - if commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("commitment")); - } - commitment__ = map_.next_value()?; - } - } - } - Ok(GetBlockCommitmentStreamResponse { - commitment: commitment__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.GetBlockCommitmentStreamResponse", FIELDS, GeneratedVisitor) - } -} impl serde::Serialize for GetFilteredSequencerBlockRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -657,189 +495,6 @@ impl<'de> serde::Deserialize<'de> for GetFilteredSequencerBlockRequest { deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.GetFilteredSequencerBlockRequest", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for GetOptimisticBlockStreamRequest { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.rollup_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamRequest", len)?; - if let Some(v) = self.rollup_id.as_ref() { - struct_ser.serialize_field("rollupId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamRequest { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "rollup_id", - "rollupId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - RollupId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "rollupId" | "rollup_id" => Ok(GeneratedField::RollupId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetOptimisticBlockStreamRequest; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamRequest") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut rollup_id__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::RollupId => { - if rollup_id__.is_some() { - return Err(serde::de::Error::duplicate_field("rollupId")); - } - rollup_id__ = map_.next_value()?; - } - } - } - Ok(GetOptimisticBlockStreamRequest { - rollup_id: rollup_id__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamRequest", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GetOptimisticBlockStreamResponse { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.block.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamResponse", len)?; - if let Some(v) = self.block.as_ref() { - struct_ser.serialize_field("block", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamResponse { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "block", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Block, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "block" => Ok(GeneratedField::Block), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetOptimisticBlockStreamResponse; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamResponse") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut block__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Block => { - if block__.is_some() { - return Err(serde::de::Error::duplicate_field("block")); - } - block__ = map_.next_value()?; - } - } - } - Ok(GetOptimisticBlockStreamResponse { - block: block__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.GetOptimisticBlockStreamResponse", FIELDS, GeneratedVisitor) - } -} impl serde::Serialize for GetPendingNonceRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -1523,121 +1178,6 @@ impl<'de> serde::Deserialize<'de> for SequencerBlock { deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.SequencerBlock", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for SequencerBlockCommit { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.height != 0 { - len += 1; - } - if !self.block_hash.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.v1alpha1.SequencerBlockCommit", len)?; - if self.height != 0 { - #[allow(clippy::needless_borrow)] - struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; - } - if !self.block_hash.is_empty() { - #[allow(clippy::needless_borrow)] - struct_ser.serialize_field("blockHash", pbjson::private::base64::encode(&self.block_hash).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for SequencerBlockCommit { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "height", - "block_hash", - "blockHash", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Height, - BlockHash, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "height" => Ok(GeneratedField::Height), - "blockHash" | "block_hash" => Ok(GeneratedField::BlockHash), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SequencerBlockCommit; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.v1alpha1.SequencerBlockCommit") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut height__ = None; - let mut block_hash__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Height => { - if height__.is_some() { - return Err(serde::de::Error::duplicate_field("height")); - } - height__ = - Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::BlockHash => { - if block_hash__.is_some() { - return Err(serde::de::Error::duplicate_field("blockHash")); - } - block_hash__ = - Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(SequencerBlockCommit { - height: height__.unwrap_or_default(), - block_hash: block_hash__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.v1alpha1.SequencerBlockCommit", FIELDS, GeneratedVisitor) - } -} impl serde::Serialize for SequencerBlockHeader { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/crates/astria-core/src/generated/mod.rs b/crates/astria-core/src/generated/mod.rs index a0a39c4d2a..963dd5bbe3 100644 --- a/crates/astria-core/src/generated/mod.rs +++ b/crates/astria-core/src/generated/mod.rs @@ -165,6 +165,18 @@ pub mod sequencerblock { include!("astria.sequencerblock.v1.serde.rs"); } } + + pub mod optimisticblock { + pub mod v1alpha1 { + include!("astria.sequencerblock.optimisticblock.v1alpha1.rs"); + + #[cfg(feature = "serde")] + mod _serde_impl { + use super::*; + include!("astria.sequencerblock.optimisticblock.v1alpha1.serde.rs"); + } + } + } } #[path = ""] diff --git a/proto/sequencerblockapis/astria/sequencerblock/v1alpha1/optimistic_block.proto b/proto/sequencerblockapis/astria/sequencerblock/optimistic/v1alpha1/service.proto similarity index 88% rename from proto/sequencerblockapis/astria/sequencerblock/v1alpha1/optimistic_block.proto rename to proto/sequencerblockapis/astria/sequencerblock/optimistic/v1alpha1/service.proto index 575643e73b..347a3670cc 100644 --- a/proto/sequencerblockapis/astria/sequencerblock/v1alpha1/optimistic_block.proto +++ b/proto/sequencerblockapis/astria/sequencerblock/optimistic/v1alpha1/service.proto @@ -1,9 +1,9 @@ syntax = "proto3"; -package astria.sequencerblock.v1alpha1; +package astria.sequencerblock.optimistic.v1alpha1; import "astria/primitive/v1/types.proto"; -import "astria/sequencerblock/v1alpha1/block.proto"; +import "astria/sequencerblock/v1/block.proto"; message GetBlockCommitmentStreamRequest {} @@ -26,7 +26,7 @@ message GetOptimisticBlockStreamRequest { message GetOptimisticBlockStreamResponse { // The optimistic Sequencer block that is being streamed, filtered for the provided rollup id. - astria.sequencerblock.v1alpha1.FilteredSequencerBlock block = 1; + astria.sequencerblock.v1.FilteredSequencerBlock block = 1; } // The Sequencer will serve this to the aucitoneer From 942ffc94cb55601f619fa242ed0d40d5e2cd8b6e Mon Sep 17 00:00:00 2001 From: Fraser Hutchison <190532+Fraser999@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:25:02 +0000 Subject: [PATCH 02/16] fix: update audit ignore list (#1805) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Ignore two new RustSec warnings. ## Background We get two non-critical warnings when running `cargo audit`: [RUSTSEC-2024-0384](https://rustsec.org/advisories/RUSTSEC-2024-0384) and [RUSTSEC-2024-0388](https://rustsec.org/advisories/RUSTSEC-2024-0388).
RUSTSEC-2024-0384

``` Crate: instant Version: 0.1.13 Warning: unmaintained Title: `instant` is unmaintained Date: 2024-09-01 ID: RUSTSEC-2024-0384 URL: https://rustsec.org/advisories/RUSTSEC-2024-0384 Dependency tree: instant 0.1.13 ├── fastrand 1.9.0 │ └── futures-lite 1.13.0 │ ├── isahc 1.7.2 │ │ └── astria-sequencer-relayer 1.0.0 │ └── http-types 2.12.0 │ └── wiremock 0.5.22 │ ├── astria-sequencer-relayer 1.0.0 │ ├── astria-sequencer-client 0.1.0 │ │ ├── astria-sequencer-relayer 1.0.0 │ │ ├── astria-conductor 1.0.0 │ │ ├── astria-composer 1.0.0 │ │ ├── astria-cli 0.5.1 │ │ └── astria-bridge-withdrawer 1.0.1 │ ├── astria-conductor 1.0.0 │ ├── astria-composer 1.0.0 │ └── astria-bridge-withdrawer 1.0.1 ├── ethers-providers 2.0.14 │ ├── ethers-middleware 2.0.14 │ │ └── ethers 2.0.14 │ │ ├── astria-test-utils 0.1.0 │ │ │ └── astria-composer 1.0.0 │ │ ├── astria-composer 1.0.0 │ │ ├── astria-cli 0.5.1 │ │ ├── astria-bridge-withdrawer 1.0.1 │ │ └── astria-bridge-contracts 0.1.0 │ │ ├── astria-cli 0.5.1 │ │ └── astria-bridge-withdrawer 1.0.1 │ ├── ethers-contract 2.0.14 │ │ ├── ethers-middleware 2.0.14 │ │ └── ethers 2.0.14 │ └── ethers 2.0.14 └── ethers-middleware 2.0.14 ```

RUSTSEC-2024-0388

``` Crate: derivative Version: 2.2.0 Warning: unmaintained Title: `derivative` is unmaintained; consider using an alternative Date: 2024-06-26 ID: RUSTSEC-2024-0388 URL: https://rustsec.org/advisories/RUSTSEC-2024-0388 Dependency tree: derivative 2.2.0 ├── penumbra-tct 0.80.7 │ ├── penumbra-txhash 0.80.7 │ │ └── penumbra-ibc 0.80.7 │ │ ├── astria-sequencer 1.0.0 │ │ └── astria-core 0.1.0 │ │ ├── astria-sequencer-utils 0.1.0 │ │ ├── astria-sequencer-relayer 1.0.0 │ │ ├── astria-sequencer-client 0.1.0 │ │ │ ├── astria-sequencer-relayer 1.0.0 │ │ │ ├── astria-conductor 1.0.0 │ │ │ ├── astria-composer 1.0.0 │ │ │ ├── astria-cli 0.5.1 │ │ │ └── astria-bridge-withdrawer 1.0.1 │ │ ├── astria-sequencer 1.0.0 │ │ ├── astria-core 0.1.0 │ │ ├── astria-conductor 1.0.0 │ │ ├── astria-composer 1.0.0 │ │ ├── astria-cli 0.5.1 │ │ ├── astria-bridge-withdrawer 1.0.1 │ │ └── astria-bridge-contracts 0.1.0 │ │ ├── astria-cli 0.5.1 │ │ └── astria-bridge-withdrawer 1.0.1 │ ├── penumbra-sct 0.80.7 │ │ └── penumbra-ibc 0.80.7 │ └── penumbra-keys 0.80.7 │ └── penumbra-sct 0.80.7 ├── penumbra-num 0.80.7 │ ├── penumbra-ibc 0.80.7 │ └── penumbra-asset 0.80.7 │ ├── penumbra-keys 0.80.7 │ └── penumbra-ibc 0.80.7 ├── penumbra-keys 0.80.7 ├── penumbra-asset 0.80.7 ├── ark-r1cs-std 0.4.0 │ ├── poseidon377 1.2.0 │ │ ├── penumbra-tct 0.80.7 │ │ ├── penumbra-sct 0.80.7 │ │ ├── penumbra-keys 0.80.7 │ │ └── penumbra-asset 0.80.7 │ ├── poseidon-permutation 1.1.0 │ │ └── poseidon377 1.2.0 │ ├── penumbra-tct 0.80.7 │ ├── penumbra-sct 0.80.7 │ ├── penumbra-num 0.80.7 │ ├── penumbra-keys 0.80.7 │ ├── penumbra-asset 0.80.7 │ └── decaf377 0.10.1 │ ├── poseidon377 1.2.0 │ ├── poseidon-permutation 1.1.0 │ ├── poseidon-parameters 1.1.0 │ │ ├── poseidon377 1.2.0 │ │ └── poseidon-permutation 1.1.0 │ ├── penumbra-tct 0.80.7 │ ├── penumbra-sct 0.80.7 │ ├── penumbra-num 0.80.7 │ ├── penumbra-keys 0.80.7 │ ├── penumbra-asset 0.80.7 │ ├── decaf377-rdsa 0.11.0 │ │ ├── penumbra-sct 0.80.7 │ │ ├── penumbra-proto 0.80.7 │ │ │ ├── penumbra-txhash 0.80.7 │ │ │ ├── penumbra-tct 0.80.7 │ │ │ ├── penumbra-sct 0.80.7 │ │ │ ├── penumbra-num 0.80.7 │ │ │ ├── penumbra-keys 0.80.7 │ │ │ ├── penumbra-ibc 0.80.7 │ │ │ ├── penumbra-asset 0.80.7 │ │ │ ├── astria-sequencer 1.0.0 │ │ │ └── astria-core 0.1.0 │ │ ├── penumbra-num 0.80.7 │ │ ├── penumbra-keys 0.80.7 │ │ └── penumbra-asset 0.80.7 │ ├── decaf377-ka 0.80.7 │ │ └── penumbra-keys 0.80.7 │ └── decaf377-fmd 0.80.7 │ ├── penumbra-proto 0.80.7 │ ├── penumbra-num 0.80.7 │ ├── penumbra-keys 0.80.7 │ └── penumbra-asset 0.80.7 ├── ark-poly 0.4.2 │ ├── ark-groth16 0.4.0 │ │ ├── poseidon377 1.2.0 │ │ ├── penumbra-num 0.80.7 │ │ └── decaf377 0.10.1 │ └── ark-ec 0.4.2 │ ├── poseidon377 1.2.0 │ ├── decaf377 0.10.1 │ ├── ark-r1cs-std 0.4.0 │ ├── ark-groth16 0.4.0 │ ├── ark-ed-on-bls12-377 0.4.0 │ │ ├── penumbra-tct 0.80.7 │ │ └── decaf377 0.10.1 │ ├── ark-crypto-primitives 0.4.0 │ │ └── ark-groth16 0.4.0 │ └── ark-bls12-377 0.4.0 │ ├── decaf377 0.10.1 │ └── ark-ed-on-bls12-377 0.4.0 ├── ark-ff 0.4.2 │ ├── ruint 1.12.3 │ │ └── celestia-types 0.1.1 │ │ ├── celestia-rpc 0.1.1 │ │ │ └── astria-conductor 1.0.0 │ │ ├── astria-sequencer-relayer 1.0.0 │ │ ├── astria-core 0.1.0 │ │ └── astria-conductor 1.0.0 │ ├── poseidon377 1.2.0 │ ├── poseidon-permutation 1.1.0 │ ├── penumbra-tct 0.80.7 │ ├── penumbra-sct 0.80.7 │ ├── penumbra-num 0.80.7 │ ├── penumbra-keys 0.80.7 │ ├── penumbra-ibc 0.80.7 │ ├── penumbra-asset 0.80.7 │ ├── decaf377-rdsa 0.11.0 │ ├── decaf377-ka 0.80.7 │ ├── decaf377-fmd 0.80.7 │ ├── decaf377 0.10.1 │ ├── ark-snark 0.4.0 │ │ ├── poseidon377 1.2.0 │ │ ├── penumbra-num 0.80.7 │ │ ├── decaf377 0.10.1 │ │ └── ark-crypto-primitives 0.4.0 │ ├── ark-relations 0.4.0 │ │ ├── poseidon377 1.2.0 │ │ ├── poseidon-permutation 1.1.0 │ │ ├── penumbra-tct 0.80.7 │ │ ├── penumbra-sct 0.80.7 │ │ ├── penumbra-num 0.80.7 │ │ ├── penumbra-keys 0.80.7 │ │ ├── penumbra-asset 0.80.7 │ │ ├── decaf377 0.10.1 │ │ ├── ark-snark 0.4.0 │ │ ├── ark-r1cs-std 0.4.0 │ │ ├── ark-groth16 0.4.0 │ │ └── ark-crypto-primitives 0.4.0 │ ├── ark-r1cs-std 0.4.0 │ ├── ark-poly 0.4.2 │ ├── ark-groth16 0.4.0 │ ├── ark-ed-on-bls12-377 0.4.0 │ ├── ark-ec 0.4.2 │ ├── ark-crypto-primitives 0.4.0 │ └── ark-bls12-377 0.4.0 ├── ark-ff 0.3.0 │ └── ruint 1.12.3 ├── ark-ec 0.4.2 └── ark-crypto-primitives 0.4.0 ```

Given that the RustSec report doesn't suggest any concrete problems with either crate, and how difficult it will be to move away from these dependencies, I have just ignored these warnings in CI. ## Changes - Ignore RustSec warnings in `.cargo/audit.toml`. ## Testing Ran `cargo audit` locally. ## Changelogs No updates required - nothing really fixed or updated. ## Related Issues Closes #1796. Closes #1797. --- .cargo/audit.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.cargo/audit.toml b/.cargo/audit.toml index bfe280fdd3..a24651942e 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -6,4 +6,10 @@ ignore = [ # `proc-macro-error` is Unmaintained. It is a transient dependency of borsh crates, so cannot # easily be replaced. "RUSTSEC-2024-0370", + # `instant` is Unmaintained. It is a transient dependency of `isahc`, `wiremock` and `ethers`, so + # cannot easily be replaced. + "RUSTSEC-2024-0384", + # `derivative` is Unmaintained. It is a transient dependency of many crates including several + # penumbra ones, so cannot easily be replaced. + "RUSTSEC-2024-0388", ] From 9b6ecc7f3d06a59955e512a74e9b434292eab1dd Mon Sep 17 00:00:00 2001 From: noot <36753753+noot@users.noreply.github.com> Date: Tue, 19 Nov 2024 06:35:10 -0500 Subject: [PATCH 03/16] chore(docs): updates to data verification and inclusion proof specs (#1689) ## Summary minor updates to the data verification and inclusion proof specs, mostly renaming/updating the types and some clarifications. ## Changes - update [specs/data-flow-and-verification.md](https://github.com/astriaorg/astria/compare/noot/specs?expand=1#diff-ec3cc86eef70a0285e3cd7fbc902eeb2ef082783cda5916b3d9b81f80e0b4917) - update [specs/sequencer-inclusion-proofs.md](https://github.com/astriaorg/astria/compare/noot/specs?expand=1#diff-0b52370ce97078002b7f4682377d6847fad36814fea97e7eab930e1edc9270ec) --- specs/data-flow-and-verification.md | 197 ++++++++++++++++------------ specs/sequencer-inclusion-proofs.md | 20 +-- 2 files changed, 122 insertions(+), 95 deletions(-) diff --git a/specs/data-flow-and-verification.md b/specs/data-flow-and-verification.md index 613b00f70a..6bde2222d9 100644 --- a/specs/data-flow-and-verification.md +++ b/specs/data-flow-and-verification.md @@ -11,32 +11,33 @@ the exit point is execution by a rollup node. ## Entry point -The entry point for rollup data is via a `sequence::Action`, which can become -part of a sequencer transaction. The data types are as follows: +The entry point for rollup data is via a `RollupDataSubmission` action, which can +become part of a sequencer transaction. The data types are as follows: ```rust -// sequence::Action -pub struct Action { - pub(crate) chain_id: Vec, - pub(crate) data: Vec, +pub struct RollupDataSubmission { + rollup_id: RollupId, + data: Bytes, + // the asset to pay fees with + fee_asset: asset::Denom, } ``` ```rust -// an unsigned transaction -pub struct Unsigned { - pub(crate) nonce: Nonce, - pub(crate) actions: Vec, +// an unsigned transaction body +pub struct TransactionBody { + actions: Actions, // vector of actions + params: TransactionParams, // chain id, nonce } ``` -The `data` field inside the `sequence::Action` is arbitrary bytes, which should +The `data` field inside the `RollupDataSubmission` is arbitrary bytes, which should be an encoded rollup transaction. The sequencer is agnostic to the transaction -format of the rollups using it. The `chain_id` field is an identifier for the +format of the rollups using it. The `rollup_id` field is an identifier for the rollup the data is destined for. To submit rollup data to the system, the user creates a transaction with a -`sequence::Action` within it and signs and submits it to the sequencer. The +`RollupDataSubmission` within it and signs and submits it to the sequencer. The sequencer will then include it in a block, thus finalizing its ordering. ## Sequencer to data availability @@ -47,56 +48,81 @@ the block data is published via a data availability layer. The block data published is as follows: ```rust -pub struct SequencerBlockData { - block_hash: Hash, - header: Header, - /// chain ID -> rollup transactions - rollup_data: BTreeMap>>, - /// The root of the action tree for this block. - action_tree_root: [u8; 32], - /// The inclusion proof that the action tree root is included - /// in `Header::data_hash`. - action_tree_root_inclusion_proof: merkle::Proof, - /// The commitment to the chain IDs of the rollup data. - /// The merkle root of the tree where the leaves are the chain IDs. - chain_ids_commitment: [u8; 32], - /// The inclusion proof that the chain IDs commitment is included - /// in `Header::data_hash`. - chain_ids_commitment_inclusion_proof: merkle::Proof, +pub struct SequencerBlockHeader { + chain_id: tendermint::chain::Id, + height: tendermint::block::Height, + time: Time, + // the merkle root of all the rollup data in the block + rollup_transactions_root: [u8; 32], + // the merkle root of all transactions in the block + data_hash: [u8; 32], + proposer_address: account::Id, +} + +pub struct SequencerBlock { + /// the cometbft block hash for this block + block_hash: [u8; 32], + /// the block header, which contains cometbft header info and additional sequencer-specific + /// commitments. + header: SequencerBlockHeader, + /// The collection of rollup transactions that were included in this block. + rollup_transactions: IndexMap, + /// The inclusion proof that the rollup transactions merkle root is included + /// in `header.data_hash`. + rollup_transactions_proof: merkle::Proof, + /// The inclusion proof that the rollup IDs commitment is included + /// in `header.data_hash`. + rollup_ids_proof: merkle::Proof, } ``` -When this data is actually published, it's split into multiple structures. +When the `SequencerBlock` is actually published, it's split into multiple structures. Specifically, the data for each rollup is written independently, while a "base" -data type which contains the rollup chain IDs included in the block is also -written. This allows each rollup to only require the `SequencerNamespaceData` -for the block and the `RollupNamespaceData` for its own rollup transactions. For -each block, if there are N rollup chain IDs included, 1 + N structures are -written to DA. +data type which contains all the other `SequencerBlock` info, plus the list of +rollup IDs in the block, is written. This allows each rollup to only require +the `SequencerNamespaceData` for the block and the `RollupNamespaceData` for +its own rollup transactions. For each block, if there are N rollup chain IDs +included, 1 + N structures are written to DA. ```rust -/// SequencerNamespaceData represents the data written to the "base" -/// sequencer namespace. It contains all the other chain IDs (and thus, +/// SubmittedMetadata represents the data written to the "base" +/// sequencer namespace. It contains all the other rollup IDs (and thus, /// namespaces) that were also written to in the same block. -#[derive(Serialize, Deserialize, Debug)] -pub struct SequencerNamespaceData { - pub block_hash: Hash, - pub header: Header, - pub rollup_chain_ids: Vec, - pub action_tree_root: [u8; 32], - pub action_tree_root_inclusion_proof: InclusionProof, - pub chain_ids_commitment: [u8; 32], +pub struct SubmittedMetadata { + /// The block hash obtained from hashing `.header`. + block_hash: [u8; 32], + /// The sequencer block header. + header: SequencerBlockHeader, + /// The rollup IDs for which `SubmittedRollupData`s were submitted to celestia. + /// Corresponds to the `astria.sequencer.v1.RollupTransactions.id` field + /// and is extracted from `astria.SequencerBlock.rollup_transactions`. + rollup_ids: Vec, + /// The proof that the rollup transactions are included in sequencer block. + /// Corresponds to `astria.SequencerBlock.rollup_transactions_proof`. + rollup_transactions_proof: merkle::Proof, + /// The proof that this sequencer blob includes all rollup IDs of + /// the original sequencer block it was derived from. + /// This proof together with `Sha256(MTH(rollup_ids))` (Sha256 + /// applied to the Merkle Tree Hash of the rollup ID sequence) must be + /// equal to `header.data_hash` which itself must match + /// `astria.SequencerBlock.header.data_hash`. This field corresponds to + /// `astria.SequencerBlock.rollup_ids_proof`. + rollup_ids_proof: merkle::Proof, } ``` ```rust -/// RollupNamespaceData represents the data written to a rollup namespace. -#[derive(Serialize, Deserialize, Debug)] -pub struct RollupNamespaceData { - pub(crate) block_hash: Hash, - pub(crate) chain_id: ChainId, - pub rollup_txs: Vec>, - pub(crate) inclusion_proof: InclusionProof, +/// SubmittedRollupData represents the data written to a rollup namespace. +pub struct SubmittedRollupData { + /// The hash of the sequencer block. Must be 32 bytes. + sequencer_block_hash: [u8; 32], + /// The 32 bytes identifying the rollup this blob belongs to. Matches + /// `astria.sequencerblock.v1.RollupTransactions.rollup_id` + rollup_id: RollupId, + /// A list of opaque bytes that are serialized rollup transactions. + transactions: Vec, + /// The proof that these rollup transactions are included in sequencer block. + proof: merkle::Proof, } ``` @@ -108,9 +134,6 @@ properties as ordering, completeness, and correctness respectively. It is able to do this *without* requiring the full transaction data of the block, as is explained below. -Note that the `Header` field in `SequencerNamespaceData` is a [Tendermint -header](https://github.com/informalsystems/tendermint-rs/blob/4d81b67c28510db7d2d99ed62ebfa9fdf0e02141/tendermint/src/block/header.rs#L25). - ## Data availability to rollup node For a rollup node to verify the ordering, completeness, and correctness of the @@ -120,13 +143,13 @@ block data it receives, it must verify the following: 2. the block hash was in fact committed by the sequencer (ie. >2/3 stake voted to commit this block hash to the chain) 3. the block header correctly hashes to the block hash -4. the `data_hash` inside the header contains the `action_tree_root` of the +4. the `data_hash` inside the header contains the `rollup_transactions_root` of the block (see [sequencer inclusion proofs](sequencer-inclusion-proofs.md) for - details), which is a commitment to the `sequence:Action`s in the block -5. the `rollup_txs` inside `RollupNamespaceData` is contained within the - `action_tree_root` -6. the `chain_ids_commitment` is a valid commitment to `rollup_chain_ids` -7. the `data_hash` inside the header contains the `chain_ids_commitment` + details), which is a commitment to the `RollupDataSubmission`s in the block +5. the `transactions` inside `SubmittedRollupData` is contained within the + `rollup_transactions_root` +6. the `rollup_ids_commitment` is a valid commitment to `rollup_ids` +7. the `data_hash` inside the header contains the `rollup_ids_commitment` for the block. Let's go through these one-by-one. @@ -159,45 +182,45 @@ The block hash is a commitment to the block header (specifically, the merkle root of the tree where the leaves are each header field). We then verify that the block header merkleizes to the block hash correctly. -### 4. `action_tree_root` +### 4. `rollup_transactions_root` -The block's data (transactions) contain the `action_tree_root` of the block (see -[sequencer inclusion proofs](sequencer-inclusion-proofs.md) for details), which -is a commitment to the `sequence:Action`s in the block. Specifically, the -`action_tree_root` is the root of a merkle tree where each leaf is a commitment -to the rollup data for one spceific rollup. The block header contains the field -`data_hash` which is the merkle root of all the transactions in a block. Since -`action_tree_root` is a transaction, we can prove its inclusion inside -`data_hash` (the `action_tree_root_inclusion_proof` field inside -`SequencerNamespaceData`). Then, in the next step, we can verify that the rollup -data we received was included inside `action_tree_root`. +The block's data (transactions) contain the `rollup_transactions_root` of the +block (see [sequencer inclusion proofs](sequencer-inclusion-proofs.md) for details), +which is a commitment to the `RollupDataSubmission`s in the block. Specifically, +the `rollup_transactions_root` is the root of a merkle tree where each leaf is a + commitment to the rollup data for one spceific rollup. The block header contains +the field `data_hash` which is the merkle root of all the transactions in a block. +Since `rollup_transactions_root` is a transaction, we can prove its inclusion inside +`data_hash` (the `rollup_transactions_proof` field inside +`SubmittedMetadata`). Then, in the next step, we can verify that the rollup +data we received was included inside `rollup_transactions_root`. ### 5. `rollup_txs` We calculate a commitment of the rollup data we receive (`rollup_txs` inside -`RollupNamespaceData`). We then verify that this data is included inside -`action_tree_root` (via the `inclusion_proof` field inside -`RollupNamespaceData`). At this point, we are now certain that the rollup data +`SubmittedRollupMetadata`). We then verify that this data is included inside +`rollup_transactions_root` (via the `proof` field inside +`SubmittedRollupMetadata`). At this point, we are now certain that the rollup data we received, which is a subset of the entire block's data, was in fact committed by the majority of the sequencer chain's validators. -### 6. `chain_ids_commitment` +### 6. `rollup_ids_root` -The `SequencerNamespaceData` contains a list of the `rollup_chain_ids` that were -included in the block. However, to ensure that chain IDs are not omitted when +The `SubmittedMetadata` contains a list of the `rollup_ids` that were +included in the block. However, to ensure that rollup IDs are not omitted when publishing the data (which would be undetectable to rollup nodes without forcing -them to pull the entire block's data), we also add a commitment to the chain IDs +them to pull the entire block's data), we also add a commitment to the rollup IDs in the block inside the block's transaction data. We ensure that the -`rollup_chain_ids` inside `SequencerNamespaceData` match the -`chain_ids_commitment`. This proves that no chain IDs were omitted from the -published block, as if any were omitted, then the `chain_ids_commitment` would -not match the commitment generated from `rollup_chain_ids`. +`rollup_ids` inside `SubmittedMetadata` match the +`rollup_ids_root`. This proves that no rollup IDs were omitted from the +published block, as if any were omitted, then the `rollup_ids_root` would +not match the commitment generated from `rollup_ids`. -### 7. `chain_ids_commitment_inclusion_proof` +### 7. `rollup_ids_root_inclusion_proof` -Similarly to verification of `action_tree_root` inside `data_hash`, we also verify -an inclusion proof of `chain_ids_commitment` inside `data_hash` when receiving a -published block. +Similarly to verification of `rollup_transactions_root` inside `data_hash`, we also +verify an inclusion proof of `rollup_ids_root` inside `data_hash` when receiving +a published block. ## Exit point diff --git a/specs/sequencer-inclusion-proofs.md b/specs/sequencer-inclusion-proofs.md index 273d2d028d..51b1f99417 100644 --- a/specs/sequencer-inclusion-proofs.md +++ b/specs/sequencer-inclusion-proofs.md @@ -29,14 +29,18 @@ A rollup conductor needs to be able to verify its subset of relevant data without needing to pull all the transaction data for a block. To do this, the block proposer includes a special "commitment tx" at the start of the block. This a special transaction type that can only be included by the proposer. +The "commitment tx" is the merkle root of a tree where each leaf is a commitment +to the batch of transactions for one specific rollup. ![image](assets/sequencer_inclusion_proof_0.png) When building a block, the proposer deconstructs all txs into their contained -`sequence::Action`s and groups them all. Remember that 1 `sequence::Action` -corresponds to 1 rollup transaction. Then, a commitment to the set of all -actions for a chain becomes a leaf in a merkle tree, the root of which becomes -the "commitment tx" +`RollupDataSubmission` actions and groups them all. Remember that 1 +`RollupDataSubmission` action corresponds to 1 rollup transaction. Then, a +commitment to the set of all actions for a chain becomes a leaf in a merkle tree, +the root of which becomes the "commitment tx". The other validators reconstruct +this merkle tree when validating the proposal, and only accept the proposal if +the tree is a valid representation of the rollup data in the block. ![image](assets/sequencer_inclusion_proof_2.png) @@ -55,8 +59,8 @@ For example: layer and calculate the commitment which should match the leaf in red (in the above diagram) - we use the inclusion proof (in green) to verify the txs for chain C were - included in the action tree -- we verify a proof of inclusion of "commitment tx" (action tree root) inside + included in the rollup data merkle tree +- we verify a proof of inclusion of "commitment tx" (rollup data tree root) inside the block header's `data_hash` - we verify that `data_hash` was correctly included in the block's `block_hash` - verify `block_hash`'s cometbft >2/3 commitment @@ -68,8 +72,8 @@ staking power of the sequencer chain. Additionally, the commitment to the actions for a chain actually also includes a merkle root. The commitment contains of the merkle root of a tree where where -the leaves are the transactions for that rollup; ie. all the `sequence::Action`s -for that chain. "Commitment to actions for chain X" is implemented as `(chain_id +the leaves are the transactions for that rollup; ie. all the `RollupDataSubmission` +actions for that chain. "Commitment to actions for chain X" is implemented as `(chain_id || root of tx tree for rollup)`, allowing for easy verification that a specific rollup transaction was included in a sequencer block. This isn't required for any specific conductor logic, but nice for applications building on top of the From 3830a3d3958591cb16b9f3b8cfc1efa560c0e0ee Mon Sep 17 00:00:00 2001 From: quasystaty Date: Tue, 19 Nov 2024 13:43:06 +0200 Subject: [PATCH 04/16] fix(ci): remove unnecessary checks from ibc-tests (#1813) ## Summary removes immediate celestia balance check after performing ibc-transfer **from** celestia ## Background Current ibc-tests checks celestia wallet balance immediately after permorming an ibc transfer, this is redundant as we check the bablance change on the sequencer side. In addition to currently being broken duo to outdated expected value, the test currently passes randomly, most likely duo to latency. ## Changes - remove celestia balance checks from ibc transfer from celestia - moves ibc-transfer check in `run-without-native` above fee-asset change, avoiding latency issues. ## Testing - locally tested bad behavior by adding a 1s sleep prior to the first balance check ## Changelogs No updates required. --- charts/ibc-test.just | 42 +++++------------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/charts/ibc-test.just b/charts/ibc-test.just index 0e330f8da1..6b8e472328 100644 --- a/charts/ibc-test.just +++ b/charts/ibc-test.just @@ -89,10 +89,7 @@ run-without-native tag=defaultTag: # Execute the transfer from Celestia to the Rollup just ibc-test _do-ibc-transfer {{defaultNamespace}} {{sequencer_sudo_address}} - # Add transfer/channel-0/utia as fee-asset - docker run --rm --network host $ASTRIA_CLI_IMAGE sequencer sudo fee-asset add --private-key {{sequencer_sudo_pkey}} --asset transfer/channel-0/utia --sequencer-url {{sequencer_rpc_url}} --sequencer.chain-id {{sequencer_chain_id}} # check that sequencer balance updated correctly - EXPECTED_BALANCE=$(echo "1 * {{transfer_amount}}" | bc) for i in {1..50} do @@ -110,6 +107,11 @@ run-without-native tag=defaultTag: exit 1 fi + # Add transfer/channel-0/utia as allowed fee-asset + docker run --rm --network host $ASTRIA_CLI_IMAGE sequencer sudo fee-asset add --private-key {{sequencer_sudo_pkey}} --asset transfer/channel-0/utia --sequencer-url {{sequencer_rpc_url}} --sequencer.chain-id {{sequencer_chain_id}} + + # TODO: query allowd fee asset verifying succefull addition + [no-cd] run tag=defaultTag: #!/usr/bin/env bash @@ -149,23 +151,6 @@ run tag=defaultTag: # Execute the transfer from Celstia to sequencer with compat address just ibc-test _do-ibc-transfer {{defaultNamespace}} {{compat_address}} - # check that celestia balance updated correctly - for i in {1..50} - do - current_celestia_balance=$(just ibc-test get-celestia-balance) - echo "check $i, balance: $current_celestia_balance, expected: $expected_celestia_balance" - if (( $expected_celestia_balance == $current_celestia_balance )); then - expected_celestia_balance_found="1" - break - else - sleep 1 - fi - done - if [[ -z $expected_celestia_balance_found ]]; then - echo "expected celestia balance was not found after withdraw; IBC transfer from Celestia to the Rollup failed" - exit 1 - fi - # check that sequencer balance updated correctly ASTRIA_CLI_IMAGE="{{cli_image}}{{ if tag != '' { replace(':#', '#', tag) } else { '' } }}" EXPECTED_BALANCE=$(echo "1 * {{transfer_amount}}" | bc) @@ -283,23 +268,6 @@ run-timeout tag=defaultTag: # Execute the transfer from Celstia to sequencer with compat address just ibc-test _do-ibc-transfer {{defaultNamespace}} {{compat_address}} - # check that celestia balance updated correctly - for i in {1..50} - do - current_celestia_balance=$(just ibc-test get-celestia-balance) - echo "check $i, balance: $current_celestia_balance, expected: $expected_celestia_balance" - if (( $expected_celestia_balance == $current_celestia_balance )); then - expected_celestia_balance_found="1" - break - else - sleep 1 - fi - done - if [[ -z $expected_celestia_balance_found ]]; then - echo "expected celestia balance was not found after withdraw; IBC transfer from Celestia to the Rollup failed" - exit 1 - fi - # check that sequencer balance updated correctly ASTRIA_CLI_IMAGE="{{cli_image}}{{ if tag != '' { replace(':#', '#', tag) } else { '' } }}" EXPECTED_BALANCE=$(echo "1 * {{transfer_amount}}" | bc) From 471ee91197085047243a9cd2d90379254f216738 Mon Sep 17 00:00:00 2001 From: quasystaty Date: Tue, 19 Nov 2024 14:07:04 +0200 Subject: [PATCH 05/16] feat(cli): allowed fee-assets query (#1816) ## Summary Adds `astria-cli sequencer fee-assets get` query command, getting all allowed fee-assets ## Background The astria CLI should have a query command for all abci query paths, the PR is part of an effort to accomplish this. It also enables more robust smoke-tests. ## Changes - Adds allowed fee assets query subcommand. ## Testing Manually runs the command against local, Dawn and mainnet. ## Changelogs Changelogs updated. ## Related Issues Link any issues that are related, prefer full GitHub links. closes #1815 --- crates/astria-cli/CHANGELOG.md | 4 ++ crates/astria-cli/src/sequencer/fee_assets.rs | 58 +++++++++++++++++++ crates/astria-cli/src/sequencer/mod.rs | 4 ++ 3 files changed, 66 insertions(+) create mode 100644 crates/astria-cli/src/sequencer/fee_assets.rs diff --git a/crates/astria-cli/CHANGELOG.md b/crates/astria-cli/CHANGELOG.md index 09bc9674b2..738181bef5 100644 --- a/crates/astria-cli/CHANGELOG.md +++ b/crates/astria-cli/CHANGELOG.md @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Add `fee-assets` subcommand to `sequencer` CLI [#1816](https://github.com/astriaorg/astria/pull/1816). + ### Fixed - Fixed ICS20 withdrawal source when using channel with more than one diff --git a/crates/astria-cli/src/sequencer/fee_assets.rs b/crates/astria-cli/src/sequencer/fee_assets.rs new file mode 100644 index 0000000000..b5fa567e5c --- /dev/null +++ b/crates/astria-cli/src/sequencer/fee_assets.rs @@ -0,0 +1,58 @@ +use astria_sequencer_client::{ + HttpClient, + SequencerClientExt as _, +}; +use clap::Subcommand; +use color_eyre::eyre::{ + self, + WrapErr as _, +}; + +#[derive(Debug, clap::Args)] +pub(super) struct Command { + #[command(subcommand)] + command: SubCommand, +} + +impl Command { + pub(super) async fn run(self) -> eyre::Result<()> { + let SubCommand::Get(get) = self.command; + get.run().await + } +} + +#[derive(Debug, Subcommand)] +enum SubCommand { + /// Get the balance of a Sequencer account + Get(Get), +} + +#[derive(clap::Args, Debug)] +struct Get { + /// The url of the Sequencer node + #[arg( + long, + env = "SEQUENCER_URL", + default_value = crate::DEFAULT_SEQUENCER_RPC + )] + sequencer_url: String, +} + +impl Get { + async fn run(self) -> eyre::Result<()> { + let sequencer_client = HttpClient::new(self.sequencer_url.as_str()) + .wrap_err("failed constructing http sequencer client")?; + + let res = sequencer_client + .get_allowed_fee_assets() + .await + .wrap_err("failed to get fee assets")?; + + println!("Allowed fee assets:"); + for asset in res.fee_assets { + println!(" {asset}"); + } + + Ok(()) + } +} diff --git a/crates/astria-cli/src/sequencer/mod.rs b/crates/astria-cli/src/sequencer/mod.rs index 6beda8d5ec..d8fa0a7233 100644 --- a/crates/astria-cli/src/sequencer/mod.rs +++ b/crates/astria-cli/src/sequencer/mod.rs @@ -8,6 +8,7 @@ mod block_height; mod bridge_account; mod bridge_lock; mod bridge_sudo_change; +mod fee_assets; mod ics20_withdrawal; mod init_bridge_account; mod sign; @@ -39,6 +40,7 @@ impl Command { SubCommand::Sign(sign) => sign.run(), SubCommand::BridgeSudoChange(bridge_sudo_change) => bridge_sudo_change.run().await, SubCommand::BridgeAccount(bridge_account) => bridge_account.run().await, + SubCommand::FeeAssets(fee_assets) => fee_assets.run().await, } } } @@ -80,4 +82,6 @@ enum SubCommand { BridgeSudoChange(bridge_sudo_change::Command), /// Commands for interacting with the bridge account BridgeAccount(bridge_account::Command), + /// Command for interacting with allowed fee assets + FeeAssets(fee_assets::Command), } From 401dfb5de3360a7bfa012f4908560fc936559637 Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Wed, 20 Nov 2024 15:43:15 +0100 Subject: [PATCH 06/16] refactor(core): make crypto module into crate (#1800) ## Summary Breaks out `astria_core::crypto` to crate `astria-core-crypto`. ## Background One needs to import the entire kitchensink that is `astria-core` even if one only wants to use a fraction of its types. That leads to extremely long compilation times because all of its dependencies need to be compiled. This patch is the start to breaking out parts of `astria-core` into their own free standing crates, which `astria-core` then reexports. A useful sideeffect of this change is that the coupling between the different parts of astria-core is reduced (for example, by removing the rarely used utility method `SigningKey::try_address`, allowing to decouple address and crypto logic). ## Changes - Move the module `astria_core::crypto` into new create `astria-core-crypto` and reexport under the `astria_core::crypto` alias (not breaking to consumers) - Remove the tight coupling between the crypto and address parts of the stack by removing the `SigningKey::try_address` (rarely used and only inside a few tests) method and moving `ADDRESS_LENGTH` to a thin `astria-core-consts` crate (this is a breaking change for users of `SigningKey::try_address`). ## Testing Tests for astria core's crypto refinement types were moved to `astria-core-crypto` and left unchanged. Sequencer tests were updated to use `Address::builder` instead of `SigningKey::try_address` and otherwise also left unchanged. ## Changelogs Changelogs updated. ## Breaking Changelist - These changes leave all services untouched. - These changes would be breaking the public API of `astria-core` due to the removal fo `SigningKey::try_address` but we don't provide any stability guarantees for it. ## Related Issues Part of https://github.com/astriaorg/astria/issues/1798 --- Cargo.lock | 19 ++++++++- Cargo.toml | 4 ++ crates/astria-cli/src/sequencer/account.rs | 7 +++- crates/astria-core-consts/Cargo.toml | 6 +++ crates/astria-core-consts/src/lib.rs | 3 ++ crates/astria-core-crypto/CHANGELOG.md | 14 +++++++ crates/astria-core-crypto/Cargo.toml | 22 ++++++++++ .../src/lib.rs} | 41 ++++++------------- crates/astria-core/CHANGELOG.md | 7 ++++ crates/astria-core/Cargo.toml | 10 ++--- crates/astria-core/src/lib.rs | 2 +- crates/astria-core/src/primitive/v1/mod.rs | 3 +- .../src/app/tests_breaking_changes.rs | 23 +++++++++-- .../src/app/tests_execute_transaction.rs | 13 ++++-- 14 files changed, 127 insertions(+), 47 deletions(-) create mode 100644 crates/astria-core-consts/Cargo.toml create mode 100644 crates/astria-core-consts/src/lib.rs create mode 100644 crates/astria-core-crypto/CHANGELOG.md create mode 100644 crates/astria-core-crypto/Cargo.toml rename crates/{astria-core/src/crypto.rs => astria-core-crypto/src/lib.rs} (93%) diff --git a/Cargo.lock b/Cargo.lock index b95f060418..ffcd83f1e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -701,6 +701,8 @@ name = "astria-core" version = "0.1.0" dependencies = [ "astria-core", + "astria-core-consts", + "astria-core-crypto", "astria-merkle", "base64 0.21.7", "base64-serde", @@ -709,7 +711,6 @@ dependencies = [ "bytes", "celestia-tendermint", "celestia-types", - "ed25519-consensus", "hex", "ibc-types", "indexmap 2.4.0", @@ -728,6 +729,22 @@ dependencies = [ "thiserror", "tonic 0.10.2", "tracing", +] + +[[package]] +name = "astria-core-consts" +version = "0.1.0" + +[[package]] +name = "astria-core-crypto" +version = "0.1.0" +dependencies = [ + "astria-core-consts", + "base64 0.21.7", + "ed25519-consensus", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index d1cc181333..ae4a4cda5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,8 @@ members = [ "crates/astria-conductor", "crates/astria-config", "crates/astria-core", + "crates/astria-core-consts", + "crates/astria-core-crypto", "crates/astria-eyre", "crates/astria-grpc-mock", "crates/astria-grpc-mock-test", @@ -34,6 +36,8 @@ default-members = [ "crates/astria-conductor", "crates/astria-config", "crates/astria-core", + "crates/astria-core-consts", + "crates/astria-core-crypto", "crates/astria-grpc-mock", "crates/astria-grpc-mock-test", "crates/astria-grpc-mock-test-codegen", diff --git a/crates/astria-cli/src/sequencer/account.rs b/crates/astria-cli/src/sequencer/account.rs index 269470725f..e6160730f0 100644 --- a/crates/astria-cli/src/sequencer/account.rs +++ b/crates/astria-cli/src/sequencer/account.rs @@ -51,7 +51,12 @@ impl Create { let signing_key = SigningKey::new(OsRng); let pretty_signing_key = hex::encode(signing_key.as_bytes()); let pretty_verifying_key = hex::encode(signing_key.verification_key().as_bytes()); - let pretty_address = SigningKey::try_address(&signing_key, &self.prefix)?; + + let pretty_address: Address = Address::builder() + .array(signing_key.address_bytes()) + .prefix(&self.prefix) + .try_build()?; + println!("Create Sequencer Account"); println!(); // TODO: don't print private keys to CLI, prefer writing to file: diff --git a/crates/astria-core-consts/Cargo.toml b/crates/astria-core-consts/Cargo.toml new file mode 100644 index 0000000000..125b069104 --- /dev/null +++ b/crates/astria-core-consts/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "astria-core-consts" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/crates/astria-core-consts/src/lib.rs b/crates/astria-core-consts/src/lib.rs new file mode 100644 index 0000000000..1b05c26f66 --- /dev/null +++ b/crates/astria-core-consts/src/lib.rs @@ -0,0 +1,3 @@ +//! Public constants that are used throughout the Astria stack. + +pub const ADDRESS_LENGTH: usize = 20; diff --git a/crates/astria-core-crypto/CHANGELOG.md b/crates/astria-core-crypto/CHANGELOG.md new file mode 100644 index 0000000000..f782487e36 --- /dev/null +++ b/crates/astria-core-crypto/CHANGELOG.md @@ -0,0 +1,14 @@ + + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +### Added + +- Initial release [#1800](https://github.com/astriaorg/astria/pull/1800) diff --git a/crates/astria-core-crypto/Cargo.toml b/crates/astria-core-crypto/Cargo.toml new file mode 100644 index 0000000000..4e8b94bf7c --- /dev/null +++ b/crates/astria-core-crypto/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "astria-core-crypto" +version = "0.1.0" +edition = "2021" +rust-version = "1.81.0" +license = "MIT OR Apache-2.0" +readme = "README.md" +repository = "https://github.com/astriaorg/astria" +homepage = "https://astria.org" + +[dependencies] +astria-core-consts = { path = "../astria-core-consts" } + +base64 = { workspace = true } +rand = { workspace = true } +sha2 = { workspace = true } +thiserror = { workspace = true } + +ed25519-consensus = { version = "2.1.0", default-features = false, features = [ + "std", +] } +zeroize = { version = "1.7.0", features = ["zeroize_derive"] } diff --git a/crates/astria-core/src/crypto.rs b/crates/astria-core-crypto/src/lib.rs similarity index 93% rename from crates/astria-core/src/crypto.rs rename to crates/astria-core-crypto/src/lib.rs index 2ce819d875..4213a7bdf4 100644 --- a/crates/astria-core/src/crypto.rs +++ b/crates/astria-core-crypto/src/lib.rs @@ -13,6 +13,7 @@ use std::{ sync::OnceLock, }; +pub use astria_core_consts::ADDRESS_LENGTH; use base64::{ display::Base64Display, prelude::BASE64_STANDARD, @@ -28,21 +29,11 @@ use rand::{ CryptoRng, RngCore, }; -use sha2::{ - Digest as _, - Sha256, -}; use zeroize::{ Zeroize, ZeroizeOnDrop, }; -use crate::primitive::v1::{ - Address, - AddressError, - ADDRESS_LEN, -}; - /// An Ed25519 signing key. // *Implementation note*: this is currently a refinement type around // ed25519_consensus::SigningKey overriding its Debug implementation @@ -85,22 +76,9 @@ impl SigningKey { /// Returns the address bytes of the verification key associated with this signing key. #[must_use] - pub fn address_bytes(&self) -> [u8; ADDRESS_LEN] { + pub fn address_bytes(&self) -> [u8; ADDRESS_LENGTH] { *self.verification_key().address_bytes() } - - /// Attempts to create an Astria bech32m `[Address]` with the given prefix. - /// - /// # Errors - /// Returns an [`AddressError`] if an address could not be constructed - /// with the given prefix. Usually if the prefix was too long or contained - /// characters not allowed by bech32m. - pub fn try_address(&self, prefix: &str) -> Result { - Address::builder() - .prefix(prefix) - .array(self.address_bytes()) - .try_build() - } } impl Debug for SigningKey { @@ -139,7 +117,7 @@ pub struct VerificationKey { // The address-bytes are lazily-initialized. Since it may or may not be initialized for any // given instance of a verification key, it is excluded from `PartialEq`, `Eq`, `PartialOrd`, // `Ord` and `Hash` impls. - address_bytes: OnceLock<[u8; ADDRESS_LEN]>, + address_bytes: OnceLock<[u8; ADDRESS_LENGTH]>, } impl VerificationKey { @@ -167,18 +145,23 @@ impl VerificationKey { /// /// The address is the first 20 bytes of the sha256 hash of the verification key. #[must_use] - pub fn address_bytes(&self) -> &[u8; ADDRESS_LEN] { + pub fn address_bytes(&self) -> &[u8; ADDRESS_LENGTH] { + use sha2::{ + Digest as _, + Sha256, + }; + self.address_bytes.get_or_init(|| { - fn first_20(array: [u8; 32]) -> [u8; ADDRESS_LEN] { + fn first_20(array: [u8; 32]) -> [u8; ADDRESS_LENGTH] { [ array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], ] } - /// this ensures that `ADDRESS_LEN` is never accidentally changed to a value + /// this ensures that `ADDRESS_LENGTH` is never accidentally changed to a value /// that would violate this assumption. - const _: () = assert!(ADDRESS_LEN <= 32); + const _: () = assert!(ADDRESS_LENGTH <= 32); let bytes: [u8; 32] = Sha256::digest(self).into(); first_20(bytes) }) diff --git a/crates/astria-core/CHANGELOG.md b/crates/astria-core/CHANGELOG.md index dd487eeab3..1d113ed38a 100644 --- a/crates/astria-core/CHANGELOG.md +++ b/crates/astria-core/CHANGELOG.md @@ -15,6 +15,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added method `TracePrefixed::leading_channel` to read the left-most channel of a trace prefixed ICS20 asset [#1768](https://github.com/astriaorg/astria/pull/1768) +### Changed + +- Moved `astria_core::crypto` to `astria-core-crypto` and reexported + `astria_core_crypto as crypto` (this change is transparent) + [#1800](https://github.com/astriaorg/astria/pull/1800/) + ### Removed - Removed method `TracePrefixed::last_channel` [#1768](https://github.com/astriaorg/astria/pull/1768) +- Removed method `SigningKey::try_address` [#1800](https://github.com/astriaorg/astria/pull/1800/) diff --git a/crates/astria-core/Cargo.toml b/crates/astria-core/Cargo.toml index a7a45d5ba0..e8774c9a16 100644 --- a/crates/astria-core/Cargo.toml +++ b/crates/astria-core/Cargo.toml @@ -21,13 +21,12 @@ brotli = { version = "5.0.0", optional = true } celestia-types = { version = "0.1.1", optional = true } pbjson = { version = "0.6.0", optional = true } +astria-core-consts = { path = "../astria-core-consts" } +astria-core-crypto = { path = "../astria-core-crypto" } merkle = { package = "astria-merkle", path = "../astria-merkle" } bytes = { workspace = true } celestia-tendermint = { workspace = true } -ed25519-consensus = { version = "2.1.0", default-features = false, features = [ - "std", -] } hex = { workspace = true } ibc-types = { workspace = true } indexmap = { workspace = true } @@ -35,7 +34,7 @@ pbjson-types = { workspace = true } penumbra-ibc = { workspace = true } penumbra-proto = { workspace = true } prost = { workspace = true } -rand = { workspace = true } +rand = { workspace = true, optional = true } serde = { workspace = true, features = ["derive"], optional = true } sha2 = { workspace = true } tendermint = { workspace = true } @@ -45,14 +44,13 @@ tonic = { workspace = true, optional = true } tracing = { workspace = true } base64-serde = { workspace = true, optional = true } base64 = { workspace = true } -zeroize = { version = "1.7.0", features = ["zeroize_derive"] } [features] celestia = ["dep:celestia-types"] client = ["dep:tonic"] serde = ["dep:serde", "dep:pbjson", "dep:base64-serde"] server = ["dep:tonic"] -test-utils = [] +test-utils = ["dep:rand"] base64-serde = ["dep:base64-serde"] brotli = ["dep:brotli"] # When enabled, this adds constructors for some types that skip the normal constructor validity diff --git a/crates/astria-core/src/lib.rs b/crates/astria-core/src/lib.rs index 5c97446d17..fbf02402dc 100644 --- a/crates/astria-core/src/lib.rs +++ b/crates/astria-core/src/lib.rs @@ -1,3 +1,4 @@ +pub use astria_core_crypto as crypto; use prost::Name; #[cfg(not(target_pointer_width = "64"))] @@ -13,7 +14,6 @@ compile_error!( )] pub mod generated; -pub mod crypto; pub mod execution; pub mod primitive; pub mod protocol; diff --git a/crates/astria-core/src/primitive/v1/mod.rs b/crates/astria-core/src/primitive/v1/mod.rs index 56cb6922b5..bc88b6feed 100644 --- a/crates/astria-core/src/primitive/v1/mod.rs +++ b/crates/astria-core/src/primitive/v1/mod.rs @@ -6,6 +6,7 @@ use std::{ str::FromStr, }; +pub use astria_core_consts::ADDRESS_LENGTH as ADDRESS_LEN; use base64::{ display::Base64Display, prelude::BASE64_URL_SAFE, @@ -21,8 +22,6 @@ use crate::{ Protobuf, }; -pub const ADDRESS_LEN: usize = 20; - pub const ROLLUP_ID_LEN: usize = 32; pub const TRANSACTION_ID_LEN: usize = 32; diff --git a/crates/astria-sequencer/src/app/tests_breaking_changes.rs b/crates/astria-sequencer/src/app/tests_breaking_changes.rs index 031538a057..b70ee03d8f 100644 --- a/crates/astria-sequencer/src/app/tests_breaking_changes.rs +++ b/crates/astria-sequencer/src/app/tests_breaking_changes.rs @@ -15,7 +15,10 @@ use std::{ }; use astria_core::{ - primitive::v1::RollupId, + primitive::v1::{ + Address, + RollupId, + }, protocol::{ genesis::v1::Account, transaction::v1::{ @@ -190,8 +193,22 @@ async fn app_execute_transaction_with_every_action_snapshot() { }; let genesis_state = astria_core::generated::protocol::genesis::v1::GenesisAppState { accounts, - authority_sudo_address: Some(alice.try_address(ASTRIA_PREFIX).unwrap().to_raw()), - ibc_sudo_address: Some(alice.try_address(ASTRIA_PREFIX).unwrap().to_raw()), + authority_sudo_address: Some( + Address::builder() + .prefix(ASTRIA_PREFIX) + .array(alice.address_bytes()) + .try_build() + .unwrap() + .to_raw(), + ), + ibc_sudo_address: Some( + Address::builder() + .prefix(ASTRIA_PREFIX) + .array(alice.address_bytes()) + .try_build() + .unwrap() + .to_raw(), + ), ..proto_genesis_state() } .try_into() diff --git a/crates/astria-sequencer/src/app/tests_execute_transaction.rs b/crates/astria-sequencer/src/app/tests_execute_transaction.rs index 76b1a1ae8e..b4785380b3 100644 --- a/crates/astria-sequencer/src/app/tests_execute_transaction.rs +++ b/crates/astria-sequencer/src/app/tests_execute_transaction.rs @@ -4,6 +4,7 @@ use astria_core::{ crypto::SigningKey, primitive::v1::{ asset, + Address, RollupId, }, protocol::{ @@ -78,14 +79,18 @@ use crate::{ fn proto_genesis_state() -> astria_core::generated::protocol::genesis::v1::GenesisAppState { astria_core::generated::protocol::genesis::v1::GenesisAppState { authority_sudo_address: Some( - get_alice_signing_key() - .try_address(ASTRIA_PREFIX) + Address::builder() + .prefix(ASTRIA_PREFIX) + .array(get_alice_signing_key().address_bytes()) + .try_build() .unwrap() .to_raw(), ), ibc_sudo_address: Some( - get_alice_signing_key() - .try_address(ASTRIA_PREFIX) + Address::builder() + .prefix(ASTRIA_PREFIX) + .array(get_alice_signing_key().address_bytes()) + .try_build() .unwrap() .to_raw(), ), From 3e85e8d99beae2002a392122c87378d25800c142 Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Wed, 20 Nov 2024 18:06:02 +0100 Subject: [PATCH 07/16] refactor(core): move address logic to crate (#1802) ## Summary Breaks out address related logic in `astria_core::primitive::v1` to `astria-core-address` ## Background One needs to import the entire kitchensink that is `astria-core` even if one only wants to use a fraction of its types. That leads to extremely long compilation times because all of its dependencies need to be compiled. This patch is the start to breaking out parts of `astria-core` into their own free standing crates, which `astria-core` then reexports. ## Changes - Move address related types out of `astria_core::primitive::v1` into `astria-core-address` - Reexport all moved types under the same module (aliasing, where necessary) - Remove the serde `Serialize` and `Deserialize` impls on the domain type `Address` (breaking because one needs to explicitly construct protobuf/wire type `Address`; not breaking on the wire, json format stays the same) - Implement the `Protobuf` ("domain type") trait for `Address`, removing its inherent constructors and methods to move from/to raw protobuf types ("wire types"); decouples `astria-core-address` from `astria-core` (specifically, the generated protobuf types) (breaking for consumers because they now need to import the `Protobuf` trait) - Create a thin crate `astria-core-consts` that only contains the const `ADDRESS_LENGTH` to allow decoupling of address and crypto logic (addressed in a separate patch) - Removed `AddressBuilder::with_iter` from the public interface (only used inside the crate and not outside) (breaking for consumers of that method) ## Testing Tests were shuffled around but not removed. Snapshot tests stay in place in astria core for now (because they are required for wire/protobuf types). ## Changelogs Changelogs updated. ## Breaking Changelist - These changes leave all services untouched. - If astria-core gave stability guarantees, this would be a breaking change for consumers of `astria-core` because some inherent methods were removed from its public API. ## Related Issues Part of https://github.com/astriaorg/astria/issues/1798 --- Cargo.lock | 11 +- Cargo.toml | 2 + .../src/bridge_withdrawer/submitter/mod.rs | 1 + crates/astria-core-address/CHANGELOG.md | 14 + crates/astria-core-address/Cargo.toml | 14 + crates/astria-core-address/src/lib.rs | 440 ++++++++++++++ crates/astria-core-consts/CHANGELOG.md | 14 + crates/astria-core/CHANGELOG.md | 6 + crates/astria-core/Cargo.toml | 4 +- crates/astria-core/src/primitive/v1/mod.rs | 558 +----------------- .../astria-core/src/protocol/bridge/v1/mod.rs | 23 +- crates/astria-core/src/protocol/genesis/v1.rs | 25 +- .../src/protocol/transaction/v1/action/mod.rs | 40 +- .../src/sequencerblock/v1/block.rs | 2 +- .../astria-sequencer-client/src/tests/http.rs | 1 + crates/astria-sequencer/src/fees/tests.rs | 1 + crates/astria-sequencer/src/grpc/sequencer.rs | 2 +- 17 files changed, 585 insertions(+), 573 deletions(-) create mode 100644 crates/astria-core-address/CHANGELOG.md create mode 100644 crates/astria-core-address/Cargo.toml create mode 100644 crates/astria-core-address/src/lib.rs create mode 100644 crates/astria-core-consts/CHANGELOG.md diff --git a/Cargo.lock b/Cargo.lock index ffcd83f1e0..4e443b7b9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -701,12 +701,12 @@ name = "astria-core" version = "0.1.0" dependencies = [ "astria-core", + "astria-core-address", "astria-core-consts", "astria-core-crypto", "astria-merkle", "base64 0.21.7", "base64-serde", - "bech32 0.11.0", "brotli", "bytes", "celestia-tendermint", @@ -731,6 +731,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "astria-core-address" +version = "0.1.0" +dependencies = [ + "astria-core-consts", + "bech32 0.11.0", + "thiserror", +] + [[package]] name = "astria-core-consts" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index ae4a4cda5c..bded5e96a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "crates/astria-conductor", "crates/astria-config", "crates/astria-core", + "crates/astria-core-address", "crates/astria-core-consts", "crates/astria-core-crypto", "crates/astria-eyre", @@ -36,6 +37,7 @@ default-members = [ "crates/astria-conductor", "crates/astria-config", "crates/astria-core", + "crates/astria-core-address", "crates/astria-core-consts", "crates/astria-core-crypto", "crates/astria-grpc-mock", diff --git a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs index 0bd72886a5..13f6b8c22e 100644 --- a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs +++ b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs @@ -15,6 +15,7 @@ use astria_core::{ Action, TransactionBody, }, + Protobuf as _, }; use astria_eyre::eyre::{ self, diff --git a/crates/astria-core-address/CHANGELOG.md b/crates/astria-core-address/CHANGELOG.md new file mode 100644 index 0000000000..e8d6d38ac2 --- /dev/null +++ b/crates/astria-core-address/CHANGELOG.md @@ -0,0 +1,14 @@ + + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +### Added + +- Initial release. [#1802](https://github.com/astriaorg/astria/pull/1802) diff --git a/crates/astria-core-address/Cargo.toml b/crates/astria-core-address/Cargo.toml new file mode 100644 index 0000000000..85a2a03eaf --- /dev/null +++ b/crates/astria-core-address/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "astria-core-address" +version = "0.1.0" +edition = "2021" + +[dependencies] +astria-core-consts = { path = "../astria-core-consts" } + +thiserror = { workspace = true } + +bech32 = "0.11.0" + +[features] +unchecked-constructor = [] diff --git a/crates/astria-core-address/src/lib.rs b/crates/astria-core-address/src/lib.rs new file mode 100644 index 0000000000..3685222d87 --- /dev/null +++ b/crates/astria-core-address/src/lib.rs @@ -0,0 +1,440 @@ +use std::{ + marker::PhantomData, + str::FromStr, +}; + +pub use astria_core_consts::ADDRESS_LENGTH; + +#[derive(Debug, Hash)] +pub struct Address { + bytes: [u8; ADDRESS_LENGTH], + prefix: bech32::Hrp, + format: PhantomData, +} + +impl Clone for Address { + fn clone(&self) -> Self { + *self + } +} + +impl Copy for Address {} + +impl PartialEq for Address { + fn eq(&self, other: &Self) -> bool { + self.bytes.eq(&other.bytes) && self.prefix.eq(&other.prefix) + } +} + +impl Eq for Address {} + +impl Address { + #[must_use = "the builder must be used to construct an address to be useful"] + pub fn builder() -> Builder { + Builder::new() + } + + #[must_use] + pub fn bytes(self) -> [u8; ADDRESS_LENGTH] { + self.bytes + } + + #[must_use] + pub fn as_bytes(&self) -> &[u8; ADDRESS_LENGTH] { + &self.bytes + } + + #[must_use] + pub fn prefix(&self) -> &str { + self.prefix.as_str() + } + + /// Converts to a new address with the given `prefix`. + /// + /// # Errors + /// Returns an error if an address with `prefix` cannot be constructed. + /// The error conditions for this are the same as for [`AddressBuilder::try_build`]. + pub fn to_prefix(&self, prefix: &str) -> Result { + Self::builder() + .array(*self.as_bytes()) + .prefix(prefix) + .try_build() + } + + /// Converts to a new address with the type argument `OtherFormat`. + /// + /// `OtherFormat` is usually [`Bech32`] or [`Bech32m`]. + #[must_use] + pub fn to_format(&self) -> Address { + Address { + bytes: self.bytes, + prefix: self.prefix, + format: PhantomData, + } + } +} + +impl Address { + /// Should only be used where the inputs have been provided by a trusted entity, e.g. read + /// from our own state store. + /// + /// Note that this function is not considered part of the public API and is subject to breaking + /// change at any time. + #[cfg(feature = "unchecked-constructor")] + #[doc(hidden)] + #[must_use] + pub fn unchecked_from_parts(bytes: [u8; ADDRESS_LENGTH], prefix: &str) -> Self { + Self { + bytes, + prefix: bech32::Hrp::parse_unchecked(prefix), + format: PhantomData, + } + } +} + +impl FromStr for Address { + type Err = Error; + + fn from_str(s: &str) -> Result { + let checked = bech32::primitives::decode::CheckedHrpstring::new::(s) + .map_err(Self::Err::decode)?; + let hrp = checked.hrp(); + Self::builder() + .with_iter(checked.byte_iter()) + .prefix(hrp.as_str()) + .try_build() + } +} + +impl std::fmt::Display for Address { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + use bech32::EncodeError; + match bech32::encode_lower_to_fmt::(f, self.prefix, self.as_bytes()) { + Ok(()) => Ok(()), + Err(EncodeError::Fmt(err)) => Err(err), + Err(err) => panic!( + "only formatting errors are valid when encoding astria addresses; all other error \ + variants (only TooLong as of bech32-0.11.0) are guaranteed to not happen because \ + `Address` is length checked:\n{err:?}", + ), + } + } +} + +pub struct NoBytes; +pub struct NoPrefix; +pub struct WithBytes<'a, I>(WithBytesInner<'a, I>); +enum WithBytesInner<'a, I> { + Array([u8; ADDRESS_LENGTH]), + Iter(I), + Slice(std::borrow::Cow<'a, [u8]>), +} +pub struct WithPrefix<'a>(std::borrow::Cow<'a, str>); + +pub struct NoBytesIter; + +impl Iterator for NoBytesIter { + type Item = u8; + + fn next(&mut self) -> Option { + None + } +} + +impl ExactSizeIterator for NoBytesIter { + fn len(&self) -> usize { + 0 + } +} + +pub struct Builder { + bytes: TBytes, + prefix: TPrefix, + format: PhantomData, +} + +impl Builder { + const fn new() -> Self { + Self { + bytes: NoBytes, + prefix: NoPrefix, + format: PhantomData, + } + } +} + +impl Builder { + #[must_use = "the builder must be built to construct an address to be useful"] + pub fn array( + self, + array: [u8; ADDRESS_LENGTH], + ) -> Builder, TPrefix> { + Builder { + bytes: WithBytes(WithBytesInner::Array(array)), + prefix: self.prefix, + format: self.format, + } + } + + #[must_use = "the builder must be built to construct an address to be useful"] + pub fn slice<'a, T: Into>>( + self, + bytes: T, + ) -> Builder, TPrefix> { + Builder { + bytes: WithBytes(WithBytesInner::Slice(bytes.into())), + prefix: self.prefix, + format: self.format, + } + } + + #[must_use = "the builder must be built to construct an address to be useful"] + fn with_iter(self, iter: T) -> Builder, TPrefix> + where + T: IntoIterator, + T::IntoIter: ExactSizeIterator, + { + Builder { + bytes: WithBytes(WithBytesInner::Iter(iter)), + prefix: self.prefix, + format: self.format, + } + } + + #[must_use = "the builder must be built to construct an address to be useful"] + pub fn prefix<'a, T: Into>>( + self, + prefix: T, + ) -> Builder> { + Builder { + bytes: self.bytes, + prefix: WithPrefix(prefix.into()), + format: self.format, + } + } +} + +impl<'a, 'b, TFormat, TBytesIter> Builder, WithPrefix<'b>> +where + TBytesIter: IntoIterator, + TBytesIter::IntoIter: ExactSizeIterator, +{ + /// Attempts to build an address from the configured prefix and bytes. + /// + /// # Errors + /// Returns an error if one of the following conditions are violated: + /// + if the prefix shorter than 1 or longer than 83 characters, or contains characters outside + /// 33-126 of ASCII characters. + /// + if the provided bytes are not exactly 20 bytes. + pub fn try_build(self) -> Result, Error> { + let Self { + bytes: WithBytes(bytes), + prefix: WithPrefix(prefix), + format, + } = self; + let bytes = match bytes { + WithBytesInner::Array(bytes) => bytes, + WithBytesInner::Iter(bytes) => try_collect_to_array(bytes)?, + WithBytesInner::Slice(bytes) => <[u8; ADDRESS_LENGTH]>::try_from(bytes.as_ref()) + .map_err(|_| Error::incorrect_length(bytes.len()))?, + }; + let prefix = bech32::Hrp::parse(&prefix).map_err(Error::invalid_prefix)?; + Ok(Address { + bytes, + prefix, + format, + }) + } +} + +fn try_collect_to_array(iter: I) -> Result<[u8; ADDRESS_LENGTH], Error> +where + I: IntoIterator, + I::IntoIter: ExactSizeIterator, +{ + let iter = iter.into_iter(); + + if iter.len() != ADDRESS_LENGTH { + return Err(Error::incorrect_length(iter.len())); + } + let mut arr = [0; ADDRESS_LENGTH]; + for (left, right) in arr.iter_mut().zip(iter) { + *left = right; + } + Ok(arr) +} + +#[derive(Debug, thiserror::Error)] +#[error(transparent)] +pub struct Error(ErrorKind); + +impl Error { + fn decode(source: bech32::primitives::decode::CheckedHrpstringError) -> Self { + Self(ErrorKind::Decode { + source, + }) + } + + fn invalid_prefix(source: bech32::primitives::hrp::Error) -> Self { + Self(ErrorKind::InvalidPrefix { + source, + }) + } + + fn incorrect_length(received: usize) -> Self { + Self(ErrorKind::IncorrectLength { + received, + }) + } +} + +#[derive(Debug, thiserror::Error, PartialEq)] +enum ErrorKind { + #[error("failed decoding provided string")] + Decode { + source: bech32::primitives::decode::CheckedHrpstringError, + }, + #[error("expected an address of 20 bytes, got `{received}`")] + IncorrectLength { received: usize }, + #[error("the provided prefix was not a valid bech32 human readable prefix")] + InvalidPrefix { + source: bech32::primitives::hrp::Error, + }, +} + +#[derive(Clone, Copy, Debug)] +pub enum Bech32m {} +#[derive(Clone, Copy, Debug)] +pub enum Bech32 {} +#[derive(Clone, Copy, Debug)] +pub enum NoFormat {} + +#[expect( + private_bounds, + reason = "prevent downstream implementation of this trait" +)] +pub trait Format: Sealed { + type Checksum: bech32::Checksum; +} + +impl Format for Bech32m { + type Checksum = bech32::Bech32m; +} + +impl Format for Bech32 { + type Checksum = bech32::Bech32; +} + +impl Format for NoFormat { + type Checksum = bech32::NoChecksum; +} + +trait Sealed {} +impl Sealed for Bech32m {} +impl Sealed for Bech32 {} +impl Sealed for NoFormat {} + +#[cfg(test)] +mod tests { + use super::{ + Address, + Bech32, + Bech32m, + Error, + ErrorKind, + }; + + const ASTRIA_ADDRESS_PREFIX: &str = "astria"; + const ASTRIA_COMPAT_ADDRESS_PREFIX: &str = "astriacompat"; + + #[track_caller] + fn assert_wrong_address_bytes(bad_account: &[u8]) { + let error = Address::::builder() + .slice(bad_account) + .prefix(ASTRIA_ADDRESS_PREFIX) + .try_build() + .expect_err( + "converting from an incorrectly sized byte slice succeeded where it should have \ + failed", + ); + let Error(ErrorKind::IncorrectLength { + received, + }) = error + else { + panic!("expected ErrorKind::IncorrectLength, got {error:?}"); + }; + assert_eq!(bad_account.len(), received); + } + + #[test] + fn account_of_incorrect_length_gives_error() { + assert_wrong_address_bytes(&[42; 0]); + assert_wrong_address_bytes(&[42; 19]); + assert_wrong_address_bytes(&[42; 21]); + assert_wrong_address_bytes(&[42; 100]); + } + + #[test] + fn parse_bech32m_address() { + let expected = Address::builder() + .array([42; 20]) + .prefix(ASTRIA_ADDRESS_PREFIX) + .try_build() + .unwrap(); + let actual = expected.to_string().parse::
().unwrap(); + assert_eq!(expected, actual); + } + + #[test] + fn parse_bech32_address() { + let expected = Address::::builder() + .array([42; 20]) + .prefix(ASTRIA_COMPAT_ADDRESS_PREFIX) + .try_build() + .unwrap(); + let actual = expected.to_string().parse::>().unwrap(); + assert_eq!(expected, actual); + } + + #[test] + fn parsing_bech32_address_as_bech32m_fails() { + let expected = Address::::builder() + .array([42; 20]) + .prefix(ASTRIA_COMPAT_ADDRESS_PREFIX) + .try_build() + .unwrap(); + let err = expected + .to_string() + .parse::>() + .expect_err("this must not work"); + match err { + Error(ErrorKind::Decode { + .. + }) => {} + other => { + panic!("expected Error(ErrorKind::Decode {{ .. }}), but got {other:?}") + } + } + } + + #[test] + fn parsing_bech32m_address_as_bech32_fails() { + let expected = Address::::builder() + .array([42; 20]) + .prefix(ASTRIA_ADDRESS_PREFIX) + .try_build() + .unwrap(); + let err = expected + .to_string() + .parse::>() + .expect_err("this must not work"); + match err { + Error(ErrorKind::Decode { + .. + }) => {} + other => { + panic!("expected Error(ErrorKind::Decode {{ .. }}), but got {other:?}") + } + } + } +} diff --git a/crates/astria-core-consts/CHANGELOG.md b/crates/astria-core-consts/CHANGELOG.md new file mode 100644 index 0000000000..27692b72c0 --- /dev/null +++ b/crates/astria-core-consts/CHANGELOG.md @@ -0,0 +1,14 @@ + + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +### Added + +- Initial release. [#1800](https://github.com/astriaorg/astria/pull/1800) diff --git a/crates/astria-core/CHANGELOG.md b/crates/astria-core/CHANGELOG.md index 1d113ed38a..68610fc818 100644 --- a/crates/astria-core/CHANGELOG.md +++ b/crates/astria-core/CHANGELOG.md @@ -14,14 +14,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Initial release. - Added method `TracePrefixed::leading_channel` to read the left-most channel of a trace prefixed ICS20 asset [#1768](https://github.com/astriaorg/astria/pull/1768) +- Added `impl Protobuf for Address` [#1802](https://github.com/astriaorg/astria/pull/1802) ### Changed - Moved `astria_core::crypto` to `astria-core-crypto` and reexported `astria_core_crypto as crypto` (this change is transparent) [#1800](https://github.com/astriaorg/astria/pull/1800/) +- Moved definitions of address domain type to `astria-core-address` and + reexported items using the same aliases [#1802](https://github.com/astriaorg/astria/pull/1802) ### Removed - Removed method `TracePrefixed::last_channel` [#1768](https://github.com/astriaorg/astria/pull/1768) - Removed method `SigningKey::try_address` [#1800](https://github.com/astriaorg/astria/pull/1800/) +- Removed inherent methods `Address::try_from_raw` and `Address::to_raw` + [#1802](https://github.com/astriaorg/astria/pull/1802) +- Removed `AddressBuilder::with_iter` from public interface [#1802](https://github.com/astriaorg/astria/pull/1802) diff --git a/crates/astria-core/Cargo.toml b/crates/astria-core/Cargo.toml index e8774c9a16..b816e3fdf5 100644 --- a/crates/astria-core/Cargo.toml +++ b/crates/astria-core/Cargo.toml @@ -16,11 +16,11 @@ keywords = ["astria", "grpc", "rpc", "blockchain", "execution", "protobuf"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bech32 = "0.11.0" brotli = { version = "5.0.0", optional = true } celestia-types = { version = "0.1.1", optional = true } pbjson = { version = "0.6.0", optional = true } +astria-core-address = { path = "../astria-core-address" } astria-core-consts = { path = "../astria-core-consts" } astria-core-crypto = { path = "../astria-core-crypto" } merkle = { package = "astria-merkle", path = "../astria-merkle" } @@ -56,7 +56,7 @@ brotli = ["dep:brotli"] # When enabled, this adds constructors for some types that skip the normal constructor validity # checks. It supports the case where the inputs are already deemed valid, e.g. having read them from # local storage. -unchecked-constructors = [] +unchecked-constructors = ["astria-core-address/unchecked-constructor"] [dev-dependencies] astria-core = { path = ".", features = ["serde"] } diff --git a/crates/astria-core/src/primitive/v1/mod.rs b/crates/astria-core/src/primitive/v1/mod.rs index bc88b6feed..1a60a5bfe5 100644 --- a/crates/astria-core/src/primitive/v1/mod.rs +++ b/crates/astria-core/src/primitive/v1/mod.rs @@ -1,12 +1,15 @@ pub mod asset; pub mod u128; -use std::{ - marker::PhantomData, - str::FromStr, +pub use astria_core_address::{ + Address, + Bech32, + Bech32m, + Builder as AddressBuilder, + Error as AddressError, + Format, + ADDRESS_LENGTH as ADDRESS_LEN, }; - -pub use astria_core_consts::ADDRESS_LENGTH as ADDRESS_LEN; use base64::{ display::Base64Display, prelude::BASE64_URL_SAFE, @@ -26,6 +29,24 @@ pub const ROLLUP_ID_LEN: usize = 32; pub const TRANSACTION_ID_LEN: usize = 32; +impl Protobuf for Address { + type Error = AddressError; + type Raw = raw::Address; + + fn try_from_raw_ref(raw: &Self::Raw) -> Result { + let raw::Address { + bech32m, + } = raw; + bech32m.parse() + } + + fn to_raw(&self) -> Self::Raw { + raw::Address { + bech32m: self.to_string(), + } + } +} + impl Protobuf for merkle::Proof { type Error = merkle::audit::InvalidProof; type Raw = raw::Proof; @@ -253,431 +274,6 @@ pub struct IncorrectRollupIdLength { received: usize, } -#[derive(Debug, thiserror::Error)] -#[error(transparent)] -pub struct AddressError(AddressErrorKind); - -impl AddressError { - fn decode(source: bech32::primitives::decode::CheckedHrpstringError) -> Self { - Self(AddressErrorKind::Decode { - source, - }) - } - - fn invalid_prefix(source: bech32::primitives::hrp::Error) -> Self { - Self(AddressErrorKind::InvalidPrefix { - source, - }) - } - - fn incorrect_address_length(received: usize) -> Self { - Self(AddressErrorKind::IncorrectAddressLength { - received, - }) - } -} - -#[derive(Debug, thiserror::Error, PartialEq)] -enum AddressErrorKind { - #[error("failed decoding provided string")] - Decode { - source: bech32::primitives::decode::CheckedHrpstringError, - }, - #[error("expected an address of 20 bytes, got `{received}`")] - IncorrectAddressLength { received: usize }, - #[error("the provided prefix was not a valid bech32 human readable prefix")] - InvalidPrefix { - source: bech32::primitives::hrp::Error, - }, -} - -pub struct NoBytes; -pub struct NoPrefix; -pub struct WithBytes<'a, I>(WithBytesInner<'a, I>); -enum WithBytesInner<'a, I> { - Array([u8; ADDRESS_LEN]), - Iter(I), - Slice(std::borrow::Cow<'a, [u8]>), -} -pub struct WithPrefix<'a>(std::borrow::Cow<'a, str>); - -pub struct NoBytesIter; - -impl Iterator for NoBytesIter { - type Item = u8; - - fn next(&mut self) -> Option { - None - } -} - -pub struct AddressBuilder { - bytes: TBytes, - prefix: TPrefix, - format: PhantomData, -} - -impl AddressBuilder { - const fn new() -> Self { - Self { - bytes: NoBytes, - prefix: NoPrefix, - format: PhantomData, - } - } -} - -impl AddressBuilder { - #[must_use = "the builder must be built to construct an address to be useful"] - pub fn array( - self, - array: [u8; ADDRESS_LEN], - ) -> AddressBuilder, TPrefix> { - AddressBuilder { - bytes: WithBytes(WithBytesInner::Array(array)), - prefix: self.prefix, - format: self.format, - } - } - - #[must_use = "the builder must be built to construct an address to be useful"] - pub fn slice<'a, T: Into>>( - self, - bytes: T, - ) -> AddressBuilder, TPrefix> { - AddressBuilder { - bytes: WithBytes(WithBytesInner::Slice(bytes.into())), - prefix: self.prefix, - format: self.format, - } - } - - #[must_use = "the builder must be built to construct an address to be useful"] - pub fn with_iter>( - self, - iter: T, - ) -> AddressBuilder, TPrefix> { - AddressBuilder { - bytes: WithBytes(WithBytesInner::Iter(iter)), - prefix: self.prefix, - format: self.format, - } - } - - /// Use the given verification key for address generation. - /// - /// The verification key is hashed with SHA256 and the first 20 bytes are used as the address - /// bytes. - #[expect(clippy::missing_panics_doc, reason = "the conversion is infallible")] - #[must_use = "the builder must be built to construct an address to be useful"] - pub fn verification_key( - self, - key: &crate::crypto::VerificationKey, - ) -> AddressBuilder, TPrefix> { - let hash = Sha256::digest(key.as_bytes()); - let array: [u8; ADDRESS_LEN] = hash[0..ADDRESS_LEN] - .try_into() - .expect("hash is 32 bytes long, so must always be able to convert to 20 bytes"); - self.array(array) - } - - #[must_use = "the builder must be built to construct an address to be useful"] - pub fn prefix<'a, T: Into>>( - self, - prefix: T, - ) -> AddressBuilder> { - AddressBuilder { - bytes: self.bytes, - prefix: WithPrefix(prefix.into()), - format: self.format, - } - } -} - -impl<'a, 'b, TFormat, TBytesIter> AddressBuilder, WithPrefix<'b>> -where - TBytesIter: IntoIterator, -{ - /// Attempts to build an address from the configured prefix and bytes. - /// - /// # Errors - /// Returns an error if one of the following conditions are violated: - /// + if the prefix shorter than 1 or longer than 83 characters, or contains characters outside - /// 33-126 of ASCII characters. - /// + if the provided bytes are not exactly 20 bytes. - pub fn try_build(self) -> Result, AddressError> { - let Self { - bytes: WithBytes(bytes), - prefix: WithPrefix(prefix), - format, - } = self; - let bytes = match bytes { - WithBytesInner::Array(bytes) => bytes, - WithBytesInner::Iter(bytes) => try_collect_to_array(bytes)?, - WithBytesInner::Slice(bytes) => <[u8; ADDRESS_LEN]>::try_from(bytes.as_ref()) - .map_err(|_| AddressError::incorrect_address_length(bytes.len()))?, - }; - let prefix = bech32::Hrp::parse(&prefix).map_err(AddressError::invalid_prefix)?; - Ok(Address { - bytes, - prefix, - format, - }) - } -} - -fn try_collect_to_array>( - iter: I, -) -> Result<[u8; ADDRESS_LEN], AddressError> { - let mut arr = [0; ADDRESS_LEN]; - let mut iter = iter.into_iter(); - let mut i = 0; - loop { - if i >= ADDRESS_LEN { - break; - } - let Some(byte) = iter.next() else { - break; - }; - arr[i] = byte; - i = i.saturating_add(1); - } - let items_in_iterator = i.saturating_add(iter.count()); - if items_in_iterator != ADDRESS_LEN { - return Err(AddressError::incorrect_address_length(items_in_iterator)); - } - Ok(arr) -} - -#[derive(Clone, Copy, Debug)] -pub enum Bech32m {} -#[derive(Clone, Copy, Debug)] -pub enum Bech32 {} -#[derive(Clone, Copy, Debug)] -pub enum NoFormat {} - -pub trait Format: private::Sealed { - type Checksum: bech32::Checksum; -} - -impl Format for Bech32m { - type Checksum = bech32::Bech32m; -} - -impl Format for Bech32 { - type Checksum = bech32::Bech32; -} - -impl Format for NoFormat { - type Checksum = bech32::NoChecksum; -} - -mod private { - pub trait Sealed {} - impl Sealed for super::Bech32m {} - impl Sealed for super::Bech32 {} - impl Sealed for super::NoFormat {} -} - -#[derive(Debug, Hash)] -pub struct Address { - bytes: [u8; ADDRESS_LEN], - prefix: bech32::Hrp, - format: PhantomData, -} - -// The serde impls need to be manually implemented for Address because they -// only work for Address which cannot be expressed using serde -// attributes. -#[cfg(feature = "serde")] -mod _serde_impls { - use serde::de::Error as _; - impl serde::Serialize for super::Address { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - self.to_raw().serialize(serializer) - } - } - impl<'de> serde::Deserialize<'de> for super::Address { - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - super::raw::Address::deserialize(deserializer) - .and_then(|raw| raw.try_into().map_err(D::Error::custom)) - } - } -} - -impl Clone for Address { - fn clone(&self) -> Self { - *self - } -} - -impl Copy for Address {} - -impl PartialEq for Address { - fn eq(&self, other: &Self) -> bool { - self.bytes.eq(&other.bytes) && self.prefix.eq(&other.prefix) - } -} - -impl Eq for Address {} - -impl Address { - #[must_use = "the builder must be used to construct an address to be useful"] - pub fn builder() -> AddressBuilder { - AddressBuilder::::new() - } - - #[must_use] - pub fn bytes(self) -> [u8; ADDRESS_LEN] { - self.bytes - } - - #[must_use] - pub fn as_bytes(&self) -> &[u8; ADDRESS_LEN] { - &self.bytes - } - - #[must_use] - pub fn prefix(&self) -> &str { - self.prefix.as_str() - } - - /// Converts to a new address with the given `prefix`. - /// - /// # Errors - /// Returns an error if an address with `prefix` cannot be constructed. - /// The error conditions for this are the same as for [`AddressBuilder::try_build`]. - pub fn to_prefix(&self, prefix: &str) -> Result { - Self::builder() - .array(*self.as_bytes()) - .prefix(prefix) - .try_build() - } - - /// Converts to a new address with the type argument `OtherFormat`. - /// - /// `OtherFormat` is usually [`Bech32`] or [`Bech32m`]. - #[must_use] - pub fn to_format(&self) -> Address { - Address { - bytes: self.bytes, - prefix: self.prefix, - format: PhantomData, - } - } -} - -impl Address { - /// Convert [`Address`] to a [`raw::Address`]. - #[expect( - clippy::missing_panics_doc, - reason = "panics are checked to not happen" - )] - #[must_use] - pub fn to_raw(&self) -> raw::Address { - let bech32m = - bech32::encode_lower::<::Checksum>(self.prefix, self.as_bytes()) - .expect( - "should not fail because len(prefix) + len(bytes) <= 63 < BECH32M::CODELENGTH", - ); - raw::Address { - bech32m, - } - } - - #[must_use] - pub fn into_raw(self) -> raw::Address { - self.to_raw() - } - - /// Convert from protobuf to rust type an address. - /// - /// # Errors - /// - /// Returns an error if the account buffer was not 20 bytes long. - pub fn try_from_raw(raw: &raw::Address) -> Result { - let raw::Address { - bech32m, - } = raw; - bech32m.parse() - } - - /// This should only be used where the inputs have been provided by a trusted entity, e.g. read - /// from our own state store. - /// - /// Note that this function is not considered part of the public API and is subject to breaking - /// change at any time. - #[cfg(feature = "unchecked-constructors")] - #[doc(hidden)] - #[must_use] - pub fn unchecked_from_parts(bytes: [u8; ADDRESS_LEN], prefix: &str) -> Self { - Self { - bytes, - prefix: bech32::Hrp::parse_unchecked(prefix), - format: PhantomData, - } - } -} - -impl From> for raw::Address { - fn from(value: Address) -> Self { - value.into_raw() - } -} - -impl FromStr for Address { - type Err = AddressError; - - fn from_str(s: &str) -> Result { - let checked = bech32::primitives::decode::CheckedHrpstring::new::(s) - .map_err(Self::Err::decode)?; - let hrp = checked.hrp(); - Self::builder() - .with_iter(checked.byte_iter()) - .prefix(hrp.as_str()) - .try_build() - } -} - -impl TryFrom for Address { - type Error = AddressError; - - fn try_from(value: raw::Address) -> Result { - Self::try_from_raw(&value) - } -} - -impl std::fmt::Display for Address { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - use bech32::EncodeError; - match bech32::encode_lower_to_fmt::(f, self.prefix, self.as_bytes()) { - Ok(()) => Ok(()), - Err(EncodeError::Fmt(err)) => Err(err), - Err(err) => panic!( - "only formatting errors are valid when encoding astria addresses; all other error \ - variants (only TooLong as of bech32-0.11.0) are guaranteed to not happen because \ - `Address` is length checked:\n{err:?}", - ), - } - } -} -/// Constructs a dummy address from a given `prefix`, otherwise fail. -pub(crate) fn try_construct_dummy_address_from_prefix( - prefix: &str, -) -> Result<(), AddressError> { - Address::::builder() - .array([0u8; ADDRESS_LEN]) - .prefix(prefix) - .try_build() - .map(|_| ()) -} - /// Derive a [`merkle::Tree`] from an iterable. /// /// It is the responsibility of the caller to ensure that the iterable is @@ -798,42 +394,12 @@ enum TransactionIdErrorKind { mod tests { use super::{ Address, - AddressError, - AddressErrorKind, - Bech32m, ADDRESS_LEN, }; - use crate::primitive::v1::Bech32; + use crate::Protobuf as _; const ASTRIA_ADDRESS_PREFIX: &str = "astria"; const ASTRIA_COMPAT_ADDRESS_PREFIX: &str = "astriacompat"; - #[track_caller] - fn assert_wrong_address_bytes(bad_account: &[u8]) { - let error = Address::::builder() - .slice(bad_account) - .prefix(ASTRIA_ADDRESS_PREFIX) - .try_build() - .expect_err( - "converting from an incorrectly sized byte slice succeeded where it should have \ - failed", - ); - let AddressError(AddressErrorKind::IncorrectAddressLength { - received, - }) = error - else { - panic!("expected AddressErrorKind::IncorrectAddressLength, got {error:?}"); - }; - assert_eq!(bad_account.len(), received); - } - - #[test] - fn account_of_incorrect_length_gives_error() { - assert_wrong_address_bytes(&[42; 0]); - assert_wrong_address_bytes(&[42; 19]); - assert_wrong_address_bytes(&[42; 21]); - assert_wrong_address_bytes(&[42; 100]); - } - #[cfg(feature = "serde")] #[test] fn snapshots() { @@ -855,74 +421,6 @@ mod tests { insta::assert_snapshot!(&compat_address); } - #[test] - fn parse_bech32m_address() { - let expected = Address::builder() - .array([42; 20]) - .prefix(ASTRIA_ADDRESS_PREFIX) - .try_build() - .unwrap(); - let actual = expected.to_string().parse::
().unwrap(); - assert_eq!(expected, actual); - } - - #[test] - fn parse_bech32_address() { - let expected = Address::::builder() - .array([42; 20]) - .prefix(ASTRIA_COMPAT_ADDRESS_PREFIX) - .try_build() - .unwrap(); - let actual = expected.to_string().parse::>().unwrap(); - assert_eq!(expected, actual); - } - - #[test] - fn parsing_bech32_address_as_bech32m_fails() { - let expected = Address::::builder() - .array([42; 20]) - .prefix(ASTRIA_COMPAT_ADDRESS_PREFIX) - .try_build() - .unwrap(); - let err = expected - .to_string() - .parse::>() - .expect_err("this must not work"); - match err { - AddressError(AddressErrorKind::Decode { - .. - }) => {} - other => { - panic!( - "expected AddressError(AddressErrorKind::Decode {{ .. }}), but got {other:?}" - ) - } - } - } - - #[test] - fn parsing_bech32m_address_as_bech32_fails() { - let expected = Address::::builder() - .array([42; 20]) - .prefix(ASTRIA_ADDRESS_PREFIX) - .try_build() - .unwrap(); - let err = expected - .to_string() - .parse::>() - .expect_err("this must not work"); - match err { - AddressError(AddressErrorKind::Decode { - .. - }) => {} - other => { - panic!( - "expected AddressError(AddressErrorKind::Decode {{ .. }}), but got {other:?}" - ) - } - } - } - #[test] fn can_construct_protobuf_from_address_with_maximally_sized_prefix() { // 83 is the maximal length of a hrp @@ -945,7 +443,7 @@ mod tests { .try_build() .unwrap(); let unchecked = input.into_raw(); - let roundtripped = Address::try_from_raw(&unchecked).unwrap(); + let roundtripped = Address::try_from_raw(unchecked).unwrap(); assert_eq!(input, roundtripped); assert_eq!(input.as_bytes(), roundtripped.as_bytes()); assert_eq!("astria", input.prefix()); diff --git a/crates/astria-core/src/protocol/bridge/v1/mod.rs b/crates/astria-core/src/protocol/bridge/v1/mod.rs index df30ed9068..49b3e07c90 100644 --- a/crates/astria-core/src/protocol/bridge/v1/mod.rs +++ b/crates/astria-core/src/protocol/bridge/v1/mod.rs @@ -1,13 +1,18 @@ use bytes::Bytes; use super::raw; -use crate::primitive::v1::{ - asset, - asset::denom::ParseDenomError, - Address, - AddressError, - IncorrectRollupIdLength, - RollupId, +use crate::{ + primitive::v1::{ + asset::{ + self, + denom::ParseDenomError, + }, + Address, + AddressError, + IncorrectRollupIdLength, + RollupId, + }, + Protobuf as _, }; #[derive(Debug, Clone, PartialEq, Eq)] @@ -159,9 +164,9 @@ impl BridgeAccountInfoResponse { rollup_id: RollupId::try_from_raw(rollup_id) .map_err(BridgeAccountInfoResponseError::invalid_rollup_id)?, asset, - sudo_address: Address::try_from_raw(&sudo_address) + sudo_address: Address::try_from_raw(sudo_address) .map_err(BridgeAccountInfoResponseError::invalid_sudo_address)?, - withdrawer_address: Address::try_from_raw(&withdrawer_address) + withdrawer_address: Address::try_from_raw(withdrawer_address) .map_err(BridgeAccountInfoResponseError::invalid_withdrawer_address)?, }), }) diff --git a/crates/astria-core/src/protocol/genesis/v1.rs b/crates/astria-core/src/protocol/genesis/v1.rs index 69bb2269bd..8df8f7e2bf 100644 --- a/crates/astria-core/src/protocol/genesis/v1.rs +++ b/crates/astria-core/src/protocol/genesis/v1.rs @@ -10,7 +10,6 @@ use crate::{ denom::ParseTracePrefixedError, ParseDenomError, }, - try_construct_dummy_address_from_prefix, Address, AddressError, Bech32, @@ -183,16 +182,18 @@ impl Protobuf for GenesisAppState { .as_ref() .ok_or_else(|| Self::Error::field_not_set("authority_sudo_address")) .and_then(|addr| { - Address::try_from_raw(addr).map_err(Self::Error::authority_sudo_address) + Address::try_from_raw_ref(addr).map_err(Self::Error::authority_sudo_address) })?; let ibc_sudo_address = ibc_sudo_address .as_ref() .ok_or_else(|| Self::Error::field_not_set("ibc_sudo_address")) - .and_then(|addr| Address::try_from_raw(addr).map_err(Self::Error::ibc_sudo_address))?; + .and_then(|addr| { + Address::try_from_raw_ref(addr).map_err(Self::Error::ibc_sudo_address) + })?; let ibc_relayer_addresses = ibc_relayer_addresses .iter() - .map(Address::try_from_raw) + .map(Address::try_from_raw_ref) .collect::>() .map_err(Self::Error::ibc_relayer_addresses)?; @@ -405,7 +406,7 @@ impl Protobuf for Account { let address = address .as_ref() .ok_or_else(|| AccountError::field_not_set("address")) - .and_then(|addr| Address::try_from_raw(addr).map_err(Self::Error::address))?; + .and_then(|addr| Address::try_from_raw_ref(addr).map_err(Self::Error::address))?; let balance = balance .ok_or_else(|| AccountError::field_not_set("balance")) .map(Into::into)?; @@ -481,12 +482,22 @@ impl Protobuf for AddressPrefixes { type Raw = raw::AddressPrefixes; fn try_from_raw_ref(raw: &Self::Raw) -> Result { + fn dummy_addr(prefix: &str) -> Result<(), AddressError> { + Address::::builder() + .array([0u8; crate::primitive::v1::ADDRESS_LEN]) + .prefix(prefix) + .try_build() + .map(|_| ()) + } + let Self::Raw { base, ibc_compat, } = raw; - try_construct_dummy_address_from_prefix::(base).map_err(Self::Error::base)?; - try_construct_dummy_address_from_prefix::(ibc_compat).map_err(Self::Error::base)?; + + dummy_addr::(base).map_err(Self::Error::base)?; + dummy_addr::(ibc_compat).map_err(Self::Error::base)?; + Ok(Self { base: base.to_string(), ibc_compat: ibc_compat.to_string(), diff --git a/crates/astria-core/src/protocol/transaction/v1/action/mod.rs b/crates/astria-core/src/protocol/transaction/v1/action/mod.rs index c4f8320f9c..80ba7d2326 100644 --- a/crates/astria-core/src/protocol/transaction/v1/action/mod.rs +++ b/crates/astria-core/src/protocol/transaction/v1/action/mod.rs @@ -538,7 +538,7 @@ impl Protobuf for Transfer { let Some(to) = to else { return Err(TransferError::field_not_set("to")); }; - let to = Address::try_from_raw(to).map_err(TransferError::address)?; + let to = Address::try_from_raw_ref(to).map_err(TransferError::address)?; let amount = amount.map_or(0, Into::into); let asset = asset.parse().map_err(TransferError::asset)?; let fee_asset = fee_asset.parse().map_err(TransferError::fee_asset)?; @@ -780,7 +780,7 @@ impl Protobuf for SudoAddressChange { return Err(SudoAddressChangeError::field_not_set("new_address")); }; let new_address = - Address::try_from_raw(new_address).map_err(SudoAddressChangeError::address)?; + Address::try_from_raw_ref(new_address).map_err(SudoAddressChangeError::address)?; Ok(Self { new_address, }) @@ -847,7 +847,7 @@ impl Protobuf for IbcSudoChange { return Err(IbcSudoChangeError::field_not_set("new_address")); }; let new_address = - Address::try_from_raw(new_address).map_err(IbcSudoChangeError::address)?; + Address::try_from_raw_ref(new_address).map_err(IbcSudoChangeError::address)?; Ok(Self { new_address, }) @@ -1034,7 +1034,7 @@ impl Protobuf for Ics20Withdrawal { } = proto; let amount = amount.ok_or(Ics20WithdrawalError::field_not_set("amount"))?; let return_address = Address::try_from_raw( - &return_address.ok_or(Ics20WithdrawalError::field_not_set("return_address"))?, + return_address.ok_or(Ics20WithdrawalError::field_not_set("return_address"))?, ) .map_err(Ics20WithdrawalError::return_address)?; @@ -1042,7 +1042,6 @@ impl Protobuf for Ics20Withdrawal { .ok_or(Ics20WithdrawalError::field_not_set("timeout_height"))? .into(); let bridge_address = bridge_address - .as_ref() .map(Address::try_from_raw) .transpose() .map_err(Ics20WithdrawalError::invalid_bridge_address)?; @@ -1090,12 +1089,13 @@ impl Protobuf for Ics20Withdrawal { use_compat_address, } = proto; let amount = amount.ok_or(Ics20WithdrawalError::field_not_set("amount"))?; - let return_address = Address::try_from_raw( - return_address - .as_ref() - .ok_or(Ics20WithdrawalError::field_not_set("return_address"))?, - ) - .map_err(Ics20WithdrawalError::return_address)?; + let return_address = return_address + .as_ref() + .ok_or_else(|| Ics20WithdrawalError::field_not_set("return_address")) + .and_then(|return_address| { + Address::try_from_raw_ref(return_address) + .map_err(Ics20WithdrawalError::return_address) + })?; let timeout_height = timeout_height .clone() @@ -1103,7 +1103,7 @@ impl Protobuf for Ics20Withdrawal { .into(); let bridge_address = bridge_address .as_ref() - .map(Address::try_from_raw) + .map(Address::try_from_raw_ref) .transpose() .map_err(Ics20WithdrawalError::invalid_bridge_address)?; @@ -1245,14 +1245,14 @@ impl Protobuf for IbcRelayerChange { value: Some(raw::ibc_relayer_change::Value::Addition(address)), } => { let address = - Address::try_from_raw(address).map_err(IbcRelayerChangeError::address)?; + Address::try_from_raw_ref(address).map_err(IbcRelayerChangeError::address)?; Ok(IbcRelayerChange::Addition(address)) } raw::IbcRelayerChange { value: Some(raw::ibc_relayer_change::Value::Removal(address)), } => { let address = - Address::try_from_raw(address).map_err(IbcRelayerChangeError::address)?; + Address::try_from_raw_ref(address).map_err(IbcRelayerChangeError::address)?; Ok(IbcRelayerChange::Removal(address)) } _ => Err(IbcRelayerChangeError::missing_address()), @@ -1423,13 +1423,11 @@ impl Protobuf for InitBridgeAccount { .map_err(InitBridgeAccountError::invalid_fee_asset)?; let sudo_address = proto .sudo_address - .as_ref() .map(Address::try_from_raw) .transpose() .map_err(InitBridgeAccountError::invalid_sudo_address)?; let withdrawer_address = proto .withdrawer_address - .as_ref() .map(Address::try_from_raw) .transpose() .map_err(InitBridgeAccountError::invalid_withdrawer_address)?; @@ -1558,7 +1556,7 @@ impl Protobuf for BridgeLock { let Some(to) = proto.to else { return Err(BridgeLockError::field_not_set("to")); }; - let to = Address::try_from_raw(&to).map_err(BridgeLockError::address)?; + let to = Address::try_from_raw(to).map_err(BridgeLockError::address)?; let amount = proto.amount.ok_or(BridgeLockError::missing_amount())?; let asset = proto .asset @@ -1704,13 +1702,13 @@ impl Protobuf for BridgeUnlock { } = proto; let to = to .ok_or_else(|| BridgeUnlockError::field_not_set("to")) - .and_then(|to| Address::try_from_raw(&to).map_err(BridgeUnlockError::address))?; + .and_then(|to| Address::try_from_raw(to).map_err(BridgeUnlockError::address))?; let amount = amount.ok_or_else(|| BridgeUnlockError::field_not_set("amount"))?; let fee_asset = fee_asset.parse().map_err(BridgeUnlockError::fee_asset)?; let bridge_address = bridge_address .ok_or_else(|| BridgeUnlockError::field_not_set("bridge_address")) - .and_then(|to| Address::try_from_raw(&to).map_err(BridgeUnlockError::bridge_address))?; + .and_then(|to| Address::try_from_raw(to).map_err(BridgeUnlockError::bridge_address))?; Ok(Self { to, amount: amount.into(), @@ -1825,17 +1823,15 @@ impl Protobuf for BridgeSudoChange { let Some(bridge_address) = proto.bridge_address else { return Err(BridgeSudoChangeError::field_not_set("bridge_address")); }; - let bridge_address = Address::try_from_raw(&bridge_address) + let bridge_address = Address::try_from_raw(bridge_address) .map_err(BridgeSudoChangeError::invalid_bridge_address)?; let new_sudo_address = proto .new_sudo_address - .as_ref() .map(Address::try_from_raw) .transpose() .map_err(BridgeSudoChangeError::invalid_new_sudo_address)?; let new_withdrawer_address = proto .new_withdrawer_address - .as_ref() .map(Address::try_from_raw) .transpose() .map_err(BridgeSudoChangeError::invalid_new_withdrawer_address)?; diff --git a/crates/astria-core/src/sequencerblock/v1/block.rs b/crates/astria-core/src/sequencerblock/v1/block.rs index 48f8907fac..c7013e4d85 100644 --- a/crates/astria-core/src/sequencerblock/v1/block.rs +++ b/crates/astria-core/src/sequencerblock/v1/block.rs @@ -1428,7 +1428,7 @@ impl Deposit { return Err(DepositError::field_not_set("bridge_address")); }; let bridge_address = - Address::try_from_raw(&bridge_address).map_err(DepositError::address)?; + Address::try_from_raw(bridge_address).map_err(DepositError::address)?; let amount = amount.ok_or(DepositError::field_not_set("amount"))?.into(); let Some(rollup_id) = rollup_id else { return Err(DepositError::field_not_set("rollup_id")); diff --git a/crates/astria-sequencer-client/src/tests/http.rs b/crates/astria-sequencer-client/src/tests/http.rs index 23f1ee481c..9fca6a4949 100644 --- a/crates/astria-sequencer-client/src/tests/http.rs +++ b/crates/astria-sequencer-client/src/tests/http.rs @@ -12,6 +12,7 @@ use astria_core::{ Transaction, TransactionBody, }, + Protobuf as _, }; use hex_literal::hex; use prost::bytes::Bytes; diff --git a/crates/astria-sequencer/src/fees/tests.rs b/crates/astria-sequencer/src/fees/tests.rs index f486683a9e..088cf62de1 100644 --- a/crates/astria-sequencer/src/fees/tests.rs +++ b/crates/astria-sequencer/src/fees/tests.rs @@ -30,6 +30,7 @@ use astria_core::{ }, }, sequencerblock::v1::block::Deposit, + Protobuf as _, }; use cnidarium::StateDelta; diff --git a/crates/astria-sequencer/src/grpc/sequencer.rs b/crates/astria-sequencer/src/grpc/sequencer.rs index 7d74f077f6..2a87c73182 100644 --- a/crates/astria-sequencer/src/grpc/sequencer.rs +++ b/crates/astria-sequencer/src/grpc/sequencer.rs @@ -188,7 +188,7 @@ impl SequencerService for SequencerServer { )); }; - let address = Address::try_from_raw(&address).map_err(|e| { + let address = Address::try_from_raw(address).map_err(|e| { info!( error = %e, "failed to parse address from request", From fb66cf820c9e9d8b1d5aaa47adc6890a651a3b1d Mon Sep 17 00:00:00 2001 From: Jordan Oroshiba Date: Thu, 21 Nov 2024 18:30:42 +0900 Subject: [PATCH 08/16] fix(charts): fix hermes config (#1778) ## Summary The hermes config didn't work when path filters were used because some standard config properties were below the seperated path filter section. ## Background Allow use of path filters on deployed hermes instances. ## Changelogs No updates required. --------- Co-authored-by: quasystaty --- charts/hermes/Chart.yaml | 2 +- charts/hermes/files/config.toml | 20 +++++++++----------- charts/hermes/templates/configmaps.yaml | 2 +- charts/hermes/templates/servicemonitor.yaml | 4 ++-- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/charts/hermes/Chart.yaml b/charts/hermes/Chart.yaml index a16a7a270d..d7fe9a429e 100644 --- a/charts/hermes/Chart.yaml +++ b/charts/hermes/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.5.1 +version: 0.5.2 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/hermes/files/config.toml b/charts/hermes/files/config.toml index 190fe66410..9aa59863ec 100644 --- a/charts/hermes/files/config.toml +++ b/charts/hermes/files/config.toml @@ -2,7 +2,6 @@ log_level = '{{ .Values.global.logLevel }}' [rest] - # Whether or not to enable the REST service. Default: false enabled = {{ .Values.rest.enabled }} @@ -110,6 +109,15 @@ trust_threshold = '{{ $chain.trustThreshold }}' {{- if $chain.memoPrefix }} memo_prefix = '{{ $chain.memoPrefix }}' {{- end }} +{{- if $chain.feeGranter }} +fee_granter = '{{ $chain.feeGranter }}' +{{- end }} +{{- if $chain.compatMode }} +compat_mode = '{{ $chain.compatMode }}' +{{- end }} +{{- if $chain.clearInterval }} +clear_interval = '{{ $chain.clearInterval }}' +{{- end }} {{- if $chain.packetFilter }} {{- if $chain.packetFilter.policy }} @@ -132,14 +140,4 @@ recv = [ {{- end }} {{- end }} {{- end }} -{{- if $chain.feeGranter }} -fee_granter = '{{ $chain.feeGranter }}' -{{- end }} -{{- if $chain.compatMode }} -compat_mode = '{{ $chain.compatMode }}' -{{- end }} -{{- if $chain.clearInterval }} -clear_interval = '{{ $chain.clearInterval }}' -{{- end }} - {{ end }} diff --git a/charts/hermes/templates/configmaps.yaml b/charts/hermes/templates/configmaps.yaml index 4fdee17151..234fa42eaa 100644 --- a/charts/hermes/templates/configmaps.yaml +++ b/charts/hermes/templates/configmaps.yaml @@ -5,7 +5,7 @@ metadata: namespace: {{ include "hermes.namespace" . }} data: config.toml: | - {{- tpl (.Files.Get "files/config.toml") $ | nindent 4 }} + {{- tpl (.Files.Get "files/config.toml") $ | nindent 4 }} --- {{- if not .Values.secretProvider.enabled }} {{- range $chainId, $chain := .Values.chains }} diff --git a/charts/hermes/templates/servicemonitor.yaml b/charts/hermes/templates/servicemonitor.yaml index 6cf7dfc356..d99d368654 100644 --- a/charts/hermes/templates/servicemonitor.yaml +++ b/charts/hermes/templates/servicemonitor.yaml @@ -2,14 +2,14 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: - name: hermes-relayer-metrics + name: {{ include "hermes.fullname" . }}-metrics labels: app: {{ include "hermes.fullname" . }} {{- with .Values.serviceMonitor.additionalLabels }} {{- toYaml . | nindent 4 }} {{- end }} spec: - jobLabel: hermes-relayer-metric + jobLabel: {{ include "hermes.fullname" . }}-metric namespaceSelector: matchNames: - {{ include "hermes.namespace" . }} From e67fdb949de83365b9a6e6ef0bbbf10482da7f4d Mon Sep 17 00:00:00 2001 From: Ethan Oroshiba Date: Thu, 21 Nov 2024 13:57:25 -0600 Subject: [PATCH 09/16] fix(sequencer)!: ensure deposits use trace-prefixed assets (#1807) ## Summary Ensures deposits created within bridge lock actions use only trace-prefixed assets. ## Background Currently, deposits created within a bridge lock action include whichever asset is used in the action, which can be either IBC- or trace-prefixed. This poses a problem, since our EVM has no concept of IBC-prefixed assets, and we shouldn't expect others using our network to, either. One solution discussed was to enforce all `BridgeLock` actions to use trace prefixed assets, but this would be a consensus breaking change. This aims to remedy the bug whilst making no breaking changes. ## Changes - Map any IBC-prefixed assets included in a `BridgeLock` action to trace-prefixed when constructing the `Deposit`. ## Testing - Added unit test to ensure an IBC-prefixed asset included in a bridge lock action is correctly mapped to a trace-prefixed asset in the corresponding deposit. - Tested that change would be non-breaking by syncing a full node to mainnet ## Changelogs Changelog updated. ## Breaking Changes Technically, this change is breaking, since any sequencer version prior to this which received a `BridgeLock` action containing an IBC-prefixed asset would emit a `Deposit` with an IBC-prefixed asset, while any sequencer version after would only emit deposits with trace-prefixed assets. However, owing to the fact that no such cases have happened yet on mainnet, this change would not be practically breaking so long as no `BridgeLock` actions containing IBC-prefixed denoms have been submitted by the time this patch is pushed out. This is actively being tested by a full-node running this PR against mainnet. ## Steps to sync this PR to Mainnet on your local machine Ensure you have docker installed + running ### Download and build Sequencer ```bash git clone https://github.com/astriaorg/astria.git cd astria git checkout ENG-1004/trace_prefixed_deposits cargo build -p astria-sequencer --release just docker-build astria-sequencer ``` ### Helm install ```bash helm repo add astria https://astriaorg.github.io/charts/ ``` Download this file and put in the `astria` repo: https://github.com/astriaorg/networks/blob/main/astria/full-node-values.yaml Make these edits to `full-node-values.yaml`, replacing "your_moniker" with your chosen moniker: ```yaml namespace: "astria-node" moniker: `` images: sequencer: tag: local cometbft: secrets: nodeKey: devContent: priv_key: value: 1yh4XrMHn75sSW5cOhGDTVgv5BbqXlhrLduxHcE2t1osbwKQzo7xlvSK1vh5CVDvHESPYK/56uTKXM/1ifqHbw== privValidatorKey: devContent: address: 8C17BBDC7C350C83C550163458FC9B7A5B54A64E pub_key: value: 4v1RdMiKkWgBBTTP26iRSLOEkAY99gMVfZijm6OCzjs= priv_key: value: WxsUPI2QASIwK+XV547R8xzL66a5oBR2G8h53t0Gcl7i/VF0yIqRaAEFNM/bqJFIs4SQBj32AxV9mKObo4LOOw== sequencer: metrics: enabled: false otel: enabled: false storage: local: true entities: sequencerSharedStorage: storageClassName: -sequencer-shared-storage-local ``` From the `astria` repo: ```bash just deploy cluster just deploy ingress-controller just wait-for-ingress-controller just load-image sequencer helm install astria-full-node astria/sequencer --version 1.0.0-rc.4 \ --namespace astria-node --create-namespace -f full-node-values.yaml ``` After this you should be able to go into k9s and see both the sequencer and CometBFT running ## Related Issues closes #1806 --- crates/astria-sequencer/CHANGELOG.md | 3 +- .../src/bridge/bridge_lock_action.rs | 102 +++++++++++++++++- 2 files changed, 103 insertions(+), 2 deletions(-) diff --git a/crates/astria-sequencer/CHANGELOG.md b/crates/astria-sequencer/CHANGELOG.md index 335a3a4e80..783b76235e 100644 --- a/crates/astria-sequencer/CHANGELOG.md +++ b/crates/astria-sequencer/CHANGELOG.md @@ -9,9 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## Changed +### Changed - Index all event attributes [#1786](https://github.com/astriaorg/astria/pull/1786). +- Ensure all deposit assets are trace prefixed [#1807](https://github.com/astriaorg/astria/pull/1807). ## [1.0.0] - 2024-10-25 diff --git a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs b/crates/astria-sequencer/src/bridge/bridge_lock_action.rs index 3a3a4218ea..f8aac2148b 100644 --- a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs +++ b/crates/astria-sequencer/src/bridge/bridge_lock_action.rs @@ -20,6 +20,7 @@ use crate::{ }, address::StateReadExt as _, app::ActionHandler, + assets::StateReadExt as _, bridge::{ StateReadExt as _, StateWriteExt as _, @@ -68,11 +69,21 @@ impl ActionHandler for BridgeLock { .expect("current source should be set before executing action") .source_action_index; + // map asset to trace prefixed asset for deposit, if it is not already + let deposit_asset = match self.asset.as_trace_prefixed() { + Some(asset) => asset.clone(), + None => state + .map_ibc_to_trace_prefixed_asset(&allowed_asset) + .await + .wrap_err("failed to map IBC asset to trace prefixed asset")? + .ok_or_eyre("mapping from IBC prefixed bridge asset to trace prefixed not found")?, + }; + let deposit = Deposit { bridge_address: self.to, rollup_id, amount: self.amount, - asset: self.asset.clone(), + asset: deposit_asset.into(), destination_chain_address: self.destination_chain_address.clone(), source_transaction_id, source_action_index, @@ -94,3 +105,92 @@ impl ActionHandler for BridgeLock { Ok(()) } } + +#[cfg(test)] +mod tests { + use astria_core::{ + primitive::v1::{ + asset, + TransactionId, + }, + protocol::transaction::v1::action::BridgeLock, + }; + use cnidarium::StateDelta; + + use crate::{ + accounts::{ + AddressBytes, + StateWriteExt as _, + }, + address::StateWriteExt as _, + app::ActionHandler as _, + assets::StateWriteExt as _, + benchmark_and_test_utils::{ + astria_address, + nria, + ASTRIA_PREFIX, + }, + bridge::{ + StateReadExt, + StateWriteExt as _, + }, + transaction::{ + StateWriteExt as _, + TransactionContext, + }, + }; + + #[tokio::test] + async fn bridge_lock_maps_ibc_to_trace_prefixed_for_deposit() { + let storage = cnidarium::TempStorage::new().await.unwrap(); + let snapshot = storage.latest_snapshot(); + let mut state = StateDelta::new(snapshot); + + let trace_asset = "trace_asset" + .parse::() + .unwrap(); + let ibc_asset = trace_asset.to_ibc_prefixed(); + let transfer_amount = 100; + let bridge_address = astria_address(&[3; 20]); + let from_address = astria_address(&[1; 20]); + + state.put_transaction_context(TransactionContext { + address_bytes: *from_address.address_bytes(), + transaction_id: TransactionId::new([0; 32]), + source_action_index: 0, + }); + state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); + state + .put_bridge_account_rollup_id(&bridge_address, [0; 32].into()) + .unwrap(); + state + .put_bridge_account_ibc_asset(&bridge_address, ibc_asset) + .unwrap(); + state.put_ibc_asset(trace_asset.clone()).unwrap(); + state + .put_account_balance(&from_address, &trace_asset, transfer_amount) + .unwrap(); + + let bridge_lock_action = BridgeLock { + to: bridge_address, + amount: transfer_amount, + asset: ibc_asset.into(), + fee_asset: nria().into(), + destination_chain_address: "ethan_was_here".to_string(), + }; + + bridge_lock_action + .check_and_execute(&mut state) + .await + .unwrap(); + + let deposits = state + .get_cached_block_deposits() + .values() + .next() + .unwrap() + .clone(); + assert_eq!(deposits.len(), 1); + assert!(deposits[0].asset.as_trace_prefixed().is_some()); + } +} From ab87d35e350bdf63b7ed85b4d125b869377079c8 Mon Sep 17 00:00:00 2001 From: Ethan Oroshiba Date: Mon, 2 Dec 2024 09:37:07 -0600 Subject: [PATCH 10/16] chore(sequencer): change name of `source_action_index` to `position_in_transaction` (#1746) ## Summary Changed all non-deposit related instances of `source_action_index` to `position_in_transaction` ## Background This is meant to be more descriptive and less confusing to consumers. Deposits should stay the same, though, for parity with Geth and to avoid breaking changes. ## Changes - Changed all instances of `source_action_index` to `position_in_transaction`, excluding deposits.. ## Testing Passing all tests ## Related Issues closes #1735 --- .../src/bridge/bridge_lock_action.rs | 4 ++-- .../src/bridge/bridge_sudo_change_action.rs | 4 ++-- .../src/bridge/bridge_unlock_action.rs | 6 +++--- crates/astria-sequencer/src/fees/action.rs | 2 +- crates/astria-sequencer/src/fees/mod.rs | 6 +++--- crates/astria-sequencer/src/fees/state_ext.rs | 15 +++++++++------ crates/astria-sequencer/src/fees/tests.rs | 2 +- crates/astria-sequencer/src/ibc/ics20_transfer.rs | 12 ++++++------ crates/astria-sequencer/src/transaction/mod.rs | 2 +- .../astria-sequencer/src/transaction/state_ext.rs | 4 ++-- 10 files changed, 30 insertions(+), 27 deletions(-) diff --git a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs b/crates/astria-sequencer/src/bridge/bridge_lock_action.rs index f8aac2148b..4498a9860e 100644 --- a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs +++ b/crates/astria-sequencer/src/bridge/bridge_lock_action.rs @@ -67,7 +67,7 @@ impl ActionHandler for BridgeLock { let source_action_index = state .get_transaction_context() .expect("current source should be set before executing action") - .source_action_index; + .position_in_transaction; // map asset to trace prefixed asset for deposit, if it is not already let deposit_asset = match self.asset.as_trace_prefixed() { @@ -157,7 +157,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: *from_address.address_bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); state diff --git a/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs b/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs index 655694abfc..10757babcd 100644 --- a/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs +++ b/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs @@ -115,7 +115,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: [1; 20], transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); @@ -155,7 +155,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: sudo_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); state diff --git a/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs b/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs index 52fcb2b407..ca906c5dca 100644 --- a/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs +++ b/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs @@ -145,7 +145,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: [1; 20], transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); @@ -184,7 +184,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: [1; 20], transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); @@ -228,7 +228,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); diff --git a/crates/astria-sequencer/src/fees/action.rs b/crates/astria-sequencer/src/fees/action.rs index 927eea5ec9..89c6bb12e6 100644 --- a/crates/astria-sequencer/src/fees/action.rs +++ b/crates/astria-sequencer/src/fees/action.rs @@ -169,7 +169,7 @@ mod tests { state.put_transaction_context(TransactionContext { address_bytes: [1; 20], transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state.put_sudo_address([1; 20]).unwrap(); diff --git a/crates/astria-sequencer/src/fees/mod.rs b/crates/astria-sequencer/src/fees/mod.rs index 2e3547e7fb..224073148e 100644 --- a/crates/astria-sequencer/src/fees/mod.rs +++ b/crates/astria-sequencer/src/fees/mod.rs @@ -67,7 +67,7 @@ pub(crate) struct Fee { action_name: String, asset: asset::Denom, amount: u128, - source_action_index: u64, + position_in_transaction: u64, } impl Fee { @@ -339,7 +339,7 @@ async fn check_and_pay_fees( .get_transaction_context() .expect("transaction source must be present in state when executing an action"); let from = transaction_context.address_bytes(); - let source_action_index = transaction_context.source_action_index; + let position_in_transaction = transaction_context.position_in_transaction; ensure!( state @@ -349,7 +349,7 @@ async fn check_and_pay_fees( "invalid fee asset", ); state - .add_fee_to_block_fees::<_, T>(fee_asset, total_fees, source_action_index) + .add_fee_to_block_fees::<_, T>(fee_asset, total_fees, position_in_transaction) .wrap_err("failed to add to block fees")?; state .decrease_balance(&from, fee_asset, total_fees) diff --git a/crates/astria-sequencer/src/fees/state_ext.rs b/crates/astria-sequencer/src/fees/state_ext.rs index 5035fc6ef5..142cc2b607 100644 --- a/crates/astria-sequencer/src/fees/state_ext.rs +++ b/crates/astria-sequencer/src/fees/state_ext.rs @@ -382,7 +382,7 @@ pub(crate) trait StateWriteExt: StateWrite { &mut self, asset: &'a TAsset, amount: u128, - source_action_index: u64, + position_in_transaction: u64, ) -> Result<()> where TAsset: Sync + std::fmt::Display, @@ -394,7 +394,7 @@ pub(crate) trait StateWriteExt: StateWrite { action_name: T::full_name(), asset: asset::IbcPrefixed::from(asset).into(), amount, - source_action_index, + position_in_transaction, }; // Fee ABCI event recorded for reporting @@ -574,7 +574,10 @@ fn construct_tx_fee_event(fee: &Fee) -> Event { ("actionName", fee.action_name.to_string()), ("asset", fee.asset.to_string()), ("feeAmount", fee.amount.to_string()), - ("positionInTransaction", fee.source_action_index.to_string()), + ( + "positionInTransaction", + fee.position_in_transaction.to_string(), + ), ], ) } @@ -631,7 +634,7 @@ mod tests { action_name: "astria.protocol.transaction.v1.Transfer".to_string(), asset: asset.to_ibc_prefixed().into(), amount, - source_action_index: 0 + position_in_transaction: 0 }, "fee balances are not what they were expected to be" ); @@ -664,13 +667,13 @@ mod tests { action_name: "astria.protocol.transaction.v1.Transfer".to_string(), asset: asset_first.to_ibc_prefixed().into(), amount: amount_first, - source_action_index: 0 + position_in_transaction: 0 }, Fee { action_name: "astria.protocol.transaction.v1.Transfer".to_string(), asset: asset_second.to_ibc_prefixed().into(), amount: amount_second, - source_action_index: 1 + position_in_transaction: 1 }, ]), "returned fee balance vector not what was expected" diff --git a/crates/astria-sequencer/src/fees/tests.rs b/crates/astria-sequencer/src/fees/tests.rs index 088cf62de1..dd0741bbd3 100644 --- a/crates/astria-sequencer/src/fees/tests.rs +++ b/crates/astria-sequencer/src/fees/tests.rs @@ -334,7 +334,7 @@ async fn bridge_lock_fee_calculation_works_as_expected() { state.put_transaction_context(TransactionContext { address_bytes: from_address.bytes(), transaction_id, - source_action_index: 0, + position_in_transaction: 0, }); state.put_base_prefix(ASTRIA_PREFIX.to_string()).unwrap(); diff --git a/crates/astria-sequencer/src/ibc/ics20_transfer.rs b/crates/astria-sequencer/src/ibc/ics20_transfer.rs index 4fa98ee3c3..c94b87ed0f 100644 --- a/crates/astria-sequencer/src/ibc/ics20_transfer.rs +++ b/crates/astria-sequencer/src/ibc/ics20_transfer.rs @@ -724,7 +724,7 @@ async fn emit_deposit( .get_transaction_context() .ok_or_eyre("transaction source should be present in state when executing an action")?; let source_transaction_id = transaction_context.transaction_id; - let source_action_index = transaction_context.source_action_index; + let source_action_index = transaction_context.position_in_transaction; let deposit = Deposit { bridge_address: *bridge_address, @@ -934,7 +934,7 @@ mod tests { state_tx.put_transaction_context(TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); let rollup_deposit_address = "rollupaddress"; @@ -1016,7 +1016,7 @@ mod tests { state_tx.put_transaction_context(TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); let rollup_deposit_address = "rollupaddress"; @@ -1266,7 +1266,7 @@ mod tests { state_tx.put_transaction_context(TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state_tx @@ -1350,7 +1350,7 @@ mod tests { state_tx.put_transaction_context(TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }); state_tx @@ -1455,7 +1455,7 @@ mod tests { let transaction_context = TransactionContext { address_bytes: bridge_address.bytes(), transaction_id: TransactionId::new([0; 32]), - source_action_index: 0, + position_in_transaction: 0, }; state_tx.put_transaction_context(transaction_context); diff --git a/crates/astria-sequencer/src/transaction/mod.rs b/crates/astria-sequencer/src/transaction/mod.rs index d430cca111..7164769b33 100644 --- a/crates/astria-sequencer/src/transaction/mod.rs +++ b/crates/astria-sequencer/src/transaction/mod.rs @@ -212,7 +212,7 @@ impl ActionHandler for Transaction { // FIXME: this should create one span per `check_and_execute` for (i, action) in (0..).zip(self.actions().iter()) { - transaction_context.source_action_index = i; + transaction_context.position_in_transaction = i; state.put_transaction_context(transaction_context); match action { diff --git a/crates/astria-sequencer/src/transaction/state_ext.rs b/crates/astria-sequencer/src/transaction/state_ext.rs index 2dbfed621c..4a3427e10d 100644 --- a/crates/astria-sequencer/src/transaction/state_ext.rs +++ b/crates/astria-sequencer/src/transaction/state_ext.rs @@ -18,7 +18,7 @@ fn transaction_context() -> &'static str { pub(crate) struct TransactionContext { pub(crate) address_bytes: [u8; ADDRESS_LEN], pub(crate) transaction_id: TransactionId, - pub(crate) source_action_index: u64, + pub(crate) position_in_transaction: u64, } impl TransactionContext { @@ -32,7 +32,7 @@ impl From<&Transaction> for TransactionContext { Self { address_bytes: *value.address_bytes(), transaction_id: value.id(), - source_action_index: 0, + position_in_transaction: 0, } } } From d5b9a3d4a12d17a89ae61a4aefec23dacdea72d3 Mon Sep 17 00:00:00 2001 From: Ethan Oroshiba Date: Mon, 2 Dec 2024 10:32:08 -0600 Subject: [PATCH 11/16] chore(sequencer): consolidate all action handling to one module (#1759) ## Summary Moved all action and transaction handling to single module. ## Background Previously, all implementations of `ActionHandler` were done separately in components which corresponded to their given actions (or groups of actions, such as in `bridge`). While this may make sense from an action-centered point of view, it is confusing to an outsider to have to look many different places to find where stateless/stateful checks and execution occur. This PR consolidates all of the implementations as well as their testing. ## Changes - Created new `action_handler` module and moved the corresponding `ActionHandler` trait as well as all of its `impl`s into this module. - Renamed some moved tests for clarity. - Categorized tests by action in submodule `tests`. - Categorized impls by action in submodule `impls`. ## Testing Passing all tests. ## Changelogs Changelogs updated ## Related Issues closes #1657 --- crates/astria-sequencer/CHANGELOG.md | 1 + .../astria-sequencer/src/accounts/action.rs | 99 ------ crates/astria-sequencer/src/accounts/mod.rs | 1 - .../impls/bridge_lock.rs} | 11 +- .../impls/bridge_sudo_change.rs} | 35 ++- .../impls/bridge_unlock.rs} | 25 +- .../action_handler/impls/fee_asset_change.rs | 65 ++++ .../impls/fee_change.rs} | 92 ++---- .../impls}/ibc_relayer_change.rs | 2 +- .../action_handler/impls/ibc_sudo_change.rs | 44 +++ .../impls}/ics20_withdrawal.rs | 220 +++++++------- .../impls/init_bridge_account.rs} | 9 +- .../src/action_handler/impls/mod.rs | 16 + .../impls/rollup_data_submission.rs} | 5 +- .../impls/sudo_address_change.rs | 48 +++ .../src/action_handler/impls/test_utils.rs | 5 + .../src/action_handler/impls/transaction.rs | 281 ++++++++++++++++++ .../src/action_handler/impls/transfer.rs | 46 +++ .../action_handler/impls/validator_update.rs | 67 +++++ .../src/action_handler/mod.rs | 94 ++++++ .../src/app/action_handler.rs | 26 -- crates/astria-sequencer/src/app/mod.rs | 15 +- .../src/app/tests_block_fees.rs | 0 .../src/app/tests_execute_transaction.rs | 10 +- .../astria-sequencer/src/authority/action.rs | 130 -------- crates/astria-sequencer/src/authority/mod.rs | 1 - crates/astria-sequencer/src/bridge/mod.rs | 4 - crates/astria-sequencer/src/fees/mod.rs | 1 - crates/astria-sequencer/src/fees/tests.rs | 2 +- crates/astria-sequencer/src/ibc/mod.rs | 2 - crates/astria-sequencer/src/lib.rs | 2 +- .../astria-sequencer/src/rollup_data/mod.rs | 1 - .../src/service/mempool/mod.rs | 2 +- .../astria-sequencer/src/transaction/mod.rs | 279 ----------------- 34 files changed, 861 insertions(+), 780 deletions(-) delete mode 100644 crates/astria-sequencer/src/accounts/action.rs rename crates/astria-sequencer/src/{bridge/bridge_lock_action.rs => action_handler/impls/bridge_lock.rs} (97%) rename crates/astria-sequencer/src/{bridge/bridge_sudo_change_action.rs => action_handler/impls/bridge_sudo_change.rs} (90%) rename crates/astria-sequencer/src/{bridge/bridge_unlock_action.rs => action_handler/impls/bridge_unlock.rs} (95%) create mode 100644 crates/astria-sequencer/src/action_handler/impls/fee_asset_change.rs rename crates/astria-sequencer/src/{fees/action.rs => action_handler/impls/fee_change.rs} (74%) rename crates/astria-sequencer/src/{ibc => action_handler/impls}/ibc_relayer_change.rs (98%) create mode 100644 crates/astria-sequencer/src/action_handler/impls/ibc_sudo_change.rs rename crates/astria-sequencer/src/{ibc => action_handler/impls}/ics20_withdrawal.rs (94%) rename crates/astria-sequencer/src/{bridge/init_bridge_account_action.rs => action_handler/impls/init_bridge_account.rs} (95%) create mode 100644 crates/astria-sequencer/src/action_handler/impls/mod.rs rename crates/astria-sequencer/src/{rollup_data/action.rs => action_handler/impls/rollup_data_submission.rs} (87%) create mode 100644 crates/astria-sequencer/src/action_handler/impls/sudo_address_change.rs create mode 100644 crates/astria-sequencer/src/action_handler/impls/test_utils.rs create mode 100644 crates/astria-sequencer/src/action_handler/impls/transaction.rs create mode 100644 crates/astria-sequencer/src/action_handler/impls/transfer.rs create mode 100644 crates/astria-sequencer/src/action_handler/impls/validator_update.rs create mode 100644 crates/astria-sequencer/src/action_handler/mod.rs delete mode 100644 crates/astria-sequencer/src/app/action_handler.rs delete mode 100644 crates/astria-sequencer/src/app/tests_block_fees.rs delete mode 100644 crates/astria-sequencer/src/authority/action.rs delete mode 100644 crates/astria-sequencer/src/rollup_data/mod.rs diff --git a/crates/astria-sequencer/CHANGELOG.md b/crates/astria-sequencer/CHANGELOG.md index 783b76235e..3fffea9a55 100644 --- a/crates/astria-sequencer/CHANGELOG.md +++ b/crates/astria-sequencer/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Index all event attributes [#1786](https://github.com/astriaorg/astria/pull/1786). +- Consolidate action handling to single module [#1759](https://github.com/astriaorg/astria/pull/1759). - Ensure all deposit assets are trace prefixed [#1807](https://github.com/astriaorg/astria/pull/1807). ## [1.0.0] - 2024-10-25 diff --git a/crates/astria-sequencer/src/accounts/action.rs b/crates/astria-sequencer/src/accounts/action.rs deleted file mode 100644 index dce040abf1..0000000000 --- a/crates/astria-sequencer/src/accounts/action.rs +++ /dev/null @@ -1,99 +0,0 @@ -use astria_core::protocol::transaction::v1::action::Transfer; -use astria_eyre::eyre::{ - ensure, - Result, - WrapErr as _, -}; -use cnidarium::{ - StateRead, - StateWrite, -}; - -use super::AddressBytes; -use crate::{ - accounts::{ - StateReadExt as _, - StateWriteExt as _, - }, - address::StateReadExt as _, - app::ActionHandler, - bridge::StateReadExt as _, - transaction::StateReadExt as _, -}; - -#[async_trait::async_trait] -impl ActionHandler for Transfer { - async fn check_stateless(&self) -> Result<()> { - Ok(()) - } - - async fn check_and_execute(&self, state: S) -> Result<()> { - let from = state - .get_transaction_context() - .expect("transaction source must be present in state when executing an action") - .address_bytes(); - - ensure!( - state - .get_bridge_account_rollup_id(&from) - .await - .wrap_err("failed to get bridge account rollup id")? - .is_none(), - "cannot transfer out of bridge account; BridgeUnlock must be used", - ); - - check_transfer(self, &from, &state).await?; - execute_transfer(self, &from, state).await?; - - Ok(()) - } -} - -pub(crate) async fn execute_transfer( - action: &Transfer, - from: &TAddress, - mut state: S, -) -> Result<()> -where - S: StateWrite, - TAddress: AddressBytes, -{ - let from = from.address_bytes(); - state - .decrease_balance(from, &action.asset, action.amount) - .await - .wrap_err("failed decreasing `from` account balance")?; - state - .increase_balance(&action.to, &action.asset, action.amount) - .await - .wrap_err("failed increasing `to` account balance")?; - - Ok(()) -} - -pub(crate) async fn check_transfer( - action: &Transfer, - from: &TAddress, - state: &S, -) -> Result<()> -where - S: StateRead, - TAddress: AddressBytes, -{ - state.ensure_base_prefix(&action.to).await.wrap_err( - "failed ensuring that the destination address matches the permitted base prefix", - )?; - - let transfer_asset = &action.asset; - - let from_transfer_balance = state - .get_account_balance(from, transfer_asset) - .await - .wrap_err("failed to get account balance in transfer check")?; - ensure!( - from_transfer_balance >= action.amount, - "insufficient funds for transfer" - ); - - Ok(()) -} diff --git a/crates/astria-sequencer/src/accounts/mod.rs b/crates/astria-sequencer/src/accounts/mod.rs index 436ff211ea..6931208e9f 100644 --- a/crates/astria-sequencer/src/accounts/mod.rs +++ b/crates/astria-sequencer/src/accounts/mod.rs @@ -1,4 +1,3 @@ -pub(crate) mod action; pub(crate) mod component; pub(crate) mod query; mod state_ext; diff --git a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs b/crates/astria-sequencer/src/action_handler/impls/bridge_lock.rs similarity index 97% rename from crates/astria-sequencer/src/bridge/bridge_lock_action.rs rename to crates/astria-sequencer/src/action_handler/impls/bridge_lock.rs index 4498a9860e..3be717fc61 100644 --- a/crates/astria-sequencer/src/bridge/bridge_lock_action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/bridge_lock.rs @@ -11,25 +11,26 @@ use astria_eyre::eyre::{ Result, WrapErr as _, }; +use async_trait::async_trait; use cnidarium::StateWrite; use crate::{ - accounts::action::{ + action_handler::{ check_transfer, execute_transfer, + ActionHandler, }, address::StateReadExt as _, - app::ActionHandler, assets::StateReadExt as _, bridge::{ StateReadExt as _, - StateWriteExt as _, + StateWriteExt, }, transaction::StateReadExt as _, utils::create_deposit_event, }; -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for BridgeLock { async fn check_stateless(&self) -> Result<()> { Ok(()) @@ -122,8 +123,8 @@ mod tests { AddressBytes, StateWriteExt as _, }, + action_handler::ActionHandler as _, address::StateWriteExt as _, - app::ActionHandler as _, assets::StateWriteExt as _, benchmark_and_test_utils::{ astria_address, diff --git a/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs b/crates/astria-sequencer/src/action_handler/impls/bridge_sudo_change.rs similarity index 90% rename from crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs rename to crates/astria-sequencer/src/action_handler/impls/bridge_sudo_change.rs index 10757babcd..6bdb3ee4f4 100644 --- a/crates/astria-sequencer/src/bridge/bridge_sudo_change_action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/bridge_sudo_change.rs @@ -5,18 +5,20 @@ use astria_eyre::eyre::{ Result, WrapErr as _, }; +use async_trait::async_trait; use cnidarium::StateWrite; use crate::{ + action_handler::ActionHandler, address::StateReadExt as _, - app::ActionHandler, - bridge::state_ext::{ + bridge::{ StateReadExt as _, - StateWriteExt as _, + StateWriteExt, }, transaction::StateReadExt as _, }; -#[async_trait::async_trait] + +#[async_trait] impl ActionHandler for BridgeSudoChange { async fn check_stateless(&self) -> Result<()> { Ok(()) @@ -79,22 +81,29 @@ impl ActionHandler for BridgeSudoChange { #[cfg(test)] mod tests { use astria_core::{ - primitive::v1::{ - asset, - TransactionId, + primitive::v1::TransactionId, + protocol::{ + fees::v1::BridgeSudoChangeFeeComponents, + transaction::v1::action::BridgeSudoChange, }, - protocol::fees::v1::BridgeSudoChangeFeeComponents, }; use cnidarium::StateDelta; - use super::*; use crate::{ accounts::StateWriteExt as _, + action_handler::{ + impls::test_utils::test_asset, + ActionHandler as _, + }, address::StateWriteExt as _, benchmark_and_test_utils::{ astria_address, ASTRIA_PREFIX, }, + bridge::{ + StateReadExt as _, + StateWriteExt as _, + }, fees::StateWriteExt as _, transaction::{ StateWriteExt as _, @@ -102,12 +111,8 @@ mod tests { }, }; - fn test_asset() -> asset::Denom { - "test".parse().unwrap() - } - #[tokio::test] - async fn fails_with_unauthorized_if_signer_is_not_sudo_address() { + async fn bridge_sudo_change_fails_with_unauthorized_if_signer_is_not_sudo_address() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); @@ -146,7 +151,7 @@ mod tests { } #[tokio::test] - async fn executes() { + async fn bridge_sudo_change_executes_as_expected() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); diff --git a/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs b/crates/astria-sequencer/src/action_handler/impls/bridge_unlock.rs similarity index 95% rename from crates/astria-sequencer/src/bridge/bridge_unlock_action.rs rename to crates/astria-sequencer/src/action_handler/impls/bridge_unlock.rs index ca906c5dca..10da98c5a4 100644 --- a/crates/astria-sequencer/src/bridge/bridge_unlock_action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/bridge_unlock.rs @@ -8,23 +8,24 @@ use astria_eyre::eyre::{ Result, WrapErr as _, }; +use async_trait::async_trait; use cnidarium::StateWrite; use crate::{ - accounts::action::{ + action_handler::{ check_transfer, execute_transfer, + ActionHandler, }, address::StateReadExt as _, - app::ActionHandler, bridge::{ StateReadExt as _, - StateWriteExt as _, + StateWriteExt, }, transaction::StateReadExt as _, }; -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for BridgeUnlock { // TODO(https://github.com/astriaorg/astria/issues/1430): move checks to the `BridgeUnlock` parsing. async fn check_stateless(&self) -> Result<()> { @@ -104,7 +105,6 @@ impl ActionHandler for BridgeUnlock { mod tests { use astria_core::{ primitive::v1::{ - asset, RollupId, TransactionId, }, @@ -117,8 +117,11 @@ mod tests { use crate::{ accounts::StateWriteExt as _, + action_handler::{ + impls::test_utils::test_asset, + ActionHandler as _, + }, address::StateWriteExt as _, - app::ActionHandler as _, benchmark_and_test_utils::{ assert_eyre_error, astria_address, @@ -132,12 +135,8 @@ mod tests { }, }; - fn test_asset() -> asset::Denom { - "test".parse().unwrap() - } - #[tokio::test] - async fn fails_if_bridge_account_has_no_withdrawer_address() { + async fn bridge_unlock_fails_if_bridge_account_has_no_withdrawer_address() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); @@ -176,7 +175,7 @@ mod tests { } #[tokio::test] - async fn fails_if_withdrawer_is_not_signer() { + async fn bridge_unlock_fails_if_withdrawer_is_not_signer() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); @@ -219,7 +218,7 @@ mod tests { } #[tokio::test] - async fn execute_with_duplicated_withdrawal_event_id() { + async fn bridge_unlock_executes_with_duplicated_withdrawal_event_id() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); diff --git a/crates/astria-sequencer/src/action_handler/impls/fee_asset_change.rs b/crates/astria-sequencer/src/action_handler/impls/fee_asset_change.rs new file mode 100644 index 0000000000..c92161e751 --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/fee_asset_change.rs @@ -0,0 +1,65 @@ +use astria_core::protocol::transaction::v1::action::FeeAssetChange; +use astria_eyre::eyre::{ + self, + ensure, + WrapErr as _, +}; +use async_trait::async_trait; +use cnidarium::StateWrite; +use futures::StreamExt as _; +use tokio::pin; + +use crate::{ + action_handler::ActionHandler, + authority::StateReadExt as _, + fees::{ + StateReadExt as _, + StateWriteExt as _, + }, + transaction::StateReadExt as _, +}; + +#[async_trait] +impl ActionHandler for FeeAssetChange { + async fn check_stateless(&self) -> eyre::Result<()> { + Ok(()) + } + + async fn check_and_execute(&self, mut state: S) -> eyre::Result<()> { + let from = state + .get_transaction_context() + .expect("transaction source must be present in state when executing an action") + .address_bytes(); + let authority_sudo_address = state + .get_sudo_address() + .await + .wrap_err("failed to get authority sudo address")?; + ensure!( + authority_sudo_address == from, + "unauthorized address for fee asset change" + ); + match self { + FeeAssetChange::Addition(asset) => { + state + .put_allowed_fee_asset(asset) + .context("failed to write allowed fee asset to state")?; + } + FeeAssetChange::Removal(asset) => { + state.delete_allowed_fee_asset(asset); + + pin!( + let assets = state.allowed_fee_assets(); + ); + ensure!( + assets + .filter_map(|item| std::future::ready(item.ok())) + .next() + .await + .is_some(), + "cannot remove last allowed fee asset", + ); + } + } + Ok(()) + } +} diff --git a/crates/astria-sequencer/src/fees/action.rs b/crates/astria-sequencer/src/action_handler/impls/fee_change.rs similarity index 74% rename from crates/astria-sequencer/src/fees/action.rs rename to crates/astria-sequencer/src/action_handler/impls/fee_change.rs index 89c6bb12e6..d83cf2ed61 100644 --- a/crates/astria-sequencer/src/fees/action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/fee_change.rs @@ -1,27 +1,20 @@ -use astria_core::protocol::transaction::v1::action::{ - FeeAssetChange, - FeeChange, -}; +use astria_core::protocol::transaction::v1::action::FeeChange; use astria_eyre::eyre::{ self, ensure, WrapErr as _, }; +use async_trait::async_trait; use cnidarium::StateWrite; -use futures::StreamExt; -use tokio::pin; use crate::{ - app::ActionHandler, + action_handler::ActionHandler, authority::StateReadExt as _, - fees::{ - StateReadExt as _, - StateWriteExt as _, - }, + fees::StateWriteExt as _, transaction::StateReadExt as _, }; -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for FeeChange { async fn check_stateless(&self) -> eyre::Result<()> { Ok(()) @@ -88,51 +81,6 @@ impl ActionHandler for FeeChange { } } -#[async_trait::async_trait] -impl ActionHandler for FeeAssetChange { - async fn check_stateless(&self) -> eyre::Result<()> { - Ok(()) - } - - async fn check_and_execute(&self, mut state: S) -> eyre::Result<()> { - let from = state - .get_transaction_context() - .expect("transaction source must be present in state when executing an action") - .address_bytes(); - let authority_sudo_address = state - .get_sudo_address() - .await - .wrap_err("failed to get authority sudo address")?; - ensure!( - authority_sudo_address == from, - "unauthorized address for fee asset change" - ); - match self { - FeeAssetChange::Addition(asset) => { - state - .put_allowed_fee_asset(asset) - .context("failed to write allowed fee asset to state")?; - } - FeeAssetChange::Removal(asset) => { - state.delete_allowed_fee_asset(asset); - - pin!( - let assets = state.allowed_fee_assets(); - ); - ensure!( - assets - .filter_map(|item| std::future::ready(item.ok())) - .next() - .await - .is_some(), - "cannot remove last allowed fee asset", - ); - } - } - Ok(()) - } -} - #[cfg(test)] mod tests { use astria_core::{ @@ -141,7 +89,7 @@ mod tests { }; use crate::{ - app::ActionHandler as _, + action_handler::ActionHandler as _, authority::StateWriteExt as _, fees::StateReadExt as _, transaction::{ @@ -216,19 +164,19 @@ mod tests { } test_fee_change_action!( - transfer => Transfer, - rollup_data_submission => RollupDataSubmission, - ics20_withdrawal => Ics20Withdrawal, - init_bridge_account => InitBridgeAccount, - bridge_lock => BridgeLock, - bridge_unlock => BridgeUnlock, - bridge_sudo_change => BridgeSudoChange, - validator_update => ValidatorUpdate, - ibc_relayer_change => IbcRelayerChange, - ibc_relay => IbcRelay, - fee_asset_change => FeeAssetChange, - fee_change => FeeChange, - sudo_address_change => SudoAddressChange, - ibc_sudo_change => IbcSudoChange, + transfer => Transfer, + rollup_data_submission => RollupDataSubmission, + ics20_withdrawal => Ics20Withdrawal, + init_bridge_account => InitBridgeAccount, + bridge_lock => BridgeLock, + bridge_unlock => BridgeUnlock, + bridge_sudo_change => BridgeSudoChange, + validator_update => ValidatorUpdate, + ibc_relayer_change => IbcRelayerChange, + ibc_relay => IbcRelay, + fee_asset_change => FeeAssetChange, + fee_change => FeeChange, + sudo_address_change => SudoAddressChange, + ibc_sudo_change => IbcSudoChange, ); } diff --git a/crates/astria-sequencer/src/ibc/ibc_relayer_change.rs b/crates/astria-sequencer/src/action_handler/impls/ibc_relayer_change.rs similarity index 98% rename from crates/astria-sequencer/src/ibc/ibc_relayer_change.rs rename to crates/astria-sequencer/src/action_handler/impls/ibc_relayer_change.rs index 0c277b412e..e5de94afbe 100644 --- a/crates/astria-sequencer/src/ibc/ibc_relayer_change.rs +++ b/crates/astria-sequencer/src/action_handler/impls/ibc_relayer_change.rs @@ -8,8 +8,8 @@ use async_trait::async_trait; use cnidarium::StateWrite; use crate::{ + action_handler::ActionHandler, address::StateReadExt as _, - app::ActionHandler, ibc::{ StateReadExt as _, StateWriteExt as _, diff --git a/crates/astria-sequencer/src/action_handler/impls/ibc_sudo_change.rs b/crates/astria-sequencer/src/action_handler/impls/ibc_sudo_change.rs new file mode 100644 index 0000000000..f82af648fc --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/ibc_sudo_change.rs @@ -0,0 +1,44 @@ +use astria_core::protocol::transaction::v1::action::IbcSudoChange; +use astria_eyre::eyre::{ + ensure, + Result, + WrapErr as _, +}; +use async_trait::async_trait; +use cnidarium::StateWrite; + +use crate::{ + action_handler::ActionHandler, + address::StateReadExt as _, + authority::StateReadExt as _, + ibc::StateWriteExt as _, + transaction::StateReadExt as _, +}; + +#[async_trait] +impl ActionHandler for IbcSudoChange { + async fn check_stateless(&self) -> Result<()> { + Ok(()) + } + + async fn check_and_execute(&self, mut state: S) -> Result<()> { + let from = state + .get_transaction_context() + .expect("transaction source must be present in state when executing an action") + .address_bytes(); + state + .ensure_base_prefix(&self.new_address) + .await + .wrap_err("desired new ibc sudo address has an unsupported prefix")?; + // ensure signer is the valid `sudo` key in state + let sudo_address = state + .get_sudo_address() + .await + .wrap_err("failed to get sudo address from state")?; + ensure!(sudo_address == from, "signer is not the sudo key"); + state + .put_ibc_sudo_address(self.new_address) + .wrap_err("failed to put ibc sudo address in state")?; + Ok(()) + } +} diff --git a/crates/astria-sequencer/src/ibc/ics20_withdrawal.rs b/crates/astria-sequencer/src/action_handler/impls/ics20_withdrawal.rs similarity index 94% rename from crates/astria-sequencer/src/ibc/ics20_withdrawal.rs rename to crates/astria-sequencer/src/action_handler/impls/ics20_withdrawal.rs index 12975e4abf..35d1523ece 100644 --- a/crates/astria-sequencer/src/ibc/ics20_withdrawal.rs +++ b/crates/astria-sequencer/src/action_handler/impls/ics20_withdrawal.rs @@ -6,7 +6,9 @@ use astria_core::{ }, protocol::{ memos::v1::Ics20WithdrawalFromRollup, - transaction::v1::action, + transaction::v1::action::{ + self, + }, }, }; use astria_eyre::{ @@ -19,10 +21,12 @@ use astria_eyre::{ WrapErr as _, }, }; +use async_trait::async_trait; use cnidarium::{ StateRead, StateWrite, }; +use ibc_proto::ibc::apps::transfer::v2::FungibleTokenPacketData; use ibc_types::core::channel::{ ChannelId, PortId, @@ -33,21 +37,18 @@ use penumbra_ibc::component::packet::{ SendPacketWrite as _, Unchecked, }; -use penumbra_proto::core::component::ibc::v1::FungibleTokenPacketData; use crate::{ accounts::{ - AddressBytes as _, + AddressBytes, StateWriteExt as _, }, + action_handler::ActionHandler, address::StateReadExt as _, - app::{ - ActionHandler, - StateReadExt as _, - }, + app::StateReadExt as _, bridge::{ StateReadExt as _, - StateWriteExt as _, + StateWriteExt, }, ibc::{ StateReadExt as _, @@ -56,92 +57,7 @@ use crate::{ transaction::StateReadExt as _, }; -async fn create_ibc_packet_from_withdrawal( - withdrawal: &action::Ics20Withdrawal, - state: S, -) -> Result> { - let sender = if withdrawal.use_compat_address { - let ibc_compat_prefix = state.get_ibc_compat_prefix().await.context( - "need to construct bech32 compatible address for IBC communication but failed reading \ - required prefix from state", - )?; - withdrawal - .return_address() - .to_prefix(&ibc_compat_prefix) - .context("failed to convert the address to the bech32 compatible prefix")? - .to_format::() - .to_string() - } else { - withdrawal.return_address.to_string() - }; - let packet = FungibleTokenPacketData { - amount: withdrawal.amount.to_string(), - denom: withdrawal.denom.to_string(), - sender, - receiver: withdrawal.destination_chain_address.clone(), - memo: withdrawal.memo.clone(), - }; - - let serialized_packet_data = - serde_json::to_vec(&packet).context("failed to serialize fungible token packet as JSON")?; - - Ok(IBCPacket::new( - PortId::transfer(), - withdrawal.source_channel().clone(), - *withdrawal.timeout_height(), - withdrawal.timeout_time(), - serialized_packet_data, - )) -} - -/// Establishes the withdrawal target. -/// -/// The function returns the following addresses under the following conditions: -/// 1. `action.bridge_address` if `action.bridge_address` is set and `from` is its stored withdrawer -/// address. -/// 2. `from` if `action.bridge_address` is unset and `from` is *not* a bridge account. -/// -/// Errors if: -/// 1. Errors reading from DB -/// 2. `action.bridge_address` is set, but `from` is not the withdrawer address. -/// 3. `action.bridge_address` is unset, but `from` is a bridge account. -async fn establish_withdrawal_target<'a, S: StateRead>( - action: &'a action::Ics20Withdrawal, - state: &S, - from: &'a [u8; 20], -) -> Result<&'a [u8; 20]> { - // If the bridge address is set, the withdrawer on that address must match - // the from address. - if let Some(bridge_address) = &action.bridge_address { - let Some(withdrawer) = state - .get_bridge_account_withdrawer_address(bridge_address) - .await - .wrap_err("failed to get bridge withdrawer")? - else { - bail!("bridge address must have a withdrawer address set"); - }; - - ensure!( - &withdrawer == from.address_bytes(), - "sender does not match bridge withdrawer address; unauthorized" - ); - - return Ok(bridge_address.as_bytes()); - } - - // If the bridge address is not set, the sender must not be a bridge account. - if state - .is_a_bridge_account(from) - .await - .context("failed to establish whether the sender is a bridge account")? - { - bail!("sender cannot be a bridge address if bridge address is not set"); - } - - Ok(from) -} - -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for action::Ics20Withdrawal { // TODO(https://github.com/astriaorg/astria/issues/1430): move checks to the `Ics20Withdrawal` parsing. async fn check_stateless(&self) -> Result<()> { @@ -257,6 +173,91 @@ impl ActionHandler for action::Ics20Withdrawal { } } +async fn create_ibc_packet_from_withdrawal( + withdrawal: &action::Ics20Withdrawal, + state: S, +) -> Result> { + let sender = if withdrawal.use_compat_address { + let ibc_compat_prefix = state.get_ibc_compat_prefix().await.context( + "need to construct bech32 compatible address for IBC communication but failed reading \ + required prefix from state", + )?; + withdrawal + .return_address() + .to_prefix(&ibc_compat_prefix) + .context("failed to convert the address to the bech32 compatible prefix")? + .to_format::() + .to_string() + } else { + withdrawal.return_address.to_string() + }; + let packet = FungibleTokenPacketData { + amount: withdrawal.amount.to_string(), + denom: withdrawal.denom.to_string(), + sender, + receiver: withdrawal.destination_chain_address.clone(), + memo: withdrawal.memo.clone(), + }; + + let serialized_packet_data = + serde_json::to_vec(&packet).context("failed to serialize fungible token packet as JSON")?; + + Ok(IBCPacket::new( + PortId::transfer(), + withdrawal.source_channel().clone(), + *withdrawal.timeout_height(), + withdrawal.timeout_time(), + serialized_packet_data, + )) +} + +/// Establishes the withdrawal target. +/// +/// The function returns the following addresses under the following conditions: +/// 1. `action.bridge_address` if `action.bridge_address` is set and `from` is its stored withdrawer +/// address. +/// 2. `from` if `action.bridge_address` is unset and `from` is *not* a bridge account. +/// +/// Errors if: +/// 1. Errors reading from DB +/// 2. `action.bridge_address` is set, but `from` is not the withdrawer address. +/// 3. `action.bridge_address` is unset, but `from` is a bridge account. +async fn establish_withdrawal_target<'a, S: StateRead>( + action: &'a action::Ics20Withdrawal, + state: &S, + from: &'a [u8; 20], +) -> Result<&'a [u8; 20]> { + // If the bridge address is set, the withdrawer on that address must match + // the from address. + if let Some(bridge_address) = &action.bridge_address { + let Some(withdrawer) = state + .get_bridge_account_withdrawer_address(bridge_address) + .await + .wrap_err("failed to get bridge withdrawer")? + else { + bail!("bridge address must have a withdrawer address set"); + }; + + ensure!( + &withdrawer == from.address_bytes(), + "sender does not match bridge withdrawer address; unauthorized" + ); + + return Ok(bridge_address.as_bytes()); + } + + // If the bridge address is not set, the sender must not be a bridge account. + if state + .is_a_bridge_account(from) + .await + .context("failed to establish whether the sender is a bridge account")? + { + bail!("sender cannot be a bridge address if bridge address is not set"); + } + + Ok(from) +} + fn is_source(source_port: &PortId, source_channel: &ChannelId, asset: &Denom) -> bool { if let Denom::TracePrefixed(trace) = asset { !trace.has_leading_port(source_port) || !trace.has_leading_channel(source_channel) @@ -267,27 +268,34 @@ fn is_source(source_port: &PortId, source_channel: &ChannelId, asset: &Denom) -> #[cfg(test)] mod tests { - use astria_core::primitive::v1::RollupId; + use astria_core::{ + primitive::v1::RollupId, + protocol::transaction::v1::action, + }; use cnidarium::StateDelta; use ibc_types::core::client::Height; - use super::*; use crate::{ + action_handler::impls::{ + ics20_withdrawal::establish_withdrawal_target, + test_utils::test_asset, + }, address::StateWriteExt as _, benchmark_and_test_utils::{ assert_eyre_error, astria_address, ASTRIA_PREFIX, }, + bridge::StateWriteExt as _, }; #[tokio::test] - async fn sender_is_withdrawal_target_if_bridge_is_not_set_and_sender_is_not_bridge() { + async fn withdrawal_target_is_sender_if_bridge_is_not_set_and_sender_is_not_bridge() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let state = StateDelta::new(snapshot); - let denom = "test".parse::().unwrap(); + let denom = test_asset(); let from = [1u8; 20]; let action = action::Ics20Withdrawal { amount: 1, @@ -312,7 +320,7 @@ mod tests { } #[tokio::test] - async fn sender_is_withdrawal_target_if_bridge_is_unset_but_sender_is_bridge() { + async fn withdrawal_target_is_sender_if_bridge_is_unset_but_sender_is_bridge() { let storage = cnidarium::TempStorage::new().await.unwrap(); let snapshot = storage.latest_snapshot(); let mut state = StateDelta::new(snapshot); @@ -331,7 +339,7 @@ mod tests { .put_bridge_account_withdrawer_address(&bridge_address, bridge_address) .unwrap(); - let denom = "test".parse::().unwrap(); + let denom = test_asset(); let action = action::Ics20Withdrawal { amount: 1, denom: denom.clone(), @@ -361,21 +369,17 @@ mod tests { [1; 20] } - fn denom() -> Denom { - "test".parse().unwrap() - } - fn action() -> action::Ics20Withdrawal { action::Ics20Withdrawal { amount: 1, - denom: denom(), + denom: test_asset(), bridge_address: None, destination_chain_address: "test".to_string(), return_address: astria_address(&[1; 20]), timeout_height: Height::new(1, 1).unwrap(), timeout_time: 1, source_channel: "channel-0".to_string().parse().unwrap(), - fee_asset: denom(), + fee_asset: test_asset(), memo: String::new(), use_compat_address: false, } @@ -439,7 +443,7 @@ mod tests { .put_bridge_account_withdrawer_address(&bridge_address, withdrawer_address) .unwrap(); - let denom = "test".parse::().unwrap(); + let denom = test_asset(); let action = action::Ics20Withdrawal { amount: 1, denom: denom.clone(), @@ -471,7 +475,7 @@ mod tests { // sender is not the withdrawer address, so must fail let not_bridge_address = [1u8; 20]; - let denom = "test".parse::().unwrap(); + let denom = test_asset(); let action = action::Ics20Withdrawal { amount: 1, denom: denom.clone(), diff --git a/crates/astria-sequencer/src/bridge/init_bridge_account_action.rs b/crates/astria-sequencer/src/action_handler/impls/init_bridge_account.rs similarity index 95% rename from crates/astria-sequencer/src/bridge/init_bridge_account_action.rs rename to crates/astria-sequencer/src/action_handler/impls/init_bridge_account.rs index 72d62f1b76..85e05de042 100644 --- a/crates/astria-sequencer/src/bridge/init_bridge_account_action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/init_bridge_account.rs @@ -7,19 +7,20 @@ use astria_eyre::eyre::{ Result, WrapErr as _, }; +use async_trait::async_trait; use cnidarium::StateWrite; use crate::{ + action_handler::ActionHandler, address::StateReadExt as _, - app::ActionHandler, - bridge::state_ext::{ + bridge::{ StateReadExt as _, - StateWriteExt as _, + StateWriteExt, }, transaction::StateReadExt as _, }; -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for InitBridgeAccount { async fn check_stateless(&self) -> Result<()> { Ok(()) diff --git a/crates/astria-sequencer/src/action_handler/impls/mod.rs b/crates/astria-sequencer/src/action_handler/impls/mod.rs new file mode 100644 index 0000000000..c273cc26ff --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/mod.rs @@ -0,0 +1,16 @@ +pub(crate) mod bridge_lock; +pub(crate) mod bridge_sudo_change; +pub(crate) mod bridge_unlock; +pub(crate) mod fee_asset_change; +pub(crate) mod fee_change; +pub(crate) mod ibc_relayer_change; +pub(crate) mod ibc_sudo_change; +pub(crate) mod ics20_withdrawal; +pub(crate) mod init_bridge_account; +pub(crate) mod rollup_data_submission; +pub(crate) mod sudo_address_change; +#[cfg(test)] +pub(crate) mod test_utils; +pub(crate) mod transaction; +pub(crate) mod transfer; +pub(crate) mod validator_update; diff --git a/crates/astria-sequencer/src/rollup_data/action.rs b/crates/astria-sequencer/src/action_handler/impls/rollup_data_submission.rs similarity index 87% rename from crates/astria-sequencer/src/rollup_data/action.rs rename to crates/astria-sequencer/src/action_handler/impls/rollup_data_submission.rs index cde9f8e591..3881e221bf 100644 --- a/crates/astria-sequencer/src/rollup_data/action.rs +++ b/crates/astria-sequencer/src/action_handler/impls/rollup_data_submission.rs @@ -3,11 +3,12 @@ use astria_eyre::eyre::{ ensure, Result, }; +use async_trait::async_trait; use cnidarium::StateWrite; -use crate::app::ActionHandler; +use crate::action_handler::ActionHandler; -#[async_trait::async_trait] +#[async_trait] impl ActionHandler for RollupDataSubmission { async fn check_stateless(&self) -> Result<()> { // TODO: do we want to place a maximum on the size of the data? diff --git a/crates/astria-sequencer/src/action_handler/impls/sudo_address_change.rs b/crates/astria-sequencer/src/action_handler/impls/sudo_address_change.rs new file mode 100644 index 0000000000..7c7cb2e5e2 --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/sudo_address_change.rs @@ -0,0 +1,48 @@ +use astria_core::protocol::transaction::v1::action::SudoAddressChange; +use astria_eyre::eyre::{ + ensure, + Result, + WrapErr as _, +}; +use async_trait::async_trait; +use cnidarium::StateWrite; + +use crate::{ + action_handler::ActionHandler, + address::StateReadExt as _, + authority::{ + StateReadExt as _, + StateWriteExt as _, + }, + transaction::StateReadExt as _, +}; + +#[async_trait] +impl ActionHandler for SudoAddressChange { + async fn check_stateless(&self) -> Result<()> { + Ok(()) + } + + /// check that the signer of the transaction is the current sudo address, + /// as only that address can change the sudo address + async fn check_and_execute(&self, mut state: S) -> Result<()> { + let from = state + .get_transaction_context() + .expect("transaction source must be present in state when executing an action") + .address_bytes(); + state + .ensure_base_prefix(&self.new_address) + .await + .wrap_err("desired new sudo address has an unsupported prefix")?; + // ensure signer is the valid `sudo` key in state + let sudo_address = state + .get_sudo_address() + .await + .wrap_err("failed to get sudo address from state")?; + ensure!(sudo_address == from, "signer is not the sudo key"); + state + .put_sudo_address(self.new_address) + .wrap_err("failed to put sudo address in state")?; + Ok(()) + } +} diff --git a/crates/astria-sequencer/src/action_handler/impls/test_utils.rs b/crates/astria-sequencer/src/action_handler/impls/test_utils.rs new file mode 100644 index 0000000000..55ec91b098 --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/test_utils.rs @@ -0,0 +1,5 @@ +use astria_core::primitive::v1::asset; + +pub(super) fn test_asset() -> asset::Denom { + "test".parse().unwrap() +} diff --git a/crates/astria-sequencer/src/action_handler/impls/transaction.rs b/crates/astria-sequencer/src/action_handler/impls/transaction.rs new file mode 100644 index 0000000000..29df7cc10a --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/transaction.rs @@ -0,0 +1,281 @@ +use std::fmt; + +use astria_core::protocol::transaction::v1::{ + Action, + Transaction, +}; +use astria_eyre::{ + anyhow_to_eyre, + eyre::{ + ensure, + Context as _, + OptionExt as _, + Result, + }, +}; +use cnidarium::StateWrite; + +use crate::{ + accounts::{ + StateReadExt as _, + StateWriteExt as _, + }, + action_handler::ActionHandler, + app::StateReadExt as _, + bridge::{ + StateReadExt as _, + StateWriteExt, + }, + fees::FeeHandler, + ibc::{ + host_interface::AstriaHost, + StateReadExt as _, + }, + transaction::{ + check_balance_for_total_fees_and_transfers, + StateWriteExt as _, + }, +}; + +#[derive(Debug)] +pub(crate) struct InvalidChainId(pub(crate) String); + +impl fmt::Display for InvalidChainId { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "provided chain id {} does not match expected chain id", + self.0, + ) + } +} + +impl std::error::Error for InvalidChainId {} + +#[derive(Debug)] +pub(crate) struct InvalidNonce(pub(crate) u32); + +impl fmt::Display for InvalidNonce { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "provided nonce {} does not match expected next nonce", + self.0, + ) + } +} + +impl std::error::Error for InvalidNonce {} + +#[async_trait::async_trait] +impl ActionHandler for Transaction { + async fn check_stateless(&self) -> Result<()> { + ensure!(!self.actions().is_empty(), "must have at least one action"); + + for action in self.actions() { + match action { + Action::Transfer(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for Transfer action")?, + Action::RollupDataSubmission(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for RollupDataSubmission action")?, + Action::ValidatorUpdate(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for ValidatorUpdate action")?, + Action::SudoAddressChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for SudoAddressChange action")?, + Action::IbcSudoChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for IbcSudoChange action")?, + Action::FeeChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for FeeChange action")?, + Action::Ibc(act) => { + let action = act + .clone() + .with_handler::(); + action + .check_stateless(()) + .await + .map_err(anyhow_to_eyre) + .wrap_err("stateless check failed for Ibc action")?; + } + Action::Ics20Withdrawal(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for Ics20Withdrawal action")?, + Action::IbcRelayerChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for IbcRelayerChange action")?, + Action::FeeAssetChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for FeeAssetChange action")?, + Action::InitBridgeAccount(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for InitBridgeAccount action")?, + Action::BridgeLock(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for BridgeLock action")?, + Action::BridgeUnlock(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for BridgeUnlock action")?, + Action::BridgeSudoChange(act) => act + .check_stateless() + .await + .wrap_err("stateless check failed for BridgeSudoChange action")?, + } + } + Ok(()) + } + + // FIXME (https://github.com/astriaorg/astria/issues/1584): because most lines come from delegating (and error wrapping) to the + // individual actions. This could be tidied up by implementing `ActionHandler for Action` + // and letting it delegate. + #[expect(clippy::too_many_lines, reason = "should be refactored")] + async fn check_and_execute(&self, mut state: S) -> Result<()> { + // Add the current signed transaction into the ephemeral state in case + // downstream actions require access to it. + // XXX: This must be deleted at the end of `check_stateful`. + let mut transaction_context = state.put_transaction_context(self); + + // Transactions must match the chain id of the node. + let chain_id = state.get_chain_id().await?; + ensure!( + self.chain_id() == chain_id.as_str(), + InvalidChainId(self.chain_id().to_string()) + ); + + // Nonce should be equal to the number of executed transactions before this tx. + // First tx has nonce 0. + let curr_nonce = state + .get_account_nonce(self.address_bytes()) + .await + .wrap_err("failed to get nonce for transaction signer")?; + ensure!(curr_nonce == self.nonce(), InvalidNonce(self.nonce())); + + // Should have enough balance to cover all actions. + check_balance_for_total_fees_and_transfers(self, &state) + .await + .wrap_err("failed to check balance for total fees and transfers")?; + + if state + .get_bridge_account_rollup_id(&self) + .await + .wrap_err("failed to check account rollup id")? + .is_some() + { + state + .put_last_transaction_id_for_bridge_account( + &self, + transaction_context.transaction_id, + ) + .wrap_err("failed to put last transaction id for bridge account")?; + } + + let from_nonce = state + .get_account_nonce(&self) + .await + .wrap_err("failed getting nonce of transaction signer")?; + let next_nonce = from_nonce + .checked_add(1) + .ok_or_eyre("overflow occurred incrementing stored nonce")?; + state + .put_account_nonce(&self, next_nonce) + .wrap_err("failed updating `from` nonce")?; + + // FIXME: this should create one span per `check_and_execute` + for (i, action) in (0..).zip(self.actions().iter()) { + transaction_context.position_in_transaction = i; + state.put_transaction_context(transaction_context); + + match action { + Action::Transfer(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing transfer action failed")?, + Action::RollupDataSubmission(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing sequence action failed")?, + Action::ValidatorUpdate(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing validor update")?, + Action::SudoAddressChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing sudo address change failed")?, + Action::IbcSudoChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing ibc sudo change failed")?, + Action::FeeChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("executing fee change failed")?, + Action::Ibc(act) => { + // FIXME: this check should be moved to check_and_execute, as it now has + // access to the the signer through state. However, what's the correct + // ibc AppHandler call to do it? Can we just update one of the trait methods + // of crate::ibc::ics20_transfer::Ics20Transfer? + ensure!( + state + .is_ibc_relayer(self) + .await + .wrap_err("failed to check if address is IBC relayer")?, + "only IBC sudo address can execute IBC actions" + ); + let action = act + .clone() + .with_handler::(); + action + .check_and_execute(&mut state) + .await + .map_err(anyhow_to_eyre) + .wrap_err("failed executing ibc action")?; + } + Action::Ics20Withdrawal(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing ics20 withdrawal")?, + Action::IbcRelayerChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing ibc relayer change")?, + Action::FeeAssetChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing fee asseet change")?, + Action::InitBridgeAccount(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing init bridge account")?, + Action::BridgeLock(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing bridge lock")?, + Action::BridgeUnlock(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing bridge unlock")?, + Action::BridgeSudoChange(act) => check_execute_and_pay_fees(act, &mut state) + .await + .wrap_err("failed executing bridge sudo change")?, + } + } + + // XXX: Delete the current transaction data from the ephemeral state. + state.delete_current_transaction_context(); + Ok(()) + } +} + +async fn check_execute_and_pay_fees( + action: &T, + mut state: S, +) -> Result<()> { + action.check_and_execute(&mut state).await?; + action.check_and_pay_fees(&mut state).await?; + Ok(()) +} diff --git a/crates/astria-sequencer/src/action_handler/impls/transfer.rs b/crates/astria-sequencer/src/action_handler/impls/transfer.rs new file mode 100644 index 0000000000..27d955bca3 --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/transfer.rs @@ -0,0 +1,46 @@ +use astria_core::protocol::transaction::v1::action::Transfer; +use astria_eyre::eyre::{ + ensure, + Result, + WrapErr as _, +}; +use async_trait::async_trait; +use cnidarium::StateWrite; + +use crate::{ + action_handler::{ + check_transfer, + execute_transfer, + ActionHandler, + }, + bridge::StateReadExt as _, + transaction::StateReadExt as _, +}; + +#[async_trait] +impl ActionHandler for Transfer { + async fn check_stateless(&self) -> Result<()> { + Ok(()) + } + + async fn check_and_execute(&self, state: S) -> Result<()> { + let from = state + .get_transaction_context() + .expect("transaction source must be present in state when executing an action") + .address_bytes(); + + ensure!( + state + .get_bridge_account_rollup_id(&from) + .await + .wrap_err("failed to get bridge account rollup id")? + .is_none(), + "cannot transfer out of bridge account; BridgeUnlock must be used", + ); + + check_transfer(self, &from, &state).await?; + execute_transfer(self, &from, state).await?; + + Ok(()) + } +} diff --git a/crates/astria-sequencer/src/action_handler/impls/validator_update.rs b/crates/astria-sequencer/src/action_handler/impls/validator_update.rs new file mode 100644 index 0000000000..4bd0d72c3c --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/impls/validator_update.rs @@ -0,0 +1,67 @@ +use astria_core::protocol::transaction::v1::action::ValidatorUpdate; +use astria_eyre::eyre::{ + bail, + ensure, + Result, + WrapErr as _, +}; +use async_trait::async_trait; +use cnidarium::StateWrite; + +use crate::{ + action_handler::ActionHandler, + authority::{ + StateReadExt as _, + StateWriteExt as _, + }, + transaction::StateReadExt as _, +}; + +#[async_trait] +impl ActionHandler for ValidatorUpdate { + async fn check_stateless(&self) -> Result<()> { + Ok(()) + } + + async fn check_and_execute(&self, mut state: S) -> Result<()> { + let from = state + .get_transaction_context() + .expect("transaction source must be present in state when executing an action") + .address_bytes(); + // ensure signer is the valid `sudo` key in state + let sudo_address = state + .get_sudo_address() + .await + .wrap_err("failed to get sudo address from state")?; + ensure!(sudo_address == from, "signer is not the sudo key"); + + // ensure that we're not removing the last validator or a validator + // that doesn't exist, these both cause issues in cometBFT + if self.power == 0 { + let validator_set = state + .get_validator_set() + .await + .wrap_err("failed to get validator set from state")?; + // check that validator exists + if validator_set + .get(self.verification_key.address_bytes()) + .is_none() + { + bail!("cannot remove a non-existing validator"); + } + // check that this is not the only validator, cannot remove the last one + ensure!(validator_set.len() != 1, "cannot remove the last validator"); + } + + // add validator update in non-consensus state to be used in end_block + let mut validator_updates = state + .get_validator_updates() + .await + .wrap_err("failed getting validator updates from state")?; + validator_updates.push_update(self.clone()); + state + .put_validator_updates(validator_updates) + .wrap_err("failed to put validator updates in state")?; + Ok(()) + } +} diff --git a/crates/astria-sequencer/src/action_handler/mod.rs b/crates/astria-sequencer/src/action_handler/mod.rs new file mode 100644 index 0000000000..09bde22b0e --- /dev/null +++ b/crates/astria-sequencer/src/action_handler/mod.rs @@ -0,0 +1,94 @@ +//! Contains the `ActionHandler` trait, which houses all stateless/stateful checks and execution, as +//! well as all of its implementations. + +use astria_core::protocol::transaction::v1::action::Transfer; +use astria_eyre::eyre::{ + ensure, + Result, + WrapErr as _, +}; +use cnidarium::{ + StateRead, + StateWrite, +}; + +use crate::{ + accounts::{ + AddressBytes, + StateReadExt as _, + StateWriteExt as _, + }, + address::StateReadExt as _, +}; + +pub(crate) mod impls; + +/// This trait is a verbatim copy of `cnidarium_component::ActionHandler`. +/// +/// It's duplicated here because all actions are foreign types, forbidding +/// the implementation of [`cnidarium_component::ActionHandler`][1] for +/// these types due to Rust orphan rules. +/// +/// [1]: https://github.com/penumbra-zone/penumbra/blob/14959350abcb8cfbf33f9aedc7463fccfd8e3f9f/crates/cnidarium-component/src/action_handler.rs#L30 +#[async_trait::async_trait] +pub(crate) trait ActionHandler { + // Commenting out for the time being as this is currently not being used. Leaving this in + // for reference as this is copied from cnidarium_component. + // ``` + // type CheckStatelessContext: Clone + Send + Sync + 'static; + // async fn check_stateless(&self, context: Self::CheckStatelessContext) -> anyhow::Result<()>; + // async fn check_historical(&self, _state: Arc) -> anyhow::Result<()> { + // Ok(()) + // } + // ``` + + async fn check_stateless(&self) -> astria_eyre::eyre::Result<()>; + + async fn check_and_execute(&self, mut state: S) + -> astria_eyre::eyre::Result<()>; +} + +async fn execute_transfer( + action: &Transfer, + from: &TAddress, + mut state: S, +) -> Result<()> +where + S: StateWrite, + TAddress: AddressBytes, +{ + let from = from.address_bytes(); + state + .decrease_balance(from, &action.asset, action.amount) + .await + .wrap_err("failed decreasing `from` account balance")?; + state + .increase_balance(&action.to, &action.asset, action.amount) + .await + .wrap_err("failed increasing `to` account balance")?; + + Ok(()) +} + +async fn check_transfer(action: &Transfer, from: &TAddress, state: &S) -> Result<()> +where + S: StateRead, + TAddress: AddressBytes, +{ + state.ensure_base_prefix(&action.to).await.wrap_err( + "failed ensuring that the destination address matches the permitted base prefix", + )?; + + let transfer_asset = &action.asset; + + let from_transfer_balance = state + .get_account_balance(from, transfer_asset) + .await + .wrap_err("failed to get account balance in transfer check")?; + ensure!( + from_transfer_balance >= action.amount, + "insufficient funds for transfer" + ); + + Ok(()) +} diff --git a/crates/astria-sequencer/src/app/action_handler.rs b/crates/astria-sequencer/src/app/action_handler.rs deleted file mode 100644 index 1ef67ea4bb..0000000000 --- a/crates/astria-sequencer/src/app/action_handler.rs +++ /dev/null @@ -1,26 +0,0 @@ -use cnidarium::StateWrite; - -/// This trait is a verbatim copy of `cnidarium_component::ActionHandler`. -/// -/// It's duplicated here because all actions are foreign types, forbidding -/// the implementation of [`cnidarium_component::ActionHandler`][1] for -/// these types due to Rust orphan rules. -/// -/// [1]: https://github.com/penumbra-zone/penumbra/blob/14959350abcb8cfbf33f9aedc7463fccfd8e3f9f/crates/cnidarium-component/src/action_handler.rs#L30 -#[async_trait::async_trait] -pub(crate) trait ActionHandler { - // Commenting out for the time being as this is currently not being used. Leaving this in - // for reference as this is copied from cnidarium_component. - // ``` - // type CheckStatelessContext: Clone + Send + Sync + 'static; - // async fn check_stateless(&self, context: Self::CheckStatelessContext) -> anyhow::Result<()>; - // async fn check_historical(&self, _state: Arc) -> anyhow::Result<()> { - // Ok(()) - // } - // ``` - - async fn check_stateless(&self) -> astria_eyre::eyre::Result<()>; - - async fn check_and_execute(&self, mut state: S) - -> astria_eyre::eyre::Result<()>; -} diff --git a/crates/astria-sequencer/src/app/mod.rs b/crates/astria-sequencer/src/app/mod.rs index e116664a79..55ecf9a276 100644 --- a/crates/astria-sequencer/src/app/mod.rs +++ b/crates/astria-sequencer/src/app/mod.rs @@ -1,4 +1,3 @@ -mod action_handler; #[cfg(any(test, feature = "benchmark"))] pub(crate) mod benchmark_and_test_utils; #[cfg(feature = "benchmark")] @@ -82,18 +81,19 @@ use tracing::{ instrument, }; -pub(crate) use self::{ - action_handler::ActionHandler, - state_ext::{ - StateReadExt, - StateWriteExt, - }, +pub(crate) use self::state_ext::{ + StateReadExt, + StateWriteExt, }; use crate::{ accounts::{ component::AccountsComponent, StateWriteExt as _, }, + action_handler::{ + impls::transaction::InvalidNonce, + ActionHandler as _, + }, address::StateWriteExt as _, assets::StateWriteExt as _, authority::{ @@ -127,7 +127,6 @@ use crate::{ GeneratedCommitments, }, }, - transaction::InvalidNonce, }; // ephemeral store key for the cache of results of executing of transactions in `prepare_proposal`. diff --git a/crates/astria-sequencer/src/app/tests_block_fees.rs b/crates/astria-sequencer/src/app/tests_block_fees.rs deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/crates/astria-sequencer/src/app/tests_execute_transaction.rs b/crates/astria-sequencer/src/app/tests_execute_transaction.rs index b4785380b3..42443de0c1 100644 --- a/crates/astria-sequencer/src/app/tests_execute_transaction.rs +++ b/crates/astria-sequencer/src/app/tests_execute_transaction.rs @@ -40,6 +40,10 @@ use cnidarium::{ use super::test_utils::get_alice_signing_key; use crate::{ accounts::StateReadExt as _, + action_handler::{ + impls::transaction::InvalidChainId, + ActionHandler as _, + }, app::{ benchmark_and_test_utils::{ BOB_ADDRESS, @@ -49,7 +53,7 @@ use crate::{ get_bridge_signing_key, initialize_app, }, - ActionHandler as _, + InvalidNonce, }, authority::StateReadExt as _, benchmark_and_test_utils::{ @@ -69,10 +73,6 @@ use crate::{ }, ibc::StateReadExt as _, test_utils::calculate_rollup_data_submission_fee_from_state, - transaction::{ - InvalidChainId, - InvalidNonce, - }, utils::create_deposit_event, }; diff --git a/crates/astria-sequencer/src/authority/action.rs b/crates/astria-sequencer/src/authority/action.rs deleted file mode 100644 index 78d69733eb..0000000000 --- a/crates/astria-sequencer/src/authority/action.rs +++ /dev/null @@ -1,130 +0,0 @@ -use astria_core::protocol::transaction::v1::action::{ - IbcSudoChange, - SudoAddressChange, - ValidatorUpdate, -}; -use astria_eyre::eyre::{ - bail, - ensure, - Result, - WrapErr as _, -}; -use cnidarium::StateWrite; - -use crate::{ - address::StateReadExt as _, - app::ActionHandler, - authority::{ - StateReadExt as _, - StateWriteExt as _, - }, - ibc::StateWriteExt as _, - transaction::StateReadExt as _, -}; - -#[async_trait::async_trait] -impl ActionHandler for ValidatorUpdate { - async fn check_stateless(&self) -> Result<()> { - Ok(()) - } - - async fn check_and_execute(&self, mut state: S) -> Result<()> { - let from = state - .get_transaction_context() - .expect("transaction source must be present in state when executing an action") - .address_bytes(); - // ensure signer is the valid `sudo` key in state - let sudo_address = state - .get_sudo_address() - .await - .wrap_err("failed to get sudo address from state")?; - ensure!(sudo_address == from, "signer is not the sudo key"); - - // ensure that we're not removing the last validator or a validator - // that doesn't exist, these both cause issues in cometBFT - if self.power == 0 { - let validator_set = state - .get_validator_set() - .await - .wrap_err("failed to get validator set from state")?; - // check that validator exists - if validator_set - .get(self.verification_key.address_bytes()) - .is_none() - { - bail!("cannot remove a non-existing validator"); - } - // check that this is not the only validator, cannot remove the last one - ensure!(validator_set.len() != 1, "cannot remove the last validator"); - } - - // add validator update in non-consensus state to be used in end_block - let mut validator_updates = state - .get_validator_updates() - .await - .wrap_err("failed getting validator updates from state")?; - validator_updates.push_update(self.clone()); - state - .put_validator_updates(validator_updates) - .wrap_err("failed to put validator updates in state")?; - Ok(()) - } -} - -#[async_trait::async_trait] -impl ActionHandler for SudoAddressChange { - async fn check_stateless(&self) -> Result<()> { - Ok(()) - } - - /// check that the signer of the transaction is the current sudo address, - /// as only that address can change the sudo address - async fn check_and_execute(&self, mut state: S) -> Result<()> { - let from = state - .get_transaction_context() - .expect("transaction source must be present in state when executing an action") - .address_bytes(); - state - .ensure_base_prefix(&self.new_address) - .await - .wrap_err("desired new sudo address has an unsupported prefix")?; - // ensure signer is the valid `sudo` key in state - let sudo_address = state - .get_sudo_address() - .await - .wrap_err("failed to get sudo address from state")?; - ensure!(sudo_address == from, "signer is not the sudo key"); - state - .put_sudo_address(self.new_address) - .wrap_err("failed to put sudo address in state")?; - Ok(()) - } -} - -#[async_trait::async_trait] -impl ActionHandler for IbcSudoChange { - async fn check_stateless(&self) -> Result<()> { - Ok(()) - } - - async fn check_and_execute(&self, mut state: S) -> Result<()> { - let from = state - .get_transaction_context() - .expect("transaction source must be present in state when executing an action") - .address_bytes(); - state - .ensure_base_prefix(&self.new_address) - .await - .wrap_err("desired new ibc sudo address has an unsupported prefix")?; - // ensure signer is the valid `sudo` key in state - let sudo_address = state - .get_sudo_address() - .await - .wrap_err("failed to get sudo address from state")?; - ensure!(sudo_address == from, "signer is not the sudo key"); - state - .put_ibc_sudo_address(self.new_address) - .wrap_err("failed to put ibc sudo address in state")?; - Ok(()) - } -} diff --git a/crates/astria-sequencer/src/authority/mod.rs b/crates/astria-sequencer/src/authority/mod.rs index 22d8a00784..0431f4295d 100644 --- a/crates/astria-sequencer/src/authority/mod.rs +++ b/crates/astria-sequencer/src/authority/mod.rs @@ -1,4 +1,3 @@ -mod action; pub(crate) mod component; mod state_ext; pub(crate) mod storage; diff --git a/crates/astria-sequencer/src/bridge/mod.rs b/crates/astria-sequencer/src/bridge/mod.rs index 5aec65349a..8531007ab1 100644 --- a/crates/astria-sequencer/src/bridge/mod.rs +++ b/crates/astria-sequencer/src/bridge/mod.rs @@ -1,7 +1,3 @@ -mod bridge_lock_action; -mod bridge_sudo_change_action; -mod bridge_unlock_action; -pub(crate) mod init_bridge_account_action; pub(crate) mod query; mod state_ext; pub(crate) mod storage; diff --git a/crates/astria-sequencer/src/fees/mod.rs b/crates/astria-sequencer/src/fees/mod.rs index 224073148e..195ad7be47 100644 --- a/crates/astria-sequencer/src/fees/mod.rs +++ b/crates/astria-sequencer/src/fees/mod.rs @@ -37,7 +37,6 @@ use crate::{ transaction::StateReadExt as _, }; -pub(crate) mod action; pub(crate) mod component; pub(crate) mod query; mod state_ext; diff --git a/crates/astria-sequencer/src/fees/tests.rs b/crates/astria-sequencer/src/fees/tests.rs index dd0741bbd3..41263dd024 100644 --- a/crates/astria-sequencer/src/fees/tests.rs +++ b/crates/astria-sequencer/src/fees/tests.rs @@ -37,6 +37,7 @@ use cnidarium::StateDelta; use super::base_deposit_fee; use crate::{ accounts::StateWriteExt as _, + action_handler::ActionHandler as _, address::StateWriteExt as _, app::{ benchmark_and_test_utils::{ @@ -47,7 +48,6 @@ use crate::{ get_alice_signing_key, get_bridge_signing_key, }, - ActionHandler as _, }, benchmark_and_test_utils::{ assert_eyre_error, diff --git a/crates/astria-sequencer/src/ibc/mod.rs b/crates/astria-sequencer/src/ibc/mod.rs index 5a94d8b536..b0f37b19e1 100644 --- a/crates/astria-sequencer/src/ibc/mod.rs +++ b/crates/astria-sequencer/src/ibc/mod.rs @@ -1,8 +1,6 @@ pub(crate) mod component; pub(crate) mod host_interface; -pub(crate) mod ibc_relayer_change; pub(crate) mod ics20_transfer; -pub(crate) mod ics20_withdrawal; mod state_ext; pub(crate) mod storage; diff --git a/crates/astria-sequencer/src/lib.rs b/crates/astria-sequencer/src/lib.rs index 8701ee6a72..76596e40eb 100644 --- a/crates/astria-sequencer/src/lib.rs +++ b/crates/astria-sequencer/src/lib.rs @@ -1,4 +1,5 @@ pub(crate) mod accounts; +pub(crate) mod action_handler; pub(crate) mod address; pub(crate) mod app; pub(crate) mod assets; @@ -17,7 +18,6 @@ pub(crate) mod ibc; mod mempool; pub(crate) mod metrics; pub(crate) mod proposal; -pub(crate) mod rollup_data; mod sequencer; pub(crate) mod service; pub(crate) mod storage; diff --git a/crates/astria-sequencer/src/rollup_data/mod.rs b/crates/astria-sequencer/src/rollup_data/mod.rs deleted file mode 100644 index f04dbbc6c9..0000000000 --- a/crates/astria-sequencer/src/rollup_data/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub(crate) mod action; diff --git a/crates/astria-sequencer/src/service/mempool/mod.rs b/crates/astria-sequencer/src/service/mempool/mod.rs index 88b59a5b77..ad2b76d9fc 100644 --- a/crates/astria-sequencer/src/service/mempool/mod.rs +++ b/crates/astria-sequencer/src/service/mempool/mod.rs @@ -50,8 +50,8 @@ use tracing::{ use crate::{ accounts::StateReadExt as _, + action_handler::ActionHandler as _, address::StateReadExt as _, - app::ActionHandler as _, mempool::{ get_account_balances, InsertionError, diff --git a/crates/astria-sequencer/src/transaction/mod.rs b/crates/astria-sequencer/src/transaction/mod.rs index 7164769b33..fbfe3e3fb6 100644 --- a/crates/astria-sequencer/src/transaction/mod.rs +++ b/crates/astria-sequencer/src/transaction/mod.rs @@ -1,27 +1,11 @@ mod checks; mod state_ext; -use std::fmt; - -use astria_core::protocol::transaction::v1::{ - action::Action, - Transaction, -}; -use astria_eyre::{ - anyhow_to_eyre, - eyre::{ - ensure, - OptionExt as _, - Result, - WrapErr as _, - }, -}; pub(crate) use checks::{ check_balance_for_total_fees_and_transfers, check_chain_id_mempool, get_total_transaction_cost, }; -use cnidarium::StateWrite; // Conditional to quiet warnings. This object is used throughout the codebase, // but is never explicitly named - hence Rust warns about it being unused. #[cfg(test)] @@ -30,266 +14,3 @@ pub(crate) use state_ext::{ StateReadExt, StateWriteExt, }; - -use crate::{ - accounts::{ - StateReadExt as _, - StateWriteExt as _, - }, - app::{ - ActionHandler, - StateReadExt as _, - }, - bridge::{ - StateReadExt as _, - StateWriteExt as _, - }, - fees::FeeHandler, - ibc::{ - host_interface::AstriaHost, - StateReadExt as _, - }, -}; - -#[derive(Debug)] -pub(crate) struct InvalidChainId(pub(crate) String); - -impl fmt::Display for InvalidChainId { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "provided chain id {} does not match expected chain id", - self.0, - ) - } -} - -impl std::error::Error for InvalidChainId {} - -#[derive(Debug)] -pub(crate) struct InvalidNonce(pub(crate) u32); - -impl fmt::Display for InvalidNonce { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "provided nonce {} does not match expected next nonce", - self.0, - ) - } -} - -impl std::error::Error for InvalidNonce {} - -#[async_trait::async_trait] -impl ActionHandler for Transaction { - async fn check_stateless(&self) -> Result<()> { - ensure!(!self.actions().is_empty(), "must have at least one action"); - - for action in self.actions() { - match action { - Action::Transfer(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for TransferAction")?, - Action::RollupDataSubmission(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for SequenceAction")?, - Action::ValidatorUpdate(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for ValidatorUpdateAction")?, - Action::SudoAddressChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for SudoAddressChangeAction")?, - Action::IbcSudoChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for IbcSudoChangeAction")?, - Action::FeeChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for FeeChangeAction")?, - Action::Ibc(act) => { - let action = act - .clone() - .with_handler::(); - action - .check_stateless(()) - .await - .map_err(anyhow_to_eyre) - .wrap_err("stateless check failed for IbcAction")?; - } - Action::Ics20Withdrawal(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for Ics20WithdrawalAction")?, - Action::IbcRelayerChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for IbcRelayerChangeAction")?, - Action::FeeAssetChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for FeeAssetChangeAction")?, - Action::InitBridgeAccount(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for InitBridgeAccountAction")?, - Action::BridgeLock(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for BridgeLockAction")?, - Action::BridgeUnlock(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for BridgeUnlockAction")?, - Action::BridgeSudoChange(act) => act - .check_stateless() - .await - .wrap_err("stateless check failed for BridgeSudoChangeAction")?, - } - } - Ok(()) - } - - // FIXME (https://github.com/astriaorg/astria/issues/1584): because most lines come from delegating (and error wrapping) to the - // individual actions. This could be tidied up by implementing `ActionHandler for Action` - // and letting it delegate. - #[expect(clippy::too_many_lines, reason = "should be refactored")] - async fn check_and_execute(&self, mut state: S) -> Result<()> { - // Add the current signed transaction into the ephemeral state in case - // downstream actions require access to it. - // XXX: This must be deleted at the end of `check_stateful`. - let mut transaction_context = state.put_transaction_context(self); - - // Transactions must match the chain id of the node. - let chain_id = state.get_chain_id().await?; - ensure!( - self.chain_id() == chain_id.as_str(), - InvalidChainId(self.chain_id().to_string()) - ); - - // Nonce should be equal to the number of executed transactions before this tx. - // First tx has nonce 0. - let curr_nonce = state - .get_account_nonce(self.address_bytes()) - .await - .wrap_err("failed to get nonce for transaction signer")?; - ensure!(curr_nonce == self.nonce(), InvalidNonce(self.nonce())); - - // Should have enough balance to cover all actions. - check_balance_for_total_fees_and_transfers(self, &state) - .await - .wrap_err("failed to check balance for total fees and transfers")?; - - if state - .get_bridge_account_rollup_id(&self) - .await - .wrap_err("failed to check account rollup id")? - .is_some() - { - state - .put_last_transaction_id_for_bridge_account( - &self, - transaction_context.transaction_id, - ) - .wrap_err("failed to put last transaction id for bridge account")?; - } - - let from_nonce = state - .get_account_nonce(&self) - .await - .wrap_err("failed getting nonce of transaction signer")?; - let next_nonce = from_nonce - .checked_add(1) - .ok_or_eyre("overflow occurred incrementing stored nonce")?; - state - .put_account_nonce(&self, next_nonce) - .wrap_err("failed updating `from` nonce")?; - - // FIXME: this should create one span per `check_and_execute` - for (i, action) in (0..).zip(self.actions().iter()) { - transaction_context.position_in_transaction = i; - state.put_transaction_context(transaction_context); - - match action { - Action::Transfer(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing transfer action failed")?, - Action::RollupDataSubmission(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing sequence action failed")?, - Action::ValidatorUpdate(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing validor update")?, - Action::SudoAddressChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing sudo address change failed")?, - Action::IbcSudoChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing ibc sudo change failed")?, - Action::FeeChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("executing fee change failed")?, - Action::Ibc(act) => { - // FIXME: this check should be moved to check_and_execute, as it now has - // access to the the signer through state. However, what's the correct - // ibc AppHandler call to do it? Can we just update one of the trait methods - // of crate::ibc::ics20_transfer::Ics20Transfer? - ensure!( - state - .is_ibc_relayer(self) - .await - .wrap_err("failed to check if address is IBC relayer")?, - "only IBC sudo address can execute IBC actions" - ); - let action = act - .clone() - .with_handler::(); - action - .check_and_execute(&mut state) - .await - .map_err(anyhow_to_eyre) - .wrap_err("failed executing ibc action")?; - } - Action::Ics20Withdrawal(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing ics20 withdrawal")?, - Action::IbcRelayerChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing ibc relayer change")?, - Action::FeeAssetChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing fee asseet change")?, - Action::InitBridgeAccount(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing init bridge account")?, - Action::BridgeLock(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing bridge lock")?, - Action::BridgeUnlock(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing bridge unlock")?, - Action::BridgeSudoChange(act) => check_execute_and_pay_fees(act, &mut state) - .await - .wrap_err("failed executing bridge sudo change")?, - } - } - - // XXX: Delete the current transaction data from the ephemeral state. - state.delete_current_transaction_context(); - Ok(()) - } -} - -async fn check_execute_and_pay_fees( - action: &T, - mut state: S, -) -> Result<()> { - action.check_and_execute(&mut state).await?; - action.check_and_pay_fees(&mut state).await?; - Ok(()) -} From 34fcac61e5aaf72153e00cafb64d9f9fc53299b6 Mon Sep 17 00:00:00 2001 From: Josh Bowen Date: Wed, 4 Dec 2024 10:48:44 -0700 Subject: [PATCH 12/16] update 10-15-24 audit to final report (#1828) ## Summary Replace the 10-15-24 draft report with the final report which notes that we haven't resolved the 3 low severity fixes but have acknowledged them. --- ...uencer - Zellic Audit Report (10-15-24).pdf | Bin 0 -> 802615 bytes ... - Zellic Audit Report Draft (10-15-24).pdf | Bin 469577 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 audits/Astria Shared Sequencer - Zellic Audit Report (10-15-24).pdf delete mode 100644 audits/Astria Shared Sequencer - Zellic Audit Report Draft (10-15-24).pdf diff --git a/audits/Astria Shared Sequencer - Zellic Audit Report (10-15-24).pdf b/audits/Astria Shared Sequencer - Zellic Audit Report (10-15-24).pdf new file mode 100644 index 0000000000000000000000000000000000000000..319842d9abcb12f721f914aff6a48b8368cabbbc GIT binary patch literal 802615 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
4$XZX{X%8Rnw3SK=J-`C@x-3^eqT z*RX(>3XEw8e1RoC<}Y2@}up*b}1%cM!PSMHnD_ z3p)V1iHKONTER@k_Vab3B{B%gW=E}gpNg0aPXO1H9IPnnQ@ODC&VY6joN#J=y)chW zhr-W+pLCAt<=X^#dse+9nM_%EX?YAJ@~AcKkhnY(kS-=6KKi0BbBqqssJC-fcqd%a?6q}N z(5?=UsW8Q1-__cJ!nbb^%`1j&&fGSJJ%02aGiTEVDZlF=fl5E@k-V4ti~|S|_u<`X zN`P6bE+}V#*}HrceRynzLuANvMk;vhlXOE(W;MK!^OQ?KwY zmLkYnBzmATW_O*Ij>LBJ{X?)5suYChv-p*D-hy$TFd)Qm&bl2SBtXFM>b3lR@fg!C z*V|>!RLniN;gpKgU&r<}WR()G6P)}Sd_z~Is+$J(@<;|@z&`o+ia|4{Ngr1X_Kiev zwdc1#CA*+#=F%`RNS@`{l{jD+zA6vN4}4am%olGmz;M@^4mfmhO1kgRxtinugQk&f zh+fI}>VFKji=bWy0A~n5<02-V|1Ir4-sYewq9tyI@^y=2?#Q{uL$0O=V-VN(^@@Z% z+s$~0a7|n2)nDn!qLCN^Z7`SbO=r_stK1%>%Zxd$L*_pKi|rXg&iz1O1Nik;u3;Ug z1UjB-##u2J%b>1P2v2?CSq{tX$OZZ*r&+#!*qo{+xz)6cGN8&ba{T9BKE2N0)@vD> zDZqF47Ia$__L6=9kUyfKJpuA0g8KH(dgdr!zPWR)Y^1SR!%h}wFy zLhj7N(a{ZGScrlG2RJa}&M9pNYffHNs&mLTQsKmKA9CXu522J91G3(3m zLN+smt~os;jXyeZKSLMD>iUt$>vd#!5B3>G@@AH!czjlV-Jv3xWBRtVkQL+#=#4(z(fO3 zGT;7uB|Xhw`;7PQ=D$91e5gpKjfD`<3HD{-YNdTV12^Tpz#G$uY;15ip_)y8LiY+sHP~bgLLZ&hQ4HCkBAd1bB!e`H^@e-@W z`%u30P@U7nQKk$2?E62uG5_eFO^+9g59kT4vWl@0eJ<~{PO`vQwMlJ$OEseGd6Oyw zQoX5m0yteqe|x68&PT}F7xzW48mz8Leg>o|5d(1`oT?{Y3I@TCh(Wo%U*pO-6*kvx z2D79cAzbzVt`8XQd*37A!V%K|j{}$pIr43h5qP^|6)sex-*fgA{aZFF<1{A7>_qbC zccv}q16exzAdqUC-QJU+cv!>tanS6xyX-jCyDbTs zdfAALR-l-Dn%8L&SyfQpJf1{1pT}F^5TI#aeB%X+DgUUmOg%y18W+FN@P1okM@L$i zJo#RQeb{=@%B^bhN>4r6Vw|K5RJ?>Bv(AepdmKpTp5B-&PYt;k`XlnBPwA%kJ^2Ee zZRvD|VRa!+FOPrgh!I+*bOc!#wo`0lDGznOmezqr z6wKKP=KE09f)?a=Ii6}8%LG!Tp!)2WDJ^HAu`0XG?gOMe;1EaTBs$cvy`%3KM8TB( znN?6s&r>6&8V$_PogXQfNY5s`N9ySjdxg)E*S8X-(m2PE>l=%j6mJjS;Mf+?gQXSK2ZG#z%;)UqF7*;P}PW= z#LW{0=|A3IK?n!aBcj0tV%!<72)X+(FxbK47r+`|`i4Y8jc#gA%S}+1h|+8n8TH;a zvMcb=Gkv>mb~_bhhoXb95=Kxh9pLQ7sc%1Sh@MU1DD{{7zp$*DNTE{B*zRSX{~Hez z?1-d2FtsIqaRr5$k&ssWUrd_Y$7G{_#s4S5Rpj7e{1@vuFoXGj4fOi|71LI%c+da@ zx0lDO!`*E=ew|&Q4EnnL9#GxfZeDt(51lK5{Tr)lr9FI2ei*&&OaWAb-#d-j@E1LO zLrzvY=;$Gx0sFm>&ut(CMw&9?cH5`B0uQG4kzLOyHgIGCom~KM172CJA;sWX_IDa| z@_XpP-Q>1l06r!PvSL8jw?93Sbz%M>1nic<%Y<^cVDIGefSJktHIUp_nMO`a{0#hBVbW5&Q{hm+=(|p)#|GmaoZ#BLP z9B?xMdrRml8{m5|^}@}`YDi1#O4FDA*zG%3kf9;}tV^cTJQ@P>XXkC{RvGD4(O95L zRq|MR9ucFnrTFw&X7()_b-6<%bg2;-Vt{HvPdx>Rn>Z@#09_NHKxKi>{|Si!AdE`l zISIg>x4@3v7t;uZ4ZP;Ro}IJ6_FKx;@0~xorO9h6`cCsi4t^aF$3DrSw7c2DT3!mg zl>oc&SYrN$4*Gz`%Ta;{<@=)-t&!C(1&G&whg#?nfhzRtSq@l#Kxmo^5*65M?0brKZ^LrX<__#cxvgnn!!e9g?CTe5J(agkt9-P1avQD9~~ti+6zG3vty_MS6Tkqyz#yz;$#8Xf`U_P(GU zuW?|mTRplJ8t`gob{L9t1Ib#W`Wbu&9gLw~>N`Pa0 zOr>v!>VG&P&VZL@xcjT%UYyU<8dSsDCc9;+oH{kqGnvIH3VV9K_1ke7)gUUx$Ztgc zo(1gFr8pwAOd~HqQwpRVc*ftWxUNqP|ML9=axOVN$pnBmXShgClki<-gX|~upPel@ z7v=j~M_r3`J@KCYnZ2;zp3w-AC0AN%Qfz7ZUV~)pelV^{1WoV6|L`}b-rH^b@bl&P zAl`>U*OuBZQNJ(KjK@a&4l6b3($;SkZ6-JQZ#U(C{+|O|FUWg5MUKN7n#Ss1QMqos z@{<`IH6k16P|^eT6UKP+HO1`FsE_6HUZO$PF9$K810#dDB&G#*LZ+Ku>8mjgP_4R4 zqxt3mSWcaVu;8ryx9fP3-Gc=C8UT7)HP#cMKO$%MmV{0|L{Ed&Mf;bj$6K+GyWQYU zBN5R#)`2Y~-X%u1;cw;j)BTN>h2ICy{`jZS>g-p1qigm{;)5ax#?fF!_X|rCfC1`H zh118S1u@3dbL8-#z>|0n@ug!3yZ91!krm9%ZMT~d8@=*j%9$>B7Qlbmndh~R?D8Tk zQ`43Zd?~W}SaQXeH`@|kr`#?AZal7<>DGtz*_o9MB!b`&^!AAnKe8J2kZQltSUN8s zF0a6MdVy5=iY@5iz4phh{@zbr=YJi=>-{Voc*MDQ?G^j+pGONQmo&^vqF@J7yMK2p zhLutleqZ0*i5mjZ9Moq_hhJ#C)-_#Ah7yaP0rIBNKzpso+zxK7_`K- zKq{3*FijGaWsGaa$b|y2%=X&BJ+s2E1t}is>BXXptVFe~@p{PnN5t%a*#IPZ@F3hc z@#4W5ONb;S$?Cqt^Ev|7KwI(u@d9%TpI^Q0G zPa$^S!?#}nvdp~d(Ar*A_c7=7h({&RDo4iWgHqADt{hzp%!8#T6bpO{|;rUAWJtTsxM2?Bi z;yPw2hHXA*k&|1OpZ`DtQ>vNe-QLd#;7?*K8=H$=NU^jk3a1L$YGy$W-2Hxoj4%zu z`~&+WDDc3%(%T=}43#Ad1^>B!|KJ8AR%pH?WgPX&KJ7WeRrhaVv61a?5a|aYqwQw* ziOex$ws~iOku2F#G|m7etTep|mjAP<4~__lj8fBU z1#imgt%96{R~jG^r=3xPD403Bt^}gk_3Y>>mnW!YksDI27`V>d-#&qdaHmna7PQ#w z9Req?+1-0t5@6TxuI%^Cmx)3)P-(Jpp?^EGyaNeZbdaD9b6^Dn3guS4;qRU;4YuSy zo8y~c>CUoR#DIKE>s9n1fVII&R*Hlj5d@IS>p_Z#qdN*x8^9z;AZRhl{91=CC}%`F zt`=>AZ?Lw-qY-L}gauOqrnmtHWDx7Mw^9yQ4gvz%h!1DQNdAhJL>@xAu3E*GqWZ=# zE5BB^SN49uJ9pY`B)8`ga2ugDb_6;*I^U`x-?*c6lRpZ|XS`*MG$JRSsor=lg?jeq`TT!G-<`%#cR_idS{GKyqW zs;Ed5_aC;#?F-6r?G0+ozfN*%aU7b4+WyLIijjoQkn%!uWdNlH3`a26HbDD4_YU=! zgGp&4&Ghdcr$k@}YPu$2;U!$1)B4U=^A$)CH#9F0tGpo!{D@G9G(UF$Jyq(E5&odj z0}&&YKiM};l~4fs0=HZL9d}qk`9bv~NhnqN0?W{^V2wB~3y9WNa^>unUk;$gq`m^d zo`TYL`pO5TTP?_=4RmO^rDADr6)E#5n}kV%iaMNEDW3*-Em0x)NeCopu8BQyr+7_eC4rYE`Tib!kdTVM6WaJS86^W6u#9%-R>&2kl- z0?f<);HWDFNs1J$@yE#s3!}>P8A!VC%2z;I1!zh5O22Uf7be`X%>%fssRtzJd%ryq zM3DL$Bng~jJj-nLqe2QKIFeBaR_s5Erm6z7AQ2Iv<@C@eeA>pVYd=_VMQl%)YQOzF zhBOG7*SW*flAJcxkL-4utC0ZXoHx8QcfoGe~5pkc=K z4Y%}lZ}I-gd=~(#9BsGS+ttHD!7v?QC#x33pI=@w=TGKBYJ<+%);=qe$F2Z~PFBSGFKMeUAI=&| zmBZ0CBNIXu;^0l4mDQ&L#vdin=c?u3RitF!FbJ7T6`B_y3fh*S_Ocp^i^!BbE9DP3Mch{ou>-*qx){tujDXzsg zp8qaB|5SkzY&W;rO@qw852IQxDF4X)SR29iAo9onPqAK*A|0&zeEdBfJlS>UNvwkc zNbx^dE>OJStTm9}`(YW@a@<*RIJo^l1dAhVhNXZU5zZZW%B&S@T!t z?^xE9CxqT{^!mLDIX~q*XCWgknnRdWDhUcLO-)9I?jBFUiQ!yT? ziCz-ilL!I0D9$Lq^W(s(zFmK+xsL)cKHKvbBrq~xX#C#2j#p!&9E7!+{kuAi)p_4` zRbp7~-P2zjdV}S}suAjP%>zBvm2n;wyWm}DUNn{@Ky3o7G`T_I55M?`F69O_O!&3= zXVu>ptA!xXsqe=A@W$u4&7R5XiR+T(QkrMEoXtX}db)>XwGKb z!PB&w4_1aPX?Iwi*~k%7SfJ#PPQO;$#ds3ZEvaGNK_%@#pQt=X4|qlKD)cw|Im1Fu(_zI z_M-}X3_ofYcyxugfY7>xzYf5;3sj$x8_RAk0Qf3;<>S}ehigZ$&VN8djv+xMp9o~H zi^Mz2lWlQ0H=j-C@>#q2*phu9;!yZ|oMYRLKhyk!BOvl%!;8fP%Bd>$#q%vTP@Hjo znO1mEgz4+7!^Tt0%9Trpf>qKdv@IRj62Kq(HoLSUXdA9X9QAO$YP9!(*KqkA1_Ev8 z#_K=dNSMx2zkB`nx&je;-A%)AB(B60W<%+ z?bl7+>XhFMjPso?0z4f+t3M8`%)$1P%hdhFW$dX1s5Cmy+y?52ZyZlN!7$J_PlQvg zs#agWuball6N#n5bY8ukEreuRb{b*U0IZ9aZ|)!$%TSXfn+zQCB$-&kg4hL|O7q&eT@D$Zt7Xo~i$(mg>=jppVQhU^vS}#vdM1#@`%%bsb!hBM z5FX8~Qg}w#wmq>hai=1fH)A0H` z`df<%ElRHBoL!Q52bV^pAst`ZtzhNtGGxJ(TOjifcL7P9jZ@9O?}~UJ#81et_2VgC1cv%b zQ8`R*@S;;3#2!g1+#hg&g6s%GG2jJT;QGvcL|SgY4f!g0Jf@UBm@dUqUoR%}`5$y8 z;z7#K(fgmK!D5fKFd8E+pLG|{8s|Qn?V_Sj1-2Cyi?t_E^rpS5w(qC8DSUs5Y+(~JxT$ zVAvyid=(O9T-;)=jk$(ft4Lu)hJ0ZX2QddvmxZP8I>NZ-ujz@|!!?aO^aZmftuqU< z2-th+xp|9-@)5uoD2K9y)9Hf2Ltj6+yBq0XD2x(-Z0s)!hr}GECiH8=1vBlO1Gr!~ z;Zp7TQL-4U5H0Y$jm8lDz`o&|;#0KKkI>9f$8Rzw(O<*@Eulq+XG}1_%79J)Q`g#u zJW$jQAjj_0^TP8xw%-Rfa2jfdUxikQ;yNU9sB`wN58b${(V;9L4LktC;O%_Y@WVtF z;>TiiSI&GKTe?t@d7v}b-A@2IqkPqLmJ=)7dZZ^=L3uO=ze^g#xZvpv>P!`R+$Ji2 zM|QCw`%7H8?U?XXmjlVjE(lLUMRByvHl^ofB2rMYQZn><2%(S|!#{aJ*!?63@<*N{ z!{58Z#s*Mr+_ADcA5lO~r*^Dc3*F8dmZ=7ev7$*Vw29m*I%tsW6%W=`{Hl3mcuda^ z>IG~p!*tLtqrus>Ptri8Av6~D*_N|nTe7N$iF6wiR#z96Ec0KO5w=j@IofG;!=%?4 z`mv3s%@o@9^x>w&r}eOI%#wut2t`yQd<9@rvS}cSO5mF4(Y9|hC5~47J=ng)&r5nw z|E2|xv5G*W_pzdMd~C&e)z}FH^?(Wu;h@VD-OPr$XDDB;aWeNFD>R7J53r6j@;}dV+S^)fiMgH%u z3RCyK3+A+;gEAw<0#75N>t+Sjf zkzJrzR8YN0I! zu7!;!$++40%;(yQ<^xY5<$NN&tH-%%G9N+G4Y2b6@}DyFd-v2+B%qV-W^@G}K#Y+D zi(@C&LC@B>#Z27}D*&*^brX=ksrdzU=kp!2Xgsk05oW$fJRfjKJk%YTO@W*!A`tN? zk@gq}RNAlcIIO1=h_q)bxd3WRfqlu(<4pY5?&zAD(Lm;}eQO;$m`pWx$2Agfyi=Gq z#iuN98PZ>g;cep55;XY;zX$DP1d&7l69I3{8@h+0P`Je8t*t_E@^v4$5C2U~ssk)r zcgkp=mYp$T5Q9&=^Yt1LkKW1$!GS{v!>d7coOTm1b{d(&c@K95o>nro&zn_GO`)1E zCZZqEB6+UJv>o?ijeSXF`j8Qk-^>oIyaw$CJYGDH#opDG$0L?JLDZJB`Rdh&s7N}} zRFMP8V?R;w9PZhejygwL`F?86{w$4=sZ=*#Jkf_{jd^AA{DLTaVUguh_sDxk)r`iq z{A@EfZGA`!``iI6LK%%{F-$2akaLM|ND;a{sG=i#R$SInIt1eeAC})*IT87`C-+_% zWGqy8&pp{7aldQ)xARy?l+HQKF@e#omB0Fz<8ETUP_H3{6^a#PZt1w{rY)`aIqMZL z>E(5L9)fnjEhqznx_26bIs$h%Y_Q`>EkE!QyM%yea&+o>_i^hj9cQvm3&~Q@v6U`kUbt zozqEQK<_(Y8qa;$hT?A$H0=3 z_ihGBwXmYis_`BV>>?)x&xoPeK5fTCl4o~3taZ)_7D$FPEFe$0dGl>NSrtssb`s`l z#hVgT#BQp&ycZI)!>oBohO&BFno$y1GFiMbzO_gyR`>|M;lV)JZ{oo z+49y_?hyXg(~Y3FtIq4>dZ7SJ>`I&cn_as@lu!tvx$wdamdcfLOC6HRb5k&q)4p?Z zmfyPczuvGfxtgr(%8qqccLuj+xXYZ`i?B&T!*cO@EY@a_PJd`1}+kyhdx^|(p|#Za^F`VaZG<5k`` zKvLOF+%IK2U(UH3kH-;tp~b}vz@>n5#^&*VInD)lm+#F1=1oxwDz^^AW%JSn))P(p z2?H!~8PP)a6YkjoH`?H_YcD*y1~68yFL)ylwHjNPKptduB>v=*OGu1R@>`XTec<*% zM{`%^Xt}tuU zH&`+H)7@5cB!xQ2|Iu62QR>PSluGnUJeWyiQLjChnHjJBw^B*|K7K_5bX zk?IBuE3fw;odAZfug=>y*5I+Xt;C`=$l3C{mbCwJLBrHi-{b9=aK7bazSY||l5n#0 zbqpnh>d5680FJ{yUz)85$I9K3dqb@QxBQp%Y?f80af93{jd79CapKJ=a5`N|eg(pQ z9=)KqZL~7Bd}7sDRmLZ05UcQV(MtY==x$tEv`{G3V+vr=5_9zAShnty{ACkJd|WvD z6f3UQ4QvmezCDqKJ5ju7Mtz++;+RNQZqr+|p9uI^@!)|InOKD2o|Gee%xdM`n>`9_ zWS$vN@Pi~leut}*?cJX&uqAAn)sTb(GyP`@tTTNW|B=$KyDvP59Vbw3hyJXV_?wY7 zIStKIPYf8i=D9}`))@eFbI5y+A>`$TF`GtXv0d(Xn7k*?zZBSZgJhh=lPIj5u}TF3 zpkNgUY07L)yk<(%#mBnPo6aaktKlq@b*-cG5`@F(1k{y zn1GC_@4Pb{r?8t)Kuo_F!mX0SxMd8!cyHfV-CW@aO$(ww^*6eMqU5|tR(4O>?l+3T z`o;Bb$NsxzhMRbZ4nu)(=pcA@A~9sqtsBzJh@|}lX)f)3!2S8&ob7w=mqp?H`{V|8 zk10|gp&d}$T4;6Ob0At}yQGj}28d7D!nm{mzj$+PcZW}?zWvsX#r+~!sVK)%VeMD` zkD(UqR6a7O?sK($sU10k>DzGk2rCMsDWfCP;}qYY`WDMoKvLlC?-d|$s&?E`#Inf@ zGX&4C4(nkq3XPlX*#SO3Hp&qF zKCq%csS2l;F+V=-U%M5%1Ztm!#y@IhderZYekxqP*EL?zT01&8i69UTBJBZ=E58=A zBd*_(Q}^~XM)Pi$K8ZH&cv^oBpYZ=x>G=k0O^#Ig6b-Q85?eeZlHy4$7=@_{OJ>WO za9mfxZz5AxOrN{){#GDX9etntEfD2=Nx?G;DUu+yTGT0Vi6lj;T=5eEd+}Y@|K9M= z$750Jz?IRC4kn!^qE&n!@nx~b(Kufn+}b2At`C_a0B=OA3i zmV6%~-SsSQL2k>Mg~3&_EQ`g;?=IC4;dYM)ZI#>u~QLXY%CG4}5B17s{-OZjB1g?c^fAKz)qHltUDn zPQRDNr~}V|!CWO-s=dS|Ve_0DH;@GRoiJ3?67w$evlOC$aBRi->U1*iAKze0oj2x@ zT6(RDT?*ks`%YTu_Wjv+ASi1VOnu$C8cqngd4*M%xGF*8FromE6OyndmQMsngZB}i zoh)EG2hj)O(Te`8FLOWPKNJ^C-CusVC4yAo6PTD&+Pr#nSp4ImqZ1(pwerJ(nRDgB0L_X znOfH%(E{DD_#5`ywPI1{^(E>W{6M)LDx9kxDvnKS;BIhmVyZ6~e zDAe-2O`s{ocWBdze?K=ZKKaUf*Ne!2H1855&|)Sfzx;9TE?`$X5S5S3GT1Vc7zdiP}{90^dOW2Sl?s# z$u8>Z>Qb(LHbew-Z~2J->OhiLN{1HdaMBau1oYXjx&4^v6DKT&TR%%A{b>%?w=0dbk%K0H zWaMSgpeN1Ec!!epaS-)GM9a{5@%_45T@f3ZYl&drH&SO173=F(le4f^OrQiCBuIXD zyw#ytc3T|(_7+?B@?}YLG}#qOq>Xck#4*D5+xAhcASX@h?~pQrjkK9EgT*(UK^_`o z6iJbJDQgGyLkJ1(M`(dr`jRBKdzK6jK%tG^BeeM8NE-tI{me5;fX~{Rh#9kHi%mwMp+*Bd-^t1+a^0k zrZ}^f&qVmKI-d4Wt$`L^SVO?!T;IR_(S=$gS_|FiIf~bsrVb@q@1vvHT3y%iJ5-QH+Q(0vf5y zy~kY(GN->xGBB}8oF7e^9RIe|?uHz`vshleiY7@^W zo=C-DOCSne=Eo&@JB!5ttgzTiXTKt+?`xIB&52A7qF5 z>d_)wGnYYkGYI6qU|%2f?Ww4b`+uFhQSm9AJ;Si{jPl{cDf6>UB4Wm!C9Fk@~ z9(=_s@IZ(?mn$g8w!E%650Rq6eaS-<;ZaK&dG7KN&0n@_zCNFAKE3{XvG^WT&1E7H zEpxyy{Xh$~eRU1B0ZZa}s7jPeCEeyDG;^~hwBX>eZlo9esewBF$?xs_&X-|C<-g4H z>E3=LXhuh3)}oYbd;(4{J{D}#)}7TU9|=7a*?LR*UVJ^_bl>5)VB*b_cfA9B#R%s# z7Uo!qys%13&p1F`gRAfjX;-L*nL=v|f9#in ziVvwW<#X|Kw|dg;#P#KB){9TRGUsrWh~NGf#MNV>R&WZ7zJS?9EFGWWV>nf8Cgq-< zrHSrXljOGviKTQ&uad{>RT57pflUMCN#%khp~=s;V-*_hbl=WaZ@Q1|w6o09&;b}I^;>Yl9%a!p~cX7{&CyS!U@7~_27+<FdM^>QPTbbR`Di*5mW__>{6>mKBYHnP44iln~ArqZV3wNjMzOk7%c@f&4&ndPeS- zY6d^9QA~nNw^}>0O5rO0r(pb>8UGDD!w zs$th=6Cx#aWImK%(8Y@)#PgXWs7!N$%I5!_mb7$@sdr!+S-5FQlHNF$sf1w!zg*{| zN@Ex^v;6Dq>#*czqNqOGD>puCW8g=wRGLdtzSZ^l>Qm56b-ejG>8{Ed#Rg=ib-ZIFV=>VSmj^ z^i_SNrEhOoL~v14)HL(o#Iv^jui*B~=iypLSC^#Qkf45N3Pm@UBm>T}VmAxUvN9DJ zo9bfVA6z!<%x*bbPbF`&L{c4EMh3(vvR6?(Wfl9A{M07juC8yb{#MAoBo9ck3o5(e zRm2j|M+j+~oe08$ms7)%6s@zyY89=Q_^ct|vG~C9+QGoCrgk2VQA4p(Ac6GkGXnf0 z^kC94UlqcBwn}t^ghcTnCkWf&v$8O4II^nF=O%sg z0IvwOjYCaUnc~$;tpEzaFh%UiLRwKsigXL7N`35VDoDLQ1}8!KD-ll&X1AIDY%RD& z{Z0}5es1T331xs%R6m+-9<(9SgPIl6xzY`r-F}2_UPhfy$o$|@NKzCP6P5FEXi*js z>L0XHcs;#{`$A1}rxeXp=fjh&7+B?&gGIjbYBOx7gD8PdzFLV)FCTT8tQ5tk>3lrh zum8TSDOJMbNeSIk;#^{Cdl;s!2fSMPuA)xi^Ch_KliVNUp(VR(>38hTcK+CgoY3+S zLKcgs@98@LHHLK&vV{`}BY<9N|Ev%EQlB?Kq!r};{O-v{($1F%;fz!wT4@mXnm>{f zE@CqgAS+IpGwCL?R3CBz<+7h+9i|vqP#K?FIAa{T77g$tvZf2NtVULa~Lh7(IkmfyZPTLmgc*M?d+sa!#JW6tl1oG>T6B z9wIL3jxvE5C-xAy0XYcDx`S^hOwANZ1+}4nvTpZQQFO76O*$2BKw44S=pc|=#f-d1 zMhINQ!7q8Ge8%(HI`#c|6K1Q6(xfcWq<50U-4{BD9hSE8V4%5L`*sVV4PYN5l;tw+csCgNc_wj4(3 zT1OY4ysE7DlQZn>h%bTu`SOhfBYaxX#B_ZY#;7Y*K;9kQUyaSQ1=9QsFlC| zpm8wz;9D>Q3`aL|1KP~33Q2g5#jZ4e(>s#QpWFN$C?W7r)ilenr)2_C6ydSBgOb*^7nMY8tIQkmb1U zadanw%Jub zVcL=e!^dVxEIeO|fG3vWKzQ{d3S_I8Pt*PfS|qyEXc=XmQdAX>vHZEqivz0?F~w;8 z6|fuM#jCn5$YcVVF2%os1#5*(l{hJ$`QnY!&lwNE?uy&QDz>CcJ}+o)%AOFwbLjN; z@il3Zx?Zl%xp?mgJe#oknpqW-bo=E6_SXfqpZjkH1=_JxP_1%Bo6mA~myqDtw^_An zO3JB`V{pwl(peD4(aML~ss2$c5Low%+LsU_GC!j>fmap?ym>h)sF5SL^3ItQcE37U zIAN(_wS&*@&Cl?F5RUU|^_#BW<{V=c7yEzVu`~QKkHP*XA)GtCAu+q3u)XuU$mo|o z)OS)q55X3W!SB7g@GwJRRhgSF%e-eB8J3FyG&q2ADW-c1mwS0s3`p_mN@Hi>69+z& zvIcfdgu>4;35VIxS%+p7JmJB?Z4?*i$=x#TY3^W)W$5}rg=05~$zvqbj3R%w8}*=Y zxW=U6(Sq})0vyJ9sy3HRmkl3tW+G6fUo-VITgd~i3E~3Y#TxQE1YPU$YaEa&59>9_!>C^2s>uU3OEo+g;s%6NZYC z5i9+oXu!!=T+)B`{QmPD__p8kp9NA2V{e^8*TUIn+1@Ukd&pA8f2c-9mFFGaHSILF z8jb^8Ed$JT9ecYcGL>921>Ps_m8p`i-nF}mrA(a#p@~2EnB+Xgo=t$*o@;TAT+ON+ zOS_;-Se~2fN8t)&!+%_?Qsj18Dd7ghy~^BLeeya_e$EnUjU`XV`BXn^;B_$+rp%)B zSr%rwwpvAt6x)!nyVG}dPaYO{Eb3YF&fCHtkWBX=SKe_O5#fpdZ@((&5p}DO|NW09 zoDA_edH#1_=3#384+pF;diwv_7diUkb4rOMvZ#TtVWl!PwckcHpCiQ)tTrsn%&jwz zLA0i`y}doYP_t-8W{5R9T1Zn7uR?#eDdF|($pME~CkVimY5ropI7VJxBRpN72OjsP zPdAx4Hg|_k-!J!8q|_wD%@>}YGo9ys$+R(${pYhkb_g5?nbVC&3?Cam_CG%Q0sQ+9 zs&~P9zh=)j$^X0W@)4*r(++MI&+cvdJr}vG{qfPR+~+A6Va}$e1}#%kQ_8DoXt+sudFO!J%doJW?KsW9W7)|B4WA2YFm+2?n?oR&usAs8 zqAfV(ceTvh2Xn)E%~{o%RiXa(J-ku2i)NjPA0}=Wnr%f4StX|@RZ+q)W-R2IQN_l`33u+I z?-qKmf71ol6-8z$Yd7IP z42`MzKF(D{F$1|#L7CU@Y^s5d>ecjaXcBF63QZ z@mu0gp!2%<&9mm5z}FC(YG9{Z{XT^(9LqTm+7-00<<40V^Q5x=v?sOn8^<2o@+l@Q zPU+^2=1ec#w`D+-XVzfGt9G0orrhg3zpxt5qX7B-efo*Ph&i3||?~l{uVT>Vf2*+$}sCfQ3{+ z{gx^`@}d6~&>1wwj$o#v!|u^CAuHcSJVmIat=(&%^4Q)c_KziT?W<4w>rerrkk$AR$bzB6CBO3y3wqoerzshRpzO-YE3^Z~=d z6WGC9k3F}SS1H7%A6YcNm?d~+D86cguAowD{flqpcBUBn{-~cUJ`vr_Fa^WYzx{nn{&!l*<0;30@-`_Bq>~rNXLG2xwwe>2rY%b|@AGX-$L| z3Ym*WVh8EXOEP|(B!^OgL)K)uq?#)A0*!t!c7CSL(-yid@gpX5cE-Zg(Zc5F>YNG% zNs$ig#p#C`sU7B}U_EDSjI4E=)Q6@XfVg-tv$IH6Q>M`VGBhl%7p5DQVi%L*m;L{dUca!p!- zDGGfyqQE>VY`vVc9aX-4D82R{(0<{y^6ldc? zZ(yLWaCR8+qsTzt(sXv7+lz(8(Pv4)q$xd=-r3wzy)dkjij}Bm63ReED8A$~L|N^=?h#RItRH&pXO!w*UuWyzT7Xl(4w z0OLEAG`dnU23T5>Ft9m@jBZuv@nu~OZHQ7d)ZcqB+l2gGXbubAf zbEPIRso%c+$EiVKL*DD_Dar1}%({NI>z6gYFDa%$ifC+S76JSaqn7~M));0+5_?eV z84=9Cns}|b?*saSmcurF_u~H=x^*lG0~M*cDeC{A?l1qM{JuAC7%6E%0qIof4iOO$ zq?Ay)J0u4r9FR_>1eK5!>23yeXbCA%Qer3t1e8HQKoIUVpYQM4eO-UR#Uo!bOq{dN zz4u!CcprzW22`?X<|hALnxV2Osh07xo|Y)g%i?a!JSlHJF6xcl&I(GZl}a$x90BGx-06CU8t-!;uiu9v5FKfp*}M`U3+=| zFh^Fd3S4^$YjBCAB8n>We~qm!mp}dCDZJFv<~OegXRtqLtbRJC4mnl$VOKL>8>TAa zp`*r#hvt(sk<3RVSD`&4Bk*#(G4AZ3kNEkq)ib24kPrMRiV@*%x%!YEvHOu+K%b)~ ztL6o+jYUe>@cLu*XR>hXQ5&b9StPEaoBrR^v$gA6Qk64bhbQ3A4Bf%M?e_xT^}57^ zpK``7n&De6U1p}`4H>#CKQ>odd32cNe&y<}JWOy|E5Cq%l&K^94&)hjD}mWkq-Hbo z@>t8uWdx7v!t5Y+qenUhXdp)?;qN?dO!b z0?yhj%noh^LXSk9U})$m_e$4J@2|p-BK*yMRa38?Ud!~QcKkSb?ZjnyLyDXAo#@TS z`!BsM@p^bmT$}|p4C5^rfm>1)xj=TwLQzf2Y;f!F72i5=5@uebw~@>YvX3r4qx~ov ziBc-Q>M`$~Sv2Fwy8?G-$mf0KZ4x*QSeI>X_tML}?W~-DBF-bo-j8Ed*z+@i&Cy!e zEog*3p<=(eU-UYnUWYB{IP0N_7i>>qTWPyEL^QOe8t#5oSITuKHQ~MtC7VRbc|_e#`&)CdU)Gj-0kWB%E3`fSNGw?i3?+Z~ULHsO8sItxvNhU%~j zf$AFq{mShXh3St7P&>yz#*f17p9X~=aG>|2P+$s4gp0_@MoYWImN{r9P_l7w=ezv3 ztjM@OdKjr|mv(L}@{0mj=@5`?y_l{z)2Nu|FSGrtfsrjrGaqqYq!YY~PkB@_b2$bv63I zee(zOxsWHnl9fCz|ZcMhfEt}rEmK)c}EjNP+a^)8&4 zI@3hx(NN#v^pV+VI(jY*_F{QsGCtNN8MYG`ZgK{j*0UXpEsyR#%O^P#5q3;@e46Bu zC<<9yUnbr+*fk}ixpssReC>C&1esq^zoBCyb>`So&|$#~`LdnoYkWu1DWOl9%<0&|QCua#`=k$BfuUHW7Bt zs$EcE7Ql>Xs$a;!mYpSJ&b<5LKpL13k7t!7_jfWzZDB;-0D8b#Wq=TUF!KBzhw_Ad znBO0F*_VHP|6JAwfp7O(wS5Rr>@XNNAt-elj>n10p2>ABj~@p_jSJ2~cd88h>eY3(vSo~(JP*PlZ5#pwG6vqxQH@id%# zis9A;9qr2?^qVZ|`f{-znMosC2d6CVmB!3JFYRb}V9-CJ%Z`YUEmur>ZnfQ;ykNqj$E{KS^70*>G`neyoGG- zZW&GW$n7LbWi@Ea=h-}DE28fCC1>xk&unVazN-#?eE2n^qVYxjv(ggso!QZxZ=SyX z_E##!b)!|gd(kvKhf;#fepKxG4LyC!G6L3wgSn_)ne1rmh_Sb!RLNi$y%-b!?5!28 zScE7+y_YN{m^yNWQ9X!G4NrU<`y1UA$hyv3CH#2F{mST4k0iYX$!YkqEs}#9j5eCF z^!Xgu&=WDx!oK$CqW6;FBndZVUQeE#m!D;AYiq%~I-3<%!9pL|%7SmJ(ipN}Lr@EZe)0Q?wcVE@mkO)Z<*Goi5 zMZJqm+dfhVAqzhHp3cwzfgH6J{LnAZMRe}jL>E=|JNe$xXIe!rkhS^lO+GsB+QoJ3 z7xidVl*84E%oAOyA&=T+A$B4GT7(|s=lRE6L;$H+vYj^=>zjSM$NOhl=#5=~y&M(# z*1~S`HB9iDQ%KwXj)fAM=*e>y*($5%u9x9o_iXOOW-TwE|LXmrk@@~GWRZF2cHi7L zeXit)u+(I@O(w3HP05s+TH4&cf&*2Y-s?0dV0}TXaP?9Q1uY#$HJ2%EipS`&i{J;z zAPCtLVv&Dr$G>-l4tydZ@8?yIlk&8vy4GP-s)-3&gSd=ME0_XE1r>xyo{ zeFNodDg7TitFgizyW^;fv%mWzp0mmK&kZvB9X!6-%|j$z+{?KGkc>YOkyk4fcl0~%G6alB0QY!#wX(} z5(eF#&@oXrbUdM@5)YSlY&k!+-FDnY^U;=PUZDB}gIjZeMgDce9Yy++r@hR|U%I$w zhVWn5s73M$O}+y*DmYY;Tcg3PSyn*$eo zEZ*L$YnVqSLP|J7sw$1|O~j4in`BsD4FeVRb>rPeO6hztXjwT`A5!AM=JlX<;r4k_v-E>@OvFCn+vdnsPX&6F|R=#oluC+2`uS|Ttecb)+--)mcmX;&^s(ogiFVq-pgwXNlUea4q|jjpXDx5(x3KnW8$f^~h-*)p<%i8VIRfP^(m zdwo&pCGH!^_|){k=u|Trm8{q|ox<6XA;5=c3!F*Hl!3qt{692k zjdKx+q8jH`P?o3_SD#uc1Ldc(Mp<`CYy*#9D?}}zJ=A=hmw&!q*b^KYCf}hy`|^;5 z0l_Dg$cFGvselVj&KkOqG}^f-)-{fF46JLelf%QqpyCUT=f7%G8Ke8tv5LOyF0RrCC-IYqU_U2gHHw{GtDYVe6BO4SwN)#Fq zy7LqT3SjyqB{Zep;#4vhDF2_H!D7tza65Z7NwM~|R|^}57@B%aAgANt&hG*a`>=)8 zaRy{u8+Jg30uiR;PjsZJYnNHrUqO$DcYdFBlg^iJq-^5T(liZcxpwxTp#|q49>Uik zdR8H;E(28_K0&-BNpYiqk-|{4uNgl|D}hl#ByECAUkr{07ojcrF_mR`ll&HY_D}gd zOZ3Ne`7i0I$Fh<9s!AqpsV4uTC(+^fUrBD$Qx?ygo1$9^$fO}D>eU59W2<=+m-GfRSRC3ACt~5 zm;J=Y$9x{Ta5w}^^M*$45(O$~p3Fazu>GEoLgugqcaIN3fFgk70T1obYLF#!^a ztCFlRd$}(<)Q2XHziWA`lsC)xvNv->QSDnrz^8Hrl{W*aEOl3N?Tn(w33B=FJj-Iq ziw)zkE5gn;joXO0GSf1?X&d7*5(BBn^BYy)+Y*#|5{Ba$Kgy;}=w=QetoFOJRt=VY zUL849QmM$CY?Vv#M}<===-gW69IC=gLS59F}< zcI}kUQLQ}kJ5Mb5*&0_CFU4Ms!MikEpqOWij4R3*J(oL}igeYLT8n*IqE8XnyZ!Hk zQN>IDJOb>Q9FTG9RL@bV#l3I`C66~lZ@Z$&)R4u(FN4j8B%9tb6TjQc*+uSp^>Y-m z1pp}_bF855=T5Ujt!yS8s^<(E3Cz-s5r-dbQyjSdmey8uuyaTW^NTniZ?{!ZZ;I{5 z2YVU(Gd`gYkvKW}t~9h_fU0y6sVsGwn`5h>SOkS(n1Z)U7F9n0Fd4e`y*>0Wi{n8u zSl#?5H%I-Fvy)GvGUu?V`MK^pz;g(bF?N!R)w!3|p(rM!kOj30` zT?R{id8=IVHW2J4k zH^^8HGphm_ZN*I5n6U#FH}_{ZvxW-z{y5WER0qo#|B>aMbEyMhCGJzWk;4$4uWFe0 zLcH5o!NbT^UhBORVuhrXt3VXeYF?%1)oD(@l57z1drI}AF$zPL7s+hZHdwo$mo;Z=rw_Q?zvnV614 zg@KS|8KyCil5fBeaux3_3w99{!XE2@8sIR*I_AW)maTqZ?%ON9iYbZIGWPARKzR&d!YhU`~O%fqg zVjEXrbk_xDXbJkme@f?xeN`Fzp3=Uaz*pSpjc-i&?15vXj(#v+A;|c2oB6PS!N5Z0 z0rR*?%Ho~KhY)j=IxIXgTpQuzOELZ7Q;|>S-O#HsEH(E0y=TW8UjG`^8A^m>86T|_ zyp?{6=sS+tQ@d>vq}2f7N&LM-(~+kVdeh(hl{716s>cQp^C4YA-+DEO%88pdbz({Q zZNx7fYH|{ltJY{zJwLR*u{m|;Nl{X`0Rbp4@CTowY@{J(sZj)7X*tUwkoYcjc;lv4 zlN)_<(Q_0-bYbJf|K7ZQW}}I=+7$cy$)sqLM=+7B?evYbEIw`z;1VNa;S8+_Xl;_a2}K09?cnC!R3D9x!Rr%ITDoKIw*ncsag2DA!6 zsP*TZrK0;{BL^pzXRiwz4J=VHH@da*Yzufs9}GKnf$7>GRUliuj&HjQqkrD=H)Th- zYbUI9z>KgUf_c|u6m7CRtXZpNgGSt6a3;aKo4~D+V8@R=eq{QPIQn*&$SLfrq zqK>|U`iO`x7eu_}8Ld9W>+p|QJu>lEPDm9q z9?HY(0{7%iP(lBYX#YV|=9136muu46#P^6#{Ka^4$y=7)2MtcmATkClY}2m!vaJ2h z!=T$Sp6A;|)<>5+Xz20mKWeh@69)u+Tc!(I8%Ufb_dj`ABTd4iN%{PT!WDp{gz36l z-2Tk8SpIwd?3HEfH&J_j-HEx5%bYo~rM|0buDxfWzzCyf&)hpiWnmL@$7SSf(q zDPF8Ww2jWw6MK8ka<(5or?&BlS)Zu`9a8%rND?T1iL~7B2Br3>)5Wdr6`9hp!LqSr zzZ-Ix-p;a}%4%f_+Pdn+Nxh^^?!8~@`PJamhS?^zW4GWmq_mG<$sU-{Q4nF==lEc z-%(C-wN+j356d)p88o^+)tTgtT||jw?%!*_h_aHorY9!OW-|wRQOT;7PolmU(xYBI zk-sXf@yt9D_=dqW*FHN!>dRJYI&%c~l7wPAzp9CaxbNkX6L_Jy%l~vmFSb{_J8GkX z2bDfC4g69qqG2p!IGj}k6v^p2Z+pT>-{QIi?yHwb$*IMXLmg?c=vr z5OH}^%R4ii8j&p)Umf&WgoseT9$%#~b0|=n$>LwVi{+|D?+al;>+V#_g zz<|$%_%dn3%SLUl#2pzw(GH}?)B2EK}Y)Bx@^S|5ubN|_Wh>Jl}CNZf!a!!KmGBK7=TuV_x zICDZXfnc%H?HQ_iTqfx9dIOgf+hN+Lf3mQ#oi%cq^ZAtBwX*8(LJ=VP<%v|N@$*Pi zWE>)>k5#tsU<%VB{q@~7-+hQsKCumr?UfyRtZ3J6M#j}5sh-SK&(N!kyWL)lPhZ_8 zOyZ(@pSw?fa?=V~*8J8y@RC`E#Ny_{X^%)msf$g4x{3>nYV7z8jGSGVRWxdZfhrUQ zaG8F4o`F}pn5|4Gt@9haB$A+$OO`3-?W#advHX0z{9wx9;tUVBk@N&K2FS+bCJhe9 z)6F9qg;s*NV^?z1#~}V_>0@b{$UMcQXjE+SPQi%Kdp$KyauF6ge&P<{>Az`_k5=q^ zU&`)Whf{L8G#TJ(%oH<{4eUJhLh+d{Gyu32Ns>h#Ac0ghyyY8Y-f3=9pdsS*P8wg1 zaz!#K_FOTaF3ktL8QhT7&Sc9b*=i8w@ilCeG?bj={dJw#pR#F?^BXRh&jAvXq9az^ zn_nga{3Ps^@lKwJ7%?&E2+p9KEej0uG;Zfgsmcw(nz=3GcFfkrV$sp$2R--MdH%KL zD&#looQ`L1Kl#oNNFHPw8BkD5@nMSW7_>99v#7Qt_v^mu^(`35P}Z+q55WfIDSb#C z?m~2C73nP+6>u#QECf5|ZUx&JE-Lt*w2C4H02$(sCieLdi2^!$6*v$bHcIk%6sL~r z>VFW+S;r{N>K6_eGa3^RSok6P+WQ3=Im|Vdd+6-Z&owPSPZWX*NLHYBpkEeh*OnH= zIO>Zn>h$DX;o!VSW`FQ8-)8NJJQ)Eisef2*trc{#Un!oCvmrEFv~U2!25q!ZnP9}2 zJu4ZUaEu>(Jl{K;gp2;78*rgOoa5^(F@-7UKSoTgd+$O%R!J@WUWAMfUmKT7rXGtdFkLYg$q#;%F-0Fsn<5R#Pn`n$q9-{=CH|?E!O4=Pb;t zklrQVi#!_*50taR<6vK$UYbu7V{eFw^i2_AMki$q7FRvz*Z-~mR#(6Oi(Cz(2yf&T z=hr$D8A`lcBG27c!G6R)JDTUb-kC%h1N-Ul?Ah;3HX_A{n(+BL@;=9F*IG?(TW3K$ zYPs}ND*R~3+**tubiq_`1jazNp_Q^?X@=vzoDilXZU(j?)|rX*uIu}{1etFB%c?d#t1FAfw~ z;_V)vxTTqEb`y~F4Bj0+gg0$PxXUN|%u-kVcj(1fNWuL>n=!jLFQU-jOEE^X2hZnC zCs}b}8tPSzq>iyD`3*9Aeqw7hh?+JElecuu{XCNnYDfZ^H4`2=gkm0qVhMb}ODfX- ztKhW{A%Q;-6U7IioB8gVoJ@y%ZwI@VvY|rF?_9s%)4g-Rdb4TwUY^2lmgURMRn?9V z_T)iPrv1bTOsEXiC%Ax64zpqhvmAFZp8{CIJ2eD}#$VIvZg6RmU3`H{ zh1<}{PA-dzmz?_L1ll{{`?P06%av3Hc6AvHi0*6)4gsv|vXGS*SI6vV3_nTQ@ZYZ4 z-_aSyJCj}ik?tu>Ja=Yix^6-c(sRqUGQ(U@?!LgZvBN~`0q2S61Nwzzkt(X3mN(W^ zg;FVSWWBZc26%h`wOcODz9~1$;(n0IRE~NM7f)<3GMTHpxEHn|FTxktj}a~g3G-Kb zf4yXXFaAv_IItv1;)yli7mbO?#y`Llj^{klLRaea#-gekw;6XPiC8h>Hpt><+;TMa zdB-~<7QPxE$EH46<+EA8<&-08r+ZkYh@`v8$6y0Sd@bN4FLkn;*Zfz z74CN0^7hb|lAL+Iu?+2~JJ zpi(&=O_rVgS9)2D+*+9Tu9dX!??x0l{dp?6S9-!Gmj5|8+!2aWS9F>AmF6}0>8%pOUY;B+{;=}s_e=2CzOHr-6$S)MH4GLYmLKhaq_QC-c`leCHOc0pU zhX~zGaMC017t~4ssX*2EG(Vd1HPdCIR|!2g$cn0T3OwHa$z|$xhPkvmH$?1j&je@* zhY#HEl>ZG5F+{rfKk)xp@$i#tu+8nc(c7i9B6D!kPk2dIZ(=$x5Tjw9ENsv??xYr5 zFmCKkOOd@v2?h;x^u+Sh9ckZr>TD~@M=31@@dPT}Jk&3YB;T1#I7e@5+W%W1V*>)M zM9xB-E?$e*N+2t)#drL}+^d`X`0917`Trfwg|r^`aS9~a+?OYkeOvmjC8KRCx5KxWqiJX!)nsz^&STAAs{4{-_MAi@LzBYE^2+~wq)pc#=3 zrP9Rf^iWN>+XL8&VBhR3WSaNbW<%GD<&AyUtw<`-nX=XBJztKvuLx#6u}ChWbd#yh zfBmDlvuo8X;^&|l$ToaY0mhHug4n4ea$?(e0bH>zh&}Q1aqnYiU?jQ~6Cy-Qf2maE z{Q;=TevFfaUSGKWC6B;KxF9i|ql}&plM$XscXz_AcNR8wiy_>|%$d^^QdxVZ$MmxL z!-#t?=!#01%d&H1*9ZEXoDhLF1zP#(M1>_smY>+WkFwGxcQ|_k>ibm`fXJ(!V;^?0v^ThEIHE07;IGR zdBQC<*;D)%vTIKcQ+L-hUHiSdGBR_o`@4_iM1#d`TaQVyjJsdp7ye=~yv9yv3=Jd@ z$$;6?NLh5Jb7*4SUl+*9>oGGN6iY-|zJZz#Rb@l=39Ta`AKE)0bc z!*Oz}lH80>-`b>)fj;!r=DGqX|40dUgjmRxCpr+Mh<|lBC585S&3Qzt7pA$ia&s}5 z`Azq1Ug~|RC0m`$ou;zF98hVvgCZySdu>+sf65Wd{q_>{w?srxb^?Bv*}w7hd&!P@ z-Q^^YecU%?4S2by2R_9CU=<3ZiA>}i?iZCl}RE#2xer+ zKspj@5`!aJzrgoQe?W)k7wla{EIK{x7g z07V71wwbPLTapUog}fI@4B0Uk4a~HVt`a!y$acUlQu1t7*A#r^n5dK+fOMrXUH9-n zv{iG9Gx7M|OrWmT83JJvRf{$1~50@FYS^LJUE%TsD6gW+Z z8_~I}YjOl)nUTJIo&P}C`0ZcHjviHIkD1EPx#lsDRt7)Fgx>zE8Rq8K6SIDG5q7fga5@C4Qw6oL>ujH`HBQ&vIU5 z@K1fZyhgw3p-F?OY93E#C*1gZ^k!#wnNNyJlFYtwx5c?z8!}WtXV?@P(1|{7SMgMX!lUudaZ9Ck}u= z4ar_2=!SzM3Y<@Ehx5bq&L>*5ICAUo#Gz|8g@~1`i)>E)cHi6A58lYsy@BRVj!`0` z+{+oq_50%^S{5lE<1OarJ~z%Em&3OH$-yX1#JlH891K5xa-&mj$5i-H&54#=zJyT~ zrnW|AL{WWpEP`r(<3`{RhYyfq|Aj@BM)SF>{hualk)-iI6`G$?-$1X~-GtUrPK93~ zi$h1J&p(lEpDzN`68FMlPlAzqLiHfc<$HmZ)=zXxdct_1eXeb{AfJ@37&pl~DbsgOZy8P^zobObX+lFL&%mdxi2BygI- zh}&x2tJ2_pPI~lOfgv-fT_Nr$yJUv!Zh{z5;2E}Fpvun!O0rV1|4H|!{fS-4qw>KUUdG@s*w%vFEuC#*R zFVoLlqYixb8}%HYnGjlF{{H>~B(iS3X5bB-KCGiP`wZnd^TO%4{;B|pC=IRuQ~7K7 z_54lWp_Ao5X0g(^>oEAytMq}V(Lo;fL$(KvURO(N+%xS z`1i#^z;DkL{LZ?#ztL!}7aNzZO2#;UMn=1X|?Xlc0DXlG^~D8=l|v`p1Kz*9_HwE8Uc)-L5T z$g6(4jtS9_G>?Ve4J>{Ek~(bye)s9xY%wE1s4x-fIW1^gQX7j^N~4&;jTc8MM5KcQ zp&j=l4c(7T%kf^_tdunQ_@-OBE1(sXs~lsX?Y&faE0QjHXF6~}6;2}gV#pEh)Fg-T zCWc1C>gfif$)*jbGqccZ_3ZjP;w{4bsXGek8UfOvKfm(0K|Gmyb2xhDhQ!c{8JmBS z(49IPwea{d(DZqtRf5f4Q~(o``Ku-FcFfMOrf^yGPJd|zsQCUNXT1*@tR5ohFn`d$ zH-VF~XLX_T30<(Ioz|EbjX3PP9BgWE6Lmw1_*VBf4^E7&D2%^H=ti5$FR|(gN4FW9 z3VZE>B4GbL=PX@eU@Psp8u&AN^RBCIg`Jm&&En8ngp)9X+-_fwEU(lbS1>d>dA}m! z#Za5)H%evjXs+hp)a8WuJg<3q`D$J6U3RjD zJz4`bLeIZn2;Er8;30&0ByO`r7JlJ*Tcg84#9KJ_@spiSEs{ z=xeu{ep;3{s1*MKsjLHhZVx3x()AiO4$lpFx&&XS>BoY$KA0698-w0zw(^**i5g+@ zlI_V)e=})`XC)c8@H=BW%pfE%`JU0eG6A7Ts==MfnelX?+x654NJA><{X^T)9OU(T zuUFw{vhh><`q|-D#pmN-m}wCNxt21o?-sGu-8ZP0!_Cw?QBk9vLThTSO-^gsfQeP! zO=vFkbNM#c;K`mftSwN*D^Mm_pKw`xP=vpxX57(#cC=hru>F=M;@d#iKbhF~g2*XZhZv|FZUPo2m_6<(DHu*h{Nrc0&mwj=l6ZMs1T+wv?n z#!nezd$Xxl#z`-8uPaE|ar?Nnq7J?}Lv>&T6ZMGJCwrkUZV^;qkC*DaZ z#VHEmY_*pVmBYVzrJAIruJMVxmWpX4-`@i{=*1_x1TMbt_NCen`{&_nja0>SA56vpF_n_Il8yv8$(lQ~zLeCo8&$k`?vF22+Xv`Jf-CCQBK`-XAtwL<)KcA8 z;|*mOr$Qee{M-O937+Ibg?GUWu52&N+lzqOZOcJRiwB;_+kv0&vWYQ@zM*Z z&F^13M`ifQx4e%C{^UAF2byL%6><;0BDt?zu; zSVwVn&Z*p_TtQQi(CQueFvmLtpy)j|Rc*J80x)p5!sKm>YbaoF zj9jvBO&TaD4PnIu9xV8Q&BFGXH8Z9z&Hfw$j`?@pSn7FJN8`22-8?$ZtQ^q$ff$Fbt`R%rc|7$i$FaM;qloEI*EzTpp{oQxEDlU!lc^- zl$t-nQFD$ul>=jT@bk;LwIoMKpOEk|hNI#ANWp^Mu+kZI#My@ln=UggoFRYOxW4gI z06_=rU0(ub4ExB@7Ryz40H(37lQJRg5rmg!5VU-`~i-|NW~-uXUyc;(mI)*@h~cjudTsTE%Fsu;f> zi{&4rev*2J$?0fob|aM-{*o~K`cB30L5Hhhs^ z7cE5B6}yuRdRx_93Ri@jj^cd_q)HFY|76G$Ugtnh_%K}}X>Rk}-*ZZpfp^Y=_)5}9 z2v6lX=&S{-Z`LAih-vaMw%I>*~i^Nbeoa;u*Zi( zeSg_L&CJXyXl3RpIElcX_}z0TacoF4C=e@{00s&~GWtzOg0k95k+i)(ba!4{eW(PD zb=835gq6yAzhCJELo1cnrJ~1xa2NXgHQP0%;%-7zS;nw#0p-0>^;il=>3hl0nQS5y zQZN+}?bdhqYt0-b9}3XPB93IF;NY~08rIYt(bRn1gTF>*QcRiEVhu(IkXV!{^;1$L zG?>wu&cQCV_T-8 znOqhET>ZHGsPwhINanpH+R<83C-E=i$eTAkE>1?`cRrfc4z>lZx)<218Vc4T9zKZf zNC+<^>K1=(#NnwJqk*OaI|S`|9kT{@#7f&u&YCe%Ij9cra~NwIYnDHV9Y<~rB$=Rn zg{vO>^4{))K#C~W6lnYS6qv-KdiCu5s7t1t(@A)xQeS&}wUQ$e1hz(c_Nz2v3;O9| zPy+g~L&=mI{jFF)R(0C`q?WSjKFNdrHL(#1xNk@fy%`&i+|ORKlwOx48pNHfJifpx zw%(9fT zP;#Ra%sCiZ0gjWk$M5{mft^k{2PNqEh+4pLk=iwiM0}HYC zB#??jfgwcdijV@ycogd4G$6Hi6O7DV1kK9{i*bdnaUm>ep?n4EE5QHj793<kx!1ByV#C z)tcFu)VfDbJVIBxBbFY+$*H5cnV_H$911(;DOyWlYy1L6c}% zB$NTsLPaj%YUHjC7LcyqE^dC6x?HW;+=b4~F0&V0Mz$^$NnFE@{^j6)ri;g0#oGvX zNvub8%q+F6`L&v)nt>TdG)4cDu?cAz%4A1RuU5ORDipP%o*<9HloS{{P-B}+c&X=H z%yQf#4W>o!8MjrqgWE;wN~O_37Oci!W)XAF(A~y7fVA@(7DVgISCoQQVW?Ea7+2cq zcoaOguIVcWwdi`ye;@Vhu;w4V#*?@BB0dm_9`*7)Wq8HE(jBs8)E~u|DM5|@Gqe!@ zucU#Dq`L_cSBWSmm)(<{ToZS^<+pSaG-8Jyxv>1XXuVRL%{z24OmSTjO1!)=!E^Vk z#{^5iBSFhWjx%O~<`)eK+EHQKD+aRqTtvcnf|Pcl2F)&y36RW`1q zgETwWXNrqb;0glw5sVEeh=I6{lxo~fQNh`kJb_=_fgUJ~M!PO}SM{%%W@`*J(!VFu zwq)qqz2G89x8f7eMJq<8Tr$L4$1O!ZOr}vy4}@X}@h_4*t*N3yH!d~2q~oE!{}Y;O zxc`K0B(CknftCu^BOxXHoN)^vDr(FOdNCBtf#lIw%bHxUsgwLf-b@bBoVezoGCZk(s{P%9>P1HPq z!jVyU1JXr|J{d|JiUoP^g=k5Blk1srTwaa$5|2{6Z*1z;l*q+h(c<3%wtA}BO){w? zih@2F__Cr(=WoemO^mDS4u*{_>PE1ZQIp(#kpgREB&y9g_<#FoTNvNxeAJ1cMJa_D zfLOXQKq|8g@0;3+e$rnQS|9Bi%Ic(ow$4XFlNEg}PHF~RxRSNpAc0Rjg*mLUFw;T* zOIC{Qy|_K~B<|`5R_fYl?0i|~!gYLU9R07TsHQW$q-E@I{_notb3}C0U~(VJw*brK zjwMSx+uX?|X{~`BrYUMZb0)?AaJuw5<<>=|z^s7XpzTjb*;B;Xe?apQ5JFO%rwp_} z|C=$gr6|s$s44mD-wmF%$QBRq5ID`v%xVMd zizJu&g%b5-Y|*>e-kG@*G_4m}mLf6zU(^1--D0w0p`j4~j%07SDB@+au@Xq_oudEq zHaMr9$-<=a)}uiA{F$evy0Poblz1_x+C^y$EylzDTW8f;j%XZ8c}>_qDk-IhZo4uTC54ar3+8T>5r{B>21zO>MN?N$%26YX zrrqS;|J@smm>I>1NJ?)wo$RPd&OY}vgb`zilBP>dWzbBRKn|8<@S%s(nJ(nE+ZHU| z(f!5`D;zS8)CXFrS5yWB^Jz=f6Ly;nD^hNuZ1l|BkAEX*#7^pk0w!Vrxt_&A?gz>o_N_cCrXAthd~LoG&y)mgv}gU- zo&VfU9}_*n6^UcSE}{h1T#!R`LDIwJ81pIjhg?ls5VZ^?r=`A$-#;ZmiTm1IwMXx> z=bYJN4{xEMgbCP7ahfVtAhG;%+Hrlc;ZXHlS5ZM(c+f2csqPDp+eppc{jfc1bl(I8 zU7h-%fFNFZzldN~Zic04yhE{#iNy;mmdNy_&TSWlOC%fD8z5-N`;qtSg}bihqh&|P zR601#3|#{^kCBm^D_R+#$N1bsc6c$QCU;L;1U1H znSlr#VTYW-%Hz#88K@4Y>?WZ(V+#kH;krYKI=$Z{+mY`9b76tCh_B<>d4#uatwoPo zSU96-@x**f6>m@!hqtMT#XdMc*~*oY$aRQOh8A@|;?{ihzNh#x$I}MmJY_f!sfb?^ zvQAAP8R7uS<{Dp3qJ!A?G4eH!%0tC&^LfI@VKu*G4hfxDpEm3jy^Is9O?7SX*3w#*Iu_aC!*-#z|_%@p&i&GSAKSFopcSkNtc?c zLSPJ&gux(RW#y{2a>35yoit1}6 z?v=UY^(7~xNZfs-M}&tw`n4^;_;3Do`!?eyv&-Cgw3>`s_Egi>FWZpStS%EH&aEze z6=SDndH%m_62hZo+D1Clc-JDCPKS<^6*aDq9{oFJ`*nO+u^DqYKwfF|%~x!w_xLmU z8TvI*>s`Yu{KUNy_`Um|Q(049cAJ+m_zpR<+(gEJjPY~R>m9z!#QQmN33$pROGg_I zrr<6x*N%%dSgBlMjJI6703r`PazBs%B9{iYPd$pKV012J6Z3m|+kBR48JSOqdO!Rt zs;1$JvZ0ASiD|cUpSYD~Im4k%dUTjV7*PNtY5H*27R$?-?C@8M`4fg=%X6wC9#_A? z%4BmGIqJ-(mXIh>++v)_%t*c~Fg5ONl5kV#A{~MIt}NxPk{^;j<`4W|*DL4iiiuwS zhU{NoK2ZwTRHpiU-N^8Vuc>pHdm#o(u0!pBeA0AG$ZZq6lR7N2v_tRgZFyTB{q2NP zp3j>$nB1^3oiGab!HQoE6keUWB>D}uacSW%xO@$trKQP!k>l}+)Km$LU8hQ$-QS_F zKLcB)$%SPXZ8W9T;sStI^_TRjcotu$7cgvk(&I(4Q#MS{IVaN|!t2_tzZ1qxUiHsd z3#SUSG@^)!p|Vbv2L*?9l=5Xvk#-mmfHy89v!x~cB5n@zsgo+0Y8VufBe)-kMRvbj z5(<7wO%{rRgbn0xv=hJ0XlDVtluw7V<@(ctj^_{VhkCxd)qewnKRF$s5%q=h!>l@J z)k{qSkphuao(wz&-ekJM-3)@I!Xl+rSlvb}Q7|V4-|hzH9T^@bGHPuJK0>uE2~Vj5 z&47I;ThTfo4BN_!6#}#Z@Gzg1)jl>+>buhwU}r?g}vAEamds#c9pU2cwY8q&{!XRW*b!3E5V>X_n!};G4E0nKi-` zu3&80Zs(HiNZW@gTtw3q^)8X0)QuxI{-*DYBL}%JL?v@w_xa~F7{scCW(7sbi^p$Y zaJ?p`Q;a2i_<>)ANhjg6!=fF44wkR=tzz%o@8MC2)=YrCz%`rMld*43$!@B0yAi2Sfo=mxsHUDKj%)Rh>p(x7Qc456fMutdSYO{sG$` z&l|p7Tpwn!{KTs?;5(Oy!YuP%KH-ouxh1 zGS$JpWAy=d_KmsJ^H;3?Y}${2Lf6yOg{OhHa`E-kYnVDZ9*9CQUp$|O??ZB4=F=S? zY-**<4me`thak}^)C0OJNjSImu4P_`t5?B8Lp%cHUPK#S5sV#Y;FP>2oBVIQ84l$s z5Uo8Aw9r3cdZ$3Z{Og3|`*KVeI4n-Xy53($Tbj$%cSYsb@qRnXB$oEwd^PPeoy+cF z3V|*|Sw#S8|D4`S0A9Sjs{Bp4cx)NEd=k-$s*vZ~DhtyQ`71kyyN_tA^v4aRrw0#N zCJi8Da`9^NII$j&KWhM!h>_rp51Ecz!RW{f5hX4Wp#*_kM8KP+?A-9Gak1uooZ-20 zg{@>)Q|9LoA|R5Ny+WF#*rxx6oz$(-2n=ZB2`fz3x>ZNY z^tg_JWs8qYPLEg4`JDJ8*{jX}s|Iz1`zg^s+tV}yne?}nD-90~;(Z)!h2)cMpItZh zRV_NbY9t`wW!QC*Q~JzyvF0jI9YxYdUB=vQ97-m&K6PLj5Um`OlnkV#&Mta1j8KpP zvmEvP$5G;Yi~ceR`Itc$nmU(2Rk^##=a$1{KYgn+)hFT^twt!+i*Sl0ZmhU}t6+=4u#pcC<>PpEHN zzAt9}pMknhq*4!j>(vXR10W4toQg~Yva4e@wl@PZpdQiX|G>P@f(Od{@F{uQ!CtW# z`B{H#GAl`B$FW;tMPh{)D}gqkRXgGzj7KuVVE?)ETvW=igdtdOr7TsoiCNi@1xy@b z!(T4oE13CrtKDWmI|yi_^Et56L{2!%^v!+^FWSRwqySDT=-xmSyeM=j4wt%whM*{` zh1wh;&156C2Z2kR5{hYf{ASXd#062P=J+|=w>Jf6h%3+8tm$SVx z@o(}ADMG}^7Y^Src0_T$yBNq7g~}`a3h9<`qw*l_yFXTX=pw=w#~O7Z;JG${Hz<~J zb9wyYThja738G-Rqu#}RQGKDI*GlkfarC|!%S19)vPWbZ7l5H3ro5gMs>}I1+J1SG z^L%KL%L(TbEy^bj4`+n?htzd)Pn>a1E@8khv;{BKof4E!O7~->ldHDi6hNV5c>fz11BD!HF#k>O zCDXUu;iWQ6kls`ydBfdx6@yle8gx9zn&0}b4J(aHf`aRZR*`3icP4I_@cih#73%?k zYfIhoLxy$h_n$4q+(QJof*i?knG-iu!gD z0clVvK_n%m8A>VXhM_wp#SwAn5D<_CK|w-5dSF0u$e}w$LO?pCyYnob=X`n3_5K6r z6FS$PJ!{RZz1A=8@IO7^@e$|U|Bt89*|(a~-n+Hxy}j}C&W~?>ifC?UjM->jueQYe z!)Rgahof0uW}@$!39x8-zkozF#muysWZXy*27ojJv^+HIcJQh=QiUL#(TNJ-d1yHWfrrnaD(IS^wK31*#exJ;+=|oA$70YD_R`TI@yW? zWG`EH4O5*DI(TWY=O2Xu2PNRDEPmD6jsV4K-&b$qz<#crt{=~x-N2&{elhzn1 zTjc^x*QNYQ#>4$AUpI2^n!z_t{Qh)D_hk#_gv-HS2ej;Q{s7s&P#;Yzuq+bzX0>Q@ z>pB)nOk01Y;eT8&F(VI$+5s@L%9H&v$9jU?FT0N{TK<(8!lvr^2)CD28BgK1-`=MIt(T7kq|EKAJ@>|FS_#DtIh)s?&YWYj^2~Ty zQ_)fr0z({j<~HN;!%!s-j2U3zLa;Zcd+V&EmB!9|YX?Pg+57KY9e|Ka0^^Bi2L5Xf z6@2S{w6vuOBMd^ELE`{x23P$63eg9SVz;~*;H&!eG0P$TC5Ep4M{j~lFs{!6!GhY> z=07xa?5goHTgh8->kH;fF>Y-sukfO#2Q7EOI23d)CRrYE z&WKry^otb(isjMvzu1COfsm^OXXXOF5DXD1A#Lj`%tm#`NSLn{2!C?6qEn7y zu)$8@t@4dsz-$TGBVbnbl6{!Gwb66C2J7n7a)+#_{V)ABn zK4?bL6_9m#N3cP$NdCHf_HjpDFSpA}_h%=s>GOhXVA;ztLfar!Xjz>1AiM!ZGaR;s zS2}$BW$Qq0hFm{^liLN@J&^oN>-U^birDz6!^||^&DjV0^Y@mV69aM=Qj1?7RojQ` zMn{oRU!veGDye_QtUna-oRc#Ynq8D^t9S9ZU;<-5^s2s25%tzR%D8D*>b}2vxW+vL zhg*L(Kzdh6Jxvq!ATU4dT|4GwWl9{=8;98+osV@Re80E?&izBN_f_mgKmudN)Z_1q z2+R6*j~k#|Nt2{|7e*(3Sp-OSbIvE3HzJ#KV=d+Dx7GnQs<+?Iav?vEGN^I*9@)1G zsA(^(s61#aN@~G)c|`8Onmx%*y6?h(!By(*fn{@R9ux&|7BE6nk`NRF!6hMZlcC|^ z;$ER7Gim%o2^bw5A?nRaxU>UQw&Fm8zm@D1zI!}rml!AtqUuJpbwey-kIF1Hjc#;C zU_NTJ3H!QbfA~CF4;YRG6ePdy&h!honUcKLc5_Q7h3(0Cn(|}J$bY7mJf1uNzD2Fs zw|OG?l#^~Ib$MNX z0nrb~wy?y(i8vL_ooLD5T6`nwGVWP>{Dxdl<7xdR|GY_%1&&=n9QE!8+6BOfk^0l5 zu04)3s%{;u)_&FD@y;Uel_uYMy!PDQyB|T4Y)X27@HH&CXV?L^VTCV*hHFGMmN+`- zm?VdWU{CQEv?73OAEoU|b_K++JC&tgkYxJ)j03+O5LAP5VsB!R13xje`tEKo;vfQ_ ztU%wf(z*=#b%jr_L8OuD0jyaO==tC@83P_AL#B)`f7zsi2i^;o_)#eT#IB-6UIB_d zVRTeAMvX1w?p}JhU|f+KX9#PH1@NJ?UV+A{v(5m{(Ax|FF}OkHxrKs|HyACx=8tGn z82L%JLLkbcOcO&l9j})I8m@8xG|bi;ITlB|=Y%r|UBW&SAokN`fA{)H5fggEz;sTZ zv;02`Fpu+-3YfPC_g5CsD7j1L>E|WJ``!Rh#PBbve1WP4@F!|9es#;$x^-L%tB}pb z^zRxmxcTU78OniwdG0}DejAYk-z^oVLTlxyQRvdS^9e_SVI^7jQksQbM==@uFbGau z*rBF#K;a84>Rhsd>RE%EBzA4+QX)16%rv-R1K^Z*{NR^B>5?qkVpLRuaBhfqEw-;7 z7*X$=fA>`C-8bH|GAcTTA_RB6 z+|gt1{ESmz5#fFRci?NhUW469-j{h2g|_N-Alx$gVBz{=(Gk6!hu?~r2+@Y1tgW>( z3fDgteP?i6e?!t@=})HGm=WVZVA4zR3Zt-v43bfXR;mfK?W znX1S3tN#Tc+~*a7(Wp6&(gkE;Qw%p?{%NHno(7tY{ZJb92%sC{^Ez9HFTd2U2%mn} zrGCz_L7q&nACqCky(L_{yo zFbPP$cHNwp-$+5TtuWzf>^3oEYh1gFrnmN1jTfUd6v}Y`zy0C&dvIBLgL_ozzSwVB zVR*^p$SZAq#M^mB9GTajl|EX^BNUs1N05I~Lky@zo`m~DZZ)(4m#ZEZvU(JYOU5@}N7_c~qf_tmM0)B%9nGgZU@E&R5B^6uxJxBVYnoxoS(B zmz@b1z!ASQ^P!4rVNq8Xp1q1HOikK}oQ;(ea}uSyB+Jb9T< z2RE2EepCU%t(uBMy8Y-t)w25$HSxL|xa%JRJ4X+p_q>eC_+ABzG0)mo>$?~+8RU2# zWa+UCEzaKDXDL8>yPZ3a|J-VNlS3UwQw`0)woJ@+AA{~W165ZFxaxFTzVW!ApPgbi ziV7Q4g7r=**g10*%X~nigEp5V=Tl`n3YXe%Sh`UC^AF=h92O0uwjGJqD8W<+}jWjT$NKlHpfX7%^nWz}P@e9M>MKkH`U{x8n=E@jCCJ~d|GPqv_t=wQDa=@WmoRMc?A zy^lG}Lw07~cqIFh>!}}e9%EN0uT4&ty1zEnWFY;*(OBG&Q-l}}?}_tjxp2oFTmKre zzH+|yYwwa0qYMX`3rS0tl2|ccR@4>GMF?AeWVBz)5%x?BDRV|iUNl(kvvHc1Tha!O z`R^HBmn)0UzL_pB-}plLY@Z90KYtSIVHW-9O!DiZR;q6Qzyvs1(VD%A&Ffby#s^A> zgSTGs_c*aJWYCpzv}-YX$aB;H>Qqw_jeJv3;_O`3i?Yy3_93v<{47((5KP#{2)CD) zb~Y9$W;aB0vGbIFL9Q0a=&-zw3M}%uC^wbN5K=M(Rrb~|P-Icrk2hCFbtBSWVUPkB zKp0Rnef})B!*4|E8$ziP#XC!3;Fu~Z;+|?W^fhNvoD*@Ivh&a<E-jE58NkDdD${uw@~k;SDdMIoT1s-bznjSN)wIuBjeX<7Q^zLr~CB;L^Oy#Z%0~ zi_S6W4daDy<56I{ycF(dOOu`H3Wg9tG;Al1lxiPkK!KE&V%- zJ?RIr&3$A?Y&%<0TD8IueV1lv|9rvyqOr3vjh{dACcel}2hsZyR_dZhZ-1gYgqXX4 zOPOlAu1SqGRuCjITP#~(>m=j&5MBBFWp{3e7rK&j^m2?N0M?0&#>|g4oeoV9jxpO7 zwG)Qq_M!YLU00^QbfJ<*s48sr5lC6i{gwifEu%OaAeqD%mfi6*nT?HdoM3C&9sTi$ zE!B4;8+jmAhOf80*Y6oLyKo+$GCuHF{0*P|xzWIcH7gg6n!tw7ZchqDP_8iUCa}J3 z7IQ0{{Xvr>j2luiQ$ZsbWzkOZgp{nv8f@*GL>fIlg?kh`W(^K}_Fh32MJ2O(8Y<7| zri+%QzGrpDh5r`B9TJLoL-y)+x=g}v2G#m`XN&34qcm6)K~*o$D4@>SCspkkXK8&O zS)vYSpx^P7n(03rS9PJNgD@t-ky&$L+V>36Ih(ASUmX+9^vdtADpk!%`51HTnFB(Y&aX;)do-L}?xoJKuvg*3p z?Hl|84zZ0!n{prg@B7@Bc~Ti`164V#oJ>W9K5@`7m_3s{DF&B@#0pU|yg7L+7!Cm{ zsdxyV442>M`|He*AgNZ=7*XK+A)(?DRb6fEGsfpFZ1nb|%>1Kc;1{yr-^$d6dC<~r zaG1BE$nve*_mFTIiu~DKT(xz!LPQhxQ+v|vps~_{I;xi*5pJx3KNc9vdktz$NQ`5yC2B^5vNWijX5m7~SM z#w!jmkuL4F&TicIfydpmjXTtEGF+XZr`5wXWy9wSUSR|~zDpcBKMJ~}itce)>qd%& zvSQ2VIiBYPm;7B)k^YIVdPpKu^O+y_36}Hw$9wGTJWrn*V9UdZ1)t*=%VHINhOtv& zVJ^Cdm~cPAmJvd({ag7p5gQ)MkBcSo{3vt7jT0X*uU2kwotd5*Je}q46ROD%!kt}c z8HE`r#ES7^kv_FEjVGS1%@0x^TFJFFk{#x^qW z^uX2eu>_)x zF6fzyarlcanm(?B(6?dHHgg13)k-|2P`b~D%S?|IJgDADzsmx9k5!1#bu*~mARP;9 zm!@nvDMe3(5ikjF>x_+(W=9L&XfGSTM7 z41(No`!R0}9g!A=bVP;~vKIuYw+{QLd=b-=b&Py(aoFK(CGAAIp_rf3@mdZC;}z$F zhqZtH#;9+Zoa2$CfDp7sJ#jFV=5!j~$|gc1C?N63{oi)qrPG7pQsba~2N!q9uNphn zTwENYG#dQApM)X;d{5IUgbTt3OsB@|tErMFbBj3OqDY@1~~@veC!{HHp4h%q4!S z{6+B2T_nt&v`?eI3jny^q|8m-T+Jx31VYk%A|gJmtrgrIq^8EYqAdA`%u^$d(#vs_ zq74y%OPskKu3#9V(;icIQ#~R(b5rZA-II9d!#N<&&A~1th`X;u8wmTw8=vxRzYk@N z!pZnV=>EJrPe*1*iuNQ#UNxJ#)^}##a=zUC$&8&nsSl*L?uq+X1tAFW0E$oh-Yc~D z#h6lZLFw*P7Qe25i(OZ?+xF7bi|md$<00z)5h|h->PLAUsF(1e1h7F;{MOb# zVJOqH`8gu8opIG$8oz;(R06B%K}Bd!xXDp#fZya?<~wFMoP=mNZ$F3vz%S^FcIxcu99_Djmc#d);9t*3QPSOw|m_ zUcUIAlKc&DoX$W0Sokqnwc;(qbf7J;2Pyg?RXak!_p4LMNWK!E1 zPide}mvczC^9?&GM)+Lp>@D9&phL*XDfLk!z2>ajgrGQ?9ElmZQHs8k?DHJLuO2V9 z8zt`rldSNG_#Sf2@???vTVL3#FXWJo#`Pfh6m2a>E8QS1ZlqPM`1l~T^LS)H9 z_aRIbNZI)@L!zV2ku&dl(|EJ~Cu2C7fn#Jzyy9O_1dwmFu@fMB;2|M90>T$-A|s1+ zHY9?+7v-rKMWBIL4uAz=6EPi5GnKIJ2VRn6h{bFQ=W)np9_(HpZ)wLfbaJAQW`i_*c^2o8Qn62L zwErlBm>Cx2QkyRKRE`^2qAv=5A@CD~dkSuQ#yz_Y*cGR>w~$|)5W)8!It{&BHn!0& zIHqVuxl3Hg6j8{-U4stwNckEVmY0luvJ67)9CULCsk1Hh-YCRwOd9tfIPMpBH~%sS zqDT^>m|C&!?}+H_P0ga;zp>HjFUDP(GP`fkkR z(Ftyjgc=fHC`y7aSEg+UVcubi@fHhta{2Fk;Hw^H=t&ru-`;ufi9~iQ%HujYT4*jVAPfJzBRfbOJ9W19;CM+>rI3A zO6rvaAm39`J?*s@O>#iaRf9v6h0$_R@ZOi0@p7VCwUxDC{Y6+{9Ss!8F0i!*0ucIm5e+8H%OO= z`cMVOl`gX%oCZ)W^s&;tt>--!P-npNTbaUua=n>lP14~kM9_bx_70L~g&afg(V}xw zshKEeMk-|n@-%6|Em!_;?zcA2=&vy3g~!IY07wpHj4?Y`_k*iEwHK=sGrrwj{Pn0} z=kWyH$>-U7(u$ga5mK+7U`F%SxQfEcqnQ>fcP?K4H;XrserTI-+WW_ebm;y=?q+2L zRS%-T^>YSqyt^?~k38WM#ASACc-K`sxXpk2u{>e)11R+%seR|I+T1uA6dv^6FxD>8 zbbWVmD*5ZV^wf2*6Y>G=tU^4s@yUc~rE8u}`9`^`qltyjM&j*DSI|YIce;fCf^S_x zDZl-rZ-+%km>1%zE&GBb=22Fk8<$aLXGyqq1RSF~{>7kPNV z4Fj1ZAHG-g6BL`vr7bNV{${beHZ@k$aLa>`4{|5z{P5F9Sd8{=1u_mGOEFf8o~iEl zae4#(P2&`KI8(NIeennjW0<54#ll7e?$q(-$hcy+YKbq;`;>zs6BN-$GIL}W2G|V zU693s2RyH%Stryfog{C4wUk;=eAehaD2PQ0*^g;kk4w<0gS7noQl<<$Rs!FJ4)1}- z*rT-uh&aC`pZ&nJdTRAwS7I#3QoRyZ%?M7OGHNUe+Vp2w=f@7lS@ea{7NvR`LiUE( z8<7nmuOPU*>JHRcES(o^3bcM9Mey~EK9pBb(~rgY%CFW=WH!2I6a`G+O>tsf`_6hn zO$*E*!5w;$jMEJEi|%u`S6ZFQOU9O@KXr^<&M6GPLlGeC`ygz9Ko*S{H0pIP$Tk(Y z@K(D$cX3qg+q_L>wXN&)nB|+nq5N7-J|A|!qTZR$$XU?3 zUBskWrydt-ER2ga3)0i9Zd3*_Oj(J+-p|L$^e4;kJ<|~{(J0*6;xz+SlHqJ?Qf9Ol z^%KatqIhjpy_ixz{g4V|!`SB~!gJamA4)X6dC^&mM~xNMR}(R_X+Jj%>0(Ge|H?l* z3BeWg;e2Cjg+7wG8Xsdn8+)^r>fuP}oATN~2^yunh%q7^0Q*wFSIlDTrXF?mL680F zV|k~#-@66DybexoNQjQHp&m2#y5_nuCpPc9Pz+<9yN*)L^qPUV0UXk|e?LiQVBN>m zJr=~r33vd~kf&^YV#=g^xCt2+q^DZy)<_q%;0_B*=)<+_PZJ2>!SJ z^9^Z{tgq8_>?^ddVm7rQTF#NMK%Up${=p%#Jw-tj;-{D&q`heI6Fu08zieE^NDuz2GZccFIuDuMUh8D zW*&o+j`otxMq2SjMTOt01uA&$6f7gBsV|qC)7k0KQUKlfU! zLS_JJ4v|?+rXcQTqJq!+&B3qSIYUH%4sElzUsfd_%O+&Y|gF?N=rqp4o%MNt&UC_-LI+M!Lud^Yl6*vJVYYH;H7it|T*&&>u0X>l&H zuJEY9M1BWD%Zj{ORKghSM-T{GA@CjPwF z>9Z$6@)c&&1ZqZ0J`?QBE@IlC;Js>j#v0s*8G2{Ah)I?1GJ;i=IC`m(CQbY}`rTNZ zT{ok>;#Sem%dV&?WlZFoVjd3mV&zeAjgeA(Lcx99irk~-37+l{G1VwN1N6UDmt~!X zE&5^87k`M#etwQMUlYyK8Q$OA28H9-M}kk`7Gu)?O1d6@uW}i8OBY}|LPm){x#%N)wqp{e$W0!19CwJP+C zXZK=sVElbWcSh9TYU`Y)9oEq{u$h*M**A#!MtryBwC@?I_H$z8i`l_? z|CJ|qjjcz}cL0pJUM~o$TlW0x@d5PMiA-vrbWW>+v~78`Frrtv&AOj!X~;}1MsocH z+Y3{FmC`g$KG-}U# zrRwhB_C>on-n&F`BBOhld)t+0k^H;s+E^ekM_1m&*bIS+M?{Jkhhw3fM(>}r_++i2 z>QY*9^ULtk57qPD?Xt8#PLzd`R_Ts62Ibn@qhchDrY70Y!Bp6VDPsuv!X8|RB$mTbNMn;vodmX%y5v^MP$+uUqFv8SyRCi{zV(nPFZodY+Q+OIOAXD z80Gcu5LTLZ28)fCJpAxNd9c%O@Ncc%KmW_AMx(}};ox;CBZ=n{5Yj=37ohBtvp!Um zC_8i=BW!lP9Yb8La}U#R1C_Y7J_U-oUda(+pQG3>9n)a<{nk%?0q$4l|#I{b#-y_lqP8x3C7ls`ch!ziiYQO=pI#; zt{cC9{i|y8yb9Uv4AhIYUNjzPj1Hwh(rzVOzJCFCY=i9jhxn4 zPtS}{@r1QH4zfce-tL$D`dpvWag|sMI~_pD4tYsl7lCAodUWp!ReRrZkJIQ6`btR< z!ZLcF9}=Acb1;ev>$~C}4j%!@GU)tS6H=6rKLYV)J}dxq=Rk{!z-;}4NerBzWR(De zYS4mWyxlA*!T?Hyccub?ONfw|orzvsnoL}z5(=<}RR%;M|4kvwmOTf74k z8l+`1WQTY?oxr<4{ZyQ|pBWJ_FjVa#ZYxbmnOEQ{xWzWFyhea=@cZ}Y=jg`|w5q8< z>3kAh(><#1g7+4}hcAmX*2d_{W;5?0##4CAA`(YZNqp zY~A*4MYQ1VZ0}TP{~dPC-+$+}3hn!rhCZ#%fSc*ff8+0W&1Ia|g*=3hq0r zDnh(e|D%phyIYEd{1{fpS1i&mR?dsnP^Wv{bSlbow}Kr*3cF<@&(C ze1}om+NKd}edNXo4AGkF$Jh(8k6E4Zl2PtP#pOF<5v51R$P1WAx3YaenCVt1$LlWW z&Sc2_K-{kgiP}h{`1;n=B#~W!gHnZ)qYN6#Z$D39n zA@ZNG$ul0fEObueVCyT9K-NPuG`Y^#FR-+lQdhE%Ji8GYHQ`yGVPO9N+smC(q0hi; zNo-}MKgY<$P)Xu!jD7UbXXBZ5^{G&H#C#$(%|22BLaaTg?8h8dM zc{)r9)45}F`P>pgHcea}I6FQLBVS9T4lQN8%1-`$`(T+k)hsZ>^s+4-L2pYje^D~c z<7j=E$WQZEcD~`C1O^~;3A^j zwTzq@jW}H0sCq5Qcd38xXCfqScl<(j0jV`=CYoP1As$Axp`L*_AB^vozgVJ_FT?6xaQuduqE6YlhDeu-ye0C%25*(zdXzI0<8@l}ZSVD8u)s;ZN^*kf2 zLcmBj>TPD$IhSZ^op4&QE>q4?V@8?GIeBUzS4zJJma`u@@tW1@#n08)87Hz}lBRTBgs<2BxN-r||8Im34(y{kTTz8q z=Lpf+1qWce^a?~!OaPy@Vq6nF)sAY$zl0*#gO2BvzwIFt#ahTtBf=x7pLok+^&3C_ z!X3idy04dVc`8(-)4Pi-69G857ID0<)S>gnk#E>XFYzy{GrW8`fti@WoI>^3i%Df6 zNC?HgN|fAf@Iz5$1Pmq)y*~A^X&xZic4;(2!E-}o1SnHuBc}@`1Cz>8zl78rpW$EX zK^MW}uxHfxbmm7>i9W4IcV&5c54qpK4L*Quf>^nOPc`b6z@;9Q^^?(8dy!Oc33Mn|@_Y7jWIpT4Pnq?MeRoclRpvQZD~ zfZ$`QMy)km#Gsd;%x09W*`c!AR+~mMqFSzt+4D5=8&=u+5hdoFVmP(M=?I~`Xk1+g zngHkJ%eo~}qThK}k8QF4O@0@4(Ie zMyuiScyhF!ow+Vz{b>-vdLH5~Pl{YEr_lKDGtrT}1ik{t`GlHt#CW@bU|ohEcAiDA ztWFNCAkH`3W(B_hcWXXOp%0Hj9PmQ=L=jQrH~v!fRIY5Maqu6&xC z^BSrU0dKIGpMMVvsylj=A@MwXu-$&LUiz;~341j4KA;>bq+gKPKs*;t84I9_imjOiKR zASIgz%xccc8_&Ufe8l^K<%DuuEsL)?WCR7=Pd0>$9?oiMKZayR1Me(OPKX}G=|MWR zUEuK#-elRK`W=fW6@aA04;lL-vQppzRv@{J+_@4Yo?!hi^dRhGjSEg-2NWop7_@^oT|=r&GPclyT;b zjTX)aGP-H-wNwFn|NV~Mp8F3xE?ECfuNH?mgJ`IaB#9dw6*h`(DxA%4Qb+2jT(t#O ztgO@&3d>vWUw0@)At){al2pk9h27zea}R7R*Z){K*8e>yeP>?ON5#iQ*wgc|ywcKM zZpZ3VS>74j+Xk5=8rGbM%)gWbba@ka&4cU&-|kQ&*89pNvf_f!zzRP+z~xB5bSXgus}8Y1Ez&b}+F#NXBimwvaDKkKIo^0en`21#dOCKdz1kZ& zXu>OUBBUl;Dp1zZZhx_on|kQ%?38uD(;S{v415&k6xIAwczU* zDh8=tT!>qr7n|E;u4N2@VvY?*M9MhZ5kPms7$9z&)9JXSRP9ek6Qp~U5IOFyUfIi> zHV?M9?R*0yS<${Lm6WC_Uja@BtYgufjvh>Z^#T`=b#FADZ@v7_AW}fN6Lxp@stCjr zT0e)8T_3IQhp8ZzYv24SfL&!%cgT5getzkA*(rIYl8Bz(O@oDI6Z7FTTv+9tn2Q~0 zeGL5|Z-{|0-{Ha(Ltk{QGS0A_)^I>~v!Hw6-l|GE|5>I1fujZrF3I=$VIMz|B>#Cc zGg0+@JSN3m`LMhTmU^f?s>v$KHQhoPc`5%yQdfM~+xyM1juL&|(eda&3&dXQ*8Cnd8qYhn=q7_Zr08> zjfxD~SNsp-5!*K?$)v`V&#;G??(6U0_+KvTK1qMP)?j_jBCz-{ZdPRN@0%GzQw(^L zzqTYgs;&L)(LC;%(7W5U#67?xi_VKpM+{(X<(>&+!>i97eYkOqo95L~cBn zo-l0Q`!mXJPNxU$^gUIPmBA4eQlCswB%jw zU=o>nN-@j5FCP3r0{c1@YK_%D=pLQbBqeb66J34bah`r2HdG3wuZM%B!zqdRk}RzuOh;I2lxmW^ax_`yV0Sy+72*hA2q@DQ>>g#y@VIrHoSP-ml94jqg7k#)cHdJ zUM<)<>wBXhnj;vu$^KDecE4fA;|Op>Vs5UEG;WMf!SI2_P&cYr;_(OA)mM*yI&+rM9pNK?G zR7#?+NS^ZBqJmOXQ#$9Yd|6&Bbhh@Kms-@%n=MI)0Qd?5xVJA=#aHe59`KmXVK%0t z;m7l!?e$qam=|B~6?N8H>spU2_wq-Oo9{gF6xUbRKF13)!M{|Dio^82!m-6&Rnc z<2v~~yGT*rF}0AKJ&0m|)jAThF`h?m=$)yjbtcAK_LrvTaK=v;etY`KGIIPna1JTc zr9g=!&9gp}ON$LZ1TWy+8e4_AdF%YP_e2cD7s$Wb8Y4Krv*svwaO#qi59AX%-RpKQ z!)|_T#+H#RUM*I;@E1k|=$~nY{-GowxgMvvAuY-a))^&=sbrUj0V#iR>x#CM+$jMT%<$EEcuD+|uIn|fG9a}5@x7O9B6rAZ{neSg0* zm!svkZ`K(~>;C$nxG6=CV2 zum-rHJ3C&>*gN45*Q|g~qS=}#W#n%Vdh@9QC_G}t$J##R=B#7(-tSw=Rv_%lRDWkb z%8=la%lsyJ#bN@? zFkWGZWt&g|Y{WG>2a8j@1ukGTLnyz0-4U4nEaL=hqu^t6bhOuvrD?l}1ET_YvHc2Q z4Yd0zzEi@a&mhExbD=nT(9q4+fE=SSOn>Hry|>$TTP!arPxm+~`gtG}elG!z$0va9 zUDuAtQ?0qq-rw#tSj&K+<;Pi2Y8hY-lM7LblA%cbsB=)x7_7tjf|LL9S7)etL*`*e zPTDoi>OU#e$Wk2!{Txc$&a3Y)^+=HkjuHcDa=bw?b^`-w`Jx*u@&`TmPUdu5^bXXc zGCuPXshraJMrLFh+Ylu`)2qX;VH6;w6U;$SJkA#NXIgC339n_Z_8Is7(q67cA+4bd)7wj6cWE{8Rc{WyO0FfHH zbd&G!@7K_<%OTDjtse#pId#+h! zwNy!z6f5uREE!Es4Y{qKd6`C9*p`MxFyzbpHfDyiIah*gJbzsf-q#N(UV|F$LUhJl z57u`%cUk#^zZH!zoKgrRZ&Z)$`fTXW2`4zdvsO*iAt-@Cu>CH_DJQo~7=(-(&#Dy< z>Om&aw-zk}l1BVXP^RQ9znH-K@quASe&_1cbzC587&U|0$S@mD&bqgUENhA}OS9GT z_SyJnRm8#ZJ^dS)YEH!c&$l;rMIXgG&I61wf{W{!y_d?9Qz0A2P5lnsbZT&(6CEKd zM)_e2sq)(jjH3zIeg`8WTXLUOquRqC=AenjRH)p@?wXM|xW?w+`-mu@7fQ*ryKK#}nC@B5#WmidLKt}N2<2DeM=7VZDK*%rt zytP5{!)DEdUGSLwR)ILkb+C@s>t%a7K8`0Z5Ir|2fjxzPDz9#kR)Ot5s=T0s-J#D! z5Pb)&UjWkCsF7z@9LDKC(u=bIsSwNg%oJ0D`(b&q=7V=QL=&c$fh$&?m*+A5dkDYz zF9P-+x~kHy1?xG%Ilofex6QVGr=z*#({QOjaTyr$>r>usBsN`BtMk5|h|?4$seqR) z%*;*mzAko1Di;DM#Iq8A@AaT<;iDrd5F@-Wh)L~%w-%`#EI}E^?A?1ugpjoHVKB+p)@7dHls?0pOl9ZHWqACZ| zVs4x#BxdMh%C?uwpE?zb7pjx-2BYFLqU**l*mjX89ZHwsE&+;0dBo%2U*b-lZb`ov z!uQ#Lj^a|Y1bW|fKe{OHA*#Dyu~zDR|B2mF9zt$t+pMlY*hfx}JrD=$`9aT6du*>Q z!{1Q<8*KSh^nv0!8#iZEidZ(H!=Cp1Dr&-I`l~|Ao?&j>utjgGE1Zw;_6KfZjnbIy z!Mp*Kq3f8$*$n#IQ#?N!?1z$<=aM(VzMZ##5Bq_>J(q);H@FtKCFm;(r_iC{Bf2pg=ZqV4dRb@1v=`@{gcTZBQQV^-ngC)ZSZb0Bspk|~^eny`9J@g9(?c4N zzhuyGsDhG%lIqAj$1WgiZS=hQMlD0qmQ4Me;4+r<<|O92gBQ~A_7e}pjr{cY1#QEr zSaKdoGTT-J=kvFFlTA4rB)X299J{}P04Fx9gB�(F{#{-AYMzI#$W^HG{ZKx&+M( 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 z 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¨qrT&r3r0Y-J}C3?8@(e0 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

}1Bp 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 TB`71QrUyTK_c_3nbd&aiVIdZb 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 z%0D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 L(JWZg;=0`$gn>bRdCk2PzevI@*c31Pd{Uz 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

#Jb!FmX|) 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

}j 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%0D3N4>DIJt?Z^SO^ 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 cVi%OKmLKtiB1- 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 bUrXPyC>+JjbLtb2SO``g?C?WicY0 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 )uku^f0t1z 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

xZU9^$A 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

I_v@M`Ehy* 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 pWIxmo7b^e& From a0b27959989abc9cc181033e09c8ec9f9d88798d Mon Sep 17 00:00:00 2001 From: Ethan Oroshiba Date: Wed, 4 Dec 2024 13:23:25 -0600 Subject: [PATCH 13/16] chore(ci): CLI docker just command matches CI package name (#1831) ## Summary Changed `just docker-build astria-cli` command to match the CI's naming ## Background CI package name is "astria-cli", whereas the just command resulted in a docker image with only "cli". ## Changes - Changed command to result in `ghcr.io/astriaorg/astria-cli:local` ## Testing Manually tested ## Changelogs No updates needed ## Related Issues closes #1812 --- justfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/justfile b/justfile index 6c09ebd06e..e6ac8d0884 100644 --- a/justfile +++ b/justfile @@ -41,7 +41,7 @@ _crate_short_name crate quiet="": set -eu case {{crate}} in astria-bridge-withdrawer) short_name=bridge-withdrawer ;; - astria-cli) short_name=cli ;; + astria-cli) short_name=astria-cli ;; astria-composer) short_name=composer ;; astria-conductor) short_name=conductor ;; astria-sequencer) short_name=sequencer ;; From e1a4f0273fb9e9cb898979a90c9ef31241752d82 Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Wed, 4 Dec 2024 20:47:58 +0100 Subject: [PATCH 14/16] feat(sequencer): allow querying fee components (#1748) ## Summary Returns a all fee components at the latest height when sending an ABCI info request containing the path `"fees/components"`. ## Background Right now information on the sequencer state is very limited. This patch allows getting a bit more info out of it. ## Changes - Adds a handler for the path `"fees/components"` into the ABCI info service running inside sequencer. - The handler returns a JSON object containing the values for each component. Each component can return one of the 3 states shown below: ``` { "transaction": { base: 1, multiplier: 2, }, "rollup_data_submission": "not set", "ibc_relay": ", +) -> response::Query { + let snapshot = storage.latest_snapshot(); + + let height = async { + snapshot + .get_block_height() + .await + .wrap_err("failed getting block height") + }; + let fee_components = get_all_fee_components(&snapshot).map(Ok); + let (height, fee_components) = match try_join!(height, fee_components) { + Ok(vals) => vals, + Err(err) => { + return response::Query { + code: Code::Err(AbciErrorCode::INTERNAL_ERROR.value()), + info: AbciErrorCode::INTERNAL_ERROR.info(), + log: format!("{err:#}"), + ..response::Query::default() + }; + } + }; + + let height = tendermint::block::Height::try_from(height).expect("height must fit into an i64"); + response::Query { + code: tendermint::abci::Code::Ok, + key: request.path.into_bytes().into(), + value: serde_json::to_vec(&fee_components) + .expect("object does not contain keys that don't map to json keys") + .into(), + height, + ..response::Query::default() + } +} + pub(crate) async fn transaction_fee_request( storage: Storage, request: request::Query, @@ -458,3 +497,138 @@ fn preprocess_fees_request(request: &request::Query) -> Result From>> for FetchResult +where + FeeComponent: From, +{ + fn from(value: eyre::Result>) -> Self { + match value { + Ok(Some(val)) => Self::Component(val.into()), + Ok(None) => Self::Missing("not set"), + Err(err) => Self::Err(err.to_string()), + } + } +} + +async fn get_all_fee_components(state: &S) -> AllFeeComponents { + let ( + transfer, + rollup_data_submission, + ics20_withdrawal, + init_bridge_account, + bridge_lock, + bridge_unlock, + bridge_sudo_change, + ibc_relay, + validator_update, + fee_asset_change, + fee_change, + ibc_relayer_change, + sudo_address_change, + ibc_sudo_change, + ) = join!( + state.get_transfer_fees().map(fetch_to_response), + state + .get_rollup_data_submission_fees() + .map(fetch_to_response), + state.get_ics20_withdrawal_fees().map(fetch_to_response), + state.get_init_bridge_account_fees().map(fetch_to_response), + state.get_bridge_lock_fees().map(fetch_to_response), + state.get_bridge_unlock_fees().map(fetch_to_response), + state.get_bridge_sudo_change_fees().map(fetch_to_response), + state.get_ibc_relay_fees().map(fetch_to_response), + state.get_validator_update_fees().map(fetch_to_response), + state.get_fee_asset_change_fees().map(fetch_to_response), + state.get_fee_change_fees().map(fetch_to_response), + state.get_ibc_relayer_change_fees().map(fetch_to_response), + state.get_sudo_address_change_fees().map(fetch_to_response), + state.get_ibc_sudo_change_fees().map(fetch_to_response), + ); + AllFeeComponents { + transfer, + rollup_data_submission, + ics20_withdrawal, + init_bridge_account, + bridge_lock, + bridge_unlock, + bridge_sudo_change, + ibc_relay, + validator_update, + fee_asset_change, + fee_change, + ibc_relayer_change, + sudo_address_change, + ibc_sudo_change, + } +} + +fn fetch_to_response(value: eyre::Result>) -> FetchResult +where + FeeComponent: From, +{ + value.into() +} + +#[derive(serde::Serialize)] +struct FeeComponent { + base: u128, + multiplier: u128, +} + +macro_rules! impl_from_domain_fee_component { + ( $($dt:ty ),* $(,)?) => { + $( + impl From<$dt> for FeeComponent { + fn from(val: $dt) -> Self { + Self { + base: val.base, + multiplier: val.multiplier, + } + } + } + )* + } +} +impl_from_domain_fee_component!( + astria_core::protocol::fees::v1::BridgeLockFeeComponents, + astria_core::protocol::fees::v1::BridgeSudoChangeFeeComponents, + astria_core::protocol::fees::v1::BridgeUnlockFeeComponents, + astria_core::protocol::fees::v1::FeeAssetChangeFeeComponents, + astria_core::protocol::fees::v1::FeeChangeFeeComponents, + astria_core::protocol::fees::v1::IbcRelayFeeComponents, + astria_core::protocol::fees::v1::IbcRelayerChangeFeeComponents, + astria_core::protocol::fees::v1::IbcSudoChangeFeeComponents, + astria_core::protocol::fees::v1::Ics20WithdrawalFeeComponents, + astria_core::protocol::fees::v1::InitBridgeAccountFeeComponents, + astria_core::protocol::fees::v1::RollupDataSubmissionFeeComponents, + astria_core::protocol::fees::v1::SudoAddressChangeFeeComponents, + astria_core::protocol::fees::v1::TransferFeeComponents, + astria_core::protocol::fees::v1::ValidatorUpdateFeeComponents, +); diff --git a/crates/astria-sequencer/src/service/info/abci_query_router.rs b/crates/astria-sequencer/src/service/info/abci_query_router.rs index 988e0b7791..00a127772d 100644 --- a/crates/astria-sequencer/src/service/info/abci_query_router.rs +++ b/crates/astria-sequencer/src/service/info/abci_query_router.rs @@ -40,7 +40,6 @@ use std::{ use cnidarium::Storage; use matchit::{ - InsertError, Match, MatchError, }; @@ -49,6 +48,13 @@ use tendermint::abci::{ response, }; +#[derive(Debug, thiserror::Error)] +#[error("`{route}` is an invalid route")] +pub(crate) struct InsertError { + route: String, + source: matchit::InsertError, +} + /// `Router` is a wrapper around [`matchit::Router`] to route abci queries /// to handlers. #[derive(Clone)] @@ -75,8 +81,13 @@ impl Router { route: impl Into, handler: impl AbciQueryHandler, ) -> Result<(), InsertError> { + let route = route.into(); self.query_router - .insert(route, BoxedAbciQueryHandler::from_handler(handler)) + .insert(route.clone(), BoxedAbciQueryHandler::from_handler(handler)) + .map_err(|source| InsertError { + route, + source, + }) } } diff --git a/crates/astria-sequencer/src/service/info/mod.rs b/crates/astria-sequencer/src/service/info/mod.rs index 23b863aebc..615c795700 100644 --- a/crates/astria-sequencer/src/service/info/mod.rs +++ b/crates/astria-sequencer/src/service/info/mod.rs @@ -45,48 +45,40 @@ pub(crate) struct Info { query_router: abci_query_router::Router, } +const ACCOUNT_BALANCE: &str = "accounts/balance/:account"; +const ACCOUNT_NONCE: &str = "accounts/nonce/:account"; +const ASSET_DENOM: &str = "asset/denom/:id"; +const FEE_ALLOWED_ASSETS: &str = "asset/allowed_fee_assets"; + +const BRIDGE_ACCOUNT_LAST_TX_ID: &str = "bridge/account_last_tx_hash/:address"; +const BRIDGE_ACCOUNT_INFO: &str = "bridge/account_info/:address"; + +const TRANSACTION_FEE: &str = "transaction/fee"; + +const FEES_COMPONENTS: &str = "fees/components"; + impl Info { pub(crate) fn new(storage: Storage) -> Result { let mut query_router = abci_query_router::Router::new(); - query_router - .insert( - "accounts/balance/:account", - crate::accounts::query::balance_request, - ) - .wrap_err("invalid path: `accounts/balance/:account`")?; - query_router - .insert( - "accounts/nonce/:account", - crate::accounts::query::nonce_request, - ) - .wrap_err("invalid path: `accounts/nonce/:account`")?; - query_router - .insert("asset/denom/:id", crate::assets::query::denom_request) - .wrap_err("invalid path: `asset/denom/:id`")?; - query_router - .insert( - "asset/allowed_fee_assets", - crate::fees::query::allowed_fee_assets_request, - ) - .wrap_err("invalid path: `asset/allowed_fee_asset_ids`")?; - query_router - .insert( - "bridge/account_last_tx_hash/:address", - crate::bridge::query::bridge_account_last_tx_hash_request, - ) - .wrap_err("invalid path: `bridge/account_last_tx_hash/:address`")?; - query_router - .insert( - "transaction/fee", - crate::fees::query::transaction_fee_request, - ) - .wrap_err("invalid path: `transaction/fee`")?; - query_router - .insert( - "bridge/account_info/:address", - crate::bridge::query::bridge_account_info_request, - ) - .wrap_err("invalid path: `bridge/account_info/:address`")?; + + // NOTE: Skipping error context because `InsertError` contains all required information. + query_router.insert(ACCOUNT_BALANCE, crate::accounts::query::balance_request)?; + query_router.insert(ACCOUNT_NONCE, crate::accounts::query::nonce_request)?; + query_router.insert(ASSET_DENOM, crate::assets::query::denom_request)?; + query_router.insert( + FEE_ALLOWED_ASSETS, + crate::fees::query::allowed_fee_assets_request, + )?; + query_router.insert( + BRIDGE_ACCOUNT_LAST_TX_ID, + crate::bridge::query::bridge_account_last_tx_hash_request, + )?; + query_router.insert( + BRIDGE_ACCOUNT_INFO, + crate::bridge::query::bridge_account_info_request, + )?; + query_router.insert(TRANSACTION_FEE, crate::fees::query::transaction_fee_request)?; + query_router.insert(FEES_COMPONENTS, crate::fees::query::components)?; Ok(Self { storage, query_router, @@ -183,9 +175,28 @@ mod tests { protocol::{ account::v1::BalanceResponse, asset::v1::DenomResponse, + fees::v1::{ + BridgeLockFeeComponents, + BridgeSudoChangeFeeComponents, + BridgeUnlockFeeComponents, + FeeAssetChangeFeeComponents, + FeeChangeFeeComponents, + IbcRelayFeeComponents, + IbcRelayerChangeFeeComponents, + IbcSudoChangeFeeComponents, + Ics20WithdrawalFeeComponents, + InitBridgeAccountFeeComponents, + RollupDataSubmissionFeeComponents, + SudoAddressChangeFeeComponents, + TransferFeeComponents, + ValidatorUpdateFeeComponents, + }, }, }; - use cnidarium::StateDelta; + use cnidarium::{ + StateDelta, + StateWrite, + }; use prost::Message as _; use tendermint::v0_38::abci::{ request, @@ -367,7 +378,7 @@ mod tests { InfoResponse::Query(query) => query, other => panic!("expected InfoResponse::Query, got {other:?}"), }; - assert!(query_response.code.is_ok()); + assert!(query_response.code.is_ok(), "{query_response:?}"); let allowed_fee_assets_resp = raw::AllowedFeeAssetsResponse::decode(query_response.value) .unwrap() @@ -384,4 +395,190 @@ mod tests { ); } } + + #[tokio::test] + async fn handle_fee_components() { + let storage = cnidarium::TempStorage::new().await.unwrap(); + let mut state = StateDelta::new(storage.latest_snapshot()); + + let height = 99; + + state.put_block_height(height).unwrap(); + write_all_the_fees(&mut state); + storage.commit(state).await.unwrap(); + + let info_request = InfoRequest::Query(request::Query { + path: "fees/components".to_string(), + data: vec![].into(), + height: u32::try_from(height).unwrap().into(), + prove: false, + }); + + let response = { + let storage = (*storage).clone(); + let info_service = Info::new(storage).unwrap(); + info_service + .handle_info_request(info_request) + .await + .unwrap() + }; + let query_response = match response { + InfoResponse::Query(query) => query, + other => panic!("expected InfoResponse::Query, got {other:?}"), + }; + assert!(query_response.code.is_ok(), "{query_response:?}"); + + let actual_fees = + serde_json::from_slice::(&query_response.value).unwrap(); + + assert_json_diff::assert_json_eq!(expected_fees(), actual_fees); + } + + fn expected_fees() -> serde_json::Value { + serde_json::json!({ + "bridge_lock": { + "base": 1, + "multiplier": 1 + }, + "bridge_sudo_change": { + "base": 3, + "multiplier": 3 + }, + "bridge_unlock": { + "base": 2, + "multiplier": 2 + }, + "fee_asset_change": { + "base": 4, + "multiplier": 4 + }, + "fee_change": { + "base": 5, + "multiplier": 5 + }, + "ibc_relay": { + "base": 7, + "multiplier": 7 + }, + "ibc_relayer_change": { + "base": 8, + "multiplier": 8 + }, + "ibc_sudo_change": { + "base": 9, + "multiplier": 9 + }, + "ics20_withdrawal": { + "base": 10, + "multiplier": 10 + }, + "init_bridge_account": { + "base": 6, + "multiplier": 6 + }, + "rollup_data_submission": { + "base": 11, + "multiplier": 11 + }, + "sudo_address_change": { + "base": 12, + "multiplier": 12 + }, + "transfer": { + "base": 13, + "multiplier": 13 + }, + "validator_update": { + "base": 14, + "multiplier": 14 + } + }) + } + + fn write_all_the_fees(mut state: S) { + state + .put_bridge_lock_fees(BridgeLockFeeComponents { + base: 1, + multiplier: 1, + }) + .unwrap(); + state + .put_bridge_unlock_fees(BridgeUnlockFeeComponents { + base: 2, + multiplier: 2, + }) + .unwrap(); + state + .put_bridge_sudo_change_fees(BridgeSudoChangeFeeComponents { + base: 3, + multiplier: 3, + }) + .unwrap(); + state + .put_fee_asset_change_fees(FeeAssetChangeFeeComponents { + base: 4, + multiplier: 4, + }) + .unwrap(); + state + .put_fee_change_fees(FeeChangeFeeComponents { + base: 5, + multiplier: 5, + }) + .unwrap(); + state + .put_init_bridge_account_fees(InitBridgeAccountFeeComponents { + base: 6, + multiplier: 6, + }) + .unwrap(); + state + .put_ibc_relay_fees(IbcRelayFeeComponents { + base: 7, + multiplier: 7, + }) + .unwrap(); + state + .put_ibc_relayer_change_fees(IbcRelayerChangeFeeComponents { + base: 8, + multiplier: 8, + }) + .unwrap(); + state + .put_ibc_sudo_change_fees(IbcSudoChangeFeeComponents { + base: 9, + multiplier: 9, + }) + .unwrap(); + state + .put_ics20_withdrawal_fees(Ics20WithdrawalFeeComponents { + base: 10, + multiplier: 10, + }) + .unwrap(); + state + .put_rollup_data_submission_fees(RollupDataSubmissionFeeComponents { + base: 11, + multiplier: 11, + }) + .unwrap(); + state + .put_sudo_address_change_fees(SudoAddressChangeFeeComponents { + base: 12, + multiplier: 12, + }) + .unwrap(); + state + .put_transfer_fees(TransferFeeComponents { + base: 13, + multiplier: 13, + }) + .unwrap(); + state + .put_validator_update_fees(ValidatorUpdateFeeComponents { + base: 14, + multiplier: 14, + }) + .unwrap(); + } } From fc10a63a82d2854420271f3b03268e31e40b1cd7 Mon Sep 17 00:00:00 2001 From: Richard Janis Goldschmidt Date: Thu, 5 Dec 2024 19:21:19 +0100 Subject: [PATCH 15/16] fix(ci, core)!: ensure committed and code generated from protobuf spec match (#1825) ## Summary Deletes and regenerates all code in `astria-core/src/generated`. Fixes bad imports by nesting generated Astria APIs under a new `astria` module. Fixes badly named modules. ## Background https://github.com/astriaorg/astria/pull/1236 noticed that some protobuf files were skipped during code generation because of a `tonic_build::Builder::extern_path` statement. This showed up again when reworking the protobuf compilation tool to first clear the target directory for storing the generated rust files, where now an `include!` statement in `astria_core::generated` failed because the file was not in fact generated. This was not detected because the file was still committed to the repository at an earlier point. https://github.com/astriaorg/astria/pull/1707 then added new generated code under a wrongly named `optimistic_block` module, which should have been named `optimistic` to be in line with its protobuf package counterpart. The present change is primarily to the `tools/protobuf-compiler` binary, which first purges the output directory (minus the handwritten `mod.rs`) before generating new code. ## Changes - Update `tools/protobuf-compiler` to clear `astria-core/src/generated` prior to repopulating it from `proto/` - Remove the module `sequencerblock::optimisticblock` - Add module `sequencerblock::optimistic` - Update all services that import Astria APIs from `astria_core::generated` to `astria_core::generated::astria`. ## Testing This is just code organization. Import paths were updated, code still compiles and tests pass. ## Changelogs Changelogs updated. ## Breaking Changelist - This is a breaking change for all consumers of `astria_core` that now need to import many items from `astria_core::generated::astria` that were directly under `astria_core::generated` before. ## Override Freeze This code touches services by changing their imports (`astria_core::generated -> astria_core::generated::astria`) but does change any implementation details. ## Related Issues Fixes and amends https://github.com/astriaorg/astria/pull/1707. Supersedes https://github.com/astriaorg/astria/pull/1824 Closes https://github.com/astriaorg/astria/issues/1823 --- .../src/bridge_withdrawer/mod.rs | 2 +- .../src/bridge_withdrawer/startup.rs | 19 +- .../bridge_withdrawer/submitter/builder.rs | 2 +- .../src/bridge_withdrawer/submitter/mod.rs | 2 +- .../tests/blackbox/helpers/mock_cometbft.rs | 2 +- .../tests/blackbox/helpers/mock_sequencer.rs | 2 +- .../src/sequencer/threshold/sign.rs | 2 +- .../src/sequencer/threshold/verify.rs | 2 +- crates/astria-composer/src/collectors/grpc.rs | 2 +- .../astria-composer/src/executor/builder.rs | 2 +- crates/astria-composer/src/executor/mod.rs | 2 +- crates/astria-composer/src/grpc.rs | 2 +- .../tests/blackbox/grpc_collector.rs | 2 +- .../blackbox/helper/mock_grpc_sequencer.rs | 2 +- .../tests/blackbox/helper/mod.rs | 2 +- .../src/celestia/block_verifier.rs | 2 +- .../astria-conductor/src/celestia/convert.rs | 2 +- .../astria-conductor/src/executor/client.rs | 2 +- crates/astria-conductor/src/executor/state.rs | 2 +- crates/astria-conductor/src/executor/tests.rs | 2 +- .../astria-conductor/src/sequencer/client.rs | 2 +- .../tests/blackbox/firm_only.rs | 2 +- .../tests/blackbox/helpers/macros.rs | 14 +- .../tests/blackbox/helpers/mock_grpc.rs | 2 +- .../tests/blackbox/helpers/mod.rs | 12 +- .../tests/blackbox/soft_only.rs | 2 +- crates/astria-core/CHANGELOG.md | 6 + crates/astria-core/src/execution/v1/mod.rs | 8 +- .../astria.protocol.transaction.v1.rs | 2 +- .../astria.protocol.transaction.v1alpha1.rs | 2 +- ...sequencerblock.optimisticblock.v1alpha1.rs | 516 ------------------ ...cerblock.optimisticblock.v1alpha1.serde.rs | 460 ---------------- crates/astria-core/src/generated/mod.rs | 206 +++---- crates/astria-core/src/primitive/v1/mod.rs | 2 +- crates/astria-core/src/primitive/v1/u128.rs | 5 +- .../astria-core/src/protocol/account/mod.rs | 2 - .../src/protocol/account/v1/mod.rs | 10 +- crates/astria-core/src/protocol/asset/mod.rs | 2 - .../astria-core/src/protocol/asset/v1/mod.rs | 12 +- crates/astria-core/src/protocol/bridge/mod.rs | 2 +- crates/astria-core/src/protocol/fees/v1.rs | 2 +- crates/astria-core/src/protocol/genesis/v1.rs | 2 +- crates/astria-core/src/protocol/memos/v1.rs | 2 +- .../src/protocol/transaction/v1/mod.rs | 2 +- .../src/sequencerblock/v1/block.rs | 7 +- .../astria-core/src/sequencerblock/v1/mod.rs | 2 +- .../src/extension_trait.rs | 24 +- .../astria-sequencer-client/src/tests/http.rs | 12 +- .../src/relayer/builder.rs | 2 +- .../src/relayer/mod.rs | 2 +- .../src/relayer/read.rs | 2 +- .../src/relayer/write/conversion.rs | 2 +- .../blackbox/helpers/mock_sequencer_server.rs | 2 +- .../astria-sequencer-utils/src/blob_parser.rs | 2 +- .../src/genesis_example.rs | 6 +- .../src/app/benchmark_and_test_utils.rs | 8 +- crates/astria-sequencer/src/app/benchmarks.rs | 2 +- crates/astria-sequencer/src/app/mod.rs | 2 +- .../astria-sequencer/src/app/tests_app/mod.rs | 2 +- .../src/app/tests_breaking_changes.rs | 2 +- .../src/app/tests_execute_transaction.rs | 4 +- crates/astria-sequencer/src/bridge/query.rs | 2 +- crates/astria-sequencer/src/fees/query.rs | 2 +- crates/astria-sequencer/src/fees/tests.rs | 2 +- crates/astria-sequencer/src/grpc/sequencer.rs | 2 +- crates/astria-sequencer/src/sequencer.rs | 2 +- .../astria-sequencer/src/service/consensus.rs | 16 +- .../astria-sequencer/src/service/info/mod.rs | 6 +- .../src/service/mempool/mod.rs | 2 +- tools/protobuf-compiler/CHANGELOG.md | 15 + tools/protobuf-compiler/src/main.rs | 50 +- 71 files changed, 295 insertions(+), 1221 deletions(-) delete mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs delete mode 100644 crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs create mode 100644 tools/protobuf-compiler/CHANGELOG.md diff --git a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/mod.rs b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/mod.rs index b1aa923f72..aeb0f1a721 100644 --- a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/mod.rs +++ b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/mod.rs @@ -4,7 +4,7 @@ use std::{ time::Duration, }; -use astria_core::generated::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; +use astria_core::generated::astria::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; use astria_eyre::eyre::{ self, WrapErr as _, diff --git a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/startup.rs b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/startup.rs index 033b53f0a2..c80c170cab 100644 --- a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/startup.rs +++ b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/startup.rs @@ -4,7 +4,7 @@ use std::{ }; use astria_core::{ - generated::sequencerblock::v1::sequencer_service_client::{ + generated::astria::sequencerblock::v1::sequencer_service_client::{ self, SequencerServiceClient, }, @@ -270,20 +270,21 @@ impl Startup { the sequencer logic." ); - let proto_tx = astria_core::generated::protocol::transaction::v1::Transaction::decode( - &*last_transaction.tx, - ) - .wrap_err_with(|| { - format!( + let proto_tx = + astria_core::generated::astria::protocol::transaction::v1::Transaction::decode( + &*last_transaction.tx, + ) + .wrap_err_with(|| { + format!( "failed to decode data in Sequencer CometBFT transaction as `{}`", - astria_core::generated::protocol::transaction::v1::Transaction::full_name(), + astria_core::generated::astria::protocol::transaction::v1::Transaction::full_name(), ) - })?; + })?; let tx = Transaction::try_from_raw(proto_tx).wrap_err_with(|| { format!( "failed to verify {}", - astria_core::generated::protocol::transaction::v1::Transaction::full_name() + astria_core::generated::astria::protocol::transaction::v1::Transaction::full_name() ) })?; diff --git a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/builder.rs b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/builder.rs index 7b5593a0aa..62308d1572 100644 --- a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/builder.rs +++ b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/builder.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use astria_core::generated::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; +use astria_core::generated::astria::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; use astria_eyre::eyre::{ self, Context as _, diff --git a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs index 13f6b8c22e..78a38bf50b 100644 --- a/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs +++ b/crates/astria-bridge-withdrawer/src/bridge_withdrawer/submitter/mod.rs @@ -4,7 +4,7 @@ use std::{ }; use astria_core::{ - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_client::{ self, SequencerServiceClient, diff --git a/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_cometbft.rs b/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_cometbft.rs index c3f23d53fc..f0e4d0cef4 100644 --- a/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_cometbft.rs +++ b/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_cometbft.rs @@ -332,7 +332,7 @@ fn prepare_broadcast_tx_sync_response(response: tx_sync::Response) -> Mock { /// Convert a wiremock request to an astria transaction pub fn tx_from_request(request: &wiremock::Request) -> Transaction { - use astria_core::generated::protocol::transaction::v1::Transaction as RawTransaction; + use astria_core::generated::astria::protocol::transaction::v1::Transaction as RawTransaction; use prost::Message as _; let wrapped_tx_sync_req: tendermint_rpc::request::Wrapper = diff --git a/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_sequencer.rs b/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_sequencer.rs index 66dc282e31..9a2971b790 100644 --- a/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_sequencer.rs +++ b/crates/astria-bridge-withdrawer/tests/blackbox/helpers/mock_sequencer.rs @@ -5,7 +5,7 @@ use std::{ use astria_core::{ self, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_server::{ SequencerService, SequencerServiceServer, diff --git a/crates/astria-cli/src/sequencer/threshold/sign.rs b/crates/astria-cli/src/sequencer/threshold/sign.rs index 93e65987fc..b5a3830f24 100644 --- a/crates/astria-cli/src/sequencer/threshold/sign.rs +++ b/crates/astria-cli/src/sequencer/threshold/sign.rs @@ -1,6 +1,6 @@ use std::collections::BTreeMap; -use astria_core::generated::protocol::transaction::v1::{ +use astria_core::generated::astria::protocol::transaction::v1::{ Transaction, TransactionBody, }; diff --git a/crates/astria-cli/src/sequencer/threshold/verify.rs b/crates/astria-cli/src/sequencer/threshold/verify.rs index f616cb4475..ec4d027b46 100644 --- a/crates/astria-cli/src/sequencer/threshold/verify.rs +++ b/crates/astria-cli/src/sequencer/threshold/verify.rs @@ -1,4 +1,4 @@ -use astria_core::generated::protocol::transaction::v1::TransactionBody; +use astria_core::generated::astria::protocol::transaction::v1::TransactionBody; use color_eyre::eyre::{ self, WrapErr as _, diff --git a/crates/astria-composer/src/collectors/grpc.rs b/crates/astria-composer/src/collectors/grpc.rs index 18d95adb93..deeb580546 100644 --- a/crates/astria-composer/src/collectors/grpc.rs +++ b/crates/astria-composer/src/collectors/grpc.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use astria_core::{ - generated::composer::v1::{ + generated::astria::composer::v1::{ grpc_collector_service_server::GrpcCollectorService, SubmitRollupTransactionRequest, SubmitRollupTransactionResponse, diff --git a/crates/astria-composer/src/executor/builder.rs b/crates/astria-composer/src/executor/builder.rs index c388a63121..31a8ee04fa 100644 --- a/crates/astria-composer/src/executor/builder.rs +++ b/crates/astria-composer/src/executor/builder.rs @@ -6,7 +6,7 @@ use std::{ use astria_core::{ crypto::SigningKey, - generated::sequencerblock::v1::sequencer_service_client::SequencerServiceClient, + generated::astria::sequencerblock::v1::sequencer_service_client::SequencerServiceClient, primitive::v1::Address, protocol::transaction::v1::action::RollupDataSubmission, }; diff --git a/crates/astria-composer/src/executor/mod.rs b/crates/astria-composer/src/executor/mod.rs index a07b2e4fe6..62ed88e966 100644 --- a/crates/astria-composer/src/executor/mod.rs +++ b/crates/astria-composer/src/executor/mod.rs @@ -12,7 +12,7 @@ use std::{ use astria_core::{ crypto::SigningKey, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_client::{ self, SequencerServiceClient, diff --git a/crates/astria-composer/src/grpc.rs b/crates/astria-composer/src/grpc.rs index f9453b36ef..7c1d3b8ef1 100644 --- a/crates/astria-composer/src/grpc.rs +++ b/crates/astria-composer/src/grpc.rs @@ -9,7 +9,7 @@ use std::net::SocketAddr; use astria_core::{ - generated::composer::v1::grpc_collector_service_server::GrpcCollectorServiceServer, + generated::astria::composer::v1::grpc_collector_service_server::GrpcCollectorServiceServer, primitive::v1::asset, }; use astria_eyre::{ diff --git a/crates/astria-composer/tests/blackbox/grpc_collector.rs b/crates/astria-composer/tests/blackbox/grpc_collector.rs index f8286a25d8..18767ab0ab 100644 --- a/crates/astria-composer/tests/blackbox/grpc_collector.rs +++ b/crates/astria-composer/tests/blackbox/grpc_collector.rs @@ -1,7 +1,7 @@ use std::time::Duration; use astria_core::{ - generated::composer::v1::{ + generated::astria::composer::v1::{ grpc_collector_service_client::GrpcCollectorServiceClient, SubmitRollupTransactionRequest, }, diff --git a/crates/astria-composer/tests/blackbox/helper/mock_grpc_sequencer.rs b/crates/astria-composer/tests/blackbox/helper/mock_grpc_sequencer.rs index 23be34c31a..0897610967 100644 --- a/crates/astria-composer/tests/blackbox/helper/mock_grpc_sequencer.rs +++ b/crates/astria-composer/tests/blackbox/helper/mock_grpc_sequencer.rs @@ -5,7 +5,7 @@ use std::{ use astria_core::{ self, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_server::{ SequencerService, SequencerServiceServer, diff --git a/crates/astria-composer/tests/blackbox/helper/mod.rs b/crates/astria-composer/tests/blackbox/helper/mod.rs index 93f7f6a1a7..fca7da0f41 100644 --- a/crates/astria-composer/tests/blackbox/helper/mod.rs +++ b/crates/astria-composer/tests/blackbox/helper/mod.rs @@ -207,7 +207,7 @@ pub async fn loop_until_composer_is_ready(addr: SocketAddr) { } fn signed_tx_from_request(request: &Request) -> Transaction { - use astria_core::generated::protocol::transaction::v1::Transaction as RawTransaction; + use astria_core::generated::astria::protocol::transaction::v1::Transaction as RawTransaction; use prost::Message as _; let wrapped_tx_sync_req: request::Wrapper = diff --git a/crates/astria-conductor/src/celestia/block_verifier.rs b/crates/astria-conductor/src/celestia/block_verifier.rs index ff72aa8a7c..7b580b954e 100644 --- a/crates/astria-conductor/src/celestia/block_verifier.rs +++ b/crates/astria-conductor/src/celestia/block_verifier.rs @@ -221,7 +221,7 @@ mod tests { use std::collections::BTreeMap; use astria_core::{ - generated::sequencerblock::v1::SequencerBlockHeader as RawSequencerBlockHeader, + generated::astria::sequencerblock::v1::SequencerBlockHeader as RawSequencerBlockHeader, primitive::v1::RollupId, sequencerblock::v1::{ block::SequencerBlockHeader, diff --git a/crates/astria-conductor/src/celestia/convert.rs b/crates/astria-conductor/src/celestia/convert.rs index c2772d4f15..02861136d1 100644 --- a/crates/astria-conductor/src/celestia/convert.rs +++ b/crates/astria-conductor/src/celestia/convert.rs @@ -1,6 +1,6 @@ use astria_core::{ brotli::decompress_bytes, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ SubmittedMetadataList, SubmittedRollupDataList, }, diff --git a/crates/astria-conductor/src/executor/client.rs b/crates/astria-conductor/src/executor/client.rs index bbd0b550cf..1bab377d97 100644 --- a/crates/astria-conductor/src/executor/client.rs +++ b/crates/astria-conductor/src/executor/client.rs @@ -6,7 +6,7 @@ use astria_core::{ CommitmentState, GenesisInfo, }, - generated::{ + generated::astria::{ execution::{ v1 as raw, v1::execution_service_client::ExecutionServiceClient, diff --git a/crates/astria-conductor/src/executor/state.rs b/crates/astria-conductor/src/executor/state.rs index bfe794e6c1..2ae4e2c4b2 100644 --- a/crates/astria-conductor/src/executor/state.rs +++ b/crates/astria-conductor/src/executor/state.rs @@ -344,7 +344,7 @@ pub(super) fn map_sequencer_height_to_rollup_height( #[cfg(test)] mod tests { use astria_core::{ - generated::execution::v1 as raw, + generated::astria::execution::v1 as raw, Protobuf as _, }; use pbjson_types::Timestamp; diff --git a/crates/astria-conductor/src/executor/tests.rs b/crates/astria-conductor/src/executor/tests.rs index 164d8b0a20..e8ead9dc71 100644 --- a/crates/astria-conductor/src/executor/tests.rs +++ b/crates/astria-conductor/src/executor/tests.rs @@ -5,7 +5,7 @@ use astria_core::{ CommitmentState, GenesisInfo, }, - generated::execution::v1 as raw, + generated::astria::execution::v1 as raw, Protobuf as _, }; use bytes::Bytes; diff --git a/crates/astria-conductor/src/sequencer/client.rs b/crates/astria-conductor/src/sequencer/client.rs index 760a5ede27..e0e61d2229 100644 --- a/crates/astria-conductor/src/sequencer/client.rs +++ b/crates/astria-conductor/src/sequencer/client.rs @@ -3,7 +3,7 @@ use std::time::Duration; use astria_core::{ - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_client::SequencerServiceClient, GetFilteredSequencerBlockRequest, }, diff --git a/crates/astria-conductor/tests/blackbox/firm_only.rs b/crates/astria-conductor/tests/blackbox/firm_only.rs index 2fb2c43148..e634292a1c 100644 --- a/crates/astria-conductor/tests/blackbox/firm_only.rs +++ b/crates/astria-conductor/tests/blackbox/firm_only.rs @@ -5,7 +5,7 @@ use astria_conductor::{ Conductor, Config, }; -use astria_core::generated::execution::v1::{ +use astria_core::generated::astria::execution::v1::{ GetCommitmentStateRequest, GetGenesisInfoRequest, }; diff --git a/crates/astria-conductor/tests/blackbox/helpers/macros.rs b/crates/astria-conductor/tests/blackbox/helpers/macros.rs index 4119fe1bf6..981f4c31dc 100644 --- a/crates/astria-conductor/tests/blackbox/helpers/macros.rs +++ b/crates/astria-conductor/tests/blackbox/helpers/macros.rs @@ -1,7 +1,7 @@ #[macro_export] macro_rules! block { (number: $number:expr,hash: $hash:expr,parent: $parent:expr $(,)?) => { - ::astria_core::generated::execution::v1::Block { + ::astria_core::generated::astria::execution::v1::Block { number: $number, hash: ::bytes::Bytes::from(Vec::from($hash)), parent_block_hash: ::bytes::Bytes::from(Vec::from($parent)), @@ -59,7 +59,7 @@ macro_rules! commitment_state { soft: (number: $soft_number:expr,hash: $soft_hash:expr,parent: $soft_parent:expr $(,)?), base_celestia_height: $base_celestia_height:expr $(,)? ) => { - ::astria_core::generated::execution::v1::CommitmentState { + ::astria_core::generated::astria::execution::v1::CommitmentState { firm: Some($crate::block!( number: $firm_number, hash: $firm_hash, @@ -98,7 +98,7 @@ macro_rules! genesis_info { $sequencer_height:expr,celestia_block_variance: $variance:expr $(,)? ) => { - ::astria_core::generated::execution::v1::GenesisInfo { + ::astria_core::generated::astria::execution::v1::GenesisInfo { rollup_id: Some($crate::ROLLUP_ID.to_raw()), sequencer_genesis_block_height: $sequencer_height, celestia_block_variance: $variance, @@ -312,7 +312,7 @@ macro_rules! mount_get_filtered_sequencer_block { ($test_env:ident, sequencer_height: $height:expr, delay: $delay:expr $(,)?) => { $test_env .mount_get_filtered_sequencer_block( - ::astria_core::generated::sequencerblock::v1::GetFilteredSequencerBlockRequest { + ::astria_core::generated::astria::sequencerblock::v1::GetFilteredSequencerBlockRequest { height: $height, rollup_ids: vec![$crate::ROLLUP_ID.to_raw()], }, @@ -385,12 +385,12 @@ macro_rules! mount_get_block { hash: $hash, parent: $parent, ); - let identifier = ::astria_core::generated::execution::v1::BlockIdentifier { + let identifier = ::astria_core::generated::astria::execution::v1::BlockIdentifier { identifier: Some( - ::astria_core::generated::execution::v1::block_identifier::Identifier::BlockNumber(block.number) + ::astria_core::generated::astria::execution::v1::block_identifier::Identifier::BlockNumber(block.number) )}; $test_env.mount_get_block( - ::astria_core::generated::execution::v1::GetBlockRequest { + ::astria_core::generated::astria::execution::v1::GetBlockRequest { identifier: Some(identifier), }, block, diff --git a/crates/astria-conductor/tests/blackbox/helpers/mock_grpc.rs b/crates/astria-conductor/tests/blackbox/helpers/mock_grpc.rs index c0b8b7ff2f..457ef04e3d 100644 --- a/crates/astria-conductor/tests/blackbox/helpers/mock_grpc.rs +++ b/crates/astria-conductor/tests/blackbox/helpers/mock_grpc.rs @@ -3,7 +3,7 @@ use std::{ sync::Arc, }; -use astria_core::generated::{ +use astria_core::generated::astria::{ execution::v1::{ execution_service_server::{ ExecutionService, diff --git a/crates/astria-conductor/tests/blackbox/helpers/mod.rs b/crates/astria-conductor/tests/blackbox/helpers/mod.rs index da7dad5061..8890bc3f20 100644 --- a/crates/astria-conductor/tests/blackbox/helpers/mod.rs +++ b/crates/astria-conductor/tests/blackbox/helpers/mod.rs @@ -12,7 +12,7 @@ use astria_conductor::{ }; use astria_core::{ brotli::compress_bytes, - generated::{ + generated::astria::{ execution::v1::{ Block, CommitmentState, @@ -179,7 +179,7 @@ impl TestConductor { pub async fn mount_get_block( &self, expected_pbjson: S, - block: astria_core::generated::execution::v1::Block, + block: astria_core::generated::astria::execution::v1::Block, ) { use astria_grpc_mock::{ matcher::message_partial_pbjson, @@ -306,7 +306,7 @@ impl TestConductor { } pub async fn mount_get_genesis_info(&self, genesis_info: GenesisInfo) { - use astria_core::generated::execution::v1::GetGenesisInfoRequest; + use astria_core::generated::astria::execution::v1::GetGenesisInfoRequest; astria_grpc_mock::Mock::for_rpc_given( "get_genesis_info", astria_grpc_mock::matcher::message_type::(), @@ -318,7 +318,7 @@ impl TestConductor { } pub async fn mount_get_commitment_state(&self, commitment_state: CommitmentState) { - use astria_core::generated::execution::v1::GetCommitmentStateRequest; + use astria_core::generated::astria::execution::v1::GetCommitmentStateRequest; astria_grpc_mock::Mock::for_rpc_given( "get_commitment_state", @@ -381,7 +381,7 @@ impl TestConductor { commitment_state: CommitmentState, expected_calls: u64, ) -> astria_grpc_mock::MockGuard { - use astria_core::generated::execution::v1::UpdateCommitmentStateRequest; + use astria_core::generated::astria::execution::v1::UpdateCommitmentStateRequest; use astria_grpc_mock::{ matcher::message_partial_pbjson, response::constant_response, @@ -567,7 +567,7 @@ pub struct Blobs { #[must_use] pub fn make_blobs(heights: &[u32]) -> Blobs { - use astria_core::generated::sequencerblock::v1::{ + use astria_core::generated::astria::sequencerblock::v1::{ SubmittedMetadataList, SubmittedRollupDataList, }; diff --git a/crates/astria-conductor/tests/blackbox/soft_only.rs b/crates/astria-conductor/tests/blackbox/soft_only.rs index e82793c638..8fff4e8c1c 100644 --- a/crates/astria-conductor/tests/blackbox/soft_only.rs +++ b/crates/astria-conductor/tests/blackbox/soft_only.rs @@ -5,7 +5,7 @@ use astria_conductor::{ Conductor, Config, }; -use astria_core::generated::execution::v1::{ +use astria_core::generated::astria::execution::v1::{ GetCommitmentStateRequest, GetGenesisInfoRequest, }; diff --git a/crates/astria-core/CHANGELOG.md b/crates/astria-core/CHANGELOG.md index 68610fc818..0477f1767c 100644 --- a/crates/astria-core/CHANGELOG.md +++ b/crates/astria-core/CHANGELOG.md @@ -24,6 +24,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved definitions of address domain type to `astria-core-address` and reexported items using the same aliases [#1802](https://github.com/astriaorg/astria/pull/1802) +### Changed + +- Move all Astria APIs generated from the Protobuf spec from `astria_core::generated` + to `astria_core::generated::astria` + [#1825](https://github.com/astriaorg/astria/pull/1825) + ### Removed - Removed method `TracePrefixed::last_channel` [#1768](https://github.com/astriaorg/astria/pull/1768) diff --git a/crates/astria-core/src/execution/v1/mod.rs b/crates/astria-core/src/execution/v1/mod.rs index 6daca96a42..3327cd0edc 100644 --- a/crates/astria-core/src/execution/v1/mod.rs +++ b/crates/astria-core/src/execution/v1/mod.rs @@ -2,7 +2,7 @@ use bytes::Bytes; use pbjson_types::Timestamp; use crate::{ - generated::execution::v1 as raw, + generated::astria::execution::v1 as raw, primitive::v1::{ IncorrectRollupIdLength, RollupId, @@ -43,7 +43,7 @@ enum GenesisInfoErrorKind { #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[cfg_attr( feature = "serde", - serde(into = "crate::generated::execution::v1::GenesisInfo") + serde(into = "crate::generated::astria::execution::v1::GenesisInfo") )] pub struct GenesisInfo { /// The rollup id which is used to identify the rollup txs. @@ -148,7 +148,7 @@ enum BlockErrorKind { #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[cfg_attr( feature = "serde", - serde(into = "crate::generated::execution::v1::Block") + serde(into = "crate::generated::astria::execution::v1::Block") )] pub struct Block { /// The block number @@ -380,7 +380,7 @@ impl CommitmentStateBuilder { #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[cfg_attr( feature = "serde", - serde(into = "crate::generated::execution::v1::CommitmentState") + serde(into = "crate::generated::astria::execution::v1::CommitmentState") )] pub struct CommitmentState { /// Soft commitment is the rollup block matching latest sequencer block. diff --git a/crates/astria-core/src/generated/astria.protocol.transaction.v1.rs b/crates/astria-core/src/generated/astria.protocol.transaction.v1.rs index 6bd2ba2fdc..0b38628394 100644 --- a/crates/astria-core/src/generated/astria.protocol.transaction.v1.rs +++ b/crates/astria-core/src/generated/astria.protocol.transaction.v1.rs @@ -36,7 +36,7 @@ pub mod action { SudoAddressChange(super::SudoAddressChange), #[prost(message, tag = "51")] ValidatorUpdate( - crate::generated::astria_vendored::tendermint::abci::ValidatorUpdate, + super::super::super::super::super::astria_vendored::tendermint::abci::ValidatorUpdate, ), #[prost(message, tag = "52")] IbcRelayerChange(super::IbcRelayerChange), diff --git a/crates/astria-core/src/generated/astria.protocol.transaction.v1alpha1.rs b/crates/astria-core/src/generated/astria.protocol.transaction.v1alpha1.rs index 75c1bf44b4..a310970f2b 100644 --- a/crates/astria-core/src/generated/astria.protocol.transaction.v1alpha1.rs +++ b/crates/astria-core/src/generated/astria.protocol.transaction.v1alpha1.rs @@ -36,7 +36,7 @@ pub mod action { SudoAddressChange(super::SudoAddressChange), #[prost(message, tag = "51")] ValidatorUpdate( - crate::generated::astria_vendored::tendermint::abci::ValidatorUpdate, + super::super::super::super::super::astria_vendored::tendermint::abci::ValidatorUpdate, ), #[prost(message, tag = "52")] IbcRelayerChange(super::IbcRelayerChange), diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs deleted file mode 100644 index 612e5c9fcf..0000000000 --- a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.rs +++ /dev/null @@ -1,516 +0,0 @@ -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetBlockCommitmentStreamRequest {} -impl ::prost::Name for GetBlockCommitmentStreamRequest { - const NAME: &'static str = "GetBlockCommitmentStreamRequest"; - const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME - ) - } -} -/// Identifying metadata for blocks that have been successfully committed in the Sequencer. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SequencerBlockCommit { - /// Height of the sequencer block that was committed. - #[prost(uint64, tag = "1")] - pub height: u64, - /// Hash of the sequencer block that was committed. - #[prost(bytes = "bytes", tag = "2")] - pub block_hash: ::prost::bytes::Bytes, -} -impl ::prost::Name for SequencerBlockCommit { - const NAME: &'static str = "SequencerBlockCommit"; - const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME - ) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetBlockCommitmentStreamResponse { - #[prost(message, optional, tag = "1")] - pub commitment: ::core::option::Option, -} -impl ::prost::Name for GetBlockCommitmentStreamResponse { - const NAME: &'static str = "GetBlockCommitmentStreamResponse"; - const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME - ) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetOptimisticBlockStreamRequest { - /// The rollup id for which the Sequencer block is being streamed. - #[prost(message, optional, tag = "1")] - pub rollup_id: ::core::option::Option, -} -impl ::prost::Name for GetOptimisticBlockStreamRequest { - const NAME: &'static str = "GetOptimisticBlockStreamRequest"; - const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME - ) - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetOptimisticBlockStreamResponse { - /// The optimistic Sequencer block that is being streamed, filtered for the provided rollup id. - #[prost(message, optional, tag = "1")] - pub block: ::core::option::Option, -} -impl ::prost::Name for GetOptimisticBlockStreamResponse { - const NAME: &'static str = "GetOptimisticBlockStreamResponse"; - const PACKAGE: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1"; - fn full_name() -> ::prost::alloc::string::String { - ::prost::alloc::format!( - "astria.sequencerblock.optimisticblock.v1alpha1.{}", Self::NAME - ) - } -} -/// Generated client implementations. -#[cfg(feature = "client")] -pub mod optimistic_block_service_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - /// The Sequencer will serve this to the aucitoneer - #[derive(Debug, Clone)] - pub struct OptimisticBlockServiceClient { - inner: tonic::client::Grpc, - } - impl OptimisticBlockServiceClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl OptimisticBlockServiceClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> OptimisticBlockServiceClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + Send + Sync, - { - OptimisticBlockServiceClient::new( - InterceptedService::new(inner, interceptor), - ) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided - /// rollup id) to the Auctioneer. - pub async fn get_optimistic_block_stream( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response< - tonic::codec::Streaming, - >, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService", - "GetOptimisticBlockStream", - ), - ); - self.inner.server_streaming(req, path, codec).await - } - /// The Sequencer will stream the block commits to the Auctioneer. - pub async fn get_block_commitment_stream( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response< - tonic::codec::Streaming, - >, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService", - "GetBlockCommitmentStream", - ), - ); - self.inner.server_streaming(req, path, codec).await - } - } -} -/// Generated server implementations. -#[cfg(feature = "server")] -pub mod optimistic_block_service_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with OptimisticBlockServiceServer. - #[async_trait] - pub trait OptimisticBlockService: Send + Sync + 'static { - /// Server streaming response type for the GetOptimisticBlockStream method. - type GetOptimisticBlockStreamStream: tonic::codegen::tokio_stream::Stream< - Item = std::result::Result< - super::GetOptimisticBlockStreamResponse, - tonic::Status, - >, - > - + Send - + 'static; - /// The Sequencer will stream the optimistic Sequencer block (filtered for the provided - /// rollup id) to the Auctioneer. - async fn get_optimistic_block_stream( - self: std::sync::Arc, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Server streaming response type for the GetBlockCommitmentStream method. - type GetBlockCommitmentStreamStream: tonic::codegen::tokio_stream::Stream< - Item = std::result::Result< - super::GetBlockCommitmentStreamResponse, - tonic::Status, - >, - > - + Send - + 'static; - /// The Sequencer will stream the block commits to the Auctioneer. - async fn get_block_commitment_stream( - self: std::sync::Arc, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - /// The Sequencer will serve this to the aucitoneer - #[derive(Debug)] - pub struct OptimisticBlockServiceServer { - inner: _Inner, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - struct _Inner(Arc); - impl OptimisticBlockServiceServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - let inner = _Inner(inner); - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> - for OptimisticBlockServiceServer - where - T: OptimisticBlockService, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - let inner = self.inner.clone(); - match req.uri().path() { - "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetOptimisticBlockStream" => { - #[allow(non_camel_case_types)] - struct GetOptimisticBlockStreamSvc( - pub Arc, - ); - impl< - T: OptimisticBlockService, - > tonic::server::ServerStreamingService< - super::GetOptimisticBlockStreamRequest, - > for GetOptimisticBlockStreamSvc { - type Response = super::GetOptimisticBlockStreamResponse; - type ResponseStream = T::GetOptimisticBlockStreamStream; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::GetOptimisticBlockStreamRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_optimistic_block_stream( - inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let inner = inner.0; - let method = GetOptimisticBlockStreamSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.server_streaming(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService/GetBlockCommitmentStream" => { - #[allow(non_camel_case_types)] - struct GetBlockCommitmentStreamSvc( - pub Arc, - ); - impl< - T: OptimisticBlockService, - > tonic::server::ServerStreamingService< - super::GetBlockCommitmentStreamRequest, - > for GetBlockCommitmentStreamSvc { - type Response = super::GetBlockCommitmentStreamResponse; - type ResponseStream = T::GetBlockCommitmentStreamStream; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::GetBlockCommitmentStreamRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_block_commitment_stream( - inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let inner = inner.0; - let method = GetBlockCommitmentStreamSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.server_streaming(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", "12") - .header("content-type", "application/grpc") - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } - } - impl Clone for OptimisticBlockServiceServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - impl Clone for _Inner { - fn clone(&self) -> Self { - Self(Arc::clone(&self.0)) - } - } - impl std::fmt::Debug for _Inner { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self.0) - } - } - impl tonic::server::NamedService - for OptimisticBlockServiceServer { - const NAME: &'static str = "astria.sequencerblock.optimisticblock.v1alpha1.OptimisticBlockService"; - } -} diff --git a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs b/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs deleted file mode 100644 index bc159c576f..0000000000 --- a/crates/astria-core/src/generated/astria.sequencerblock.optimisticblock.v1alpha1.serde.rs +++ /dev/null @@ -1,460 +0,0 @@ -impl serde::Serialize for GetBlockCommitmentStreamRequest { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let len = 0; - let struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest", len)?; - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamRequest { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - Err(serde::de::Error::unknown_field(value, FIELDS)) - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetBlockCommitmentStreamRequest; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - while map_.next_key::()?.is_some() { - let _ = map_.next_value::()?; - } - Ok(GetBlockCommitmentStreamRequest { - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamRequest", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GetBlockCommitmentStreamResponse { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.commitment.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse", len)?; - if let Some(v) = self.commitment.as_ref() { - struct_ser.serialize_field("commitment", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetBlockCommitmentStreamResponse { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "commitment", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Commitment, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "commitment" => Ok(GeneratedField::Commitment), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetBlockCommitmentStreamResponse; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut commitment__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Commitment => { - if commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("commitment")); - } - commitment__ = map_.next_value()?; - } - } - } - Ok(GetBlockCommitmentStreamResponse { - commitment: commitment__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetBlockCommitmentStreamResponse", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GetOptimisticBlockStreamRequest { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.rollup_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest", len)?; - if let Some(v) = self.rollup_id.as_ref() { - struct_ser.serialize_field("rollupId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamRequest { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "rollup_id", - "rollupId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - RollupId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "rollupId" | "rollup_id" => Ok(GeneratedField::RollupId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetOptimisticBlockStreamRequest; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut rollup_id__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::RollupId => { - if rollup_id__.is_some() { - return Err(serde::de::Error::duplicate_field("rollupId")); - } - rollup_id__ = map_.next_value()?; - } - } - } - Ok(GetOptimisticBlockStreamRequest { - rollup_id: rollup_id__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamRequest", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GetOptimisticBlockStreamResponse { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.block.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse", len)?; - if let Some(v) = self.block.as_ref() { - struct_ser.serialize_field("block", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GetOptimisticBlockStreamResponse { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "block", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Block, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "block" => Ok(GeneratedField::Block), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GetOptimisticBlockStreamResponse; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut block__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Block => { - if block__.is_some() { - return Err(serde::de::Error::duplicate_field("block")); - } - block__ = map_.next_value()?; - } - } - } - Ok(GetOptimisticBlockStreamResponse { - block: block__, - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.GetOptimisticBlockStreamResponse", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for SequencerBlockCommit { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.height != 0 { - len += 1; - } - if !self.block_hash.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit", len)?; - if self.height != 0 { - #[allow(clippy::needless_borrow)] - struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; - } - if !self.block_hash.is_empty() { - #[allow(clippy::needless_borrow)] - struct_ser.serialize_field("blockHash", pbjson::private::base64::encode(&self.block_hash).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for SequencerBlockCommit { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "height", - "block_hash", - "blockHash", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Height, - BlockHash, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "height" => Ok(GeneratedField::Height), - "blockHash" | "block_hash" => Ok(GeneratedField::BlockHash), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SequencerBlockCommit; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit") - } - - fn visit_map(self, mut map_: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut height__ = None; - let mut block_hash__ = None; - while let Some(k) = map_.next_key()? { - match k { - GeneratedField::Height => { - if height__.is_some() { - return Err(serde::de::Error::duplicate_field("height")); - } - height__ = - Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::BlockHash => { - if block_hash__.is_some() { - return Err(serde::de::Error::duplicate_field("blockHash")); - } - block_hash__ = - Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(SequencerBlockCommit { - height: height__.unwrap_or_default(), - block_hash: block_hash__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("astria.sequencerblock.optimisticblock.v1alpha1.SequencerBlockCommit", FIELDS, GeneratedVisitor) - } -} diff --git a/crates/astria-core/src/generated/mod.rs b/crates/astria-core/src/generated/mod.rs index 963dd5bbe3..41e186e2d7 100644 --- a/crates/astria-core/src/generated/mod.rs +++ b/crates/astria-core/src/generated/mod.rs @@ -38,151 +38,155 @@ pub mod astria_vendored { } #[path = ""] -pub mod bundle { - pub mod v1alpha1 { - include!("astria.bundle.v1alpha1.rs"); - - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.bundle.v1alpha1.serde.rs"); - } - } -} - -#[path = ""] -pub mod execution { - pub mod v1 { - include!("astria.execution.v1.rs"); - - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.execution.v1.serde.rs"); - } - } -} - -#[path = ""] -pub mod primitive { - pub mod v1 { - include!("astria.primitive.v1.rs"); - - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.primitive.v1.serde.rs"); - } - } -} - -#[path = ""] -pub mod protocol { +pub mod astria { #[path = ""] - pub mod accounts { - #[path = "astria.protocol.accounts.v1.rs"] - pub mod v1; - } - #[path = ""] - pub mod asset { - #[path = "astria.protocol.asset.v1.rs"] - pub mod v1; - } - #[path = ""] - pub mod bridge { - #[path = "astria.protocol.bridge.v1.rs"] - pub mod v1; - } - #[path = ""] - pub mod fees { - #[path = "astria.protocol.fees.v1.rs"] - pub mod v1 { - include!("astria.protocol.fees.v1.rs"); + pub mod bundle { + pub mod v1alpha1 { + include!("astria.bundle.v1alpha1.rs"); #[cfg(feature = "serde")] - mod _serde_impls { + mod _serde_impl { use super::*; - include!("astria.protocol.fees.v1.serde.rs"); + include!("astria.bundle.v1alpha1.serde.rs"); } } } + #[path = ""] - pub mod genesis { + pub mod execution { pub mod v1 { - include!("astria.protocol.genesis.v1.rs"); + include!("astria.execution.v1.rs"); #[cfg(feature = "serde")] - mod _serde_impls { + mod _serde_impl { use super::*; - include!("astria.protocol.genesis.v1.serde.rs"); + include!("astria.execution.v1.serde.rs"); } } } + #[path = ""] - pub mod memos { + pub mod primitive { pub mod v1 { - include!("astria.protocol.memos.v1.rs"); + include!("astria.primitive.v1.rs"); #[cfg(feature = "serde")] - mod _serde_impls { + mod _serde_impl { use super::*; - include!("astria.protocol.memos.v1.serde.rs"); + include!("astria.primitive.v1.serde.rs"); } } } + #[path = ""] - pub mod transaction { - pub mod v1 { - include!("astria.protocol.transaction.v1.rs"); + pub mod protocol { + #[path = ""] + pub mod accounts { + #[path = "astria.protocol.accounts.v1.rs"] + pub mod v1; + } + #[path = ""] + pub mod asset { + #[path = "astria.protocol.asset.v1.rs"] + pub mod v1; + } + #[path = ""] + pub mod bridge { + #[path = "astria.protocol.bridge.v1.rs"] + pub mod v1; + } + #[path = ""] + pub mod fees { + #[path = "astria.protocol.fees.v1.rs"] + pub mod v1 { + include!("astria.protocol.fees.v1.rs"); - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.protocol.transaction.v1.serde.rs"); + #[cfg(feature = "serde")] + mod _serde_impls { + use super::*; + include!("astria.protocol.fees.v1.serde.rs"); + } } } - } -} + #[path = ""] + pub mod genesis { + pub mod v1 { + include!("astria.protocol.genesis.v1.rs"); -#[path = ""] -pub mod sequencerblock { - pub mod v1alpha1 { - include!("astria.sequencerblock.v1alpha1.rs"); + #[cfg(feature = "serde")] + mod _serde_impls { + use super::*; + include!("astria.protocol.genesis.v1.serde.rs"); + } + } + } + #[path = ""] + pub mod memos { + pub mod v1 { + include!("astria.protocol.memos.v1.rs"); - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.sequencerblock.v1alpha1.serde.rs"); + #[cfg(feature = "serde")] + mod _serde_impls { + use super::*; + include!("astria.protocol.memos.v1.serde.rs"); + } + } } - } - pub mod v1 { - include!("astria.sequencerblock.v1.rs"); + #[path = ""] + pub mod transaction { + pub mod v1 { + include!("astria.protocol.transaction.v1.rs"); - #[cfg(feature = "serde")] - mod _serde_impl { - use super::*; - include!("astria.sequencerblock.v1.serde.rs"); + #[cfg(feature = "serde")] + mod _serde_impl { + use super::*; + include!("astria.protocol.transaction.v1.serde.rs"); + } + } } } - pub mod optimisticblock { + #[path = ""] + pub mod sequencerblock { pub mod v1alpha1 { - include!("astria.sequencerblock.optimisticblock.v1alpha1.rs"); + include!("astria.sequencerblock.v1alpha1.rs"); #[cfg(feature = "serde")] mod _serde_impl { use super::*; - include!("astria.sequencerblock.optimisticblock.v1alpha1.serde.rs"); + include!("astria.sequencerblock.v1alpha1.serde.rs"); + } + } + + pub mod v1 { + include!("astria.sequencerblock.v1.rs"); + + #[cfg(feature = "serde")] + mod _serde_impl { + use super::*; + include!("astria.sequencerblock.v1.serde.rs"); + } + } + + pub mod optimistic { + pub mod v1alpha1 { + include!("astria.sequencerblock.optimistic.v1alpha1.rs"); + + #[cfg(feature = "serde")] + mod _serde_impl { + use super::*; + include!("astria.sequencerblock.optimistic.v1alpha1.serde.rs"); + } } } } -} -#[path = ""] -pub mod composer { - #[path = "astria.composer.v1.rs"] - pub mod v1; + #[path = ""] + pub mod composer { + #[path = "astria.composer.v1.rs"] + pub mod v1; + } } #[path = ""] diff --git a/crates/astria-core/src/primitive/v1/mod.rs b/crates/astria-core/src/primitive/v1/mod.rs index 1a60a5bfe5..7477eac667 100644 --- a/crates/astria-core/src/primitive/v1/mod.rs +++ b/crates/astria-core/src/primitive/v1/mod.rs @@ -21,7 +21,7 @@ use sha2::{ }; use crate::{ - generated::primitive::v1 as raw, + generated::astria::primitive::v1 as raw, Protobuf, }; diff --git a/crates/astria-core/src/primitive/v1/u128.rs b/crates/astria-core/src/primitive/v1/u128.rs index ee77646a27..581f5b5ecc 100644 --- a/crates/astria-core/src/primitive/v1/u128.rs +++ b/crates/astria-core/src/primitive/v1/u128.rs @@ -1,6 +1,6 @@ //! Transformations of compiled protobuf types to other types. -use crate::generated::primitive::v1::Uint128; +use crate::generated::astria::primitive::v1::Uint128; impl From for Uint128 { fn from(primitive: u128) -> Self { let [ @@ -48,7 +48,8 @@ impl<'a> From<&'a u128> for Uint128 { #[cfg(test)] mod tests { - use crate::generated::primitive::v1::Uint128; + use super::Uint128; + #[track_caller] fn u128_roundtrip_check(expected: u128) { let pb: Uint128 = expected.into(); diff --git a/crates/astria-core/src/protocol/account/mod.rs b/crates/astria-core/src/protocol/account/mod.rs index 423eaae929..a3a6d96c3f 100644 --- a/crates/astria-core/src/protocol/account/mod.rs +++ b/crates/astria-core/src/protocol/account/mod.rs @@ -1,3 +1 @@ pub mod v1; - -use crate::generated::protocol::accounts::v1 as raw; diff --git a/crates/astria-core/src/protocol/account/v1/mod.rs b/crates/astria-core/src/protocol/account/v1/mod.rs index 697696ad66..1b16953fdc 100644 --- a/crates/astria-core/src/protocol/account/v1/mod.rs +++ b/crates/astria-core/src/protocol/account/v1/mod.rs @@ -1,7 +1,9 @@ -use super::raw; -use crate::primitive::v1::asset::{ - Denom, - ParseDenomError, +use crate::{ + generated::astria::protocol::accounts::v1 as raw, + primitive::v1::asset::{ + Denom, + ParseDenomError, + }, }; #[derive(Debug, thiserror::Error)] diff --git a/crates/astria-core/src/protocol/asset/mod.rs b/crates/astria-core/src/protocol/asset/mod.rs index bd31b9c85b..a3a6d96c3f 100644 --- a/crates/astria-core/src/protocol/asset/mod.rs +++ b/crates/astria-core/src/protocol/asset/mod.rs @@ -1,3 +1 @@ pub mod v1; - -use crate::generated::protocol::asset::v1 as raw; diff --git a/crates/astria-core/src/protocol/asset/v1/mod.rs b/crates/astria-core/src/protocol/asset/v1/mod.rs index c9330e32bf..9d8ec55c28 100644 --- a/crates/astria-core/src/protocol/asset/v1/mod.rs +++ b/crates/astria-core/src/protocol/asset/v1/mod.rs @@ -1,8 +1,10 @@ -use super::raw; -use crate::primitive::v1::asset::{ - self, - Denom, - ParseDenomError, +use crate::{ + generated::astria::protocol::asset::v1 as raw, + primitive::v1::asset::{ + self, + Denom, + ParseDenomError, + }, }; #[derive(Debug, thiserror::Error)] diff --git a/crates/astria-core/src/protocol/bridge/mod.rs b/crates/astria-core/src/protocol/bridge/mod.rs index f8b278c8f1..cab4a9fd57 100644 --- a/crates/astria-core/src/protocol/bridge/mod.rs +++ b/crates/astria-core/src/protocol/bridge/mod.rs @@ -1,3 +1,3 @@ pub mod v1; -use crate::generated::protocol::bridge::v1 as raw; +use crate::generated::astria::protocol::bridge::v1 as raw; diff --git a/crates/astria-core/src/protocol/fees/v1.rs b/crates/astria-core/src/protocol/fees/v1.rs index 400a63651d..f77441a90c 100644 --- a/crates/astria-core/src/protocol/fees/v1.rs +++ b/crates/astria-core/src/protocol/fees/v1.rs @@ -1,7 +1,7 @@ use prost::Name as _; use crate::{ - generated::protocol::fees::v1 as raw, + generated::astria::protocol::fees::v1 as raw, primitive::v1::asset, Protobuf, }; diff --git a/crates/astria-core/src/protocol/genesis/v1.rs b/crates/astria-core/src/protocol/genesis/v1.rs index 8df8f7e2bf..168998a521 100644 --- a/crates/astria-core/src/protocol/genesis/v1.rs +++ b/crates/astria-core/src/protocol/genesis/v1.rs @@ -3,7 +3,7 @@ use std::convert::Infallible; pub use penumbra_ibc::params::IBCParameters; use crate::{ - generated::protocol::genesis::v1 as raw, + generated::astria::protocol::genesis::v1 as raw, primitive::v1::{ asset::{ self, diff --git a/crates/astria-core/src/protocol/memos/v1.rs b/crates/astria-core/src/protocol/memos/v1.rs index 796eea7f7b..9e9aa76cf2 100644 --- a/crates/astria-core/src/protocol/memos/v1.rs +++ b/crates/astria-core/src/protocol/memos/v1.rs @@ -1,4 +1,4 @@ -pub use crate::generated::protocol::memos::v1::{ +pub use crate::generated::astria::protocol::memos::v1::{ Ics20TransferDeposit, Ics20WithdrawalFromRollup, }; diff --git a/crates/astria-core/src/protocol/transaction/v1/mod.rs b/crates/astria-core/src/protocol/transaction/v1/mod.rs index 6bfbd5b22c..59616514d8 100644 --- a/crates/astria-core/src/protocol/transaction/v1/mod.rs +++ b/crates/astria-core/src/protocol/transaction/v1/mod.rs @@ -11,7 +11,7 @@ use crate::{ SigningKey, VerificationKey, }, - generated::protocol::transaction::v1 as raw, + generated::astria::protocol::transaction::v1 as raw, primitive::v1::{ TransactionId, ADDRESS_LEN, diff --git a/crates/astria-core/src/sequencerblock/v1/block.rs b/crates/astria-core/src/sequencerblock/v1/block.rs index c7013e4d85..d4fc7e7b25 100644 --- a/crates/astria-core/src/sequencerblock/v1/block.rs +++ b/crates/astria-core/src/sequencerblock/v1/block.rs @@ -784,8 +784,9 @@ impl SequencerBlock { let mut rollup_datas = IndexMap::new(); for elem in data_list { - let raw_tx = crate::generated::protocol::transaction::v1::Transaction::decode(&*elem) - .map_err(SequencerBlockError::transaction_protobuf_decode)?; + let raw_tx = + crate::generated::astria::protocol::transaction::v1::Transaction::decode(&*elem) + .map_err(SequencerBlockError::transaction_protobuf_decode)?; let tx = Transaction::try_from_raw(raw_tx) .map_err(SequencerBlockError::raw_signed_transaction_conversion)?; for action in tx.into_unsigned().into_actions() { @@ -1363,7 +1364,7 @@ impl FilteredSequencerBlockError { #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[cfg_attr( feature = "serde", - serde(into = "crate::generated::sequencerblock::v1::Deposit") + serde(into = "crate::generated::astria::sequencerblock::v1::Deposit") )] pub struct Deposit { // the address on the sequencer to which the funds were sent to. diff --git a/crates/astria-core/src/sequencerblock/v1/mod.rs b/crates/astria-core/src/sequencerblock/v1/mod.rs index 966696c9ff..9685f452f6 100644 --- a/crates/astria-core/src/sequencerblock/v1/mod.rs +++ b/crates/astria-core/src/sequencerblock/v1/mod.rs @@ -16,7 +16,7 @@ use sha2::{ }; use crate::{ - generated::sequencerblock::v1 as raw, + generated::astria::sequencerblock::v1 as raw, primitive::v1::{ derive_merkle_tree_from_rollup_txs, IncorrectRollupIdLength, diff --git a/crates/astria-sequencer-client/src/extension_trait.rs b/crates/astria-sequencer-client/src/extension_trait.rs index 59cab0f7e5..96eed49ef8 100644 --- a/crates/astria-sequencer-client/src/extension_trait.rs +++ b/crates/astria-sequencer-client/src/extension_trait.rs @@ -450,7 +450,7 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::accounts::v1::BalanceResponse::decode( + astria_core::generated::astria::protocol::accounts::v1::BalanceResponse::decode( &*response.value, ) .map_err(|e| { @@ -492,7 +492,7 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::asset::v1::AllowedFeeAssetsResponse::decode( + astria_core::generated::astria::protocol::asset::v1::AllowedFeeAssetsResponse::decode( &*response.value, ) .map_err(|e| { @@ -532,14 +532,12 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::accounts::v1::NonceResponse::decode(&*response.value) - .map_err(|e| { - Error::abci_query_deserialization( - "astria.sequencer.v1.NonceResponse", - response, - e, - ) - })?; + astria_core::generated::astria::protocol::accounts::v1::NonceResponse::decode( + &*response.value, + ) + .map_err(|e| { + Error::abci_query_deserialization("astria.sequencer.v1.NonceResponse", response, e) + })?; Ok(proto_response.to_native()) } @@ -567,7 +565,7 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::bridge::v1::BridgeAccountInfoResponse::decode( + astria_core::generated::astria::protocol::bridge::v1::BridgeAccountInfoResponse::decode( &*response.value, ) .map_err(|e| { @@ -599,7 +597,7 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::bridge::v1::BridgeAccountLastTxHashResponse::decode( + astria_core::generated::astria::protocol::bridge::v1::BridgeAccountLastTxHashResponse::decode( &*response.value, ) .map_err(|e| { @@ -631,7 +629,7 @@ pub trait SequencerClientExt: Client { .map_err(|e| Error::tendermint_rpc("abci_query", e))?; let proto_response = - astria_core::generated::protocol::fees::v1::TransactionFeeResponse::decode( + astria_core::generated::astria::protocol::fees::v1::TransactionFeeResponse::decode( &*response.value, ) .map_err(|e| { diff --git a/crates/astria-sequencer-client/src/tests/http.rs b/crates/astria-sequencer-client/src/tests/http.rs index 9fca6a4949..92f02124cd 100644 --- a/crates/astria-sequencer-client/src/tests/http.rs +++ b/crates/astria-sequencer-client/src/tests/http.rs @@ -2,7 +2,7 @@ use std::time::Duration; use astria_core::{ crypto::SigningKey, - generated::protocol::{ + generated::astria::protocol::{ asset::v1::AllowedFeeAssetsResponse, fees::v1::TransactionFee, }, @@ -171,7 +171,7 @@ fn create_signed_transaction() -> Transaction { #[tokio::test] async fn get_latest_nonce() { - use astria_core::generated::protocol::accounts::v1::NonceResponse; + use astria_core::generated::astria::protocol::accounts::v1::NonceResponse; let MockSequencer { server, client, @@ -198,7 +198,7 @@ async fn get_latest_nonce() { #[tokio::test] async fn get_latest_balance() { - use astria_core::generated::protocol::accounts::v1::{ + use astria_core::generated::astria::protocol::accounts::v1::{ AssetBalance, BalanceResponse, }; @@ -263,7 +263,7 @@ async fn get_allowed_fee_assets() { #[tokio::test] async fn get_bridge_account_info() { use astria_core::{ - generated::protocol::bridge::v1::BridgeAccountInfoResponse, + generated::astria::protocol::bridge::v1::BridgeAccountInfoResponse, primitive::v1::RollupId, }; @@ -295,7 +295,7 @@ async fn get_bridge_account_info() { #[tokio::test] async fn get_bridge_account_last_transaction_hash() { - use astria_core::generated::protocol::bridge::v1::BridgeAccountLastTxHashResponse; + use astria_core::generated::astria::protocol::bridge::v1::BridgeAccountLastTxHashResponse; let MockSequencer { server, @@ -325,7 +325,7 @@ async fn get_bridge_account_last_transaction_hash() { #[tokio::test] async fn get_transaction_fee() { - use astria_core::generated::protocol::fees::v1::TransactionFeeResponse; + use astria_core::generated::astria::protocol::fees::v1::TransactionFeeResponse; let MockSequencer { server, diff --git a/crates/astria-sequencer-relayer/src/relayer/builder.rs b/crates/astria-sequencer-relayer/src/relayer/builder.rs index 0609af19ce..fd4d3fbf17 100644 --- a/crates/astria-sequencer-relayer/src/relayer/builder.rs +++ b/crates/astria-sequencer-relayer/src/relayer/builder.rs @@ -4,7 +4,7 @@ use std::{ time::Duration, }; -use astria_core::generated::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; +use astria_core::generated::astria::sequencerblock::v1::sequencer_service_client::SequencerServiceClient; use astria_eyre::eyre::{ self, WrapErr as _, diff --git a/crates/astria-sequencer-relayer/src/relayer/mod.rs b/crates/astria-sequencer-relayer/src/relayer/mod.rs index 54c613ee81..e4e58e0cb7 100644 --- a/crates/astria-sequencer-relayer/src/relayer/mod.rs +++ b/crates/astria-sequencer-relayer/src/relayer/mod.rs @@ -5,7 +5,7 @@ use std::{ }; use astria_core::{ - generated::sequencerblock::v1::sequencer_service_client::SequencerServiceClient, + generated::astria::sequencerblock::v1::sequencer_service_client::SequencerServiceClient, sequencerblock::v1::SequencerBlock, }; use astria_eyre::eyre::{ diff --git a/crates/astria-sequencer-relayer/src/relayer/read.rs b/crates/astria-sequencer-relayer/src/relayer/read.rs index 58147fdfd2..6525f3e528 100644 --- a/crates/astria-sequencer-relayer/src/relayer/read.rs +++ b/crates/astria-sequencer-relayer/src/relayer/read.rs @@ -8,7 +8,7 @@ use std::{ }; use astria_core::{ - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_client::SequencerServiceClient, GetSequencerBlockRequest, }, diff --git a/crates/astria-sequencer-relayer/src/relayer/write/conversion.rs b/crates/astria-sequencer-relayer/src/relayer/write/conversion.rs index 38733634d2..82d425ff89 100644 --- a/crates/astria-sequencer-relayer/src/relayer/write/conversion.rs +++ b/crates/astria-sequencer-relayer/src/relayer/write/conversion.rs @@ -10,7 +10,7 @@ use std::{ use astria_core::{ brotli::compress_bytes, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ SubmittedMetadata, SubmittedMetadataList, SubmittedRollupData, diff --git a/crates/astria-sequencer-relayer/tests/blackbox/helpers/mock_sequencer_server.rs b/crates/astria-sequencer-relayer/tests/blackbox/helpers/mock_sequencer_server.rs index 82534b292a..33ff34d989 100644 --- a/crates/astria-sequencer-relayer/tests/blackbox/helpers/mock_sequencer_server.rs +++ b/crates/astria-sequencer-relayer/tests/blackbox/helpers/mock_sequencer_server.rs @@ -4,7 +4,7 @@ use std::{ }; use astria_core::{ - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ sequencer_service_server::{ SequencerService, SequencerServiceServer, diff --git a/crates/astria-sequencer-utils/src/blob_parser.rs b/crates/astria-sequencer-utils/src/blob_parser.rs index c729751c96..6fb450ff90 100644 --- a/crates/astria-sequencer-utils/src/blob_parser.rs +++ b/crates/astria-sequencer-utils/src/blob_parser.rs @@ -13,7 +13,7 @@ use std::{ use astria_core::{ brotli::decompress_bytes, - generated::sequencerblock::v1::{ + generated::astria::sequencerblock::v1::{ rollup_data::Value as RawRollupDataValue, Deposit as RawDeposit, RollupData as RawRollupData, diff --git a/crates/astria-sequencer-utils/src/genesis_example.rs b/crates/astria-sequencer-utils/src/genesis_example.rs index a464fd26c2..6d7d277719 100644 --- a/crates/astria-sequencer-utils/src/genesis_example.rs +++ b/crates/astria-sequencer-utils/src/genesis_example.rs @@ -5,7 +5,7 @@ use std::{ }; use astria_core::{ - generated::protocol::genesis::v1::{ + generated::astria::protocol::genesis::v1::{ AddressPrefixes, GenesisFees, IbcParameters, @@ -91,8 +91,8 @@ fn address_prefixes() -> AddressPrefixes { } #[expect(clippy::too_many_lines, reason = "all lines reasonably necessary")] -fn proto_genesis_state() -> astria_core::generated::protocol::genesis::v1::GenesisAppState { - astria_core::generated::protocol::genesis::v1::GenesisAppState { +fn proto_genesis_state() -> astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { + astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { accounts: accounts().into_iter().map(Protobuf::into_raw).collect(), address_prefixes: Some(address_prefixes()), authority_sudo_address: Some(alice().to_raw()), diff --git a/crates/astria-sequencer/src/app/benchmark_and_test_utils.rs b/crates/astria-sequencer/src/app/benchmark_and_test_utils.rs index 6c46e5c6e9..e2852fd225 100644 --- a/crates/astria-sequencer/src/app/benchmark_and_test_utils.rs +++ b/crates/astria-sequencer/src/app/benchmark_and_test_utils.rs @@ -60,7 +60,7 @@ pub(crate) const TED_ADDRESS: &str = "4c4f91d8a918357ab5f6f19c1e179968fc39bb44"; pub(crate) fn address_prefixes() -> AddressPrefixes { AddressPrefixes::try_from_raw( - astria_core::generated::protocol::genesis::v1::AddressPrefixes { + astria_core::generated::astria::protocol::genesis::v1::AddressPrefixes { base: crate::benchmark_and_test_utils::ASTRIA_PREFIX.into(), ibc_compat: crate::benchmark_and_test_utils::ASTRIA_COMPAT_PREFIX.into(), }, @@ -129,9 +129,9 @@ pub(crate) fn default_fees() -> astria_core::protocol::genesis::v1::GenesisFees } } -pub(crate) fn proto_genesis_state() -> astria_core::generated::protocol::genesis::v1::GenesisAppState -{ - use astria_core::generated::protocol::genesis::v1::{ +pub(crate) fn proto_genesis_state() +-> astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { + use astria_core::generated::astria::protocol::genesis::v1::{ GenesisAppState, IbcParameters, }; diff --git a/crates/astria-sequencer/src/app/benchmarks.rs b/crates/astria-sequencer/src/app/benchmarks.rs index 0b6aa3ef2b..390f650de1 100644 --- a/crates/astria-sequencer/src/app/benchmarks.rs +++ b/crates/astria-sequencer/src/app/benchmarks.rs @@ -61,7 +61,7 @@ impl Fixture { .collect::>(); let first_address = accounts.first().cloned().unwrap().address; let genesis_state = GenesisAppState::try_from_raw( - astria_core::generated::protocol::genesis::v1::GenesisAppState { + astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { accounts, authority_sudo_address: first_address.clone(), ibc_sudo_address: first_address.clone(), diff --git a/crates/astria-sequencer/src/app/mod.rs b/crates/astria-sequencer/src/app/mod.rs index 55ecf9a276..78386c6f9f 100644 --- a/crates/astria-sequencer/src/app/mod.rs +++ b/crates/astria-sequencer/src/app/mod.rs @@ -21,7 +21,7 @@ use std::{ }; use astria_core::{ - generated::protocol::transaction::v1 as raw, + generated::astria::protocol::transaction::v1 as raw, protocol::{ abci::AbciErrorCode, genesis::v1::GenesisAppState, diff --git a/crates/astria-sequencer/src/app/tests_app/mod.rs b/crates/astria-sequencer/src/app/tests_app/mod.rs index 1ca46cec4d..b91e107105 100644 --- a/crates/astria-sequencer/src/app/tests_app/mod.rs +++ b/crates/astria-sequencer/src/app/tests_app/mod.rs @@ -302,7 +302,7 @@ async fn app_transfer_block_fees_to_sudo() { #[tokio::test] async fn app_create_sequencer_block_with_sequenced_data_and_deposits() { use astria_core::{ - generated::sequencerblock::v1::RollupData as RawRollupData, + generated::astria::sequencerblock::v1::RollupData as RawRollupData, sequencerblock::v1::block::RollupData, }; diff --git a/crates/astria-sequencer/src/app/tests_breaking_changes.rs b/crates/astria-sequencer/src/app/tests_breaking_changes.rs index b70ee03d8f..dd1c14c4d4 100644 --- a/crates/astria-sequencer/src/app/tests_breaking_changes.rs +++ b/crates/astria-sequencer/src/app/tests_breaking_changes.rs @@ -191,7 +191,7 @@ async fn app_execute_transaction_with_every_action_snapshot() { }); acc.into_iter().map(Protobuf::into_raw).collect() }; - let genesis_state = astria_core::generated::protocol::genesis::v1::GenesisAppState { + let genesis_state = astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { accounts, authority_sudo_address: Some( Address::builder() diff --git a/crates/astria-sequencer/src/app/tests_execute_transaction.rs b/crates/astria-sequencer/src/app/tests_execute_transaction.rs index 42443de0c1..011d789270 100644 --- a/crates/astria-sequencer/src/app/tests_execute_transaction.rs +++ b/crates/astria-sequencer/src/app/tests_execute_transaction.rs @@ -76,8 +76,8 @@ use crate::{ utils::create_deposit_event, }; -fn proto_genesis_state() -> astria_core::generated::protocol::genesis::v1::GenesisAppState { - astria_core::generated::protocol::genesis::v1::GenesisAppState { +fn proto_genesis_state() -> astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { + astria_core::generated::astria::protocol::genesis::v1::GenesisAppState { authority_sudo_address: Some( Address::builder() .prefix(ASTRIA_PREFIX) diff --git a/crates/astria-sequencer/src/bridge/query.rs b/crates/astria-sequencer/src/bridge/query.rs index 2e3ff25ba2..ed5d1c5177 100644 --- a/crates/astria-sequencer/src/bridge/query.rs +++ b/crates/astria-sequencer/src/bridge/query.rs @@ -293,7 +293,7 @@ fn preprocess_request(params: &[(String, String)]) -> Result) -> (Consensus, Mempool) { let accounts = if let Some(funded_key) = funded_key { - vec![astria_core::generated::protocol::genesis::v1::Account { - address: Some( - crate::benchmark_and_test_utils::astria_address(funded_key.address_bytes()) - .to_raw(), - ), - balance: Some(10u128.pow(19).into()), - }] + vec![ + astria_core::generated::astria::protocol::genesis::v1::Account { + address: Some( + crate::benchmark_and_test_utils::astria_address(funded_key.address_bytes()) + .to_raw(), + ), + balance: Some(10u128.pow(19).into()), + }, + ] } else { vec![] }; diff --git a/crates/astria-sequencer/src/service/info/mod.rs b/crates/astria-sequencer/src/service/info/mod.rs index 615c795700..6254f58632 100644 --- a/crates/astria-sequencer/src/service/info/mod.rs +++ b/crates/astria-sequencer/src/service/info/mod.rs @@ -223,7 +223,7 @@ mod tests { #[tokio::test] async fn handle_balance_query() { use astria_core::{ - generated::protocol::accounts::v1 as raw, + generated::astria::protocol::accounts::v1 as raw, protocol::account::v1::AssetBalance, }; @@ -290,7 +290,7 @@ mod tests { #[tokio::test] async fn handle_denom_query() { - use astria_core::generated::protocol::asset::v1 as raw; + use astria_core::generated::astria::protocol::asset::v1 as raw; let storage = cnidarium::TempStorage::new().await.unwrap(); let mut state = StateDelta::new(storage.latest_snapshot()); @@ -334,7 +334,7 @@ mod tests { #[tokio::test] async fn handle_allowed_fee_assets_query() { - use astria_core::generated::protocol::asset::v1 as raw; + use astria_core::generated::astria::protocol::asset::v1 as raw; let storage = cnidarium::TempStorage::new().await.unwrap(); let mut state = StateDelta::new(storage.latest_snapshot()); diff --git a/crates/astria-sequencer/src/service/mempool/mod.rs b/crates/astria-sequencer/src/service/mempool/mod.rs index ad2b76d9fc..47bd1dfe91 100644 --- a/crates/astria-sequencer/src/service/mempool/mod.rs +++ b/crates/astria-sequencer/src/service/mempool/mod.rs @@ -10,7 +10,7 @@ use std::{ }; use astria_core::{ - generated::protocol::transaction::v1 as raw, + generated::astria::protocol::transaction::v1 as raw, primitive::v1::asset::IbcPrefixed, protocol::{ abci::AbciErrorCode, diff --git a/tools/protobuf-compiler/CHANGELOG.md b/tools/protobuf-compiler/CHANGELOG.md new file mode 100644 index 0000000000..a017ade42d --- /dev/null +++ b/tools/protobuf-compiler/CHANGELOG.md @@ -0,0 +1,15 @@ + + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +### Added + +- Clears target directory before generating new code. + [#1825](https://github.com/astriaorg/astria/pull/1825) diff --git a/tools/protobuf-compiler/src/main.rs b/tools/protobuf-compiler/src/main.rs index 1034672e90..c166ce0b54 100644 --- a/tools/protobuf-compiler/src/main.rs +++ b/tools/protobuf-compiler/src/main.rs @@ -1,3 +1,8 @@ +//! Generates Rust code of protobuf specs located in proto/ and writes +//! the result to crates/astria-core/src/generated. +//! +//! This tool will delete everything in crates/astria-core/src/generated (except +//! mod.rs). use std::{ collections::{ HashMap, @@ -59,23 +64,16 @@ fn main() { let files = find_protos(src_dir); + purge_out_dir(&out_dir); + tonic_build::configure() .build_client(true) .build_server(true) .emit_rerun_if_changed(false) - .bytes([ - ".astria", - ".celestia", - ".cosmos", - ".tendermint", - ]) + .bytes([".astria", ".celestia", ".cosmos", ".tendermint"]) .client_mod_attribute(".", "#[cfg(feature=\"client\")]") .server_mod_attribute(".", "#[cfg(feature=\"server\")]") .extern_path(".astria_vendored.penumbra", "::penumbra-proto") - .extern_path( - ".astria_vendored.tendermint.abci.ValidatorUpdate", - "crate::generated::astria_vendored::tendermint::abci::ValidatorUpdate", - ) .type_attribute(".astria.primitive.v1.Uint128", "#[derive(Copy)]") .type_attribute( ".astria.protocol.genesis.v1.IbcParameters", @@ -206,10 +204,10 @@ fn get_buf_from_env() -> PathBuf { "linux" => "You can download it from https://github.com/bufbuild/buf/releases; if you are on Arch Linux, install it from the AUR with `rua install buf` or another helper", _other => "Check if there is a precompiled version for your OS at https://github.com/bufbuild/buf/releases" }; - let error_msg = "Could not find `buf` installation and this build crate cannot proceed without - this knowledge. If `buf` is installed and this crate had trouble finding - it, you can set the `BUF` environment variable with the specific path to your - installed `buf` binary."; + let error_msg = "Could not find `buf` installation and this build crate cannot proceed \ + without this knowledge. If `buf` is installed and this crate had trouble \ + finding it, you can set the `BUF` environment variable with the specific \ + path to your installed `buf` binary."; let msg = format!("{error_msg} {os_specific_hint}"); env::var_os("BUF") @@ -217,3 +215,27 @@ fn get_buf_from_env() -> PathBuf { .or_else(|| which::which("buf").ok()) .expect(&msg) } + +fn purge_out_dir(path: impl AsRef) { + let read_dir_msg = format!( + "should be able to read generated file out dir files `{}`", + path.as_ref().display() + ); + let entry_msg = format!( + "every entry in generated file out dir `{}` should have a name", + path.as_ref().display() + ); + let remove_msg = format!( + "all entries in the generated file out dir should `{}` should be files, and the out dir \ + is expected to have read, write, execute permissions set", + path.as_ref().display() + ); + for entry in read_dir(path).expect(&read_dir_msg).flatten() { + // skip mod.rs as it's assumed to be the only non-generated file in the out dir. + if entry.path().file_name().expect(&entry_msg) == "mod.rs" { + continue; + } + + std::fs::remove_file(entry.path()).expect(&remove_msg); + } +} From eac2759e3d5a0bf8d7f67da98ef103df8f286af0 Mon Sep 17 00:00:00 2001 From: Ethan Oroshiba Date: Thu, 5 Dec 2024 14:36:14 -0600 Subject: [PATCH 16/16] chore(sequencer): remove unnecessary result return (#1849) ## Summary Removed an unnecessary return of a `Result` from the `fees` state extension trait. ## Background The method is infallible. ## Changes - Removed the return type from `add_fee_to_block_fees()` ## Testing Passing all tests. ## Changelogs No updates required ## Related Issues closes #1845 --- crates/astria-sequencer/src/fees/mod.rs | 4 +--- crates/astria-sequencer/src/fees/state_ext.rs | 16 ++++------------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/crates/astria-sequencer/src/fees/mod.rs b/crates/astria-sequencer/src/fees/mod.rs index 195ad7be47..9536888e65 100644 --- a/crates/astria-sequencer/src/fees/mod.rs +++ b/crates/astria-sequencer/src/fees/mod.rs @@ -347,9 +347,7 @@ async fn check_and_pay_fees( .wrap_err("failed to check allowed fee assets in state")?, "invalid fee asset", ); - state - .add_fee_to_block_fees::<_, T>(fee_asset, total_fees, position_in_transaction) - .wrap_err("failed to add to block fees")?; + state.add_fee_to_block_fees::<_, T>(fee_asset, total_fees, position_in_transaction); state .decrease_balance(&from, fee_asset, total_fees) .await diff --git a/crates/astria-sequencer/src/fees/state_ext.rs b/crates/astria-sequencer/src/fees/state_ext.rs index 142cc2b607..d3a74ba65f 100644 --- a/crates/astria-sequencer/src/fees/state_ext.rs +++ b/crates/astria-sequencer/src/fees/state_ext.rs @@ -383,8 +383,7 @@ pub(crate) trait StateWriteExt: StateWrite { asset: &'a TAsset, amount: u128, position_in_transaction: u64, - ) -> Result<()> - where + ) where TAsset: Sync + std::fmt::Display, asset::IbcPrefixed: From<&'a TAsset>, { @@ -409,7 +408,6 @@ pub(crate) trait StateWriteExt: StateWrite { }; self.object_put(keys::BLOCK, new_fees); - Ok(()) } #[instrument(skip_all)] @@ -622,9 +620,7 @@ mod tests { // can write let asset = asset_0(); let amount = 100u128; - state - .add_fee_to_block_fees::<_, Transfer>(&asset, amount, 0) - .unwrap(); + state.add_fee_to_block_fees::<_, Transfer>(&asset, amount, 0); // holds expected let fee_balances_updated = state.get_block_fees(); @@ -652,12 +648,8 @@ mod tests { let amount_first = 100u128; let amount_second = 200u128; - state - .add_fee_to_block_fees::<_, Transfer>(&asset_first, amount_first, 0) - .unwrap(); - state - .add_fee_to_block_fees::<_, Transfer>(&asset_second, amount_second, 1) - .unwrap(); + state.add_fee_to_block_fees::<_, Transfer>(&asset_first, amount_first, 0); + state.add_fee_to_block_fees::<_, Transfer>(&asset_second, amount_second, 1); // holds expected let fee_balances = HashSet::<_>::from_iter(state.get_block_fees()); assert_eq!(