diff --git a/Cargo.lock b/Cargo.lock index c460d2c957b..1d78c6821bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4294,10 +4294,10 @@ dependencies = [ "nym-ecash-time", "nym-mixnet-contract-common", "nym-node-requests", + "nym-serde-helpers", "rocket", "schemars", "serde", - "serde-helpers", "serde_json", "sha2 0.10.8", "tendermint 0.37.0", @@ -5709,6 +5709,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "nym-serde-helpers" +version = "0.1.0" +dependencies = [ + "base64 0.21.7", + "bs58 0.5.1", + "serde", +] + [[package]] name = "nym-service-providers-common" version = "0.1.0" @@ -7954,15 +7963,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-helpers" -version = "0.1.0" -dependencies = [ - "base64 0.21.7", - "bs58 0.5.1", - "serde", -] - [[package]] name = "serde-json-wasm" version = "0.5.0" diff --git a/common/serde-helpers/Cargo.toml b/common/serde-helpers/Cargo.toml index f6907190b39..1cb5c76fb74 100644 --- a/common/serde-helpers/Cargo.toml +++ b/common/serde-helpers/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "serde-helpers" +name = "nym-serde-helpers" version = "0.1.0" authors.workspace = true repository.workspace = true @@ -12,7 +12,7 @@ license.workspace = true [dependencies] -serde = { workspace = true, default-features = false } +serde = { workspace = true } bs58 = { workspace = true, optional = true } base64 = { workspace = true, optional = true } diff --git a/nym-api/nym-api-requests/Cargo.toml b/nym-api/nym-api-requests/Cargo.toml index d908694c5d3..a4730db70e6 100644 --- a/nym-api/nym-api-requests/Cargo.toml +++ b/nym-api/nym-api-requests/Cargo.toml @@ -24,7 +24,7 @@ sha2 = "0.10.8" # for serde on secp256k1 signatures ecdsa = { workspace = true, features = ["serde"] } -serde-helpers = { path = "../../common/serde-helpers", features = ["bs58", "base64"] } +nym-serde-helpers = { path = "../../common/serde-helpers", features = ["bs58", "base64"] } nym-credentials-interface = { path = "../../common/credentials-interface" } nym-crypto = { path = "../../common/crypto", features = ["serde", "asymmetric"] } diff --git a/nym-api/nym-api-requests/src/ecash/models.rs b/nym-api/nym-api-requests/src/ecash/models.rs index ea5a0bf8afd..bb3453463cd 100644 --- a/nym-api/nym-api-requests/src/ecash/models.rs +++ b/nym-api/nym-api-requests/src/ecash/models.rs @@ -283,7 +283,7 @@ pub struct CredentialsRequestBody { #[derive(Clone, Serialize, Deserialize, Debug, JsonSchema, PartialEq)] pub struct SerialNumberWrapper( - #[serde(with = "serde_helpers::bs58")] + #[serde(with = "nym_serde_helpers::bs58")] #[schemars(with = "String")] Vec, ); @@ -309,7 +309,7 @@ impl From> for SerialNumberWrapper { #[derive(Clone, Serialize, Deserialize, Debug, JsonSchema, PartialEq)] pub struct BatchRedeemTicketsBody { - #[serde(with = "serde_helpers::bs58")] + #[serde(with = "nym_serde_helpers::bs58")] #[schemars(with = "String")] pub digest: Vec, pub included_serial_numbers: Vec, @@ -358,7 +358,7 @@ pub struct EcashBatchTicketRedemptionResponse { #[derive(Clone, Serialize, Deserialize, Debug, JsonSchema)] #[serde(rename_all = "camelCase")] pub struct SpentCredentialsResponse { - #[serde(with = "serde_helpers::base64")] + #[serde(with = "nym_serde_helpers::base64")] #[schemars(with = "String")] pub bitmap: Vec, } diff --git a/nym-api/src/node_status_api/local_guard.rs b/nym-api/src/node_status_api/local_guard.rs deleted file mode 100644 index 9be3a252c22..00000000000 --- a/nym-api/src/node_status_api/local_guard.rs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2021 - Nym Technologies SA -// SPDX-License-Identifier: GPL-3.0-only - -use rocket::http::Status; -use rocket::request::{FromRequest, Outcome}; -use rocket::Request; -use std::fmt::Debug; -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; - -#[derive(Debug)] -pub struct NonLocalRequestError; - -/// Request guard that only allows requests coming from a local address -pub(crate) struct LocalRequest; - -fn is_local_address(ip: Option) -> bool { - if let Some(address) = ip { - match address { - IpAddr::V4(ip) => ip == Ipv4Addr::LOCALHOST, - IpAddr::V6(ip) => ip == Ipv6Addr::LOCALHOST, - } - } else { - false - } -} - -#[rocket::async_trait] -impl<'r> FromRequest<'r> for LocalRequest { - type Error = NonLocalRequestError; - - async fn from_request(request: &'r Request<'_>) -> Outcome { - if is_local_address(request.client_ip()) { - Outcome::Success(LocalRequest) - } else { - warn!( - "Received a request from {:?} for a local-only route", - request.client_ip() - ); - Outcome::Error((Status::Unauthorized, NonLocalRequestError)) - } - } -} diff --git a/nym-api/src/node_status_api/mod.rs b/nym-api/src/node_status_api/mod.rs index 91967ebcb89..684dac11ae4 100644 --- a/nym-api/src/node_status_api/mod.rs +++ b/nym-api/src/node_status_api/mod.rs @@ -16,7 +16,6 @@ use std::time::Duration; pub(crate) mod cache; pub(crate) mod helpers; -pub(crate) mod local_guard; pub(crate) mod models; pub(crate) mod reward_estimate; pub(crate) mod routes;