version = "0.0.1"
authors = ["Automatically generated"]
publish = false
+# Because the function is unused it gets dropped before we link lightning, so
+# we have to duplicate build.rs here. Note that this is only required for
+# fuzztarget mode.
[package.metadata]
cargo-fuzz = true
[features]
afl_fuzz = ["afl"]
honggfuzz_fuzz = ["honggfuzz"]
+libfuzzer_fuzz = ["libfuzzer-sys"]
+stdin_fuzz = []
[dependencies]
-lightning = { path = "..", features = ["fuzztarget"] }
-bitcoin = { git = "https://github.com/rust-bitcoin/rust-bitcoin", features = ["fuzztarget"] }
-secp256k1 = { version = "0.9", features = ["fuzztarget"] }
+afl = { version = "0.4", optional = true }
+lightning = { path = "../lightning", features = ["fuzztarget"] }
+bitcoin = { version = "0.26", features = ["fuzztarget", "secp-lowmemory"] }
+hex = "0.3"
honggfuzz = { version = "0.5", optional = true }
-afl = { version = "0.3", optional = true }
+libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git", optional = true }
+
+[patch.crates-io]
+# Rust-Secp256k1 PR 282. This patch should be dropped once that is merged.
+secp256k1 = { git = 'https://github.com/TheBlueMatt/rust-secp256k1', rev = 'c8615128097e0205dcf69e515e56fb57e5c97138' }
+# bitcoin_hashes PR 111 (without the top commit). This patch should be dropped once that is merged.
+bitcoin_hashes = { git = 'https://github.com/TheBlueMatt/bitcoin_hashes', rev = 'c90d26339a3e34fd2f942aa80298f410cc41b743' }
+
+[build-dependencies]
+cc = "1.0"
# Prevent this from interfering with workspaces
[workspace]
members = ["."]
-[[bin]]
-name = "peer_crypt_target"
-path = "fuzz_targets/peer_crypt_target.rs"
+[profile.release]
+lto = true
+codegen-units = 1
-[[bin]]
-name = "channel_target"
-path = "fuzz_targets/channel_target.rs"
+# When testing a large fuzz corpus, -O1 offers a nice speedup
+[profile.dev]
+opt-level = 1
-[[bin]]
-name = "full_stack_target"
-path = "fuzz_targets/full_stack_target.rs"
+[lib]
+name = "lightning_fuzz"
+path = "src/lib.rs"
+crate-type = ["rlib", "dylib", "staticlib"]