From 48edd4a9db83988ae50bc48ac4ee904007628ea2 Mon Sep 17 00:00:00 2001 From: ivanshumkov Date: Wed, 19 Nov 2025 01:15:54 +0700 Subject: [PATCH] fix(sdk): fail on invalid proof --- packages/rs-drive-proof-verifier/src/proof/token_info.rs | 2 -- packages/rs-sdk/src/error.rs | 5 ++++- packages/rs-sdk/src/sdk.rs | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/rs-drive-proof-verifier/src/proof/token_info.rs b/packages/rs-drive-proof-verifier/src/proof/token_info.rs index 64d22b6e409..dac36cc6c08 100644 --- a/packages/rs-drive-proof-verifier/src/proof/token_info.rs +++ b/packages/rs-drive-proof-verifier/src/proof/token_info.rs @@ -56,8 +56,6 @@ impl FromProof for IdentityTokenInfos { let proof = response.proof_owned().or(Err(Error::NoProofInResult))?; - println!("{:?}", hex::encode(&proof.grovedb_proof)); - let (root_hash, result) = Drive::verify_token_infos_for_identity_id( &proof.grovedb_proof, &token_ids, diff --git a/packages/rs-sdk/src/error.rs b/packages/rs-sdk/src/error.rs index cb1b79dd7e6..e85f4d12fe0 100644 --- a/packages/rs-sdk/src/error.rs +++ b/packages/rs-sdk/src/error.rs @@ -185,7 +185,10 @@ where impl CanRetry for Error { fn can_retry(&self) -> bool { - matches!(self, Error::StaleNode(..) | Error::TimeoutReached(_, _)) + matches!( + self, + Error::StaleNode(..) | Error::TimeoutReached(_, _) | Error::Proof(_) + ) } } diff --git a/packages/rs-sdk/src/sdk.rs b/packages/rs-sdk/src/sdk.rs index d01879a0290..0ae56eaaa49 100644 --- a/packages/rs-sdk/src/sdk.rs +++ b/packages/rs-sdk/src/sdk.rs @@ -334,7 +334,9 @@ impl Sdk { } }?; + // TODO: We should verify freshness (light check) before we validate proofs (heavy check) self.verify_response_metadata(&metadata)?; + Ok((object, metadata, proof)) }