diff --git a/taptrade-cli-demo/trader/src/communication/mod.rs b/taptrade-cli-demo/trader/src/communication/mod.rs index f721bc8..c20659c 100644 --- a/taptrade-cli-demo/trader/src/communication/mod.rs +++ b/taptrade-cli-demo/trader/src/communication/mod.rs @@ -127,3 +127,32 @@ impl OfferTakenResponse { } } } + +impl PsbtSubmissionRequest { + pub fn submit_escrow_psbt( + psbt: &PartiallySignedTransaction, + offer_id_hex: String, + taker_config: &TraderSettings, + ) -> Result<()> { + let request = PsbtSubmissionRequest { + signed_psbt_hex: psbt.serialize_hex(), + offer_id_hex, + robohash_hex: taker_config.robosats_robohash_hex.clone(), + }; + let client = reqwest::blocking::Client::new(); + let res = client + .post(format!( + "{}{}", + taker_config.coordinator_endpoint, "/submit-escrow-psbt" + )) + .json(&request) + .send()?; + if res.status() != 200 { + return Err(anyhow!( + "Submitting escrow psbt failed. Status: {}", + res.status() + )); + } + Ok(()) + } +} diff --git a/taptrade-cli-demo/trader/src/communication/taker_requests.rs b/taptrade-cli-demo/trader/src/communication/taker_requests.rs index 5162ff5..d964cf2 100644 --- a/taptrade-cli-demo/trader/src/communication/taker_requests.rs +++ b/taptrade-cli-demo/trader/src/communication/taker_requests.rs @@ -84,35 +84,6 @@ impl OfferPsbtRequest { } } -impl PsbtSubmissionRequest { - pub fn submit_taker_psbt( - psbt: &PartiallySignedTransaction, - offer_id_hex: String, - taker_config: &TraderSettings, - ) -> Result<()> { - let request = PsbtSubmissionRequest { - signed_psbt_hex: psbt.serialize_hex(), - offer_id_hex, - robohash_hex: taker_config.robosats_robohash_hex.clone(), - }; - let client = reqwest::blocking::Client::new(); - let res = client - .post(format!( - "{}{}", - taker_config.coordinator_endpoint, "/submit-taker-psbt" - )) - .json(&request) - .send()?; - if res.status() != 200 { - return Err(anyhow!( - "Submitting taker psbt failed. Status: {}", - res.status() - )); - } - Ok(()) - } -} - impl IsOfferReadyRequest { pub fn poll(taker_config: &TraderSettings, offer: &ActiveOffer) -> Result<()> { let request = IsOfferReadyRequest { diff --git a/taptrade-cli-demo/trader/src/trading/mod.rs b/taptrade-cli-demo/trader/src/trading/mod.rs index 2b1fd14..81847ba 100644 --- a/taptrade-cli-demo/trader/src/trading/mod.rs +++ b/taptrade-cli-demo/trader/src/trading/mod.rs @@ -34,6 +34,14 @@ pub fn run_maker(maker_config: &TraderSettings) -> Result<()> { .validate_maker_psbt(&escrow_contract_psbt)? .sign_escrow_psbt(&mut escrow_contract_psbt)?; + // submit signed escrow psbt back to coordinator + PsbtSubmissionRequest::submit_escrow_psbt( + &escrow_contract_psbt, + offer.offer_id_hex.clone(), + taker_config, + )?; + // wait for confirmation + Ok(()) } diff --git a/taptrade-cli-demo/trader/src/trading/taker_utils.rs b/taptrade-cli-demo/trader/src/trading/taker_utils.rs index 516f9ee..ddd9533 100644 --- a/taptrade-cli-demo/trader/src/trading/taker_utils.rs +++ b/taptrade-cli-demo/trader/src/trading/taker_utils.rs @@ -35,7 +35,7 @@ impl ActiveOffer { .sign_escrow_psbt(&mut escrow_contract_psbt)?; // submit signed escrow psbt back to coordinator - PsbtSubmissionRequest::submit_taker_psbt( + PsbtSubmissionRequest::submit_escrow_psbt( &escrow_contract_psbt, offer.offer_id_hex.clone(), taker_config,