Skip to content

Commit 986c1bc

Browse files
committed
Remove unwraps
1 parent 198b12a commit 986c1bc

File tree

3 files changed

+41
-18
lines changed

3 files changed

+41
-18
lines changed

crates/rust-eigenda-v2-client/src/cert_verifier.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ use crate::{
1515
utils::SecretUrl,
1616
};
1717

18+
const CHECK_DA_CERT_STATUS_SUCCESS: u8 = 1;
19+
1820
#[derive(Debug, Clone)]
1921
/// Provides methods for interacting with the EigenDA CertVerifier contract.
2022
pub struct CertVerifier<S> {
@@ -69,20 +71,15 @@ impl<S> CertVerifier<S> {
6971
EthersSigner<S>: Signer,
7072
{
7173
let abi_encoded_cert: Vec<u8> = eigenda_cert_to_abi_encoded(eigenda_cert)?;
72-
println!("ABI Encoded Cert: {:?}", abi_encoded_cert);
7374
let res = self
7475
.cert_verifier_contract_base
7576
.check_da_cert(Bytes::from(abi_encoded_cert))
7677
.call()
7778
.await
78-
.map_err(|e| {
79-
println!("Error calling check_da_cert: {:?}", e);
80-
CertVerifierError::Contract("check_da_cert".to_string())
81-
})?;
82-
if res != 1 {
83-
// todo
79+
.map_err(|_| CertVerifierError::Contract("check_da_cert".to_string()))?;
80+
if res != CHECK_DA_CERT_STATUS_SUCCESS {
8481
return Err(CertVerifierError::VerificationFailed(
85-
"check_da_cert returned non-1 value".to_string(),
82+
"check_da_cert returned non-succesfull value".to_string(),
8683
));
8784
}
8885
Ok(())

crates/rust-eigenda-v2-client/src/errors.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ pub enum ConversionError {
5252
EigenDACommon(#[from] rust_eigenda_v2_common::ConversionError),
5353
#[error("Failed to convert U256: {0}")]
5454
U256Conversion(String),
55+
#[error("Failed to parse attestation: {0}")]
56+
Attestation(String),
5557
}
5658

5759
/// Errors specific to the [`RelayPayloadRetriever`].
@@ -200,6 +202,10 @@ pub enum PayloadDisperserError {
200202
SignedPercentageNotFound(u32),
201203
#[error("Confirmation threshold not met for quorum {0}, signed percentage {1}, threshold {2}")]
202204
ConfirmationThresholdNotMet(u32, u8, u8),
205+
#[error("Failed to initialize Eigen SDK")]
206+
EigenSDKNotInitialized,
207+
#[error("Failed to check signature indices")]
208+
GetCheckSignaturesIndices,
203209
}
204210

205211
/// Errors specific to the CertVerifier

crates/rust-eigenda-v2-client/src/payload_disperser.rs

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ impl<S> PayloadDisperser<S> {
5252
where
5353
S: Sign + Clone,
5454
{
55+
eigensdk::logging::init_logger(eigensdk::logging::log_level::LogLevel::Info);
5556
let disperser_config = DisperserClientConfig {
5657
disperser_rpc: payload_config.disperser_rpc.clone(),
5758
signer: signer.clone(),
@@ -156,20 +157,34 @@ impl<S> PayloadDisperser<S> {
156157
where
157158
S: Sign,
158159
{
159-
// todo error handling
160160
let blob_quorum_numbers = status
161161
.clone()
162162
.blob_inclusion_info
163-
.unwrap()
163+
.ok_or(ConversionError::BlobInclusion(
164+
"BlobInclusionInfo not present".to_string(),
165+
))?
164166
.blob_certificate
165-
.unwrap()
167+
.ok_or(ConversionError::BlobCertificate(
168+
"BlobCertificate not present".to_string(),
169+
))?
166170
.blob_header
167-
.unwrap()
171+
.ok_or(ConversionError::BlobHeader(
172+
"BlobHeader not present".to_string(),
173+
))?
168174
.quorum_numbers;
169175
if blob_quorum_numbers.is_empty() {
170176
return Err(PayloadDisperserError::NoQuorumNumbers);
171177
}
172-
let attestation = status.signed_batch.clone().unwrap().attestation.unwrap();
178+
let attestation = status
179+
.signed_batch
180+
.clone()
181+
.ok_or(ConversionError::SignedBatch(
182+
"SignedBatch not present".to_string(),
183+
))?
184+
.attestation
185+
.ok_or(ConversionError::Attestation(
186+
"Attestation not present".to_string(),
187+
))?;
173188
let batch_quorum_numbers = attestation.quorum_numbers;
174189
let batch_signed_percentages = attestation.quorum_signed_percentages;
175190

@@ -186,7 +201,13 @@ impl<S> PayloadDisperser<S> {
186201
signed_percentages_map.insert(quorum_id, *signed_percentage);
187202
}
188203

189-
let batch_header = status.clone().signed_batch.unwrap().header;
204+
let batch_header = status
205+
.clone()
206+
.signed_batch
207+
.ok_or(ConversionError::SignedBatch(
208+
"SignedBatch not present".to_string(),
209+
))?
210+
.header;
190211
if batch_header.is_none() {
191212
return Err(PayloadDisperserError::BatchHeaderNotPresent);
192213
}
@@ -270,16 +291,15 @@ impl<S> PayloadDisperser<S> {
270291

271292
let reference_block_number = signed_batch.header.reference_block_number;
272293

273-
eigensdk::logging::init_logger(eigensdk::logging::log_level::LogLevel::Info);
274294
let avs_registry_chain_reader =
275295
eigensdk::client_avsregistry::reader::AvsRegistryChainReader::new(
276296
eigensdk::logging::get_logger(),
277297
self.config.registry_coordinator_addr,
278298
self.config.operator_state_retriever_addr,
279-
self.config.eth_rpc_url.clone().try_into().unwrap(),
299+
self.config.eth_rpc_url.clone().try_into()?,
280300
)
281301
.await
282-
.unwrap();
302+
.map_err(|_| PayloadDisperserError::EigenSDKNotInitialized)?;
283303

284304
let check_sig_indices = avs_registry_chain_reader
285305
.get_check_signatures_indices(
@@ -288,7 +308,7 @@ impl<S> PayloadDisperser<S> {
288308
non_signer_operator_ids,
289309
)
290310
.await
291-
.unwrap();
311+
.map_err(|_| PayloadDisperserError::GetCheckSignaturesIndices)?;
292312

293313
Ok(NonSignerStakesAndSignature {
294314
non_signer_quorum_bitmap_indices: check_sig_indices.nonSignerQuorumBitmapIndices,

0 commit comments

Comments
 (0)