mod babbage;
mod transaction;
pub use babbage::BuildBabbage;
pub use transaction::model::{BuiltTransaction, Input, Output, ScriptKind, StagingTransaction};
#[derive(Debug, Clone, PartialEq, thiserror::Error)]
pub enum TxBuilderError {
#[error("Transaction has no inputs")]
MalformedScript,
#[error("Could not decode datum bytes")]
MalformedDatum,
#[error("Invalid bytes length for datum hash")]
MalformedDatumHash,
#[error("Input/policy pointed to by redeemer not found in tx")]
RedeemerTargetMissing,
#[error("Invalid network ID")]
InvalidNetworkId,
#[error("Corrupted transaction bytes in built transaction")]
CorruptedTxBytes,
#[error("Public key for private key is malformed")]
MalformedKey,
#[error("Asset name must be 32 bytes or less")]
AssetNameTooLong,
}