content: [workspace]
  
  resolver = "2"
  
  members = [
      "protocol-units/execution/maptos/dof",
      "protocol-units/execution/maptos/opt-executor",
      "protocol-units/execution/maptos/fin-view",
      "protocol-units/execution/maptos/util",
      "protocol-units/da/movement/protocol/*",
      "protocol-units/sequencing/memseq/*",
      "protocol-units/mempool/*",
      "protocol-units/syncing/*",
      "protocol-units/settlement/mcr/client",
      "protocol-units/settlement/mcr/config",
      "protocol-units/settlement/mcr/manager",
      "protocol-units/settlement/mcr/setup",
      "protocol-units/settlement/mcr/runner",
      "protocol-units/movement-rest",
      "protocol-units/access-control/aptos/account-whitelist",
      "util/buildtime",
      "util/buildtime/buildtime-helpers",
      "util/buildtime/buildtime-macros",
      "util/commander",
      "util/dot-movement",
      "util/flocks",
      "util/godfig",
      "util/movement-algs",
      "util/movement-types",
      "util/tracing",
      "util/health",
      "util/syncador",
      "util/collections",
      "util/whitelist",
      "networks/movement/*",
      "benches/*",
      "util/signing/interface",
      "util/signing/integrations/aptos",
      "util/signing/providers/aws-kms",
      "util/signing/providers/hashicorp-vault",
      "util/signing/testing",
      "demo/hsm",
      "protocol-units/execution/maptos/framework/releases/*",
      "protocol-units/execution/maptos/framework/migrations/*",
      "protocol-units/da-sequencer/config",
      "protocol-units/da-sequencer/client",
      "protocol-units/da-sequencer/node",
  ]
  
  [workspace.package]
  version = "0.3.4"
  edition = "2021"
  license = "MIT OR Apache-2.0"
  authors = ["Movement Labs"]
  repository = "www.github.com/movementlabs/movement"
  homepage = "www.homepage.com"
  publish = false
  rust-version = "1.75"
  
  [workspace.dependencies]
  # internal
  ## buildtime
  buildtime = { path = "util/buildtime" }
  buildtime-helpers = { path = "util/buildtime/buildtime-helpers" }
  buildtime-macros = { path = "util/buildtime/buildtime-macros" }
  ## movement-da
  movement-da-light-node-proto = { path = "protocol-units/da/movement/protocol/proto" }
  movement-da-light-node = { path = "protocol-units/da/movement/protocol/light-node" }
  movement-da-light-node-client = { path = "protocol-units/da/movement/protocol/client" }
  movement-da-util = { path = "protocol-units/da/movement/protocol/util" }
  movement-da-light-node-setup = { path = "protocol-units/da/movement/protocol/setup" }
  movement-da-light-node-verifier = { path = "protocol-units/da/movement/protocol/verifier" }
  movement-da-light-node-prevalidator = { path = "protocol-units/da/movement/protocol/prevalidator" }
  movement-da-light-node-da = { path = "protocol-units/da/movement/protocol/da" }
  movement-da-light-node-celestia = { path = "protocol-units/da/movement/providers/celestia" }
  movement-da-light-node-digest-store = { path = "protocol-units/da/movement/providers/digest-store" }
  movement-da-light-node-signer = { path = "protocol-units/da/movement/protocol/light-node-signer" }
  ## execution
  maptos-dof-execution = { path = "protocol-units/execution/maptos/dof" }
  maptos-opt-executor = { path = "protocol-units/execution/maptos/opt-executor" }
  maptos-fin-view = { path = "protocol-units/execution/maptos/fin-view" }
  maptos-execution-util = { path = "protocol-units/execution/maptos/util" }
  
  ## movement da sequencer
  movement-da-sequencer-client = { path = "protocol-units/da-sequencer/client" }
  movement-da-sequencer-config = { path = "protocol-units/da-sequencer/config" }
  movement-da-sequencer-node = { path = "protocol-units/da-sequencer/node" }
  movement-da-sequencer-proto = { path = "protocol-units/da-sequencer/proto" }
  
  # framework releases
  maptos-framework-release-util = { path = "protocol-units/execution/maptos/framework/releases/util" }
  aptos-framework-head-release = { path = "protocol-units/execution/maptos/framework/releases/head" }
  aptos-framework-elsa-release = { path = "protocol-units/execution/maptos/framework/releases/elsa" }
  aptos-framework-biarritz-rc1-release = { path = "protocol-units/execution/maptos/framework/releases/biarritz-rc1" }
  aptos-framework-pre-l1-merge-release = { path = "protocol-units/execution/maptos/framework/releases/pre-l1-merge" }
  aptos-framework-upgrade-gas-release = { path = "protocol-units/execution/maptos/framework/releases/upgrade-gas" }
  aptos-framework-known-release = { path = "protocol-units/execution/maptos/framework/releases/known-release" }
  aptos-framework-set-feature-flags-release = { path = "protocol-units/execution/maptos/framework/releases/feature-flags" }
  aptos-framework-release-script-release = { path = "protocol-units/execution/maptos/framework/releases/release-script" }
  
  # framework migrations
  aptos-framework-elsa-to-biarritz-rc1-migration = { path = "protocol-units/execution/maptos/framework/migrations/elsa-to-biarritz-rc1" }
  aptos-framework-biarritz-rc1-to-pre-l1-merge-migration = { path = "protocol-units/execution/maptos/framework/migrations/biarritz-rc1-to-pre-l1-merge" }
  
  ## infra
  movement-rest = { path = "protocol-units/movement-rest" }
  ## mempool
  mempool-util = { path = "protocol-units/mempool/util" }
  move-rocks = { path = "protocol-units/mempool/move-rocks" }
  ## sequencing
  memseq = { path = "protocol-units/sequencing/memseq/sequencer" }
  memseq-util = { path = "protocol-units/sequencing/memseq/util" }
  sequencing-util = { path = "protocol-units/sequencing/util" }
  ## settlement
  mcr-settlement-client = { path = "protocol-units/settlement/mcr/client" }
  mcr-settlement-config = { path = "protocol-units/settlement/mcr/config" }
  mcr-settlement-manager = { path = "protocol-units/settlement/mcr/manager" }
  mcr-settlement-setup = { path = "protocol-units/settlement/mcr/setup" }
  ## types
  movement-algs = { path = "util/movement-algs" }
  movement-types = { path = "util/movement-types" }
  ## dot movement
  dot-movement = { path = "util/dot-movement" }
  commander = { path = "util/commander" }
  # networks
  movement-config = { path = "networks/movement/movement-config" }
  # util
  flocks = { path = "util/flocks" }
  godfig = { path = "util/godfig" }
  movement-tracing = { path = "util/tracing" }
  movement-health = { path = "util/health" }
  syncup = { path = "protocol-units/syncing/syncup" }
  syncador = { path = "util/syncador" }
  movement-collections = { path = "util/collections" }
  whitelist = { path = "util/whitelist" }
  ## access control
  aptos-account-whitelist = { path = "protocol-units/access-control/aptos/account-whitelist" }
  
  # signing
  movement-signer = { path = "util/signing/interface" }
  movement-signer-aws-kms = { path = "util/signing/providers/aws-kms" }
  movement-signer-hashicorp-vault = { path = "util/signing/providers/hashicorp-vault" }
  movement-signer-local = { path = "util/signing/providers/local" }
  movement-signer-loader = { path = "util/signing/util/loader" }
  movement-signing-aptos = { path = "util/signing/integrations/aptos" }
  movement-signing-eth = { path = "util/signing/integrations/eth" }
  movement-signer-test = { path = "util/signing/testing" }
  
  ## vault
  vaultrs = { version = "0.7.3" }
  aws-sdk-kms = "1.51.0"
  google-cloud-kms = "0.6.0"
  
  # Serialization and Deserialization
  serde = "1.0"
  serde_json = "1.0.140"
  serde_derive = "1.0"
  serde_yaml = "0.9.34"
  borsh = { version = "0.10" } # todo: internalize jmt and bump
  
  ## Aptos dependencies
  
  ### We use a forked version so that we can override dependency versions. This is required
  ### to be avoid dependency conflicts with other Sovereign Labs crates.
  aptos-api = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-api-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-bitvec = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-block-executor = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-cached-packages = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-config = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-consensus-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-crypto = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67", features = [
      "cloneable-private-keys",
  ] }
  
  aptos-crypto-derive = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-db = { git = "https://github.com/movementlabsxyz/aptos-core.git", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-db-indexer = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-executor = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-executor-test-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-executor-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-faucet-core = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-framework = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-language-e2e-tests = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-mempool = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-proptest-helpers = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-sdk = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-state-view = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-storage-interface = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-temppath = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-vm = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-vm-genesis = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-vm-logging = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-vm-validator = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-logger = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-vm-types = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-indexer = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-indexer-grpc-fullnode = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-indexer-grpc-table-info = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-protos = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-release-builder = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-rest-client = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  aptos-gas-schedule = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  move-package = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  movement = { git = "https://github.com/movementlabsxyz/aptos-core", rev = "1d1cdbbd7fabb80dcb95ba5e23213faa072fab67" }
  
  # Indexer
  processor = { git = "https://github.com/movementlabsxyz/aptos-indexer-processors", rev = "20be1190105908fd4fea4e78c330997658e9428e" }
  server-framework = { git = "https://github.com/movementlabsxyz/aptos-indexer-processors", rev = "20be1190105908fd4fea4e78c330997658e9428e" }
  processor-v2 = { git = "https://github.com/movementlabsxyz/aptos-indexer-processors-v2", rev = "3fa850e7ea7770fec7967ce5b9a857dabace6aa3", package = "processor" }
  aptos-indexer-processor-sdk = { git = "https://github.com/movementlabsxyz/aptos-indexer-processor-sdk", rev = "a596af7bfdabeb4fc94c19bbbccbd0574d7c15a1" }
  
  
  bcs = { git = "https://github.com/movementlabsxyz/bcs.git", rev = "bc16d2d39cabafaabd76173dd1b04b2aa170cf0c" }
  
  ethereum-types = "0.14.1"
  ethers = "=2.0.10"
  ethers-core = { version = "=2.0.10", default-features = false }
  ethers-contract = "=2.0.10"
  ethers-providers = { version = "=2.0.10", default-features = false }
  ethers-signers = { version = "=2.0.10", default-features = false }
  ethers-middleware = { version = "=2.0.10", default-features = false }
  ethabi = "18.0.0"
  move-binary-format = { git = "https://github.com/diem/move" }
  move-table-extension = { git = "https://github.com/diem/move" }
  move-core-types = { git = "https://github.com/diem/move" }
  
  secp256k1 = { version = "0.27", default-features = false, features = [
      "global-context",
      "rand-std",
      "recovery",
  ] }
  
  ## Celestia Dependencies
  celestia-rpc = { git = "https://github.com/eigerco/lumina", rev = "c6e5b7f5e3a3040bce4262fe5fba5c21a2637b5" }   #{ version = "0.7.0" }
  celestia-types = { git = "https://github.com/eigerco/lumina", rev = "c6e5b7f5e3a3040bce4262fe5fba5c21a2637b5" } #{ version = "0.7.0" }
  
  # External Dependencies
  
  alloy = { git = "https://github.com/alloy-rs/alloy.git", package = "alloy", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2", features = [
      "node-bindings",
      "rpc-types-trace",
      "json-rpc",
      "json-abi",
      "rpc-client",
      "signers",
      "signer-yubihsm",
      "pubsub",
      "providers",
  ] }
  alloy-rpc-types-eth = "0.1.3"
  alloy-eips = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-contract = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-network = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-primitives = { version = "0.7.2", default-features = false }
  alloy-consensus = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-provider = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2", features = [
      "ws",
  ] }
  alloy-rlp = "0.3.5"
  alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-sol-types = { version = "0.7.2", features = ["json"] }
  alloy-signer = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-transport = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  alloy-transport-http = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2", features = [
      "reqwest-rustls-tls",
  ] }
  alloy-transport-ws = { git = "https://github.com/alloy-rs/alloy.git", rev = "83343b172585fe4e040fb104b4d1421f58cbf9a2" }
  
  anyhow = "1.0.98"
  async-stream = "0.3.0"
  async-trait = "0.1.71"
  async-recursion = "1.1.1"
  auto_impl = "1.2.0"
  base64 = { version = "0.22.1" }
  blake3 = { version = "1.4.0", features = ["traits-preview"] }
  bytes = { version = "1.2.1", default-features = false }
  chrono = "0.4.37"
  clap = { version = "4.4.10", features = ["derive"] }
  dashmap = "6.0.1"
  delegate = "0.12.0"
  derivative = "2.2.0"
  derive_more = { version = "0.99.11", default-features = false }
  derive-new = "0.6.0"
  digest = "0.10"
  dirs = "3.0.2"
  fail = "0.5.1"
  futures = "0.3.17"
  hashbrown = "0.14.3"
  hex = { version = "0.4.3", default-features = false, features = [
      "alloc",
      "serde",
  ] }
  ics23 = { version = "0.11.0" }
  k256 = { version = "0.13.3" }
  keccak-hash = "0.10.0"
  itertools = { version = "0.13.0", default-features = false }
  jmt = "0.9.0"
  log = "0.4.21"
  mirai-annotations = "1.10.1"
  move-vm-integration-test-helpers = { path = "test-helpers/move-vm-integration-test-helpers" }
  move-vm-ext = { path = "types/move-vm-ext" }
  num-derive = "0.4.2"
  num-traits = "0.2.14"
  once_cell = "1.8.0"
  parking_lot = { version = "0.12.1" }
  poem = { version = "=1.3.59", features = ["anyhow", "rustls"] }
  poem-openapi = { version = "=2.0.11", features = ["swagger-ui", "url"] }
  prost = "0.13.3"
  proptest = { version = "1.3.1", default-features = false, features = ["alloc"] }
  proptest-derive = "0.4"
  quote = "1.0"
  rand = "0.7.3"
  rayon = "1.10.0"
  reqwest = "0.12.4"
  risc0-build = "0.20"
  risc0-zkvm = { version = "0.21", features = ["std", "getrandom"] }
  rocksdb = { version = "0.22.0", features = [
      "snappy",
      "lz4",
      "zstd",
      "zlib",
  ], default-features = false }
  schemars = { version = "0.8.16", features = ["derive"] }
  serde_with = "3.7.0"
  sha2 = "0.10.8"
  syn = "2.0"
  tempfile = "3.5"
  thiserror = "1.0.50"
  tiny-keccak = "2.0"
  tokio = { version = "1.35.1", features = ["full", "tracing"] }
  tokio-console = "0.1.0"
  console-subscriber = "0.3.0"
  tokio-stream = "0.1.15"
  toml = "0.8"
  tonic = "0.12.3"
  tonic-build = { version = "0.12.3", features = ["prost"] }
  tonic-reflection = "0.12.3"
  tonic-web = "0.12.3"
  ### To try (experimental) std support, add `features = [ "std" ]` to risc0-zkvm
  tracing = "0.1.40"
  tracing-appender = "0.2"
  tracing-subscriber = { version = "0.3", features = ["env-filter"] }
  tracing-test = "0.2.5"
  trie-db = "0.28.0"
  url = "2.2.2"
  ed25519-dalek = { version = "2.1", features = ["rand_core"] }
  ed25519 = "2.2.3"
  ring-compat = "0.8.0"
  zstd-sys = "2.0.9"
  zstd = "0.13"
  inotify = "0.10.2"
  rustix = "0.38.34"
  paste = "1.0.15"
  uuid = { version = "1.10.0", features = ["v4"] }
  tar = "0.4.41"
  flate2 = "1.0.31"
  blake-3 = "1.4.0"
  ecdsa = "0.16.9"
  regex = "1.10.6"
  globset = "0.4.15"
  glob = "0.3.1"
  hyper = "1.4"
  hyper-util = { version = "0.1.4" }
  tower = { version = "0.5" }
  http-body-util = "0.1"
  tap = "1.0.1"
  prometheus = "0.14.0"
  console = "0.16.0"
  similar = "2.7.0"
  
  # trying to pin diesel
  diesel = { version = "2.2.7", features = ["postgres", "numeric", "r2d2"] }
  diesel_migrations = { version = "2.2.0" }
  bigdecimal = "0.3"
  num_cpus = "=1.16.0"
  ahash = "=0.8.11"
  
  aws-types = "1.3.3"
  aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
  aws-sdk-s3 = "1.42.0"
  
  # movement
  movement-client = { path = "networks/movement/movement-client" }
  simple_asn1 = "0.6.3"
  dotenv = "0.15.0"
  rand_core = { version = "0.9.0", features = ["std", "os_rng"] }
  
  [workspace.lints.rust]
  dead_code = "deny"        ## Alloy Dependencies
  unused_imports = "deny"
  non_ascii_idents = "deny" # Bad for readability and it can also be a security vulnerability
  
  ### In case you need inspiration for new lints to add to the list, this is a good
  ### reference: <https://github.com/EmbarkStudios/rust-ecosystem/blob/6783ae1573d62f3f5439b8ff9e04bec191ec2eaf/lints.toml>.
  [workspace.lints.clippy]
  debug_assert_with_mut_call = "deny"
  inefficient_to_string = "deny"
  map_flatten = "deny"
  manual_ok_or = "deny"
  doc_link_with_quotes = "deny"
  match_same_arms = "deny"
  semicolon_if_nothing_returned = "deny"
  
  [profile.dev]
  panic = "unwind"
  
  [profile.release.build-override]
  opt-level = 3
  
  [patch.crates-io]
  merlin = { git = "https://github.com/aptos-labs/merlin" }
  x25519-dalek = { git = "https://github.com/aptos-labs/x25519-dalek", branch = "zeroize_v1" }
  