Skip to content

Commit

Permalink
Fix test
Browse files Browse the repository at this point in the history
  • Loading branch information
Kourin1996 committed Dec 21, 2024
1 parent 2ed5f08 commit 071f663
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 8 deletions.
93 changes: 93 additions & 0 deletions core/rawdb/accessors_celo_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package rawdb

import (
"math/big"
"testing"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/rlp"
"github.com/stretchr/testify/assert"
)

func TestPreGingerbreadAdditionalFields(t *testing.T) {
db := NewMemoryDatabase()

mockData, err := rlp.EncodeToBytes(&PreGingerbreadAdditionalFields{
BaseFee: big.NewInt(1000),
GasLimit: big.NewInt(2000),
})
assert.NoError(t, err)

type SeedData struct {
hash common.Hash
data []byte
}

tests := []struct {
name string
seedData []SeedData
hash common.Hash
expectedRes *PreGingerbreadAdditionalFields
returnsError bool
}{
{
name: "should return nil if data is not found",
seedData: []SeedData{},
hash: common.HexToHash("0x1"),
expectedRes: nil,
returnsError: false,
},
{
name: "should return data",
seedData: []SeedData{
{
hash: common.HexToHash("0x2"),
data: mockData,
},
},
hash: common.HexToHash("0x2"),
expectedRes: &PreGingerbreadAdditionalFields{
BaseFee: big.NewInt(1000),
GasLimit: big.NewInt(2000),
},
returnsError: false,
},
{
name: "should return error if data is broken",
seedData: []SeedData{
{
hash: common.HexToHash("0x3"),
data: []byte{0x1, 0x2, 0x3},
},
},
hash: common.HexToHash("0x3"),
expectedRes: nil,
returnsError: true,
},
}

for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
for _, seed := range test.seedData {
err := db.Put(preGingerbreadAdditionalFieldsKey(seed.hash), seed.data)
assert.NoError(t, err)
}

t.Cleanup(func() {
for _, seed := range test.seedData {
err := db.Delete(preGingerbreadAdditionalFieldsKey(seed.hash))
assert.NoError(t, err)
}
})

res, err := ReadPreGingerbreadAdditionalFields(db, test.hash)
assert.Equal(t, test.expectedRes, res)

if test.returnsError {
assert.Error(t, err)
} else {
assert.NoError(t, err)
}
})
}
}
23 changes: 15 additions & 8 deletions internal/ethapi/celo_block.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,21 @@ func PopulatePreGingerbreadHeaderFields(ctx context.Context, backend CeloBackend
baseFee = retrievedBaseFee
}

gasLimit = new(big.Int).SetUint64(params.PreGingerbreadNetworkGasLimits[backend.ChainConfig().ChainID.Uint64()].Limit(header.Number))
limits, ok := params.PreGingerbreadNetworkGasLimits[backend.ChainConfig().ChainID.Uint64()]
if !ok {
log.Debug("Not adding gasLimit to RPC response, unknown network", "chainID", backend.ChainConfig().ChainID)
} else {
gasLimit = new(big.Int).SetUint64(limits.Limit(header.Number))
}

err = rawdb.WritePreGingerbreadAdditionalFields(backend.ChainDb(), header.Hash(), &rawdb.PreGingerbreadAdditionalFields{
BaseFee: baseFee,
GasLimit: gasLimit,
})
if err != nil {
log.Debug("failed to write pre-gingerbread fields", "err", err)
if baseFee != nil || gasLimit != nil {
err = rawdb.WritePreGingerbreadAdditionalFields(backend.ChainDb(), header.Hash(), &rawdb.PreGingerbreadAdditionalFields{
BaseFee: baseFee,
GasLimit: gasLimit,
})
if err != nil {
log.Debug("failed to write pre-gingerbread fields", "err", err)
}
}
}

Expand All @@ -86,7 +93,7 @@ func PopulatePreGingerbreadHeaderFields(ctx context.Context, backend CeloBackend
// retrievePreGingerbreadBlockBaseFee retrieves a base fee at given height from the previous block
func retrievePreGingerbreadBlockBaseFee(ctx context.Context, backend CeloBackend, height *big.Int) (*big.Int, error) {
if height.Cmp(common.Big0) <= 0 {
return common.Big0, nil
return nil, nil
}

prevBlock, err := backend.BlockByNumber(ctx, rpc.BlockNumber(height.Uint64()-1))
Expand Down

0 comments on commit 071f663

Please sign in to comment.