Browse Source

Display `CetStatus` as part of `NotReady` error

temporary-fast-timelocks
Daniel Karzel 3 years ago
parent
commit
d86fd3493b
No known key found for this signature in database GPG Key ID: 30C3FC2E438ADB6E
  1. 5
      daemon/src/maker_cfd.rs
  2. 30
      daemon/src/model/cfd.rs
  3. 5
      daemon/src/taker_cfd.rs

5
daemon/src/maker_cfd.rs

@ -840,10 +840,7 @@ impl Actor {
insert_new_cfd_state_by_order_id(cfd.order.id, cfd.state, &mut conn).await?;
}
Err(not_ready_yet) => {
tracing::debug!(
"Attestation received but we are not ready to publish it yet: {:#}",
not_ready_yet
);
tracing::debug!("{:#}", not_ready_yet);
return Ok(());
}
};

30
daemon/src/model/cfd.rs

@ -317,6 +317,17 @@ pub enum CetStatus {
Ready(Attestation),
}
impl fmt::Display for CetStatus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
CetStatus::Unprepared => write!(f, "Unprepared"),
CetStatus::TimelockExpired => write!(f, "TimelockExpired"),
CetStatus::OracleSigned(_) => write!(f, "OracleSigned"),
CetStatus::Ready(_) => write!(f, "Ready"),
}
}
}
impl CfdState {
fn get_common(&self) -> CfdStateCommon {
let common = match self {
@ -849,10 +860,13 @@ impl Cfd {
cet_status: CetStatus::Ready(attestation),
..
} => (dlc, attestation),
CfdState::OpenCommitted { .. }
| CfdState::Open { .. }
| CfdState::PendingCommit { .. } => {
return Ok(Err(NotReadyYet));
CfdState::OpenCommitted { cet_status, .. } => {
return Ok(Err(NotReadyYet { cet_status }));
}
CfdState::Open { .. } | CfdState::PendingCommit { .. } => {
return Ok(Err(NotReadyYet {
cet_status: CetStatus::Unprepared,
}));
}
_ => bail!("Cannot publish CET in state {}", self.state.clone()),
};
@ -946,9 +960,11 @@ impl Cfd {
}
}
#[derive(thiserror::Error, Debug, Clone, Copy)]
#[error("The cfd is not ready for CET publication yet")]
pub struct NotReadyYet;
#[derive(thiserror::Error, Debug, Clone)]
#[error("The cfd is not ready for CET publication yet: {cet_status}")]
pub struct NotReadyYet {
cet_status: CetStatus,
}
#[derive(Debug, Clone)]
pub enum CfdStateChangeEvent {

5
daemon/src/taker_cfd.rs

@ -621,10 +621,7 @@ impl Actor {
insert_new_cfd_state_by_order_id(cfd.order.id, cfd.state, &mut conn).await?;
}
Err(not_ready_yet) => {
tracing::debug!(
"Attestation received but we are not ready to publish it yet: {:#}",
not_ready_yet
);
tracing::debug!("{:#}", not_ready_yet);
return Ok(());
}
};

Loading…
Cancel
Save