use bitcoin::Txid;
#[derive(Debug, thiserror::Error)]
pub enum RpcError {
#[error("HTTP transport: {0}")]
Transport(#[source] reqwest::Error),
#[error("JSON-RPC error: code={code}, message={message}")]
ServerError { code: i64, message: String },
#[error("invalid JSON-RPC response: {0}")]
InvalidResponse(String),
#[error("batch response missing item id={id}")]
MissingBatchItem { id: u64 },
}
#[derive(Debug, thiserror::Error)]
pub enum CoreError {
#[error(transparent)]
Rpc(#[from] RpcError),
#[error("transaction not found: {0}")]
TxNotFound(Txid),
#[error("invalid transaction data: {0}")]
InvalidTxData(String),
#[error("label parse error at line {line}: {message}")]
LabelParse { line: usize, message: String },
#[error(transparent)]
Io(#[from] std::io::Error),
}