5 个版本
0.0.9 | 2024 年 6 月 25 日 |
---|---|
0.0.8 | 2024 年 6 月 19 日 |
0.0.7 | 2024 年 6 月 7 日 |
0.0.6 | 2024 年 6 月 7 日 |
0.0.5 | 2024 年 6 月 7 日 |
#2 in #dlc
105KB
2K SLoC
DLC 开发工具包
⚠️
dlcdevkit
是 alpha 软件,不应与真实货币一起使用。API 可能会更改。
使用 DLCs 和 rust-dlc 以及 bdk 的应用程序工具。
通过连接自己的传输、存储和预言机客户端来构建 DLC 应用程序。
开始使用
$ cargo add ddk
use ddk::builder::DdkBuilder;
use ddk::{DdkOracle, DdkStorage, DdkTransport};
use std::sync::Arc;
#[derive(Clone)]
pub struct MockTransport;
#[async_trait]
impl DdkTransport for MockTransport {
async fn listen(&self) {
println!("Listening with MockTransport")
}
async fn handle_dlc_message(&self, _manager: &Arc<Mutex<DlcDevKitDlcManager>>) {
println!("Handling DLC messages with MockTransport")
}
}
#[derive(Clone)]
struct MockStorage;
impl DdkStorage for MockStorage {}
#[derive(Clone)]
struct MockOracle;
impl DdkOracle for MockOracle {
fn name(&self) -> String {
"mock-oracle".into()
}
}
impl dlc_manager::Oracle for MockOracle {
fn get_public_key(&self) -> bitcoin::key::XOnlyPublicKey {
todo!("Trait inherited from rust-dlc")
}
fn get_attestation(&self, _event_id: &str) -> Result<dlc_messages::oracle_msgs::OracleAttestation, dlc_manager::error::Error> {
todo!("Trait inherited from rust-dlc")
}
fn get_announcement(&self, _event_id: &str) -> Result<dlc_messages::oracle_msgs::OracleAnnouncement, dlc_manager::error::Error> {
todo!("Trait inherited from rust-dlc")
}
}
type ApplicationDdk = ddk::DlcDevKit<MockTransport, MockStorage, MockOracle>;
#[tokio::main]
async fn main() {
let transport = Arc::new(MockTransport {});
let storage = Arc::new(MockStorage {});
let oracle_client = Arc::new(MockOracle {});
let ddk: ApplicationDdk = DdkBuilder::new()
.set_name("ddk")
.set_esplora_url("https://mempool.space/api")
.set_network(bitcoin::Network::Regtest)
.set_transport(transport.clone())
.set_storage(storage.clone())
.set_oracle(oracle_client.clone())
.finish()
.await
.unwrap();
let wallet = ddk.wallet.new_external_address();
assert!(wallet.is_ok());
ddk.start().await
}
Crates
用于开发应用程序的现成客户端
存储
filestore
- crate 即将推出™️sqlite
- crate 即将推出™️
传输
tcp (lightning p2p)
- Tcp 监听器与 ldk peer managernostr
- NIP04 加密传输
预言机
P2PDerivatives
- crate 即将推出™️kormir
- crate 即将推出™️
依赖关系
~75MB
~1M SLoC