[advisories]
db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"]

vulnerability = "deny"
yanked = "deny"
notice = "warn"
unmaintained = "warn"

ignore = [
  "RUSTSEC-2020-0071", # https://github.com/chronotope/chrono/issues/602
  "RUSTSEC-2021-0139", # https://github.com/serai-dex/serai/228
  "RUSTSEC-2021-0145", # https://github.com/serai-dex/serai/225
  "RUSTSEC-2022-0061", # https://github.com/serai-dex/serai/227
]

[licenses]
unlicensed = "deny"

allow = [
  # Effective public domain
  "CC0-1.0",
  "Unlicense",

  # Attribution required
  "MIT",
  "MITNFA",
  "BSD-2-Clause",
  "BSD-3-Clause",
  "ISC",
  "Unicode-DFS-2016",
  "OpenSSL",

  # Non-invasive copyleft
  "MPL-2.0",
  "Apache-2.0",
  "Apache-2.0 WITH LLVM-exception",
  "GPL-3.0 WITH Classpath-exception-2.0",
]

copyleft = "deny"
allow-osi-fsf-free = "neither"
default = "deny"

exceptions = [
  { allow = ["AGPL-3.0"], name = "serai-env" },

  { allow = ["AGPL-3.0"], name = "ethereum-serai" },

  { allow = ["AGPL-3.0"], name = "serai-message-queue" },

  { allow = ["AGPL-3.0"], name = "serai-processor-messages" },
  { allow = ["AGPL-3.0"], name = "serai-processor" },

  { allow = ["AGPL-3.0"], name = "tributary-chain" },
  { allow = ["AGPL-3.0"], name = "serai-coordinator" },

  { allow = ["AGPL-3.0"], name = "serai-tokens-pallet" },

  { allow = ["AGPL-3.0"], name = "serai-in-instructions-pallet" },

  { allow = ["AGPL-3.0"], name = "serai-validator-sets-pallet" },

  { allow = ["AGPL-3.0"], name = "serai-runtime" },
  { allow = ["AGPL-3.0"], name = "serai-node" },

  { allow = ["AGPL-3.0"], name = "serai-client" },

  { allow = ["AGPL-3.0"], name = "serai-docker-tests" },
  { allow = ["AGPL-3.0"], name = "serai-message-queue-tests" },
  { allow = ["AGPL-3.0"], name = "serai-processor-tests" },
]

[[licenses.clarify]]
name = "ring"
version = "*"
expression = "MIT AND ISC AND OpenSSL"
license-files = [
  { path = "LICENSE", hash = 0xbd0eed23 }
]

[bans]
multiple-versions = "warn"
wildcards = "warn"
highlight = "all"

[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
allow-git = [
  "https://github.com/serai-dex/substrate-bip39",
  "https://github.com/serai-dex/substrate",
  "https://github.com/monero-rs/base58-monero",
]