/rust-dlc

Rust library for working with Discreet Log Contracts

Primary LanguageRustMIT LicenseMIT

Rust-Dlc

A Rust library for working with Discreet Log Contracts.

A sample is provided as an example usage of this library.

Contributions are welcome. Check the contributing and development documents for more information.

Warning

This library is still in early stage and while test coverage is decent it has not been thoroughly tested in production yet. We thus recommend avoiding using it on main-net at the moment.

Status

The implementation is mainly based on the DLC specifications but is not yet fully compliant with it.

Organization

The library provides several crates to let users chose which functionality they want to utilize within their applications.

dlc

The dlc crate provides basic functionalities for creating, signing and verifying DLC transactions.

dlc-trie

The dlc-trie crate provides data structures for facilitating the storage and retrieval of information related to DLC based on numerical events.

dlc-manager

The dlc-manager crate provides functionalities for handling the creation and processing of DLC, as well as the generation of messages to be exchanged between two parties of a DLC.

dlc-messages

The dlc-messages crate provides data structures and serialization functionalities for messages to be exchanged between DLC peers.

bitcoin-rpc-provider

The bitcoin-rpc-provider crate implements interfaces required by the dlc-manager for interacting with the Bitcoin blockchain and proving wallet functionalities through the bitcoin-core RPC.

p2pd-oracle-client

The p2pd-oracle-client crate implements the oracle interface required by the dlc-manager to interact with an instance of the P2PDerivatives oracle.

sled-storage-provider

The sled-storage-provider crate implements the storage interface required by the dlc-manager to provide persistent storage of data.

Testing related crates

The bitcoin-test-utils, fuzz and mocks crates are used for testing purpose and are not intended to be used externally.