load("@prysm//tools/go:def.bzl", "go_library", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "blocks_fetcher.go",
        "blocks_fetcher_peers.go",
        "blocks_fetcher_utils.go",
        "blocks_queue.go",
        "blocks_queue_utils.go",
        "fsm.go",
        "log.go",
        "round_robin.go",
        "service.go",
    ],
    importpath = "github.com/prysmaticlabs/prysm/v4/beacon-chain/sync/initial-sync",
    visibility = ["//beacon-chain:__subpackages__"],
    deps = [
        "//async/abool:go_default_library",
        "//beacon-chain/blockchain:go_default_library",
        "//beacon-chain/core/feed/block:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/peers/scorers:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/startup:go_default_library",
        "//beacon-chain/sync:go_default_library",
        "//cmd/beacon-chain/flags:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//container/leaky-bucket:go_default_library",
        "//crypto/rand:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//math:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//runtime:go_default_library",
        "//time:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_libp2p_go_libp2p//core/peer:go_default_library",
        "@com_github_paulbellamy_ratecounter//:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@io_opencensus_go//trace:go_default_library",
    ],
)

go_test(
    name = "go_raceon_test",
    srcs = [
        "blocks_fetcher_test.go",
        "blocks_fetcher_utils_test.go",
        "blocks_queue_test.go",
        "fsm_test.go",
        "initial_sync_test.go",
        "round_robin_test.go",
    ],
    embed = [":go_default_library"],
    race = "on",
    tags = ["race_on"],
    deps = [
        "//beacon-chain/blockchain/testing:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/testing:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/testing:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/state/stateutil:go_default_library",
        "//beacon-chain/sync:go_default_library",
        "//cmd/beacon-chain/flags:go_default_library",
        "//config/features:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//container/queue:go_default_library",
        "//container/slice:go_default_library",
        "//crypto/hash:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//testing/assert:go_default_library",
        "//testing/require:go_default_library",
        "//testing/util:go_default_library",
        "//time:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_libp2p_go_libp2p//core:go_default_library",
        "@com_github_libp2p_go_libp2p//core/network:go_default_library",
        "@com_github_libp2p_go_libp2p//core/peer:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    srcs = [
        "blocks_fetcher_peers_test.go",
        "blocks_fetcher_test.go",
        "blocks_fetcher_utils_test.go",
        "blocks_queue_test.go",
        "fsm_benchmark_test.go",
        "fsm_test.go",
        "initial_sync_test.go",
        "round_robin_test.go",
        "service_test.go",
    ],
    embed = [":go_default_library"],
    deps = [
        "//async/abool:go_default_library",
        "//beacon-chain/blockchain/testing:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/testing:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/peers/scorers:go_default_library",
        "//beacon-chain/p2p/testing:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/startup:go_default_library",
        "//beacon-chain/sync:go_default_library",
        "//cmd/beacon-chain/flags:go_default_library",
        "//config/features:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//container/leaky-bucket:go_default_library",
        "//container/slice:go_default_library",
        "//crypto/hash:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//testing/assert:go_default_library",
        "//testing/require:go_default_library",
        "//testing/util:go_default_library",
        "//time:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_libp2p_go_libp2p//core:go_default_library",
        "@com_github_libp2p_go_libp2p//core/network:go_default_library",
        "@com_github_libp2p_go_libp2p//core/peer:go_default_library",
        "@com_github_paulbellamy_ratecounter//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
    ],
)
