@@ -79,6 +79,10 @@ pub(crate) mod fake_scid {
79
79
const MAX_NAMESPACES : u8 = 8 ; // We allocate 3 bits for the namespace identifier.
80
80
const NAMESPACE_ID_BITMASK : u8 = 0b111 ;
81
81
82
+ const BLOCKS_PER_MONTH : u32 = 144 /* blocks per day */ * 30 /* days per month */ ;
83
+ pub ( crate ) const MAX_SCID_BLOCKS_FROM_NOW : u32 = BLOCKS_PER_MONTH ;
84
+
85
+
82
86
/// Fake scids are divided into namespaces, with each namespace having its own identifier between
83
87
/// [0..7]. This allows us to identify what namespace a fake scid corresponds to upon HTLC
84
88
/// receipt, and handle the HTLC accordingly. The namespace identifier is encrypted when encoded
@@ -100,7 +104,6 @@ pub(crate) mod fake_scid {
100
104
// Ensure we haven't created a namespace that doesn't fit into the 3 bits we've allocated for
101
105
// namespaces.
102
106
assert ! ( ( * self as u8 ) < MAX_NAMESPACES ) ;
103
- const BLOCKS_PER_MONTH : u32 = 144 /* blocks per day */ * 30 /* days per month */ ;
104
107
let rand_bytes = keys_manager. get_secure_random_bytes ( ) ;
105
108
106
109
let segwit_activation_height = segwit_activation_height ( genesis_hash) ;
@@ -109,7 +112,7 @@ pub(crate) mod fake_scid {
109
112
// We want to ensure that this fake channel won't conflict with any transactions we haven't
110
113
// seen yet, in case `highest_seen_blockheight` is updated before we get full information
111
114
// about transactions confirmed in the given block.
112
- blocks_since_segwit_activation = blocks_since_segwit_activation. saturating_sub ( BLOCKS_PER_MONTH ) ;
115
+ blocks_since_segwit_activation = blocks_since_segwit_activation. saturating_sub ( MAX_SCID_BLOCKS_FROM_NOW ) ;
113
116
114
117
let rand_for_height = u32:: from_be_bytes ( rand_bytes[ ..4 ] . try_into ( ) . unwrap ( ) ) ;
115
118
let fake_scid_height = segwit_activation_height + rand_for_height % ( blocks_since_segwit_activation + 1 ) ;
0 commit comments