diff --git a/clientcontroller/babylon.go b/clientcontroller/babylon.go index ee722962..09fa7206 100644 --- a/clientcontroller/babylon.go +++ b/clientcontroller/babylon.go @@ -3,7 +3,6 @@ package clientcontroller import ( "context" "fmt" - coretypes "github.com/cometbft/cometbft/rpc/core/types" "strings" "time" @@ -416,8 +415,13 @@ func (bc *BabylonController) QueryBestBlock() (*types.BlockInfo, error) { return blocks[0], nil } -func (bc *BabylonController) NodeStatus() (*coretypes.ResultStatus, error) { - return bc.bbnClient.GetStatus() +func (bc *BabylonController) NodeTxIndexEnabled() (bool, error) { + res, err := bc.bbnClient.GetStatus() + if err != nil { + return false, fmt.Errorf("failed to query node status: %w", err) + } + + return res.TxIndexEnabled(), nil } func (bc *BabylonController) queryCometBestBlock() (*types.BlockInfo, error) { diff --git a/clientcontroller/interface.go b/clientcontroller/interface.go index bd3f58a7..ff8a2ff3 100644 --- a/clientcontroller/interface.go +++ b/clientcontroller/interface.go @@ -1,10 +1,8 @@ package clientcontroller import ( - "fmt" - coretypes "github.com/cometbft/cometbft/rpc/core/types" - "cosmossdk.io/math" + "fmt" btcstakingtypes "github.com/babylonlabs-io/babylon/x/btcstaking/types" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/schnorr" @@ -90,7 +88,7 @@ type ClientController interface { // the value zero should be returned. QueryFinalityActivationBlockHeight() (uint64, error) - NodeStatus() (*coretypes.ResultStatus, error) + NodeTxIndexEnabled() (bool, error) Close() error } diff --git a/finality-provider/service/app_test.go b/finality-provider/service/app_test.go index d27981b6..fbaa1949 100644 --- a/finality-provider/service/app_test.go +++ b/finality-provider/service/app_test.go @@ -69,6 +69,7 @@ func FuzzCreateFinalityProvider(f *testing.F) { mockClientController.EXPECT().QueryFinalityProvider(gomock.Any()).Return(nil, nil).AnyTimes() mockClientController.EXPECT().QueryBlocks(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() mockClientController.EXPECT().QueryLastCommittedPublicRand(gomock.Any(), uint64(1)).Return(nil, nil).AnyTimes() + mockClientController.EXPECT().NodeTxIndexEnabled().Return(true, nil).AnyTimes() // Create randomized config fpHomeDir := filepath.Join(t.TempDir(), "fp-home") @@ -222,6 +223,7 @@ func FuzzUnjailFinalityProvider(f *testing.F) { mockClientController.EXPECT().QueryLatestFinalizedBlocks(gomock.Any()).Return(nil, nil).AnyTimes() mockClientController.EXPECT().QueryBestBlock().Return(blkInfo, nil).Return(blkInfo, nil).AnyTimes() mockClientController.EXPECT().QueryBlocks(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, errors.New("chain not online")).AnyTimes() + mockClientController.EXPECT().NodeTxIndexEnabled().Return(true, nil).AnyTimes() // set voting power to be positive so that the fp should eventually become ACTIVE mockClientController.EXPECT().QueryFinalityProviderVotingPower(gomock.Any(), gomock.Any()).Return(uint64(0), nil).AnyTimes() diff --git a/finality-provider/service/fp_instance.go b/finality-provider/service/fp_instance.go index 4b32c1b2..8209c34e 100644 --- a/finality-provider/service/fp_instance.go +++ b/finality-provider/service/fp_instance.go @@ -1041,12 +1041,12 @@ func (fp *FinalityProviderInstance) GetFinalityProviderSlashedOrJailedWithRetry( } func (fp *FinalityProviderInstance) txIndexEnabled() error { - res, err := fp.cc.NodeStatus() + enabled, err := fp.cc.NodeTxIndexEnabled() if err != nil { return fmt.Errorf("failed to query node status: %w", err) } - if !res.TxIndexEnabled() { + if !enabled { return fmt.Errorf("tx indexing in the babylon node must be enabled") } diff --git a/testutil/mocks/babylon.go b/testutil/mocks/babylon.go index 72e7e061..286a0667 100644 --- a/testutil/mocks/babylon.go +++ b/testutil/mocks/babylon.go @@ -13,7 +13,6 @@ import ( types1 "github.com/babylonlabs-io/finality-provider/types" btcec "github.com/btcsuite/btcd/btcec/v2" schnorr "github.com/btcsuite/btcd/btcec/v2/schnorr" - coretypes "github.com/cometbft/cometbft/rpc/core/types" gomock "github.com/golang/mock/gomock" ) @@ -84,19 +83,19 @@ func (mr *MockClientControllerMockRecorder) EditFinalityProvider(fpPk, commissio return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EditFinalityProvider", reflect.TypeOf((*MockClientController)(nil).EditFinalityProvider), fpPk, commission, description) } -// NodeStatus mocks base method. -func (m *MockClientController) NodeStatus() (*coretypes.ResultStatus, error) { +// NodeTxIndexEnabled mocks base method. +func (m *MockClientController) NodeTxIndexEnabled() (bool, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NodeStatus") - ret0, _ := ret[0].(*coretypes.ResultStatus) + ret := m.ctrl.Call(m, "NodeTxIndexEnabled") + ret0, _ := ret[0].(bool) ret1, _ := ret[1].(error) return ret0, ret1 } -// NodeStatus indicates an expected call of NodeStatus. -func (mr *MockClientControllerMockRecorder) NodeStatus() *gomock.Call { +// NodeTxIndexEnabled indicates an expected call of NodeTxIndexEnabled. +func (mr *MockClientControllerMockRecorder) NodeTxIndexEnabled() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NodeStatus", reflect.TypeOf((*MockClientController)(nil).NodeStatus)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NodeTxIndexEnabled", reflect.TypeOf((*MockClientController)(nil).NodeTxIndexEnabled)) } // QueryActivatedHeight mocks base method.