content: [package]
  name = "btc-light-client-contract"
  description = "Bitcoin Light Client Contract"
  version = "0.4.0"
  edition = "2021"
  repository = "https://github.com/Near-One/btc-light-client-contract"
  
  # fields to configure build with WASM reproducibility, according to specs
  # in https://github.com/near/NEPs/blob/master/neps/nep-0330.md
  [package.metadata.near.reproducible_build]
  # docker image, descriptor of build environment
  image = "sourcescan/cargo-near:0.16.0-rust-1.86.0"
  # tag after colon above serves only descriptive purpose; image is identified by digest
  image_digest = "sha256:3220302ebb7036c1942e772810f21edd9381edf9a339983da43487c77fbad488"
  # list of environment variables names, whose values, if set, will be used as external build parameters
  # in a reproducible manner
  # supported by `sourcescan/cargo-near:0.10.1-rust-1.82.0` image or later images
  passed_env = []
  # build command inside of docker container
  # if docker image from default gallery is used https://hub.docker.com/r/sourcescan/cargo-near/tags,
  # the command may be any combination of flags of `cargo-near`,
  # supported by respective version of binary inside the container besides `--no-locked` flag
  container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked"]
  
  [package.metadata.near.reproducible_build.variant.bitcoin]
  container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-default-features", "--features", "bitcoin"]
  
  [package.metadata.near.reproducible_build.variant.dogecoin]
  container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-default-features", "--features", "dogecoin"]
  
  [package.metadata.near.reproducible_build.variant.litecoin]
  container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-default-features", "--features", "litecoin"]
  
  [package.metadata.near.reproducible_build.variant.zcash]
  container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-default-features", "--features", "zcash"]
  
  [lib]
  crate-type = ["cdylib", "rlib"]
  doctest = false
  
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  [dependencies]
  near-sdk = { version = "5.14.0", features = ["legacy"] }
  near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" }
  borsh = "1.5.0"
  serde_json = "1"
  merkle-tools = { path = "../merkle-tools" }
  serde = { version = "1.0.200", features = ["derive"] }
  btc-types = { path = "../btc-types" }
  bitcoin = "0.32.5"
  equihash = { version = "0.2.2", optional = true }
  cfg-if = "1.0.0"
  
  [dev-dependencies]
  near-sdk = { version = "5.14.0", features = ["unit-testing"] }
  near-workspaces = { version = "0.20.1", features = ["unstable"] }
  tokio = { version = "1.12.0", features = ["full"] }
  serde_json = "1"
  more-asserts = "0.3.1"
  
  [profile.release]
  codegen-units = 1
  # Tell `rustc` to optimize for small code size.
  opt-level = "z"
  lto = true
  debug = false
  panic = "abort"
  # Opt into extra safety checks on arithmetic operations https://stackoverflow.com/a/64136471/249801
  overflow-checks = true
  
  [profile.bitcoin]
  inherits = "release"
  
  [profile.litecoin]
  inherits = "release"
  
  [profile.zcash]
  inherits = "release"
  
  [profile.dogecoin]
  inherits = "release"
  
  [features]
  default = ["bitcoin"]
  dogecoin = ["btc-types/scrypt_hash", "btc-types/dogecoin_header"]
  bitcoin = []
  litecoin = ["btc-types/scrypt_hash"]
  zcash = ["btc-types/zcash_header", "equihash"]
  