[package]
name = "solana-program"
description = "Solana Program"
documentation = "https://docs.rs/solana-program"
readme = "README.md"
version = "4.0.0"
authors = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
edition = { workspace = true }
rust-version = "1.81.0"
include = ["src/**/*", "README.md"]
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
all-features = true
rustdoc-args = ["--cfg=docsrs"]
[lib]
crate-type = ["rlib"]
[features]
default = ["borsh"]
borsh = [
"dep:solana-borsh",
"solana-hash/borsh",
"solana-instruction/borsh",
"solana-program-error/borsh",
"solana-pubkey/borsh",
]
dev-context-only-utils = [
"solana-instructions-sysvar/dev-context-only-utils",
"dep:solana-system-interface",
"solana-system-interface/bincode",
]
frozen-abi = [
"dep:solana-frozen-abi",
"dep:solana-frozen-abi-macro",
"solana-epoch-rewards/frozen-abi",
"solana-epoch-schedule/frozen-abi",
"solana-fee-calculator/frozen-abi",
"solana-hash/frozen-abi",
"solana-instruction/frozen-abi",
"solana-pubkey/frozen-abi",
"solana-rent/frozen-abi",
"solana-short-vec/frozen-abi",
"solana-sysvar/frozen-abi",
]
[dependencies]
memoffset = { workspace = true }
solana-account-info = { workspace = true, features = ["bincode"] }
solana-big-mod-exp = { workspace = true }
solana-blake3-hasher = { workspace = true, features = ["blake3"] }
solana-borsh = { workspace = true, optional = true }
solana-clock = { workspace = true, features = ["serde", "sysvar"] }
solana-cpi = { workspace = true }
solana-epoch-rewards = { workspace = true, features = ["serde", "sysvar"] }
solana-epoch-schedule = { workspace = true, features = ["serde", "sysvar"] }
solana-epoch-stake = { workspace = true }
solana-fee-calculator = { workspace = true, features = ["serde"] }
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, features = [
"bytemuck",
"serde",
"std",
] }
solana-instruction = { workspace = true, default-features = false, features = [
"bincode",
"serde",
"std",
"syscalls",
] }
solana-instruction-error = { workspace = true, features = ["num-traits"] }
solana-instructions-sysvar = { workspace = true }
solana-keccak-hasher = { workspace = true, features = ["sha3"] }
solana-last-restart-slot = { workspace = true, features = ["serde", "sysvar"] }
solana-msg = { workspace = true, features = ["std"] }
solana-native-token = { workspace = true }
solana-program-entrypoint = { workspace = true }
solana-program-error = { workspace = true, features = ["serde"] }
solana-program-memory = { workspace = true }
solana-program-option = { workspace = true }
solana-program-pack = { workspace = true }
solana-pubkey = { workspace = true, features = ["bytemuck", "curve25519", "serde", "std"] }
solana-rent = { workspace = true, features = ["serde", "sysvar"] }
solana-sdk-ids = { workspace = true }
solana-secp256k1-recover = { workspace = true }
solana-serde-varint = { workspace = true }
solana-serialize-utils = { workspace = true }
solana-sha256-hasher = { workspace = true, features = ["sha2"] }
solana-short-vec = { workspace = true }
solana-slot-hashes = { workspace = true, features = ["serde", "sysvar"] }
solana-slot-history = { workspace = true, features = ["serde", "sysvar"] }
solana-stable-layout = { workspace = true }
solana-system-interface = { optional = true, workspace = true, features = ["bincode"] }
solana-sysvar = { workspace = true, features = ["bincode", "bytemuck"] }
solana-sysvar-id = { workspace = true }
[target.'cfg(not(target_os = "solana"))'.dependencies]
solana-example-mocks = { workspace = true }
[target.'cfg(target_os = "solana")'.dependencies]
solana-define-syscall = { workspace = true }
[dev-dependencies]
solana-pubkey = { workspace = true, features = ["dev-context-only-utils"] }
solana-sysvar = { workspace = true, features = ["dev-context-only-utils"] }
[lints]
workspace = true