Skip to content

Commit b074453

Browse files
authored
Merge pull request #287 from samparsky/mutable-payment-spec
Mutable payment spec
2 parents 557f065 + 8d6f845 commit b074453

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

adapter/src/ethereum.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,8 @@ mod test {
666666
withdraw_period_start: Utc::now() + Duration::days(1),
667667
ad_units: vec![],
668668
pricing_bounds: None,
669+
price_multiplication_rules: Default::default(),
670+
price_dynamic_adjustment: false,
669671
},
670672
};
671673

primitives/src/channel.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use serde::{Deserialize, Deserializer, Serialize};
77
use serde_hex::{SerHex, StrictPfx};
88

99
use crate::big_num::BigNum;
10+
use crate::sentry::Event;
1011
use crate::{AdUnit, EventSubmission, TargetingTag, ValidatorDesc, ValidatorId};
1112
use hex::{FromHex, FromHexError};
1213
use std::ops::Deref;
@@ -145,6 +146,26 @@ pub struct ChannelSpec {
145146
/// An array of AdUnit (optional)
146147
#[serde(default, skip_serializing_if = "Vec::is_empty")]
147148
pub ad_units: Vec<AdUnit>,
149+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
150+
pub price_multiplication_rules: Vec<PriceMultiplicationRules>,
151+
pub price_dynamic_adjustment: bool,
152+
}
153+
154+
#[derive(Serialize, Deserialize, Debug, Clone)]
155+
#[serde(rename_all = "camelCase")]
156+
pub struct PriceMultiplicationRules {
157+
#[serde(default, skip_serializing_if = "Option::is_none")]
158+
multiplier: Option<f64>,
159+
#[serde(default, skip_serializing_if = "Option::is_none")]
160+
amount: Option<BigNum>,
161+
#[serde(default, skip_serializing_if = "Option::is_none")]
162+
ev_type: Option<Vec<Event>>,
163+
#[serde(default, skip_serializing_if = "Option::is_none")]
164+
publisher: Option<Vec<ValidatorId>>,
165+
#[serde(default, skip_serializing_if = "Option::is_none")]
166+
os_type: Option<Vec<String>>,
167+
#[serde(default, skip_serializing_if = "Option::is_none")]
168+
country: Option<Vec<String>>,
148169
}
149170

150171
#[derive(Serialize, Deserialize, Debug, Clone)]

primitives/src/util/tests/prep_db.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ lazy_static! {
8181
withdraw_period_start: Utc.timestamp_millis(4_073_414_400_000),
8282
ad_units: vec![],
8383
pricing_bounds: Some(PricingBounds {impression: None, click: Some(Pricing { max: 0.into(), min: 0.into()})}),
84+
price_multiplication_rules: Default::default(),
85+
price_dynamic_adjustment: false,
8486
},
8587
}
8688
};

0 commit comments

Comments
 (0)