github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/db/kv/slashings_test.go (about)

     1  package kv
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1"
     8  	"github.com/prysmaticlabs/prysm/shared/testutil"
     9  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    10  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    11  	"google.golang.org/protobuf/proto"
    12  )
    13  
    14  func TestStore_ProposerSlashing_CRUD(t *testing.T) {
    15  	db := setupDB(t)
    16  	ctx := context.Background()
    17  	prop := &ethpb.ProposerSlashing{
    18  		Header_1: testutil.HydrateSignedBeaconHeader(&ethpb.SignedBeaconBlockHeader{
    19  			Header: &ethpb.BeaconBlockHeader{
    20  				ProposerIndex: 5,
    21  			},
    22  		}),
    23  		Header_2: testutil.HydrateSignedBeaconHeader(&ethpb.SignedBeaconBlockHeader{
    24  			Header: &ethpb.BeaconBlockHeader{
    25  				ProposerIndex: 5,
    26  			},
    27  		}),
    28  	}
    29  	slashingRoot, err := prop.HashTreeRoot()
    30  	require.NoError(t, err)
    31  	retrieved, err := db.ProposerSlashing(ctx, slashingRoot)
    32  	require.NoError(t, err)
    33  	assert.Equal(t, (*ethpb.ProposerSlashing)(nil), retrieved, "Expected nil proposer slashing")
    34  	require.NoError(t, db.SaveProposerSlashing(ctx, prop))
    35  	assert.Equal(t, true, db.HasProposerSlashing(ctx, slashingRoot), "Expected proposer slashing to exist in the db")
    36  	retrieved, err = db.ProposerSlashing(ctx, slashingRoot)
    37  	require.NoError(t, err)
    38  	assert.Equal(t, true, proto.Equal(prop, retrieved), "Wanted %v, received %v", prop, retrieved)
    39  	require.NoError(t, db.deleteProposerSlashing(ctx, slashingRoot))
    40  	assert.Equal(t, false, db.HasProposerSlashing(ctx, slashingRoot), "Expected proposer slashing to have been deleted from the db")
    41  }
    42  
    43  func TestStore_AttesterSlashing_CRUD(t *testing.T) {
    44  	db := setupDB(t)
    45  	ctx := context.Background()
    46  	att := &ethpb.AttesterSlashing{
    47  		Attestation_1: testutil.HydrateIndexedAttestation(&ethpb.IndexedAttestation{
    48  			Data: &ethpb.AttestationData{
    49  				Slot: 5,
    50  			}}),
    51  		Attestation_2: testutil.HydrateIndexedAttestation(&ethpb.IndexedAttestation{
    52  			Data: &ethpb.AttestationData{
    53  				Slot: 7,
    54  			}})}
    55  	slashingRoot, err := att.HashTreeRoot()
    56  	require.NoError(t, err)
    57  	retrieved, err := db.AttesterSlashing(ctx, slashingRoot)
    58  	require.NoError(t, err)
    59  	assert.Equal(t, (*ethpb.AttesterSlashing)(nil), retrieved, "Expected nil attester slashing")
    60  	require.NoError(t, db.SaveAttesterSlashing(ctx, att))
    61  	assert.Equal(t, true, db.HasAttesterSlashing(ctx, slashingRoot), "Expected attester slashing to exist in the db")
    62  	retrieved, err = db.AttesterSlashing(ctx, slashingRoot)
    63  	require.NoError(t, err)
    64  	assert.Equal(t, true, proto.Equal(att, retrieved), "Wanted %v, received %v", att, retrieved)
    65  	require.NoError(t, db.deleteAttesterSlashing(ctx, slashingRoot))
    66  	assert.Equal(t, false, db.HasAttesterSlashing(ctx, slashingRoot), "Expected attester slashing to have been deleted from the db")
    67  }