Skip to main content

made_client/
budgets.rs

1use made_proto::v1::{
2    GetBudgetReportRequest, GetBudgetReportResponse, ListPendingBudgetReservationsRequest,
3    ListPendingBudgetReservationsResponse,
4};
5
6use crate::{MadeClient, MadeClientError};
7
8impl MadeClient {
9    /// Read the durable budget account shared by a ceremony tree.
10    pub async fn get_budget_report(
11        &self,
12        ceremony_id: impl Into<String>,
13    ) -> Result<GetBudgetReportResponse, MadeClientError> {
14        self.rpc()
15            .get_budget_report(Self::request(
16                &self.context(),
17                "/underpass.made.v1.MadeService/GetBudgetReport",
18                GetBudgetReportRequest {
19                    ceremony_id: ceremony_id.into(),
20                },
21            ))
22            .await
23            .map(tonic::Response::into_inner)
24            .map_err(MadeClientError::from_status)
25    }
26
27    /// List unresolved reservations in stable keyset order.
28    pub async fn list_pending_budget_reservations(
29        &self,
30        after_reservation_id: impl Into<String>,
31        limit: u32,
32    ) -> Result<ListPendingBudgetReservationsResponse, MadeClientError> {
33        self.rpc()
34            .list_pending_budget_reservations(Self::request(
35                &self.context(),
36                "/underpass.made.v1.MadeService/ListPendingBudgetReservations",
37                ListPendingBudgetReservationsRequest {
38                    after_reservation_id: after_reservation_id.into(),
39                    limit,
40                },
41            ))
42            .await
43            .map(tonic::Response::into_inner)
44            .map_err(MadeClientError::from_status)
45    }
46}