lnwallet: export HTLC generating methods

This commit is contained in:
Johan T. Halseth 2020-11-17 12:50:41 +01:00
parent 3a3076397a
commit 2bc37db61a
No known key found for this signature in database
GPG Key ID: 15BAADA29DA20D26
2 changed files with 10 additions and 10 deletions

View File

@ -3022,7 +3022,7 @@ func genRemoteHtlcSigJobs(keyRing *CommitmentKeyRing,
Hash: txHash, Hash: txHash,
Index: uint32(htlc.remoteOutputIndex), Index: uint32(htlc.remoteOutputIndex),
} }
sigJob.Tx, err = createHtlcTimeoutTx( sigJob.Tx, err = CreateHtlcTimeoutTx(
chanType, op, outputAmt, htlc.Timeout, chanType, op, outputAmt, htlc.Timeout,
uint32(remoteChanCfg.CsvDelay), uint32(remoteChanCfg.CsvDelay),
keyRing.RevocationKey, keyRing.ToLocalKey, keyRing.RevocationKey, keyRing.ToLocalKey,
@ -3075,7 +3075,7 @@ func genRemoteHtlcSigJobs(keyRing *CommitmentKeyRing,
Hash: txHash, Hash: txHash,
Index: uint32(htlc.remoteOutputIndex), Index: uint32(htlc.remoteOutputIndex),
} }
sigJob.Tx, err = createHtlcSuccessTx( sigJob.Tx, err = CreateHtlcSuccessTx(
chanType, op, outputAmt, uint32(remoteChanCfg.CsvDelay), chanType, op, outputAmt, uint32(remoteChanCfg.CsvDelay),
keyRing.RevocationKey, keyRing.ToLocalKey, keyRing.RevocationKey, keyRing.ToLocalKey,
) )
@ -4119,7 +4119,7 @@ func genHtlcSigValidationJobs(localCommitmentView *commitment,
htlcFee := HtlcSuccessFee(chanType, feePerKw) htlcFee := HtlcSuccessFee(chanType, feePerKw)
outputAmt := htlc.Amount.ToSatoshis() - htlcFee outputAmt := htlc.Amount.ToSatoshis() - htlcFee
successTx, err := createHtlcSuccessTx( successTx, err := CreateHtlcSuccessTx(
chanType, op, outputAmt, chanType, op, outputAmt,
uint32(localChanCfg.CsvDelay), uint32(localChanCfg.CsvDelay),
keyRing.RevocationKey, keyRing.ToLocalKey, keyRing.RevocationKey, keyRing.ToLocalKey,
@ -4173,7 +4173,7 @@ func genHtlcSigValidationJobs(localCommitmentView *commitment,
htlcFee := HtlcTimeoutFee(chanType, feePerKw) htlcFee := HtlcTimeoutFee(chanType, feePerKw)
outputAmt := htlc.Amount.ToSatoshis() - htlcFee outputAmt := htlc.Amount.ToSatoshis() - htlcFee
timeoutTx, err := createHtlcTimeoutTx( timeoutTx, err := CreateHtlcTimeoutTx(
chanType, op, outputAmt, htlc.Timeout, chanType, op, outputAmt, htlc.Timeout,
uint32(localChanCfg.CsvDelay), uint32(localChanCfg.CsvDelay),
keyRing.RevocationKey, keyRing.ToLocalKey, keyRing.RevocationKey, keyRing.ToLocalKey,
@ -5689,7 +5689,7 @@ func newOutgoingHtlcResolution(signer input.Signer,
// With the fee calculated, re-construct the second level timeout // With the fee calculated, re-construct the second level timeout
// transaction. // transaction.
timeoutTx, err := createHtlcTimeoutTx( timeoutTx, err := CreateHtlcTimeoutTx(
chanType, op, secondLevelOutputAmt, htlc.RefundTimeout, chanType, op, secondLevelOutputAmt, htlc.RefundTimeout,
csvDelay, keyRing.RevocationKey, keyRing.ToLocalKey, csvDelay, keyRing.RevocationKey, keyRing.ToLocalKey,
) )
@ -5827,7 +5827,7 @@ func newIncomingHtlcResolution(signer input.Signer,
// taking into account the fee rate used. // taking into account the fee rate used.
htlcFee := HtlcSuccessFee(chanType, feePerKw) htlcFee := HtlcSuccessFee(chanType, feePerKw)
secondLevelOutputAmt := htlc.Amt.ToSatoshis() - htlcFee secondLevelOutputAmt := htlc.Amt.ToSatoshis() - htlcFee
successTx, err := createHtlcSuccessTx( successTx, err := CreateHtlcSuccessTx(
chanType, op, secondLevelOutputAmt, csvDelay, chanType, op, secondLevelOutputAmt, csvDelay,
keyRing.RevocationKey, keyRing.ToLocalKey, keyRing.RevocationKey, keyRing.ToLocalKey,
) )

View File

@ -35,7 +35,7 @@ var (
TimelockShift = uint32(1 << 29) TimelockShift = uint32(1 << 29)
) )
// createHtlcSuccessTx creates a transaction that spends the output on the // CreateHtlcSuccessTx creates a transaction that spends the output on the
// commitment transaction of the peer that receives an HTLC. This transaction // commitment transaction of the peer that receives an HTLC. This transaction
// essentially acts as an off-chain covenant as it's only permitted to spend // essentially acts as an off-chain covenant as it's only permitted to spend
// the designated HTLC output, and also that spend can _only_ be used as a // the designated HTLC output, and also that spend can _only_ be used as a
@ -45,7 +45,7 @@ var (
// In order to spend the HTLC output, the witness for the passed transaction // In order to spend the HTLC output, the witness for the passed transaction
// should be: // should be:
// * <0> <sender sig> <recvr sig> <preimage> // * <0> <sender sig> <recvr sig> <preimage>
func createHtlcSuccessTx(chanType channeldb.ChannelType, func CreateHtlcSuccessTx(chanType channeldb.ChannelType,
htlcOutput wire.OutPoint, htlcAmt btcutil.Amount, csvDelay uint32, htlcOutput wire.OutPoint, htlcAmt btcutil.Amount, csvDelay uint32,
revocationKey, delayKey *btcec.PublicKey) (*wire.MsgTx, error) { revocationKey, delayKey *btcec.PublicKey) (*wire.MsgTx, error) {
@ -85,7 +85,7 @@ func createHtlcSuccessTx(chanType channeldb.ChannelType,
return successTx, nil return successTx, nil
} }
// createHtlcTimeoutTx creates a transaction that spends the HTLC output on the // CreateHtlcTimeoutTx creates a transaction that spends the HTLC output on the
// commitment transaction of the peer that created an HTLC (the sender). This // commitment transaction of the peer that created an HTLC (the sender). This
// transaction essentially acts as an off-chain covenant as it spends a 2-of-2 // transaction essentially acts as an off-chain covenant as it spends a 2-of-2
// multi-sig output. This output requires a signature from both the sender and // multi-sig output. This output requires a signature from both the sender and
@ -101,7 +101,7 @@ func createHtlcSuccessTx(chanType channeldb.ChannelType,
// NOTE: The passed amount for the HTLC should take into account the required // NOTE: The passed amount for the HTLC should take into account the required
// fee rate at the time the HTLC was created. The fee should be able to // fee rate at the time the HTLC was created. The fee should be able to
// entirely pay for this (tiny: 1-in 1-out) transaction. // entirely pay for this (tiny: 1-in 1-out) transaction.
func createHtlcTimeoutTx(chanType channeldb.ChannelType, func CreateHtlcTimeoutTx(chanType channeldb.ChannelType,
htlcOutput wire.OutPoint, htlcAmt btcutil.Amount, htlcOutput wire.OutPoint, htlcAmt btcutil.Amount,
cltvExpiry, csvDelay uint32, cltvExpiry, csvDelay uint32,
revocationKey, delayKey *btcec.PublicKey) (*wire.MsgTx, error) { revocationKey, delayKey *btcec.PublicKey) (*wire.MsgTx, error) {