@@ -15,10 +15,10 @@ import (
1515	"github.com/btcsuite/btcd/chaincfg" 
1616	"github.com/btcsuite/btcd/wire" 
1717	"github.com/btcsuite/btcutil/psbt" 
18+ 	"github.com/btcsuite/btcwallet/wallet/txrules" 
1819	"github.com/guggero/chantools/lnd" 
1920	"github.com/lightningnetwork/lnd/input" 
2021	"github.com/lightningnetwork/lnd/keychain" 
21- 	"github.com/lightningnetwork/lnd/lnwallet" 
2222	"github.com/lightningnetwork/lnd/lnwallet/chainfee" 
2323	"github.com/spf13/cobra" 
2424)
@@ -330,11 +330,31 @@ channelLoop:
330330		return  fmt .Errorf ("error distributing fees, unhandled case" )
331331	}
332332
333+ 	// Our output. 
334+ 	pkScript , err  :=  lnd .GetP2WPKHScript (ourPayoutAddr , chainParams )
335+ 	if  err  !=  nil  {
336+ 		return  fmt .Errorf ("error parsing our payout address: %v" , err )
337+ 	}
338+ 	ourTxOut  :=  & wire.TxOut {
339+ 		PkScript : pkScript ,
340+ 		Value :    ourSum ,
341+ 	}
342+ 
343+ 	// Their output 
344+ 	pkScript , err  =  lnd .GetP2WPKHScript (theirPayoutAddr , chainParams )
345+ 	if  err  !=  nil  {
346+ 		return  fmt .Errorf ("error parsing their payout address: %v" , err )
347+ 	}
348+ 	theirTxOut  :=  & wire.TxOut {
349+ 		PkScript : pkScript ,
350+ 		Value :    theirSum ,
351+ 	}
352+ 
333353	// Don't create dust. 
334- 	if  ourSum   <=   int64 ( lnwallet . DefaultDustLimit () ) {
354+ 	if  txrules . IsDustOutput ( ourTxOut ,  txrules . DefaultRelayFeePerKb ) {
335355		ourSum  =  0 
336356	}
337- 	if  theirSum   <=   int64 ( lnwallet . DefaultDustLimit () ) {
357+ 	if  txrules . IsDustOutput ( theirTxOut ,  txrules . DefaultRelayFeePerKb ) {
338358		theirSum  =  0 
339359	}
340360
@@ -346,28 +366,10 @@ channelLoop:
346366	// And now create the PSBT. 
347367	tx  :=  wire .NewMsgTx (2 )
348368	if  ourSum  >  0  {
349- 		pkScript , err  :=  lnd .GetP2WPKHScript (ourPayoutAddr , chainParams )
350- 		if  err  !=  nil  {
351- 			return  fmt .Errorf ("error parsing our payout address: " + 
352- 				"%v" , err )
353- 		}
354- 		tx .TxOut  =  append (tx .TxOut , & wire.TxOut {
355- 			PkScript : pkScript ,
356- 			Value :    ourSum ,
357- 		})
369+ 		tx .TxOut  =  append (tx .TxOut , ourTxOut )
358370	}
359371	if  theirSum  >  0  {
360- 		pkScript , err  :=  lnd .GetP2WPKHScript (
361- 			theirPayoutAddr , chainParams ,
362- 		)
363- 		if  err  !=  nil  {
364- 			return  fmt .Errorf ("error parsing their payout " + 
365- 				"address: %v" , err )
366- 		}
367- 		tx .TxOut  =  append (tx .TxOut , & wire.TxOut {
368- 			PkScript : pkScript ,
369- 			Value :    theirSum ,
370- 		})
372+ 		tx .TxOut  =  append (tx .TxOut , theirTxOut )
371373	}
372374	for  _ , txIn  :=  range  inputs  {
373375		tx .TxIn  =  append (tx .TxIn , & wire.TxIn {
0 commit comments