Skip to content

Commit 04a17b2

Browse files
author
Antoine Riard
committed
Cache funding_redeemscript in OnchainTxHandler
As transaction generation and signature is headed to be moved inside OnchainTxHandler, cache any usefule witness element.
1 parent f60519d commit 04a17b2

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

lightning/src/ln/channelmonitor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,7 +1098,7 @@ impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
10981098
onchain_detection: onchain_detection,
10991099
their_htlc_base_key: Some(their_htlc_base_key.clone()),
11001100
their_delayed_payment_base_key: Some(their_delayed_payment_base_key.clone()),
1101-
funding_redeemscript: Some(funding_redeemscript),
1101+
funding_redeemscript: Some(funding_redeemscript.clone()),
11021102
channel_value_satoshis: Some(channel_value_satoshis),
11031103
their_cur_revocation_points: None,
11041104

@@ -1121,7 +1121,7 @@ impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
11211121
onchain_events_waiting_threshold_conf: HashMap::new(),
11221122
outputs_to_watch: HashMap::new(),
11231123

1124-
onchain_tx_handler: OnchainTxHandler::new(destination_script.clone(), keys, logger.clone()),
1124+
onchain_tx_handler: OnchainTxHandler::new(destination_script.clone(), keys, funding_redeemscript, logger.clone()),
11251125

11261126
last_block_hash: Default::default(),
11271127
secp_ctx: Secp256k1::new(),

lightning/src/ln/onchaintx.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ macro_rules! subtract_high_prio_fee {
141141
/// do RBF bumping if possible.
142142
pub struct OnchainTxHandler<ChanSigner: ChannelKeys> {
143143
destination_script: Script,
144+
funding_redeemscript: Script,
144145

145146
key_storage: ChanSigner,
146147

@@ -180,6 +181,7 @@ pub struct OnchainTxHandler<ChanSigner: ChannelKeys> {
180181
impl<ChanSigner: ChannelKeys + Writeable> OnchainTxHandler<ChanSigner> {
181182
pub(crate) fn write<W: Writer>(&self, writer: &mut W) -> Result<(), ::std::io::Error> {
182183
self.destination_script.write(writer)?;
184+
self.funding_redeemscript.write(writer)?;
183185

184186
self.key_storage.write(writer)?;
185187

@@ -221,6 +223,7 @@ impl<ChanSigner: ChannelKeys + Writeable> OnchainTxHandler<ChanSigner> {
221223
impl<ChanSigner: ChannelKeys + Readable> ReadableArgs<Arc<Logger>> for OnchainTxHandler<ChanSigner> {
222224
fn read<R: ::std::io::Read>(reader: &mut R, logger: Arc<Logger>) -> Result<Self, DecodeError> {
223225
let destination_script = Readable::read(reader)?;
226+
let funding_redeemscript = Readable::read(reader)?;
224227

225228
let key_storage = Readable::read(reader)?;
226229

@@ -269,6 +272,7 @@ impl<ChanSigner: ChannelKeys + Readable> ReadableArgs<Arc<Logger>> for OnchainTx
269272

270273
Ok(OnchainTxHandler {
271274
destination_script,
275+
funding_redeemscript,
272276
key_storage,
273277
claimable_outpoints,
274278
pending_claim_requests,
@@ -280,12 +284,13 @@ impl<ChanSigner: ChannelKeys + Readable> ReadableArgs<Arc<Logger>> for OnchainTx
280284
}
281285

282286
impl<ChanSigner: ChannelKeys> OnchainTxHandler<ChanSigner> {
283-
pub(super) fn new(destination_script: Script, keys: ChanSigner, logger: Arc<Logger>) -> Self {
287+
pub(super) fn new(destination_script: Script, keys: ChanSigner, funding_redeemscript: Script, logger: Arc<Logger>) -> Self {
284288

285289
let key_storage = keys;
286290

287291
OnchainTxHandler {
288292
destination_script,
293+
funding_redeemscript,
289294
key_storage,
290295
pending_claim_requests: HashMap::new(),
291296
claimable_outpoints: HashMap::new(),

0 commit comments

Comments
 (0)