solana/Cargo.toml

630 lines
23 KiB
TOML

[profile.release-with-debug]
inherits = "release"
debug = true
split-debuginfo = "packed"
[workspace]
members = [
"account-decoder",
"account-decoder-client-types",
"accounts-bench",
"accounts-cluster-bench",
"accounts-db",
"accounts-db/accounts-hash-cache-tool",
"accounts-db/store-histogram",
"accounts-db/store-tool",
"banking-bench",
"banks-client",
"banks-interface",
"banks-server",
"bench-streamer",
"bench-tps",
"bloom",
"bucket_map",
"builtins-default-costs",
"cargo-registry",
"clap-utils",
"clap-v3-utils",
"cli",
"cli-config",
"cli-output",
"client",
"client-test",
"compute-budget",
"connection-cache",
"core",
"cost-model",
"curves/*",
"define-syscall",
"dos",
"download-utils",
"entry",
"faucet",
"fee",
"frozen-abi",
"frozen-abi/macro",
"genesis",
"genesis-utils",
"geyser-plugin-interface",
"geyser-plugin-manager",
"gossip",
"inline-spl",
"install",
"keygen",
"lattice-hash",
"ledger",
"ledger-tool",
"local-cluster",
"log-analyzer",
"log-collector",
"logger",
"measure",
"memory-management",
"merkle-root-bench",
"merkle-tree",
"metrics",
"net-shaper",
"net-utils",
"notifier",
"perf",
"poh",
"poh-bench",
"poseidon",
"program-runtime",
"program-test",
"programs/address-lookup-table",
"programs/address-lookup-table-tests",
"programs/bpf-loader-tests",
"programs/bpf_loader",
"programs/bpf_loader/gen-syscall-list",
"programs/compute-budget",
"programs/config",
"programs/ed25519-tests",
"programs/loader-v4",
"programs/stake",
"programs/stake-tests",
"programs/system",
"programs/vote",
"programs/zk-elgamal-proof",
"programs/zk-token-proof",
"programs/zk-token-proof-tests",
"pubsub-client",
"quic-client",
"rayon-threadlimit",
"rbpf-cli",
"remote-wallet",
"rpc",
"rpc-client",
"rpc-client-api",
"rpc-client-nonce-utils",
"rpc-test",
"runtime",
"runtime-transaction",
"sdk",
"sdk/account",
"sdk/account-info",
"sdk/atomic-u64",
"sdk/bincode",
"sdk/borsh",
"sdk/cargo-build-sbf",
"sdk/cargo-test-sbf",
"sdk/clock",
"sdk/cpi",
"sdk/decode-error",
"sdk/derivation-path",
"sdk/epoch-schedule",
"sdk/feature-set",
"sdk/fee-calculator",
"sdk/gen-headers",
"sdk/hash",
"sdk/inflation",
"sdk/instruction",
"sdk/macro",
"sdk/msg",
"sdk/native-token",
"sdk/package-metadata",
"sdk/package-metadata-macro",
"sdk/packet",
"sdk/precompile-error",
"sdk/program",
"sdk/program-entrypoint",
"sdk/program-error",
"sdk/program-memory",
"sdk/program-option",
"sdk/program-pack",
"sdk/pubkey",
"sdk/rent",
"sdk/sanitize",
"sdk/secp256r1-program",
"sdk/serde-varint",
"sdk/serialize-utils",
"sdk/sha256-hasher",
"sdk/signature",
"sdk/slot-hashes",
"sdk/slot-history",
"sdk/stable-layout",
"sdk/sysvar-id",
"sdk/transaction-error",
"send-transaction-service",
"short-vec",
"stake-accounts",
"storage-bigtable",
"storage-bigtable/build-proto",
"storage-proto",
"streamer",
"svm",
"svm-conformance",
"svm-rent-collector",
"svm-transaction",
"svm/examples/paytube",
"test-validator",
"thin-client",
"timings",
"tokens",
"tps-client",
"tpu-client",
"tpu-client-next",
"transaction-dos",
"transaction-metrics-tracker",
"transaction-status",
"transaction-status-client-types",
"transaction-view",
"turbine",
"type-overrides",
"udp-client",
"unified-scheduler-logic",
"unified-scheduler-pool",
"upload-perf",
"validator",
"version",
"vote",
"watchtower",
"wen-restart",
"zk-keygen",
"zk-sdk",
"zk-token-sdk",
]
exclude = ["programs/sbf", "svm/tests/example-programs"]
resolver = "2"
[workspace.package]
version = "2.1.11"
authors = ["Anza Maintainers <maintainers@anza.xyz>"]
repository = "https://github.com/anza-xyz/agave"
homepage = "https://anza.xyz/"
license = "Apache-2.0"
edition = "2021"
[workspace.lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = [
'cfg(target_os, values("solana"))',
'cfg(feature, values("frozen-abi", "no-entrypoint"))',
]
[workspace.dependencies]
Inflector = "0.11.4"
agave-transaction-view = { path = "transaction-view", version = "=2.1.11" }
aquamarine = "0.3.3"
aes-gcm-siv = "0.11.1"
ahash = "0.8.11"
anyhow = "1.0.91"
arbitrary = "1.3.2"
ark-bn254 = "0.4.0"
ark-ec = "0.4.0"
ark-ff = "0.4.0"
ark-serialize = "0.4.0"
array-bytes = "=1.4.1"
arrayref = "0.3.9"
arrayvec = "0.7.6"
assert_cmd = "2.0"
assert_matches = "1.5.0"
async-channel = "1.9.0"
async-lock = "3.4.0"
async-trait = "0.1.83"
atty = "0.2.11"
backoff = "0.4.0"
base64 = "0.22.1"
bincode = "1.3.3"
bitflags = { version = "2.6.0" }
blake3 = "1.5.4"
borsh = { version = "1.5.1", features = ["derive", "unstable__schema"] }
borsh0-10 = { package = "borsh", version = "0.10.3" }
bs58 = { version = "0.5.1", default-features = false }
bv = "0.11.1"
byte-unit = "4.0.19"
bytecount = "0.6.8"
bytemuck = "1.19.0"
bytemuck_derive = "1.8.0"
byteorder = "1.5.0"
bytes = "1.8"
bzip2 = "0.4.4"
caps = "0.5.5"
cargo_metadata = "0.15.4"
cfg_eval = "0.1.2"
chrono = { version = "0.4.38", default-features = false }
chrono-humanize = "0.2.3"
clap = "2.33.1"
console = "0.15.8"
console_error_panic_hook = "0.1.7"
console_log = "0.2.2"
const_format = "0.2.33"
core_affinity = "0.5.10"
criterion = "0.5.1"
criterion-stats = "0.3.0"
crossbeam-channel = "0.5.13"
csv = "1.3.0"
ctrlc = "3.4.5"
curve25519-dalek = { version = "4.1.3", features = ["digest", "rand_core"] }
dashmap = "5.5.3"
derivation-path = { version = "0.2.0", default-features = false }
derivative = "2.2.0"
dialoguer = "0.10.4"
digest = "0.10.7"
dir-diff = "0.3.3"
dirs-next = "2.0.0"
dlopen2 = "0.5.0"
eager = "0.1.0"
ed25519-dalek = "=1.0.1"
ed25519-dalek-bip32 = "0.2.0"
enum-iterator = "1.5.0"
env_logger = "0.9.3"
etcd-client = "0.11.1"
fast-math = "0.1"
fd-lock = "3.0.13"
flate2 = "1.0.31"
five8_const = "0.1.3"
fnv = "1.0.7"
fs_extra = "1.3.0"
futures = "0.3.31"
futures-util = "0.3.29"
gag = "1.0.0"
generic-array = { version = "0.14.7", default-features = false }
gethostname = "0.2.3"
getrandom = "0.2.10"
goauth = "0.13.1"
governor = "0.6.3"
hex = "0.4.3"
hidapi = { version = "2.6.3", default-features = false }
histogram = "0.6.9"
hmac = "0.12.1"
http = "0.2.12"
humantime = "2.0.1"
hyper = "0.14.31"
hyper-proxy = "0.9.1"
im = "15.1.0"
index_list = "0.2.13"
indexmap = "2.6.0"
indicatif = "0.17.8"
itertools = "0.12.1"
jemallocator = { package = "tikv-jemallocator", version = "0.4.1", features = [
"unprefixed_malloc_on_supported_platforms",
] }
js-sys = "0.3.72"
json5 = "0.4.1"
jsonrpc-core = "18.0.0"
jsonrpc-core-client = "18.0.0"
jsonrpc-derive = "18.0.0"
jsonrpc-http-server = "18.0.0"
jsonrpc-ipc-server = "18.0.0"
jsonrpc-pubsub = "18.0.0"
lazy-lru = "0.1.3"
lazy_static = "1.5.0"
libc = "0.2.161"
libloading = "0.7.4"
libsecp256k1 = { version = "0.6.0", default-features = false, features = [
"std",
"static-context",
] }
light-poseidon = "0.2.0"
log = "0.4.22"
lru = "0.7.7"
lz4 = "1.28.0"
memmap2 = "0.5.10"
memoffset = "0.9"
merlin = "3"
min-max-heap = "1.3.0"
mockall = "0.11.4"
modular-bitfield = "0.11.2"
nix = "0.29.0"
num-bigint = "0.4.6"
num-derive = "0.4"
num-traits = "0.2"
num_cpus = "1.16.0"
num_enum = "0.7.3"
openssl = "0.10"
parking_lot = "0.12"
pbkdf2 = { version = "0.11.0", default-features = false }
pem = "1.1.1"
percentage = "0.1.0"
pickledb = { version = "0.5.1", default-features = false }
predicates = "2.1"
pretty-hex = "0.3.0"
prio-graph = "0.3.0"
proc-macro2 = "1.0.89"
proptest = "1.5"
prost = "0.11.9"
prost-build = "0.11.9"
prost-types = "0.11.9"
protobuf-src = "1.1.0"
qstring = "0.7.2"
qualifier_attr = { version = "0.2.2", default-features = false }
quinn = "0.11.6"
quinn-proto = "0.11.9"
quote = "1.0"
rand = "0.8.5"
rand_chacha = "0.3.1"
rayon = "1.10.0"
reed-solomon-erasure = "6.0.0"
regex = "1.11.1"
reqwest = { version = "0.11.27", default-features = false }
reqwest-middleware = "0.2.5"
rolling-file = "0.2.0"
rpassword = "7.3"
rustls = { version = "0.23.15", default-features = false }
scopeguard = "1.2.0"
semver = "1.0.23"
seqlock = "0.2.0"
serde = "1.0.213" # must match the serde_derive version, see https://github.com/serde-rs/serde/issues/2584#issuecomment-1685252251
serde_bytes = "0.11.15"
serde_derive = "1.0.213" # must match the serde version, see https://github.com/serde-rs/serde/issues/2584#issuecomment-1685252251
serde_json = "1.0.132"
serde_with = { version = "3.11.0", default-features = false }
serde_yaml = "0.9.34"
serial_test = "2.0.0"
sha2 = "0.10.8"
sha3 = "0.10.8"
shuttle = "0.7.1"
signal-hook = "0.3.17"
siphasher = "0.3.11"
smallvec = "1.13.2"
smpl_jwt = "0.7.1"
socket2 = "0.5.7"
soketto = "0.7"
solana-account = { path = "sdk/account", version = "=2.1.11" }
solana-account-decoder = { path = "account-decoder", version = "=2.1.11" }
solana-account-decoder-client-types = { path = "account-decoder-client-types", version = "=2.1.11" }
solana-account-info = { path = "sdk/account-info", version = "=2.1.11" }
solana-accounts-db = { path = "accounts-db", version = "=2.1.11" }
solana-address-lookup-table-program = { path = "programs/address-lookup-table", version = "=2.1.11" }
solana-atomic-u64 = { path = "sdk/atomic-u64", version = "=2.1.11" }
solana-banks-client = { path = "banks-client", version = "=2.1.11" }
solana-banks-interface = { path = "banks-interface", version = "=2.1.11" }
solana-banks-server = { path = "banks-server", version = "=2.1.11" }
solana-bench-tps = { path = "bench-tps", version = "=2.1.11" }
solana-bincode = { path = "sdk/bincode", version = "=2.1.11" }
solana-bloom = { path = "bloom", version = "=2.1.11" }
solana-bn254 = { path = "curves/bn254", version = "=2.1.11" }
solana-borsh = { path = "sdk/borsh", version = "=2.1.11" }
solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=2.1.11" }
solana-bucket-map = { path = "bucket_map", version = "=2.1.11" }
solana-builtins-default-costs = { path = "builtins-default-costs", version = "=2.1.11" }
agave-cargo-registry = { path = "cargo-registry", version = "=2.1.11" }
solana-clap-utils = { path = "clap-utils", version = "=2.1.11" }
solana-clap-v3-utils = { path = "clap-v3-utils", version = "=2.1.11" }
solana-cli = { path = "cli", version = "=2.1.11" }
solana-cli-config = { path = "cli-config", version = "=2.1.11" }
solana-cli-output = { path = "cli-output", version = "=2.1.11" }
solana-client = { path = "client", version = "=2.1.11" }
solana-clock = { path = "sdk/clock", version = "=2.1.11" }
solana-compute-budget = { path = "compute-budget", version = "=2.1.11" }
solana-compute-budget-program = { path = "programs/compute-budget", version = "=2.1.11" }
solana-config-program = { path = "programs/config", version = "=2.1.11" }
solana-connection-cache = { path = "connection-cache", version = "=2.1.11", default-features = false }
solana-core = { path = "core", version = "=2.1.11" }
solana-cost-model = { path = "cost-model", version = "=2.1.11" }
solana-cpi = { path = "sdk/cpi", version = "=2.1.11" }
solana-curve25519 = { path = "curves/curve25519", version = "=2.1.11" }
solana-decode-error = { path = "sdk/decode-error", version = "=2.1.11" }
solana-define-syscall = { path = "define-syscall", version = "=2.1.11" }
solana-derivation-path = { path = "sdk/derivation-path", version = "=2.1.11" }
solana-download-utils = { path = "download-utils", version = "=2.1.11" }
solana-entry = { path = "entry", version = "=2.1.11" }
solana-program-entrypoint = { path = "sdk/program-entrypoint", version = "=2.1.11" }
solana-epoch-schedule = { path = "sdk/epoch-schedule", version = "=2.1.11" }
solana-faucet = { path = "faucet", version = "=2.1.11" }
solana-feature-set = { path = "sdk/feature-set", version = "=2.1.11" }
solana-fee-calculator = { path = "sdk/fee-calculator", version = "=2.1.11" }
solana-fee = { path = "fee", version = "=2.1.11" }
solana-frozen-abi = { path = "frozen-abi", version = "=2.1.11" }
solana-frozen-abi-macro = { path = "frozen-abi/macro", version = "=2.1.11" }
solana-tps-client = { path = "tps-client", version = "=2.1.11" }
solana-genesis = { path = "genesis", version = "=2.1.11" }
solana-genesis-utils = { path = "genesis-utils", version = "=2.1.11" }
agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=2.1.11" }
solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=2.1.11" }
solana-gossip = { path = "gossip", version = "=2.1.11" }
solana-hash = { path = "sdk/hash", version = "=2.1.11", default-features = false }
solana-inflation = { path = "sdk/inflation", version = "=2.1.11" }
solana-inline-spl = { path = "inline-spl", version = "=2.1.11" }
solana-instruction = { path = "sdk/instruction", version = "=2.1.11", default-features = false }
solana-last-restart-slot = { path = "sdk/last-restart-slot", version = "=2.1.11" }
solana-lattice-hash = { path = "lattice-hash", version = "=2.1.11" }
solana-ledger = { path = "ledger", version = "=2.1.11" }
solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.1.11" }
solana-local-cluster = { path = "local-cluster", version = "=2.1.11" }
solana-log-collector = { path = "log-collector", version = "=2.1.11" }
solana-logger = { path = "logger", version = "=2.1.11" }
solana-measure = { path = "measure", version = "=2.1.11" }
solana-merkle-tree = { path = "merkle-tree", version = "=2.1.11" }
solana-metrics = { path = "metrics", version = "=2.1.11" }
solana-msg = { path = "sdk/msg", version = "=2.1.11" }
solana-native-token = { path = "sdk/native-token", version = "=2.1.11" }
solana-net-utils = { path = "net-utils", version = "=2.1.11" }
solana-nohash-hasher = "0.2.1"
solana-notifier = { path = "notifier", version = "=2.1.11" }
solana-package-metadata = { path = "sdk/package-metadata", version = "=2.1.11" }
solana-package-metadata-macro = { path = "sdk/package-metadata-macro", version = "=2.1.11" }
solana-packet = { path = "sdk/packet", version = "=2.1.11" }
solana-perf = { path = "perf", version = "=2.1.11" }
solana-poh = { path = "poh", version = "=2.1.11" }
solana-poseidon = { path = "poseidon", version = "=2.1.11" }
solana-precompile-error = { path = "sdk/precompile-error", version = "=2.1.11" }
solana-program = { path = "sdk/program", version = "=2.1.11", default-features = false }
solana-program-error = { path = "sdk/program-error", version = "=2.1.11" }
solana-program-memory = { path = "sdk/program-memory", version = "=2.1.11" }
solana-program-option = { path = "sdk/program-option", version = "=2.1.11" }
solana-program-pack = { path = "sdk/program-pack", version = "=2.1.11" }
solana-program-runtime = { path = "program-runtime", version = "=2.1.11" }
solana-program-test = { path = "program-test", version = "=2.1.11" }
solana-pubkey = { path = "sdk/pubkey", version = "=2.1.11", default-features = false }
solana-pubsub-client = { path = "pubsub-client", version = "=2.1.11" }
solana-quic-client = { path = "quic-client", version = "=2.1.11" }
solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=2.1.11" }
solana-remote-wallet = { path = "remote-wallet", version = "=2.1.11", default-features = false }
solana-rent = { path = "sdk/rent", version = "=2.1.11", default-features = false }
solana-sanitize = { path = "sdk/sanitize", version = "=2.1.11" }
solana-secp256r1-program = { path = "sdk/secp256r1-program", version = "=2.1.11", default-features = false }
solana-serde-varint = { path = "sdk/serde-varint", version = "=2.1.11" }
solana-serialize-utils = { path = "sdk/serialize-utils", version = "=2.1.11" }
solana-sha256-hasher = { path = "sdk/sha256-hasher", version = "=2.1.11" }
solana-signature = { path = "sdk/signature", version = "=2.1.11", default-features = false }
solana-slot-hashes = { path = "sdk/slot-hashes", version = "=2.1.11" }
solana-slot-history = { path = "sdk/slot-history", version = "=2.1.11" }
solana-timings = { path = "timings", version = "=2.1.11" }
solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=2.1.11" }
solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=2.1.11" }
solana-rpc = { path = "rpc", version = "=2.1.11" }
solana-rpc-client = { path = "rpc-client", version = "=2.1.11", default-features = false }
solana-rpc-client-api = { path = "rpc-client-api", version = "=2.1.11" }
solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=2.1.11" }
solana-runtime = { path = "runtime", version = "=2.1.11" }
solana-runtime-transaction = { path = "runtime-transaction", version = "=2.1.11" }
solana-sdk = { path = "sdk", version = "=2.1.11" }
solana-sdk-macro = { path = "sdk/macro", version = "=2.1.11" }
solana-secp256k1-recover = { path = "curves/secp256k1-recover", version = "=2.1.11", default-features = false }
solana-send-transaction-service = { path = "send-transaction-service", version = "=2.1.11" }
solana-short-vec = { path = "short-vec", version = "=2.1.11" }
solana-stable-layout = { path = "sdk/stable-layout", version = "=2.1.11" }
solana-stake-program = { path = "programs/stake", version = "=2.1.11" }
solana-storage-bigtable = { path = "storage-bigtable", version = "=2.1.11" }
solana-storage-proto = { path = "storage-proto", version = "=2.1.11" }
solana-streamer = { path = "streamer", version = "=2.1.11" }
solana-svm = { path = "svm", version = "=2.1.11" }
solana-svm-conformance = { path = "svm-conformance", version = "=2.1.11" }
solana-svm-example-paytube = { path = "svm/examples/paytube", version = "=2.1.11" }
solana-svm-rent-collector = { path = "svm-rent-collector", version = "=2.1.11" }
solana-svm-transaction = { path = "svm-transaction", version = "=2.1.11" }
solana-system-program = { path = "programs/system", version = "=2.1.11" }
solana-sysvar-id = { path = "sdk/sysvar-id", version = "=2.1.11" }
solana-test-validator = { path = "test-validator", version = "=2.1.11" }
solana-thin-client = { path = "thin-client", version = "=2.1.11" }
solana-transaction-error = { path = "sdk/transaction-error", version = "=2.1.11" }
solana-tpu-client = { path = "tpu-client", version = "=2.1.11", default-features = false }
solana-tpu-client-next = { path = "tpu-client-next", version = "=2.1.11" }
solana-transaction-status = { path = "transaction-status", version = "=2.1.11" }
solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=2.1.11" }
solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=2.1.11" }
solana-turbine = { path = "turbine", version = "=2.1.11" }
solana-type-overrides = { path = "type-overrides", version = "=2.1.11" }
solana-udp-client = { path = "udp-client", version = "=2.1.11" }
solana-version = { path = "version", version = "=2.1.11" }
solana-vote = { path = "vote", version = "=2.1.11" }
solana-vote-program = { path = "programs/vote", version = "=2.1.11" }
solana-wen-restart = { path = "wen-restart", version = "=2.1.11" }
solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=2.1.11" }
solana-zk-keygen = { path = "zk-keygen", version = "=2.1.11" }
solana-zk-sdk = { path = "zk-sdk", version = "=2.1.11" }
solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=2.1.11" }
solana-zk-token-sdk = { path = "zk-token-sdk", version = "=2.1.11" }
solana_rbpf = "=0.8.5"
spl-associated-token-account = "=4.0.0"
spl-instruction-padding = "0.2"
spl-memo = "=5.0.0"
spl-pod = "=0.3.0"
spl-token = "=6.0.0"
spl-token-2022 = "=4.0.0"
spl-token-group-interface = "=0.3.0"
spl-token-metadata-interface = "=0.4.0"
static_assertions = "1.1.0"
stream-cancel = "0.8.2"
strum = "0.24"
strum_macros = "0.24"
subtle = "2.6.1"
symlink = "0.1.0"
syn = "2.0"
sys-info = "0.9.1"
sysctl = "0.4.6"
systemstat = "0.2.3"
tar = "0.4.42"
tarpc = "0.29.0"
tempfile = "3.13.0"
test-case = "3.3.1"
thiserror = "1.0.65"
tiny-bip39 = "0.8.2"
# Update solana-tokio patch below when updating this version
tokio = "1.43.0"
tokio-serde = "0.8"
tokio-stream = "0.1.16"
tokio-tungstenite = "0.20.1"
tokio-util = "0.7"
toml = "0.8.12"
tonic = "0.9.2"
tonic-build = "0.9.2"
trees = "0.4.2"
tungstenite = "0.20.1"
uriparse = "0.6.4"
url = "2.5.2"
vec_extract_if_polyfill = "0.1.0"
wasm-bindgen = "0.2"
winapi = "0.3.8"
winreg = "0.50"
x509-parser = "0.14.0"
# See "zeroize versioning issues" below if you are updating this version.
zeroize = { version = "1.7", default-features = false }
zstd = "0.13.2"
[patch.crates-io]
# for details, see https://github.com/anza-xyz/crossbeam/commit/fd279d707025f0e60951e429bf778b4813d1b6bf
crossbeam-epoch = { git = "https://github.com/anza-xyz/crossbeam", rev = "fd279d707025f0e60951e429bf778b4813d1b6bf" }
# We include the following crates as our dependencies above from crates.io:
#
# * spl-associated-token-account
# * spl-instruction-padding
# * spl-memo
# * spl-pod
# * spl-token
# * spl-token-2022
# * spl-token-metadata-interface
#
# They, in turn, depend on a number of crates that we also include directly
# using `path` specifications. For example, `spl-token` depends on
# `solana-program`. And we explicitly specify `solana-program` above as a local
# path dependency:
#
# solana-program = { path = "../../sdk/program", version = "=1.16.0" }
#
# Unfortunately, Cargo will try to resolve the `spl-token` `solana-program`
# dependency only using what is available on crates.io. Crates.io normally
# contains a previous version of these crates, and we end up with two versions
# of `solana-program` and `solana-zk-token-sdk` and all of their dependencies in
# our build tree.
#
# If you are developing downstream using non-crates-io solana-program (local or
# forked repo, or from github rev, eg), duplicate the following patch statements
# in your Cargo.toml. If you still hit duplicate-type errors with the patch
# statements in place, run `cargo update -p solana-program` and/or `cargo update
# -p solana-zk-token-sdk` to remove extraneous versions from your Cargo.lock
# file.
#
# There is a similar override in `programs/sbf/Cargo.toml`. Please keep both
# comments and the overrides in sync.
solana-curve25519 = { path = "curves/curve25519" }
solana-program = { path = "sdk/program" }
solana-zk-sdk = { path = "zk-sdk" }
solana-zk-token-sdk = { path = "zk-token-sdk" }
# curve25519-dalek uses the simd backend by default in v4 if possible,
# which has very slow performance on some platforms with opt-level 0,
# which is the default for dev and test builds.
# This slowdown causes certain interactions in the solana-test-validator,
# such as verifying ZK proofs in transactions, to take much more than 400ms,
# creating problems in the testing environment.
# To enable better performance in solana-test-validator during tests and dev builds,
# we override the opt-level to 3 for the crate.
[profile.dev.package.curve25519-dalek]
opt-level = 3