Skip to content

Commit 2a4e0c6

Browse files
committed
refactor derive_l1_range to retrun error
1 parent 1e6e846 commit 2a4e0c6

File tree

5 files changed

+34
-13
lines changed

5 files changed

+34
-13
lines changed

bin/prover-client/src/operators/cl_stf.rs

+10-5
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ impl ProvingOp for ClStfOperator {
131131
end_block.slot()
132132
);
133133

134-
Ok(ProofContext::ClStf(*start.blkid(), *end.blkid()))
134+
Ok(ProofContext::ClStf(*start_block, *end_block))
135135
}
136136

137137
async fn fetch_input(
@@ -218,14 +218,19 @@ impl ProvingOp for ClStfOperator {
218218
&self.btc_blockspace_operator.btc_client,
219219
range,
220220
)
221-
.await;
221+
.await
222+
.map_err(|e| ProvingTaskError::RpcError(e.to_string()))?;
222223

223-
let el_start_block_id = self.get_exec_id(*l2_range.0.blkid()).await?;
224-
let el_end_block_id = self.get_exec_id(*l2_range.1.blkid()).await?;
224+
let el_start_block_id = self.get_exec_commitment(*range.0.blkid()).await?;
225+
let el_end_block_id = self.get_exec_commitment(*range.1.blkid()).await?;
225226

226227
let mut tasks = self
227228
.evm_ee_operator
228-
.create_task((el_start_block, el_end_block), task_tracker.clone(), db)
229+
.create_task(
230+
(el_start_block_id, el_end_block_id),
231+
task_tracker.clone(),
232+
db,
233+
)
229234
.await?;
230235

231236
if let Some(l1_range) = l1_range {

bin/prover-client/src/rpc_server.rs

+18-8
Original file line numberDiff line numberDiff line change
@@ -210,30 +210,39 @@ pub async fn derive_l1_range(
210210
cl_client: &HttpClient,
211211
btc_client: &BitcoinClient,
212212
l2_range: (L2BlockCommitment, L2BlockCommitment),
213-
) -> Option<(L1BlockCommitment, L1BlockCommitment)> {
213+
) -> RpcResult<Option<(L1BlockCommitment, L1BlockCommitment)>> {
214214
// sanity check
215215
assert!(l2_range.1.slot() >= l2_range.0.slot(), "");
216216

217217
let start_block_hash = *l2_range.0.blkid();
218218
let mut current_block_hash = *l2_range.1.blkid();
219219
loop {
220-
let l2_block = cl_client
220+
let l2_block = match cl_client
221221
.get_block_by_id(current_block_hash)
222222
.await
223-
.expect("cannot find L2 block")
224-
.expect("cannot find L2 block");
223+
.map_err(to_jsonrpsee_error("failed to fetch l2 block"))?
224+
{
225+
Some(block) => block,
226+
None => return Ok(None),
227+
};
225228

226229
let new_l1_manifests = l2_block.l1_segment().new_manifests();
227230
if !new_l1_manifests.is_empty() {
228231
let blkid = *new_l1_manifests.first().unwrap().blkid();
229-
let height = btc_client.get_block_height(&blkid.into()).await.unwrap();
232+
let height = btc_client
233+
.get_block_height(&blkid.into())
234+
.await
235+
.map_err(to_jsonrpsee_error("failed to fetch l1 block"))?;
230236
let first_commitment = L1BlockCommitment::new(height, blkid);
231237

232238
let blkid = *new_l1_manifests.last().unwrap().blkid();
233-
let height = btc_client.get_block_height(&blkid.into()).await.unwrap();
239+
let height = btc_client
240+
.get_block_height(&blkid.into())
241+
.await
242+
.map_err(to_jsonrpsee_error("failed to fetch l1 block"))?;
234243
let last_commitment = L1BlockCommitment::new(height, blkid);
235244

236-
return Some((first_commitment, last_commitment));
245+
return Ok(Some((first_commitment, last_commitment)));
237246
}
238247

239248
let prev_l2_blkid = *l2_block.header().parent();
@@ -244,5 +253,6 @@ pub async fn derive_l1_range(
244253
current_block_hash = prev_l2_blkid;
245254
}
246255
}
247-
None
256+
257+
Ok(None)
248258
}

provers/sp1/guest-btc-blockspace/Cargo.lock

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provers/sp1/guest-checkpoint/Cargo.lock

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provers/sp1/guest-cl-stf/Cargo.lock

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)