Skip to content

Commit 3cb270f

Browse files
robkornmmahut
authored andcommitted
Now using minimum_pool_box_value
1 parent bb4b5f0 commit 3cb270f

File tree

8 files changed

+16
-24
lines changed

8 files changed

+16
-24
lines changed

connectors/connector-lib/src/oracle_core.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub struct PoolInfo {
4242
pub live_epoch_length: u64,
4343
pub epoch_prep_length: u64,
4444
pub outlier_range: f64,
45-
pub number_of_oracles: u64,
45+
pub minimum_pool_box_value: u64,
4646
pub oracle_pool_nft_id: String,
4747
pub oracle_pool_participant_token_id: String,
4848
}

connectors/erg-usd-connector/src/api.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,11 @@ pub fn prepare_frontend_data_json(oc: &OracleCore) -> Result<String> {
8989
pool_funded_percentage: pstatus.funded_percentage,
9090

9191
// Summary Table
92-
number_of_oracles: pinfo.number_of_oracles,
9392
posting_schedule_blocks: posting_sched_blocks,
9493

9594

9695
// Technical
96+
minimum_pool_box_value: pinfo.minimum_pool_box_value,
9797
latest_datapoint: pstatus.latest_datapoint,
9898
live_epoch_address : pinfo.live_epoch_address,
9999
epoch_prep_address: pinfo.epoch_prep_address,

connectors/frontend-connector-lib/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ impl FrontendConnector {
9393
current_pool_stage: pstatus.current_pool_stage,
9494
pool_funded_percentage: pstatus.funded_percentage,
9595

96-
number_of_oracles: pinfo.number_of_oracles,
96+
minimum_pool_box_value: pinfo.minimum_pool_box_value,
9797
posting_schedule_blocks: posting_sched_blocks,
9898

9999

docs/API-Endpoints.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Example Response:
4747
"live_epoch_length": 5,
4848
"epoch_prep_length": 5,
4949
"outlier_range": 0.01,
50-
"number_of_oracles": 4,
50+
"minimum_pool_box_value": 100000000,
5151
"oracle_pool_nft_id": "b662db51cf2dc39f110a021c2a31c74f0a1a18ffffbf73e8a051a7b8c0f09ebc",
5252
"oracle_pool_participant_token_id": "12caaacb51c89646fac9a3786eb98d0113bd57d68223ccc11754a4f67281daed"
5353
}

oracle-config.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ pool_deposit_contract_address: "zLSQDVBaGXZTutz9snE4UBbRzmx7Juaj4R2KCsSVKhQqaupC
3434
base_fee: 1000000
3535

3636
#### Oracle Pool Parameters ####
37-
# Number of oracles in pool
38-
number_of_oracles: 4
37+
# The minimum amount of Ergs required for the oracle pool to be considered funded.
38+
minimum_pool_box_value: 100000000
3939
# The payout in Ergs that a single oracle earns on successful datapoint posting
4040
oracle_payout_price: 2000000
4141
# Length of the oracle pool's live epoch in blocks

src/api.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub fn start_get_api() {
125125
live_epoch_length: parameters.live_epoch_length,
126126
epoch_prep_length: parameters.epoch_preparation_length,
127127
outlier_range: parameters.outlier_range,
128-
number_of_oracles: parameters.number_of_oracles,
128+
minimum_pool_box_value: parameters.minimum_pool_box_value,
129129
oracle_pool_nft_id: op.oracle_pool_nft,
130130
oracle_pool_participant_token_id: op.oracle_pool_participant_token,
131131

@@ -207,15 +207,13 @@ pub fn start_get_api() {
207207
let mut epoch_ends = 0;
208208
if let Ok(l) = op.get_live_epoch_state() {
209209
// The percentage that the pool is funded
210-
funded_percentage =
211-
(l.funds / (parameters.number_of_oracles * parameters.oracle_payout_price)) * 100;
210+
funded_percentage = (l.funds / parameters.minimum_pool_box_value) * 100;
212211
latest_datapoint = l.latest_pool_datapoint;
213212
current_epoch_id = l.epoch_id;
214213
epoch_ends = l.epoch_ends;
215214
} else if let Ok(ep) = op.get_preparation_state() {
216215
// The percentage that the pool is funded
217-
funded_percentage =
218-
(ep.funds / (parameters.number_of_oracles * parameters.oracle_payout_price)) * 100;
216+
funded_percentage = (ep.funds / parameters.minimum_pool_box_value) * 100;
219217
latest_datapoint = ep.latest_pool_datapoint;
220218
current_epoch_id = "Preparing Epoch Currently".to_string();
221219
epoch_ends = ep.next_epoch_ends;

src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ fn main() {
9393
}
9494

9595
// Check epoch prep state
96-
let is_funded = prep_state.funds >= parameters.max_pool_payout();
96+
let is_funded = prep_state.funds >= parameters.minimum_pool_box_value;
9797
let epoch_prep_over =
9898
height > prep_state.next_epoch_ends - parameters.live_epoch_length;
9999
let live_epoch_over = height >= prep_state.next_epoch_ends;

src/oracle_config.rs

+6-12
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use reqwest::header::HeaderValue;
44
use yaml_rust::{Yaml, YamlLoader};
55

66
pub struct PoolParameters {
7-
pub number_of_oracles: u64,
7+
pub minimum_pool_box_value: u64,
88
pub oracle_payout_price: NanoErg,
99
pub live_epoch_length: BlockDuration,
1010
pub epoch_preparation_length: BlockDuration,
@@ -36,14 +36,14 @@ impl PoolParameters {
3636
let price = config["oracle_payout_price"]
3737
.as_i64()
3838
.expect("No oracle_payout_price specified in config file.");
39-
let num = config["number_of_oracles"]
39+
let num = config["minimum_pool_box_value"]
4040
.as_i64()
41-
.expect("No number_of_oracles specified in config file.");
41+
.expect("No minimum_pool_box_value specified in config file.");
4242
let base_fee = config["base_fee"]
4343
.as_i64()
4444
.expect("No base_fee specified in config file.");
4545
PoolParameters {
46-
number_of_oracles: num as u64,
46+
minimum_pool_box_value: num as u64,
4747
oracle_payout_price: price as u64,
4848
live_epoch_length: lel as u64,
4949
epoch_preparation_length: epl as u64,
@@ -52,12 +52,6 @@ impl PoolParameters {
5252
base_fee: base_fee as u64,
5353
}
5454
}
55-
56-
/// Calculates the maximum total payout that the oracle pool will require
57-
/// in order to payout all of the oracles + the collector.
58-
pub fn max_pool_payout(&self) -> NanoErg {
59-
self.oracle_payout_price * (self.number_of_oracles + 1)
60-
}
6155
}
6256

6357
/// Returns "core_api_port" from the config file
@@ -111,7 +105,7 @@ mod tests {
111105
#[test]
112106
fn pool_parameter_parsing_works() {
113107
let yaml_string = "
114-
number_of_oracles: 4
108+
minimum_pool_box_value: 10000000
115109
live_epoch_length: 20
116110
epoch_preparation_length: 10
117111
buffer_length: 4
@@ -124,7 +118,7 @@ mod tests {
124118
assert_eq!(pool_params.live_epoch_length, 20);
125119
assert_eq!(pool_params.epoch_preparation_length, 10);
126120
assert_eq!(pool_params.buffer_length, 4);
127-
assert_eq!(pool_params.number_of_oracles, 4);
121+
assert_eq!(pool_params.minimum_pool_box_value, 10000000);
128122
assert_eq!(pool_params.outlier_range, 10);
129123
assert_eq!(pool_params.oracle_payout_price, 1000000);
130124
assert_eq!(pool_params.base_fee, 1000000);

0 commit comments

Comments
 (0)