[package] name = "btc-light-client-contract" description = "Bitcoin Light Client Contract" version = "0.5.1" 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.24.1", features = ["legacy"] } near-plugins = { git = "https://github.com/aurora-is-near/near-plugins", tag = "v0.4.1" } omni-utils = { git = "https://github.com/near-one/omni-utils", rev = "f9bc3ea4a72e97f02660b8f1c0b2f79a9fbde3a4" } 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" hex = "0.4.3" [dev-dependencies] near-sdk = { version = "5.24.1", 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" reqwest = { version = "0.12", features = ["json"] } base64 = "0.22" [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"]