2 releases
0.0.11 | Sep 3, 2024 |
---|---|
0.0.10 | Sep 2, 2024 |
#930 in Magic Beans
285 downloads per month
Used in ddk-node
7KB
126 lines
DLC Dev Kit
⚠️
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::builder::DdkBuilder;
use ddk::storage::SledStorageProvider;
use ddk::transport::lightning::LightningTransport;
use ddk::oracle::P2PDOracleClient;
use ddk::Network;
use std::sync::Arc;
type ApplicationDdk = ddk::DlcDevKit<LightningTransport, SledStorageProvider, P2PDOracleClient>;
fn main() -> Result<(), Error> {
let transport = Arc::new(LightningTransport::new("lightning-transport", Network::Regtest));
let storage = Arc::new(SledStorageProvider::new("<storage path>")?);
let oracle_client = Arc::new(P2PDOracleClient::new("<oracle host>")?);
let ddk: ApplicationDdk = DdkBuilder::new()
.set_name("dlcdevkit")
.set_esplora_url(ddk::ESPLORA_HOST)
.set_network(bitcoin::Network::Regtest)
.set_transport(transport.clone())
.set_storage(storage.clone())
.set_oracle(oracle_client.clone())
.finish()
.expect("could not build ddk");
let wallet = ddk.wallet.new_external_address();
assert!(wallet.is_ok());
ddk.start().expect("ddk did not start");
}
Crates
Ready-to-go clients for developing applications:
Storage
filestore
- file storage for DLC contractssqlite
- coming soon...
Transport
tcp (lightning p2p)
- Tcp listener with the ldk peer managernostr
- NIP04 encrypted transport
Oracle Clients
Examples
bella
- Example client built withtauri
to testdlcdevkit
payouts
- example payout curves for DLC applications
Development
Running the example client bella
requires running a bitcoin node, esplora server, & oracle. Dependencies can be started with the docker-compose.yaml
file.
git clone git@github.com:bennyhodl/dlcdevkit.git
cd dlcdevkit
docker-compose up -d --build
# Alias for interacting w/ bitcoin node
source alias
bc -generate
cd bella && pnpm install && pnpm tauri dev
Dependencies
~26MB
~338K SLoC