breez_sdk_core/swap_in/
segwit_server.rs

1use sdk_common::{grpc::GetSwapPaymentRequest, prelude::BreezServer, with_connection_retry};
2
3use crate::SwapperAPI;
4
5#[cfg_attr(test, mockall::automock)]
6#[tonic::async_trait]
7impl SwapperAPI for BreezServer {
8    async fn complete_swap(&self, bolt11: String) -> anyhow::Result<()> {
9        let mut client = self.get_swapper_client().await;
10        let req = GetSwapPaymentRequest {
11            payment_request: bolt11,
12        };
13        let resp = with_connection_retry!(client.get_swap_payment(req.clone()))
14            .await?
15            .into_inner();
16
17        match resp.swap_error() {
18            crate::grpc::get_swap_payment_reply::SwapError::NoError => Ok(()),
19            err => Err(anyhow::anyhow!(err.as_str_name())),
20        }
21    }
22}