sui_rpc_api/grpc/v2/ledger_service/
mod.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::RpcService;
5use sui_rpc::proto::sui::rpc::v2::BatchGetObjectsRequest;
6use sui_rpc::proto::sui::rpc::v2::BatchGetObjectsResponse;
7use sui_rpc::proto::sui::rpc::v2::BatchGetTransactionsRequest;
8use sui_rpc::proto::sui::rpc::v2::BatchGetTransactionsResponse;
9use sui_rpc::proto::sui::rpc::v2::GetCheckpointRequest;
10use sui_rpc::proto::sui::rpc::v2::GetCheckpointResponse;
11use sui_rpc::proto::sui::rpc::v2::GetEpochRequest;
12use sui_rpc::proto::sui::rpc::v2::GetEpochResponse;
13use sui_rpc::proto::sui::rpc::v2::GetObjectRequest;
14use sui_rpc::proto::sui::rpc::v2::GetObjectResponse;
15use sui_rpc::proto::sui::rpc::v2::GetServiceInfoRequest;
16use sui_rpc::proto::sui::rpc::v2::GetServiceInfoResponse;
17use sui_rpc::proto::sui::rpc::v2::GetTransactionRequest;
18use sui_rpc::proto::sui::rpc::v2::GetTransactionResponse;
19use sui_rpc::proto::sui::rpc::v2::ledger_service_server::LedgerService;
20
21pub(crate) mod get_checkpoint;
22mod get_epoch;
23mod get_object;
24mod get_service_info;
25mod get_transaction;
26pub use get_epoch::protocol_config_to_proto;
27pub use get_object::validate_get_object_requests;
28
29#[tonic::async_trait]
30impl LedgerService for RpcService {
31    async fn get_service_info(
32        &self,
33        _request: tonic::Request<GetServiceInfoRequest>,
34    ) -> Result<tonic::Response<GetServiceInfoResponse>, tonic::Status> {
35        get_service_info::get_service_info(self)
36            .map(tonic::Response::new)
37            .map_err(Into::into)
38    }
39
40    async fn get_object(
41        &self,
42        request: tonic::Request<GetObjectRequest>,
43    ) -> Result<tonic::Response<GetObjectResponse>, tonic::Status> {
44        get_object::get_object(self, request.into_inner())
45            .map(tonic::Response::new)
46            .map_err(Into::into)
47    }
48
49    async fn batch_get_objects(
50        &self,
51        request: tonic::Request<BatchGetObjectsRequest>,
52    ) -> Result<tonic::Response<BatchGetObjectsResponse>, tonic::Status> {
53        get_object::batch_get_objects(self, request.into_inner())
54            .map(tonic::Response::new)
55            .map_err(Into::into)
56    }
57
58    async fn get_transaction(
59        &self,
60        request: tonic::Request<GetTransactionRequest>,
61    ) -> Result<tonic::Response<GetTransactionResponse>, tonic::Status> {
62        get_transaction::get_transaction(self, request.into_inner())
63            .map(tonic::Response::new)
64            .map_err(Into::into)
65    }
66
67    async fn batch_get_transactions(
68        &self,
69        request: tonic::Request<BatchGetTransactionsRequest>,
70    ) -> Result<tonic::Response<BatchGetTransactionsResponse>, tonic::Status> {
71        get_transaction::batch_get_transactions(self, request.into_inner())
72            .map(tonic::Response::new)
73            .map_err(Into::into)
74    }
75
76    async fn get_checkpoint(
77        &self,
78        request: tonic::Request<GetCheckpointRequest>,
79    ) -> Result<tonic::Response<GetCheckpointResponse>, tonic::Status> {
80        get_checkpoint::get_checkpoint(self, request.into_inner())
81            .map(tonic::Response::new)
82            .map_err(Into::into)
83    }
84
85    async fn get_epoch(
86        &self,
87        request: tonic::Request<GetEpochRequest>,
88    ) -> Result<tonic::Response<GetEpochResponse>, tonic::Status> {
89        get_epoch::get_epoch(self, request.into_inner())
90            .map(tonic::Response::new)
91            .map_err(Into::into)
92    }
93}