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 := ðpb.ProposerSlashing{ 18 Header_1: testutil.HydrateSignedBeaconHeader(ðpb.SignedBeaconBlockHeader{ 19 Header: ðpb.BeaconBlockHeader{ 20 ProposerIndex: 5, 21 }, 22 }), 23 Header_2: testutil.HydrateSignedBeaconHeader(ðpb.SignedBeaconBlockHeader{ 24 Header: ðpb.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 := ðpb.AttesterSlashing{ 47 Attestation_1: testutil.HydrateIndexedAttestation(ðpb.IndexedAttestation{ 48 Data: ðpb.AttestationData{ 49 Slot: 5, 50 }}), 51 Attestation_2: testutil.HydrateIndexedAttestation(ðpb.IndexedAttestation{ 52 Data: ðpb.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 }