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

go_library(
    name = "go_default_library",
    srcs = [
        "cacher.go",
        "epoch_boundary_state_cache.go",
        "errors.go",
        "getter.go",
        "history.go",
        "hot_state_cache.go",
        "log.go",
        "metrics.go",
        "migrate.go",
        "replay.go",
        "replayer.go",
        "service.go",
        "setter.go",
    ],
    importpath = "github.com/OffchainLabs/prysm/v6/beacon-chain/state/stategen",
    visibility = ["//visibility:public"],
    deps = [
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/time:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/filters:go_default_library",
        "//beacon-chain/forkchoice:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/sync/backfill/coverage:go_default_library",
        "//cache/lru: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",
        "//crypto/bls:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//monitoring/tracing/trace:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_hashicorp_golang_lru//:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prometheus_client_golang//prometheus:go_default_library",
        "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@io_k8s_client_go//tools/cache:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    srcs = [
        "epoch_boundary_state_cache_test.go",
        "getter_test.go",
        "history_test.go",
        "hot_state_cache_test.go",
        "init_test.go",
        "migrate_test.go",
        "mock_test.go",
        "replay_test.go",
        "replayer_test.go",
        "service_test.go",
        "setter_test.go",
    ],
    embed = [":go_default_library"],
    deps = [
        "//beacon-chain/core/blocks:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/testing:go_default_library",
        "//beacon-chain/forkchoice/doubly-linked-tree:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/state-native:go_default_library",
        "//beacon-chain/state/testing:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/blocks/testing:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/mock:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//crypto/bls:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//runtime/version:go_default_library",
        "//testing/assert:go_default_library",
        "//testing/require:go_default_library",
        "//testing/util:go_default_library",
        "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
    ],
)
