[package] name = "linera-alloy" description = "Connect applications to blockchains" version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true exclude.workspace = true [lints] workspace = true [dependencies] # core linera-alloy-core = { workspace = true, default-features = false } # alloy linera-alloy-consensus = { workspace = true, default-features = false, optional = true } linera-alloy-contract = { workspace = true, default-features = false, optional = true } linera-alloy-eips = { workspace = true, default-features = false, optional = true } linera-alloy-genesis = { workspace = true, default-features = false, optional = true } linera-alloy-network = { workspace = true, default-features = false, optional = true } linera-alloy-node-bindings = { workspace = true, default-features = false, optional = true } # providers linera-alloy-provider = { workspace = true, default-features = false, optional = true } # pubsub linera-alloy-pubsub = { workspace = true, default-features = false, optional = true } # rpc linera-alloy-json-rpc = { workspace = true, default-features = false, optional = true } linera-alloy-rpc-client = { workspace = true, default-features = false, optional = true } linera-alloy-rpc-types-beacon = { workspace = true, default-features = false, optional = true } linera-alloy-rpc-types-engine = { workspace = true, default-features = false, optional = true } linera-alloy-rpc-types-trace = { workspace = true, default-features = false, optional = true } linera-alloy-rpc-types = { workspace = true, default-features = false, optional = true } # serde linera-alloy-serde = { workspace = true, default-features = false, optional = true } # signer linera-alloy-signer = { workspace = true, default-features = false, optional = true } linera-alloy-signer-aws = { workspace = true, default-features = false, optional = true } linera-alloy-signer-gcp = { workspace = true, default-features = false, optional = true } linera-alloy-signer-ledger = { workspace = true, default-features = false, optional = true } linera-alloy-signer-trezor = { workspace = true, default-features = false, optional = true } linera-alloy-signer-wallet = { workspace = true, default-features = false, optional = true } # transport linera-alloy-transport = { workspace = true, default-features = false, optional = true } linera-alloy-transport-http = { workspace = true, default-features = false, optional = true } linera-alloy-transport-ipc = { workspace = true, default-features = false, optional = true } linera-alloy-transport-ws = { workspace = true, default-features = false, optional = true } # optional reqwest = { workspace = true, optional = true } hyper = { workspace = true, optional = true } # ----------------------------------------- Configuration ---------------------------------------- # [features] default = ["std", "reqwest"] # std std = [ "linera-alloy-core/std", "linera-alloy-eips?/std", "linera-alloy-genesis?/std", "linera-alloy-serde?/std", "linera-alloy-consensus?/std", ] # configuration reqwest = [ "dep:reqwest", "linera-alloy-rpc-client?/reqwest", "linera-alloy-provider?/reqwest", "linera-alloy-transport-http?/reqwest", "linera-alloy-transport-http?/reqwest-default-tls", ] hyper = [ "dep:hyper", "linera-alloy-rpc-client?/hyper", "linera-alloy-provider?/hyper", "linera-alloy-transport-http?/hyper", ] # ---------------------------------------- Main re-exports --------------------------------------- # # general consensus = ["dep:linera-alloy-consensus"] contract = ["dep:linera-alloy-contract", "dyn-abi", "json-abi", "json", "sol-types"] eips = ["dep:linera-alloy-eips"] genesis = ["dep:linera-alloy-genesis"] network = ["dep:linera-alloy-network"] node-bindings = ["dep:linera-alloy-node-bindings", "linera-alloy-provider?/anvil"] # providers providers = ["dep:linera-alloy-provider"] provider-http = ["providers", "transport-http"] provider-ws = ["providers", "linera-alloy-provider?/ws", "transport-ws"] provider-ipc = ["providers", "linera-alloy-provider?/ipc", "transport-ipc"] # pubsub pubsub = [ "dep:linera-alloy-pubsub", "linera-alloy-contract?/pubsub", "linera-alloy-provider?/pubsub", "linera-alloy-rpc-client?/pubsub", ] # rpc rpc = [] json-rpc = ["rpc", "dep:linera-alloy-json-rpc"] rpc-client = ["rpc", "dep:linera-alloy-rpc-client"] rpc-client-ws = ["rpc", "linera-alloy-rpc-client?/ws"] rpc-client-ipc = ["rpc", "linera-alloy-rpc-client?/ipc"] rpc-types = ["rpc"] rpc-types-eth = ["rpc-types", "dep:linera-alloy-rpc-types"] rpc-types-beacon = ["rpc-types", "dep:linera-alloy-rpc-types-beacon"] rpc-types-engine = ["rpc-types", "dep:linera-alloy-rpc-types-engine"] rpc-types-json = [ "linera-alloy-rpc-types?/jsonrpsee-types", "linera-alloy-rpc-types-engine?/jsonrpsee-types", ] rpc-types-trace = ["rpc-types", "dep:linera-alloy-rpc-types-trace"] # signers signers = ["dep:linera-alloy-signer"] signer-aws = ["signers", "dep:linera-alloy-signer-aws"] signer-gcp = ["signers", "dep:linera-alloy-signer-gcp"] signer-ledger = ["signers", "dep:linera-alloy-signer-ledger"] signer-ledger-browser = ["signer-ledger", "linera-alloy-signer-ledger?/browser"] signer-ledger-node = ["signer-ledger", "linera-alloy-signer-ledger?/node"] signer-trezor = ["signers", "dep:linera-alloy-signer-trezor"] signer-wallet = ["signers", "dep:linera-alloy-signer-wallet"] signer-keystore = ["signer-wallet", "linera-alloy-signer-wallet?/keystore"] signer-mnemonic = ["signer-wallet", "linera-alloy-signer-wallet?/mnemonic"] signer-mnemonic-all-languages = [ "signer-mnemonic", "linera-alloy-signer-wallet?/mnemonic-all-languages", ] signer-yubihsm = ["signer-wallet", "linera-alloy-signer-wallet?/yubihsm"] # transports transports = ["dep:linera-alloy-transport"] transport-http = ["transports", "dep:linera-alloy-transport-http"] transport-ipc = ["transports", "pubsub", "dep:linera-alloy-transport-ipc"] transport-ipc-mock = ["linera-alloy-transport-ipc?/mock"] transport-ws = ["transports", "pubsub", "dep:linera-alloy-transport-ws"] # ---------------------------------------- Core re-exports --------------------------------------- # dyn-abi = ["linera-alloy-core/dyn-abi"] json-abi = ["linera-alloy-core/json-abi"] json = ["linera-alloy-core/json"] sol-types = ["linera-alloy-core/sol-types"] tiny-keccak = ["linera-alloy-core/tiny-keccak"] native-keccak = ["linera-alloy-core/native-keccak"] asm-keccak = ["linera-alloy-core/asm-keccak"] postgres = ["linera-alloy-core/postgres"] getrandom = ["linera-alloy-core/getrandom"] rand = ["linera-alloy-core/rand"] rlp = ["linera-alloy-core/rlp"] serde = ["linera-alloy-core/serde", "linera-alloy-eips?/serde", "linera-alloy-serde"] ssz = ["linera-alloy-core/ssz", "linera-alloy-rpc-types?/ssz", "linera-alloy-rpc-types-engine?/ssz"] arbitrary = [ "linera-alloy-core/arbitrary", "linera-alloy-consensus?/arbitrary", "linera-alloy-eips?/arbitrary", "linera-alloy-rpc-types?/arbitrary", ] k256 = ["linera-alloy-core/k256", "linera-alloy-consensus?/k256", "linera-alloy-network?/k256"] kzg = ["linera-alloy-consensus?/kzg"] eip712 = [ "linera-alloy-core/eip712", "linera-alloy-signer?/eip712", "linera-alloy-signer-aws?/eip712", "linera-alloy-signer-gcp?/eip712", "linera-alloy-signer-ledger?/eip712", # TODO: https://github.com/alloy-rs/alloy/issues/201 # "linera-alloy-signer-trezor?/eip712", ]