Browse Source

Rename `OracleEventId`

This is not just any event id. It is the ID of a price event on the
BitMex exchange.
refactor/no-log-handler
Thomas Eizinger 3 years ago
parent
commit
9c0d320dc1
No known key found for this signature in database GPG Key ID: 651AC83A6C6C8B96
  1. 20
      daemon/src/db.rs
  2. 4
      daemon/src/maker_inc_connections.rs
  3. 8
      daemon/src/model.rs
  4. 12
      daemon/src/model/cfd.rs
  5. 10
      daemon/src/monitor.rs
  6. 40
      daemon/src/oracle.rs
  7. 6
      daemon/src/setup_contract.rs
  8. 4
      daemon/src/taker_cfd.rs
  9. 4
      daemon/src/wire.rs

20
daemon/src/db.rs

@ -1,5 +1,5 @@
use crate::model::cfd::{Cfd, CfdState, Order, OrderId, Origin}; use crate::model::cfd::{Cfd, CfdState, Order, OrderId, Origin};
use crate::model::{Leverage, OracleEventId, Position}; use crate::model::{BitMexPriceEventId, Leverage, Position};
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use rocket_db_pools::sqlx; use rocket_db_pools::sqlx;
use sqlx::pool::PoolConnection; use sqlx::pool::PoolConnection;
@ -88,7 +88,7 @@ pub async fn load_order_by_id(
let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap(); let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap();
let term = serde_json::from_str(row.term.as_str()).unwrap(); let term = serde_json::from_str(row.term.as_str()).unwrap();
let origin = serde_json::from_str(row.origin.as_str()).unwrap(); let origin = serde_json::from_str(row.origin.as_str()).unwrap();
let oracle_event_id = OracleEventId(row.oracle_event_id); let oracle_event_id = BitMexPriceEventId(row.oracle_event_id);
Ok(Order { Ok(Order {
id: uuid, id: uuid,
@ -299,7 +299,7 @@ pub async fn load_cfd_by_order_id(
let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap(); let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap();
let term = serde_json::from_str(row.term.as_str()).unwrap(); let term = serde_json::from_str(row.term.as_str()).unwrap();
let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap(); let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap();
let oracle_event_id = OracleEventId(row.oracle_event_id.clone()); let oracle_event_id = BitMexPriceEventId(row.oracle_event_id.clone());
let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap(); let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap();
let latest_state = serde_json::from_str(row.state.as_str()).unwrap(); let latest_state = serde_json::from_str(row.state.as_str()).unwrap();
@ -377,7 +377,7 @@ pub async fn load_all_cfds(conn: &mut PoolConnection<Sqlite>) -> anyhow::Result<
let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap(); let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap();
let term = serde_json::from_str(row.term.as_str()).unwrap(); let term = serde_json::from_str(row.term.as_str()).unwrap();
let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap(); let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap();
let oracle_event_id = OracleEventId(row.oracle_event_id.clone()); let oracle_event_id = BitMexPriceEventId(row.oracle_event_id.clone());
let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap(); let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap();
let latest_state = serde_json::from_str(row.state.as_str()).unwrap(); let latest_state = serde_json::from_str(row.state.as_str()).unwrap();
@ -410,7 +410,7 @@ pub async fn load_all_cfds(conn: &mut PoolConnection<Sqlite>) -> anyhow::Result<
/// Loads all CFDs with the latest state as the CFD state /// Loads all CFDs with the latest state as the CFD state
pub async fn load_cfds_by_oracle_event_id( pub async fn load_cfds_by_oracle_event_id(
oracle_event_id: OracleEventId, oracle_event_id: BitMexPriceEventId,
conn: &mut PoolConnection<Sqlite>, conn: &mut PoolConnection<Sqlite>,
) -> anyhow::Result<Vec<Cfd>> { ) -> anyhow::Result<Vec<Cfd>> {
let rows = sqlx::query!( let rows = sqlx::query!(
@ -462,7 +462,7 @@ pub async fn load_cfds_by_oracle_event_id(
let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap(); let creation_timestamp = serde_json::from_str(row.creation_timestamp.as_str()).unwrap();
let term = serde_json::from_str(row.term.as_str()).unwrap(); let term = serde_json::from_str(row.term.as_str()).unwrap();
let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap(); let origin: Origin = serde_json::from_str(row.origin.as_str()).unwrap();
let oracle_event_id = OracleEventId(row.oracle_event_id.clone()); let oracle_event_id = BitMexPriceEventId(row.oracle_event_id.clone());
let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap(); let quantity = serde_json::from_str(row.quantity_usd.as_str()).unwrap();
let latest_state = serde_json::from_str(row.state.as_str()).unwrap(); let latest_state = serde_json::from_str(row.state.as_str()).unwrap();
@ -580,8 +580,8 @@ mod tests {
let pool = setup_test_db().await; let pool = setup_test_db().await;
let mut conn = pool.acquire().await.unwrap(); let mut conn = pool.acquire().await.unwrap();
let oracle_event_id_1 = OracleEventId("dummy_1".to_string()); let oracle_event_id_1 = BitMexPriceEventId("dummy_1".to_string());
let oracle_event_id_2 = OracleEventId("dummy_2".to_string()); let oracle_event_id_2 = BitMexPriceEventId("dummy_2".to_string());
let cfd_1 = Cfd::default() let cfd_1 = Cfd::default()
.with_order(Order::default().with_oracle_event_id(oracle_event_id_1.clone())); .with_order(Order::default().with_oracle_event_id(oracle_event_id_1.clone()));
@ -686,14 +686,14 @@ mod tests {
Usd(dec!(100)), Usd(dec!(100)),
Usd(dec!(1000)), Usd(dec!(1000)),
Origin::Theirs, Origin::Theirs,
OracleEventId("Dummy".to_string()), BitMexPriceEventId("Dummy".to_string()),
) )
.unwrap() .unwrap()
} }
} }
impl Order { impl Order {
pub fn with_oracle_event_id(mut self, oracle_event_id: OracleEventId) -> Self { pub fn with_oracle_event_id(mut self, oracle_event_id: BitMexPriceEventId) -> Self {
self.oracle_event_id = oracle_event_id; self.oracle_event_id = oracle_event_id;
self self
} }

4
daemon/src/maker_inc_connections.rs

@ -1,6 +1,6 @@
use crate::actors::log_error; use crate::actors::log_error;
use crate::model::cfd::{Order, OrderId}; use crate::model::cfd::{Order, OrderId};
use crate::model::{OracleEventId, TakerId}; use crate::model::{BitMexPriceEventId, TakerId};
use crate::{maker_cfd, send_to_socket, wire}; use crate::{maker_cfd, send_to_socket, wire};
use anyhow::{Context as AnyhowContext, Result}; use anyhow::{Context as AnyhowContext, Result};
use async_trait::async_trait; use async_trait::async_trait;
@ -38,7 +38,7 @@ pub enum TakerCommand {
}, },
NotifyRollOverAccepted { NotifyRollOverAccepted {
id: OrderId, id: OrderId,
oracle_event_id: OracleEventId, oracle_event_id: BitMexPriceEventId,
}, },
NotifyRollOverRejected { NotifyRollOverRejected {
id: OrderId, id: OrderId,

8
daemon/src/model.rs

@ -110,9 +110,9 @@ pub struct WalletInfo {
} }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, PartialOrd, Ord)] #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct OracleEventId(pub String); pub struct BitMexPriceEventId(pub String);
impl OracleEventId { impl BitMexPriceEventId {
pub fn to_olivia_url(&self) -> Url { pub fn to_olivia_url(&self) -> Url {
Url::from_str("https://h00.ooo") Url::from_str("https://h00.ooo")
.expect("valid URL from constant") .expect("valid URL from constant")
@ -121,7 +121,7 @@ impl OracleEventId {
} }
} }
impl Display for OracleEventId { impl Display for BitMexPriceEventId {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
self.0.fmt(f) self.0.fmt(f)
} }
@ -133,7 +133,7 @@ mod tests {
#[test] #[test]
fn to_olivia_url() { fn to_olivia_url() {
let url = OracleEventId("/x/BitMEX/BXBT/2021-09-23T10:00:00.price?n=20".to_string()) let url = BitMexPriceEventId("/x/BitMEX/BXBT/2021-09-23T10:00:00.price?n=20".to_string())
.to_olivia_url(); .to_olivia_url();
assert_eq!( assert_eq!(

12
daemon/src/model/cfd.rs

@ -1,4 +1,4 @@
use crate::model::{Leverage, OracleEventId, Percent, Position, TakerId, TradingPair, Usd}; use crate::model::{BitMexPriceEventId, Leverage, Percent, Position, TakerId, TradingPair, Usd};
use crate::{monitor, oracle}; use crate::{monitor, oracle};
use anyhow::{bail, Context, Result}; use anyhow::{bail, Context, Result};
use bdk::bitcoin::secp256k1::{SecretKey, Signature}; use bdk::bitcoin::secp256k1::{SecretKey, Signature};
@ -97,7 +97,7 @@ pub struct Order {
/// The id of the event to be used for price attestation /// The id of the event to be used for price attestation
/// ///
/// The maker includes this into the Order based on the Oracle announcement to be used. /// The maker includes this into the Order based on the Oracle announcement to be used.
pub oracle_event_id: OracleEventId, pub oracle_event_id: BitMexPriceEventId,
} }
#[allow(dead_code)] // Only one binary and the tests use this. #[allow(dead_code)] // Only one binary and the tests use this.
@ -109,7 +109,7 @@ impl Order {
min_quantity: Usd, min_quantity: Usd,
max_quantity: Usd, max_quantity: Usd,
origin: Origin, origin: Origin,
oracle_event_id: OracleEventId, oracle_event_id: BitMexPriceEventId,
) -> Result<Self> { ) -> Result<Self> {
let leverage = Leverage(2); let leverage = Leverage(2);
let maintenance_margin_rate = dec!(0.005); let maintenance_margin_rate = dec!(0.005);
@ -286,7 +286,7 @@ pub enum CfdState {
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Attestation { pub struct Attestation {
pub id: OracleEventId, pub id: BitMexPriceEventId,
pub scalars: Vec<SecretKey>, pub scalars: Vec<SecretKey>,
#[serde(with = "::bdk::bitcoin::util::amount::serde::as_sat")] #[serde(with = "::bdk::bitcoin::util::amount::serde::as_sat")]
payout: Amount, payout: Amount,
@ -296,7 +296,7 @@ pub struct Attestation {
impl Attestation { impl Attestation {
pub fn new( pub fn new(
id: OracleEventId, id: BitMexPriceEventId,
price: u64, price: u64,
scalars: Vec<SecretKey>, scalars: Vec<SecretKey>,
dlc: Dlc, dlc: Dlc,
@ -1483,7 +1483,7 @@ pub struct Dlc {
/// The fully signed lock transaction ready to be published on chain /// The fully signed lock transaction ready to be published on chain
pub lock: (Transaction, Descriptor<PublicKey>), pub lock: (Transaction, Descriptor<PublicKey>),
pub commit: (Transaction, EcdsaAdaptorSignature, Descriptor<PublicKey>), pub commit: (Transaction, EcdsaAdaptorSignature, Descriptor<PublicKey>),
pub cets: HashMap<OracleEventId, Vec<Cet>>, pub cets: HashMap<BitMexPriceEventId, Vec<Cet>>,
pub refund: (Transaction, Signature), pub refund: (Transaction, Signature),
#[serde(with = "::bdk::bitcoin::util::amount::serde::as_sat")] #[serde(with = "::bdk::bitcoin::util::amount::serde::as_sat")]

10
daemon/src/monitor.rs

@ -1,6 +1,6 @@
use crate::actors::log_error; use crate::actors::log_error;
use crate::model::cfd::{CetStatus, Cfd, CfdState, Dlc, OrderId}; use crate::model::cfd::{CetStatus, Cfd, CfdState, Dlc, OrderId};
use crate::model::OracleEventId; use crate::model::BitMexPriceEventId;
use crate::oracle::Attestation; use crate::oracle::Attestation;
use crate::{model, oracle}; use crate::{model, oracle};
use anyhow::{Context, Result}; use anyhow::{Context, Result};
@ -27,7 +27,7 @@ pub struct StartMonitoring {
pub struct MonitorParams { pub struct MonitorParams {
lock: (Txid, Descriptor<PublicKey>), lock: (Txid, Descriptor<PublicKey>),
commit: (Txid, Descriptor<PublicKey>), commit: (Txid, Descriptor<PublicKey>),
cets: HashMap<OracleEventId, Vec<Cet>>, cets: HashMap<BitMexPriceEventId, Vec<Cet>>,
refund: (Txid, Script, u32), refund: (Txid, Script, u32),
revoked_commits: Vec<(Txid, Script)>, revoked_commits: Vec<(Txid, Script)>,
} }
@ -209,7 +209,7 @@ where
fn monitor_cet_finality( fn monitor_cet_finality(
&mut self, &mut self,
cets: HashMap<OracleEventId, Vec<Cet>>, cets: HashMap<BitMexPriceEventId, Vec<Cet>>,
attestation: Attestation, attestation: Attestation,
order_id: OrderId, order_id: OrderId,
) -> Result<()> { ) -> Result<()> {
@ -581,8 +581,8 @@ impl From<model::cfd::Cet> for Cet {
} }
fn map_cets( fn map_cets(
cets: HashMap<OracleEventId, Vec<model::cfd::Cet>>, cets: HashMap<BitMexPriceEventId, Vec<model::cfd::Cet>>,
) -> HashMap<OracleEventId, Vec<Cet>> { ) -> HashMap<BitMexPriceEventId, Vec<Cet>> {
cets.into_iter() cets.into_iter()
.map(|(event_id, cets)| { .map(|(event_id, cets)| {
( (

40
daemon/src/oracle.rs

@ -1,6 +1,6 @@
use crate::actors::log_error; use crate::actors::log_error;
use crate::model::cfd::{Cfd, CfdState}; use crate::model::cfd::{Cfd, CfdState};
use crate::model::OracleEventId; use crate::model::BitMexPriceEventId;
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use async_trait::async_trait; use async_trait::async_trait;
use cfd_protocol::secp256k1_zkp::{schnorrsig, SecretKey}; use cfd_protocol::secp256k1_zkp::{schnorrsig, SecretKey};
@ -17,9 +17,9 @@ const OLIVIA_EVENT_TIME_FORMAT: &[FormatItem] =
format_description!("[year]-[month]-[day]T[hour]:[minute]:[second]"); format_description!("[year]-[month]-[day]T[hour]:[minute]:[second]");
pub struct Actor<CFD, M> { pub struct Actor<CFD, M> {
announcements: HashMap<OracleEventId, (OffsetDateTime, Vec<schnorrsig::PublicKey>)>, announcements: HashMap<BitMexPriceEventId, (OffsetDateTime, Vec<schnorrsig::PublicKey>)>,
pending_announcements: HashSet<OracleEventId>, pending_announcements: HashSet<BitMexPriceEventId>,
pending_attestations: HashSet<OracleEventId>, pending_attestations: HashSet<BitMexPriceEventId>,
cfd_actor_address: xtra::Address<CFD>, cfd_actor_address: xtra::Address<CFD>,
monitor_actor_address: xtra::Address<M>, monitor_actor_address: xtra::Address<M>,
} }
@ -32,25 +32,25 @@ pub struct Sync;
/// The `Announcement` corresponds to the `OracleEventId` included in /// The `Announcement` corresponds to the `OracleEventId` included in
/// the message. /// the message.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct FetchAnnouncement(pub OracleEventId); pub struct FetchAnnouncement(pub BitMexPriceEventId);
pub struct MonitorAttestation { pub struct MonitorAttestation {
pub event_id: OracleEventId, pub event_id: BitMexPriceEventId,
} }
/// Message used to request the `Announcement` from the /// Message used to request the `Announcement` from the
/// `oracle::Actor`'s local state. /// `oracle::Actor`'s local state.
/// ///
/// The `Announcement` corresponds to the `OracleEventId` included in /// The `Announcement` corresponds to the [`BitMexPriceEventId`] included in
/// the message. /// the message.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct GetAnnouncement(pub OracleEventId); pub struct GetAnnouncement(pub BitMexPriceEventId);
// TODO: Split xtra::Message and API object // TODO: Split xtra::Message and API object
#[derive(Debug, Clone, Deserialize, PartialEq)] #[derive(Debug, Clone, Deserialize, PartialEq)]
#[serde(try_from = "olivia_api::Response")] #[serde(try_from = "olivia_api::Response")]
pub struct Attestation { pub struct Attestation {
pub id: OracleEventId, pub id: BitMexPriceEventId,
pub price: u64, pub price: u64,
pub scalars: Vec<SecretKey>, pub scalars: Vec<SecretKey>,
} }
@ -58,7 +58,7 @@ pub struct Attestation {
/// A module-private message to allow parallelization of fetching announcements. /// A module-private message to allow parallelization of fetching announcements.
#[derive(Debug)] #[derive(Debug)]
struct NewAnnouncementFetched { struct NewAnnouncementFetched {
id: OracleEventId, id: BitMexPriceEventId,
expected_outcome_time: OffsetDateTime, expected_outcome_time: OffsetDateTime,
nonce_pks: Vec<schnorrsig::PublicKey>, nonce_pks: Vec<schnorrsig::PublicKey>,
} }
@ -258,7 +258,7 @@ impl<CFD: 'static, M: 'static> xtra::Handler<NewAnnouncementFetched> for Actor<C
} }
#[allow(dead_code)] #[allow(dead_code)]
pub fn next_announcement_after(timestamp: OffsetDateTime) -> Result<OracleEventId> { pub fn next_announcement_after(timestamp: OffsetDateTime) -> Result<BitMexPriceEventId> {
let adjusted = ceil_to_next_hour(timestamp)?; let adjusted = ceil_to_next_hour(timestamp)?;
Ok(event_id(adjusted)) Ok(event_id(adjusted))
@ -275,12 +275,12 @@ fn ceil_to_next_hour(original: OffsetDateTime) -> Result<OffsetDateTime, anyhow:
/// Construct the URL of `olivia`'s `BitMEX/BXBT` event to be attested /// Construct the URL of `olivia`'s `BitMEX/BXBT` event to be attested
/// for at the time indicated by the argument `datetime`. /// for at the time indicated by the argument `datetime`.
fn event_id(datetime: OffsetDateTime) -> OracleEventId { fn event_id(datetime: OffsetDateTime) -> BitMexPriceEventId {
let datetime = datetime let datetime = datetime
.format(&OLIVIA_EVENT_TIME_FORMAT) .format(&OLIVIA_EVENT_TIME_FORMAT)
.expect("valid formatter for datetime"); .expect("valid formatter for datetime");
OracleEventId(format!("/x/BitMEX/BXBT/{}.price?n=20", datetime)) BitMexPriceEventId(format!("/x/BitMEX/BXBT/{}.price?n=20", datetime))
} }
#[derive(Debug, Clone, serde::Deserialize, PartialEq)] #[derive(Debug, Clone, serde::Deserialize, PartialEq)]
@ -290,7 +290,7 @@ pub struct Announcement {
/// ///
/// Doubles up as the path of the URL for this event i.e. /// Doubles up as the path of the URL for this event i.e.
/// https://h00.ooo/{id}. /// https://h00.ooo/{id}.
pub id: OracleEventId, pub id: BitMexPriceEventId,
pub expected_outcome_time: OffsetDateTime, pub expected_outcome_time: OffsetDateTime,
pub nonce_pks: Vec<schnorrsig::PublicKey>, pub nonce_pks: Vec<schnorrsig::PublicKey>,
} }
@ -341,7 +341,7 @@ impl xtra::Message for NewAnnouncementFetched {
} }
mod olivia_api { mod olivia_api {
use crate::model::OracleEventId; use crate::model::BitMexPriceEventId;
use anyhow::Context; use anyhow::Context;
use cfd_protocol::secp256k1_zkp::{schnorrsig, SecretKey}; use cfd_protocol::secp256k1_zkp::{schnorrsig, SecretKey};
use std::convert::TryFrom; use std::convert::TryFrom;
@ -363,7 +363,7 @@ mod olivia_api {
serde_json::from_str::<AnnouncementData>(&response.announcement.oracle_event.data)?; serde_json::from_str::<AnnouncementData>(&response.announcement.oracle_event.data)?;
Ok(Self { Ok(Self {
id: OracleEventId(data.id), id: BitMexPriceEventId(data.id),
expected_outcome_time: data.expected_outcome_time, expected_outcome_time: data.expected_outcome_time,
nonce_pks: data.schemes.olivia_v1.nonces, nonce_pks: data.schemes.olivia_v1.nonces,
}) })
@ -381,7 +381,7 @@ mod olivia_api {
let attestation = response.attestation.context("attestation missing")?; let attestation = response.attestation.context("attestation missing")?;
Ok(Self { Ok(Self {
id: OracleEventId(data.id), id: BitMexPriceEventId(data.id),
price: attestation.outcome.parse()?, price: attestation.outcome.parse()?,
scalars: attestation.schemes.olivia_v1.scalars, scalars: attestation.schemes.olivia_v1.scalars,
}) })
@ -452,7 +452,7 @@ mod olivia_api {
mod tests { mod tests {
use std::vec; use std::vec;
use crate::model::OracleEventId; use crate::model::BitMexPriceEventId;
use crate::oracle; use crate::oracle;
use time::macros::datetime; use time::macros::datetime;
@ -462,7 +462,7 @@ mod olivia_api {
let deserialized = serde_json::from_str::<oracle::Announcement>(json).unwrap(); let deserialized = serde_json::from_str::<oracle::Announcement>(json).unwrap();
let expected = oracle::Announcement { let expected = oracle::Announcement {
id: OracleEventId("/x/BitMEX/BXBT/2021-10-04T22:00:00.price?n=20".to_string()), id: BitMexPriceEventId("/x/BitMEX/BXBT/2021-10-04T22:00:00.price?n=20".to_string()),
expected_outcome_time: datetime!(2021-10-04 22:00:00).assume_utc(), expected_outcome_time: datetime!(2021-10-04 22:00:00).assume_utc(),
nonce_pks: vec![ nonce_pks: vec![
"8d72028eeaf4b85aec0f750f05a4a320cac193f5d8494bfe05cd4b29f3df4239" "8d72028eeaf4b85aec0f750f05a4a320cac193f5d8494bfe05cd4b29f3df4239"
@ -537,7 +537,7 @@ mod olivia_api {
let deserialized = serde_json::from_str::<oracle::Attestation>(json).unwrap(); let deserialized = serde_json::from_str::<oracle::Attestation>(json).unwrap();
let expected = oracle::Attestation { let expected = oracle::Attestation {
id: OracleEventId("/x/BitMEX/BXBT/2021-10-04T22:00:00.price?n=20".to_string()), id: BitMexPriceEventId("/x/BitMEX/BXBT/2021-10-04T22:00:00.price?n=20".to_string()),
price: 48935, price: 48935,
scalars: vec![ scalars: vec![
"1327b3bd0f1faf45d6fed6c96d0c158da22a2033a6fed98bed036df0a4eef484" "1327b3bd0f1faf45d6fed6c96d0c158da22a2033a6fed98bed036df0a4eef484"

6
daemon/src/setup_contract.rs

@ -1,5 +1,5 @@
use crate::model::cfd::{Cet, Cfd, Dlc, RevokedCommit, Role}; use crate::model::cfd::{Cet, Cfd, Dlc, RevokedCommit, Role};
use crate::model::OracleEventId; use crate::model::BitMexPriceEventId;
use crate::wallet::Wallet; use crate::wallet::Wallet;
use crate::wire::{ use crate::wire::{
Msg0, Msg1, Msg2, RollOverMsg, RollOverMsg0, RollOverMsg1, RollOverMsg2, SetupMsg, Msg0, Msg1, Msg2, RollOverMsg, RollOverMsg0, RollOverMsg1, RollOverMsg2, SetupMsg,
@ -213,7 +213,7 @@ pub async fn new(
}) })
}) })
.collect::<Result<Vec<_>>>()?; .collect::<Result<Vec<_>>>()?;
Ok((OracleEventId(event_id), cets)) Ok((BitMexPriceEventId(event_id), cets))
}) })
.collect::<Result<HashMap<_, _>>>()?; .collect::<Result<HashMap<_, _>>>()?;
@ -435,7 +435,7 @@ pub async fn roll_over(
}) })
}) })
.collect::<Result<Vec<_>>>()?; .collect::<Result<Vec<_>>>()?;
Ok((OracleEventId(event_id), cets)) Ok((BitMexPriceEventId(event_id), cets))
}) })
.collect::<Result<HashMap<_, _>>>()?; .collect::<Result<HashMap<_, _>>>()?;

4
daemon/src/taker_cfd.rs

@ -8,7 +8,7 @@ use crate::model::cfd::{
Role, RollOverProposal, SettlementKind, SettlementProposal, UpdateCfdProposal, Role, RollOverProposal, SettlementKind, SettlementProposal, UpdateCfdProposal,
UpdateCfdProposals, UpdateCfdProposals,
}; };
use crate::model::{OracleEventId, Usd}; use crate::model::{BitMexPriceEventId, Usd};
use crate::monitor::{self, MonitorParams}; use crate::monitor::{self, MonitorParams};
use crate::wallet::Wallet; use crate::wallet::Wallet;
use crate::wire::{MakerToTaker, RollOverMsg, SetupMsg}; use crate::wire::{MakerToTaker, RollOverMsg, SetupMsg};
@ -380,7 +380,7 @@ impl Actor {
async fn handle_roll_over_accepted( async fn handle_roll_over_accepted(
&mut self, &mut self,
order_id: OrderId, order_id: OrderId,
oracle_event_id: OracleEventId, oracle_event_id: BitMexPriceEventId,
ctx: &mut Context<Self>, ctx: &mut Context<Self>,
) -> Result<()> { ) -> Result<()> {
tracing::info!(%order_id, "Roll; over request got accepted"); tracing::info!(%order_id, "Roll; over request got accepted");

4
daemon/src/wire.rs

@ -1,5 +1,5 @@
use crate::model::cfd::OrderId; use crate::model::cfd::OrderId;
use crate::model::{OracleEventId, Usd}; use crate::model::{BitMexPriceEventId, Usd};
use crate::Order; use crate::Order;
use anyhow::{bail, Result}; use anyhow::{bail, Result};
use bdk::bitcoin::secp256k1::Signature; use bdk::bitcoin::secp256k1::Signature;
@ -72,7 +72,7 @@ pub enum MakerToTaker {
RollOverProtocol(RollOverMsg), RollOverProtocol(RollOverMsg),
ConfirmRollOver { ConfirmRollOver {
order_id: OrderId, order_id: OrderId,
oracle_event_id: OracleEventId, oracle_event_id: BitMexPriceEventId,
}, },
RejectRollOver(OrderId), RejectRollOver(OrderId),
} }

Loading…
Cancel
Save