Browse Source

Merge pull request #188 from comit-network/fix-publish-commit

Fix commit transaction publication
upload-correct-windows-binary
Daniel Karzel 3 years ago
committed by GitHub
parent
commit
835af9c029
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      daemon/src/maker_cfd.rs
  2. 13
      daemon/src/model/cfd.rs
  3. 6
      daemon/src/taker_cfd.rs

6
daemon/src/maker_cfd.rs

@ -425,6 +425,9 @@ impl Actor {
let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?;
insert_new_cfd_state_by_order_id(cfd.order.id, new_state, &mut conn).await?;
self.cfd_feed_actor_inbox
.send(load_all_cfds(&mut conn).await?)?;
Ok(())
}
@ -438,6 +441,9 @@ impl Actor {
insert_new_cfd_state_by_order_id(order_id, new_state.clone(), &mut conn).await?;
self.cfd_feed_actor_inbox
.send(load_all_cfds(&mut conn).await?)?;
// TODO: Not sure that should be done here...
// Consider bubbling the refund availability up to the user, and let user trigger
// transaction publication

13
daemon/src/model/cfd.rs

@ -322,7 +322,7 @@ impl fmt::Display for CfdState {
write!(f, "Open")
}
CfdState::PendingCommit { .. } => {
write!(f, "Pending Committ")
write!(f, "Pending Commit")
}
CfdState::OpenCommitted { .. } => {
write!(f, "Open Committed")
@ -475,9 +475,9 @@ impl Cfd {
}
}
monitor::Event::CommitFinality(_) => {
let dlc = if let Open { dlc, .. } = self.state.clone() {
let dlc = if let PendingCommit { dlc, .. } = self.state.clone() {
dlc
} else if let PendingOpen { dlc, .. } = self.state.clone() {
} else if let PendingOpen { dlc, .. } | Open { dlc, .. } = self.state.clone() {
tracing::debug!(%order_id, "Was in unexpected state {}, jumping ahead to OpenCommitted", self.state);
dlc
} else {
@ -624,8 +624,9 @@ impl Cfd {
}
pub fn commit_tx(&self) -> Result<Transaction> {
let dlc = if let CfdState::Open { dlc, .. } | CfdState::PendingOpen { dlc, .. } =
self.state.clone()
let dlc = if let CfdState::Open { dlc, .. }
| CfdState::PendingOpen { dlc, .. }
| CfdState::PendingCommit { dlc, .. } = self.state.clone()
{
dlc
} else {
@ -652,7 +653,7 @@ impl Cfd {
let signed_commit_tx = finalize_spend_transaction(
dlc.commit.0,
&dlc.commit.2,
&dlc.lock.1,
(our_pubkey, our_sig),
(counterparty_pubkey, counterparty_sig),
)?;

6
daemon/src/taker_cfd.rs

@ -317,6 +317,9 @@ impl Actor {
insert_new_cfd_state_by_order_id(order_id, new_state.clone(), &mut conn).await?;
self.cfd_feed_actor_inbox
.send(load_all_cfds(&mut conn).await?)?;
// TODO: Not sure that should be done here...
// Consider bubbling the refund availability up to the user, and let user trigger
// transaction publication
@ -350,6 +353,9 @@ impl Actor {
let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?;
insert_new_cfd_state_by_order_id(cfd.order.id, new_state, &mut conn).await?;
self.cfd_feed_actor_inbox
.send(load_all_cfds(&mut conn).await?)?;
Ok(())
}

Loading…
Cancel
Save