[package] name = "solana-program" description = "Solana Program" documentation = "https://docs.rs/solana-program" readme = "README.md" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } rust-version = "1.68.0" # solana platform-tools rust version [dependencies] bincode = { workspace = true } blake3 = { workspace = true, features = ["digest", "traits-preview"] } borsh = { workspace = true } borsh0-9 = { package = "borsh", version = "0.9.3" } bs58 = { workspace = true } bv = { workspace = true, features = ["serde"] } bytemuck = { workspace = true, features = ["derive"] } itertools = { workspace = true } lazy_static = { workspace = true } log = { workspace = true } memoffset = { workspace = true } num-derive = { workspace = true } num-traits = { workspace = true, features = ["i128"] } rustversion = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_bytes = { workspace = true } serde_derive = { workspace = true } serde_json = { workspace = true } sha2 = { workspace = true } sha3 = { workspace = true } solana-frozen-abi = { workspace = true } solana-frozen-abi-macro = { workspace = true } solana-sdk-macro = { workspace = true } thiserror = { workspace = true } # This is currently needed to build on-chain programs reliably. # Borsh 0.10 may pull in hashbrown 0.13, which uses ahash 0.8, which uses # getrandom 0.2 underneath. This explicit dependency allows for no-std if cargo # upgrades Borsh's dependency to hashbrown 0.13. # Remove this once borsh 0.11 or 1.0 is released, which correctly declares the # hashbrown dependency as optional. [target.'cfg(target_os = "solana")'.dependencies] getrandom = { workspace = true, features = ["custom"] } [target.'cfg(not(target_os = "solana"))'.dependencies] ark-bn254 = { workspace = true } ark-ec = { workspace = true } ark-ff = { workspace = true } ark-serialize = { workspace = true } array-bytes = { workspace = true } bitflags = { workspace = true } base64 = { workspace = true, features = ["alloc", "std"] } curve25519-dalek = { workspace = true, features = ["serde"] } itertools = { workspace = true } libc = { workspace = true, features = ["extra_traits"] } libsecp256k1 = { workspace = true } num-bigint = { workspace = true } rand = { workspace = true } tiny-bip39 = { workspace = true } wasm-bindgen = { workspace = true } zeroize = { workspace = true, features = ["default", "zeroize_derive"] } [target.'cfg(not(target_os = "solana"))'.dev-dependencies] solana-logger = { workspace = true } [target.'cfg(target_arch = "wasm32")'.dependencies] console_error_panic_hook = { workspace = true } console_log = { workspace = true } js-sys = { workspace = true } getrandom = { workspace = true, features = ["js", "wasm-bindgen"] } [target.'cfg(not(target_pointer_width = "64"))'.dependencies] parking_lot = { workspace = true } [dev-dependencies] anyhow = { workspace = true } assert_matches = { workspace = true } serde_json = { workspace = true } static_assertions = { workspace = true } [build-dependencies] rustc_version = { workspace = true } [target.'cfg(any(unix, windows))'.build-dependencies] cc = { workspace = true, features = ["jobserver", "parallel"] } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [lib] crate-type = ["cdylib", "rlib"] [features] default = []