lnwallet: update to new SendOutputs signature

This commit is contained in:
Joost Jager 2018-11-05 12:30:32 +01:00
parent c0fadcc89b
commit e14678030c
No known key found for this signature in database
GPG Key ID: AE6B0D042C8E38D9
7 changed files with 34 additions and 31 deletions

5
Gopkg.lock generated

@ -106,7 +106,7 @@
revision = "ab6388e0c60ae4834a1f57511e20c17b5f78be4b" revision = "ab6388e0c60ae4834a1f57511e20c17b5f78be4b"
[[projects]] [[projects]]
digest = "1:ac01796bf202b80d6cb1b92d42df0fbbf3aff964451376bfa7c39bc2bf94d108" digest = "1:2995aa2bcb95d13a8df309e1dcb6ac20786acb90df5a090bf5e07c2086219ce8"
name = "github.com/btcsuite/btcwallet" name = "github.com/btcsuite/btcwallet"
packages = [ packages = [
"chain", "chain",
@ -123,10 +123,11 @@
"wallet/txrules", "wallet/txrules",
"walletdb", "walletdb",
"walletdb/bdb", "walletdb/bdb",
"walletdb/migration",
"wtxmgr", "wtxmgr",
] ]
pruneopts = "UT" pruneopts = "UT"
revision = "c4dd27e481f9801866cf5226bfe532084772ec2a" revision = "6d43b2e29b5eef0f000a301ee6fbd146db75d118"
[[projects]] [[projects]]
branch = "master" branch = "master"

@ -72,7 +72,7 @@
[[constraint]] [[constraint]]
name = "github.com/btcsuite/btcwallet" name = "github.com/btcsuite/btcwallet"
revision = "c4dd27e481f9801866cf5226bfe532084772ec2a" revision = "6d43b2e29b5eef0f000a301ee6fbd146db75d118"
[[constraint]] [[constraint]]
name = "github.com/tv42/zbase32" name = "github.com/tv42/zbase32"

