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;
28pub(crate) use get_transaction::render_clever_error;
29
30#[tonic::async_trait]
31impl LedgerService for RpcService {
32    async fn get_service_info(
33        &self,
34        _request: tonic::Request<GetServiceInfoRequest>,
35    ) -> Result<tonic::Response<GetServiceInfoResponse>, tonic::Status> {
36        get_service_info::get_service_info(self)
37            .map(tonic::Response::new)
38            .map_err(Into::into)
39    }
40
41    async fn get_object(
42        &self,
43        request: tonic::Request<GetObjectRequest>,
44    ) -> Result<tonic::Response<GetObjectResponse>, tonic::Status> {
45        get_object::get_object(self, request.into_inner())
46            .map(tonic::Response::new)
47            .map_err(Into::into)
48    }
49
50    async fn batch_get_objects(
51        &self,
52        request: tonic::Request<BatchGetObjectsRequest>,
53    ) -> Result<tonic::Response<BatchGetObjectsResponse>, tonic::Status> {
54        get_object::batch_get_objects(self, request.into_inner())
55            .map(tonic::Response::new)
56            .map_err(Into::into)
57    }
58
59    async fn get_transaction(
60        &self,
61        request: tonic::Request<GetTransactionRequest>,
62    ) -> Result<tonic::Response<GetTransactionResponse>, tonic::Status> {
63        get_transaction::get_transaction(self, request.into_inner())
64            .map(tonic::Response::new)
65            .map_err(Into::into)
66    }
67
68    async fn batch_get_transactions(
69        &self,
70        request: tonic::Request<BatchGetTransactionsRequest>,
71    ) -> Result<tonic::Response<BatchGetTransactionsResponse>, tonic::Status> {
72        get_transaction::batch_get_transactions(self, request.into_inner())
73            .map(tonic::Response::new)
74            .map_err(Into::into)
75    }
76
77    async fn get_checkpoint(
78        &self,
79        request: tonic::Request<GetCheckpointRequest>,
80    ) -> Result<tonic::Response<GetCheckpointResponse>, tonic::Status> {
81        get_checkpoint::get_checkpoint(self, request.into_inner())
82            .map(tonic::Response::new)
83            .map_err(Into::into)
84    }
85
86    async fn get_epoch(
87        &self,
88        request: tonic::Request<GetEpochRequest>,
89    ) -> Result<tonic::Response<GetEpochResponse>, tonic::Status> {
90        get_epoch::get_epoch(self, request.into_inner())
91            .map(tonic::Response::new)
92            .map_err(Into::into)
93    }
94}