func CrosslinkFromProto(crosslink *pb.Crosslink) (*Crosslink, error) {
	c := &Crosslink{Slot: crosslink.Slot}
	err := c.ShardBlockHash.SetBytes(crosslink.ShardBlockHash)
	if err != nil {
		return nil, err
	}
	err = c.ShardStateHash.SetBytes(crosslink.ShardStateHash)
	if err != nil {
		return nil, err
	}
	return c, nil
}
// CrosslinkFromProto gets the crosslink for a protobuf representation
CrosslinkFromProto gets the crosslink for a protobuf representation
// CrosslinkFromProto gets the crosslink for a protobuf representation
func CrosslinkFromProto(crosslink *pb.Crosslink) (*Crosslink, error) {
	c := &Crosslink{Slot: crosslink.Slot}
	err := c.ShardBlockHash.SetBytes(crosslink.ShardBlockHash)
	if err != nil {
		return nil, err
	}
	err = c.ShardStateHash.SetBytes(crosslink.ShardStateHash)
	if err != nil {
		return nil, err
	}
	return c, nil
}
func CrosslinkFromProto ( crosslink * pb . Crosslink ) ( * Crosslink , error ) { c := & Crosslink { Slot : crosslink . Slot } err := c . ShardBlockHash . SetBytes ( crosslink . ShardBlockHash ) if err != nil { return nil , err } err = c . ShardStateHash . SetBytes ( crosslink . ShardStateHash ) if err != nil { return nil , err } return c , nil }
CrosslinkFromProto gets the crosslink for a protobuf representation
CrosslinkFromProto gets the crosslink for a protobuf representation