File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -478,6 +478,9 @@ pub(crate) const MIN_AFFORDABLE_HTLC_COUNT: usize = 4;
478478/// * `EXPIRE_PREV_CONFIG_TICKS` = convergence_delay / tick_interval
479479pub ( crate ) const EXPIRE_PREV_CONFIG_TICKS : usize = 5 ;
480480
481+ /// Number of blocks needed for an output from a coinbase transaction to be spendable.
482+ pub ( crate ) const COINBASE_MATURITY : u32 = 100 ;
483+
481484// TODO: We should refactor this to be an Inbound/OutboundChannel until initial setup handshaking
482485// has been completed, and then turn into a Channel to get compiler-time enforcement of things like
483486// calling channel_id() before we're set up or things like get_outbound_funding_signed on an
@@ -5373,7 +5376,15 @@ impl<Signer: WriteableEcdsaChannelSigner> Channel<Signer> {
53735376
53745377 self . channel_state = ChannelState :: FundingCreated as u32 ;
53755378 self . channel_id = funding_txo. to_channel_id ( ) ;
5376- self . funding_transaction = Some ( funding_transaction) ;
5379+ self . funding_transaction = Some ( funding_transaction. clone ( ) ) ;
5380+
5381+ // If the funding transaction is a coinbase transaction, we need to set the minimum depth to 100
5382+ // We can skip this if it is a zero-conf channel.
5383+ if funding_transaction. is_coin_base ( ) &&
5384+ self . minimum_depth . unwrap_or ( 0 ) > 0 &&
5385+ self . minimum_depth . unwrap_or ( 0 ) < COINBASE_MATURITY {
5386+ self . minimum_depth = Some ( COINBASE_MATURITY ) ;
5387+ }
53775388
53785389 Ok ( msgs:: FundingCreated {
53795390 temporary_channel_id,
You can’t perform that action at this time.
0 commit comments