2
0
mirror of https://github.com/edouardparis/lntop synced 2024-11-13 13:10:34 +00:00
lntop/network/models/invoice.go
2019-03-15 17:02:16 +01:00

60 lines
1.8 KiB
Go

package models
import (
"encoding/hex"
"github.com/edouardparis/lntop/logging"
)
type Invoice struct {
// Index: index of this invoice.
// Each newly created invoice will increment
// this index making it monotonically increasing.
Index uint64
Amount int64
// AmountPaid: The amount that was accepted for this invoice, in satoshis.
AmountPaid int64
// AmountPaidInMSat: The amount that was accepted for this invoice, in milli satoshis.
AmountPaidInMSat int64
Description string
// RPreImage: The hex-encoded preimage (32 byte) which will allow
// settling an incoming HTLC payable to this preimage
RPreImage []byte
// RHash: The hash of the preimage.
RHash []byte
// PaymentRequest: A bare-bones invoice for a payment within the Lightning Network.
// With the details of the invoice, the sender has all the data
// necessary to send a payment to the recipient.
PaymentRequest string
DescriptionHash []byte
// FallBackAddress: Fallback on-chain address.
FallBackAddress string
Settled bool
CreationDate int64
SettleDate int64
Expiry int64
// CLTVExpiry: Delta to use for the time-lock of the CLTV extended to the final hop.
CLTVExpiry uint64
// Private: Whether this invoice should include routing hints for private channels.
Private bool
}
func (m Invoice) GetRHash() string {
return hex.EncodeToString(m.RHash)
}
func (m Invoice) MarshalLogObject(enc logging.ObjectEncoder) error {
enc.AddUint64("index", m.Index)
enc.AddBool("private", m.Private)
enc.AddInt64("amount", m.Amount)
enc.AddInt64("amount_paid", m.AmountPaid)
enc.AddString("r_hash", m.GetRHash())
enc.AddString("description", m.Description)
enc.AddString("r_pre_image", hex.EncodeToString(m.RPreImage))
enc.AddString("payment_request", m.PaymentRequest)
enc.AddBool("settled", m.Settled)
enc.AddInt64("expiry", m.Expiry)
return nil
}