Update deps, including significant dep reduction in rust-bitcoin!
[rust-lightning] / src / ln / channel.rs
index 054eed0d4c4dbb9a2d6badb30ad8b8b2b7901de4..acc8c4e913f33778bd0448acaa18032707b6ca4a 100644 (file)
@@ -7,8 +7,6 @@ use bitcoin::util::hash::{Sha256dHash, Hash160};
 use bitcoin::util::bip143;
 use bitcoin::network::serialize::BitcoinHash;
 
-use num::FromPrimitive;
-
 use secp256k1::key::{PublicKey,SecretKey};
 use secp256k1::{Secp256k1,Message,Signature};
 use secp256k1;
@@ -39,6 +37,7 @@ pub struct ChannelKeys {
        pub delayed_payment_base_key: SecretKey,
        pub htlc_base_key: SecretKey,
        pub channel_close_key: SecretKey,
+       pub channel_monitor_claim_key: SecretKey,
        pub commitment_seed: [u8; 32],
 }
 
@@ -68,6 +67,9 @@ impl ChannelKeys {
                hkdf_expand(sha, &prk, b"rust-lightning channel close key info", &mut okm);
                let channel_close_key = try!(SecretKey::from_slice(&secp_ctx, &okm));
 
+               hkdf_expand(sha, &prk, b"rust-lightning channel monitor claim key info", &mut okm);
+               let channel_monitor_claim_key = try!(SecretKey::from_slice(&secp_ctx, &okm));
+
                hkdf_expand(sha, &prk, b"rust-lightning local commitment seed info", &mut okm);
 
                Ok(ChannelKeys {
@@ -77,6 +79,7 @@ impl ChannelKeys {
                        delayed_payment_base_key: delayed_payment_base_key,
                        htlc_base_key: htlc_base_key,
                        channel_close_key: channel_close_key,
+                       channel_monitor_claim_key: channel_monitor_claim_key,
                        commitment_seed: okm
                })
        }
@@ -284,8 +287,8 @@ impl Channel {
                };
 
                let secp_ctx = Secp256k1::new();
-               let our_channel_close_key_hash = Hash160::from_data(&PublicKey::from_secret_key(&secp_ctx, &chan_keys.channel_close_key).unwrap().serialize());
-               let our_channel_monitor_claim_script = Builder::new().push_opcode(opcodes::All::OP_PUSHBYTES_0).push_slice(&our_channel_close_key_hash[..]).into_script();
+               let our_channel_monitor_claim_key_hash = Hash160::from_data(&PublicKey::from_secret_key(&secp_ctx, &chan_keys.channel_monitor_claim_key).unwrap().serialize());
+               let our_channel_monitor_claim_script = Builder::new().push_opcode(opcodes::All::OP_PUSHBYTES_0).push_slice(&our_channel_monitor_claim_key_hash[..]).into_script();
                let channel_monitor = ChannelMonitor::new(&chan_keys.revocation_base_key,
                                                          &PublicKey::from_secret_key(&secp_ctx, &chan_keys.delayed_payment_base_key).unwrap(),
                                                          &PublicKey::from_secret_key(&secp_ctx, &chan_keys.htlc_base_key).unwrap(),
@@ -397,8 +400,8 @@ impl Channel {
                };
 
                let secp_ctx = Secp256k1::new();
-               let our_channel_close_key_hash = Hash160::from_data(&PublicKey::from_secret_key(&secp_ctx, &chan_keys.channel_close_key).unwrap().serialize());
-               let our_channel_monitor_claim_script = Builder::new().push_opcode(opcodes::All::OP_PUSHBYTES_0).push_slice(&our_channel_close_key_hash[..]).into_script();
+               let our_channel_monitor_claim_key_hash = Hash160::from_data(&PublicKey::from_secret_key(&secp_ctx, &chan_keys.channel_monitor_claim_key).unwrap().serialize());
+               let our_channel_monitor_claim_script = Builder::new().push_opcode(opcodes::All::OP_PUSHBYTES_0).push_slice(&our_channel_monitor_claim_key_hash[..]).into_script();
                let mut channel_monitor = ChannelMonitor::new(&chan_keys.revocation_base_key,
                                                          &PublicKey::from_secret_key(&secp_ctx, &chan_keys.delayed_payment_base_key).unwrap(),
                                                          &PublicKey::from_secret_key(&secp_ctx, &chan_keys.htlc_base_key).unwrap(),