@@ -177,13 +177,15 @@ func (a *AuxSweeper) createSweepVpackets(sweepInputs []*cmsg.AssetOutput,
177177 tapscriptDesc lfn.Result [tapscriptSweepDesc ],
178178) lfn.Result [[]* tappsbt.VPacket ] {
179179
180+ type returnType = []* tappsbt.VPacket
181+
180182 log .Infof ("Creating sweep packets for %v inputs" , len (sweepInputs ))
181183
182184 // Unpack the tapscript desc, as we need it to be able to continue
183185 // forward.
184186 sweepDesc , err := tapscriptDesc .Unpack ()
185187 if err != nil {
186- return lfn.Err [[] * tappsbt. VPacket ](err )
188+ return lfn.Err [returnType ](err )
187189 }
188190
189191 // For each out we want to sweep, we'll construct an allocation that
@@ -197,7 +199,7 @@ func (a *AuxSweeper) createSweepVpackets(sweepInputs []*cmsg.AssetOutput,
197199 ctx , asset .TaprootAssetsKeyFamily ,
198200 )
199201 if err != nil {
200- return lfn.Err [[] * tappsbt. VPacket ](err )
202+ return lfn.Err [returnType ](err )
201203 }
202204
203205 // With the script key created, we can make a new allocation
@@ -238,17 +240,17 @@ func (a *AuxSweeper) createSweepVpackets(sweepInputs []*cmsg.AssetOutput,
238240 inputProofs , allocs , & a .cfg .ChainParams ,
239241 )
240242 if err != nil {
241- return lfn .Errf [[] * tappsbt. VPacket ] ("error distributing " +
242- "coins: %w" , err )
243+ return lfn.Err [ returnType ]( fmt . Errorf ("error distributing " +
244+ "coins: %w" , err ))
243245 }
244246
245247 log .Infof ("Created %v sweep packets: %v" , len (vPackets ),
246248 limitSpewer .Sdump (vPackets ))
247249
248250 fundingWitness , err := fundingSpendWitness ().Unpack ()
249251 if err != nil {
250- return lfn .Errf [[] * tappsbt. VPacket ] ("unable to make " +
251- "funding witness: %v " , err )
252+ return lfn.Err [ returnType ]( fmt . Errorf ("unable to make " +
253+ "funding witness: %w " , err ) )
252254 }
253255
254256 // Next, we'll prepare all the vPackets for the sweep transaction, and
@@ -265,8 +267,8 @@ func (a *AuxSweeper) createSweepVpackets(sweepInputs []*cmsg.AssetOutput,
265267
266268 err := tapsend .PrepareOutputAssets (ctx , vPackets [idx ])
267269 if err != nil {
268- return lfn .Errf [[] * tappsbt. VPacket ] ("unable to " +
269- "prepare output assets: %w" , err )
270+ return lfn.Err [ returnType ]( fmt . Errorf ("unable to " +
271+ "prepare output assets: %w" , err ))
270272 }
271273
272274 // Next before we sign, we'll make sure to update the witness
@@ -354,6 +356,8 @@ func (a *AuxSweeper) createAndSignSweepVpackets(
354356 sweepDesc lfn.Result [tapscriptSweepDesc ],
355357) lfn.Result [[]* tappsbt.VPacket ] {
356358
359+ type returnType = []* tappsbt.VPacket
360+
357361 // Based on the sweep inputs, make vPackets that sweep all the inputs
358362 // into a new output with a fresh script key. They won't have an
359363 // internal key set, we'll do that when we go to make the output to
@@ -364,7 +368,7 @@ func (a *AuxSweeper) createAndSignSweepVpackets(
364368
365369 err := a .signSweepVpackets (vPkts , signDesc , desc )
366370 if err != nil {
367- return lfn.Err [[] * tappsbt. VPacket ](err )
371+ return lfn.Err [returnType ](err )
368372 }
369373
370374 return lfn .Ok (vPkts )
@@ -397,15 +401,17 @@ type tapscriptSweepDesc struct {
397401func commitNoDelaySweepDesc (keyRing * lnwallet.CommitmentKeyRing ,
398402 csvDelay uint32 ) lfn.Result [tapscriptSweepDesc ] {
399403
404+ type returnType = tapscriptSweepDesc
405+
400406 // We'll make the script tree for the to remote script (we're remote as
401407 // this is their commitment transaction). We don't have an auxLeaf here
402408 // as we're on the TAP layer.
403409 toRemoteScriptTree , err := input .NewRemoteCommitScriptTree (
404410 keyRing .ToRemoteKey , input .NoneTapLeaf (),
405411 )
406412 if err != nil {
407- return lfn .Errf [ tapscriptSweepDesc ] ("unable to make remote " +
408- "script tree: %w" , err )
413+ return lfn.Err [ returnType ]( fmt . Errorf ("unable to make remote " +
414+ "script tree: %w" , err ))
409415 }
410416
411417 // Now that we have the script tree, we'll make the control block
@@ -414,13 +420,13 @@ func commitNoDelaySweepDesc(keyRing *lnwallet.CommitmentKeyRing,
414420 input .ScriptPathSuccess ,
415421 )
416422 if err != nil {
417- return lfn .Errf [ tapscriptSweepDesc ]( "unable to make " +
418- "ctrl block: %w" , err )
423+ return lfn.Err [ returnType ]( fmt . Errorf ( "unable to make ctrl " +
424+ "block: %w" , err ) )
419425 }
420426 ctrlBlockBytes , err := ctrlBlock .ToBytes ()
421427 if err != nil {
422- return lfn .Errf [ tapscriptSweepDesc ] ("unable to encode ctrl " +
423- "block: %w" , err )
428+ return lfn.Err [ returnType ]( fmt . Errorf ("unable to encode ctrl " +
429+ "block: %w" , err ))
424430 }
425431
426432 return lfn .Ok (tapscriptSweepDesc {
@@ -436,6 +442,8 @@ func commitNoDelaySweepDesc(keyRing *lnwallet.CommitmentKeyRing,
436442func commitDelaySweepDesc (keyRing * lnwallet.CommitmentKeyRing ,
437443 csvDelay uint32 ) lfn.Result [tapscriptSweepDesc ] {
438444
445+ type returnType = tapscriptSweepDesc
446+
439447 // We'll make the script tree for the to remote script (we're remote as
440448 // this is their commitment transaction). We don't have an auxLeaf here
441449 // as we're on the TAP layer.
@@ -444,7 +452,7 @@ func commitDelaySweepDesc(keyRing *lnwallet.CommitmentKeyRing,
444452 input .NoneTapLeaf (),
445453 )
446454 if err != nil {
447- return lfn.Err [tapscriptSweepDesc ](err )
455+ return lfn.Err [returnType ](err )
448456 }
449457
450458 // Now that we have the script tree, we'll make the control block
@@ -453,11 +461,11 @@ func commitDelaySweepDesc(keyRing *lnwallet.CommitmentKeyRing,
453461 input .ScriptPathSuccess ,
454462 )
455463 if err != nil {
456- return lfn.Err [tapscriptSweepDesc ](err )
464+ return lfn.Err [returnType ](err )
457465 }
458466 ctrlBlockBytes , err := ctrlBlock .ToBytes ()
459467 if err != nil {
460- return lfn.Err [tapscriptSweepDesc ](err )
468+ return lfn.Err [returnType ](err )
461469 }
462470
463471 return lfn .Ok (tapscriptSweepDesc {
@@ -473,6 +481,8 @@ func commitDelaySweepDesc(keyRing *lnwallet.CommitmentKeyRing,
473481func commitRevokeSweepDesc (keyRing * lnwallet.CommitmentKeyRing ,
474482 csvDelay uint32 ) lfn.Result [tapscriptSweepDesc ] {
475483
484+ type returnType = tapscriptSweepDesc
485+
476486 // To sweep their revoked output, we'll make the script tree for the
477487 // local tree of their commitment transaction, which is actually their
478488 // output.
@@ -481,7 +491,7 @@ func commitRevokeSweepDesc(keyRing *lnwallet.CommitmentKeyRing,
481491 input .NoneTapLeaf (),
482492 )
483493 if err != nil {
484- return lfn.Err [tapscriptSweepDesc ](err )
494+ return lfn.Err [returnType ](err )
485495 }
486496
487497 // Now that we have the script tree, we'll make the control block
@@ -490,11 +500,11 @@ func commitRevokeSweepDesc(keyRing *lnwallet.CommitmentKeyRing,
490500 input .ScriptPathRevocation ,
491501 )
492502 if err != nil {
493- return lfn.Err [tapscriptSweepDesc ](err )
503+ return lfn.Err [returnType ](err )
494504 }
495505 ctrlBlockBytes , err := ctrlBlock .ToBytes ()
496506 if err != nil {
497- return lfn.Err [tapscriptSweepDesc ](err )
507+ return lfn.Err [returnType ](err )
498508 }
499509
500510 return lfn .Ok (tapscriptSweepDesc {
@@ -1097,6 +1107,8 @@ func (a *AuxSweeper) importCommitTx(req lnwallet.ResolutionReq,
10971107func (a * AuxSweeper ) resolveContract (
10981108 req lnwallet.ResolutionReq ) lfn.Result [tlv.Blob ] {
10991109
1110+ type returnType = tlv.Blob
1111+
11001112 // If there's no commit blob, then there's nothing to resolve.
11011113 if req .CommitBlob .IsNone () {
11021114 return lfn.Err [tlv.Blob ](nil )
@@ -1112,13 +1124,13 @@ func (a *AuxSweeper) resolveContract(
11121124 req .CommitBlob .UnwrapOr (nil ),
11131125 )
11141126 if err != nil {
1115- return lfn.Err [tlv. Blob ](err )
1127+ return lfn.Err [returnType ](err )
11161128 }
11171129 fundingInfo , err := tapchannelmsg .DecodeOpenChannel (
11181130 req .FundingBlob .UnwrapOr (nil ),
11191131 )
11201132 if err != nil {
1121- return lfn.Err [tlv. Blob ](err )
1133+ return lfn.Err [returnType ](err )
11221134 }
11231135
11241136 // To be able to construct all the proofs we need to spend later, we'll
@@ -1130,16 +1142,16 @@ func (a *AuxSweeper) resolveContract(
11301142 ctx , fn .Some (req .CommitTx .TxHash ()), false ,
11311143 )
11321144 if err != nil {
1133- return lfn.Err [tlv. Blob ](err )
1145+ return lfn.Err [returnType ](err )
11341146 }
11351147 if len (commitParcel ) == 0 {
11361148 log .Infof ("First time seeing commit_txid=%v, importing" ,
11371149 req .CommitTx .TxHash ())
11381150
11391151 err := a .importCommitTx (req , commitState , fundingInfo )
11401152 if err != nil {
1141- return lfn .Errf [tlv. Blob ]( "unable to import " +
1142- "commitment txn: %v " , err )
1153+ return lfn.Err [ returnType ]( fmt . Errorf ( "unable to " +
1154+ "import commitment txn: %w " , err ) )
11431155 }
11441156 } else {
11451157 log .Infof ("Commitment commit_txid=%v already imported, " +
@@ -1190,7 +1202,7 @@ func (a *AuxSweeper) resolveContract(
11901202 sweepDesc = commitRevokeSweepDesc (req .KeyRing , req .CsvDelay )
11911203
11921204 default :
1193- return lfn.Err [tlv. Blob ](fmt .Errorf ("unknown resolution " +
1205+ return lfn.Err [returnType ](fmt .Errorf ("unknown resolution " +
11941206 "type: %v" , req .Type ))
11951207 }
11961208
@@ -1218,7 +1230,7 @@ func (a *AuxSweeper) resolveContract(
12181230
12191231 var b bytes.Buffer
12201232 if err := res .Encode (& b ); err != nil {
1221- return lfn.Err [tlv. Blob ](err )
1233+ return lfn.Err [returnType ](err )
12221234 }
12231235
12241236 return lfn .Ok (b .Bytes ())
@@ -1230,6 +1242,8 @@ func (a *AuxSweeper) resolveContract(
12301242// none of the inputs have any resolution blobs. Then an empty slice will be
12311243// returned.
12321244func extractInputVPackets (inputs []input.Input ) lfn.Result [[]* tappsbt.VPacket ] {
1245+ type returnType = []* tappsbt.VPacket
1246+
12331247 // Otherwise, we'll extract the set of resolution blobs from the inputs
12341248 // passed in.
12351249 relevantInputs := fn .Filter (inputs , func (i input.Input ) bool {
@@ -1254,7 +1268,7 @@ func extractInputVPackets(inputs []input.Input) lfn.Result[[]*tappsbt.VPacket] {
12541268 },
12551269 )
12561270 if err != nil {
1257- return lfn.Err [[] * tappsbt. VPacket ](err )
1271+ return lfn.Err [returnType ](err )
12581272 }
12591273
12601274 return lfn .Ok (vPkts )
@@ -1266,13 +1280,15 @@ func extractInputVPackets(inputs []input.Input) lfn.Result[[]*tappsbt.VPacket] {
12661280func (a * AuxSweeper ) sweepContracts (inputs []input.Input ,
12671281 change lnwallet.AddrWithKey ) lfn.Result [sweep.SweepOutput ] {
12681282
1283+ type returnType = sweep.SweepOutput
1284+
12691285 // If none of the inputs have a resolution blob, then we have nothing
12701286 // to generate.
12711287 if fn .NotAny (inputs , func (i input.Input ) bool {
12721288 return ! i .ResolutionBlob ().IsNone ()
12731289 }) {
12741290
1275- return lfn.Err [sweep. SweepOutput ](nil )
1291+ return lfn.Err [returnType ](nil )
12761292 }
12771293
12781294 // TODO(roasbeef): can pipline entire thing instead?
@@ -1281,7 +1297,7 @@ func (a *AuxSweeper) sweepContracts(inputs []input.Input,
12811297 // vPackets from the inputs.
12821298 vPkts , err := extractInputVPackets (inputs ).Unpack ()
12831299 if err != nil {
1284- return lfn.Err [sweep. SweepOutput ](err )
1300+ return lfn.Err [returnType ](err )
12851301 }
12861302
12871303 log .Infof ("Generating anchor output for vpkts=%v" ,
@@ -1296,7 +1312,7 @@ func (a *AuxSweeper) sweepContracts(inputs []input.Input,
12961312 context .Background (), asset .TaprootAssetsKeyFamily ,
12971313 )
12981314 if err != nil {
1299- return lfn.Err [sweep. SweepOutput ](err )
1315+ return lfn.Err [returnType ](err )
13001316 }
13011317 for idx := range vPkts {
13021318 for _ , vOut := range vPkts [idx ].Outputs {
@@ -1310,15 +1326,14 @@ func (a *AuxSweeper) sweepContracts(inputs []input.Input,
13101326 // out of all the vPackets contained.
13111327 outCommitments , err := tapsend .CreateOutputCommitments (vPkts )
13121328 if err != nil {
1313- return lfn .Errf [sweep. SweepOutput ]( "unable to create output " +
1314- "commitments: %w" , err )
1329+ return lfn.Err [ returnType ]( fmt . Errorf ( "unable to create " +
1330+ "output commitments: %w" , err ) )
13151331 }
13161332
13171333 // We should only have a single output commitment at this point.
13181334 if len (outCommitments ) != 1 {
1319- return lfn.Err [sweep.SweepOutput ](fmt .Errorf ("expected a " +
1320- "single output commitment, got: %v" ,
1321- len (outCommitments )))
1335+ return lfn.Err [returnType ](fmt .Errorf ("expected a single " +
1336+ "output commitment, got: %v" , len (outCommitments )))
13221337 }
13231338
13241339 // With the output commitments created, we'll now create the anchor
@@ -1327,7 +1342,7 @@ func (a *AuxSweeper) sweepContracts(inputs []input.Input,
13271342 internalKey .PubKey , nil , outCommitments [0 ],
13281343 )
13291344 if err != nil {
1330- return lfn.Err [sweep. SweepOutput ](err )
1345+ return lfn.Err [returnType ](err )
13311346 }
13321347
13331348 return lfn .Ok (sweep.SweepOutput {
@@ -1506,18 +1521,20 @@ func (a *AuxSweeper) contractResolver() {
15061521func (a * AuxSweeper ) ResolveContract (
15071522 req lnwallet.ResolutionReq ) lfn.Result [tlv.Blob ] {
15081523
1524+ type returnType = tlv.Blob
1525+
15091526 auxReq := & resolutionReq {
15101527 req : req ,
15111528 resp : make (chan lfn.Result [tlv.Blob ], 1 ),
15121529 }
15131530
15141531 if ! fn .SendOrQuit (a .resolutionReqs , auxReq , a .quit ) {
1515- return lfn.Err [tlv. Blob ](fmt .Errorf ("aux sweeper stopped" ))
1532+ return lfn.Err [returnType ](fmt .Errorf ("aux sweeper stopped" ))
15161533 }
15171534
15181535 resp , quitErr := fn .RecvResp (auxReq .resp , nil , a .quit )
15191536 if quitErr != nil {
1520- return lfn.Err [tlv. Blob ](quitErr )
1537+ return lfn.Err [returnType ](quitErr )
15211538 }
15221539
15231540 return resp
@@ -1529,21 +1546,21 @@ func (a *AuxSweeper) ResolveContract(
15291546func (a * AuxSweeper ) DeriveSweepAddr (inputs []input.Input ,
15301547 change lnwallet.AddrWithKey ) lfn.Result [sweep.SweepOutput ] {
15311548
1549+ type returnType = sweep.SweepOutput
1550+
15321551 auxReq := & sweepAddrReq {
15331552 inputs : inputs ,
15341553 change : change ,
15351554 resp : make (chan lfn.Result [sweep.SweepOutput ], 1 ),
15361555 }
15371556
15381557 if ! fn .SendOrQuit (a .sweepAddrReqs , auxReq , a .quit ) {
1539- return lfn.Err [sweep.SweepOutput ](
1540- fmt .Errorf ("aux sweeper stopped" ),
1541- )
1558+ return lfn.Err [returnType ](fmt .Errorf ("aux sweeper stopped" ))
15421559 }
15431560
15441561 resp , quitErr := fn .RecvResp (auxReq .resp , nil , a .quit )
15451562 if quitErr != nil {
1546- return lfn.Err [sweep. SweepOutput ](quitErr )
1563+ return lfn.Err [returnType ](quitErr )
15471564 }
15481565
15491566 return resp
0 commit comments