[workspace]
members = [
".",
"crates/hopper-native",
"crates/hopper-runtime",
"crates/hopper-core",
"crates/hopper-macros",
"crates/hopper-macros-proc",
"crates/hopper-system",
"crates/hopper-schema",
"crates/hopper-solana",
"crates/hopper-spl/hopper-token",
"crates/hopper-spl/hopper-token-2022",
"crates/hopper-spl/hopper-associated-token",
"crates/hopper-spl/hopper-metaplex",
"crates/hopper-finance",
"crates/hopper-lending",
"crates/hopper-staking",
"crates/hopper-vesting",
"crates/hopper-distribute",
"crates/hopper-multisig",
"crates/hopper-memo",
"crates/hopper-anchor",
"examples/hopper-vault",
"examples/hopper-parity-vault",
"examples/hopper-escrow",
"examples/hopper-showcase",
"examples/hopper-treasury",
"examples/hopper-registry",
"examples/hopper-migration",
"examples/hopper-virtual-state",
"examples/hopper-token-2022-ata",
"examples/hopper-token-2022-vault",
"examples/hopper-token-2022-transfer-hook",
"examples/hopper-nft-mint",
"examples/hopper-proc-vault",
"examples/hopper-policy-vault",
"examples/cross-program-read/program-a",
"examples/cross-program-read/program-b",
"tests/hopper-trybuild",
"crates/hopper-manager",
"crates/hopper-sdk",
"tools/hopper-cli",
]
resolver = "2"
[workspace.lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = [
'cfg(target_os, values("solana"))',
'cfg(target_arch, values("bpf"))',
] }
[workspace.dependencies]
pinocchio = { version = "0.10", features = ["cpi", "copy"] }
pinocchio-system = "0.5"
pinocchio-token = "0.5"
five8_const = "0.1"
sha2-const-stable = "0.1"
hopper-native = { path = "crates/hopper-native", version = "0.1.0", default-features = false }
hopper-runtime = { path = "crates/hopper-runtime", version = "0.1.0", default-features = false }
hopper-core = { path = "crates/hopper-core", version = "0.1.0", default-features = false }
hopper-macros = { path = "crates/hopper-macros", version = "0.1.0", default-features = false }
hopper-macros-proc = { path = "crates/hopper-macros-proc", version = "0.1.0" }
hopper = { path = ".", package = "hopper-framework", version = "0.1.0" }
hopper-system = { path = "crates/hopper-system", version = "0.1.0", default-features = false }
hopper-schema = { path = "crates/hopper-schema", version = "0.1.0", default-features = false }
hopper-solana = { path = "crates/hopper-solana", version = "0.1.0", default-features = false }
hopper-token = { path = "crates/hopper-spl/hopper-token", version = "0.1.0", default-features = false }
hopper-token-2022 = { path = "crates/hopper-spl/hopper-token-2022", version = "0.1.0", default-features = false }
hopper-associated-token = { path = "crates/hopper-spl/hopper-associated-token", version = "0.1.0", default-features = false }
hopper-metaplex = { path = "crates/hopper-spl/hopper-metaplex", version = "0.1.0", default-features = false }
hopper-finance = { path = "crates/hopper-finance", version = "0.1.0" }
hopper-lending = { path = "crates/hopper-lending", version = "0.1.0" }
hopper-staking = { path = "crates/hopper-staking", version = "0.1.0" }
hopper-vesting = { path = "crates/hopper-vesting", version = "0.1.0" }
hopper-distribute = { path = "crates/hopper-distribute", version = "0.1.0" }
hopper-multisig = { path = "crates/hopper-multisig", version = "0.1.0" }
hopper-memo = { path = "crates/hopper-memo", version = "0.1.0", default-features = false }
hopper-anchor = { path = "crates/hopper-anchor", version = "0.1.0" }
hopper-manager = { path = "crates/hopper-manager", version = "0.1.0" }
hopper-sdk = { path = "crates/hopper-sdk", version = "0.1.0" }
[package]
name = "hopper-framework"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["BluefootLabs <contact@bluefootlabs.com>", "MoonManQuark"]
description = "Zero-copy state framework for Solana. Typed account architecture, phased execution, validation graphs, zero-copy collections, layout evolution, and cross-program interfaces. Built on Hopper Native. no_std, no_alloc, no proc macros required."
repository = "https://github.com/BluefootLabs/Hopper-Solana-Zero-copy-State-Framework"
homepage = "https://hopperzero.dev"
documentation = "https://docs.rs/crate/hopper-framework/0.1.0"
readme = "README.md"
keywords = ["solana", "zero-copy", "framework", "state", "no-std"]
categories = ["no-std", "embedded"]
[lib]
name = "hopper"
[dependencies]
hopper-runtime = { workspace = true }
sha2-const-stable = { workspace = true }
hopper-core = { workspace = true }
hopper-system = { workspace = true }
hopper-token = { workspace = true }
hopper-token-2022 = { workspace = true }
hopper-associated-token = { workspace = true }
hopper-memo = { workspace = true, default-features = false }
hopper-metaplex = { workspace = true, optional = true }
hopper-macros = { workspace = true }
hopper-schema = { path = "crates/hopper-schema", version = "0.1.0", default-features = false }
hopper-solana = { path = "crates/hopper-solana", version = "0.1.0", default-features = false }
hopper-macros-proc = { workspace = true, optional = true }
[dev-dependencies]
trybuild = "1"
[features]
default = ["hopper-native-backend", "advanced", "collections"]
proc-macros = ["hopper-macros-proc"]
metaplex = ["dep:hopper-metaplex"]
legacy-token-instructions = [
"hopper-token/legacy-token-instructions",
"hopper-solana/legacy-token-instructions",
]
advanced = ["hopper-core/advanced"]
frame = ["hopper-core/frame"]
receipt = ["hopper-core/receipt"]
policy = ["hopper-core/policy"]
graph = ["hopper-core/graph"]
migrate = ["hopper-core/migrate"]
virtual-state = ["hopper-core/virtual-state"]
diff = ["hopper-core/diff"]
explain = ["hopper-core/explain"]
collections = ["hopper-core/collections"]
hopper-native-backend = [
"hopper-runtime/hopper-native-backend",
"hopper-core/hopper-native-backend",
"hopper-system/hopper-native-backend",
"hopper-token/hopper-native-backend",
"hopper-token-2022/hopper-native-backend",
"hopper-associated-token/hopper-native-backend",
"hopper-memo/hopper-native-backend",
"hopper-metaplex?/hopper-native-backend",
"hopper-macros/hopper-native-backend",
"hopper-schema/hopper-native-backend",
"hopper-solana/hopper-native-backend",
]
legacy-pinocchio-compat = [
"hopper-runtime/legacy-pinocchio-compat",
"hopper-core/legacy-pinocchio-compat",
"hopper-system/legacy-pinocchio-compat",
"hopper-token/legacy-pinocchio-compat",
"hopper-token-2022/legacy-pinocchio-compat",
"hopper-associated-token/legacy-pinocchio-compat",
"hopper-memo/legacy-pinocchio-compat",
"hopper-metaplex?/legacy-pinocchio-compat",
"hopper-macros/legacy-pinocchio-compat",
"hopper-schema/legacy-pinocchio-compat",
"hopper-solana/legacy-pinocchio-compat",
]
solana-program-backend = [
"hopper-runtime/solana-program-backend",
"hopper-core/solana-program-backend",
"hopper-system/solana-program-backend",
"hopper-token/solana-program-backend",
"hopper-token-2022/solana-program-backend",
"hopper-associated-token/solana-program-backend",
"hopper-memo/solana-program-backend",
"hopper-metaplex?/solana-program-backend",
"hopper-macros/solana-program-backend",
"hopper-schema/solana-program-backend",
"hopper-solana/solana-program-backend",
]
cu-trace = ["hopper-runtime/cu-trace"]
[lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = [
'cfg(target_os, values("solana"))',
'cfg(feature, values("frame", "receipt", "policy", "graph", "migrate", "virtual-state", "diff", "explain", "advanced"))',
] }