[package]
name = "solana-program-runtime"
description = "Solana program runtime"
documentation = "https://docs.rs/solana-program-runtime"
version = { workspace = true }
authors = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
edition = { workspace = true }

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[lib]
crate-type = ["lib"]
name = "solana_program_runtime"

[features]
agave-unstable-api = []
dev-context-only-utils = []
dummy-for-ci-check = ["metrics"]
frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"]
metrics = []
shuttle-test = ["solana-sbpf/shuttle-test", "solana-svm-type-overrides/shuttle-test"]

[dependencies]
base64 = { workspace = true }
bincode = { workspace = true }
itertools = { workspace = true }
log = { workspace = true }
percentage = { workspace = true }
rand = { workspace = true }
serde = { workspace = true }
solana-account = { workspace = true, features = ["bincode"] }
solana-account-info = { workspace = true }
solana-clock = { workspace = true }
solana-epoch-rewards = { workspace = true }
solana-epoch-schedule = { workspace = true }
solana-fee-structure = { workspace = true }
solana-frozen-abi = { workspace = true, optional = true, features = [
    "frozen-abi",
] }
solana-frozen-abi-macro = { workspace = true, optional = true, features = [
    "frozen-abi",
] }
solana-hash = { workspace = true }
solana-instruction = { workspace = true }
solana-last-restart-slot = { workspace = true }
solana-loader-v3-interface = { workspace = true }
solana-program-entrypoint = { workspace = true }
solana-pubkey = { workspace = true }
solana-rent = { workspace = true }
solana-sbpf = { workspace = true, features = ["jit"] }
solana-sdk-ids = { workspace = true }
solana-slot-hashes = { workspace = true }
solana-stable-layout = { workspace = true }
solana-stake-interface = { workspace = true, features = ["bincode", "sysvar"] }
solana-svm-callback = { workspace = true }
solana-svm-feature-set = { workspace = true }
solana-svm-log-collector = { workspace = true }
solana-svm-measure = { workspace = true }
solana-svm-timings = { workspace = true }
solana-svm-transaction = { workspace = true }
solana-svm-type-overrides = { workspace = true }
solana-system-interface = { workspace = true }
solana-sysvar = { workspace = true, features = ["bincode"] }
solana-sysvar-id = { workspace = true }
solana-transaction-context = { workspace = true }
thiserror = { workspace = true }

[dev-dependencies]
assert_matches = { workspace = true }
solana-account-info = { workspace = true }
solana-instruction = { workspace = true, features = ["bincode"] }
solana-instruction-error = { workspace = true, features = ["serde"] }
solana-keypair = { workspace = true }
solana-program-runtime = { path = ".", features = ["dev-context-only-utils"] }
solana-pubkey = { workspace = true, features = ["rand"] }
solana-signer = { workspace = true }
solana-transaction = { workspace = true, features = ["dev-context-only-utils"] }
solana-transaction-context = { workspace = true, features = [
    "dev-context-only-utils",
] }
test-case = { workspace = true }

[lints]
workspace = true
