############################################################################## # Common ############################################################################## load("@rules_proto//proto:defs.bzl", "proto_library") # gazelle:ignore proto_library( name = "proto", srcs = [ "attestation.proto", "beacon_chain.proto", "events.proto", "node.proto", "validator.proto", ":ssz_proto_files", ], visibility = ["//visibility:public"], deps = [ "//proto/eth/ext:proto", "@com_google_protobuf//:descriptor_proto", "@com_google_protobuf//:timestamp_proto", ], ) ############################################################################## # Go ############################################################################## load("@io_bazel_rules_go//go:def.bzl", "go_library") load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") load("//proto:ssz_proto_library.bzl", "ssz_proto_files") load("//tools:ssz.bzl", "SSZ_DEPS", "ssz_gen_marshal") ssz_gen_marshal( name = "ssz_generated_files", go_proto = ":go_proto", includes = [ "@com_github_prysmaticlabs_eth2_types//:go_default_library", ], objs = [ "AggregateAttestationAndProof", "Attestation", "AttestationData", "AttesterSlashing", "BeaconBlock", "BeaconBlockHeader", "Checkpoint", "Deposit", "DepositData", "Eth1Data", "IndexedAttestation", "ProposerSlashing", "SignedAggregateAttestationAndProof", "SignedBeaconBlock", "SignedBeaconBlockHeader", "SignedVoluntaryExit", "SyncAggregate", "Validator", "VoluntaryExit", ], ) go_proto_library( name = "go_proto", compilers = [ "@com_github_prysmaticlabs_protoc_gen_go_cast//:go_cast_grpc", ], importpath = "github.com/prysmaticlabs/prysm/proto/eth/v1", proto = ":proto", visibility = ["//visibility:public"], deps = [ "//proto/eth/ext:go_default_library", "@io_bazel_rules_go//proto/wkt:descriptor_go_proto", "@com_github_golang_protobuf//proto:go_default_library", "@com_github_prysmaticlabs_go_bitfield//:go_default_library", # keep "@com_github_prysmaticlabs_eth2_types//:go_default_library", "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ], ) go_proto_library( name = "go_grpc_gateway_library", compilers = [ "@com_github_grpc_ecosystem_grpc_gateway_v2//protoc-gen-grpc-gateway:go_gen_grpc_gateway", ], embed = [":go_proto"], importpath = "github.com/prysmaticlabs/prysm/proto/eth/v1", protos = [":proto"], visibility = ["//proto:__subpackages__"], ) go_library( name = "go_default_library", srcs = [ ":ssz_generated_files", ], embed = [ ":go_grpc_gateway_library", ], importpath = "github.com/prysmaticlabs/prysm/proto/eth/v1", visibility = ["//visibility:public"], deps = SSZ_DEPS ) ssz_proto_files( name = "ssz_proto_files", srcs = [ "beacon_block.proto", "beacon_state.proto", ], config = select({ "//conditions:default": "mainnet", "//proto:ssz_mainnet": "mainnet", "//proto:ssz_minimal": "minimal", }), )