sui_rpc_api/grpc/v2alpha/ledger_service/
mod.rs1use sui_rpc::proto::sui::rpc::v2alpha::ListCheckpointsRequest;
5use sui_rpc::proto::sui::rpc::v2alpha::ListCheckpointsResponse;
6use sui_rpc::proto::sui::rpc::v2alpha::ListEventsRequest;
7use sui_rpc::proto::sui::rpc::v2alpha::ListEventsResponse;
8use sui_rpc::proto::sui::rpc::v2alpha::ListTransactionsRequest;
9use sui_rpc::proto::sui::rpc::v2alpha::ListTransactionsResponse;
10use sui_rpc::proto::sui::rpc::v2alpha::ledger_service_server::LedgerService;
11use tonic::codegen::BoxStream;
12
13use crate::RpcService;
14
15mod bitmap_scan;
16mod chunked_scan;
17mod ledger_read;
18mod list_checkpoints;
19mod list_events;
20mod list_transactions;
21mod query_end;
22mod stream;
23
24use stream::serve_list_stream;
25
26#[tonic::async_trait]
27impl LedgerService for RpcService {
28 async fn list_checkpoints(
29 &self,
30 request: tonic::Request<ListCheckpointsRequest>,
31 ) -> Result<tonic::Response<BoxStream<ListCheckpointsResponse>>, tonic::Status> {
32 serve_list_stream(
33 "list_checkpoints",
34 self.config.ledger_history().list_checkpoints().timeout,
35 list_checkpoints::list_checkpoints(self.clone(), request.into_inner()),
36 )
37 .await
38 }
39
40 async fn list_transactions(
41 &self,
42 request: tonic::Request<ListTransactionsRequest>,
43 ) -> Result<tonic::Response<BoxStream<ListTransactionsResponse>>, tonic::Status> {
44 serve_list_stream(
45 "list_transactions",
46 self.config.ledger_history().list_transactions().timeout,
47 list_transactions::list_transactions(self.clone(), request.into_inner()),
48 )
49 .await
50 }
51
52 async fn list_events(
53 &self,
54 request: tonic::Request<ListEventsRequest>,
55 ) -> Result<tonic::Response<BoxStream<ListEventsResponse>>, tonic::Status> {
56 serve_list_stream(
57 "list_events",
58 self.config.ledger_history().list_events().timeout,
59 list_events::list_events(self.clone(), request.into_inner()),
60 )
61 .await
62 }
63}