ddk

Crates.ioddk
lib.rsddk
version0.0.11
sourcesrc
created_at2024-06-07 13:40:00.413955
updated_at2024-09-03 22:54:02.100529
descriptionapplication tooling for DLCs 🌊
homepagehttps://dlcdevkit.com
repositoryhttps://github.com/bennyhodl/dlcdevkit
max_upload_size
id1264825
size257,314
benny b (bennyhodl)

documentation

https://docs.rs/crate/ddk

README

DLC Dev Kit

Crate Documentation Crates.io Total Downloads

:warning: dlcdevkit is alpha software and should not be used with real money. API is subject to change.

Application tooling to get started with DLCs build with rust-dlc and bdk.

Build DLC application by plugging in your own transport, storage, and oracle clients.

Get Started

$ cargo add ddk
use ddk::config::DdkConfig;
use ddk::builder::DdkBuilder;
use ddk::oracle::P2PDOracleClient;
use ddk::storage::SledStorageProvider;
use ddk::transport::lightning::LightningTransport;
use std::env::current_dir;
use std::sync::Arc;

type ApplicationDdk = ddk::DlcDevKit<LightningTransport, SledStorageProvider, P2PDOracleClient>;

fn main() -> Result<()> {
    let mut config = DdkConfig::default();
    config.storage_path = current_dir()?;

    let transport = Arc::new(LightningTransport::new(&config.seed_config, config.network)?);
    let storage = Arc::new(SledStorageProvider::new(
        config.storage_path.join("sled_db").to_str().expect("No storage."),
    )?);

    let oracle_client = Arc::new(P2PDOracleClient::new(ddk::ORACLE_HOST).expect("no oracle"));

    let mut builder = DdkBuilder::new();
    builder.set_config(config);
    builder.set_transport(transport.clone());
    builder.set_storage(storage.clone());
    builder.set_oracle(oracle_client.clone());

    let ddk: ApplicationDdk = builder.finish()?;

    let wallet = ddk.wallet.new_external_address();

    assert!(wallet.is_ok());

    ddk.start().expect("couldn't start ddk");
}

Crates

Ready-to-go clients for developing applications:

  • ddk - Contains DLC management w/ rust-dlc and the internal wallet w/ bdk.

Storage

  • filestore - flat file store for DLC contracts
  • sqlite - sqlite store for DLC contracts

Transport

Oracle Clients

Commit count: 105

cargo fmt