@@ -1966,7 +1966,7 @@ func newBlobWithWitnessInfo(i input.Input) lfn.Result[blobWithWitnessInfo] {
19661966 // from the inner struct, so we can update the witness stack.
19671967 var (
19681968 preimageInfo lfn.Option [preimageDesc ]
1969- secondLevel = true
1969+ secondLevel bool
19701970 )
19711971 switch i .WitnessType () {
19721972
@@ -2039,8 +2039,8 @@ func prepVpkts(bRes lfn.Result[blobWithWitnessInfo],
20392039 if err != nil {
20402040 return nil , err
20412041 }
2042- var res cmsg.ContractResolution
20432042
2043+ var res cmsg.ContractResolution
20442044 err = res .Decode (bytes .NewReader (b .resolutionBlob ))
20452045 if err != nil {
20462046 return nil , err
@@ -2052,22 +2052,19 @@ func prepVpkts(bRes lfn.Result[blobWithWitnessInfo],
20522052 pkts := res .Vpkts1 ()
20532053 if secondLevel {
20542054 pkts = res .Vpkts2 ()
2055+ tapSigDesc = res .SigDescs ()
20552056 }
20562057
20572058 b .preimageInfo .WhenSome (func (p preimageDesc ) {
2058- vIns := fn .FlatMap (
2059- pkts ,
2060- func (vPkt * tappsbt.VPacket ) []* tappsbt.VInput {
2061- return vPkt .Inputs
2062- },
2063- )
2059+ for _ , pkt := range pkts {
2060+ newAsset := pkt .Outputs [0 ].Asset
20642061
2065- for _ , vIn := range vIns {
2066- prevWitness := vIn .Asset ().PrevWitnesses [0 ].TxWitness
2067- vIn .Asset ().PrevWitnesses [0 ].TxWitness = slices .Insert (
2062+ prevWitness := newAsset .PrevWitnesses [0 ].TxWitness
2063+ prevWitness = slices .Insert (
20682064 prevWitness , p .witnessIndex ,
20692065 p .preimage [:],
20702066 )
2067+ newAsset .UpdateTxWitness (0 , prevWitness )
20712068 }
20722069 })
20732070
@@ -2139,7 +2136,6 @@ func extractInputVPackets(inputs []input.Input) lfn.Result[sweepVpkts] {
21392136 return lfn.Err [sweepVpkts ](err )
21402137 }
21412138
2142- vPkts2 = append (vPkts1 , * vpkt )
21432139 }
21442140
21452141 return lfn .Ok (sweepVpkts {
0 commit comments