Browse Source

Fix commit transaction publication

1. Finalize with correct descriptor (of lock tx)
2. Restart fix: Allow retrieving the commit tx in state `PendingCommit` so we can re-publish in that state.
3. Update cfd feed after state transition to `PendingCommit` to see updated state in UI.
upload-correct-windows-binary
Daniel Karzel 3 years ago
parent
commit
fed9a8bde6
No known key found for this signature in database GPG Key ID: 30C3FC2E438ADB6E
  1. 3
      daemon/src/maker_cfd.rs
  2. 9
      daemon/src/model/cfd.rs
  3. 3
      daemon/src/taker_cfd.rs

3
daemon/src/maker_cfd.rs

@ -445,6 +445,9 @@ impl Actor {
let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?; let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?;
insert_new_cfd_state_by_order_id(cfd.order.id, new_state, &mut conn).await?; 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(()) Ok(())
} }

9
daemon/src/model/cfd.rs

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

3
daemon/src/taker_cfd.rs

@ -370,6 +370,9 @@ impl Actor {
let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?; let new_state = cfd.handle(CfdStateChangeEvent::CommitTxSent)?;
insert_new_cfd_state_by_order_id(cfd.order.id, new_state, &mut conn).await?; 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(()) Ok(())
} }

Loading…
Cancel
Save