Skip to content

Commit

Permalink
Allow handle_create_swap to accept a CreateSwapPayload
Browse files Browse the repository at this point in the history
By moving the dedicated deserialisation caused by
#83 a layer up.
  • Loading branch information
luckysori committed Jan 4, 2021
1 parent 94b3ea0 commit 8783562
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 17 deletions.
6 changes: 5 additions & 1 deletion bobtimus/src/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use warp::{
Rejection, Reply,
};

use crate::{Bobtimus, LatestRate, Rate};
use crate::{Bobtimus, CreateSwapPayload, LatestRate, Rate};

#[derive(RustEmbed)]
#[folder = "../waves/build/"]
Expand Down Expand Up @@ -55,6 +55,10 @@ where
RS: LatestRate,
{
let payload = payload.to_string();
let payload: CreateSwapPayload = serde_json::from_str(&payload).map_err(|e| {
log::error!("Failed to deserialize create swap payload: {}", e);
warp::reject::reject()
})?;

bobtimus
.handle_create_swap(payload)
Expand Down
27 changes: 11 additions & 16 deletions bobtimus/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,11 @@ pub struct AliceInput {
}

impl<R, RS> Bobtimus<R, RS> {
pub async fn handle_create_swap(&mut self, payload: String) -> Result<Message1>
pub async fn handle_create_swap(&mut self, payload: CreateSwapPayload) -> Result<Message1>
where
R: RngCore + CryptoRng,
RS: LatestRate,
{
let payload: CreateSwapPayload = serde_json::from_str(&payload)?;

let latest_rate = self
.rate_service
.latest_rate()
Expand Down Expand Up @@ -317,19 +315,16 @@ mod tests {
};

let message1 = bob
.handle_create_swap(
serde_json::to_string(&CreateSwapPayload {
alice_inputs: vec![AliceInput {
outpoint: message0.input.previous_output,
blinding_key: message0.input_blinding_sk,
}],
address_redeem: message0.address_redeem,
address_change: message0.address_change,
fee: message0.fee,
btc_amount: redeem_amount_bob,
})
.unwrap(),
)
.handle_create_swap(CreateSwapPayload {
alice_inputs: vec![AliceInput {
outpoint: message0.input.previous_output,
blinding_key: message0.input_blinding_sk,
}],
address_redeem: message0.address_redeem,
address_change: message0.address_change,
fee: message0.fee,
btc_amount: redeem_amount_bob,
})
.await
.unwrap();

Expand Down

0 comments on commit 8783562

Please sign in to comment.