multi: use prev output fetcher where possible
This commit is contained in:
13 files changed
+255
-44
No files matched your search
@@ -1623,7 +1623,9 @@ func (i *testInput) RequiredTxOut() *wire.TxOut {
|
||||
// encode the spending outpoint and the tx input index as part of the returned
|
||||
// witness.
|
||||
func (i *testInput) CraftInputScript(_ input.Signer, txn *wire.MsgTx,
|
||||
hashCache *txscript.TxSigHashes, txinIdx int) (*input.Script, error) {
|
||||
hashCache *txscript.TxSigHashes,
|
||||
prevOutputFetcher txscript.PrevOutputFetcher,
|
||||
txinIdx int) (*input.Script, error) {
|
||||
|
||||
// We'll encode the outpoint in the witness, so we can assert that the
|
||||
// expected input was signed at the correct index.
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/btcsuite/btcd/blockchain"
|
||||
"github.com/btcsuite/btcd/btcutil"
|
||||
"github.com/btcsuite/btcd/txscript"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/input"
|
||||
"github.com/lightningnetwork/lnd/lnwallet"
|
||||
@@ -263,13 +264,18 @@ func createSweepTx(inputs []input.Input, outputs []*wire.TxOut,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
hashCache := input.NewTxSigHashesV0Only(sweepTx)
|
||||
prevInputFetcher, err := input.MultiPrevOutFetcher(inputs)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating prev input fetcher "+
|
||||
"for hash cache: %v", err)
|
||||
}
|
||||
hashCache := txscript.NewTxSigHashes(sweepTx, prevInputFetcher)
|
||||
|
||||
// With all the inputs in place, use each output's unique input script
|
||||
// function to generate the final witness required for spending.
|
||||
addInputScript := func(idx int, tso input.Input) error {
|
||||
inputScript, err := tso.CraftInputScript(
|
||||
signer, sweepTx, hashCache, idx,
|
||||
signer, sweepTx, hashCache, prevInputFetcher, idx,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in new issue
Block a user