Skip to content

Commit cee607f

Browse files
committed
swap: refactor NewHtlc so pkScript is generatred per output
1 parent deec719 commit cee607f

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

swap/htlc.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,18 @@ func NewHtlc(version ScriptVersion, cltvExpiry int32,
141141
return nil, err
142142
}
143143

144-
p2wshPkScript, err := input.WitnessScriptHash(htlc.Script())
145-
if err != nil {
146-
return nil, err
147-
}
148-
149144
var pkScript, sigScript []byte
150145
var address btcutil.Address
151146

152147
switch outputType {
153148
case HtlcNP2WSH:
149+
pkScript, err = input.WitnessScriptHash(htlc.Script())
150+
if err != nil {
151+
return nil, err
152+
}
153+
154154
// Generate p2sh script for p2wsh (nested).
155-
p2wshPkScriptHash := sha256.Sum256(p2wshPkScript)
155+
p2wshPkScriptHash := sha256.Sum256(pkScript)
156156
hash160 := input.Ripemd160H(p2wshPkScriptHash[:])
157157

158158
builder := txscript.NewScriptBuilder()
@@ -161,7 +161,7 @@ func NewHtlc(version ScriptVersion, cltvExpiry int32,
161161
builder.AddData(hash160)
162162
builder.AddOp(txscript.OP_EQUAL)
163163

164-
pkScript, err = builder.Script()
164+
nestedPkScript, err := builder.Script()
165165
if err != nil {
166166
return nil, err
167167
}
@@ -171,24 +171,27 @@ func NewHtlc(version ScriptVersion, cltvExpiry int32,
171171
// the p2wsh witness program corresponding to the matching
172172
// public key of this address.
173173
sigScript, err = txscript.NewScriptBuilder().
174-
AddData(p2wshPkScript).
174+
AddData(pkScript).
175175
Script()
176176
if err != nil {
177177
return nil, err
178178
}
179179

180180
address, err = btcutil.NewAddressScriptHash(
181-
p2wshPkScript, chainParams,
181+
nestedPkScript, chainParams,
182182
)
183183
if err != nil {
184184
return nil, err
185185
}
186186

187187
case HtlcP2WSH:
188-
pkScript = p2wshPkScript
188+
pkScript, err = input.WitnessScriptHash(htlc.Script())
189+
if err != nil {
190+
return nil, err
191+
}
189192

190193
address, err = btcutil.NewAddressWitnessScriptHash(
191-
p2wshPkScript[2:],
194+
pkScript[2:],
192195
chainParams,
193196
)
194197
if err != nil {

0 commit comments

Comments
 (0)