@@ -1964,7 +1964,7 @@ func newBlobWithWitnessInfo(i input.Input) lfn.Result[blobWithWitnessInfo] {
19641964 // from the inner struct, so we can update the witness stack.
19651965 var (
19661966 preimageInfo lfn.Option [preimageDesc ]
1967- secondLevel = true
1967+ secondLevel bool
19681968 )
19691969 switch i .WitnessType () {
19701970
@@ -2038,8 +2038,8 @@ func prepVpkts(bRes lfn.Result[blobWithWitnessInfo],
20382038 if err != nil {
20392039 return nil , err
20402040 }
2041- var res cmsg.ContractResolution
20422041
2042+ var res cmsg.ContractResolution
20432043 err = res .Decode (bytes .NewReader (b .resolutionBlob ))
20442044 if err != nil {
20452045 return nil , err
@@ -2051,22 +2051,19 @@ func prepVpkts(bRes lfn.Result[blobWithWitnessInfo],
20512051 pkts := res .Vpkts1 ()
20522052 if secondLevel {
20532053 pkts = res .Vpkts2 ()
2054+ tapSigDesc = res .SigDescs ()
20542055 }
20552056
20562057 b .preimageInfo .WhenSome (func (p preimageDesc ) {
2057- vIns := fn .FlatMap (
2058- pkts ,
2059- func (vPkt * tappsbt.VPacket ) []* tappsbt.VInput {
2060- return vPkt .Inputs
2061- },
2062- )
2058+ for _ , pkt := range pkts {
2059+ newAsset := pkt .Outputs [0 ].Asset
20632060
2064- for _ , vIn := range vIns {
2065- prevWitness := vIn .Asset ().PrevWitnesses [0 ].TxWitness
2066- vIn .Asset ().PrevWitnesses [0 ].TxWitness = slices .Insert (
2061+ prevWitness := newAsset .PrevWitnesses [0 ].TxWitness
2062+ prevWitness = slices .Insert (
20672063 prevWitness , p .witnessIndex ,
20682064 p .preimage [:],
20692065 )
2066+ newAsset .UpdateTxWitness (0 , prevWitness )
20702067 }
20712068 })
20722069
@@ -2138,7 +2135,7 @@ func extractInputVPackets(inputs []input.Input) lfn.Result[sweepVpkts] {
21382135 return lfn.Err [sweepVpkts ](err )
21392136 }
21402137
2141- vPkts2 = append (vPkts1 , * vpkt )
2138+ vPkts2 = append (vPkts2 , * vpkt )
21422139 }
21432140
21442141 return lfn .Ok (sweepVpkts {
0 commit comments