mirror of
https://github.com/btcsuite/btcd.git
synced 2025-02-23 14:40:44 +01:00
btcutil/psbt: add method Packet.GetTxFee
This commit adds a GetTxFee method to the psbt.Packet structure. The method returns the PSBT's fee.
This commit is contained in:
parent
1d767de1c7
commit
586729ca07
1 changed files with 19 additions and 2 deletions
|
@ -11,9 +11,9 @@ import (
|
|||
"bytes"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
|
||||
"io"
|
||||
|
||||
"github.com/btcsuite/btcd/btcutil"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
)
|
||||
|
||||
|
@ -30,7 +30,7 @@ var (
|
|||
|
||||
// MaxPsbtValueLength is the size of the largest transaction serialization
|
||||
// that could be passed in a NonWitnessUtxo field. This is definitely
|
||||
//less than 4M.
|
||||
// less than 4M.
|
||||
const MaxPsbtValueLength = 4000000
|
||||
|
||||
// MaxPsbtKeyLength is the length of the largest key that we'll successfully
|
||||
|
@ -395,3 +395,20 @@ func (p *Packet) SanityCheck() error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetTxFee returns the transaction fee. An error is returned if a transaction
|
||||
// input does not contain any UTXO information.
|
||||
func (p *Packet) GetTxFee() (btcutil.Amount, error) {
|
||||
sumInputs, err := SumUtxoInputValues(p)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
var sumOutputs int64
|
||||
for _, txOut := range p.UnsignedTx.TxOut {
|
||||
sumOutputs += txOut.Value
|
||||
}
|
||||
|
||||
fee := sumInputs - sumOutputs
|
||||
return btcutil.Amount(fee), nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue