watchtower/wtclient/backup_task: correct txweight + update test vectors

This commit is contained in:
Conner Fromknecht 2019-02-06 18:19:58 -08:00
parent 9cd88a04b7
commit fe9f703b5b
No known key found for this signature in database
GPG Key ID: E7D737B67FA592C7
2 changed files with 14 additions and 8 deletions

@ -130,9 +130,6 @@ func (t *backupTask) bindSession(session *wtdb.SessionInfo,
// the watchtower is taking a reward. // the watchtower is taking a reward.
var weightEstimate input.TxWeightEstimator var weightEstimate input.TxWeightEstimator
// All justice transactions have a p2wkh output paying to the victim.
weightEstimate.AddP2WKHOutput()
// Next, add the contribution from the inputs that are present on this // Next, add the contribution from the inputs that are present on this
// breach transaction. // breach transaction.
if t.toLocalInput != nil { if t.toLocalInput != nil {
@ -142,6 +139,15 @@ func (t *backupTask) bindSession(session *wtdb.SessionInfo,
weightEstimate.AddWitnessInput(input.P2WKHWitnessSize) weightEstimate.AddWitnessInput(input.P2WKHWitnessSize)
} }
// All justice transactions have a p2wkh output paying to the victim.
weightEstimate.AddP2WKHOutput()
// If the justice transaction has a reward output, add the output's
// contribution to the weight estimate.
if session.Policy.BlobType.Has(blob.FlagReward) {
weightEstimate.AddP2WKHOutput()
}
// Now, compute the output values depending on whether FlagReward is set // Now, compute the output values depending on whether FlagReward is set
// in the current session's policy. // in the current session's policy.
outputs, err := session.Policy.ComputeJusticeTxOuts( outputs, err := session.Policy.ComputeJusticeTxOuts(
@ -152,8 +158,8 @@ func (t *backupTask) bindSession(session *wtdb.SessionInfo,
return err return err
} }
t.outputs = outputs
t.blobType = session.Policy.BlobType t.blobType = session.Policy.BlobType
t.outputs = outputs
return nil return nil
} }

@ -312,7 +312,7 @@ var backupTaskTests = []backupTaskTest{
blobTypeCommitReward, // blobType blobTypeCommitReward, // blobType
1000, // sweepFeeRate 1000, // sweepFeeRate
addrScript, // rewardScript addrScript, // rewardScript
296241, // expSweepAmt 296117, // expSweepAmt
3000, // expRewardAmt 3000, // expRewardAmt
nil, // bindErr nil, // bindErr
), ),
@ -324,7 +324,7 @@ var backupTaskTests = []backupTaskTest{
blobTypeCommitReward, // blobType blobTypeCommitReward, // blobType
1000, // sweepFeeRate 1000, // sweepFeeRate
addrScript, // rewardScript addrScript, // rewardScript
197514, // expSweepAmt 197390, // expSweepAmt
2000, // expRewardAmt 2000, // expRewardAmt
nil, // bindErr nil, // bindErr
), ),
@ -336,7 +336,7 @@ var backupTaskTests = []backupTaskTest{
blobTypeCommitReward, // blobType blobTypeCommitReward, // blobType
1000, // sweepFeeRate 1000, // sweepFeeRate
addrScript, // rewardScript addrScript, // rewardScript
98561, // expSweepAmt 98437, // expSweepAmt
1000, // expRewardAmt 1000, // expRewardAmt
nil, // bindErr nil, // bindErr
), ),
@ -346,7 +346,7 @@ var backupTaskTests = []backupTaskTest{
0, // toLocalAmt 0, // toLocalAmt
100000, // toRemoteAmt 100000, // toRemoteAmt
blobTypeCommitReward, // blobType blobTypeCommitReward, // blobType
225000, // sweepFeeRate 175000, // sweepFeeRate
addrScript, // rewardScript addrScript, // rewardScript
0, // expSweepAmt 0, // expSweepAmt
0, // expRewardAmt 0, // expRewardAmt