cargo-features = ["workspace-inheritance"] [package] name = "hyperlane-core" documentation = { workspace = true } edition = { workspace = true } homepage = { workspace = true } license-file = { workspace = true } publish = { workspace = true } version = { workspace = true } [dependencies] async-trait.workspace = true async-rwlock.workspace = true auto_impl.workspace = true bigdecimal.workspace = true borsh.workspace = true bs58.workspace = true bytes = { workspace = true, features = ["serde"] } config = { workspace = true, optional = true } convert_case.workspace = true derive-new.workspace = true derive_more.workspace = true ethers-contract = { workspace = true, optional = true } ethers-core = { workspace = true, optional = true } ethers-providers = { workspace = true, optional = true } eyre.workspace = true fixed-hash.workspace = true futures = { workspace = true, optional = true } getrandom.workspace = true hex.workspace = true itertools.workspace = true num = { workspace = true, features = ["serde"] } num-derive.workspace = true num-traits.workspace = true prometheus.workspace = true serde = { workspace = true } serde_json = { workspace = true } sha3 = { workspace = true } strum = { workspace = true, optional = true, features = ["derive"] } strum_macros = { workspace = true, optional = true } thiserror = { workspace = true } tokio = { workspace = true, optional = true, features = ["rt", "time"] } tracing.workspace = true typetag.workspace = true primitive-types = { workspace = true, optional = true } solana-sdk = { workspace = true, optional = true } tiny-keccak = { workspace = true, features = ["keccak"] } uint.workspace = true [dev-dependencies] tokio = { workspace = true, features = ["rt", "time"] } [features] default = ["strum"] float = [] test-utils = ["dep:config"] agent = ["ethers", "strum"] strum = ["dep:strum"] ethers = [ "dep:ethers-core", "dep:ethers-contract", "dep:ethers-providers", "dep:primitive-types", ] solana = ["dep:solana-sdk"] async = ["tokio", "futures"]