mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-05 02:34:21 +02:00
paymentsdb: move serialization methods to kv_store file
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"math"
|
||||||
"sort"
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@@ -2107,3 +2108,91 @@ func DeserializeRoute(r io.Reader) (route.Route, error) {
|
|||||||
|
|
||||||
return rt, nil
|
return rt, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// serializeHTLCSettleInfo serializes the details of a settled htlc.
|
||||||
|
func serializeHTLCSettleInfo(w io.Writer, s *HTLCSettleInfo) error {
|
||||||
|
if _, err := w.Write(s.Preimage[:]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := serializeTime(w, s.SettleTime); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserializeHTLCSettleInfo deserializes the details of a settled htlc.
|
||||||
|
func deserializeHTLCSettleInfo(r io.Reader) (*HTLCSettleInfo, error) {
|
||||||
|
s := &HTLCSettleInfo{}
|
||||||
|
if _, err := io.ReadFull(r, s.Preimage[:]); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
s.SettleTime, err = deserializeTime(r)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return s, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// serializeHTLCFailInfo serializes the details of a failed htlc including the
|
||||||
|
// wire failure.
|
||||||
|
func serializeHTLCFailInfo(w io.Writer, f *HTLCFailInfo) error {
|
||||||
|
if err := serializeTime(w, f.FailTime); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write failure. If there is no failure message, write an empty
|
||||||
|
// byte slice.
|
||||||
|
var messageBytes bytes.Buffer
|
||||||
|
if f.Message != nil {
|
||||||
|
err := lnwire.EncodeFailureMessage(&messageBytes, f.Message, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err := wire.WriteVarBytes(w, 0, messageBytes.Bytes()); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return WriteElements(w, byte(f.Reason), f.FailureSourceIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserializeHTLCFailInfo deserializes the details of a failed htlc including
|
||||||
|
// the wire failure.
|
||||||
|
func deserializeHTLCFailInfo(r io.Reader) (*HTLCFailInfo, error) {
|
||||||
|
f := &HTLCFailInfo{}
|
||||||
|
var err error
|
||||||
|
f.FailTime, err = deserializeTime(r)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read failure.
|
||||||
|
failureBytes, err := wire.ReadVarBytes(
|
||||||
|
r, 0, math.MaxUint16, "failure",
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if len(failureBytes) > 0 {
|
||||||
|
f.Message, err = lnwire.DecodeFailureMessage(
|
||||||
|
bytes.NewReader(failureBytes), 0,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var reason byte
|
||||||
|
err = ReadElements(r, &reason, &f.FailureSourceIndex)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
f.Reason = HTLCFailReason(reason)
|
||||||
|
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
@@ -4,12 +4,9 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"math"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/btcec/v2"
|
"github.com/btcsuite/btcd/btcec/v2"
|
||||||
"github.com/btcsuite/btcd/wire"
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
sphinx "github.com/lightningnetwork/lightning-onion"
|
sphinx "github.com/lightningnetwork/lightning-onion"
|
||||||
"github.com/lightningnetwork/lnd/lntypes"
|
"github.com/lightningnetwork/lnd/lntypes"
|
||||||
@@ -650,94 +647,6 @@ func (m *MPPayment) AllowMoreAttempts() (bool, error) {
|
|||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// serializeHTLCSettleInfo serializes the details of a settled htlc.
|
|
||||||
func serializeHTLCSettleInfo(w io.Writer, s *HTLCSettleInfo) error {
|
|
||||||
if _, err := w.Write(s.Preimage[:]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := serializeTime(w, s.SettleTime); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserializeHTLCSettleInfo deserializes the details of a settled htlc.
|
|
||||||
func deserializeHTLCSettleInfo(r io.Reader) (*HTLCSettleInfo, error) {
|
|
||||||
s := &HTLCSettleInfo{}
|
|
||||||
if _, err := io.ReadFull(r, s.Preimage[:]); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var err error
|
|
||||||
s.SettleTime, err = deserializeTime(r)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return s, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// serializeHTLCFailInfo serializes the details of a failed htlc including the
|
|
||||||
// wire failure.
|
|
||||||
func serializeHTLCFailInfo(w io.Writer, f *HTLCFailInfo) error {
|
|
||||||
if err := serializeTime(w, f.FailTime); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write failure. If there is no failure message, write an empty
|
|
||||||
// byte slice.
|
|
||||||
var messageBytes bytes.Buffer
|
|
||||||
if f.Message != nil {
|
|
||||||
err := lnwire.EncodeFailureMessage(&messageBytes, f.Message, 0)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err := wire.WriteVarBytes(w, 0, messageBytes.Bytes()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return WriteElements(w, byte(f.Reason), f.FailureSourceIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserializeHTLCFailInfo deserializes the details of a failed htlc including
|
|
||||||
// the wire failure.
|
|
||||||
func deserializeHTLCFailInfo(r io.Reader) (*HTLCFailInfo, error) {
|
|
||||||
f := &HTLCFailInfo{}
|
|
||||||
var err error
|
|
||||||
f.FailTime, err = deserializeTime(r)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read failure.
|
|
||||||
failureBytes, err := wire.ReadVarBytes(
|
|
||||||
r, 0, math.MaxUint16, "failure",
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if len(failureBytes) > 0 {
|
|
||||||
f.Message, err = lnwire.DecodeFailureMessage(
|
|
||||||
bytes.NewReader(failureBytes), 0,
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var reason byte
|
|
||||||
err = ReadElements(r, &reason, &f.FailureSourceIndex)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
f.Reason = HTLCFailReason(reason)
|
|
||||||
|
|
||||||
return f, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// generateSphinxPacket generates then encodes a sphinx packet which encodes
|
// generateSphinxPacket generates then encodes a sphinx packet which encodes
|
||||||
// the onion route specified by the passed layer 3 route. The blob returned
|
// the onion route specified by the passed layer 3 route. The blob returned
|
||||||
// from this function can immediately be included within an HTLC add packet to
|
// from this function can immediately be included within an HTLC add packet to
|
||||||
|
Reference in New Issue
Block a user