diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml new file mode 100644 index 000000000..4f9fdd9e0 --- /dev/null +++ b/.github/workflows/proto.yml @@ -0,0 +1,30 @@ +name: buf +on: + pull_request: + push: + branches: + - main +jobs: + build-lint-push-protos: + runs-on: ubuntu-latest + environment: BUF + steps: + - uses: actions/checkout@v3 + - uses: bufbuild/buf-setup-action@v1 + with: + version: "1.15.1" + github_token: ${{ github.token }} + - uses: bufbuild/buf-lint-action@v1 + with: + input: "crates/astria-proto" + # TODO(GH-29): Uncomment out after reaching any production stage + # - uses: bufbuild/buf-breaking-action@v1 + # with: + # # The 'main' branch of the GitHub repository that defines the module. + # input: "crates/astria-proto/proto" + # against: "https://github.com/astriaorg/astria.git#branch=main,ref=HEAD~1,subdir=crates/astria-proto/proto" + - uses: bufbuild/buf-push-action@v1 + with: + draft: ${{ github.ref_name != 'main'}} + input: "crates/astria-proto/proto" + buf_token: ${{ secrets.BUF_TOKEN }} diff --git a/Cargo.lock b/Cargo.lock index c04932e2a..1c5fd6a5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -297,11 +297,10 @@ name = "astria-conductor" version = "0.1.0" dependencies = [ "astria-conductor-test", - "astria-execution-apis-rpc", "astria-gossipnet", + "astria-proto", "astria-rs-cnc", "astria-sequencer-relayer", - "astria-sequencer-relayer-proto", "bech32", "clap", "color-eyre", @@ -343,16 +342,6 @@ dependencies = [ "which", ] -[[package]] -name = "astria-execution-apis-rpc" -version = "0.1.0" -dependencies = [ - "prost", - "prost-types", - "tonic", - "which", -] - [[package]] name = "astria-gossipnet" version = "0.1.0" @@ -364,6 +353,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "astria-proto" +version = "0.1.0" +dependencies = [ + "prost", + "prost-types", + "tonic", + "which", +] + [[package]] name = "astria-rs-cnc" version = "0.1.0" @@ -384,8 +383,8 @@ name = "astria-sequencer-relayer" version = "0.1.0" dependencies = [ "astria-gossipnet", + "astria-proto", "astria-rs-cnc", - "astria-sequencer-relayer-proto", "astria-sequencer-relayer-test", "axum", "base64 0.21.0", @@ -409,15 +408,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "astria-sequencer-relayer-proto" -version = "0.1.0" -dependencies = [ - "prost", - "prost-build", - "prost-types", -] - [[package]] name = "astria-sequencer-relayer-test" version = "0.1.0" @@ -1465,12 +1455,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "flex-error" version = "0.4.4" @@ -2813,12 +2797,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - [[package]] name = "multistream-select" version = "0.12.1" @@ -3199,16 +3177,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" -[[package]] -name = "petgraph" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" -dependencies = [ - "fixedbitset", - "indexmap", -] - [[package]] name = "pin-project" version = "1.1.0" @@ -3314,16 +3282,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -3413,28 +3371,6 @@ dependencies = [ "prost-derive", ] -[[package]] -name = "prost-build" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" -dependencies = [ - "bytes", - "heck", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 1.0.109", - "tempfile", - "which", -] - [[package]] name = "prost-derive" version = "0.11.9" diff --git a/Cargo.toml b/Cargo.toml index b5e2c977b..67558b640 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,10 +3,9 @@ members = [ "crates/astria-conductor", "crates/astria-conductor-test", - "crates/astria-execution-apis-rpc", "crates/astria-gossipnet", + "crates/astria-proto", "crates/astria-rs-cnc", "crates/astria-sequencer-relayer", - "crates/astria-sequencer-relayer-proto", "crates/astria-sequencer-relayer-test", ] diff --git a/crates/astria-conductor/Cargo.toml b/crates/astria-conductor/Cargo.toml index 5d3da0a2c..860c80296 100644 --- a/crates/astria-conductor/Cargo.toml +++ b/crates/astria-conductor/Cargo.toml @@ -25,11 +25,10 @@ tonic = "0.8.3" tracing = "0.1.37" tracing-subscriber = "0.3.16" -astria-execution-apis-rpc = { path = "../astria-execution-apis-rpc" } +astria-proto = { path = "../astria-proto" } astria-gossipnet = { path = "../astria-gossipnet" } astria-rs-cnc = { path = "../astria-rs-cnc" } astria-sequencer-relayer = { path = "../astria-sequencer-relayer" } -astria-sequencer-relayer-proto = { path = "../astria-sequencer-relayer-proto" } [dev-dependencies] astria-conductor-test = { path = "../astria-conductor-test" } diff --git a/crates/astria-conductor/src/execution_client.rs b/crates/astria-conductor/src/execution_client.rs index c54571a4c..60c591dc5 100644 --- a/crates/astria-conductor/src/execution_client.rs +++ b/crates/astria-conductor/src/execution_client.rs @@ -1,4 +1,4 @@ -use astria_execution_apis_rpc::execution::{ +use astria_proto::execution::v1::{ execution_service_client::ExecutionServiceClient, DoBlockRequest, DoBlockResponse, diff --git a/crates/astria-conductor/src/executor.rs b/crates/astria-conductor/src/executor.rs index c5136ae08..cb4f3315c 100644 --- a/crates/astria-conductor/src/executor.rs +++ b/crates/astria-conductor/src/executor.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use astria_proto::sequencer::v1::SequencerMsg; use astria_sequencer_relayer::{ base64_string::Base64String, sequencer_block::{ @@ -10,7 +11,6 @@ use astria_sequencer_relayer::{ SequencerBlock, }, }; -use astria_sequencer_relayer_proto::SequencerMsg; use color_eyre::eyre::{ Result, WrapErr as _, diff --git a/crates/astria-execution-apis-rpc/src/lib.rs b/crates/astria-execution-apis-rpc/src/lib.rs deleted file mode 100644 index 2769d5cde..000000000 --- a/crates/astria-execution-apis-rpc/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod execution { - include!(concat!(env!("OUT_DIR"), "/execution.v1.rs")); -} diff --git a/crates/astria-execution-apis-rpc/Cargo.toml b/crates/astria-proto/Cargo.toml similarity index 73% rename from crates/astria-execution-apis-rpc/Cargo.toml rename to crates/astria-proto/Cargo.toml index 37bee57fd..95776bcac 100644 --- a/crates/astria-execution-apis-rpc/Cargo.toml +++ b/crates/astria-proto/Cargo.toml @@ -1,15 +1,15 @@ [package] -name = "astria-execution-apis-rpc" +name = "astria-proto" version = "0.1.0" edition = "2021" license = "Apache-2.0" readme = "README.md" -repository = "https://github.com/astriaorg/astria-rpc" +repository = "https://github.com/astriaorg/astria" homepage = "https://astria.org" # TODO # documentation = "" -categories = ["astria-execution-apis", "astria-rpc", "rpc-types"] +categories = ["astria-proto", "astria-rpc", "rpc-types"] keywords = ["astria", "grpc", "rpc", "blockchain", "execution", "protobuf"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/crates/astria-execution-apis-rpc/README.md b/crates/astria-proto/README.md similarity index 100% rename from crates/astria-execution-apis-rpc/README.md rename to crates/astria-proto/README.md diff --git a/crates/astria-execution-apis-rpc/buf.gen.yaml b/crates/astria-proto/buf.gen.yaml similarity index 100% rename from crates/astria-execution-apis-rpc/buf.gen.yaml rename to crates/astria-proto/buf.gen.yaml diff --git a/crates/astria-proto/buf.work.yaml b/crates/astria-proto/buf.work.yaml new file mode 100644 index 000000000..1878b341b --- /dev/null +++ b/crates/astria-proto/buf.work.yaml @@ -0,0 +1,3 @@ +version: v1 +directories: + - proto diff --git a/crates/astria-execution-apis-rpc/build.rs b/crates/astria-proto/build.rs similarity index 100% rename from crates/astria-execution-apis-rpc/build.rs rename to crates/astria-proto/build.rs diff --git a/crates/astria-execution-apis-rpc/proto/execution/v1/execution.proto b/crates/astria-proto/proto/astria/execution/v1/execution.proto similarity index 95% rename from crates/astria-execution-apis-rpc/proto/execution/v1/execution.proto rename to crates/astria-proto/proto/astria/execution/v1/execution.proto index 045496ed5..14f2d62ce 100644 --- a/crates/astria-execution-apis-rpc/proto/execution/v1/execution.proto +++ b/crates/astria-proto/proto/astria/execution/v1/execution.proto @@ -1,6 +1,6 @@ syntax = 'proto3'; -package execution.v1; +package astria.execution.v1; import "google/protobuf/timestamp.proto"; diff --git a/crates/astria-sequencer-relayer-proto/proto/msg.proto b/crates/astria-proto/proto/astria/sequencer/v1/msg.proto similarity index 55% rename from crates/astria-sequencer-relayer-proto/proto/msg.proto rename to crates/astria-proto/proto/astria/sequencer/v1/msg.proto index 82a77c456..4171b3816 100644 --- a/crates/astria-sequencer-relayer-proto/proto/msg.proto +++ b/crates/astria-proto/proto/astria/sequencer/v1/msg.proto @@ -1,7 +1,8 @@ -// this is copied from astriorg's metro/pb/msg.proto - +// this is (mostly) copied from astriorg's metro/pb/msg.proto syntax = "proto3"; +package astria.sequencer.v1; + message SequencerMsg { bytes chain_id = 1; bytes data = 2; diff --git a/crates/astria-sequencer-relayer-proto/proto/tx.proto b/crates/astria-proto/proto/astria/sequencer/v1/tx.proto similarity index 98% rename from crates/astria-sequencer-relayer-proto/proto/tx.proto rename to crates/astria-proto/proto/astria/sequencer/v1/tx.proto index b5085d050..4742c4b71 100644 --- a/crates/astria-sequencer-relayer-proto/proto/tx.proto +++ b/crates/astria-proto/proto/astria/sequencer/v1/tx.proto @@ -1,6 +1,9 @@ // these types are copy pasted from here: https://github.com/cosmos/cosmos-sdk/blob/v0.44.0/proto/cosmos/tx/v1beta1/tx.proto syntax = "proto3"; + +package astria.sequencer.v1; + import "google/protobuf/any.proto"; // TxRaw is a variant of Tx that pins the signer's exact binary representation diff --git a/crates/astria-proto/proto/buf.lock b/crates/astria-proto/proto/buf.lock new file mode 100644 index 000000000..c91b5810c --- /dev/null +++ b/crates/astria-proto/proto/buf.lock @@ -0,0 +1,2 @@ +# Generated by buf. DO NOT EDIT. +version: v1 diff --git a/crates/astria-execution-apis-rpc/buf.yaml b/crates/astria-proto/proto/buf.yaml similarity index 63% rename from crates/astria-execution-apis-rpc/buf.yaml rename to crates/astria-proto/proto/buf.yaml index 727bf7413..9f0d462bd 100644 --- a/crates/astria-execution-apis-rpc/buf.yaml +++ b/crates/astria-proto/proto/buf.yaml @@ -1,5 +1,5 @@ version: v1 -name: buf.build/astria/execution-apis +name: buf.build/astria/astria breaking: use: - FILE diff --git a/crates/astria-proto/src/lib.rs b/crates/astria-proto/src/lib.rs new file mode 100644 index 000000000..53bfc4bbc --- /dev/null +++ b/crates/astria-proto/src/lib.rs @@ -0,0 +1,11 @@ +pub mod execution { + pub mod v1 { + include!(concat!(env!("OUT_DIR"), "/astria.execution.v1.rs")); + } +} + +pub mod sequencer { + pub mod v1 { + include!(concat!(env!("OUT_DIR"), "/astria.sequencer.v1.rs")); + } +} diff --git a/crates/astria-sequencer-relayer-proto/Cargo.toml b/crates/astria-sequencer-relayer-proto/Cargo.toml deleted file mode 100644 index 44cc9af85..000000000 --- a/crates/astria-sequencer-relayer-proto/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "astria-sequencer-relayer-proto" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -prost = "0.11" -prost-types = "0.11.9" - -[build-dependencies] -prost-build = "0.11" diff --git a/crates/astria-sequencer-relayer-proto/build.rs b/crates/astria-sequencer-relayer-proto/build.rs deleted file mode 100644 index 777edbcb8..000000000 --- a/crates/astria-sequencer-relayer-proto/build.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - const PROTO_ROOT: &str = "./proto/"; - println!("cargo:rerun-if-changed={PROTO_ROOT}"); - prost_build::compile_protos(&["proto/msg.proto", "proto/tx.proto"], &[PROTO_ROOT]).unwrap(); -} diff --git a/crates/astria-sequencer-relayer-proto/src/lib.rs b/crates/astria-sequencer-relayer-proto/src/lib.rs deleted file mode 100644 index 3e6d84c33..000000000 --- a/crates/astria-sequencer-relayer-proto/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -include!(concat!(env!("OUT_DIR"), "/_.rs")); diff --git a/crates/astria-sequencer-relayer/Cargo.toml b/crates/astria-sequencer-relayer/Cargo.toml index 0c7ea23fc..741d029c0 100644 --- a/crates/astria-sequencer-relayer/Cargo.toml +++ b/crates/astria-sequencer-relayer/Cargo.toml @@ -28,7 +28,7 @@ http = "0.2.9" tokio = { version = "1.24", features = [ "macros", "rt-multi-thread" ] } astria-gossipnet = { path = "../astria-gossipnet", features = [ "mdns" ] } -astria-sequencer-relayer-proto = { path = "../astria-sequencer-relayer-proto" } +astria-proto = { path = "../astria-proto" } astria-rs-cnc = { path = "../astria-rs-cnc" } [dev-dependencies] diff --git a/crates/astria-sequencer-relayer/src/sequencer_block.rs b/crates/astria-sequencer-relayer/src/sequencer_block.rs index b52cec5c7..c2ef36e32 100644 --- a/crates/astria-sequencer-relayer/src/sequencer_block.rs +++ b/crates/astria-sequencer-relayer/src/sequencer_block.rs @@ -3,7 +3,7 @@ use std::{ fmt, }; -use astria_sequencer_relayer_proto::{ +use astria_proto::sequencer::v1::{ SequencerMsg, TxBody, TxRaw,