func BlockFromProto(bl *pb.Block) (*Block, error) {
	header, err := BlockHeaderFromProto(bl.Header)
	if err != nil {
		return nil, err
	}

	body, err := BlockBodyFromProto(bl.Body)
	if err != nil {
		return nil, err
	}

	return &Block{
		BlockHeader: *header,
		BlockBody:   *body,
	}, nil
}
// BlockFromProto returns a block from the protobuf representation.
BlockFromProto returns a block from the protobuf representation.
// BlockFromProto returns a block from the protobuf representation .
func BlockFromProto(bl *pb.Block) (*Block, error) {
	header, err := BlockHeaderFromProto(bl.Header)
	if err != nil {
		return nil, err
	}
	body, err := BlockBodyFromProto(bl.Body)
	if err != nil {
		return nil, err
	}
	return &Block{
		BlockHeader: *header,
		BlockBody:   *body,
	}, nil
}
func BlockFromProto ( bl * pb . Block ) ( * Block , error ) { header , err := BlockHeaderFromProto ( bl . Header ) if err != nil { return nil , err } body , err := BlockBodyFromProto ( bl . Body ) if err != nil { return nil , err } return & Block { BlockHeader : * header , BlockBody : * body , } , nil }
BlockFromProto returns a block from the protobuf representation.
BlockFromProto returns a block from the protobuf representation .