From a5144ea2fb2b4c75b8948e92f7b002244317e583 Mon Sep 17 00:00:00 2001 From: kostekIV <27210860+kostekIV@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:42:55 +0100 Subject: [PATCH] Bump jsonrpsee (#14) --- .gitmodules | 3 - Cargo.lock | 148 ++++++++++++++---- Cargo.toml | 2 +- benches/bench/rate_limit.rs | 6 +- src/extensions/client/mod.rs | 4 +- src/extensions/rate_limit/connection.rs | 5 +- src/extensions/server/proxy_get_request.rs | 4 +- .../subscriptions/merge_subscription.rs | 2 +- src/server.rs | 4 +- src/utils/mod.rs | 4 +- vendor/jsonrpsee | 1 - 11 files changed, 137 insertions(+), 46 deletions(-) delete mode 160000 vendor/jsonrpsee diff --git a/.gitmodules b/.gitmodules index 121494f..0ffe5c3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ [submodule "vendor/governor"] path = vendor/governor url = https://github.com/AcalaNetwork/governor.git -[submodule "vendor/jsonrpsee"] - path = vendor/jsonrpsee - url = https://github.com/AcalaNetwork/jsonrpsee.git diff --git a/Cargo.lock b/Cargo.lock index f351cae..1ce170a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1380,9 +1380,9 @@ dependencies = [ [[package]] name = "gloo-net" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4" +checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" dependencies = [ "futures-channel", "futures-core", @@ -1641,10 +1641,10 @@ dependencies = [ "http", "hyper 0.14.27", "log", - "rustls", - "rustls-native-certs", + "rustls 0.21.9", + "rustls-native-certs 0.6.3", "tokio 1.34.0", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -1921,7 +1921,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16fcc9dd231e72d22993f1643d5f7f0db785737dbe3c3d7ca222916ab4280795" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -1937,7 +1939,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0476c96eb741b40d39dcb39d0124e3b9be9840ec77653c42a0996563ae2a53f7" dependencies = [ "futures-channel", "futures-util", @@ -1945,11 +1949,12 @@ dependencies = [ "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio 1.34.0", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util 0.7.10", "tracing", "url", @@ -1958,7 +1963,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b974d8f6139efbe8425f32cb33302aba6d5e049556b5bfc067874e7a0da54a2e" dependencies = [ "anyhow", "async-lock 3.1.2", @@ -1969,20 +1976,23 @@ dependencies = [ "hyper 0.14.27", "jsonrpsee-types", "parking_lot 0.12.1", + "pin-project", "rand 0.8.5", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio 1.34.0", + "tokio-stream", "tracing", "wasm-bindgen-futures", ] [[package]] name = "jsonrpsee-http-client" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19dc795a277cff37f27173b3ca790d042afcc0372c34a7ca068d2e76de2cb6d1" dependencies = [ "async-trait", "hyper 0.14.27", @@ -2000,7 +2010,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68e79a7109506831bf0cbeaad08729cdf0e592300c00f626bccd6d479974221e" dependencies = [ "heck", "proc-macro-crate", @@ -2011,7 +2023,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "344440ccd8492c1ca65f1391c5aa03f91189db38d602d189b9266a1a5c6a4d22" dependencies = [ "futures-util", "http", @@ -2033,19 +2047,22 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b13dac43c1a9fc2648b37f306b0a5b0e29b2a6e1c36a33b95c1948da2494e9c5" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30593c401de5940c0267a3c5e9c7eb76d8a1b80590d6ccaa59d910ea688b4d5e" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2054,7 +2071,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.20.0" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1bbaaf4ce912654081d997ade417c3155727db106c617c0612e85f504c2f744" dependencies = [ "http", "jsonrpsee-client-transport", @@ -2757,9 +2776,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ "toml_edit", ] @@ -3172,10 +3191,24 @@ checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" dependencies = [ "log", "ring", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -3183,7 +3216,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.0", + "rustls-pki-types", "schannel", "security-framework", ] @@ -3197,6 +3243,22 @@ dependencies = [ "base64 0.21.5", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b" +dependencies = [ + "base64 0.21.5", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3207,6 +3269,17 @@ dependencies = [ "untrusted", ] +[[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" @@ -3755,7 +3828,18 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.9", + "tokio 1.34.0", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.2", + "rustls-pki-types", "tokio 1.34.0", ] @@ -3768,6 +3852,7 @@ dependencies = [ "futures-core", "pin-project-lite 0.2.13", "tokio 1.34.0", + "tokio-util 0.7.10", ] [[package]] @@ -3821,9 +3906,9 @@ checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap 2.1.0", "toml_datetime", @@ -4230,9 +4315,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "winapi" @@ -4467,6 +4555,12 @@ dependencies = [ "syn 2.0.39", ] +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" + [[package]] name = "zstd" version = "0.13.0" diff --git a/Cargo.toml b/Cargo.toml index 27b11cd..38e78d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,7 @@ tracing-subscriber = { version = "0.3.16", features = ["env-filter", "json"] } prometheus-endpoint = "2.1.2" -jsonrpsee = { path = "./vendor/jsonrpsee/jsonrpsee", features = ["full"] } +jsonrpsee = { version = "0.22.1",features = ["full"] } governor = { path = "./vendor/governor/governor" } [dev-dependencies] diff --git a/benches/bench/rate_limit.rs b/benches/bench/rate_limit.rs index e89678c..6ad6310 100644 --- a/benches/bench/rate_limit.rs +++ b/benches/bench/rate_limit.rs @@ -4,8 +4,8 @@ use futures_util::FutureExt; use governor::Jitter; use governor::RateLimiter; use jsonrpsee::server::middleware::rpc::RpcServiceT; -use jsonrpsee::types::{Request, ResponsePayload}; -use jsonrpsee::MethodResponse; +use jsonrpsee::types::Request; +use jsonrpsee::{MethodResponse, ResponsePayload}; use std::num::NonZeroU32; use std::time::Duration; use subway::extensions::rate_limit::{build_quota, ConnectionRateLimit, IpRateLimit}; @@ -16,7 +16,7 @@ impl RpcServiceT<'static> for MockService { type Future = BoxFuture<'static, MethodResponse>; fn call(&self, req: Request<'static>) -> Self::Future { - async move { MethodResponse::response(req.id, ResponsePayload::result("ok"), 1024) }.boxed() + async move { MethodResponse::response(req.id, ResponsePayload::success("ok"), 1024) }.boxed() } } diff --git a/src/extensions/client/mod.rs b/src/extensions/client/mod.rs index a05441d..0be3c18 100644 --- a/src/extensions/client/mod.rs +++ b/src/extensions/client/mod.rs @@ -11,8 +11,8 @@ use async_trait::async_trait; use futures::TryFutureExt; use jsonrpsee::{ core::{ - client::{ClientT, Subscription, SubscriptionClientT}, - Error, JsonValue, + client::{ClientT, Error, Subscription, SubscriptionClientT}, + JsonValue, }, ws_client::{WsClient, WsClientBuilder}, }; diff --git a/src/extensions/rate_limit/connection.rs b/src/extensions/rate_limit/connection.rs index 0bd74d4..ccc2f3e 100644 --- a/src/extensions/rate_limit/connection.rs +++ b/src/extensions/rate_limit/connection.rs @@ -88,7 +88,8 @@ where #[cfg(test)] mod tests { use super::*; - use jsonrpsee::types::{Id, ResponsePayload}; + use jsonrpsee::types::Id; + use jsonrpsee::ResponsePayload; #[derive(Clone)] struct MockService; @@ -96,7 +97,7 @@ mod tests { type Future = BoxFuture<'static, MethodResponse>; fn call(&self, req: Request<'static>) -> Self::Future { - async move { MethodResponse::response(req.id, ResponsePayload::result("ok"), 1024) }.boxed() + async move { MethodResponse::response(req.id, ResponsePayload::success("ok"), 1024) }.boxed() } } diff --git a/src/extensions/server/proxy_get_request.rs b/src/extensions/server/proxy_get_request.rs index 9631d37..72b2454 100644 --- a/src/extensions/server/proxy_get_request.rs +++ b/src/extensions/server/proxy_get_request.rs @@ -31,7 +31,7 @@ use hyper::header::{ACCEPT, CONTENT_TYPE}; use hyper::http::HeaderValue; use hyper::{Body, Method, Request, Response, Uri}; use jsonrpsee::{ - core::Error as RpcError, + core::client::Error as RpcError, types::{Id, RequestSer}, }; use std::collections::HashMap; @@ -198,7 +198,7 @@ pub mod response { } /// Create a response for json internal error. pub(crate) fn internal_error() -> hyper::Response<hyper::Body> { - let err = ResponsePayload::error(ErrorObjectOwned::from(ErrorCode::InternalError)); + let err = ResponsePayload::<()>::error(ErrorObjectOwned::from(ErrorCode::InternalError)); let rp = Response::new(err, Id::Null); let error = serde_json::to_string(&rp).expect("built from known-good data; qed"); diff --git a/src/middlewares/subscriptions/merge_subscription.rs b/src/middlewares/subscriptions/merge_subscription.rs index cbc20f1..5f67c46 100644 --- a/src/middlewares/subscriptions/merge_subscription.rs +++ b/src/middlewares/subscriptions/merge_subscription.rs @@ -88,7 +88,7 @@ impl MergeSubscriptionMiddleware { unsubscribe: String, ) -> Result< Box<dyn FnOnce() -> broadcast::Receiver<SubscriptionMessage> + Sync + Send + 'static>, - jsonrpsee::core::Error, + jsonrpsee::core::client::Error, > { if let Some(tx) = self.upstream_subs.read().await.get(&key).cloned() { tracing::trace!("Found existing upstream subscription for {}", &subscribe); diff --git a/src/server.rs b/src/server.rs index d9b2319..67d8ed2 100644 --- a/src/server.rs +++ b/src/server.rs @@ -106,7 +106,7 @@ pub async fn build(config: Config) -> anyhow::Result<SubwayServerHandle> { let result = result_rx .await - .map_err(|_| errors::map_error(jsonrpsee::core::Error::RequestTimeout))?; + .map_err(|_| errors::map_error(jsonrpsee::core::client::Error::RequestTimeout))?; match result.as_ref() { Ok(_) => tracer.span_ok(), @@ -174,7 +174,7 @@ pub async fn build(config: Config) -> anyhow::Result<SubwayServerHandle> { let result = result_rx .await - .map_err(|_| errors::map_error(jsonrpsee::core::Error::RequestTimeout))?; + .map_err(|_| errors::map_error(jsonrpsee::core::client::Error::RequestTimeout))?; match result.as_ref() { Ok(_) => { diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 2fe38c8..87d8ca9 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -29,8 +29,8 @@ pub mod errors { ErrorObjectOwned::owned(INTERNAL_ERROR_CODE, INTERNAL_ERROR_MSG, Some(msg.to_string())) } - pub fn map_error(err: jsonrpsee::core::Error) -> ErrorObjectOwned { - use jsonrpsee::core::Error::*; + pub fn map_error(err: jsonrpsee::core::client::Error) -> ErrorObjectOwned { + use jsonrpsee::core::client::Error::*; match err { Call(e) => e, x => internal_error(x), diff --git a/vendor/jsonrpsee b/vendor/jsonrpsee deleted file mode 160000 index 98675a0..0000000 --- a/vendor/jsonrpsee +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 98675a06ee0d386256954c4fa21b3fb02345d045