@@ -1141,10 +1141,14 @@ impl<'a, L: Deref> Logger for WithChannelMonitor<'a, L> where L::Target: Logger
1141
1141
1142
1142
impl < ' a , L : Deref > WithChannelMonitor < ' a , L > where L :: Target : Logger {
1143
1143
pub ( crate ) fn from < S : WriteableEcdsaChannelSigner > ( logger : & ' a L , monitor : & ChannelMonitor < S > ) -> Self {
1144
+ Self :: from_impl ( logger, & * monitor. inner . lock ( ) . unwrap ( ) )
1145
+ }
1146
+
1147
+ pub ( crate ) fn from_impl < S : WriteableEcdsaChannelSigner > ( logger : & ' a L , monitor_impl : & ChannelMonitorImpl < S > ) -> Self {
1148
+ let peer_id = monitor_impl. counterparty_node_id ;
1149
+ let channel_id = Some ( monitor_impl. funding_info . 0 . to_channel_id ( ) ) ;
1144
1150
WithChannelMonitor {
1145
- logger,
1146
- peer_id : monitor. get_counterparty_node_id ( ) ,
1147
- channel_id : Some ( monitor. get_funding_txo ( ) . 0 . to_channel_id ( ) ) ,
1151
+ logger, peer_id, channel_id,
1148
1152
}
1149
1153
}
1150
1154
}
@@ -1282,8 +1286,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1282
1286
)
1283
1287
where L :: Target : Logger
1284
1288
{
1285
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1286
- self . inner . lock ( ) . unwrap ( ) . provide_initial_counterparty_commitment_tx ( txid,
1289
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1290
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1291
+ inner. provide_initial_counterparty_commitment_tx ( txid,
1287
1292
htlc_outputs, commitment_number, their_cur_per_commitment_point, feerate_per_kw,
1288
1293
to_broadcaster_value_sat, to_countersignatory_value_sat, & logger) ;
1289
1294
}
@@ -1301,8 +1306,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1301
1306
their_per_commitment_point : PublicKey ,
1302
1307
logger : & L ,
1303
1308
) where L :: Target : Logger {
1304
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1305
- self . inner . lock ( ) . unwrap ( ) . provide_latest_counterparty_commitment_tx (
1309
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1310
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1311
+ inner. provide_latest_counterparty_commitment_tx (
1306
1312
txid, htlc_outputs, commitment_number, their_per_commitment_point, & logger)
1307
1313
}
1308
1314
@@ -1328,8 +1334,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1328
1334
F :: Target : FeeEstimator ,
1329
1335
L :: Target : Logger ,
1330
1336
{
1331
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1332
- self . inner . lock ( ) . unwrap ( ) . provide_payment_preimage (
1337
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1338
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1339
+ inner. provide_payment_preimage (
1333
1340
payment_hash, payment_preimage, broadcaster, fee_estimator, & logger)
1334
1341
}
1335
1342
@@ -1349,8 +1356,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1349
1356
F :: Target : FeeEstimator ,
1350
1357
L :: Target : Logger ,
1351
1358
{
1352
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1353
- self . inner . lock ( ) . unwrap ( ) . update_monitor ( updates, broadcaster, fee_estimator, & logger)
1359
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1360
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1361
+ inner. update_monitor ( updates, broadcaster, fee_estimator, & logger)
1354
1362
}
1355
1363
1356
1364
/// Gets the update_id from the latest ChannelMonitorUpdate which was applied to this
@@ -1529,8 +1537,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1529
1537
/// [`ChannelManager`]: crate::ln::channelmanager::ChannelManager
1530
1538
pub fn get_latest_holder_commitment_txn < L : Deref > ( & self , logger : & L ) -> Vec < Transaction >
1531
1539
where L :: Target : Logger {
1532
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1533
- self . inner . lock ( ) . unwrap ( ) . get_latest_holder_commitment_txn ( & logger)
1540
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1541
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1542
+ inner. get_latest_holder_commitment_txn ( & logger)
1534
1543
}
1535
1544
1536
1545
/// Unsafe test-only version of get_latest_holder_commitment_txn used by our test framework
@@ -1539,8 +1548,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1539
1548
#[ cfg( any( test, feature = "unsafe_revoked_tx_signing" ) ) ]
1540
1549
pub fn unsafe_get_latest_holder_commitment_txn < L : Deref > ( & self , logger : & L ) -> Vec < Transaction >
1541
1550
where L :: Target : Logger {
1542
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1543
- self . inner . lock ( ) . unwrap ( ) . unsafe_get_latest_holder_commitment_txn ( & logger)
1551
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1552
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1553
+ inner. unsafe_get_latest_holder_commitment_txn ( & logger)
1544
1554
}
1545
1555
1546
1556
/// Processes transactions in a newly connected block, which may result in any of the following:
@@ -1568,8 +1578,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1568
1578
F :: Target : FeeEstimator ,
1569
1579
L :: Target : Logger ,
1570
1580
{
1571
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1572
- self . inner . lock ( ) . unwrap ( ) . block_connected (
1581
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1582
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1583
+ inner. block_connected (
1573
1584
header, txdata, height, broadcaster, fee_estimator, & logger)
1574
1585
}
1575
1586
@@ -1587,8 +1598,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1587
1598
F :: Target : FeeEstimator ,
1588
1599
L :: Target : Logger ,
1589
1600
{
1590
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1591
- self . inner . lock ( ) . unwrap ( ) . block_disconnected (
1601
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1602
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1603
+ inner. block_disconnected (
1592
1604
header, height, broadcaster, fee_estimator, & logger)
1593
1605
}
1594
1606
@@ -1614,8 +1626,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1614
1626
L :: Target : Logger ,
1615
1627
{
1616
1628
let bounded_fee_estimator = LowerBoundedFeeEstimator :: new ( fee_estimator) ;
1617
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1618
- self . inner . lock ( ) . unwrap ( ) . transactions_confirmed (
1629
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1630
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1631
+ inner. transactions_confirmed (
1619
1632
header, txdata, height, broadcaster, & bounded_fee_estimator, & logger)
1620
1633
}
1621
1634
@@ -1637,8 +1650,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1637
1650
L :: Target : Logger ,
1638
1651
{
1639
1652
let bounded_fee_estimator = LowerBoundedFeeEstimator :: new ( fee_estimator) ;
1640
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1641
- self . inner . lock ( ) . unwrap ( ) . transaction_unconfirmed (
1653
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1654
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1655
+ inner. transaction_unconfirmed (
1642
1656
txid, broadcaster, & bounded_fee_estimator, & logger
1643
1657
) ;
1644
1658
}
@@ -1664,8 +1678,9 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1664
1678
L :: Target : Logger ,
1665
1679
{
1666
1680
let bounded_fee_estimator = LowerBoundedFeeEstimator :: new ( fee_estimator) ;
1667
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1668
- self . inner . lock ( ) . unwrap ( ) . best_block_updated (
1681
+ let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1682
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1683
+ inner. best_block_updated (
1669
1684
header, height, broadcaster, & bounded_fee_estimator, & logger
1670
1685
)
1671
1686
}
@@ -1703,8 +1718,8 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
1703
1718
L :: Target : Logger ,
1704
1719
{
1705
1720
let fee_estimator = LowerBoundedFeeEstimator :: new ( fee_estimator) ;
1706
- let logger = WithChannelMonitor :: from ( logger, self ) ;
1707
1721
let mut inner = self . inner . lock ( ) . unwrap ( ) ;
1722
+ let logger = WithChannelMonitor :: from_impl ( logger, & * inner) ;
1708
1723
let current_height = inner. best_block . height ;
1709
1724
inner. onchain_tx_handler . rebroadcast_pending_claims (
1710
1725
current_height, & broadcaster, & fee_estimator, & logger,
0 commit comments