mirror of
https://github.com/RoboSats/taptrade-core.git
synced 2025-07-20 01:33:19 +00:00
fix taker bond validation endpoint
This commit is contained in:
@ -26,7 +26,7 @@ async fn receive_order(
|
||||
Extension(wallet): Extension<Arc<CoordinatorWallet>>,
|
||||
Json(order): Json<OrderRequest>,
|
||||
) -> Result<Json<BondRequirementResponse>, AppError> {
|
||||
dbg!(&order);
|
||||
debug!("{:#?}", &order);
|
||||
if order.sanity_check().is_err() {
|
||||
return Err(AppError(anyhow!("Invalid order request")));
|
||||
}
|
||||
@ -64,11 +64,11 @@ async fn submit_maker_bond(
|
||||
{
|
||||
Ok(()) => (),
|
||||
Err(e) => {
|
||||
dbg!(e);
|
||||
error!("{}", e);
|
||||
return Ok(StatusCode::NOT_ACCEPTABLE.into_response());
|
||||
}
|
||||
}
|
||||
trace!("\nBond validation successful");
|
||||
debug!("\nBond validation successful");
|
||||
let offer_id_hex: String = generate_random_order_id(16); // 16 bytes random offer id, maybe a different system makes more sense later on? (uuid or increasing counter...)
|
||||
// create address for taker bond
|
||||
let new_taker_bond_address = wallet.get_new_address().await.context(format!(
|
||||
@ -117,22 +117,26 @@ async fn submit_taker_bond(
|
||||
let bond_requirements = database
|
||||
.fetch_taker_bond_requirements(&payload.offer.offer_id_hex)
|
||||
.await;
|
||||
// match bond_requirements {
|
||||
// Ok(bond_requirements) => {
|
||||
// if !wallet
|
||||
// .validate_bond_tx_hex(&payload.trade_data.signed_bond_hex, &bond_requirements)
|
||||
// .await?
|
||||
// {
|
||||
// dbg!("Taker Bond validation failed");
|
||||
// return Ok(StatusCode::NOT_ACCEPTABLE.into_response());
|
||||
// }
|
||||
// }
|
||||
// Err(_) => return Ok(StatusCode::NOT_FOUND.into_response()),
|
||||
// }
|
||||
match bond_requirements {
|
||||
Ok(bond_requirements) => {
|
||||
match wallet
|
||||
.validate_bond_tx_hex(&payload.trade_data.signed_bond_hex, &bond_requirements)
|
||||
.await
|
||||
{
|
||||
Ok(()) => (),
|
||||
Err(e) => {
|
||||
warn!("{}", e);
|
||||
return Ok(StatusCode::NOT_ACCEPTABLE.into_response());
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(_) => return Ok(StatusCode::NOT_FOUND.into_response()),
|
||||
}
|
||||
debug!("\nTaker bond validation successful");
|
||||
|
||||
panic!("Trade contract PSBT not implemented!");
|
||||
let trade_contract_psbt_taker = "".to_string(); // implement psbt
|
||||
let trade_contract_psbt_maker = "".to_string(); // implement psbt
|
||||
panic!("Trade contract PSBT not implemented!");
|
||||
|
||||
database
|
||||
.add_taker_info_and_move_table(
|
||||
|
@ -281,18 +281,19 @@ impl CoordinatorDB {
|
||||
pub async fn fetch_taker_bond_requirements(
|
||||
&self,
|
||||
offer_id_hex: &String,
|
||||
) -> Result<BondRequirementResponse> {
|
||||
) -> Result<BondRequirements> {
|
||||
let taker_bond_requirements = sqlx::query(
|
||||
"SELECT taker_bond_address, bond_amount_sat FROM active_maker_offers WHERE offer_id = ?",
|
||||
"SELECT taker_bond_address, bond_amount_sat, amount_sat FROM active_maker_offers WHERE offer_id = ?",
|
||||
)
|
||||
.bind(offer_id_hex)
|
||||
.fetch_one(&*self.db_pool)
|
||||
.await?;
|
||||
|
||||
Ok(BondRequirementResponse {
|
||||
Ok(BondRequirements {
|
||||
bond_address: taker_bond_requirements.try_get("taker_bond_address")?,
|
||||
locking_amount_sat: taker_bond_requirements.try_get::<i64, _>("bond_amount_sat")?
|
||||
as u64,
|
||||
min_input_sum_sat: taker_bond_requirements.try_get::<i64, _>("amount_sat")? as u64,
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user