diff --git a/eth/taiko_api_backend.go b/eth/taiko_api_backend.go index 404e88ae21..6169b72633 100644 --- a/eth/taiko_api_backend.go +++ b/eth/taiko_api_backend.go @@ -107,8 +107,8 @@ func (s *TaikoAPIBackend) GetL2ParentHashes(blockID uint64) ([]common.Hash, erro // Get L2ParentBlocks retrieves the preceding 256 parent blocks given a block number. func (s *TaikoAPIBackend) GetL2ParentHeaders(blockID uint64) ([]*types.Header, error) { var headers []*types.Header - for i := blockID; i != 0 && (blockID-i) < 256; i-- { - headers = append(headers, s.eth.blockchain.GetHeaderByNumber(blockID-i)) + for i := 1; i < 256 && blockID >= uint64(i); i++ { + headers = append(headers, s.eth.blockchain.GetHeaderByNumber(blockID-uint64(i))) } return headers, nil } diff --git a/ethclient/taiko_api_test.go b/ethclient/taiko_api_test.go index 76b86b3263..ab3d77a722 100644 --- a/ethclient/taiko_api_test.go +++ b/ethclient/taiko_api_test.go @@ -112,16 +112,16 @@ func TestGetL2ParentHashes(t *testing.T) { log.Info("hashes", "a", hashes) require.Equal(t, 3, len(hashes)) - require.Equal(t, blocks[0].Hash(), hashes[0]) + require.Equal(t, blocks[2].Hash(), hashes[0]) require.Equal(t, blocks[1].Hash(), hashes[1]) - require.Equal(t, blocks[2].Hash(), hashes[2]) + require.Equal(t, blocks[0].Hash(), hashes[2]) hashes, err = ec.GetL2ParentHashes(context.Background(), common.Big2.Uint64()) require.Nil(t, err) require.Equal(t, 2, len(hashes)) - require.Equal(t, blocks[0].Hash(), hashes[0]) - require.Equal(t, blocks[1].Hash(), hashes[1]) + require.Equal(t, blocks[1].Hash(), hashes[0]) + require.Equal(t, blocks[0].Hash(), hashes[1]) hashes, err = ec.GetL2ParentHashes(context.Background(), common.Big0.Uint64()) require.Nil(t, err) @@ -136,16 +136,16 @@ func TestGetL2ParentBlocks(t *testing.T) { require.Nil(t, err) require.Equal(t, 3, len(res)) - require.Equal(t, res[0]["hash"], blocks[0].Hash().String()) + require.Equal(t, res[2]["hash"], blocks[0].Hash().String()) require.Equal(t, res[1]["hash"], blocks[1].Hash().String()) - require.Equal(t, res[2]["hash"], blocks[2].Hash().String()) + require.Equal(t, res[0]["hash"], blocks[2].Hash().String()) res, err = ec.GetL2ParentHeaders(context.Background(), common.Big2.Uint64()) require.Nil(t, err) require.Equal(t, 2, len(res)) - require.Equal(t, res[0]["hash"], blocks[0].Hash().String()) - require.Equal(t, res[1]["hash"], blocks[1].Hash().String()) + require.Equal(t, res[1]["hash"], blocks[0].Hash().String()) + require.Equal(t, res[0]["hash"], blocks[1].Hash().String()) res, err = ec.GetL2ParentHeaders(context.Background(), common.Big0.Uint64()) require.Nil(t, err)