@@ -5,7 +5,6 @@ use strata_db::traits::ProofDatabase;
5
5
use strata_primitives:: {
6
6
buf:: Buf32 ,
7
7
evm_exec:: EvmEeBlockCommitment ,
8
- l1:: L1BlockCommitment ,
9
8
l2:: L2BlockCommitment ,
10
9
params:: RollupParams ,
11
10
proof:: { ProofContext , ProofKey } ,
@@ -19,7 +18,9 @@ use tokio::sync::Mutex;
19
18
use tracing:: error;
20
19
21
20
use super :: { btc:: BtcBlockspaceOperator , evm_ee:: EvmEeOperator , ProvingOp } ;
22
- use crate :: { errors:: ProvingTaskError , hosts, task_tracker:: TaskTracker } ;
21
+ use crate :: {
22
+ errors:: ProvingTaskError , hosts, rpc_server:: derive_l1_range, task_tracker:: TaskTracker ,
23
+ } ;
23
24
24
25
/// A struct that implements the [`ProvingOp`] trait for Consensus Layer (CL) State Transition
25
26
/// Function (STF) proof generation.
@@ -116,28 +117,21 @@ impl ClStfOperator {
116
117
}
117
118
}
118
119
119
- pub struct ClStfRange {
120
- pub l2_range : ( L2BlockCommitment , L2BlockCommitment ) ,
121
- pub l1_range : Option < ( L1BlockCommitment , L1BlockCommitment ) > ,
122
- }
123
-
124
120
impl ProvingOp for ClStfOperator {
125
121
type Prover = ClStfProver ;
126
- type Params = ClStfRange ;
122
+ type Params = ( L2BlockCommitment , L2BlockCommitment ) ;
127
123
128
124
fn construct_proof_ctx ( & self , range : & Self :: Params ) -> Result < ProofContext , ProvingTaskError > {
129
- let ClStfRange { l2_range, .. } = range;
130
-
131
- let ( start, end) = l2_range;
125
+ let ( start_block, end_block) = range;
132
126
// Do some sanity checks
133
127
assert ! (
134
- start . slot( ) <= end . slot( ) ,
128
+ start_block . slot( ) <= end_block . slot( ) ,
135
129
"failed to construct CL STF proof context. start_slot: {} > end_slot {}" ,
136
- start . slot( ) ,
137
- end . slot( )
130
+ start_block . slot( ) ,
131
+ end_block . slot( )
138
132
) ;
139
133
140
- Ok ( ProofContext :: ClStf ( * start, * end) )
134
+ Ok ( ProofContext :: ClStf ( * start. blkid ( ) , * end. blkid ( ) ) )
141
135
}
142
136
143
137
async fn fetch_input (
@@ -219,10 +213,15 @@ impl ProvingOp for ClStfOperator {
219
213
db : & ProofDb ,
220
214
task_tracker : Arc < Mutex < TaskTracker > > ,
221
215
) -> Result < Vec < ProofKey > , ProvingTaskError > {
222
- let ClStfRange { l1_range, l2_range } = range;
223
-
224
- let el_start_block = self . get_exec_commitment ( * l2_range. 0 . blkid ( ) ) . await ?;
225
- let el_end_block = self . get_exec_commitment ( * l2_range. 1 . blkid ( ) ) . await ?;
216
+ let l1_range = derive_l1_range (
217
+ & self . cl_client ,
218
+ & self . btc_blockspace_operator . btc_client ,
219
+ range,
220
+ )
221
+ . await ;
222
+
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 ?;
226
225
227
226
let mut tasks = self
228
227
. evm_ee_operator
0 commit comments