content: [package]
  authors = { workspace = true }
  categories = ["concurrency", "cryptography::cryptocurrencies", "emulators"]
  description = "Fuel client library is aggregation of all fuels service. It contains the all business logic of the fuel protocol."
  edition = { workspace = true }
  homepage = { workspace = true }
  keywords = ["blockchain", "cryptocurrencies", "fuel-vm", "vm"]
  license = { workspace = true }
  name = "fuel-core"
  repository = { workspace = true }
  rust-version = { workspace = true }
  version = { workspace = true }
  
  [features]
  default = ["rocksdb", "serde"]
  serde = ["dep:serde_with"]
  smt = [
      "fuel-core-storage/smt",
      "fuel-core-executor/smt",
      "fuel-core-upgradable-executor/smt",
  ]
  p2p = ["dep:fuel-core-p2p", "dep:fuel-core-sync"]
  relayer = ["dep:fuel-core-relayer"]
  shared-sequencer = ["dep:fuel-core-shared-sequencer", "dep:cosmrs"]
  rocksdb = ["dep:rocksdb", "dep:tempfile", "dep:num_cpus"]
  backup = ["rocksdb", "fuel-core-database/backup"]
  test-helpers = [
      "fuel-core-database/test-helpers",
      "fuel-core-p2p?/test-helpers",
      "fuel-core-storage/test-helpers",
      "fuel-core-chain-config/test-helpers",
      "fuel-core-txpool/test-helpers",
      "fuel-core-tx-status-manager/test-helpers",
      "fuel-core-services/test-helpers",
      "fuel-core-shared-sequencer?/test-helpers",
      "fuel-core-importer/test-helpers",
      "fuel-core-poa/test-helpers",
      "dep:mockall",
  ]
  # features to enable in production, but increase build times
  rocksdb-production = ["rocksdb", "rocksdb/jemalloc"]
  wasm-executor = ["fuel-core-upgradable-executor/wasm-executor"]
  parallel-executor = ["fuel-core-parallel-executor"]
  fault-proving = [
      "fuel-core-types/fault-proving",
      "fuel-core-executor/fault-proving",
      "fuel-core-storage/fault-proving",
      "fuel-core-chain-config/fault-proving",
      "fuel-core-database/fault-proving",
      "fuel-core-sync?/fault-proving",
      "fuel-core-importer/fault-proving",
      "fuel-core-poa/fault-proving",
      "fuel-core-compression-service/fault-proving",
      "fuel-core-upgradable-executor/fault-proving",
  ]
  
  [dependencies]
  anyhow = { workspace = true }
  async-graphql = { workspace = true }
  async-graphql-value = { workspace = true }
  async-trait = { workspace = true }
  axum = { workspace = true }
  clap = { workspace = true, features = ["derive"] }
  cosmrs = { version = "0.21", optional = true }
  derive_more = { version = "0.99" }
  enum-iterator = { workspace = true }
  fuel-core-chain-config = { workspace = true, features = ["std"] }
  fuel-core-compression-service = { workspace = true }
  fuel-core-consensus-module = { workspace = true }
  fuel-core-database = { workspace = true }
  fuel-core-executor = { workspace = true, features = ["std"] }
  fuel-core-gas-price-service = { workspace = true }
  fuel-core-importer = { workspace = true }
  fuel-core-metrics = { workspace = true }
  fuel-core-p2p = { workspace = true, optional = true }
  fuel-core-parallel-executor = { workspace = true, optional = true }
  fuel-core-poa = { workspace = true }
  fuel-core-producer = { workspace = true }
  fuel-core-relayer = { workspace = true, optional = true }
  fuel-core-services = { workspace = true }
  fuel-core-shared-sequencer = { workspace = true, optional = true }
  fuel-core-storage = { workspace = true }
  fuel-core-sync = { workspace = true, optional = true }
  fuel-core-syscall = { workspace = true }
  fuel-core-tx-status-manager = { workspace = true }
  fuel-core-txpool = { workspace = true }
  fuel-core-types = { workspace = true, features = ["alloc", "serde"] }
  fuel-core-upgradable-executor = { workspace = true }
  futures = { workspace = true }
  hex = { workspace = true }
  hyper = { workspace = true }
  indicatif = { workspace = true, default-features = true }
  itertools = { workspace = true }
  mockall = { workspace = true, optional = true }
  num_cpus = { version = "1.16.0", optional = true }
  parking_lot = { workspace = true }
  postcard = { workspace = true }
  rand = { workspace = true }
  rocksdb = { version = "0.21", default-features = false, features = [
    "lz4",
    "multi-threaded-cf",
  ], optional = true }
  serde = { workspace = true, features = ["derive"] }
  serde_json = { workspace = true, features = ["raw_value"] }
  serde_with = { workspace = true, optional = true }
  strum = { workspace = true, features = ["derive"] }
  strum_macros = { workspace = true }
  tempfile = { workspace = true, optional = true }
  thiserror = "1.0"
  tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
  tokio-rayon = { workspace = true }
  tokio-stream = { workspace = true, features = ["sync"] }
  tokio-util = { workspace = true }
  tower = { version = "0.4", features = ["limit"] }
  tower-http = { version = "0.4", features = ["set-header", "trace", "timeout"] }
  tracing = { workspace = true }
  url = { workspace = true }
  uuid = { version = "1.1", features = ["v4"] }
  
  [dev-dependencies]
  assert_matches = "1.5"
  fuel-core = { path = ".", features = ["smt", "test-helpers"] }
  fuel-core-executor = { workspace = true, features = [
    "std",
    "test-helpers",
    "limited-tx-count",
  ] }
  fuel-core-services = { path = "./../services", features = ["test-helpers"] }
  fuel-core-storage = { path = "./../storage", features = ["test-helpers"] }
  fuel-core-trace = { path = "./../trace" }
  fuel-core-types = { path = "./../types", features = ["test-helpers"] }
  fuel-core-upgradable-executor = { workspace = true, features = [
    "test-helpers",
  ] }
  proptest = { workspace = true }
  test-case = { workspace = true }
  test-strategy = { workspace = true }
  tokio-test = "0.4.4"
  tracing-subscriber = { workspace = true }
  