mirror of
https://github.com/romanz/electrs.git
synced 2024-11-19 01:43:29 +01:00
Bump 'bitcoin' dependency to 0.32.0
This commit is contained in:
parent
74b868c6e3
commit
d30d826870
96
Cargo.lock
generated
96
Cargo.lock
generated
@ -17,6 +17,12 @@ version = "1.0.80"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
|
checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "arrayvec"
|
||||||
|
version = "0.7.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ascii"
|
name = "ascii"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
@ -29,6 +35,16 @@ version = "1.1.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base58ck"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f"
|
||||||
|
dependencies = [
|
||||||
|
"bitcoin-internals",
|
||||||
|
"bitcoin_hashes",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "base64"
|
name = "base64"
|
||||||
version = "0.13.1"
|
version = "0.13.1"
|
||||||
@ -37,9 +53,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bech32"
|
name = "bech32"
|
||||||
version = "0.10.0-beta"
|
version = "0.11.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "98f7eed2b2781a6f0b5c903471d48e15f56fb4e1165df8a9a2337fd1a59d45ea"
|
checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bindgen"
|
name = "bindgen"
|
||||||
@ -63,12 +79,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoin"
|
name = "bitcoin"
|
||||||
version = "0.31.2"
|
version = "0.32.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae"
|
checksum = "7170e7750a20974246f17ece04311b4205a6155f1db564c5b224af817663c3ea"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"base58ck",
|
||||||
"bech32",
|
"bech32",
|
||||||
"bitcoin-internals",
|
"bitcoin-internals",
|
||||||
|
"bitcoin-io",
|
||||||
|
"bitcoin-units",
|
||||||
"bitcoin_hashes",
|
"bitcoin_hashes",
|
||||||
"hex-conservative",
|
"hex-conservative",
|
||||||
"hex_lit",
|
"hex_lit",
|
||||||
@ -78,13 +97,19 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoin-internals"
|
name = "bitcoin-internals"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb"
|
checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitcoin-io"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoin-test-data"
|
name = "bitcoin-test-data"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@ -92,21 +117,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "0c188654f9dce3bc6ce1bfa9c49777ad514bcad37e421b5f53e9d0ee10603f34"
|
checksum = "0c188654f9dce3bc6ce1bfa9c49777ad514bcad37e421b5f53e9d0ee10603f34"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoin_hashes"
|
name = "bitcoin-units"
|
||||||
version = "0.13.0"
|
version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b"
|
checksum = "cb54da0b28892f3c52203a7191534033e051b6f4b52bc15480681b57b7e036f5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitcoin-internals",
|
"bitcoin-internals",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitcoin_hashes"
|
||||||
|
version = "0.14.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16"
|
||||||
|
dependencies = [
|
||||||
|
"bitcoin-io",
|
||||||
"hex-conservative",
|
"hex-conservative",
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoin_slices"
|
name = "bitcoin_slices"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4b221249ba4685e0f737f0df2c7bb656d527fdd8ede83ac066c4c8ce95898f42"
|
checksum = "b8041a1be831c809ada090db2e3bd1469c65b72321bb2f31d7f56261eefc8321"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitcoin",
|
"bitcoin",
|
||||||
"bitcoin_hashes",
|
"bitcoin_hashes",
|
||||||
@ -115,9 +150,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoincore-rpc"
|
name = "bitcoincore-rpc"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8eb70725a621848c83b3809913d5314c0d20ca84877d99dd909504b564edab00"
|
checksum = "aedd23ae0fd321affb4bbbc36126c6f49a32818dc6b979395d24da8c9d4e80ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitcoincore-rpc-json",
|
"bitcoincore-rpc-json",
|
||||||
"jsonrpc",
|
"jsonrpc",
|
||||||
@ -128,9 +163,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitcoincore-rpc-json"
|
name = "bitcoincore-rpc-json"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "856ffbee2e492c23bca715d72ea34aae80d58400f2bda26a82015d6bc2ec3662"
|
checksum = "d8909583c5fab98508e80ef73e5592a651c954993dc6b7739963257d19f0e71a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitcoin",
|
"bitcoin",
|
||||||
"serde",
|
"serde",
|
||||||
@ -486,9 +521,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hex-conservative"
|
name = "hex-conservative"
|
||||||
version = "0.1.1"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2"
|
checksum = "e1aa273bf451e37ed35ced41c71a5e2a4e29064afb104158f2514bcd71c2c986"
|
||||||
|
dependencies = [
|
||||||
|
"arrayvec",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hex_lit"
|
name = "hex_lit"
|
||||||
@ -547,11 +585,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc"
|
name = "jsonrpc"
|
||||||
version = "0.14.1"
|
version = "0.18.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8128f36b47411cd3f044be8c1f5cc0c9e24d1d1bfdc45f0a57897b32513053f2"
|
checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
|
"minreq",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
]
|
]
|
||||||
@ -655,6 +694,17 @@ version = "0.2.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "minreq"
|
||||||
|
version = "2.11.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6fdef521c74c2884a4f3570bcdb6d2a77b3c533feb6b27ac2ae72673cc221c64"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nom"
|
name = "nom"
|
||||||
version = "7.1.3"
|
version = "7.1.3"
|
||||||
@ -912,9 +962,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "secp256k1"
|
name = "secp256k1"
|
||||||
version = "0.28.2"
|
version = "0.29.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10"
|
checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitcoin_hashes",
|
"bitcoin_hashes",
|
||||||
"rand",
|
"rand",
|
||||||
@ -924,9 +974,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "secp256k1-sys"
|
name = "secp256k1-sys"
|
||||||
version = "0.9.2"
|
version = "0.10.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb"
|
checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
]
|
]
|
||||||
|
@ -22,9 +22,9 @@ spec = "internal/config_specification.toml"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
bitcoin = { version = "0.31.2", features = ["serde", "rand-std"] }
|
bitcoin = { version = "0.32.0", features = ["serde", "rand-std"] }
|
||||||
bitcoin_slices = { version = "0.7", features = ["bitcoin", "sha2"] }
|
bitcoin_slices = { version = "0.8", features = ["bitcoin", "sha2"] }
|
||||||
bitcoincore-rpc = { version = "0.18" }
|
bitcoincore-rpc = { version = "0.19.0" }
|
||||||
configure_me = "0.4"
|
configure_me = "0.4"
|
||||||
crossbeam-channel = "0.5"
|
crossbeam-channel = "0.5"
|
||||||
dirs-next = "2.0"
|
dirs-next = "2.0"
|
||||||
|
@ -6,7 +6,7 @@ use bitcoincore_rpc::{json, jsonrpc, Auth, Client, RpcApi};
|
|||||||
use crossbeam_channel::Receiver;
|
use crossbeam_channel::Receiver;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, value::RawValue, Value};
|
||||||
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
@ -309,13 +309,13 @@ where
|
|||||||
T: Serialize,
|
T: Serialize,
|
||||||
{
|
{
|
||||||
debug!("calling {} on {} items", name, items.len());
|
debug!("calling {} on {} items", name, items.len());
|
||||||
let args: Vec<_> = items
|
let args: Vec<Box<RawValue>> = items
|
||||||
.iter()
|
.iter()
|
||||||
.map(|item| vec![serde_json::value::to_raw_value(item).unwrap()])
|
.map(|item| jsonrpc::try_arg([item]).context("failed to serialize into JSON"))
|
||||||
.collect();
|
.collect::<Result<Vec<_>>>()?;
|
||||||
let reqs: Vec<_> = args
|
let reqs: Vec<jsonrpc::Request> = args
|
||||||
.iter()
|
.iter()
|
||||||
.map(|arg| client.build_request(name, arg))
|
.map(|arg| client.build_request(name, Some(arg)))
|
||||||
.collect();
|
.collect();
|
||||||
match client.send_batch(&reqs) {
|
match client.send_batch(&reqs) {
|
||||||
Ok(values) => {
|
Ok(values) => {
|
||||||
|
@ -263,7 +263,7 @@ fn index_single_block(
|
|||||||
fn visit_tx_out(&mut self, _vout: usize, tx_out: &bsl::TxOut) -> ControlFlow<()> {
|
fn visit_tx_out(&mut self, _vout: usize, tx_out: &bsl::TxOut) -> ControlFlow<()> {
|
||||||
let script = bitcoin::Script::from_bytes(tx_out.script_pubkey());
|
let script = bitcoin::Script::from_bytes(tx_out.script_pubkey());
|
||||||
// skip indexing unspendable outputs
|
// skip indexing unspendable outputs
|
||||||
if !script.is_provably_unspendable() {
|
if !script.is_op_return() {
|
||||||
let row = ScriptHashRow::row(ScriptHash::new(script), self.height);
|
let row = ScriptHashRow::row(ScriptHash::new(script), self.height);
|
||||||
self.batch.funding_rows.push(row.to_db_row());
|
self.batch.funding_rows.push(row.to_db_row());
|
||||||
}
|
}
|
||||||
|
28
src/p2p.rs
28
src/p2p.rs
@ -7,6 +7,7 @@ use bitcoin::{
|
|||||||
Decodable,
|
Decodable,
|
||||||
},
|
},
|
||||||
hashes::Hash,
|
hashes::Hash,
|
||||||
|
io,
|
||||||
p2p::{
|
p2p::{
|
||||||
self, address,
|
self, address,
|
||||||
message::{self, CommandString, NetworkMessage},
|
message::{self, CommandString, NetworkMessage},
|
||||||
@ -19,9 +20,8 @@ use bitcoin::{
|
|||||||
use bitcoin_slices::{bsl, Parse};
|
use bitcoin_slices::{bsl, Parse};
|
||||||
use crossbeam_channel::{bounded, select, Receiver, Sender};
|
use crossbeam_channel::{bounded, select, Receiver, Sender};
|
||||||
|
|
||||||
use std::io::{self, ErrorKind, Write};
|
use std::io::Write;
|
||||||
use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream};
|
use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream};
|
||||||
use std::sync::Arc;
|
|
||||||
use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};
|
use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};
|
||||||
|
|
||||||
use crate::types::SerBlock;
|
use crate::types::SerBlock;
|
||||||
@ -141,10 +141,11 @@ impl Connection {
|
|||||||
metrics: &Metrics,
|
metrics: &Metrics,
|
||||||
magic: Magic,
|
magic: Magic,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
let conn = Arc::new(
|
let recv_conn = TcpStream::connect(address)
|
||||||
TcpStream::connect(address)
|
.with_context(|| format!("{} p2p failed to connect: {:?}", network, address))?;
|
||||||
.with_context(|| format!("{} p2p failed to connect: {:?}", network, address))?,
|
let mut send_conn = recv_conn
|
||||||
);
|
.try_clone()
|
||||||
|
.context("failed to clone connection")?;
|
||||||
|
|
||||||
let (tx_send, tx_recv) = bounded::<NetworkMessage>(1);
|
let (tx_send, tx_recv) = bounded::<NetworkMessage>(1);
|
||||||
let (rx_send, rx_recv) = bounded::<RawNetworkMessage>(1);
|
let (rx_send, rx_recv) = bounded::<RawNetworkMessage>(1);
|
||||||
@ -180,7 +181,6 @@ impl Connection {
|
|||||||
default_duration_buckets(),
|
default_duration_buckets(),
|
||||||
);
|
);
|
||||||
|
|
||||||
let stream = Arc::clone(&conn);
|
|
||||||
let mut buffer = vec![];
|
let mut buffer = vec![];
|
||||||
crate::thread::spawn("p2p_send", move || loop {
|
crate::thread::spawn("p2p_send", move || loop {
|
||||||
use std::net::Shutdown;
|
use std::net::Shutdown;
|
||||||
@ -190,7 +190,7 @@ impl Connection {
|
|||||||
// p2p_loop is closed, so tx_send is disconnected
|
// p2p_loop is closed, so tx_send is disconnected
|
||||||
debug!("closing p2p_send thread: no more messages to send");
|
debug!("closing p2p_send thread: no more messages to send");
|
||||||
// close the stream reader (p2p_recv thread may block on it)
|
// close the stream reader (p2p_recv thread may block on it)
|
||||||
if let Err(e) = stream.shutdown(Shutdown::Read) {
|
if let Err(e) = send_conn.shutdown(Shutdown::Read) {
|
||||||
warn!("failed to shutdown p2p connection: {}", e)
|
warn!("failed to shutdown p2p connection: {}", e)
|
||||||
}
|
}
|
||||||
return Ok(());
|
return Ok(());
|
||||||
@ -203,16 +203,16 @@ impl Connection {
|
|||||||
raw_msg
|
raw_msg
|
||||||
.consensus_encode(&mut buffer)
|
.consensus_encode(&mut buffer)
|
||||||
.expect("in-memory writers don't error");
|
.expect("in-memory writers don't error");
|
||||||
(&*stream)
|
send_conn
|
||||||
.write_all(buffer.as_slice())
|
.write_all(buffer.as_slice())
|
||||||
.context("p2p failed to send")
|
.context("p2p failed to send")
|
||||||
})?;
|
})?;
|
||||||
});
|
});
|
||||||
|
|
||||||
let stream = Arc::clone(&conn);
|
let mut stream_reader = std::io::BufReader::new(recv_conn);
|
||||||
crate::thread::spawn("p2p_recv", move || loop {
|
crate::thread::spawn("p2p_recv", move || loop {
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
let raw_msg = RawNetworkMessage::consensus_decode(&mut &*stream);
|
let raw_msg = RawNetworkMessage::consensus_decode(&mut stream_reader);
|
||||||
{
|
{
|
||||||
let duration = duration_to_seconds(start.elapsed());
|
let duration = duration_to_seconds(start.elapsed());
|
||||||
let label = format!(
|
let label = format!(
|
||||||
@ -232,7 +232,7 @@ impl Connection {
|
|||||||
}
|
}
|
||||||
raw_msg
|
raw_msg
|
||||||
}
|
}
|
||||||
Err(encode::Error::Io(e)) if e.kind() == ErrorKind::UnexpectedEof => {
|
Err(encode::Error::Io(e)) if e.kind() == io::ErrorKind::UnexpectedEof => {
|
||||||
debug!("closing p2p_recv thread: connection closed");
|
debug!("closing p2p_recv thread: connection closed");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -390,7 +390,9 @@ enum ParsedNetworkMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Decodable for RawNetworkMessage {
|
impl Decodable for RawNetworkMessage {
|
||||||
fn consensus_decode<D: io::Read + ?Sized>(d: &mut D) -> Result<Self, encode::Error> {
|
fn consensus_decode<D: bitcoin::io::BufRead + ?Sized>(
|
||||||
|
d: &mut D,
|
||||||
|
) -> Result<Self, encode::Error> {
|
||||||
let magic = Decodable::consensus_decode(d)?;
|
let magic = Decodable::consensus_decode(d)?;
|
||||||
let cmd = Decodable::consensus_decode(d)?;
|
let cmd = Decodable::consensus_decode(d)?;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ use bitcoin::blockdata::block::Header as BlockHeader;
|
|||||||
use bitcoin::{
|
use bitcoin::{
|
||||||
consensus::encode::{deserialize, Decodable, Encodable},
|
consensus::encode::{deserialize, Decodable, Encodable},
|
||||||
hashes::{hash_newtype, sha256, Hash},
|
hashes::{hash_newtype, sha256, Hash},
|
||||||
OutPoint, Script, Txid,
|
io, OutPoint, Script, Txid,
|
||||||
};
|
};
|
||||||
use bitcoin_slices::bsl;
|
use bitcoin_slices::bsl;
|
||||||
|
|
||||||
@ -16,10 +16,10 @@ macro_rules! impl_consensus_encoding {
|
|||||||
($thing:ident, $($field:ident),+) => (
|
($thing:ident, $($field:ident),+) => (
|
||||||
impl Encodable for $thing {
|
impl Encodable for $thing {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn consensus_encode<S: ::std::io::Write + ?Sized>(
|
fn consensus_encode<S: io::Write + ?Sized>(
|
||||||
&self,
|
&self,
|
||||||
s: &mut S,
|
s: &mut S,
|
||||||
) -> Result<usize, std::io::Error> {
|
) -> Result<usize, io::Error> {
|
||||||
let mut len = 0;
|
let mut len = 0;
|
||||||
$(len += self.$field.consensus_encode(s)?;)+
|
$(len += self.$field.consensus_encode(s)?;)+
|
||||||
Ok(len)
|
Ok(len)
|
||||||
@ -28,7 +28,7 @@ macro_rules! impl_consensus_encoding {
|
|||||||
|
|
||||||
impl Decodable for $thing {
|
impl Decodable for $thing {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn consensus_decode<D: ::std::io::Read + ?Sized>(
|
fn consensus_decode<D: io::BufRead + ?Sized>(
|
||||||
d: &mut D,
|
d: &mut D,
|
||||||
) -> Result<$thing, bitcoin::consensus::encode::Error> {
|
) -> Result<$thing, bitcoin::consensus::encode::Error> {
|
||||||
Ok($thing {
|
Ok($thing {
|
||||||
|
Loading…
Reference in New Issue
Block a user