@ -268,7 +268,7 @@ func (b *BtcWallet) IsOurAddress(a btcutil.Address) bool {
// //
// This is a part of the WalletController interface. // This is a part of the WalletController interface.
func (b *BtcWallet) SendOutputs(outputs []*wire.TxOut, func (b *BtcWallet) SendOutputs(outputs []*wire.TxOut,
feeRate lnwallet.SatPerKWeight) (*chainhash.Hash, error) { feeRate lnwallet.SatPerKWeight) (*wire.MsgTx, error) {
// Convert our fee rate from sat/kw to sat/kb since it's required by // Convert our fee rate from sat/kw to sat/kb since it's required by
// SendOutputs. // SendOutputs.

@ -157,7 +157,7 @@ type WalletController interface {
// This method also takes the target fee expressed in sat/kw that should // This method also takes the target fee expressed in sat/kw that should
// be used when crafting the transaction. // be used when crafting the transaction.
SendOutputs(outputs []*wire.TxOut, SendOutputs(outputs []*wire.TxOut,
feeRate SatPerKWeight) (*chainhash.Hash, error) feeRate SatPerKWeight) (*wire.MsgTx, error)
// ListUnspentWitness returns all unspent outputs which are version 0 // ListUnspentWitness returns all unspent outputs which are version 0
// witness programs. The 'minconfirms' and 'maxconfirms' parameters // witness programs. The 'minconfirms' and 'maxconfirms' parameters

@ -1069,11 +1069,12 @@ func testListTransactionDetails(miner *rpctest.Harness,
t.Fatalf("unable to make output script: %v", err) t.Fatalf("unable to make output script: %v", err)
} }
burnOutput := wire.NewTxOut(outputAmt, outputScript) burnOutput := wire.NewTxOut(outputAmt, outputScript)
burnTXID, err := alice.SendOutputs([]*wire.TxOut{burnOutput}, 2500) burnTX, err := alice.SendOutputs([]*wire.TxOut{burnOutput}, 2500)
if err != nil { if err != nil {
t.Fatalf("unable to create burn tx: %v", err) t.Fatalf("unable to create burn tx: %v", err)
} }
err = waitForMempoolTx(miner, burnTXID) burnTXID := burnTX.TxHash()
err = waitForMempoolTx(miner, &burnTXID)
if err != nil { if err != nil {
t.Fatalf("tx not relayed to miner: %v", err) t.Fatalf("tx not relayed to miner: %v", err)
} }
@ -1281,11 +1282,12 @@ func testTransactionSubscriptions(miner *rpctest.Harness,
t.Fatalf("unable to make output script: %v", err) t.Fatalf("unable to make output script: %v", err)
} }
burnOutput := wire.NewTxOut(outputAmt, outputScript) burnOutput := wire.NewTxOut(outputAmt, outputScript)
txid, err := alice.SendOutputs([]*wire.TxOut{burnOutput}, 2500) tx, err := alice.SendOutputs([]*wire.TxOut{burnOutput}, 2500)
if err != nil { if err != nil {
t.Fatalf("unable to create burn tx: %v", err) t.Fatalf("unable to create burn tx: %v", err)
} }
err = waitForMempoolTx(miner, txid) txid := tx.TxHash()
err = waitForMempoolTx(miner, &txid)
if err != nil { if err != nil {
t.Fatalf("tx not relayed to miner: %v", err) t.Fatalf("tx not relayed to miner: %v", err)
} }
@ -1304,7 +1306,7 @@ func testTransactionSubscriptions(miner *rpctest.Harness,
case <-time.After(time.Second * 10): case <-time.After(time.Second * 10):
t.Fatalf("transactions not received after 10 seconds") t.Fatalf("transactions not received after 10 seconds")
case unConfTx := <-txClient.UnconfirmedTransactions(): case unConfTx := <-txClient.UnconfirmedTransactions():
if unConfTx.Hash != *txid { if unConfTx.Hash != txid {
t.Fatalf("wrong txn notified: expected %v got %v", t.Fatalf("wrong txn notified: expected %v got %v",
txid, unConfTx.Hash) txid, unConfTx.Hash)
} }
@ -1457,27 +1459,24 @@ func testPublishTransaction(r *rpctest.Harness,
Value: btcutil.SatoshiPerBitcoin, Value: btcutil.SatoshiPerBitcoin,
PkScript: keyScript, PkScript: keyScript,
} }
txid, err := alice.SendOutputs([]*wire.TxOut{newOutput}, 2500) tx, err := alice.SendOutputs([]*wire.TxOut{newOutput}, 2500)
if err != nil { if err != nil {
t.Fatalf("unable to create output: %v", err) t.Fatalf("unable to create output: %v", err)
} }
txid := tx.TxHash()
// Query for the transaction generated above so we can located // Query for the transaction generated above so we can located
// the index of our output. // the index of our output.
err = waitForMempoolTx(r, txid) err = waitForMempoolTx(r, &txid)
if err != nil { if err != nil {
t.Fatalf("tx not relayed to miner: %v", err) t.Fatalf("tx not relayed to miner: %v", err)
} }
tx, err := r.Node.GetRawTransaction(txid)
if err != nil {
t.Fatalf("unable to query for tx: %v", err)
}
if err := mineAndAssert(tx.MsgTx()); err != nil { if err := mineAndAssert(tx); err != nil {
t.Fatalf("unable to mine tx: %v", err) t.Fatalf("unable to mine tx: %v", err)
} }
txFee := btcutil.Amount(0.1 * btcutil.SatoshiPerBitcoin) txFee := btcutil.Amount(0.1 * btcutil.SatoshiPerBitcoin)
tx1 := txFromOutput(tx.MsgTx(), pubKey.PubKey, txFee) tx1 := txFromOutput(tx, pubKey.PubKey, txFee)
return tx1 return tx1
} }
@ -1702,23 +1701,19 @@ func testSignOutputUsingTweaks(r *rpctest.Harness,
Value: btcutil.SatoshiPerBitcoin, Value: btcutil.SatoshiPerBitcoin,
PkScript: keyScript, PkScript: keyScript,
} }
txid, err := alice.SendOutputs([]*wire.TxOut{newOutput}, 2500) tx, err := alice.SendOutputs([]*wire.TxOut{newOutput}, 2500)
if err != nil { if err != nil {
t.Fatalf("unable to create output: %v", err) t.Fatalf("unable to create output: %v", err)
} }
txid := tx.TxHash()
// Query for the transaction generated above so we can located // Query for the transaction generated above so we can located
// the index of our output. // the index of our output.
err = waitForMempoolTx(r, txid) err = waitForMempoolTx(r, &txid)
if err != nil { if err != nil {
t.Fatalf("tx not relayed to miner: %v", err) t.Fatalf("tx not relayed to miner: %v", err)
} }
tx, err := r.Node.GetRawTransaction(txid)
if err != nil {
t.Fatalf("unable to query for tx: %v", err)
}
var outputIndex uint32 var outputIndex uint32
if bytes.Equal(tx.MsgTx().TxOut[0].PkScript, keyScript) { if bytes.Equal(tx.TxOut[0].PkScript, keyScript) {
outputIndex = 0 outputIndex = 0
} else { } else {
outputIndex = 1 outputIndex = 1
@ -1729,7 +1724,7 @@ func testSignOutputUsingTweaks(r *rpctest.Harness,
sweepTx := wire.NewMsgTx(2) sweepTx := wire.NewMsgTx(2)
sweepTx.AddTxIn(&wire.TxIn{ sweepTx.AddTxIn(&wire.TxIn{
PreviousOutPoint: wire.OutPoint{ PreviousOutPoint: wire.OutPoint{
Hash: tx.MsgTx().TxHash(), Hash: txid,
Index: outputIndex, Index: outputIndex,
}, },
}) })
@ -1828,11 +1823,12 @@ func testReorgWalletBalance(r *rpctest.Harness, w *lnwallet.LightningWallet,
Value: 1e8, Value: 1e8,
PkScript: script, PkScript: script,
} }
txid, err := w.SendOutputs([]*wire.TxOut{output}, 2500) tx, err := w.SendOutputs([]*wire.TxOut{output}, 2500)
if err != nil { if err != nil {
t.Fatalf("unable to send outputs: %v", err) t.Fatalf("unable to send outputs: %v", err)
} }
err = waitForMempoolTx(r, txid) txid := tx.TxHash()
err = waitForMempoolTx(r, &txid)
if err != nil { if err != nil {
t.Fatalf("tx not relayed to miner: %v", err) t.Fatalf("tx not relayed to miner: %v", err)
} }

@ -227,7 +227,7 @@ func (*mockWalletController) IsOurAddress(a btcutil.Address) bool {
} }
func (*mockWalletController) SendOutputs(outputs []*wire.TxOut, func (*mockWalletController) SendOutputs(outputs []*wire.TxOut,
_ lnwallet.SatPerKWeight) (*chainhash.Hash, error) { _ lnwallet.SatPerKWeight) (*wire.MsgTx, error) {
return nil, nil return nil, nil
} }

@ -408,7 +408,13 @@ func (r *rpcServer) sendCoinsOnChain(paymentMap map[string]int64,
return nil, err return nil, err
} }
return r.server.cc.wallet.SendOutputs(outputs, feeRate) tx, err := r.server.cc.wallet.SendOutputs(outputs, feeRate)
if err != nil {
return nil, err
}
txHash := tx.TxHash()
return &txHash, err
} }
// determineFeePerKw will determine the fee in sat/kw that should be paid given // determineFeePerKw will determine the fee in sat/kw that should be paid given