diff --git a/sweepbatcher/sweep_batch.go b/sweepbatcher/sweep_batch.go index 0960f31..33814f3 100644 --- a/sweepbatcher/sweep_batch.go +++ b/sweepbatcher/sweep_batch.go @@ -3,6 +3,7 @@ package sweepbatcher import ( "bytes" "context" + "encoding/hex" "fmt" "math" "sync" @@ -700,9 +701,11 @@ func (b *batch) publishBatch(ctx context.Context) (btcutil.Amount, error) { batchTx.TxIn[i].Witness = witness } - b.log.Debugf("attempting to publish non-coop tx with feerate=%v, "+ - "totalfee=%v, sweeps=%v, destAddr=%s", b.rbfCache.FeeRate, fee, - len(batchTx.TxIn), address.String()) + b.log.Infof("attempting to publish non-coop tx=%v with feerate=%v, "+ + "totalfee=%v, sweeps=%d, destAddr=%s", batchTx.TxHash(), + b.rbfCache.FeeRate, fee, len(batchTx.TxIn), address) + + b.debugLogTx("serialized non-coop sweep", batchTx) err = b.wallet.PublishTransaction( ctx, batchTx, labels.LoopOutBatchSweepSuccess(b.id), @@ -846,9 +849,11 @@ func (b *batch) publishBatchCoop(ctx context.Context) (btcutil.Amount, return fee, err, false } - b.log.Debugf("attempting to publish coop tx with feerate=%v, "+ - "totalfee=%v, sweeps=%v, destAddr=%s", b.rbfCache.FeeRate, fee, - len(batchTx.TxIn), address.String()) + b.log.Infof("attempting to publish coop tx=%v with feerate=%v, "+ + "totalfee=%v, sweeps=%d, destAddr=%s", batchTx.TxHash(), + b.rbfCache.FeeRate, fee, len(batchTx.TxIn), address) + + b.debugLogTx("serialized coop sweep", batchTx) err = b.wallet.PublishTransaction( ctx, batchTx, labels.LoopOutBatchSweepSuccess(b.id), @@ -866,6 +871,17 @@ func (b *batch) publishBatchCoop(ctx context.Context) (btcutil.Amount, return fee, nil, true } +func (b *batch) debugLogTx(msg string, tx *wire.MsgTx) { + // Serialize the transaction and convert to hex string. + buf := bytes.NewBuffer(make([]byte, 0, tx.SerializeSize())) + if err := tx.Serialize(buf); err != nil { + b.log.Errorf("failed to serialize tx for debug log: %v", err) + return + } + + b.log.Debugf("%s: %s", msg, hex.EncodeToString(buf.Bytes())) +} + // coopSignBatchTx collects the necessary signatures from the server in order // to cooperatively sweep the funds. func (b *batch) coopSignBatchTx(ctx context.Context, packet *psbt.Packet,