mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 21:38:05 -05:00
* deduplicating rest propose block * gaz * linting * gaz and linting * remove unneeded import" " * gofmt
64 lines
2.0 KiB
Go
64 lines
2.0 KiB
Go
package beacon_api
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v6/api/server/structs"
|
|
ethpb "github.com/OffchainLabs/prysm/v6/proto/prysm/v1alpha1"
|
|
"github.com/OffchainLabs/prysm/v6/testing/assert"
|
|
"github.com/OffchainLabs/prysm/v6/testing/require"
|
|
"github.com/OffchainLabs/prysm/v6/validator/client/beacon-api/mock"
|
|
testhelpers "github.com/OffchainLabs/prysm/v6/validator/client/beacon-api/test-helpers"
|
|
"go.uber.org/mock/gomock"
|
|
)
|
|
|
|
func TestProposeBeaconBlock_Capella(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
jsonRestHandler := mock.NewMockJsonRestHandler(ctrl)
|
|
|
|
capellaBlock := generateSignedCapellaBlock()
|
|
|
|
genericSignedBlock := ðpb.GenericSignedBeaconBlock{}
|
|
genericSignedBlock.Block = capellaBlock
|
|
|
|
jsonCapellaBlock, err := structs.SignedBeaconBlockCapellaFromConsensus(capellaBlock.Capella)
|
|
require.NoError(t, err)
|
|
|
|
marshalledBlock, err := json.Marshal(jsonCapellaBlock)
|
|
require.NoError(t, err)
|
|
|
|
// Make sure that what we send in the POST body is the marshalled version of the protobuf block
|
|
headers := map[string]string{"Eth-Consensus-Version": "capella"}
|
|
jsonRestHandler.EXPECT().Post(
|
|
gomock.Any(),
|
|
"/eth/v2/beacon/blocks",
|
|
headers,
|
|
bytes.NewBuffer(marshalledBlock),
|
|
nil,
|
|
)
|
|
|
|
validatorClient := &beaconApiValidatorClient{jsonRestHandler: jsonRestHandler}
|
|
proposeResponse, err := validatorClient.proposeBeaconBlock(context.Background(), genericSignedBlock)
|
|
assert.NoError(t, err)
|
|
require.NotNil(t, proposeResponse)
|
|
|
|
expectedBlockRoot, err := capellaBlock.Capella.Block.HashTreeRoot()
|
|
require.NoError(t, err)
|
|
|
|
// Make sure that the block root is set
|
|
assert.DeepEqual(t, expectedBlockRoot[:], proposeResponse.BlockRoot)
|
|
}
|
|
|
|
func generateSignedCapellaBlock() *ethpb.GenericSignedBeaconBlock_Capella {
|
|
return ðpb.GenericSignedBeaconBlock_Capella{
|
|
Capella: ðpb.SignedBeaconBlockCapella{
|
|
Block: testhelpers.GenerateProtoCapellaBeaconBlock(),
|
|
Signature: testhelpers.FillByteSlice(96, 127),
|
|
},
|
|
}
|
|
}
|