use alloc::string::{String, ToString};
use miden_protocol::errors::NoteError;
use thiserror::Error;
mod input_note_record;
mod output_note_record;
pub use input_note_record::{InputNoteRecord, InputNoteState};
pub use output_note_record::{NoteExportType, OutputNoteRecord, OutputNoteState};
pub mod input_note_states {
pub use super::input_note_record::{
CommittedNoteState,
ConsumedAuthenticatedLocalNoteState,
ConsumedExternalNoteState,
ConsumedUnauthenticatedLocalNoteState,
ExpectedNoteState,
InputNoteState,
InvalidNoteState,
NoteSubmissionData,
ProcessingAuthenticatedNoteState,
ProcessingUnauthenticatedNoteState,
UnverifiedNoteState,
};
}
#[derive(Debug, Error)]
pub enum NoteRecordError {
#[error("note record conversion error: {0}")]
ConversionError(String),
#[error("note error")]
NoteError(#[from] NoteError),
#[error("note not consumable: {0}")]
NoteNotConsumable(String),
#[error("invalid state transition: {0}")]
InvalidStateTransition(String),
#[error("state transition error: {0}")]
StateTransitionError(String),
}
impl From<NoteRecordError> for String {
fn from(err: NoteRecordError) -> String {
err.to_string()
}
}