diff --git a/contractcourt/channel_arbitrator.go b/contractcourt/channel_arbitrator.go index b19bae7fe..74987b629 100644 --- a/contractcourt/channel_arbitrator.go +++ b/contractcourt/channel_arbitrator.go @@ -1103,15 +1103,15 @@ func (c *ChannelArbitrator) stateStep( return StateError, closeTx, err } - log.Debugf("ChannelArbitrator(%v): sending resolution message=%v", - c.cfg.ChanPoint, - newLogClosure(func() string { - return spew.Sdump(pktsToSend) - })) - // With the commitment broadcast, we'll then send over all // messages we can send immediately. if len(pktsToSend) != 0 { + log.Debugf("ChannelArbitrator(%v): sending "+ + "resolution message=%v", c.cfg.ChanPoint, + newLogClosure(func() string { + return spew.Sdump(pktsToSend) + })) + err := c.cfg.DeliverResolutionMsg(pktsToSend...) if err != nil { log.Errorf("unable to send pkts: %v", err) diff --git a/input/input.go b/input/input.go index 98ae2c056..64a9530d9 100644 --- a/input/input.go +++ b/input/input.go @@ -1,6 +1,8 @@ package input import ( + "fmt" + "github.com/btcsuite/btcd/btcutil" "github.com/btcsuite/btcd/txscript" "github.com/btcsuite/btcd/wire" @@ -69,6 +71,11 @@ type TxInfo struct { Weight int64 } +// String returns a human readable version of the tx info. +func (t *TxInfo) String() string { + return fmt.Sprintf("fee=%v, weight=%v", t.Fee, t.Weight) +} + // SignDetails is a struct containing information needed to resign certain // inputs. It is used to re-sign 2nd level HTLC transactions that uses the // SINGLE|ANYONECANPAY sighash type, as we have a signature provided by our diff --git a/sweep/sweeper.go b/sweep/sweeper.go index 4ce48929f..345dfbbf2 100644 --- a/sweep/sweeper.go +++ b/sweep/sweeper.go @@ -98,8 +98,13 @@ type ParamsUpdate struct { // String returns a human readable interpretation of the sweep parameters. func (p Params) String() string { - return fmt.Sprintf("fee=%v, force=%v, exclusive_group=%v", - p.Fee, p.Force, p.ExclusiveGroup) + if p.ExclusiveGroup != nil { + return fmt.Sprintf("fee=%v, force=%v, exclusive_group=%v", + p.Fee, p.Force, *p.ExclusiveGroup) + } + + return fmt.Sprintf("fee=%v, force=%v, exclusive_group=nil", + p.Fee, p.Force) } // pendingInput is created when an input reaches the main loop for the first @@ -463,9 +468,10 @@ func (s *UtxoSweeper) SweepInput(input input.Input, absoluteTimeLock, _ := input.RequiredLockTime() log.Infof("Sweep request received: out_point=%v, witness_type=%v, "+ "relative_time_lock=%v, absolute_time_lock=%v, amount=%v, "+ - "params=(%v)", input.OutPoint(), input.WitnessType(), - input.BlocksToMaturity(), absoluteTimeLock, - btcutil.Amount(input.SignDesc().Output.Value), params) + "parent=(%v), params=(%v)", input.OutPoint(), + input.WitnessType(), input.BlocksToMaturity(), absoluteTimeLock, + btcutil.Amount(input.SignDesc().Output.Value), + input.UnconfParent(), params) sweeperInput := &sweepInputMessage{ input: input,