diff --git a/CHANGELOG.md b/CHANGELOG.md index a9dd317ca..fd501d27d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## Unreleased + +### Changed + +- **Breaking:** the `bincode` feature and binary serialization dependencies now use + `grovedb-bincode` 2.1.0 and its derive macros from crates.io, sharing the same + serialization traits as Platform. Existing bincode encodings and C interfaces + are unchanged, but Rust consumers must use the fork for compatible `Encode`/`Decode` traits. + The dependency switch does not automatically opt types into `DecodeUntrusted`. + ## 0.44.0 - 2026-07-01 ### Added diff --git a/Cargo.toml b/Cargo.toml index 63049fbea..83db5f348 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,10 @@ members = ["dash", "dash-network", "hashes", "internals", "fuzz", "rpc-client", "rpc-json", "rpc-integration-test", "key-wallet", "key-wallet-manager", "key-wallet-ffi", "dash-spv", "dash-spv-ffi", "git-state", "dash-network-seeds", "masternode-seeds-fetcher", "dash-spv-bench"] resolver = "2" +[workspace.dependencies] +bincode = { package = "grovedb-bincode", version = "=2.1.0" } +bincode_derive = { package = "grovedb-bincode-derive", version = "=2.1.0" } + [workspace.package] version = "0.45.0" diff --git a/dash-network/Cargo.toml b/dash-network/Cargo.toml index e8c5fa407..9aeaea805 100644 --- a/dash-network/Cargo.toml +++ b/dash-network/Cargo.toml @@ -22,8 +22,8 @@ ffi = [] [dependencies] serde = { version = "1.0.219", default-features = false, features = ["derive"], optional = true } -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } [build-dependencies] cbindgen = "0.29" diff --git a/dash/Cargo.toml b/dash/Cargo.toml index b830df1ee..ddc36f343 100644 --- a/dash/Cargo.toml +++ b/dash/Cargo.toml @@ -54,8 +54,8 @@ bitcoinconsensus = { version = "0.20.2-0.5.0", default-features = false, optiona hex_lit = "0.1.1" anyhow = { version= "1.0" } hex = { version= "0.4" } -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } blsful = { git = "https://github.com/dashpay/agora-blsful", rev = "0c34a7a488a0bd1c9a9a2196e793b303ad35c900", optional = true } ed25519-dalek = { version = "2.1", features = ["rand_core"], optional = true } blake3 = "1.8.1" @@ -68,7 +68,7 @@ serde_json = "1.0.140" serde_test = "1.0.177" serde_derive = "1.0.219" secp256k1 = { features = [ "recovery", "rand", "hashes" ], version="0.30.0" } -bincode = { version = "2.0.1", features = ["serde"] } +bincode = { workspace = true, features = ["serde"] } assert_matches = "1.5.0" dashcore = { path = ".", features = ["core-block-hash-use-x11", "message_verification", "quorum_validation", "signer"] } criterion = "0.5" diff --git a/hashes/Cargo.toml b/hashes/Cargo.toml index 927b6fa1c..4be7636f5 100644 --- a/hashes/Cargo.toml +++ b/hashes/Cargo.toml @@ -31,7 +31,7 @@ serde = { version = "1.0.219", default-features = false, optional = true } actual-schemars = { package = "schemars", version = "1.0", optional = true } rs-x11-hash = { version = "0.1.8", optional = true } -bincode = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } [dev-dependencies] serde_test = "1.0" diff --git a/key-wallet-manager/Cargo.toml b/key-wallet-manager/Cargo.toml index f733fffe7..fdc1df3f9 100644 --- a/key-wallet-manager/Cargo.toml +++ b/key-wallet-manager/Cargo.toml @@ -36,7 +36,7 @@ tokio = { version = "1", features = ["macros", "rt", "sync"] } tracing = "0.1" zeroize = { version = "1.8", features = ["derive"] } rayon = { version = "1.11", optional = true } -bincode = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } serde = { version = "1.0", default-features = false, features = ["derive"], optional = true } [dev-dependencies] diff --git a/key-wallet/Cargo.toml b/key-wallet/Cargo.toml index ca4598a91..7342ef093 100644 --- a/key-wallet/Cargo.toml +++ b/key-wallet/Cargo.toml @@ -48,8 +48,8 @@ sha2 = { version = "0.10", default-features = false } bs58 = { version = "0.5", default-features = false, features = ["check", "alloc"], optional = true } rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true } # Serialization -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } base64 = { version = "0.22", optional = true } serde_json = { version = "1.0", optional = true } hex = { version = "0.4"} diff --git a/rpc-json/Cargo.toml b/rpc-json/Cargo.toml index ca35aa161..693da1b38 100644 --- a/rpc-json/Cargo.toml +++ b/rpc-json/Cargo.toml @@ -28,4 +28,4 @@ hex = { version="0.4", features=["serde"]} key-wallet = { path = "../key-wallet", default-features = false, features=["serde", "getrandom"] } dashcore = { path = "../dash", features=["secp-recovery", "rand-std", "signer", "serde"] } -bincode = { version = "2.0.1", features = ["serde"] } +bincode = { workspace = true, features = ["serde"] }