Skip to content

v2.0.0-rc.6

Pre-release
Pre-release

Choose a tag to compare

@bennyhodl bennyhodl released this 23 Sep 22:54
· 28 commits to master since this release
f3b2927

DLC DevKit v2.0.0-rc.6

This release candidate has one build fix for the ddk crate. It makes ddk compile again when you turn off the default manager feature (default-features = false). You use this setup for FFI and mobile builds that need only the stateless contract module and ContractKeyProvider. There are no API, wire-format, or on-disk changes.

All workspace crates are released at 2.0.0-rc.6: ddk, ddk-manager, ddk-dlc, ddk-messages, ddk-trie, ddk-payouts, ddk-node, and kormir.

Breaking Changes

None.

Security Fixes

None.

New Features

None.

Bug Fixes

  • ddk: gate the DlcDevKit re-export behind the manager feature (ab2505c)
    ddk/src/lib.rs re-exported ddk::DlcDevKit without a #[cfg(feature = "manager")] guard. Its neighbors, group_announcements and DlcManagerMessage, already had this guard. The ddk module that defines DlcDevKit compiles only with manager. Thus a build with default-features = false failed on an unresolved import. The re-export now has the same feature gate as the other manager-only items. Builds without manager compile again, and builds with manager do not change.

Other Notable Changes

  • The workspace dependencies stay pinned to the release version across all crates.

Upgrading

This is a drop-in upgrade from 2.0.0-rc.5:

  • Default features (manager on): No change. ddk::DlcDevKit is still exported from the crate root.
  • default-features = false: The crate now compiles. ddk::DlcDevKit is not available in this setup. This is intentional, because the type needs the full manager stack (tokio, zeromq, bdk_esplora, and more).
  • Wire and on-disk compatibility: No change. Existing contracts, keys, and stored data continue to work.

Installation

Add ddk to your Cargo.toml:

[dependencies]
ddk = "2.0.0-rc.6"

To enable optional transports, storage backends, or oracle clients:

[dependencies]
ddk = { version = "2.0.0-rc.6", features = ["nostr", "lightning", "sled", "postgres", "kormir", "p2pderivatives"] }

For FFI or mobile builds that need only the stateless contract module and ContractKeyProvider:

[dependencies]
ddk = { version = "2.0.0-rc.6", default-features = false }