use crate::client::LnBot;
use crate::errors::LnBotError;
use crate::types::*;
pub struct AddressesResource<'a> {
pub(crate) client: &'a LnBot,
pub(crate) prefix: &'a str,
}
impl AddressesResource<'_> {
pub async fn create(&self, req: &CreateAddressRequest) -> Result<AddressResponse, LnBotError> {
self.client
.post(&format!("{}/addresses", self.prefix), Some(req))
.await
}
pub async fn list(&self) -> Result<Vec<AddressResponse>, LnBotError> {
self.client
.get(&format!("{}/addresses", self.prefix))
.await
}
pub async fn delete(&self, address: &str) -> Result<(), LnBotError> {
self.client
.delete(&format!(
"{}/addresses/{}",
self.prefix,
urlencoding::encode(address)
))
.await
}
pub async fn transfer(
&self,
address: &str,
req: &TransferAddressRequest,
) -> Result<TransferAddressResponse, LnBotError> {
self.client
.post(
&format!(
"{}/addresses/{}/transfer",
self.prefix,
urlencoding::encode(address)
),
Some(req),
)
.await
}
}