Skip to content

Commit 2258d2b

Browse files
authored
Merge pull request #249 from stevenroose/bitcoin-0.15
Update to rust-bitcoin v0.15
2 parents 3c44d6b + 7ff7561 commit 2258d2b

File tree

8 files changed

+27
-35
lines changed

8 files changed

+27
-35
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ max_level_info = []
2323
max_level_debug = []
2424

2525
[dependencies]
26-
bitcoin = "0.14"
26+
bitcoin = "0.15"
2727
rust-crypto = "0.2"
2828
rand = "0.4"
2929
secp256k1 = "0.11"
@@ -32,7 +32,7 @@ secp256k1 = "0.11"
3232
cc = "1.0"
3333

3434
[dev-dependencies.bitcoin]
35-
version = "0.14"
35+
version = "0.15"
3636
features = ["bitcoinconsensus"]
3737

3838
[dev-dependencies]

fuzz/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ honggfuzz_fuzz = ["honggfuzz"]
1818
[dependencies]
1919
afl = { version = "0.4", optional = true }
2020
lightning = { path = "..", features = ["fuzztarget"] }
21-
bitcoin = { version = "0.14", features = ["fuzztarget"] }
21+
bitcoin = { version = "0.15", features = ["fuzztarget"] }
2222
hex = "0.3"
2323
honggfuzz = { version = "0.5", optional = true }
2424
rust-crypto = "0.2"

fuzz/fuzz_targets/full_stack_target.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ use bitcoin::blockdata::block::BlockHeader;
77
use bitcoin::blockdata::transaction::{Transaction, TxOut};
88
use bitcoin::blockdata::script::{Builder, Script};
99
use bitcoin::blockdata::opcodes;
10+
use bitcoin::consensus::encode::{deserialize, serialize};
1011
use bitcoin::network::constants::Network;
11-
use bitcoin::network::serialize::{deserialize, serialize, BitcoinHash};
12-
use bitcoin::util::hash::{Sha256dHash, Hash160};
12+
use bitcoin::util::hash::{BitcoinHash, Sha256dHash, Hash160};
1313

1414
use crypto::digest::Digest;
1515

