Skip to content

Commit 84f4303

Browse files
committed
refactor: Make serde dependency optional
Serde should be optional in case downstream crates don't need it.
1 parent 9b7609d commit 84f4303

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

Cargo.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ description = "Inline Bitcoin scripts"
1010
license = "MIT"
1111
repository = "https://github.com/BitVM/rust-bitcoin-script"
1212

13+
[features]
14+
serde = ["dep:serde", "bitcoin/serde"]
15+
1316
[dependencies]
14-
bitcoin = { version = "0.32.5", features = ["serde"] }
17+
bitcoin = { version = "0.32.5" }
1518
script-macro = { path = "./macro" }
1619
stdext = "0.3.3"
17-
serde = { version = "1", features = ["derive"] }
20+
serde = { version = "1", features = ["derive"], optional = true }
1821

1922
[dev-dependencies]
2023
bincode = "1.3.3"

src/builder.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ use bitcoin::blockdata::script::{Instruction, PushBytes, PushBytesBuf, ScriptBuf
33
use bitcoin::opcodes::{OP_0, OP_TRUE};
44
use bitcoin::script::write_scriptint;
55
use bitcoin::Witness;
6-
use serde::{Deserialize, Serialize};
76
use std::collections::HashMap;
87
use std::convert::TryFrom;
98
use std::hash::{DefaultHasher, Hash, Hasher};
109

11-
#[derive(Clone, Debug, Hash, Serialize, Deserialize, PartialEq)]
10+
#[cfg(feature = "serde")]
11+
use serde::{Deserialize, Serialize};
12+
13+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
14+
#[derive(Clone, Debug, Hash, PartialEq)]
1215
pub enum Block {
1316
Call(u64),
1417
Script(ScriptBuf),
@@ -21,7 +24,8 @@ impl Block {
2124
}
2225
}
2326

24-
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
27+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
28+
#[derive(Clone, Debug, PartialEq)]
2529
pub struct StructuredScript {
2630
size: usize,
2731
pub debug_identifier: String,

tests/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ fn test_push_witness() {
304304
);
305305
}
306306

307+
#[cfg(feature = "serde")]
307308
#[test]
308309
fn test_serialization() {
309310
let script = script! {

0 commit comments

Comments
 (0)