[workspace] resolver = "3" members = ["crates/*"] [workspace.package] version = "0.1.0" edition = "2024" rust-version = "1.85" license = "GPL-3.0-or-later" authors = ["Rob Thijssen "] repository = "https://git.lair.cafe/Quantus-Network/blackbeard.observer" [workspace.dependencies] getrandom = "0.3" bs58 = "0.5" # The blackbeard wallet's NEAR code (#51): the NEP-649 key, transactions and # NEP-366 delegate actions. Pinned by rev so the sponsor and the wallet sign # and read the same bytes; move it with the wallet, never ahead of it. wallet-near = { git = "https://git.lair.cafe/blackbeard/wallet", rev = "f5c214e4bffa34c5bc3c5283737f92547cd98e1c" } qp-rusty-crystals-dilithium = { version = "4.1.1", default-features = false, features = ["ml-dsa-65"] } blackbeard-entities = { path = "crates/blackbeard-entities", version = "=0.1.0" } blackbeard-core = { path = "crates/blackbeard-core", version = "=0.1.0" } blackbeard-data = { path = "crates/blackbeard-data", version = "=0.1.0" } anyhow = "1" # NEAR view-call arguments travel base64-encoded, and so do a transaction's # function-call arguments, which `blackbeard-core::near_tx` decodes. base64 = "0.22" axum = { version = "0.8", features = ["ws", "macros"] } chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "std"] } clap = { version = "4", features = ["derive", "env"] } figment = { version = "0.10", features = ["toml", "env"] } futures-util = { version = "0.3", default-features = false, features = ["sink", "std"] } hex = "0.4" # The chain's own description of itself, and a decoder driven by it. This is the # alternative to hand-written SCALE readers that rot on every runtime upgrade, # and to pulling in subxt or the runtime crate to avoid writing them. frame-metadata = { version = "23", default-features = false, features = ["current", "decode"] } parity-scale-codec = { version = "3", default-features = false, features = ["derive"] } scale-info = { version = "2", default-features = false } scale-value = { version = "0.18", default-features = false } # Only for `IgnoreVisitor`: the pre-flight walk in `Runtime::decode_checked` # that keeps a bogus length prefix from sizing an allocation. Pinned to the # version `scale-value` itself resolves, so both see one type registry. scale-decode = { version = "0.16", default-features = false } # Offline reverse geocoding, country level only. The embedded 180x90 dataset is # 508 KiB and needs no network at all — see `blackbeard_core::geo`. country-boundaries = "1" rust_iso3166 = "0.2" # The chain's own reward-address derivation, so the observer computes the same # account `pallets/mining-rewards` pays rather than guessing or asking. qp-poseidon-core = { version = "3.1.0", default-features = false } # SS58 checksums only. Base58 is hand-rolled; this is not. blake2 = { version = "0.10", default-features = false } twox-hash = { version = "2", default-features = false, features = ["xxhash64"] } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-native-roots"] } rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] } serde = { version = "1", features = ["derive"] } serde_json = "1" sqlx = { version = "0.8", default-features = false, features = [ "postgres", "runtime-tokio-rustls", "macros", "json", "migrate", "chrono", "bigdecimal", ] } bigdecimal = "0.4" primitive-types = { version = "0.13", default-features = false } thiserror = "2" tokio = { version = "1", features = ["full"] } tokio-tungstenite = { version = "0.24", default-features = false, features = ["connect", "rustls-tls-native-roots"] } tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } ts-rs = { version = "10", features = ["serde-compat", "chrono-impl", "no-serde-warnings"] } url = "2" [profile.release] lto = "thin" codegen-units = 1 strip = "debuginfo"