diff --git a/internal/relayertest/mocks/chain_evm_client.go b/internal/relayertest/mocks/chain_evm_client.go index 632f682..95137d7 100644 --- a/internal/relayertest/mocks/chain_evm_client.go +++ b/internal/relayertest/mocks/chain_evm_client.go @@ -164,34 +164,34 @@ func (mr *MockEVMClientMockRecorder) GetBalance(ctx, gethAddr, blockNumber any) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBalance", reflect.TypeOf((*MockEVMClient)(nil).GetBalance), ctx, gethAddr, blockNumber) } -// GetBlock mocks base method. -func (m *MockEVMClient) GetBlock(ctx context.Context, height *big.Int) (*types.Block, error) { +// GetBlockHeight mocks base method. +func (m *MockEVMClient) GetBlockHeight(ctx context.Context) (uint64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBlock", ctx, height) - ret0, _ := ret[0].(*types.Block) + ret := m.ctrl.Call(m, "GetBlockHeight", ctx) + ret0, _ := ret[0].(uint64) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetBlock indicates an expected call of GetBlock. -func (mr *MockEVMClientMockRecorder) GetBlock(ctx, height any) *gomock.Call { +// GetBlockHeight indicates an expected call of GetBlockHeight. +func (mr *MockEVMClientMockRecorder) GetBlockHeight(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlock", reflect.TypeOf((*MockEVMClient)(nil).GetBlock), ctx, height) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockHeight", reflect.TypeOf((*MockEVMClient)(nil).GetBlockHeight), ctx) } -// GetBlockHeight mocks base method. -func (m *MockEVMClient) GetBlockHeight(ctx context.Context) (uint64, error) { +// GetHeaderBlock mocks base method. +func (m *MockEVMClient) GetHeaderBlock(ctx context.Context, height *big.Int) (*types.Header, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBlockHeight", ctx) - ret0, _ := ret[0].(uint64) + ret := m.ctrl.Call(m, "GetHeaderBlock", ctx, height) + ret0, _ := ret[0].(*types.Header) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetBlockHeight indicates an expected call of GetBlockHeight. -func (mr *MockEVMClientMockRecorder) GetBlockHeight(ctx any) *gomock.Call { +// GetHeaderBlock indicates an expected call of GetHeaderBlock. +func (mr *MockEVMClientMockRecorder) GetHeaderBlock(ctx, height any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockHeight", reflect.TypeOf((*MockEVMClient)(nil).GetBlockHeight), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHeaderBlock", reflect.TypeOf((*MockEVMClient)(nil).GetHeaderBlock), ctx, height) } // GetTxReceipt mocks base method. diff --git a/relayer/alert/alert.go b/relayer/alert/alert.go index e462887..b5d0035 100644 --- a/relayer/alert/alert.go +++ b/relayer/alert/alert.go @@ -11,7 +11,7 @@ const ( GetTunnelPacketErrorMsg = "Failed to get tunnel packet from BandChain" GetContractTunnelInfoErrorMsg = "Failed to get tunnel info from contract" PacketSigningStatusErrorMsg = "Failed tunnel packet signing status" - GetBlockErrorMsg = "Failed to get block from chain" + GetHeaderBlockErrorMsg = "Failed to get header block from chain" GetBalanceErrorMsg = "Failed to get balance from chain" SaveDatabaseErrorMsg = "Failed to save to database" ) diff --git a/relayer/chains/evm/client.go b/relayer/chains/evm/client.go index 0ae8dd2..8223cbe 100644 --- a/relayer/chains/evm/client.go +++ b/relayer/chains/evm/client.go @@ -90,7 +90,7 @@ type Client interface { StartLivelinessCheck(ctx context.Context, interval time.Duration) NonceAt(ctx context.Context, address gethcommon.Address) (uint64, error) GetBlockHeight(ctx context.Context) (uint64, error) - GetBlock(ctx context.Context, height *big.Int) (*gethtypes.Block, error) + GetHeaderBlock(ctx context.Context, height *big.Int) (*gethtypes.Header, error) GetTxReceipt(ctx context.Context, txHash string) (*TxReceipt, error) Query(ctx context.Context, gethAddr gethcommon.Address, data []byte) ([]byte, error) EstimateGas(ctx context.Context, msg ethereum.CallMsg) (uint64, error) @@ -247,8 +247,8 @@ func (c *client) GetBlockHeight(ctx context.Context) (uint64, error) { return blockHeight, nil } -// GetBlock returns the blocks of the given block height -func (c *client) GetBlock(ctx context.Context, height *big.Int) (*gethtypes.Block, error) { +// GetHeaderBlock returns the block header at the given height. +func (c *client) GetHeaderBlock(ctx context.Context, height *big.Int) (*gethtypes.Header, error) { newCtx, cancel := context.WithTimeout(ctx, c.QueryTimeout) defer cancel() @@ -258,18 +258,18 @@ func (c *client) GetBlock(ctx context.Context, height *big.Int) (*gethtypes.Bloc return nil, fmt.Errorf("[EVMClient] failed to get client: %w", err) } - block, err := client.BlockByNumber(newCtx, height) + header, err := client.HeaderByNumber(newCtx, height) if err != nil { c.Log.Error( - "Failed to get block by height", + "Failed to get header block by height", "endpoint", c.clients.GetSelectedEndpoint(), "height", height.String(), err, ) - return nil, fmt.Errorf("[EVMClient] failed to get block by height: %w", err) + return nil, fmt.Errorf("[EVMClient] failed to get header block by height: %w", err) } - return block, nil + return header, nil } // GetTxReceipt returns the transaction receipt of the given transaction hash. diff --git a/relayer/chains/evm/provider.go b/relayer/chains/evm/provider.go index 8466c93..529b488 100644 --- a/relayer/chains/evm/provider.go +++ b/relayer/chains/evm/provider.go @@ -426,16 +426,16 @@ func (cp *EVMChainProvider) prepareTransaction( effectiveGasPrice = txResult.EffectiveGasPrice if txResult.Status == types.TX_STATUS_SUCCESS || txResult.Status == types.TX_STATUS_FAILED { - block, err := cp.Client.GetBlock(context.Background(), txResult.BlockNumber) + header, err := cp.Client.GetHeaderBlock(context.Background(), txResult.BlockNumber) if err != nil { - log.Error("Failed to get block", "retry_count", retryCount, err) - alert.HandleAlert(cp.Alert, alert.NewTopic(alert.GetBlockErrorMsg). + log.Error("Failed to get header block", "retry_count", retryCount, err) + alert.HandleAlert(cp.Alert, alert.NewTopic(alert.GetHeaderBlockErrorMsg). WithTunnelID(packet.TunnelID). WithChainName(cp.ChainName), err.Error()) } else { - timestamp := time.Unix(int64(block.Time()), 0).UTC() + timestamp := time.Unix(int64(header.Time), 0).UTC() blockTimestamp = ×tamp - alert.HandleReset(cp.Alert, alert.NewTopic(alert.GetBlockErrorMsg). + alert.HandleReset(cp.Alert, alert.NewTopic(alert.GetHeaderBlockErrorMsg). WithTunnelID(packet.TunnelID). WithChainName(cp.ChainName)) }