add psbt submission for maker

This commit is contained in:
Felix
2024-06-18 16:24:23 +00:00
parent 11fb176977
commit bd8deb2b4c
4 changed files with 38 additions and 30 deletions

View File

@ -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(())
}
}

View File

@ -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 {

View File

@ -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(())
}

View File

@ -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,