diff --git a/src/rpc/methods/chain.rs b/src/rpc/methods/chain.rs index 78edc95bd797..b24d249c0975 100644 --- a/src/rpc/methods/chain.rs +++ b/src/rpc/methods/chain.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0, MIT mod types; -use enumflags2::BitFlags; +use enumflags2::{BitFlags, make_bitflags}; use types::*; #[cfg(test)] @@ -127,6 +127,24 @@ pub(crate) fn logs( (receiver, handle) } +pub enum ChainGetFinalizedTipset {} +impl RpcMethod<0> for ChainGetFinalizedTipset { + const NAME: &'static str = "Filecoin.ChainGetFinalizedTipSet"; + const PARAM_NAMES: [&'static str; 0] = []; + const API_PATHS: BitFlags = make_bitflags!(ApiPaths::V1); + const PERMISSION: Permission = Permission::Read; + const DESCRIPTION: Option<&'static str> = Some( + "Returns the latest F3 finalized tipset, or falls back to EC finality if F3 is not operational on the node or if the F3 finalized tipset is further back than EC finalized tipset.", + ); + + type Params = (); + type Ok = Tipset; + + async fn handle(_ctx: Ctx, (): Self::Params) -> Result { + Err(ServerError::stubbed_for_openrpc()) + } +} + pub enum ChainGetMessage {} impl RpcMethod<1> for ChainGetMessage { const NAME: &'static str = "Filecoin.ChainGetMessage"; diff --git a/src/rpc/mod.rs b/src/rpc/mod.rs index a05735400ecf..defd30c9ff51 100644 --- a/src/rpc/mod.rs +++ b/src/rpc/mod.rs @@ -65,6 +65,7 @@ macro_rules! for_each_rpc_method { $callback!($crate::rpc::chain::ChainGetBlockMessages); $callback!($crate::rpc::chain::ChainGetEvents); $callback!($crate::rpc::chain::ChainGetGenesis); + $callback!($crate::rpc::chain::ChainGetFinalizedTipset); $callback!($crate::rpc::chain::ChainGetMessage); $callback!($crate::rpc::chain::ChainGetMessagesInTipset); $callback!($crate::rpc::chain::ChainGetMinBaseFee); diff --git a/src/tool/subcommands/api_cmd/test_snapshots_ignored.txt b/src/tool/subcommands/api_cmd/test_snapshots_ignored.txt index 3a679e3e0d03..7f8b7a4da9a2 100644 --- a/src/tool/subcommands/api_cmd/test_snapshots_ignored.txt +++ b/src/tool/subcommands/api_cmd/test_snapshots_ignored.txt @@ -13,6 +13,7 @@ Filecoin.AuthNew Filecoin.AuthVerify Filecoin.ChainExport Filecoin.ChainGetEvents +Filecoin.ChainGetFinalizedTipset Filecoin.ChainSetHead Filecoin.EthEstimateGas Filecoin.EthGetFilterChanges