Skip to content

Commit ab5fc3a

Browse files
authored
Merge pull request #169 from HerodotusDev/fix/indexer-error
fix: type changes from indexer
2 parents 55b5c72 + 1dc4723 commit ab5fc3a

File tree

4 files changed

+29
-40
lines changed

4 files changed

+29
-40
lines changed

hdp/src/primitives/block/header.rs

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -472,25 +472,21 @@ pub struct MMRMetaFromNewIndexer {
472472
}
473473

474474
#[derive(Serialize, Debug, Clone)]
475-
pub struct RlpBlockHeader {
476-
pub value: String,
477-
}
475+
pub struct RlpBlockHeader(pub String);
478476

479477
#[derive(Deserialize)]
480-
struct RawRlpBlockHeader {
481-
#[serde(rename = "LittleEndian8ByteChunks")]
482-
value_chunks: Vec<String>,
483-
}
478+
struct RawRlpBlockHeader(Vec<String>);
484479

485480
impl<'de> Deserialize<'de> for RlpBlockHeader {
486481
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
487482
where
488483
D: Deserializer<'de>,
489484
{
485+
println!("Deserializing RLP block header");
490486
let raw: RawRlpBlockHeader = RawRlpBlockHeader::deserialize(deserializer)?;
491487

492488
let value: String = raw
493-
.value_chunks
489+
.0
494490
.into_iter()
495491
.map(|chunk| {
496492
// Remove "0x" prefix if present
@@ -505,13 +501,13 @@ impl<'de> Deserialize<'de> for RlpBlockHeader {
505501
.collect::<Result<Vec<String>, D::Error>>()?
506502
.join("");
507503

508-
Ok(RlpBlockHeader { value })
504+
Ok(RlpBlockHeader(value))
509505
}
510506
}
511507

512508
impl From<RlpBlockHeader> for Bytes {
513509
fn from(rlp_block_header: RlpBlockHeader) -> Self {
514-
Bytes::from(hex::decode(&rlp_block_header.value).expect("Cannot decode RLP block header"))
510+
Bytes::from(hex::decode(&rlp_block_header.0).expect("Cannot decode RLP block header"))
515511
}
516512
}
517513

@@ -520,45 +516,36 @@ pub struct MMRProofFromNewIndexer {
520516
pub block_number: u64,
521517
pub element_hash: String,
522518
pub element_index: u64,
523-
#[serde(flatten)]
524519
pub block_header: BlockHeaderType,
525520
pub siblings_hashes: Vec<String>,
526521
}
527522

528523
#[derive(Serialize, Deserialize, Debug, Clone)]
529-
#[serde(untagged)]
530524
pub enum BlockHeaderType {
531-
Ethereum {
532-
#[serde(rename = "rlp_block_header")]
533-
rlp_block_header: RlpBlockHeader,
534-
},
535-
StarkNet {
536-
#[serde(rename = "block_header")]
537-
block_header: StarkNetBlockHeader,
538-
},
525+
#[serde(rename = "RlpLittleEndian8ByteChunks")]
526+
Ethereum(RlpBlockHeader),
527+
#[serde(rename = "Fields")]
528+
StarkNet(StarkNetBlockHeader),
539529
}
540530

541531
impl BlockHeaderType {
542532
pub fn get_evm_block_header(&self) -> RlpBlockHeader {
543533
match self {
544-
BlockHeaderType::Ethereum { rlp_block_header } => rlp_block_header.clone(),
534+
BlockHeaderType::Ethereum(rlp_block_header) => rlp_block_header.clone(),
545535
_ => panic!("Not an Ethereum block header"),
546536
}
547537
}
548538

549539
pub fn get_sn_block_header(&self) -> StarkNetBlockHeader {
550540
match self {
551-
BlockHeaderType::StarkNet { block_header } => block_header.clone(),
541+
BlockHeaderType::StarkNet(block_header) => block_header.clone(),
552542
_ => panic!("Not a StarkNet block header"),
553543
}
554544
}
555545
}
556546

557547
#[derive(Serialize, Deserialize, Debug, Clone)]
558-
pub struct StarkNetBlockHeader {
559-
#[serde(rename = "Fields")]
560-
pub fields: Vec<Felt>,
561-
}
548+
pub struct StarkNetBlockHeader(pub Vec<Felt>);
562549

563550
#[cfg(test)]
564551
mod tests {

hdp/src/primitives/processed_types/header.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub struct ProcessedHeader {
2929

3030
impl ProcessedHeader {
3131
pub fn new(rlp: RlpBlockHeader, leaf_idx: u64, mmr_path: Vec<String>) -> Self {
32-
let rlp = hex::decode(rlp.value).expect("Cannot decode RLP block header to bytes");
32+
let rlp = hex::decode(rlp.0).expect("Cannot decode RLP block header to bytes");
3333
let proof = ProcessedHeaderProof::new(leaf_idx, mmr_path);
3434
Self { rlp, proof }
3535
}

hdp/src/provider/indexer.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -131,18 +131,20 @@ impl Indexer {
131131

132132
let target_length = (to_block - from_block + 1) as usize;
133133

134-
let response = self
135-
.client
136-
.get(&self.url)
137-
.query(&self._query(
138-
from_block,
139-
to_block,
140-
self.from_chain_id.get_indexer_chain_id(),
141-
self.deployed_on_chain_id.get_indexer_chain_id(),
142-
))
143-
.send()
144-
.await
145-
.map_err(IndexerError::ReqwestError)?;
134+
let request = self.client.get(&self.url).query(&self._query(
135+
from_block,
136+
to_block,
137+
self.from_chain_id.get_indexer_chain_id(),
138+
self.deployed_on_chain_id.get_indexer_chain_id(),
139+
));
140+
141+
// Print the full URL with query parameters
142+
debug!(
143+
"Full request URL: {}",
144+
request.try_clone().unwrap().build().unwrap().url()
145+
);
146+
147+
let response = request.send().await.map_err(IndexerError::ReqwestError)?;
146148

147149
// validate status
148150
if response.status().is_success() {

hdp/src/provider/starknet/from_keys.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ impl StarknetProvider {
8181
.filter(|(block_number, _)| real_target_blocks.contains(block_number))
8282
.map(|(_, header_proof)| {
8383
ProcessedHeader::new(
84-
header_proof.block_header.get_sn_block_header().fields,
84+
header_proof.block_header.get_sn_block_header().0,
8585
header_proof.element_index,
8686
header_proof.siblings_hashes,
8787
)

0 commit comments

Comments
 (0)