Skip to content

Commit 8a13625

Browse files
committed
use references for box wrapper inputs in scans;
1 parent 2606f11 commit 8a13625

File tree

2 files changed

+24
-41
lines changed

2 files changed

+24
-41
lines changed

core/src/cli_commands/bootstrap.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,6 @@ pub(crate) mod tests {
789789
let ballot_id = TokenId::from_base64(&encoded).unwrap();
790790
assert_eq!(token_ids.ballot_token_id, ballot_id);
791791

792-
// TODO: check that it's updated with expected parameters (min_votes, etc.)
793792
// Check that refresh contract is updated
794793
assert_ne!(
795794
oracle_config

core/src/oracle_state.rs

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use crate::box_kind::{
77
};
88
use crate::contracts::ballot::BallotContract;
99
use crate::contracts::oracle::OracleContract;
10-
use crate::contracts::refresh::RefreshContractInputs;
1110
use crate::datapoint_source::{DataPointSource, DataPointSourceError};
1211
use crate::oracle_config::ORACLE_CONFIG;
1312
use crate::scans::{
@@ -110,25 +109,25 @@ pub struct Stage {
110109
pub struct OraclePool<'a> {
111110
pub data_point_source: Box<dyn DataPointSource + Sync + Send>,
112111
/// 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>>,
115114
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>,
118117
ballot_boxes_scan: BallotBoxesScan<'a>,
119118
update_box_scan: UpdateBoxScan<'a>,
120119
}
121120

122121
#[derive(Debug)]
123-
pub struct DatapointStage {
122+
pub struct DatapointStage<'a> {
124123
pub stage: Stage,
125-
oracle_box_wrapper_inputs: OracleBoxWrapperInputs,
124+
oracle_box_wrapper_inputs: &'a OracleBoxWrapperInputs,
126125
}
127126

128127
#[derive(Debug)]
129-
pub struct LocalOracleDatapointScan {
128+
pub struct LocalOracleDatapointScan<'a> {
130129
scan: Scan,
131-
oracle_box_wrapper_inputs: OracleBoxWrapperInputs,
130+
oracle_box_wrapper_inputs: &'a OracleBoxWrapperInputs,
132131
}
133132

134133
#[derive(Debug)]
@@ -139,15 +138,15 @@ pub struct LocalBallotBoxScan<'a> {
139138
}
140139

141140
#[derive(Debug)]
142-
pub struct PoolBoxScan {
141+
pub struct PoolBoxScan<'a> {
143142
scan: Scan,
144-
pool_box_wrapper_inputs: PoolBoxWrapperInputs,
143+
pool_box_wrapper_inputs: &'a PoolBoxWrapperInputs,
145144
}
146145

147146
#[derive(Debug)]
148-
pub struct RefreshBoxScan {
147+
pub struct RefreshBoxScan<'a> {
149148
scan: Scan,
150-
refresh_box_wrapper_inputs: RefreshBoxWrapperInputs,
149+
refresh_box_wrapper_inputs: &'a RefreshBoxWrapperInputs,
151150
}
152151

153152
#[derive(Debug)]
@@ -158,7 +157,6 @@ pub struct BallotBoxesScan<'a> {
158157
#[derive(Debug)]
159158
pub struct UpdateBoxScan<'a> {
160159
scan: Scan,
161-
// TODO: switch inputs to reference in other scans
162160
update_box_wrapper_inputs: &'a UpdateBoxWrapperInputs,
163161
}
164162

@@ -210,20 +208,6 @@ impl<'a> OraclePool<'a> {
210208
let datapoint_contract_address =
211209
OracleContract::load(&config.oracle_box_wrapper_inputs.contract_inputs)?.ergo_tree();
212210

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-
227211
// If scanIDs.json exists, skip registering scans & saving generated ids
228212
if !Path::new("scanIDs.json").exists() {
229213
let mut scans = vec![
@@ -236,7 +220,7 @@ impl<'a> OraclePool<'a> {
236220
register_pool_box_scan(config.pool_box_wrapper_inputs.clone()).unwrap(),
237221
register_refresh_box_scan(
238222
refresh_box_scan_name,
239-
refresh_box_wrapper_inputs.clone(),
223+
config.refresh_box_wrapper_inputs.clone(),
240224
)
241225
.unwrap(),
242226
];
@@ -304,7 +288,7 @@ impl<'a> OraclePool<'a> {
304288
"Local Oracle Datapoint Scan",
305289
&scan_json[local_scan_str].to_string(),
306290
),
307-
oracle_box_wrapper_inputs: config.oracle_box_wrapper_inputs.clone(),
291+
oracle_box_wrapper_inputs: &config.oracle_box_wrapper_inputs,
308292
});
309293
};
310294

@@ -325,15 +309,15 @@ impl<'a> OraclePool<'a> {
325309

326310
let pool_box_scan = PoolBoxScan {
327311
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,
329313
};
330314

331315
let refresh_box_scan = RefreshBoxScan {
332316
scan: Scan::new(
333317
refresh_box_scan_name,
334318
&scan_json[refresh_box_scan_name].to_string(),
335319
),
336-
refresh_box_wrapper_inputs,
320+
refresh_box_wrapper_inputs: &config.refresh_box_wrapper_inputs,
337321
};
338322

339323
let update_box_scan = UpdateBoxScan {
@@ -349,7 +333,7 @@ impl<'a> OraclePool<'a> {
349333
contract_address: datapoint_contract_address.to_base16_bytes().unwrap(),
350334
scan: datapoint_scan,
351335
},
352-
oracle_box_wrapper_inputs: config.oracle_box_wrapper_inputs.clone(),
336+
oracle_box_wrapper_inputs: &config.oracle_box_wrapper_inputs,
353337
},
354338
local_oracle_datapoint_scan,
355339
local_ballot_box_scan,
@@ -492,9 +476,9 @@ impl<'a> OraclePool<'a> {
492476
}
493477
}
494478

495-
impl PoolBoxSource for PoolBoxScan {
479+
impl<'a> PoolBoxSource for PoolBoxScan<'a> {
496480
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)?;
498482
Ok(box_wrapper)
499483
}
500484
}
@@ -510,7 +494,7 @@ impl<'a> LocalBallotBoxSource for LocalBallotBoxScan<'a> {
510494
}
511495
}
512496

513-
impl RefreshBoxSource for RefreshBoxScan {
497+
impl<'a> RefreshBoxSource for RefreshBoxScan<'a> {
514498
fn get_refresh_box(&self) -> Result<RefreshBoxWrapper> {
515499
let box_wrapper = RefreshBoxWrapper::new(
516500
self.scan.get_box()?,
@@ -520,10 +504,10 @@ impl RefreshBoxSource for RefreshBoxScan {
520504
}
521505
}
522506

523-
impl LocalDatapointBoxSource for LocalOracleDatapointScan {
507+
impl<'a> LocalDatapointBoxSource for LocalOracleDatapointScan<'a> {
524508
fn get_local_oracle_datapoint_box(&self) -> Result<OracleBoxWrapper> {
525509
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)?;
527511
Ok(box_wrapper)
528512
}
529513
}
@@ -582,13 +566,13 @@ impl StageDataSource for Stage {
582566
}
583567
}
584568

585-
impl DatapointBoxesSource for DatapointStage {
569+
impl<'a> DatapointBoxesSource for DatapointStage<'a> {
586570
fn get_oracle_datapoint_boxes(&self) -> Result<Vec<OracleBoxWrapper>> {
587571
let res = self
588572
.stage
589573
.get_boxes()?
590574
.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())
592576
.collect();
593577
Ok(res)
594578
}

0 commit comments

Comments
 (0)