Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ddk-node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repository = "https://github.com/bennyhodl/dlcdevkit"
edition = "2021"

[dependencies]
ddk = { version = "0.0.17", path = "../ddk", features = ["marketplace", "postgres", "kormir", "nostr"] }
ddk = { version = "0.0.17", path = "../ddk", features = ["postgres", "kormir", "nostr"] }
ddk-manager = { version = "0.7.5", path = "../ddk-manager", features = ["use-serde"] }
ddk-payouts = { version = "0.0.16", path = "../payouts" }

Expand Down
3 changes: 2 additions & 1 deletion ddk-node/src/command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ use ddk_manager::contract::contract_input::{ContractInput, ContractInputInfo, Or
use ddk_manager::contract::enum_descriptor::EnumDescriptor;
use ddk_manager::contract::offered_contract::OfferedContract;
use ddk_manager::contract::{Contract, ContractDescriptor};
use ddk_manager::Oracle;
use dlc::{EnumerationPayout, Payout};
use dlc_messages::oracle_msgs::{EventDescriptor, OracleAnnouncement};
use dlc_messages::{AcceptDlc, OfferDlc};
Expand Down Expand Up @@ -227,7 +228,7 @@ async fn generate_contract_input() -> anyhow::Result<ContractInput> {
.await?;

let oracle_input = OracleInput {
public_keys: vec![kormir.get_pubkey().await?],
public_keys: vec![kormir.get_public_key()],
event_id: announcement.oracle_event.event_id,
threshold: 1,
};
Expand Down
14 changes: 3 additions & 11 deletions ddk-node/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use ddk::storage::postgres::PostgresStore;
use ddk::transport::nostr::NostrDlc;
use ddk::util::ser::serialize_contract;
use ddk::DlcDevKit;
use ddk::{Oracle, Storage, Transport};
use ddk::{Oracle, Transport};
use ddk_manager::contract::contract_input::ContractInput;
use ddk_manager::Oracle as DlcOracle;
use ddk_manager::Storage as DlcStorage;
Expand Down Expand Up @@ -308,7 +308,7 @@ impl DdkRpc for DdkNode {
&self,
_request: Request<ListOraclesRequest>,
) -> Result<Response<ListOraclesResponse>, Status> {
let pubkey = self.node.oracle.get_pubkey().await.unwrap().to_string();
let pubkey = self.node.oracle.get_public_key().to_string();
let name = self.node.oracle.name();
Ok(Response::new(ListOraclesResponse { name, pubkey }))
}
Expand Down Expand Up @@ -362,15 +362,7 @@ impl DdkRpc for DdkNode {
&self,
_request: Request<OracleAnnouncementsRequest>,
) -> Result<Response<OracleAnnouncementsResponse>, Status> {
let announcements: Vec<Vec<u8>> = self
.node
.storage
.get_marketplace_announcements()
// TODO: fails if no announcements
.unwrap()
.iter()
.map(|ann| serde_json::to_vec(ann).unwrap())
.collect();
let announcements: Vec<Vec<u8>> = vec![];
Ok(Response::new(OracleAnnouncementsResponse { announcements }))
}

Expand Down
3 changes: 0 additions & 3 deletions ddk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ homepage = "https://dlcdevkit.com"
readme = "../README.md"

[features]
marketplace = ["dep:nostr-rs", "dep:nostr-sdk", "dep:base64"]

# transport features
nostr = ["dep:nostr-rs", "dep:nostr-sdk", "dep:base64"]
lightning = ["dep:lightning-net-tokio"]
Expand Down Expand Up @@ -40,7 +38,6 @@ bdk_esplora = { version = "0.20.1", features = ["blocking-https", "async-https",
# bdk_wallet = { version = "1.0.0-beta.5", features = ["bdk_file_store"] }
bdk_wallet = "1.0.0"
bdk_chain = "0.21.1"
anyhow = "1.0.75"
lightning = { version = "0.0.125", default-features = false, features = ["grind_signatures", "std"] }
serde = { version = "1.0.192", features = ["derive"] }
serde_json = "1.0.108"
Expand Down
9 changes: 5 additions & 4 deletions ddk/examples/lightning.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use anyhow::Result;
use bitcoin::key::rand::Fill;
use ddk::builder::Builder;
use ddk::oracle::kormir::KormirOracleClient;
Expand All @@ -10,13 +9,15 @@ use std::sync::Arc;
type ApplicationDdk = ddk::DlcDevKit<LightningTransport, SledStorage, KormirOracleClient>;

#[tokio::main]
async fn main() -> Result<()> {
async fn main() -> Result<(), ddk::error::Error> {
let transport = Arc::new(LightningTransport::new(&[0u8; 32], 1776)?);
let storage = Arc::new(SledStorage::new(current_dir()?.to_str().unwrap())?);
let storage = Arc::new(SledStorage::new(current_dir().unwrap().to_str().unwrap()).unwrap());
let oracle_client = Arc::new(KormirOracleClient::new("host", None).await?);

let mut seed_bytes = [0u8; 32];
seed_bytes.try_fill(&mut bitcoin::key::rand::thread_rng())?;
seed_bytes
.try_fill(&mut bitcoin::key::rand::thread_rng())
.unwrap();

let mut builder = Builder::new();
builder.set_seed_bytes(seed_bytes);
Expand Down
7 changes: 4 additions & 3 deletions ddk/examples/nostr.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use anyhow::Result;
use bitcoin::key::rand::Fill;
use bitcoin::Network;
use ddk::builder::Builder;
Expand All @@ -10,9 +9,11 @@ use std::sync::Arc;
type NostrDdk = ddk::DlcDevKit<NostrDlc, MemoryStorage, MemoryOracle>;

#[tokio::main]
async fn main() -> Result<()> {
async fn main() -> Result<(), ddk::error::Error> {
let mut seed_bytes = [0u8; 32];
seed_bytes.try_fill(&mut bitcoin::key::rand::thread_rng())?;
seed_bytes
.try_fill(&mut bitcoin::key::rand::thread_rng())
.unwrap();

let transport =
Arc::new(NostrDlc::new(&seed_bytes, "wss://nostr.dlcdevkit.com", Network::Regtest).await?);
Expand Down
7 changes: 4 additions & 3 deletions ddk/examples/postgres.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use anyhow::Result;
use bitcoin::key::rand::Fill;
use ddk::builder::Builder;
use ddk::oracle::kormir::KormirOracleClient;
Expand All @@ -9,7 +8,7 @@ use std::sync::Arc;
type ApplicationDdk = ddk::DlcDevKit<LightningTransport, PostgresStore, KormirOracleClient>;

#[tokio::main]
async fn main() -> Result<()> {
async fn main() -> Result<(), ddk::error::Error> {
let transport = Arc::new(LightningTransport::new(&[0u8; 32], 1776)?);
let storage = Arc::new(
PostgresStore::new(
Expand All @@ -23,7 +22,9 @@ async fn main() -> Result<()> {
Arc::new(KormirOracleClient::new("https://kormir.dlcdevkit.com", None).await?);

let mut seed_bytes = [0u8; 32];
seed_bytes.try_fill(&mut bitcoin::key::rand::thread_rng())?;
seed_bytes
.try_fill(&mut bitcoin::key::rand::thread_rng())
.unwrap();

let mut builder = Builder::new();
builder.set_seed_bytes(seed_bytes);
Expand Down
14 changes: 2 additions & 12 deletions ddk/src/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ use std::sync::{Arc, RwLock};

use crate::chain::EsploraClient;
use crate::ddk::{DlcDevKit, DlcManagerMessage};
use crate::error::{BuilderError, Error};
use crate::wallet::DlcDevKitWallet;
use crate::{Oracle, Storage, Transport};
use thiserror::Error;

const DEFAULT_ESPLORA_HOST: &str = "https://mutinynet.com/api";
const DEFAULT_NETWORK: Network = Network::Signet;
Expand All @@ -26,16 +26,6 @@ pub struct Builder<T, S, O> {
seed_bytes: [u8; 32],
}

/// An error that could be thrown while building [`crate::ddk::DlcDevKit`]
#[derive(Debug, Clone, Copy, Error)]
pub enum BuilderError {
#[error("A transport was not provided.")]
NoTransport,
#[error("A storage implementation was not provided.")]
NoStorage,
#[error("An oracle client was not provided.")]
NoOracle,
}
/// Defaults when creating a DDK application
/// Transport, storage, and oracle is set to none.
///
Expand Down Expand Up @@ -111,7 +101,7 @@ impl<T: Transport, S: Storage, O: Oracle> Builder<T, S, O> {
}

/// Builds the `DlcDevKit` instance. Fails if any components are missing.
pub async fn finish(&self) -> anyhow::Result<DlcDevKit<T, S, O>> {
pub async fn finish(&self) -> Result<DlcDevKit<T, S, O>, Error> {
tracing::info!(
network = self.network.to_string(),
esplora = self.esplora_host,
Expand Down
4 changes: 2 additions & 2 deletions ddk/src/chain/esplora.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::time::Duration;

use crate::error::esplora_err_to_manager_err;
use crate::error::{esplora_err_to_manager_err, Error};
use bdk_esplora::esplora_client::Error as EsploraError;
use bdk_esplora::esplora_client::{AsyncClient, BlockingClient, Builder};
use bitcoin::Network;
Expand All @@ -20,7 +20,7 @@ pub struct EsploraClient {
}

impl EsploraClient {
pub fn new(esplora_host: &str, network: Network) -> Result<EsploraClient, bdk_esplora::Error> {
pub fn new(esplora_host: &str, network: Network) -> Result<EsploraClient, Error> {
let builder = Builder::new(esplora_host).timeout(Duration::from_secs(5).as_secs());
let blocking_client = builder.clone().build_blocking();
let async_client = builder.build_async()?;
Expand Down
Loading
Loading