nym-client-core-gateways-storage 1.20.4

Functionality for Nym clients to store and retrive Gateway connections
Documentation
// Copyright 2024 - Nym Technologies SA <contact@nymtech.net>
// SPDX-License-Identifier: Apache-2.0

use nym_crypto::asymmetric::ed25519::Ed25519RecoveryError;
use nym_gateway_requests::shared_key::SharedKeyConversionError;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum BadGateway {
    #[error("{typ} is not a valid gateway type")]
    InvalidGatewayType { typ: String },

    #[error("the provided gateway identity {gateway_id} is malformed: {source}")]
    MalformedGatewayIdentity {
        gateway_id: String,

        #[source]
        source: Ed25519RecoveryError,
    },

    #[error("the shared keys provided for gateway {gateway_id} are malformed: {source}")]
    MalformedSharedKeys {
        gateway_id: String,

        #[source]
        source: SharedKeyConversionError,
    },

    #[error("could not find any valid shared keys for gateway {gateway_id}")]
    MissingSharedKey { gateway_id: String },

    #[error(
        "the listening address of gateway {gateway_id} ({raw_listener}) is malformed: {source}"
    )]
    MalformedListener {
        gateway_id: String,

        raw_listener: String,

        #[source]
        source: url::ParseError,
    },

    #[error("the listening address ({raw_listener}) is malformed: {source}")]
    MalformedListenerNoId {
        raw_listener: String,

        #[source]
        source: url::ParseError,
    },
}