# ---
# tags: lytics, config
# crystal-type: source
# crystal-domain: cyber
# ---
[package]
name = "lytics-event"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "lytics event core โ canonical encoding, hemera hash, pow, keys, adr-036 signing"
[features]
# both features are native conveniences the tracker wasm omits: `mnemonic`
# is the wordlist/PBKDF2 backup path, `json` is the serde_json canonicalizer
# (the hand-written encode_body is the real signing path). off in the core
# โ neither the wordlist nor serde_json enters the wasm.
default = ["mnemonic", "json"]
mnemonic = ["dep:bip39"]
json = ["dep:serde_json"]
[dependencies]
hemera.workspace = true
serde.workspace = true
serde_json = { workspace = true, optional = true }
thiserror.workspace = true
k256.workspace = true
# domain-scoped identity + ADR-036 sign/verify โ mudra's the canonical owner
# of these conventions cyber-wide (see mudra/.claude/plans/lytics-domain-identity.md
# for why this used to be reimplemented here). `default-features = false`
# drops mudra's `bridge` feature (bip32/bip39, the legacy-key-recovery path)
# โ lytics has no legacy account to recover, and the wasm tracker can't
# afford bip32's HMAC-SHA512 ladder regardless.
mudra = { path = "../../../mudra", default-features = false }
bip39 = { workspace = true, optional = true }
getrandom.workspace = true
[dev-dependencies]
hex.workspace = true
base64.workspace = true