cf3fd00350
* - standardise versions for all nym-sdk workspace dependencies - prepend sqlx-pool-guard with 'nym-' * Test remove nym-api from deps * Add oneliner to client_pool doc comments * Add note to commented out docs.rs link in sdk * remove nym-api from script * add publishing file * bring non-binary / contract / tools into workspace version * added more info to publishing.md * make deps workspace version * remove uploaded sphinx-types crate from script * remove erroueously included ignore-defaults * add zeroise to feature * chore: Release * add topology to batch * more cargo versioning * more cargo versioning - wasm utils * more cargo versioning - wasm utils * Add publish=false to manifest for cargo workspaces / crates.io publishing exclusion * remove script now switched to manifest based exclusion * rename import based on rename of contracts-common dep * Making workspace versions for publication + removing unnecessary crates from publication * Remove OOD info from publishing sdk guide * rename contract imports + remove package * temp commit: continuing with removal of path from cargo manifest and replacing with workspace version import for publication * continuing with cargo.toml updates * dryrun only erroring on known version problem crates * remove old published-crates file * Minor comment change * remove default features warning * Additional info on workspace dep comment re publish list * Add missing description to cargo.toml * Fix missing feature flags * Add missing descriptions * Fix remaining path import * Add workspace repo / homepage / documentation links to cargo.toml files * remove workspace version from excluded crate * Remove todo descriptions * Minor comment change * add homepage etc * move from bls git import to nym_bls_fork crate * Modify rest of imports from path to workspace import, excluding binaries * add directory/homepage info * fix cargo fmt * add notes to gitignore * better solution to contracts/ experiment * wasm -> nym_wasm crate renaming * fix fatfinger * add metadata to ecash cargo.toml * stub publishing guide * fix misrevolved netlink- version * Fixes and block publication of rebase re: LP * first pass @ workflows
108 lines
3.1 KiB
Rust
108 lines
3.1 KiB
Rust
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use crate::storage::wasm_client_traits::WasmClientStorageError;
|
|
use crate::topology::WasmTopologyError;
|
|
use nym_client_core::client::base_client::storage::gateways_storage::BadGateway;
|
|
use nym_client_core::error::ClientCoreError;
|
|
use nym_crypto::asymmetric::ed25519::Ed25519RecoveryError;
|
|
use nym_gateway_client::error::GatewayClientError;
|
|
use nym_sphinx::addressing::clients::RecipientFormattingError;
|
|
use nym_sphinx::anonymous_replies::requests::InvalidAnonymousSenderTagRepresentation;
|
|
use nym_topology::NymTopologyError;
|
|
use nym_validator_client::ValidatorClientError;
|
|
use nym_wasm_utils::wasm_error;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum WasmCoreError {
|
|
#[error("experienced an issue with internal client components: {source}")]
|
|
BaseClientError {
|
|
#[from]
|
|
source: ClientCoreError,
|
|
},
|
|
|
|
#[error("The provided gateway identity is invalid: {source}")]
|
|
InvalidGatewayIdentity { source: Ed25519RecoveryError },
|
|
|
|
#[error("Gateway communication failure: {source}")]
|
|
GatewayClientError {
|
|
#[from]
|
|
source: GatewayClientError,
|
|
},
|
|
|
|
#[error("failed to query nym api: {source}")]
|
|
NymApiError {
|
|
#[from]
|
|
source: ValidatorClientError,
|
|
},
|
|
|
|
#[error("failed to query nym api: {source}")]
|
|
NymApiQueryError {
|
|
#[from]
|
|
source: nym_validator_client::nym_api::error::NymAPIError,
|
|
},
|
|
|
|
#[error("The provided wasm topology was invalid: {source}")]
|
|
WasmTopologyError {
|
|
#[from]
|
|
source: WasmTopologyError,
|
|
},
|
|
|
|
#[error("The provided nym topology was invalid: {source}")]
|
|
TopologyError {
|
|
#[from]
|
|
source: NymTopologyError,
|
|
},
|
|
|
|
#[error("{raw} is not a valid url: {source}")]
|
|
MalformedUrl {
|
|
raw: String,
|
|
source: url::ParseError,
|
|
},
|
|
|
|
#[error("Network topology is currently unavailable")]
|
|
UnavailableNetworkTopology,
|
|
|
|
#[error("Mixnode {mixnode_identity} is not present in the current network topology")]
|
|
NonExistentMixnode { mixnode_identity: String },
|
|
|
|
#[error("Gateway {gateway_identity} is not present in the current network topology")]
|
|
NonExistentGateway { gateway_identity: String },
|
|
|
|
#[error("{raw} is not a valid Nym network recipient: {source}")]
|
|
MalformedRecipient {
|
|
raw: String,
|
|
source: RecipientFormattingError,
|
|
},
|
|
|
|
#[error("{raw} is not a valid Nym AnonymousSenderTag: {source}")]
|
|
MalformedSenderTag {
|
|
raw: String,
|
|
source: InvalidAnonymousSenderTagRepresentation,
|
|
},
|
|
|
|
#[error(transparent)]
|
|
BaseStorageError {
|
|
#[from]
|
|
source: nym_wasm_storage::error::StorageError,
|
|
},
|
|
|
|
#[error(transparent)]
|
|
ClientStorageError {
|
|
#[from]
|
|
source: WasmClientStorageError,
|
|
},
|
|
|
|
#[error(transparent)]
|
|
MalformedGateway {
|
|
#[from]
|
|
source: BadGateway,
|
|
},
|
|
|
|
#[error("this client has already registered with a gateway: {gateway_id:?}")]
|
|
AlreadyRegistered { gateway_id: String },
|
|
}
|
|
|
|
wasm_error!(WasmCoreError);
|