@@ -168,7 +168,7 @@ impl<'a> MoneyLossDetector<'a> {
168168
let mut txn = Vec::with_capacity(all_txn.len());
169169
let mut txn_idxs = Vec::with_capacity(all_txn.len());
170170
for (idx, tx) in all_txn.iter().enumerate() {
171-
let txid = Sha256dHash::from_data(&serialize(tx).unwrap()[..]);
171+
let txid = tx.txid();
172172
match self.txids_confirmed.entry(txid) {
173173
hash_map::Entry::Vacant(e) => {
174174
e.insert(self.height);
@@ -432,7 +432,7 @@ pub fn do_test(data: &[u8], logger: &Arc<Logger>) {
432432
value: funding_generation.1, script_pubkey: funding_generation.2,
433433
}] };
434434
let funding_output = 'search_loop: loop {
435-
let funding_txid = Sha256dHash::from_data(&serialize(&tx).unwrap()[..]);
435+
let funding_txid = tx.txid();
436436
if let None = loss_detector.txids_confirmed.get(&funding_txid) {
437437
let outpoint = OutPoint::new(funding_txid, 0);
438438
for chan in channelmanager.list_channels() {

src/chain/chaininterface.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ use bitcoin::blockdata::block::{Block, BlockHeader};
88
use bitcoin::blockdata::transaction::Transaction;
99
use bitcoin::blockdata::script::Script;
1010
use bitcoin::blockdata::constants::genesis_block;
11-
use bitcoin::util::hash::Sha256dHash;
11+
use bitcoin::util::hash::{BitcoinHash, Sha256dHash};
1212
use bitcoin::network::constants::Network;
13-
use bitcoin::network::serialize::BitcoinHash;
1413

1514
use util::logger::Logger;
1615

src/chain/transaction.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ mod tests {
4444
use chain::transaction::OutPoint;
4545

4646
use bitcoin::blockdata::transaction::Transaction;
47-
use bitcoin::network::serialize;
47+
use bitcoin::consensus::encode;
4848

4949
use hex;
5050

5151
#[test]
5252
fn test_channel_id_calculation() {
53-
let tx: Transaction = serialize::deserialize(&hex::decode("020000000001010e0adef48412e4361325ac1c6e36411299ab09d4f083b9d8ddb55fbc06e1b0c00000000000feffffff0220a1070000000000220020f81d95e040bd0a493e38bae27bff52fe2bb58b93b293eb579c01c31b05c5af1dc072cfee54a3000016001434b1d6211af5551905dc2642d05f5b04d25a8fe80247304402207f570e3f0de50546aad25a872e3df059d277e776dda4269fa0d2cc8c2ee6ec9a022054e7fae5ca94d47534c86705857c24ceea3ad51c69dd6051c5850304880fc43a012103cb11a1bacc223d98d91f1946c6752e358a5eb1a1c983b3e6fb15378f453b76bd00000000").unwrap()[..]).unwrap();
53+
let tx: Transaction = encode::deserialize(&hex::decode("020000000001010e0adef48412e4361325ac1c6e36411299ab09d4f083b9d8ddb55fbc06e1b0c00000000000feffffff0220a1070000000000220020f81d95e040bd0a493e38bae27bff52fe2bb58b93b293eb579c01c31b05c5af1dc072cfee54a3000016001434b1d6211af5551905dc2642d05f5b04d25a8fe80247304402207f570e3f0de50546aad25a872e3df059d277e776dda4269fa0d2cc8c2ee6ec9a022054e7fae5ca94d47534c86705857c24ceea3ad51c69dd6051c5850304880fc43a012103cb11a1bacc223d98d91f1946c6752e358a5eb1a1c983b3e6fb15378f453b76bd00000000").unwrap()[..]).unwrap();
5454
assert_eq!(&OutPoint {
5555
txid: tx.txid(),
5656
index: 0

src/ln/channel.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ use bitcoin::blockdata::block::BlockHeader;
22
use bitcoin::blockdata::script::{Script,Builder};
33
use bitcoin::blockdata::transaction::{TxIn, TxOut, Transaction, SigHashType};
44
use bitcoin::blockdata::opcodes;
5-
use bitcoin::util::hash::{Sha256dHash, Hash160};
5+
use bitcoin::util::hash::{BitcoinHash, Sha256dHash, Hash160};
66
use bitcoin::util::bip143;
7-
use bitcoin::network;
8-
use bitcoin::network::serialize::{BitcoinHash, RawDecoder, RawEncoder};
9-
use bitcoin::network::encodable::{ConsensusEncodable, ConsensusDecodable};
7+
use bitcoin::consensus::encode::{self, Encodable, Decodable};
108

119
use secp256k1::key::{PublicKey,SecretKey};
1210
use secp256k1::{Secp256k1,Message,Signature};
@@ -3511,9 +3509,9 @@ impl Writeable for Channel {
35113509

35123510
(self.last_local_commitment_txn.len() as u64).write(writer)?;
35133511
for tx in self.last_local_commitment_txn.iter() {
3514-
if let Err(e) = tx.consensus_encode(&mut RawEncoder::new(WriterWriteAdaptor(writer))) {
3512+
if let Err(e) = tx.consensus_encode(&mut WriterWriteAdaptor(writer)) {
35153513
match e {
3516-
network::serialize::Error::Io(e) => return Err(e),
3514+
encode::Error::Io(e) => return Err(e),
35173515
_ => panic!("last_local_commitment_txn must have been well-formed!"),
35183516
}
35193517
}
@@ -3690,7 +3688,7 @@ impl<R : ::std::io::Read> ReadableArgs<R, Arc<Logger>> for Channel {
36903688
let last_local_commitment_txn_count: u64 = Readable::read(reader)?;
36913689
let mut last_local_commitment_txn = Vec::with_capacity(cmp::min(last_local_commitment_txn_count as usize, OUR_MAX_HTLCS as usize*2 + 1));
36923690
for _ in 0..last_local_commitment_txn_count {
3693-
last_local_commitment_txn.push(match Transaction::consensus_decode(&mut RawDecoder::new(reader.by_ref())) {
3691+
last_local_commitment_txn.push(match Transaction::consensus_decode(reader.by_ref()) {
36943692
Ok(tx) => tx,
36953693
Err(_) => return Err(DecodeError::InvalidValue),
36963694
});
@@ -3818,7 +3816,7 @@ impl<R : ::std::io::Read> ReadableArgs<R, Arc<Logger>> for Channel {
38183816
mod tests {
38193817
use bitcoin::util::hash::{Sha256dHash, Hash160};
38203818
use bitcoin::util::bip143;
3821-
use bitcoin::network::serialize::serialize;
3819+
use bitcoin::consensus::encode::serialize;
38223820
use bitcoin::blockdata::script::{Script, Builder};
38233821
use bitcoin::blockdata::transaction::Transaction;
38243822
use bitcoin::blockdata::opcodes;
@@ -3940,7 +3938,7 @@ mod tests {
39403938

39413939
chan.sign_commitment_transaction(&mut unsigned_tx.0, &their_signature);
39423940

3943-
assert_eq!(serialize(&unsigned_tx.0).unwrap()[..],
3941+
assert_eq!(serialize(&unsigned_tx.0)[..],
39443942
hex::decode($tx_hex).unwrap()[..]);
39453943
};
39463944
}
@@ -3973,7 +3971,7 @@ mod tests {
39733971
}
39743972

39753973
chan.sign_htlc_transaction(&mut htlc_tx, &remote_signature, &preimage, &htlc, &keys).unwrap();
3976-
assert_eq!(serialize(&htlc_tx).unwrap()[..],
3974+
assert_eq!(serialize(&htlc_tx)[..],
39773975
hex::decode($tx_hex).unwrap()[..]);
39783976
};
39793977
}

src/ln/channelmanager.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ use bitcoin::blockdata::block::BlockHeader;
1212
use bitcoin::blockdata::transaction::Transaction;
1313
use bitcoin::blockdata::constants::genesis_block;
1414
use bitcoin::network::constants::Network;
15-
use bitcoin::network::serialize::BitcoinHash;
16-
use bitcoin::util::hash::Sha256dHash;
15+
use bitcoin::util::hash::{BitcoinHash, Sha256dHash};
1716

1817
use secp256k1::key::{SecretKey,PublicKey};
1918
use secp256k1::{Secp256k1,Message};
@@ -3224,13 +3223,11 @@ mod tests {
32243223
use util::ser::{Writeable, Writer, ReadableArgs};
32253224
use util::config::UserConfig;
32263225

3227-
use bitcoin::util::hash::Sha256dHash;
3226+
use bitcoin::util::hash::{BitcoinHash, Sha256dHash};
32283227
use bitcoin::blockdata::block::{Block, BlockHeader};
32293228
use bitcoin::blockdata::transaction::{Transaction, TxOut};
32303229
use bitcoin::blockdata::constants::genesis_block;
32313230
use bitcoin::network::constants::Network;
3232-
use bitcoin::network::serialize::serialize;
3233-
use bitcoin::network::serialize::BitcoinHash;
32343231

32353232
use hex;
32363233

@@ -3520,7 +3517,7 @@ mod tests {
35203517
tx = Transaction { version: chan_id as u32, lock_time: 0, input: Vec::new(), output: vec![TxOut {
35213518
value: *channel_value_satoshis, script_pubkey: output_script.clone(),
35223519
}]};
3523-
funding_output = OutPoint::new(Sha256dHash::from_data(&serialize(&tx).unwrap()[..]), 0);
3520+
funding_output = OutPoint::new(tx.txid(), 0);
35243521

35253522
node_a.node.funding_transaction_generated(&temporary_channel_id, funding_output);
35263523
let mut added_monitors = node_a.chan_monitor.added_monitors.lock().unwrap();

src/ln/channelmonitor.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ use bitcoin::blockdata::block::BlockHeader;
1515
use bitcoin::blockdata::transaction::{TxIn,TxOut,SigHashType,Transaction};
1616
use bitcoin::blockdata::transaction::OutPoint as BitcoinOutPoint;
1717
use bitcoin::blockdata::script::Script;
18-
use bitcoin::network::serialize;
19-
use bitcoin::network::serialize::BitcoinHash;
20-
use bitcoin::network::encodable::{ConsensusDecodable, ConsensusEncodable};
21-
use bitcoin::util::hash::Sha256dHash;
18+
use bitcoin::consensus::encode::{self, Decodable, Encodable};
19+
use bitcoin::util::hash::{BitcoinHash,Sha256dHash};
2220
use bitcoin::util::bip143;
2321

2422
use crypto::digest::Digest;
@@ -731,9 +729,9 @@ impl ChannelMonitor {
731729

732730
macro_rules! serialize_local_tx {
733731
($local_tx: expr) => {
734-
if let Err(e) = $local_tx.tx.consensus_encode(&mut serialize::RawEncoder::new(WriterWriteAdaptor(writer))) {
732+
if let Err(e) = $local_tx.tx.consensus_encode(&mut WriterWriteAdaptor(writer)) {
735733
match e {
736-
serialize::Error::Io(e) => return Err(e),
734+
encode::Error::Io(e) => return Err(e),
737735
_ => panic!("local tx must have been well-formed!"),
738736
}
739737
}
@@ -1579,10 +1577,10 @@ impl<R: ::std::io::Read> ReadableArgs<R, Arc<Logger>> for (Sha256dHash, ChannelM
15791577
macro_rules! read_local_tx {
15801578
() => {
15811579
{
1582-
let tx = match Transaction::consensus_decode(&mut serialize::RawDecoder::new(reader.by_ref())) {
1580+
let tx = match Transaction::consensus_decode(reader.by_ref()) {
15831581
Ok(tx) => tx,
15841582
Err(e) => match e {
1585-
serialize::Error::Io(ioe) => return Err(DecodeError::Io(ioe)),
1583+
encode::Error::Io(ioe) => return Err(DecodeError::Io(ioe)),
15861584
_ => return Err(DecodeError::InvalidValue),
15871585
},
15881586
};

0 commit comments

Comments
 (0)