Skip to content

Commit cbae82b

Browse files
author
Yuko Roodt
committed
Fixed rebase issue 2
1 parent e368cb0 commit cbae82b

File tree

2 files changed

+62
-64
lines changed

2 files changed

+62
-64
lines changed

src/ln/channel.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use ln::chan_utils;
2323
use chain::chaininterface::{FeeEstimator,ConfirmationTarget};
2424
use chain::transaction::OutPoint;
2525
use chain::keysinterface::{ChannelKeys, KeysInterface};
26-
use util::transaction_utils;
26+
use util::{transaction_utils,rng};
2727
use util::ser::{Readable, ReadableArgs, Writeable, Writer, WriterWriteAdaptor};
2828
use util::logger::Logger;
2929
use util::errors::APIError;
@@ -410,7 +410,7 @@ impl Channel {
410410
}
411411

412412
// Constructors:
413-
pub fn new_outbound(fee_estimator: &FeeEstimator, keys_provider: &Arc<KeysInterface>, their_node_id: PublicKey,channel_id: [u8; 32], channel_value_satoshis: u64, push_msat: u64, user_id: u64, logger: Arc<Logger>, config: &UserConfig) -> Result<Channel, APIError> {
413+
pub fn new_outbound(fee_estimator: &FeeEstimator, keys_provider: &Arc<KeysInterface>, their_node_id: PublicKey, channel_value_satoshis: u64, push_msat: u64, user_id: u64, logger: Arc<Logger>, config: &UserConfig) -> Result<Channel, APIError> {
414414
let chan_keys = keys_provider.get_channel_keys(false);
415415

416416
if channel_value_satoshis >= MAX_FUNDING_SATOSHIS {
@@ -438,11 +438,11 @@ impl Channel {
438438
user_id: user_id,
439439
config: config.channel_options.clone(),
440440

441-
channel_id,
441+
channel_id: rng::rand_u832(),
442442
channel_state: ChannelState::OurInitSent as u32,
443443
channel_outbound: true,
444444
secp_ctx: secp_ctx,
445-
channel_value_satoshis,
445+
channel_value_satoshis: channel_value_satoshis,
446446

447447
local_keys: chan_keys,
448448
shutdown_pubkey: keys_provider.get_shutdown_pubkey(),
@@ -3920,7 +3920,6 @@ mod tests {
39203920
use util::config::UserConfig;
39213921
use util::test_utils;
39223922
use util::logger::Logger;
3923-
use util::rng;
39243923
use secp256k1::{Secp256k1,Message,Signature};
39253924
use secp256k1::key::{SecretKey,PublicKey};
39263925
use bitcoin_hashes::sha256::Hash as Sha256;
@@ -3988,7 +3987,7 @@ mod tests {
39883987
let their_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&secp_ctx, &[42; 32]).unwrap());
39893988
let mut config = UserConfig::new();
39903989
config.channel_options.announced_channel = false;
3991-
let mut chan = Channel::new_outbound(&feeest, &keys_provider, their_node_id,rng::rand_u832(), 10000000, 100000, 42, Arc::clone(&logger), &config).unwrap(); // Nothing uses their network key in this test
3990+
let mut chan = Channel::new_outbound(&feeest, &keys_provider, their_node_id, 10000000, 100000, 42, Arc::clone(&logger), &config).unwrap(); // Nothing uses their network key in this test
39923991
chan.their_to_self_delay = 144;
39933992
chan.our_dust_limit_satoshis = 546;
39943993

src/ln/channelmanager.rs

Lines changed: 57 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3021,61 +3021,60 @@ impl<'a, R : ::std::io::Read> ReadableArgs<R, ChannelManagerReadArgs<'a>> for (S
30213021

30223022
/*
30233023
#[test]
3024-
#[should_panic]
3025-
fn bolt2_open_channel_sending_node_checks1() { //This test needs to be on its own as we are catching a panic
3026-
let nodes = create_network(2);
3027-
3028-
// BOLT #2 spec: Sending node must ensure temporary_channel_id is unique from any other channel ID with the same peer.
3029-
// Note: currently a collision on a channel id will panic, not creating the channel with an error will be better as the system can still continue to function
3030-
let channel_value_satoshis=10000;
3031-
let push_msat=10001;
3032-
nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).unwrap();
3033-
let node0_to_1_send_open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
3034-
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &node0_to_1_send_open_channel).unwrap();
3035-
3036-
//Create a second channel with a channel_id collision
3037-
let channel_id=node0_to_1_send_open_channel.temporary_channel_id;
3038-
assert!(nodes[0].node.create_channel_with_id(nodes[0].node.get_our_node_id(),channel_id, channel_value_satoshis, push_msat, 42).is_err());
3039-
}
3040-
3041-
#[test]
3042-
fn bolt2_open_channel_sending_node_checks2() {
3043-
let nodes = create_network(2);
3044-
3045-
// BOLT #2 spec: Sending node must set funding_satoshis to less than 2^24 satoshis
3046-
let channel_value_satoshis=2^24;
3047-
let push_msat=10001;
3048-
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_err());
3049-
3050-
// BOLT #2 spec: Sending node must set push_msat to equal or less than 1000 * funding_satoshis
3051-
let channel_value_satoshis=10000;
3052-
// Test when push_msat is equal to 1000 * funding_satoshis.
3053-
let push_msat=1000*channel_value_satoshis+1;
3054-
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_err());
3055-
3056-
// BOLT #2 spec: Sending node must set set channel_reserve_satoshis greater than or equal to dust_limit_satoshis
3057-
let channel_value_satoshis=10000;
3058-
let push_msat=10001;
3059-
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_ok()); //Create a valid channel
3060-
let node0_to_1_send_open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
3061-
assert!(node0_to_1_send_open_channel.channel_reserve_satoshis>=node0_to_1_send_open_channel.dust_limit_satoshis);
3062-
3063-
// BOLT #2 spec: Sending node must set undefined bits in channel_flags to 0
3064-
// Only the least-significant bit of channel_flags is currently defined resulting in channel_flags only having one of two possible states 0 or 1
3065-
assert!(node0_to_1_send_open_channel.channel_flags<=1);
3066-
3067-
// BOLT #2 spec: Sending node must ensure the chain_hash value identifies the chain it wishes to open the channel within.
3068-
let chain_hash=genesis_block(Network::Testnet).header.bitcoin_hash();
3069-
assert_eq!(node0_to_1_send_open_channel.chain_hash,chain_hash);
3070-
3071-
// BOLT #2 spec: Sending node must set funding_pubkey, revocation_basepoint, htlc_basepoint, payment_basepoint, and delayed_payment_basepoint to valid DER-encoded, compressed, secp256k1 pubkeys.
3072-
let secp = Secp256k1::new();
3073-
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.funding_pubkey.serialize()).is_ok());
3074-
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.revocation_basepoint.serialize()).is_ok());
3075-
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.htlc_basepoint.serialize()).is_ok());
3076-
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.payment_basepoint.serialize()).is_ok());
3077-
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.delayed_payment_basepoint.serialize()).is_ok());
3078-
}
3079-
3080-
*/
3081-
3024+
#[should_panic]
3025+
fn bolt2_open_channel_sending_node_checks1() { //This test needs to be on its own as we are catching a panic
3026+
let nodes = create_network(2);
3027+
3028+
// BOLT #2 spec: Sending node must ensure temporary_channel_id is unique from any other channel ID with the same peer.
3029+
// Note: currently a collision on a channel id will panic, not creating the channel with an error will be better as the system can still continue to function
3030+
let channel_value_satoshis=10000;
3031+
let push_msat=10001;
3032+
nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).unwrap();
3033+
let node0_to_1_send_open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
3034+
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &node0_to_1_send_open_channel).unwrap();
3035+
3036+
//Create a second channel with a channel_id collision
3037+
let channel_id=node0_to_1_send_open_channel.temporary_channel_id;
3038+
assert!(nodes[0].node.create_channel_with_id(nodes[0].node.get_our_node_id(),channel_id, channel_value_satoshis, push_msat, 42).is_err());
3039+
}
3040+
3041+
#[test]
3042+
fn bolt2_open_channel_sending_node_checks2() {
3043+
let nodes = create_network(2);
3044+
3045+
// BOLT #2 spec: Sending node must set funding_satoshis to less than 2^24 satoshis
3046+
let channel_value_satoshis=2^24;
3047+
let push_msat=10001;
3048+
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_err());
3049+
3050+
// BOLT #2 spec: Sending node must set push_msat to equal or less than 1000 * funding_satoshis
3051+
let channel_value_satoshis=10000;
3052+
// Test when push_msat is equal to 1000 * funding_satoshis.
3053+
let push_msat=1000*channel_value_satoshis+1;
3054+
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_err());
3055+
3056+
// BOLT #2 spec: Sending node must set set channel_reserve_satoshis greater than or equal to dust_limit_satoshis
3057+
let channel_value_satoshis=10000;
3058+
let push_msat=10001;
3059+
assert!(nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), channel_value_satoshis, push_msat, 42).is_ok()); //Create a valid channel
3060+
let node0_to_1_send_open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
3061+
assert!(node0_to_1_send_open_channel.channel_reserve_satoshis>=node0_to_1_send_open_channel.dust_limit_satoshis);
3062+
3063+
// BOLT #2 spec: Sending node must set undefined bits in channel_flags to 0
3064+
// Only the least-significant bit of channel_flags is currently defined resulting in channel_flags only having one of two possible states 0 or 1
3065+
assert!(node0_to_1_send_open_channel.channel_flags<=1);
3066+
3067+
// BOLT #2 spec: Sending node must ensure the chain_hash value identifies the chain it wishes to open the channel within.
3068+
let chain_hash=genesis_block(Network::Testnet).header.bitcoin_hash();
3069+
assert_eq!(node0_to_1_send_open_channel.chain_hash,chain_hash);
3070+
3071+
// BOLT #2 spec: Sending node must set funding_pubkey, revocation_basepoint, htlc_basepoint, payment_basepoint, and delayed_payment_basepoint to valid DER-encoded, compressed, secp256k1 pubkeys.
3072+
let secp = Secp256k1::new();
3073+
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.funding_pubkey.serialize()).is_ok());
3074+
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.revocation_basepoint.serialize()).is_ok());
3075+
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.htlc_basepoint.serialize()).is_ok());
3076+
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.payment_basepoint.serialize()).is_ok());
3077+
assert!(PublicKey::from_slice(&secp, &node0_to_1_send_open_channel.delayed_payment_basepoint.serialize()).is_ok());
3078+
}
3079+
3080+
*/

0 commit comments

Comments
 (0)