content: [workspace.package]
  version = "0.10.9"
  edition = "2024"
  description = "Surfpool is the best place to train before surfing Solana."
  license = "Apache-2.0"
  readme = "README.md"
  repository = "https://github.com/txtx/surfpool"
  keywords = ["solana-programs", "web3", "solana", "blockchains"]
  categories = ["cryptography"]
  
  [workspace]
  members = [
      "crates/cli",
      "crates/core",
      "crates/db",
      "crates/gql",
      "crates/mcp",
      "crates/studio",
      "crates/subgraph",
      "crates/types",
  ]
  exclude = ["examples/hello-geyser"]
  default-members = ["crates/cli"]
  resolver = "2"
  
  [workspace.dependencies]
  actix-cors = "0.7.0"
  actix-web = { version = "4", default-features = false }
  agave-feature-set = { version = "2.3.7", default-features = false }
  agave-geyser-plugin-interface = { version = "2.3.8", default-features = false }
  agave-reserved-account-keys = { version = "2.3.7", default-features = false }
  anchor-lang-idl = "0.1.2"
  ansi_term = "0.12.1"
  anyhow = { version = "1.0.95", default-features = false }
  atty = "0.2.13"
  base58 = "0.2.0"
  base64 = { version = "0.22.1", default-features = false }
  bincode = "1.3.3"
  blake3 = { version = "1.8.2", default-features = false }
  borsh = { version = "1.5.5", default-features = false }
  bs58 = { version = "0.5.0", default-features = false }
  chrono = { version = "0.4.26", features = ["alloc"], default-features = false }
  clap = { version = "4.5.48", default-features = false }
  clap_complete = { version = "4.5.48", default-features = false }
  convert_case = "0.8.0"
  crossbeam = "0.8.4"
  crossbeam-channel = { version = "0.5.15", default-features = false }
  crossterm = { version = "0.28.1", default-features = false }
  ctrlc = "3.4.5"
  dialoguer = { version = "0.11.0", default-features = false }
  diesel = { version = "2.2.11", default-features = false }
  diesel-dynamic-schema = { version = "0.2.3", default-features = false }
  diesel_derives = { version = "2.2.6", default-features = false }
  dirs = "6.0.0"
  dotenvy = "0.15.7"
  fern = { version = "0.7.1", default-features = false }
  fork = "0.2.0"
  futures = { version = "0.3.22", default-features = false }
  hex = { version = "0.4.3", default-features = false }
  hiro-system-kit = { version = "0.3.4", default-features = false }
  include_dir = "0.7.4"
  indicatif = { version = "0.18.0", default-features = false }
  ipc-channel = "0.19.0"
  itertools = { version = "0.14.0", default-features = false }
  json5 = "0.4.1"
  jsonrpc-core = { version = "18.0.0", features = [
      "futures",
  ], default-features = false }
  jsonrpc-core-client = { version = "18.0.0", default-features = false }
  jsonrpc-derive = "18.0.0"
  jsonrpc-http-server = "18.0.0"
  jsonrpc-pubsub = "18.0.0"
  jsonrpc-ws-server = "18.0.0"
  juniper = { version = "0.16.2", default-features = false }
  juniper_actix = { version = "0.6.0", default-features = false }
  juniper_codegen = { version = "0.16.0", default-features = false }
  juniper_graphql_ws = { version = "0.4.0", default-features = false }
  lazy_static = "1.5.0"
  libloading = "0.7.4"
  litesvm = { git = "https://github.com/txtx/litesvm.git", branch = "fix/relax-deps", features = [
      "nodejs-internal",
  ] }
  log = "0.4.27"
  mime_guess = { version = "2.0.4", default-features = false }
  mustache = "0.9.0"
  notify = { version = "8.0.0", default-features = false }
  npm_rs = "1.0.0"
  once_cell = { version = "1.19.0", default-features = false }
  ratatui = { version = "0.29.0", features = [
      "crossterm",
  ], default-features = false }
  reqwest = { version = "0.12.23", default-features = false }
  rmcp = { git = "https://github.com/modelcontextprotocol/rust-sdk", rev = "ff71a526156e6c9409c450f71eccd6aced9bc339", package = "rmcp" }
  rust-embed = "8.2.0"
  serde = { version = "1.0.226", default-features = false }
  serde_derive = { version = "1.0.226", default-features = false } # must match the serde version, see https://github.com/serde-rs/serde/issues/2584#issuecomment-1685252251
  serde_json = { version = "1.0.135", default-features = false }
  serde_with = { version = "3.14.0", default-features = false }
  solana-account = { version = "2.2.1", default-features = false }
  solana-account-decoder = { version = "2.3.7", default-features = false }
  solana-account-decoder-client-types = { version = "2.3.7", default-features = false }
  solana-address-lookup-table-interface = { version = "2.2.2", default-features = false }
  solana-client = { version = "2.3.7", default-features = false }
  solana-clock = { version = "2.2.2", default-features = false }
  solana-commitment-config = { version = "2.2.1", default-features = false }
  solana-compute-budget-interface = { version = "2.2.1", default-features = false }
  solana-epoch-info = { version = "2.2.1", default-features = false }
  solana-epoch-schedule = { version = "2.2.1", default-features = false }
  solana-feature-gate-interface = { version = "2.2.1", default-features = false }
  solana-genesis-config = { version = "2.2.1", default-features = false }
  solana-geyser-plugin-manager = { version = "2.3.8", default-features = false }
  solana-hash = { version = "2.3.0", default-features = false }
  solana-inflation = { version = "2.2.1", default-features = false }
  solana-instruction = { version = "2.2.1", default-features = false }
  solana-keypair = { version = "^2.2", default-features = false }
  solana-loader-v3-interface = { version = "5.0.0", default-features = false }
  solana-message = { version = "2.3.0", default-features = false }
  solana-packet = { version = "2.2.1", default-features = false }
  solana-program-option = { version = "2.2.1", default-features = false }
  solana-program-pack = { version = "2.2.1", default-features = false }
  solana-pubkey = { version = "2.3.0", default-features = false }
  solana-rpc-client = { version = "2.3.8", default-features = false }
  solana-rpc-client-api = { version = "2.3.8", default-features = false }
  solana-runtime = { version = "2.3.8", default-features = false }
  solana-sdk-ids = { version = "2.2.1", default-features = false }
  solana-signature = { version = "2.3.0", default-features = false, features = ["rand"] }
  solana-signer = { version = "2.2.1", default-features = false }
  solana-slot-hashes = { version = "2.2.1", default-features = false }
  solana-system-interface = { version = "1.0.0", default-features = false }
  solana-sysvar = { version = "2.2.2", default-features = false }
  solana-transaction = { version = "2.2.2", default-features = false }
  solana-transaction-context = { version = "2.3.7", default-features = false }
  solana-transaction-error = { version = "2.2.1", default-features = false }
  solana-transaction-status = { version = "2.3.7", default-features = false }
  solana-version = { version = "2.3.7", default-features = false }
  spl-associated-token-account = { version = "7.0.0", default-features = false }
  spl-token = { version = "8.0.0", default-features = false }
  spl-token-2022 = { version = "8.0.1", default-features = false }
  test-case = "^3.3.1"
  tokio = { version = "1.43.0", default-features = false }
  tokio-tungstenite = { version = "=0.20.1", default-features = false }
  toml = { version = "0.8.23", default-features = false }
  tracing = { version = "0.1.41", default-features = false }
  url = { version = "1.7.2", default-features = false }
  uuid = "1.15.1"
  zip = { version = "0.6", features = ["deflate"], default-features = false }
  
  surfpool-core = { path = "crates/core", default-features = false }
  surfpool-db = { path = "crates/db" }
  surfpool-gql = { path = "crates/gql", default-features = false }
  surfpool-mcp = { path = "crates/mcp", default-features = false }
  surfpool-studio-ui = { path = "crates/studio", default-features = false }
  surfpool-subgraph = { path = "crates/subgraph", default-features = false }
  surfpool-types = { path = "crates/types", default-features = false }
  
  txtx-addon-kit = "0.4.10"
  txtx-addon-network-svm = { version = "0.3.10" }
  txtx-addon-network-svm-types = { version = "0.3.9" }
  txtx-cloud = { version = "0.1.13", features = [
      "clap",
      "toml",
  ], default-features = false }
  txtx-core = { version = "0.4.13" }
  txtx-gql = { version = "0.3.7" }
  txtx-supervisor-ui = { version = "0.2.9", default-features = false }
  
  [patch.crates-io]
  ## Local
  # txtx-addon-kit = { path = "../txtx/crates/txtx-addon-kit" }
  # txtx-core = { path = "../txtx/crates/txtx-core" }
  # txtx-addon-network-svm = { path = "../txtx/addons/svm/core" }
  # txtx-addon-network-svm-types = { path = "../txtx/addons/svm/types" }
  # txtx-gql = { path = "../txtx/crates/txtx-gql" }
  # txtx-supervisor-ui = { path = "../txtx/crates/txtx-supervisor-ui" }
  # txtx-cloud = { path = "../txtx/crates/txtx-cloud" }
  
  ## Git
  # txtx-addon-kit = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-core = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-addon-network-svm = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-addon-network-svm-types = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-gql = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-supervisor-ui = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  # txtx-cloud = { git = "https://github.com/txtx/txtx.git", branch = "main" }
  