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.