wallet: return full tx from SendOutputs

This commit is contained in:
Joost Jager 2018-11-06 09:30:59 +01:00
parent c4dd27e481
commit b718296188
No known key found for this signature in database
GPG key ID: AE6B0D042C8E38D9
2 changed files with 15 additions and 5 deletions

View file

@ -1378,7 +1378,7 @@ func sendPairs(w *wallet.Wallet, amounts map[string]btcutil.Amount,
if err != nil { if err != nil {
return "", err return "", err
} }
txHash, err := w.SendOutputs(outputs, account, minconf, feeSatPerKb) tx, err := w.SendOutputs(outputs, account, minconf, feeSatPerKb)
if err != nil { if err != nil {
if err == txrules.ErrAmountNegative { if err == txrules.ErrAmountNegative {
return "", ErrNeedPositiveAmount return "", ErrNeedPositiveAmount
@ -1397,7 +1397,7 @@ func sendPairs(w *wallet.Wallet, amounts map[string]btcutil.Amount,
} }
} }
txHashStr := txHash.String() txHashStr := tx.TxHash().String()
log.Infof("Successfully sent transaction %v", txHashStr) log.Infof("Successfully sent transaction %v", txHashStr)
return txHashStr, nil return txHashStr, nil
} }

View file

@ -3079,9 +3079,9 @@ func (w *Wallet) TotalReceivedForAddr(addr btcutil.Address, minConf int32) (btcu
} }
// SendOutputs creates and sends payment transactions. It returns the // SendOutputs creates and sends payment transactions. It returns the
// transaction hash upon success. // transaction upon success.
func (w *Wallet) SendOutputs(outputs []*wire.TxOut, account uint32, func (w *Wallet) SendOutputs(outputs []*wire.TxOut, account uint32,
minconf int32, satPerKb btcutil.Amount) (*chainhash.Hash, error) { minconf int32, satPerKb btcutil.Amount) (*wire.MsgTx, error) {
// Ensure the outputs to be created adhere to the network's consensus // Ensure the outputs to be created adhere to the network's consensus
// rules. // rules.
@ -3100,7 +3100,17 @@ func (w *Wallet) SendOutputs(outputs []*wire.TxOut, account uint32,
return nil, err return nil, err
} }
return w.publishTransaction(createdTx.Tx) txHash, err := w.publishTransaction(createdTx.Tx)
if err != nil {
return nil, err
}
// Sanity check on the returned tx hash.
if *txHash != createdTx.Tx.TxHash() {
return nil, errors.New("tx hash mismatch")
}
return createdTx.Tx, nil
} }
// SignatureError records the underlying error when validating a transaction // SignatureError records the underlying error when validating a transaction