diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 27801560..88768c1f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -25,6 +25,10 @@ jobs: uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.toolchain }} + - name: Install Protoc + uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build on Rust ${{ matrix.toolchain }} run: | cargo build ${{ matrix.arguments }} --verbose --color always @@ -42,6 +46,10 @@ jobs: with: toolchain: stable components: rustfmt, clippy + - name: Install Protoc + uses: arduino/setup-protoc@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Run rustfmt run: | cargo fmt --verbose --check -- --color always diff --git a/Cargo.lock b/Cargo.lock index 91b28bda..a8ace649 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -168,6 +168,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes 1.1.0", + "futures-util", + "http", + "http-body 0.4.6", + "hyper 0.14.28", + "itoa 1.0.10", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite 0.2.13", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes 1.1.0", + "futures-util", + "http", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "backoff" version = "0.4.0" @@ -1004,6 +1049,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1446,6 +1497,12 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "memchr" version = "2.7.1" @@ -1561,7 +1618,7 @@ dependencies = [ "log", "memchr", "mime", - "spin 0.9.8", + "spin", "version_check", ] @@ -1881,6 +1938,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.43", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1916,78 +1983,56 @@ dependencies = [ [[package]] name = "prost" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" -dependencies = [ - "bytes 1.1.0", - "prost-derive 0.8.0", -] - -[[package]] -name = "prost" -version = "0.9.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes 1.1.0", - "prost-derive 0.9.0", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.9.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" dependencies = [ "bytes 1.1.0", - "heck", + "heck 0.4.1", "itertools", - "lazy_static", "log", "multimap", + "once_cell", "petgraph", - "prost 0.9.0", + "prettyplease", + "prost", "prost-types", "regex", + "syn 2.0.43", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.8.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 1.0.98", -] - -[[package]] -name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 1.0.98", + "syn 2.0.43", ] [[package]] name = "prost-types" -version = "0.9.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" dependencies = [ - "bytes 1.1.0", - "prost 0.9.0", + "prost", ] [[package]] @@ -2105,7 +2150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779" dependencies = [ "pem", - "ring 0.17.7", + "ring", "rustls-pki-types", "time", "x509-parser", @@ -2212,21 +2257,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi 0.3.9", -] - [[package]] name = "ring" version = "0.17.7" @@ -2236,8 +2266,8 @@ dependencies = [ "cc", "getrandom 0.2.11", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.48.0", ] @@ -2296,15 +2326,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ - "base64 0.13.0", "log", - "ring 0.16.20", - "sct", - "webpki", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] @@ -2316,12 +2347,39 @@ dependencies = [ "base64 0.21.2", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab" +dependencies = [ + "base64 0.21.2", + "rustls-pki-types", +] + [[package]] name = "rustls-pki-types" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + [[package]] name = "ryu" version = "1.0.9" @@ -2350,16 +2408,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "secp256k1" version = "0.22.1" @@ -2566,12 +2614,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -2601,7 +2643,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro-error", "proc-macro2", "quote", @@ -2636,6 +2678,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "synstructure" version = "0.12.6" @@ -2696,7 +2744,7 @@ dependencies = [ "lightning-block-sync", "lightning-net-tokio", "log", - "prost 0.9.0", + "prost", "rand 0.8.5", "rcgen", "rusqlite", @@ -2709,7 +2757,7 @@ dependencies = [ "tokio 1.36.0", "tokio-stream", "toml", - "tonic 0.6.2", + "tonic", "tonic-build", "torut", "triggered", @@ -2724,12 +2772,12 @@ dependencies = [ "chacha20poly1305", "hex", "lightning", - "prost 0.9.0", + "prost", "rand 0.8.5", "rusqlite", "serde", "serde_json", - "tonic 0.6.2", + "tonic", "tonic-build", ] @@ -2889,13 +2937,13 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ "rustls", + "rustls-pki-types", "tokio 1.36.0", - "webpki", ] [[package]] @@ -2947,20 +2995,6 @@ dependencies = [ "tokio 0.2.25", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes 1.1.0", - "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.2.13", - "tokio 1.36.0", -] - [[package]] name = "tokio-util" version = "0.7.10" @@ -2986,48 +3020,15 @@ dependencies = [ [[package]] name = "tonic" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "796c5e1cd49905e65dd8e700d4cb1dffcbfdb4fc9d017de08c1a537afd83627c" -dependencies = [ - "async-stream", - "async-trait", - "base64 0.13.0", - "bytes 1.1.0", - "futures-core", - "futures-util", - "h2 0.3.25", - "http", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.8.0", - "prost-derive 0.8.0", - "tokio 1.36.0", - "tokio-rustls", - "tokio-stream", - "tokio-util 0.6.10", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - -[[package]] -name = "tonic" -version = "0.6.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", - "base64 0.13.0", + "axum", + "base64 0.21.2", "bytes 1.1.0", - "futures-core", - "futures-util", "h2 0.3.25", "http", "http-body 0.4.6", @@ -3035,29 +3036,29 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.9.0", - "prost-derive 0.9.0", + "prost", + "rustls-pemfile 2.1.1", + "rustls-pki-types", "tokio 1.36.0", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", - "syn 1.0.98", + "syn 2.0.43", ] [[package]] @@ -3249,12 +3250,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -3325,7 +3320,7 @@ dependencies = [ "multer", "percent-encoding", "pin-project", - "rustls-pemfile", + "rustls-pemfile 1.0.3", "scoped-tls", "serde", "serde_json", @@ -3434,7 +3429,7 @@ dependencies = [ "tempdir", "teos-common", "tokio 1.36.0", - "tonic 0.5.2", + "tonic", ] [[package]] @@ -3447,16 +3442,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "which" version = "4.2.4" @@ -3774,7 +3759,7 @@ dependencies = [ "lazy_static", "nom", "oid-registry", - "ring 0.17.7", + "ring", "rusticata-macros", "thiserror", "time", diff --git a/Cargo.toml b/Cargo.toml index 3a62379b..76af6ed9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [workspace] +resolver = "2" members = [ "teos", diff --git a/teos-common/Cargo.toml b/teos-common/Cargo.toml index be0cb489..17766893 100644 --- a/teos-common/Cargo.toml +++ b/teos-common/Cargo.toml @@ -2,18 +2,18 @@ name = "teos-common" version = "0.2.0" authors = ["Sergi Delgado Segura "] -edition = "2018" +edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # General hex = { version = "0.4.3", features = [ "serde" ] } -prost = "0.9" +prost = "0.12" rusqlite = { version = "0.26.0", features = [ "bundled", "limits" ] } serde = "1.0.130" serde_json = "1.0" -tonic = "0.6" +tonic = "0.11" # Crypto rand = "0.8.4" @@ -24,4 +24,4 @@ bitcoin = { version = "0.28.0", features = [ "use-serde" ] } lightning = "0.0.108" [build-dependencies] -tonic-build = "0.6" \ No newline at end of file +tonic-build = "0.11" \ No newline at end of file diff --git a/teos/Cargo.toml b/teos/Cargo.toml index 3d66c9db..0fe9339c 100644 --- a/teos/Cargo.toml +++ b/teos/Cargo.toml @@ -3,7 +3,7 @@ name = "teos" version = "0.2.0" authors = ["Sergi Delgado Segura "] license = "MIT" -edition = "2018" +edition = "2021" default-run="teosd" [[bin]] @@ -19,7 +19,7 @@ path = "src/main.rs" hex = { version = "0.4.3", features = [ "serde" ] } home = "0.5.3" log = "0.4" -prost = "0.9" +prost = "0.12" rcgen = { version = "0.13.1", features = ["pem", "x509-parser"] } rusqlite = { version = "0.26.0", features = [ "bundled", "limits" ] } serde = "1.0.130" @@ -27,7 +27,7 @@ serde_json = "1.0" simple_logger = "2.1.0" structopt = "0.3" toml = "0.5" -tonic = { version = "0.6", features = [ "tls", "transport" ] } +tonic = { version = "0.11", features = [ "tls", "transport" ] } tokio = { version = "1.5", features = [ "rt-multi-thread" ] } triggered = "0.1.2" warp = "0.3.5" @@ -44,7 +44,7 @@ lightning-block-sync = { version = "0.0.108", features = [ "rpc-client" ] } teos-common = { path = "../teos-common" } [build-dependencies] -tonic-build = "0.6" +tonic-build = "0.11" [dev-dependencies] jsonrpc-http-server = "17.1.0" diff --git a/watchtower-plugin/Cargo.toml b/watchtower-plugin/Cargo.toml index 976f8e9d..ed9aa645 100755 --- a/watchtower-plugin/Cargo.toml +++ b/watchtower-plugin/Cargo.toml @@ -3,7 +3,7 @@ name = "watchtower-plugin" version = "0.2.0" authors = ["Sergi Delgado Segura "] license = "MIT" -edition = "2018" +edition = "2021" [[bin]] name = "watchtower-client" @@ -21,7 +21,7 @@ log = "0.4.16" rusqlite = { version = "0.26.0", features = [ "bundled", "limits" ] } serde = "1.0.130" serde_json = { version = "1.0", features = [ "preserve_order" ] } -tonic = { version = "^0.5", features = [ "tls", "transport" ] } +tonic = { version = "0.11", features = [ "tls", "transport" ] } tokio = { version = "1.5", features = [ "rt-multi-thread", "fs" ] } # Bitcoin and Lightning