53 lines
1.7 KiB
Rust
53 lines
1.7 KiB
Rust
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use crate::MixId;
|
|
use nym_sphinx::chunking::ChunkingError;
|
|
use nym_sphinx::receiver::MessageRecoveryError;
|
|
use nym_topology::NymTopologyError;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum NetworkTestingError {
|
|
#[error(transparent)]
|
|
SerializationFailure(#[from] serde_json::Error),
|
|
|
|
#[error("could not recover received test message: {source}")]
|
|
MalformedTestMessageReceived { source: serde_json::Error },
|
|
|
|
#[error(transparent)]
|
|
InvalidTopology(#[from] NymTopologyError),
|
|
|
|
#[error("The specified mixnode (id: {mix_id}) doesn't exist")]
|
|
NonExistentMixnode { mix_id: MixId },
|
|
|
|
#[error("The specified mixnode (identity: {mix_identity}) doesn't exist")]
|
|
NonExistentMixnodeIdentity { mix_identity: String },
|
|
|
|
#[error("The specified gateway (id: {gateway_identity}) doesn't exist")]
|
|
NonExistentGateway { gateway_identity: String },
|
|
|
|
#[error("The provided test message is too long to fit in a single sphinx packet")]
|
|
TestMessageTooLong,
|
|
|
|
#[error(
|
|
"could not recover underlying data from the received packet since it was malformed: {source}"
|
|
)]
|
|
MalformedPacketReceived {
|
|
#[from]
|
|
source: MessageRecoveryError,
|
|
},
|
|
|
|
#[error("Received ack packet could not be recovered")]
|
|
UnrecoverableAck,
|
|
|
|
#[error("could not recover ack FragmentIdentifier: {source}")]
|
|
MalformedAckIdentifier { source: ChunkingError },
|
|
|
|
#[error("received a packet that could not be reconstructed into a full message with a single fragment")]
|
|
NonReconstructablePacket,
|
|
|
|
#[error("the recipient of the test packet was never specified")]
|
|
UnknownPacketRecipient,
|
|
}
|