Skip to content

Commit 1d9ce44

Browse files
committed
tapchannel: use UpdateTxWitness to insert preimage
1 parent c14be86 commit 1d9ce44

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

tapchannel/aux_sweeper.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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{

tapchannelmsg/records.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2201,6 +2201,11 @@ func (c *ContractResolution) Decode(r io.Reader) error {
22012201
return nil
22022202
}
22032203

2204+
// SigDescs returns the list of tapscriptSigDescs.
2205+
func (c *ContractResolution) SigDescs() lfn.Option[TapscriptSigDesc] {
2206+
return c.secondLevelSigDescs.ValOpt()
2207+
}
2208+
22042209
// Vpkts1 returns the set of first level Vpkts.
22052210
func (c *ContractResolution) Vpkts1() []*tappsbt.VPacket {
22062211
return c.firstLevelSweepVpkts.Val.Pkts

0 commit comments

Comments
 (0)