Starting work on HTLC commands
This commit is contained in:
13
README.md
13
README.md
@@ -72,14 +72,18 @@ Later, we will aim to remove the Side Watcher from the architecture, by (a) movi
|
|||||||
|
|
||||||
## Bitcoin integration
|
## Bitcoin integration
|
||||||
|
|
||||||
There is a Bitcoin client integrated into the node, which can do simple coin transfers using esplora and the Mutinynet server's Signet (30 second blocktime).
|
There is an Esplora Bitcoin client integrated into the node
|
||||||
|
|
||||||
|
### Simple coin transfers
|
||||||
|
|
||||||
|
The client can do simple coin transfers using esplora and the Mutinynet server's Signet (30 second blocktime).
|
||||||
|
|
||||||
The client's demo driver can be run by doing:
|
The client's demo driver can be run by doing:
|
||||||
|
|
||||||
```
|
```
|
||||||
cargo run -- init dave
|
cargo run -- init dave
|
||||||
cargo run -- init sammy
|
cargo run -- init sammy
|
||||||
cargo run -- btc
|
cargo run -- btc-transfer
|
||||||
```
|
```
|
||||||
|
|
||||||
You'll need to have funded the "dave" address prior to running the `btc` command - otherwise the transfer will fail gracefully.
|
You'll need to have funded the "dave" address prior to running the `btc` command - otherwise the transfer will fail gracefully.
|
||||||
@@ -88,6 +92,11 @@ I was using this primarily as a way to experiment with constructing and broadcas
|
|||||||
|
|
||||||
There is a second, unused Bitcoin client in place which uses Blockstream's Electrum server, but this didn't seem to be working properly with respect to Signet Bitcoin network during my testing, so I went with the esplora / Mutiny version instead.
|
There is a second, unused Bitcoin client in place which uses Blockstream's Electrum server, but this didn't seem to be working properly with respect to Signet Bitcoin network during my testing, so I went with the esplora / Mutiny version instead.
|
||||||
|
|
||||||
|
### HTLCs (in progress)
|
||||||
|
|
||||||
|
An experimental driver for Bitcoin Hash Time Locked Contracts (HTLCs).
|
||||||
|
|
||||||
|
|
||||||
## Possible uses
|
## Possible uses
|
||||||
|
|
||||||
### DKG
|
### DKG
|
||||||
|
|||||||
@@ -54,25 +54,6 @@ pub async fn run() -> Result<(), anyhow::Error> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// /// Create a BDK wallet using BIP 84 descriptor ("m/84h/1h/0h/0" and "m/84h/1h/0h/1")
|
|
||||||
// pub fn create_wallet(xkey: ExtendedKey) -> anyhow::Result<Wallet<MemoryDatabase>> {
|
|
||||||
// let xprv = xkey
|
|
||||||
// .into_xprv(Network::Testnet)
|
|
||||||
// .expect("couldn't turn xkey into xprv");
|
|
||||||
|
|
||||||
// let external_descriptor = Bip84(xprv, KeychainKind::External);
|
|
||||||
// let internal_descriptor = Some(Bip84(xprv, KeychainKind::Internal));
|
|
||||||
|
|
||||||
// let wallet = Wallet::new(
|
|
||||||
// external_descriptor,
|
|
||||||
// internal_descriptor,
|
|
||||||
// Network::Testnet,
|
|
||||||
// MemoryDatabase::default(),
|
|
||||||
// )?;
|
|
||||||
|
|
||||||
// Ok(wallet)
|
|
||||||
// }
|
|
||||||
|
|
||||||
fn display_balance(wallet: &Wallet<MemoryDatabase>) {
|
fn display_balance(wallet: &Wallet<MemoryDatabase>) {
|
||||||
println!(
|
println!(
|
||||||
"Wallet balance for {} after syncing: {:?} sats on network {}",
|
"Wallet balance for {} after syncing: {:?} sats on network {}",
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ pub(crate) struct Args {
|
|||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub(crate) enum Commands {
|
pub(crate) enum Commands {
|
||||||
/// Placeholder for future BTC commands
|
/// Placeholder for future BTC commands
|
||||||
Btc {},
|
BtcTransfer {},
|
||||||
|
|
||||||
/// runs the Side Node
|
/// runs the Side Node
|
||||||
Run { name: String },
|
Run { name: String },
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ pub async fn run() {
|
|||||||
let mut node = setup(name).await;
|
let mut node = setup(name).await;
|
||||||
node.start().await;
|
node.start().await;
|
||||||
}
|
}
|
||||||
Some(Commands::Btc {}) => {
|
Some(Commands::BtcTransfer {}) => {
|
||||||
let _ = bitcoin::driver::run().await;
|
let _ = bitcoin::driver::run().await;
|
||||||
}
|
}
|
||||||
None => println!("No command provided. Exiting. See --help for more information."),
|
None => println!("No command provided. Exiting. See --help for more information."),
|
||||||
|
|||||||
Reference in New Issue
Block a user