github.com/onflow/flow-go@v0.33.17/fvm/evm/handler/blockstore_test.go (about)

     1  package handler_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/onflow/flow-go/fvm/evm/handler"
     9  	"github.com/onflow/flow-go/fvm/evm/testutils"
    10  	"github.com/onflow/flow-go/fvm/evm/types"
    11  	"github.com/onflow/flow-go/model/flow"
    12  )
    13  
    14  func TestBlockStore(t *testing.T) {
    15  
    16  	testutils.RunWithTestBackend(t, func(backend *testutils.TestBackend) {
    17  		testutils.RunWithTestFlowEVMRootAddress(t, backend, func(root flow.Address) {
    18  			bs, err := handler.NewBlockStore(backend, root)
    19  			require.NoError(t, err)
    20  
    21  			// check gensis block
    22  			b, err := bs.LatestBlock()
    23  			require.NoError(t, err)
    24  			require.Equal(t, types.GenesisBlock, b)
    25  
    26  			// test block proposal from genesis
    27  			bp, err := bs.BlockProposal()
    28  			require.NoError(t, err)
    29  			require.Equal(t, uint64(1), bp.Height)
    30  			expectedParentHash, err := types.GenesisBlock.Hash()
    31  			require.NoError(t, err)
    32  			require.Equal(t, expectedParentHash, bp.ParentBlockHash)
    33  
    34  			// commit block proposal
    35  			supply := uint64(100)
    36  			bp.TotalSupply = supply
    37  			err = bs.CommitBlockProposal()
    38  			require.NoError(t, err)
    39  			b, err = bs.LatestBlock()
    40  			require.NoError(t, err)
    41  			require.Equal(t, supply, b.TotalSupply)
    42  			require.Equal(t, uint64(1), b.Height)
    43  			bp, err = bs.BlockProposal()
    44  			require.NoError(t, err)
    45  			require.Equal(t, uint64(2), bp.Height)
    46  		})
    47  
    48  	})
    49  
    50  }