[package]
name = "hopper-sdk"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
authors = ["BluefootLabs <contact@bluefootlabs.com>", "MoonManQuark"]
description = """
Off-chain SDK for the Hopper zero-copy state framework. Parses receipts,
decodes account state through segment-aware partial reads, builds instructions
from a ProgramManifest, and narrates state diffs for indexers and explorers.

Neither Pinocchio, Anchor zero-copy, nor Quasar ships a symmetric off-chain
SDK of this shape. Hopper does because Hopper owns the layout_id fingerprint,
segment roles, receipt wire format, and policy graph on both sides of the
program boundary.
"""
repository = "https://github.com/BluefootLabs/Hopper-Solana-Zero-copy-State-Framework"
homepage = "https://hopperzero.dev"
documentation = "https://docs.rs/crate/hopper-sdk/0.1.0"
readme = "README.md"
keywords = ["solana", "zero-copy", "sdk", "client", "hopper"]
categories = ["api-bindings", "development-tools"]

[features]
default = ["std", "narrate", "builder", "hopper-native-backend"]
# Standard library off-chain usage (the common case).
std = []
# Human-readable receipt narration.
narrate = ["std"]
# Instruction/transaction builder using ProgramManifest.
builder = ["std"]
# Serde JSON dump of receipts/narratives.
serde_json = ["std"]
hopper-native-backend = ["hopper-schema/hopper-native-backend"]
legacy-pinocchio-compat = ["hopper-schema/legacy-pinocchio-compat"]
solana-program-backend = ["hopper-schema/solana-program-backend"]

[dependencies]
hopper-schema = { workspace = true, default-features = false }

[lints]
workspace = true
