projects
/
ldk-sample
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a7a3f78
)
Check that the node we connect to matches the user-provided chain
author
Matt Corallo
<git@bluematt.me>
Tue, 4 May 2021 17:44:04 +0000
(17:44 +0000)
committer
Matt Corallo
<git@bluematt.me>
Tue, 4 May 2021 18:39:25 +0000
(18:39 +0000)
src/convert.rs
patch
|
blob
|
history
src/main.rs
patch
|
blob
|
history
diff --git
a/src/convert.rs
b/src/convert.rs
index 7dbd8cceb13caca3938a35077f205b1ff96aa386..a652980e3ddbd9a20e6cbf5e54092938a1ffb5ac 100644
(file)
--- a/
src/convert.rs
+++ b/
src/convert.rs
@@
-72,6
+72,7
@@
impl TryInto<FeeResponse> for JsonResponse {
pub struct BlockchainInfo {
pub latest_height: usize,
pub latest_blockhash: BlockHash,
pub struct BlockchainInfo {
pub latest_height: usize,
pub latest_blockhash: BlockHash,
+ pub chain: String,
}
impl TryInto<BlockchainInfo> for JsonResponse {
}
impl TryInto<BlockchainInfo> for JsonResponse {
@@
-81,6
+82,7
@@
impl TryInto<BlockchainInfo> for JsonResponse {
latest_height: self.0["blocks"].as_u64().unwrap() as usize,
latest_blockhash: BlockHash::from_hex(self.0["bestblockhash"].as_str().unwrap())
.unwrap(),
latest_height: self.0["blocks"].as_u64().unwrap() as usize,
latest_blockhash: BlockHash::from_hex(self.0["bestblockhash"].as_str().unwrap())
.unwrap(),
+ chain: self.0["chain"].as_str().unwrap().to_string(),
})
}
}
})
}
}
diff --git
a/src/main.rs
b/src/main.rs
index 21dfb284a81eeae3e9b1366a41e55fc4cd891378..7f4b5bf4a3b2e72b79983b26ca3124a6eaed95d5 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-290,6
+290,18
@@
async fn start_ldk() {
}
};
}
};
+ // Check that the bitcoind we've connected to is running the network we expect
+ let bitcoind_chain = bitcoind_client.get_blockchain_info().await.chain;
+ if bitcoind_chain != match args.network {
+ bitcoin::Network::Bitcoin => "main",
+ bitcoin::Network::Testnet => "test",
+ bitcoin::Network::Regtest => "regtest",
+ bitcoin::Network::Signet => "signet",
+ } {
+ println!("Chain argument ({}) didn't match bitcoind chain ({})", args.network, bitcoind_chain);
+ return;
+ }
+
// ## Setup
// Step 1: Initialize the FeeEstimator
// ## Setup
// Step 1: Initialize the FeeEstimator