Documentation
¶
Index ¶
- Constants
- Variables
- func CalcFee(amount, feeBase btcutil.Amount, feeRate int64) btcutil.Amount
- func ChainParamsFromNetwork(network string) (*chaincfg.Params, error)
- func DecodeInvoice(params *chaincfg.Params, payReq string) (lntypes.Hash, btcutil.Amount, error)
- func DecodeTx(rawTx []byte) (*wire.MsgTx, error)
- func EncodeTx(tx *wire.MsgTx) ([]byte, error)
- func FeeRateAsPercentage(feeRate int64) float64
- func GetScriptOutput(htlcTx *wire.MsgTx, scriptHash []byte) (*wire.OutPoint, btcutil.Amount, error)
- func GetTxInputByOutpoint(tx *wire.MsgTx, input *wire.OutPoint) (*wire.TxIn, error)
- func ShortHash(hash *lntypes.Hash) string
- type Htlc
- func (h *Htlc) AddSuccessToEstimator(estimator *input.TxWeightEstimator)
- func (h *Htlc) AddTimeoutToEstimator(estimator *input.TxWeightEstimator)
- func (h *Htlc) GenSuccessWitness(receiverSig []byte, preimage lntypes.Preimage) (wire.TxWitness, error)
- func (h *Htlc) GenTimeoutWitness(senderSig []byte) (wire.TxWitness, error)
- func (h *Htlc) IsSuccessWitness(witness wire.TxWitness) bool
- type HtlcOutputType
- type PrefixLog
- type Type
Constants ¶
const ( // FeeRateTotalParts defines the granularity of the fee rate. // Throughout the codebase, we'll use fix based arithmetic to compute // fees. FeeRateTotalParts = 1e6 )
Variables ¶
var ( // KeyFamily is the key family used to generate keys that allow // spending of the htlc. // // TODO(joost): decide on actual value KeyFamily = int32(99) )
var (
// QuoteHtlc is a template script just used for fee estimation. It uses
// the maximum value for cltv expiry to get the maximum (worst case)
// script size.
QuoteHtlc, _ = NewHtlc(
^int32(0), quoteKey, quoteKey, quoteHash, HtlcP2WSH,
&chaincfg.MainNetParams,
)
)
Functions ¶
func ChainParamsFromNetwork ¶
ChainParamsFromNetwork returns chain parameters based on a network name.
func DecodeInvoice ¶
DecodeInvoice gets the hash and the amount of an invoice. It requires an amount to be specified.
func FeeRateAsPercentage ¶
FeeRateAsPercentage converts a feerate to a percentage.
func GetScriptOutput ¶
func GetScriptOutput(htlcTx *wire.MsgTx, scriptHash []byte) ( *wire.OutPoint, btcutil.Amount, error)
GetScriptOutput locates the given script in the outputs of a transaction and returns its outpoint and value.
func GetTxInputByOutpoint ¶
GetTxInputByOutpoint returns a tx input based on a given input outpoint.
Types ¶
type Htlc ¶
type Htlc struct { Script []byte PkScript []byte Hash lntypes.Hash OutputType HtlcOutputType ChainParams *chaincfg.Params Address btcutil.Address SigScript []byte }
Htlc contains relevant htlc information from the receiver perspective.
func NewHtlc ¶
func NewHtlc(cltvExpiry int32, senderKey, receiverKey [33]byte, hash lntypes.Hash, outputType HtlcOutputType, chainParams *chaincfg.Params) (*Htlc, error)
NewHtlc returns a new instance.
func (*Htlc) AddSuccessToEstimator ¶
func (h *Htlc) AddSuccessToEstimator(estimator *input.TxWeightEstimator)
AddSuccessToEstimator adds a successful spend to a weight estimator.
func (*Htlc) AddTimeoutToEstimator ¶
func (h *Htlc) AddTimeoutToEstimator(estimator *input.TxWeightEstimator)
AddTimeoutToEstimator adds a timeout spend to a weight estimator.
func (*Htlc) GenSuccessWitness ¶
func (h *Htlc) GenSuccessWitness(receiverSig []byte, preimage lntypes.Preimage) (wire.TxWitness, error)
GenSuccessWitness returns the success script to spend this htlc with the preimage.
func (*Htlc) GenTimeoutWitness ¶
GenTimeoutWitness returns the timeout script to spend this htlc after timeout.
type HtlcOutputType ¶
type HtlcOutputType uint8
HtlcOutputType defines the output type of the htlc that is published.
const ( // HtlcP2WSH is a pay-to-witness-script-hash output (segwit only) HtlcP2WSH HtlcOutputType = iota // HtlcNP2WSH is a nested pay-to-witness-script-hash output that can be // paid to be legacy wallets. HtlcNP2WSH )
type PrefixLog ¶
type PrefixLog struct { // Logger is the underlying based logger. Logger btclog.Logger // Hash is the hash the identifies the target swap. Hash lntypes.Hash }
PrefixLog logs with a short swap hash prefix.
func (*PrefixLog) Errorf ¶
Errorf formats message according to format specifier and writes to to log with LevelError.