iota_types/stardust/
error.rs1use std::convert::Infallible;
6
7use iota_stardust_sdk::types::block::output::FoundryId;
8use packable::error::UnknownTagError;
9use thiserror::Error;
10
11#[derive(Debug, Error)]
12pub enum StardustError {
13 #[error("unsupported Hornet snapshot version: expected {0}, got {1}")]
14 UnsupportedHornetSnapshotVersion(u8, u8),
15 #[error("invalid snapshot kind: {0}")]
16 InvalidHornetSnapshotKind(u8),
17 #[error("invalid Hornet genesis snapshot: milestone diff count must be 0, but was {0}")]
18 InvalidHornetGenesisSnapshot(u32),
19 #[error("block error: {0}")]
20 Block(#[from] iota_stardust_sdk::types::block::Error),
21 #[error("{0}")]
22 UnknownTag(#[from] UnknownTagError<u8>),
23 #[error(
24 "cannot convert `FoundryOutput` with `FoundryId` {foundry_id} to `NativeTokenPackageData`: {err}"
25 )]
26 FoundryConversionError {
27 foundry_id: FoundryId,
28 err: anyhow::Error,
29 },
30 #[error("framework packages path not found")]
31 FrameworkPackagesPathNotFound,
32 #[error(
33 "failed to derive valid move identifier from symbol `{symbol}`, invalid identifier: `{identifier}`"
34 )]
35 InvalidMoveIdentifierDerived { symbol: String, identifier: String },
36 #[error("melting tokens must not be greater than minted tokens")]
37 MeltingTokensMustNotBeGreaterThanMintedTokens,
38 #[error("circulating supply must not be greater than maximum supply")]
39 CirculatingSupplyMustNotBeGreaterThanMaximumSupply,
40 #[error("Hornet Stardust snapshot parameters not found")]
41 HornetSnapshotParametersNotFound,
42}
43
44impl From<Infallible> for StardustError {
45 fn from(_: Infallible) -> Self {
46 unreachable!()
47 }
48}