#[derive(Debug, thiserror::Error)]
pub enum Ensip25Error {
#[error("erc7930: buffer too short (need at least 6 bytes, got {len})")]
BufferTooShort {
len: usize,
},
#[error("erc7930: unsupported version {version:#06x}")]
UnsupportedVersion {
version: u16,
},
#[error("erc7930: truncated payload (expected {expected} bytes, have {available})")]
TruncatedPayload {
expected: usize,
available: usize,
},
#[error("erc7930: both chain reference and address are empty")]
EmptyAddress,
#[error("hex decode error: {0}")]
Hex(#[from] alloy_primitives::hex::FromHexError),
#[error("erc7930: {field} length {len} exceeds 255")]
FieldTooLong {
field: &'static str,
len: usize,
},
#[error("agent id must not contain '[' or ']': {agent_id:?}")]
InvalidAgentId {
agent_id: String,
},
#[cfg(feature = "provider")]
#[error("ens error: {0}")]
Ens(#[from] alloy_ens::EnsError),
#[cfg(feature = "erc8004")]
#[error("erc8004 error: {0}")]
Erc8004(#[from] erc8004::Erc8004Error),
}
pub type Result<T> = core::result::Result<T, Ensip25Error>;