mirror of
https://github.com/matter-labs/teepot.git
synced 2025-07-21 07:03:56 +02:00
fix(proof-validation): handle optional proof status
Ensure proof status is treated as optional, preventing crashes when status is absent. - Modify status field to `Option<String>` in `Proof` struct. - Update validation logic to handle `None` values safely. - Adjust main logic to check for "permanently_ignored" safely.
This commit is contained in:
parent
5b7f7482e6
commit
4a0a4f6e5e
2 changed files with 8 additions and 4 deletions
|
@ -155,7 +155,10 @@ async fn verify_batch_proofs(
|
|||
total_proofs_count += 1;
|
||||
let tee_type = proof.tee_type.to_uppercase();
|
||||
|
||||
if proof.status.eq_ignore_ascii_case("permanently_ignored") {
|
||||
if proof
|
||||
.status
|
||||
.map_or(false, |s| s.eq_ignore_ascii_case("permanently_ignored"))
|
||||
{
|
||||
trace!(
|
||||
batch_no,
|
||||
tee_type,
|
||||
|
|
|
@ -39,8 +39,9 @@ pub async fn get_proofs(
|
|||
|
||||
if !proofs.is_empty()
|
||||
&& proofs.iter().all(|proof| {
|
||||
!proof.status.eq_ignore_ascii_case("failed")
|
||||
&& !proof.status.eq_ignore_ascii_case("picked_by_prover")
|
||||
!proof.status.as_ref().map_or(false, |s| {
|
||||
s.eq_ignore_ascii_case("failed") | s.eq_ignore_ascii_case("picked_by_prover")
|
||||
})
|
||||
})
|
||||
{
|
||||
return Ok(proofs);
|
||||
|
@ -165,7 +166,7 @@ pub struct Proof {
|
|||
#[serde_as(as = "Option<Hex>")]
|
||||
pub proof: Option<Vec<u8>>,
|
||||
pub proved_at: String,
|
||||
pub status: String,
|
||||
pub status: Option<String>,
|
||||
#[serde_as(as = "Option<Hex>")]
|
||||
pub attestation: Option<Vec<u8>>,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue