@@ -7,7 +7,6 @@ use crate::box_kind::{
7
7
} ;
8
8
use crate :: contracts:: ballot:: BallotContract ;
9
9
use crate :: contracts:: oracle:: OracleContract ;
10
- use crate :: contracts:: refresh:: RefreshContractInputs ;
11
10
use crate :: datapoint_source:: { DataPointSource , DataPointSourceError } ;
12
11
use crate :: oracle_config:: ORACLE_CONFIG ;
13
12
use crate :: scans:: {
@@ -110,25 +109,25 @@ pub struct Stage {
110
109
pub struct OraclePool < ' a > {
111
110
pub data_point_source : Box < dyn DataPointSource + Sync + Send > ,
112
111
/// Stages
113
- pub datapoint_stage : DatapointStage ,
114
- local_oracle_datapoint_scan : Option < LocalOracleDatapointScan > ,
112
+ pub datapoint_stage : DatapointStage < ' a > ,
113
+ local_oracle_datapoint_scan : Option < LocalOracleDatapointScan < ' a > > ,
115
114
local_ballot_box_scan : Option < LocalBallotBoxScan < ' a > > ,
116
- pool_box_scan : PoolBoxScan ,
117
- refresh_box_scan : RefreshBoxScan ,
115
+ pool_box_scan : PoolBoxScan < ' a > ,
116
+ refresh_box_scan : RefreshBoxScan < ' a > ,
118
117
ballot_boxes_scan : BallotBoxesScan < ' a > ,
119
118
update_box_scan : UpdateBoxScan < ' a > ,
120
119
}
121
120
122
121
#[ derive( Debug ) ]
123
- pub struct DatapointStage {
122
+ pub struct DatapointStage < ' a > {
124
123
pub stage : Stage ,
125
- oracle_box_wrapper_inputs : OracleBoxWrapperInputs ,
124
+ oracle_box_wrapper_inputs : & ' a OracleBoxWrapperInputs ,
126
125
}
127
126
128
127
#[ derive( Debug ) ]
129
- pub struct LocalOracleDatapointScan {
128
+ pub struct LocalOracleDatapointScan < ' a > {
130
129
scan : Scan ,
131
- oracle_box_wrapper_inputs : OracleBoxWrapperInputs ,
130
+ oracle_box_wrapper_inputs : & ' a OracleBoxWrapperInputs ,
132
131
}
133
132
134
133
#[ derive( Debug ) ]
@@ -139,15 +138,15 @@ pub struct LocalBallotBoxScan<'a> {
139
138
}
140
139
141
140
#[ derive( Debug ) ]
142
- pub struct PoolBoxScan {
141
+ pub struct PoolBoxScan < ' a > {
143
142
scan : Scan ,
144
- pool_box_wrapper_inputs : PoolBoxWrapperInputs ,
143
+ pool_box_wrapper_inputs : & ' a PoolBoxWrapperInputs ,
145
144
}
146
145
147
146
#[ derive( Debug ) ]
148
- pub struct RefreshBoxScan {
147
+ pub struct RefreshBoxScan < ' a > {
149
148
scan : Scan ,
150
- refresh_box_wrapper_inputs : RefreshBoxWrapperInputs ,
149
+ refresh_box_wrapper_inputs : & ' a RefreshBoxWrapperInputs ,
151
150
}
152
151
153
152
#[ derive( Debug ) ]
@@ -158,7 +157,6 @@ pub struct BallotBoxesScan<'a> {
158
157
#[ derive( Debug ) ]
159
158
pub struct UpdateBoxScan < ' a > {
160
159
scan : Scan ,
161
- // TODO: switch inputs to reference in other scans
162
160
update_box_wrapper_inputs : & ' a UpdateBoxWrapperInputs ,
163
161
}
164
162
@@ -210,20 +208,6 @@ impl<'a> OraclePool<'a> {
210
208
let datapoint_contract_address =
211
209
OracleContract :: load ( & config. oracle_box_wrapper_inputs . contract_inputs ) ?. ergo_tree ( ) ;
212
210
213
- let refresh_contract_inputs = RefreshContractInputs :: load (
214
- config
215
- . refresh_box_wrapper_inputs
216
- . contract_inputs
217
- . contract_parameters ( )
218
- . clone ( ) ,
219
- config. token_ids . oracle_token_id . clone ( ) ,
220
- config. token_ids . pool_nft_token_id . clone ( ) ,
221
- ) ?;
222
- let refresh_box_wrapper_inputs = RefreshBoxWrapperInputs {
223
- contract_inputs : refresh_contract_inputs,
224
- refresh_nft_token_id : config. token_ids . refresh_nft_token_id . clone ( ) ,
225
- } ;
226
-
227
211
// If scanIDs.json exists, skip registering scans & saving generated ids
228
212
if !Path :: new ( "scanIDs.json" ) . exists ( ) {
229
213
let mut scans = vec ! [
@@ -236,7 +220,7 @@ impl<'a> OraclePool<'a> {
236
220
register_pool_box_scan( config. pool_box_wrapper_inputs. clone( ) ) . unwrap( ) ,
237
221
register_refresh_box_scan(
238
222
refresh_box_scan_name,
239
- refresh_box_wrapper_inputs. clone( ) ,
223
+ config . refresh_box_wrapper_inputs. clone( ) ,
240
224
)
241
225
. unwrap( ) ,
242
226
] ;
@@ -304,7 +288,7 @@ impl<'a> OraclePool<'a> {
304
288
"Local Oracle Datapoint Scan" ,
305
289
& scan_json[ local_scan_str] . to_string ( ) ,
306
290
) ,
307
- oracle_box_wrapper_inputs : config. oracle_box_wrapper_inputs . clone ( ) ,
291
+ oracle_box_wrapper_inputs : & config. oracle_box_wrapper_inputs ,
308
292
} ) ;
309
293
} ;
310
294
@@ -325,15 +309,15 @@ impl<'a> OraclePool<'a> {
325
309
326
310
let pool_box_scan = PoolBoxScan {
327
311
scan : Scan :: new ( "Pool Box Scan" , & scan_json[ "Pool Box Scan" ] . to_string ( ) ) ,
328
- pool_box_wrapper_inputs : config. pool_box_wrapper_inputs . clone ( ) ,
312
+ pool_box_wrapper_inputs : & config. pool_box_wrapper_inputs ,
329
313
} ;
330
314
331
315
let refresh_box_scan = RefreshBoxScan {
332
316
scan : Scan :: new (
333
317
refresh_box_scan_name,
334
318
& scan_json[ refresh_box_scan_name] . to_string ( ) ,
335
319
) ,
336
- refresh_box_wrapper_inputs,
320
+ refresh_box_wrapper_inputs : & config . refresh_box_wrapper_inputs ,
337
321
} ;
338
322
339
323
let update_box_scan = UpdateBoxScan {
@@ -349,7 +333,7 @@ impl<'a> OraclePool<'a> {
349
333
contract_address : datapoint_contract_address. to_base16_bytes ( ) . unwrap ( ) ,
350
334
scan : datapoint_scan,
351
335
} ,
352
- oracle_box_wrapper_inputs : config. oracle_box_wrapper_inputs . clone ( ) ,
336
+ oracle_box_wrapper_inputs : & config. oracle_box_wrapper_inputs ,
353
337
} ,
354
338
local_oracle_datapoint_scan,
355
339
local_ballot_box_scan,
@@ -492,9 +476,9 @@ impl<'a> OraclePool<'a> {
492
476
}
493
477
}
494
478
495
- impl PoolBoxSource for PoolBoxScan {
479
+ impl < ' a > PoolBoxSource for PoolBoxScan < ' a > {
496
480
fn get_pool_box ( & self ) -> Result < PoolBoxWrapper > {
497
- let box_wrapper = PoolBoxWrapper :: new ( self . scan . get_box ( ) ?, & self . pool_box_wrapper_inputs ) ?;
481
+ let box_wrapper = PoolBoxWrapper :: new ( self . scan . get_box ( ) ?, self . pool_box_wrapper_inputs ) ?;
498
482
Ok ( box_wrapper)
499
483
}
500
484
}
@@ -510,7 +494,7 @@ impl<'a> LocalBallotBoxSource for LocalBallotBoxScan<'a> {
510
494
}
511
495
}
512
496
513
- impl RefreshBoxSource for RefreshBoxScan {
497
+ impl < ' a > RefreshBoxSource for RefreshBoxScan < ' a > {
514
498
fn get_refresh_box ( & self ) -> Result < RefreshBoxWrapper > {
515
499
let box_wrapper = RefreshBoxWrapper :: new (
516
500
self . scan . get_box ( ) ?,
@@ -520,10 +504,10 @@ impl RefreshBoxSource for RefreshBoxScan {
520
504
}
521
505
}
522
506
523
- impl LocalDatapointBoxSource for LocalOracleDatapointScan {
507
+ impl < ' a > LocalDatapointBoxSource for LocalOracleDatapointScan < ' a > {
524
508
fn get_local_oracle_datapoint_box ( & self ) -> Result < OracleBoxWrapper > {
525
509
let box_wrapper =
526
- OracleBoxWrapper :: new ( self . scan . get_box ( ) ?, & self . oracle_box_wrapper_inputs ) ?;
510
+ OracleBoxWrapper :: new ( self . scan . get_box ( ) ?, self . oracle_box_wrapper_inputs ) ?;
527
511
Ok ( box_wrapper)
528
512
}
529
513
}
@@ -582,13 +566,13 @@ impl StageDataSource for Stage {
582
566
}
583
567
}
584
568
585
- impl DatapointBoxesSource for DatapointStage {
569
+ impl < ' a > DatapointBoxesSource for DatapointStage < ' a > {
586
570
fn get_oracle_datapoint_boxes ( & self ) -> Result < Vec < OracleBoxWrapper > > {
587
571
let res = self
588
572
. stage
589
573
. get_boxes ( ) ?
590
574
. into_iter ( )
591
- . map ( |b| OracleBoxWrapper :: new ( b, & self . oracle_box_wrapper_inputs ) . unwrap ( ) )
575
+ . map ( |b| OracleBoxWrapper :: new ( b, self . oracle_box_wrapper_inputs ) . unwrap ( ) )
592
576
. collect ( ) ;
593
577
Ok ( res)
594
578
}
0 commit comments