avalanche-types 0.0.22

Avalanche types
Documentation
[package]
name = "avalanche-types"
version = "0.0.22" # https://crates.io/crates/avalanche-types
edition = "2021"
rust-version = "1.62"
publish = true
description = "Avalanche types"
license = "BSD-3-Clause"
homepage = "https://avax.network"
repository = "https://github.com/ava-labs/avalanche-rust/tree/main/crates/avalanche-types"
readme = "README.md"

[dependencies]
avalanche-utils = { version = "0.0.12", features = ["big_int", "prometheus", "rfc3339"] } # https://crates.io/crates/avalanche-utils
bech32 = "0.9.0"
bitcoin = "0.28.1"
bytes = "1.1.0"
chrono = "0.4.19"
hex = "0.4.3"
lazy_static = "1.4.0"
log = "0.4.17"
num-bigint = "0.4.3"
ring = "0.16.20"
rust-embed = "6.4.0"
rustls-pemfile = "1.0.0"
serde = { version = "1.0.139", features = ["derive"] }
serde_json = "1.0.82"
serde_yaml = "0.8.25"
thiserror = "1.0.31"
zerocopy = "0.6.1"

# for "address"
ethereum-types = { version = "0.13.1" }
ripemd = { version = "0.1.1" }
sha3 = { version = "0.10.1" }

# for "address" + "hot"
rand = "0.8.5"
secp256k1 = { version = "0.22.1", features = ["global-context", "rand-std", "recovery"] }

# [OPTIONAL] for "cert"
rcgen = { version = "0.9.2", optional = true }
rsa = { version = "0.6.1", features = ["pem"], optional = true }
rustls = { version = "0.20.6", optional = true } # https://github.com/rustls/rustls/tags

# [OPTIONAL] for "message_compress_gzip"
flate2 = { version = "1.0.24", optional = true }

# [OPTIONAL] for "mnemonic"
bip32 = { version = "0.4.0", optional = true }
rand_core = { version = "0.6.3", features = ["std"], optional = true }

# [OPTIONAL] for "rpcchainvm"
avalanche-proto = { version = "0.15.3", features = ["aliasreader", "keystore", "sharedmemory", "subnetlookup", "rpcdb", "google_protobuf"], optional = true }
num-derive = { version = "0.3.3", optional = true }
num-traits = { version = "0.2.15", optional = true }
prost = { version = "0.10.4", optional = true }
semver = { version = "1.0.12", optional = true }
tokio = { version = "1.19.2", features = ["fs", "rt-multi-thread"], optional = true }
tokio-stream = { version = "0.1.9", features = ["net"], optional = true }
tonic = { version = "0.7.2", features = ["compression"], optional = true }
tonic-health = { version = "0.6.0", optional = true }
tonic-reflection = { version = "0.4.0", optional = true }

[dev-dependencies]
env_logger = "0.9.0"
random-manager = "0.0.1"
tempfile = "3.3.0"
tokio = { version = "1.19.2", features = ["fs", "rt-multi-thread"]}
tokio-test = "0.4.2"
tokio-stream = { version = "0.1.9", features = ["net"]}

[features]
default = ["cert", "jsonrpc", "message_compress_gzip", "metrics", "mnemonic", "rpcchainvm"]
cert = ["rcgen", "rsa", "rustls"]
jsonrpc = []
message_compress_gzip = ["flate2"]
metrics = []
mnemonic = ["bip32", "rand_core"]
rpcchainvm = ["avalanche-proto", "num-derive", "num-traits", "prost", "semver", "tokio", "tokio-stream", "tonic", "tonic-health", "tonic-reflection"]

[[example]]
name = "key_cert"
required-features = ["cert"]

[[example]]
name = "key_hot_mnemonic_derive_load"
required-features = ["mnemonic"]

[[example]]
name = "key_hot_mnemonic_gen_test_data"
required-features = ["mnemonic"]

[[example]]
name = "key_hot_mnemonic_gen"
required-features = ["mnemonic"]

[[test]]
name = "integration"
path = "tests/integration_tests.rs"
required-features = ["rpcchainvm"]

[package.metadata.cargo-udeps.ignore]
normal = ["rsa"]
development = ["tokio-test"]