chore: fix lint warnings and outdated tests (#475)

This commit is contained in:
Santiago Carmuega 2024-07-01 11:34:31 -03:00 committed by GitHub
parent acf18f202b
commit 3f0137ae02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 33 additions and 23 deletions

View file

@ -102,7 +102,10 @@ fn iterate_till_point(
if block.hash().as_ref().eq(block_hash) && block.slot() == slot { if block.hash().as_ref().eq(block_hash) && block.slot() == slot {
Ok(iter) Ok(iter)
} else { } else {
Err(Error::CannotFindBlock(Point::Specific(slot, block_hash.to_vec())).into()) Err(Error::CannotFindBlock(Point::Specific(
slot,
block_hash.to_vec(),
)))
} }
} }
Some(Err(_)) | None => Ok(iter), Some(Err(_)) | None => Ok(iter),
@ -231,7 +234,7 @@ pub fn read_blocks_from_point(
if block.slot() == 0 && block.number() == 0 { if block.slot() == 0 && block.number() == 0 {
Ok(Box::new(iter)) Ok(Box::new(iter))
} else { } else {
Err(Error::OriginMissing.into()) Err(Error::OriginMissing)
} }
} }
Some(Err(_)) | None => Ok(Box::new(iter)), Some(Err(_)) | None => Ok(Box::new(iter)),

View file

@ -45,9 +45,7 @@ pub struct Reader {
impl Reader { impl Reader {
fn read_version(inner: &mut BufReader<File>) -> Result<u8, Error> { fn read_version(inner: &mut BufReader<File>) -> Result<u8, Error> {
let mut buf = [0u8; 1]; let mut buf = [0u8; 1];
inner inner.read_exact(&mut buf).map_err(Error::VersionMissing)?;
.read_exact(&mut buf)
.map_err(|e| Error::VersionMissing(e))?;
let version = buf[0]; let version = buf[0];
Ok(version) Ok(version)

View file

@ -156,12 +156,15 @@ mod tests {
} }
#[test] #[test]
fn can_parse_inconsistent_entries() { fn errors_on_inconsistent_entries() {
let reader = let reader =
super::read_entries(Path::new("../test_data/inconsistent_indexes"), "10366").unwrap(); super::read_entries(Path::new("../test_data/inconsistent_indexes"), "10366").unwrap();
for entry in reader { for entry in reader {
entry.unwrap(); match entry {
Ok(_) => continue,
Err(x) => assert!(matches!(x, super::Error::InconsistentState)),
}
} }
} }
} }

View file

@ -208,4 +208,4 @@ pub enum Error {
pub enum Response<Reject> { pub enum Response<Reject> {
Accepted, Accepted,
Rejected(Reject), Rejected(Reject),
} }

View file

@ -38,15 +38,20 @@ where
impl<'b, Tx: Decode<'b, ()>, Reject: Decode<'b, ()>> Decode<'b, ()> for Message<Tx, Reject> { impl<'b, Tx: Decode<'b, ()>, Reject: Decode<'b, ()>> Decode<'b, ()> for Message<Tx, Reject> {
fn decode(d: &mut Decoder<'b>, _ctx: &mut ()) -> Result<Self, decode::Error> { fn decode(d: &mut Decoder<'b>, _ctx: &mut ()) -> Result<Self, decode::Error> {
if let Err(_) = d.array() { if d.array().is_err() {
// if the first element isn't an array, it's a plutus error // if the first element isn't an array, it's a plutus error
// the node sends string data // the node sends string data
let rejection = d.decode()?; let rejection = d.decode()?;
// skip this data via setting the decoder position, because it doesn't recognize it with rejection decode
let _ = d.set_position(d.input().len()); // skip this data via setting the decoder position, because it doesn't recognize
// it with rejection decode
d.set_position(d.input().len());
return Ok(Message::RejectTx(rejection)); return Ok(Message::RejectTx(rejection));
} }
let label = d.u16()?; let label = d.u16()?;
match label { match label {
0 => { 0 => {
let tx = d.decode()?; let tx = d.decode()?;
@ -55,8 +60,11 @@ impl<'b, Tx: Decode<'b, ()>, Reject: Decode<'b, ()>> Decode<'b, ()> for Message<
1 => Ok(Message::AcceptTx), 1 => Ok(Message::AcceptTx),
2 => { 2 => {
let rejection = d.decode()?; let rejection = d.decode()?;
// skip this data via setting the decoder position, because it doesn't recognize it with rejection decode
let _ = d.set_position(d.input().len()); // skip this data via setting the decoder position, because it doesn't recognize
// it with rejection decode
d.set_position(d.input().len());
Ok(Message::RejectTx(rejection)) Ok(Message::RejectTx(rejection))
} }
3 => Ok(Message::Done), 3 => Ok(Message::Done),

View file

@ -81,18 +81,16 @@ impl<'b> Decode<'b, ()> for Message {
4 => Ok(Message::AwaitAcquire), 4 => Ok(Message::AwaitAcquire),
5 => Ok(Message::RequestNextTx), 5 => Ok(Message::RequestNextTx),
6 => match d.datatype() { 6 => match d.datatype() {
Ok(datatype) => { Ok(datatype) => match datatype {
match datatype { pallas_codec::minicbor::data::Type::Array
pallas_codec::minicbor::data::Type::Array | pallas_codec::minicbor::data::Type::ArrayIndef => {
| pallas_codec::minicbor::data::Type::ArrayIndef => { let tx = d.decode()?;
let tx = d.decode()?; Ok(Message::ResponseNextTx(Some(tx)))
Ok(Message::ResponseNextTx(Some(tx)))
}
_ => Ok(Message::ResponseNextTx(None))
} }
_ => Ok(Message::ResponseNextTx(None)),
}, },
Err(_) => Ok(Message::ResponseNextTx(None)) Err(_) => Ok(Message::ResponseNextTx(None)),
} },
7 => { 7 => {
let id = d.decode()?; let id = d.decode()?;
Ok(Message::RequestHasTx(id)) Ok(Message::RequestHasTx(id))