mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +01:00
Use new get_commitment_transaction_number_obscure_factor utility function
This commit is contained in:
parent
2de29ae049
commit
9291a38c70
1 changed files with 7 additions and 28 deletions
|
@ -14,7 +14,7 @@ use bitcoin::blockdata::opcodes;
|
|||
use bitcoin::util::bip143;
|
||||
use bitcoin::consensus::encode;
|
||||
|
||||
use bitcoin::hashes::{Hash, HashEngine};
|
||||
use bitcoin::hashes::Hash;
|
||||
use bitcoin::hashes::sha256::Hash as Sha256;
|
||||
use bitcoin::hash_types::{Txid, BlockHash, WPubkeyHash};
|
||||
|
||||
|
@ -26,7 +26,7 @@ use ln::features::{ChannelFeatures, InitFeatures};
|
|||
use ln::msgs;
|
||||
use ln::msgs::{DecodeError, OptionalField, DataLossProtect};
|
||||
use ln::channelmanager::{PendingHTLCStatus, HTLCSource, HTLCFailReason, HTLCFailureMsg, PendingHTLCInfo, RAACommitmentOrder, PaymentPreimage, PaymentHash, BREAKDOWN_TIMEOUT, MAX_LOCAL_BREAKDOWN_TIMEOUT};
|
||||
use ln::chan_utils::{CounterpartyCommitmentSecrets, TxCreationKeys, HTLCOutputInCommitment, HTLC_SUCCESS_TX_WEIGHT, HTLC_TIMEOUT_TX_WEIGHT, make_funding_redeemscript, ChannelPublicKeys, CommitmentTransaction, HolderCommitmentTransaction, ChannelTransactionParameters, CounterpartyChannelTransactionParameters, MAX_HTLCS};
|
||||
use ln::chan_utils::{CounterpartyCommitmentSecrets, TxCreationKeys, HTLCOutputInCommitment, HTLC_SUCCESS_TX_WEIGHT, HTLC_TIMEOUT_TX_WEIGHT, make_funding_redeemscript, ChannelPublicKeys, CommitmentTransaction, HolderCommitmentTransaction, ChannelTransactionParameters, CounterpartyChannelTransactionParameters, MAX_HTLCS, get_commitment_transaction_number_obscure_factor};
|
||||
use ln::chan_utils;
|
||||
use chain::chaininterface::{FeeEstimator,ConfirmationTarget};
|
||||
use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, ChannelMonitorUpdateStep, HTLC_FAIL_BACK_BUFFER};
|
||||
|
@ -795,29 +795,6 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
|
|||
Ok(chan)
|
||||
}
|
||||
|
||||
// Utilities to build transactions:
|
||||
|
||||
fn get_commitment_transaction_number_obscure_factor(&self) -> u64 {
|
||||
let mut sha = Sha256::engine();
|
||||
|
||||
let counterparty_payment_point = &self.get_counterparty_pubkeys().payment_point.serialize();
|
||||
if self.is_outbound() {
|
||||
sha.input(&self.get_holder_pubkeys().payment_point.serialize());
|
||||
sha.input(counterparty_payment_point);
|
||||
} else {
|
||||
sha.input(counterparty_payment_point);
|
||||
sha.input(&self.get_holder_pubkeys().payment_point.serialize());
|
||||
}
|
||||
let res = Sha256::from_engine(sha).into_inner();
|
||||
|
||||
((res[26] as u64) << 5*8) |
|
||||
((res[27] as u64) << 4*8) |
|
||||
((res[28] as u64) << 3*8) |
|
||||
((res[29] as u64) << 2*8) |
|
||||
((res[30] as u64) << 1*8) |
|
||||
((res[31] as u64) << 0*8)
|
||||
}
|
||||
|
||||
/// Transaction nomenclature is somewhat confusing here as there are many different cases - a
|
||||
/// transaction is referred to as "a's transaction" implying that a will be able to broadcast
|
||||
/// the transaction. Thus, b will generally be sending a signature over such a transaction to
|
||||
|
@ -846,7 +823,7 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
|
|||
let mut local_htlc_total_msat = 0;
|
||||
let mut value_to_self_msat_offset = 0;
|
||||
|
||||
log_trace!(logger, "Building commitment transaction number {} (really {} xor {}) for {}, generated by {} with fee {}...", commitment_number, (INITIAL_COMMITMENT_NUMBER - commitment_number), self.get_commitment_transaction_number_obscure_factor(), if local { "us" } else { "remote" }, if generated_by_local { "us" } else { "remote" }, feerate_per_kw);
|
||||
log_trace!(logger, "Building commitment transaction number {} (really {} xor {}) for {}, generated by {} with fee {}...", commitment_number, (INITIAL_COMMITMENT_NUMBER - commitment_number), get_commitment_transaction_number_obscure_factor(&self.get_holder_pubkeys().payment_point, &self.get_counterparty_pubkeys().payment_point, self.is_outbound()), if local { "us" } else { "remote" }, if generated_by_local { "us" } else { "remote" }, feerate_per_kw);
|
||||
|
||||
macro_rules! get_htlc_in_commitment {
|
||||
($htlc: expr, $offered: expr) => {
|
||||
|
@ -1539,12 +1516,13 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
|
|||
|
||||
let funding_redeemscript = self.get_funding_redeemscript();
|
||||
let funding_txo_script = funding_redeemscript.to_v0_p2wsh();
|
||||
let obscure_factor = get_commitment_transaction_number_obscure_factor(&self.get_holder_pubkeys().payment_point, &self.get_counterparty_pubkeys().payment_point, self.is_outbound());
|
||||
let mut channel_monitor = ChannelMonitor::new(self.holder_keys.clone(),
|
||||
&self.shutdown_pubkey, self.get_holder_selected_contest_delay(),
|
||||
&self.destination_script, (funding_txo, funding_txo_script.clone()),
|
||||
&self.channel_transaction_parameters,
|
||||
funding_redeemscript.clone(), self.channel_value_satoshis,
|
||||
self.get_commitment_transaction_number_obscure_factor(),
|
||||
obscure_factor,
|
||||
holder_commitment_tx);
|
||||
|
||||
channel_monitor.provide_latest_counterparty_commitment_tx(counterparty_initial_commitment_txid, Vec::new(), self.cur_counterparty_commitment_transaction_number, self.counterparty_cur_commitment_point.unwrap(), logger);
|
||||
|
@ -1608,12 +1586,13 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
|
|||
let funding_redeemscript = self.get_funding_redeemscript();
|
||||
let funding_txo = self.get_funding_txo().unwrap();
|
||||
let funding_txo_script = funding_redeemscript.to_v0_p2wsh();
|
||||
let obscure_factor = get_commitment_transaction_number_obscure_factor(&self.get_holder_pubkeys().payment_point, &self.get_counterparty_pubkeys().payment_point, self.is_outbound());
|
||||
let mut channel_monitor = ChannelMonitor::new(self.holder_keys.clone(),
|
||||
&self.shutdown_pubkey, self.get_holder_selected_contest_delay(),
|
||||
&self.destination_script, (funding_txo, funding_txo_script),
|
||||
&self.channel_transaction_parameters,
|
||||
funding_redeemscript.clone(), self.channel_value_satoshis,
|
||||
self.get_commitment_transaction_number_obscure_factor(),
|
||||
obscure_factor,
|
||||
holder_commitment_tx);
|
||||
|
||||
channel_monitor.provide_latest_counterparty_commitment_tx(counterparty_initial_bitcoin_tx.txid, Vec::new(), self.cur_counterparty_commitment_transaction_number, self.counterparty_cur_commitment_point.unwrap(), logger);
|
||||
|
|
Loading…
Add table
Reference in a new issue