channeldb+graph/db: move net.Addr encode/decode to graph db package

In preparation for moving the graph related schema structs to the graph
package in an upcoming commit, we move these methods to the graph
package. The structs we will move make use of these methods but we still
import them from channeldb so as to keep the ReadElement and
WriteElement helpers working as they do today.
This commit is contained in:
Elle Mouton 2024-10-22 12:26:08 +02:00
parent 1e81d83f78
commit 3365461500
No known key found for this signature in database
GPG key ID: D7D916376026F177
8 changed files with 30 additions and 14 deletions

View file

@ -11,6 +11,7 @@ import (
"github.com/btcsuite/btcd/btcutil"
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/wire"
graphdb "github.com/lightningnetwork/lnd/graph/db"
"github.com/lightningnetwork/lnd/keychain"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/lightningnetwork/lnd/shachain"
@ -218,7 +219,7 @@ func WriteElement(w io.Writer, element interface{}) error {
}
case net.Addr:
if err := SerializeAddr(w, e); err != nil {
if err := graphdb.SerializeAddr(w, e); err != nil {
return err
}
@ -228,7 +229,7 @@ func WriteElement(w io.Writer, element interface{}) error {
}
for _, addr := range e {
if err := SerializeAddr(w, addr); err != nil {
if err := graphdb.SerializeAddr(w, addr); err != nil {
return err
}
}
@ -451,7 +452,7 @@ func ReadElement(r io.Reader, element interface{}) error {
}
case *net.Addr:
addr, err := DeserializeAddr(r)
addr, err := graphdb.DeserializeAddr(r)
if err != nil {
return err
}
@ -465,7 +466,7 @@ func ReadElement(r io.Reader, element interface{}) error {
*e = make([]net.Addr, numAddrs)
for i := uint32(0); i < numAddrs; i++ {
addr, err := DeserializeAddr(r)
addr, err := graphdb.DeserializeAddr(r)
if err != nil {
return err
}

View file

@ -90,10 +90,6 @@ var (
// ErrNodeAliasNotFound is returned when alias for node can't be found.
ErrNodeAliasNotFound = fmt.Errorf("alias for node not found")
// ErrUnknownAddressType is returned when a node's addressType is not
// an expected value.
ErrUnknownAddressType = fmt.Errorf("address type cannot be resolved")
// ErrNoClosedChannels is returned when a node is queries for all the
// channels it has closed, but it hasn't yet closed any channels.
ErrNoClosedChannels = fmt.Errorf("no channel have been closed yet")

View file

@ -22,6 +22,7 @@ import (
"github.com/lightningnetwork/lnd/aliasmgr"
"github.com/lightningnetwork/lnd/batch"
"github.com/lightningnetwork/lnd/channeldb/models"
graphdb "github.com/lightningnetwork/lnd/graph/db"
"github.com/lightningnetwork/lnd/input"
"github.com/lightningnetwork/lnd/kvdb"
"github.com/lightningnetwork/lnd/lnwire"
@ -4016,7 +4017,7 @@ func putLightningNode(nodeBucket kvdb.RwBucket, aliasBucket kvdb.RwBucket, // no
}
for _, address := range node.Addresses {
if err := SerializeAddr(&b, address); err != nil {
if err := graphdb.SerializeAddr(&b, address); err != nil {
return err
}
}
@ -4209,7 +4210,7 @@ func deserializeLightningNode(r io.Reader) (LightningNode, error) {
var addresses []net.Addr
for i := 0; i < numAddresses; i++ {
address, err := DeserializeAddr(r)
address, err := graphdb.DeserializeAddr(r)
if err != nil {
return LightningNode{}, err
}

View file

@ -8,6 +8,7 @@ import (
"github.com/btcsuite/btcd/btcec/v2"
"github.com/btcsuite/btcd/wire"
graphdb "github.com/lightningnetwork/lnd/graph/db"
"github.com/lightningnetwork/lnd/kvdb"
)
@ -273,7 +274,7 @@ func serializeLinkNode(w io.Writer, l *LinkNode) error {
}
for _, addr := range l.Addresses {
if err := SerializeAddr(w, addr); err != nil {
if err := graphdb.SerializeAddr(w, addr); err != nil {
return err
}
}
@ -315,7 +316,7 @@ func deserializeLinkNode(r io.Reader) (*LinkNode, error) {
node.Addresses = make([]net.Addr, numAddrs)
for i := uint32(0); i < numAddrs; i++ {
addr, err := DeserializeAddr(r)
addr, err := graphdb.DeserializeAddr(r)
if err != nil {
return nil, err
}

View file

@ -1,4 +1,4 @@
package channeldb
package graphdb
import (
"encoding/binary"

View file

@ -1,4 +1,4 @@
package channeldb
package graphdb
import (
"bytes"

8
graph/db/codec.go Normal file
View file

@ -0,0 +1,8 @@
package graphdb
import "encoding/binary"
var (
// byteOrder defines the preferred byte order, which is Big Endian.
byteOrder = binary.BigEndian
)

9
graph/db/errors.go Normal file
View file

@ -0,0 +1,9 @@
package graphdb
import "fmt"
var (
// ErrUnknownAddressType is returned when a node's addressType is not
// an expected value.
ErrUnknownAddressType = fmt.Errorf("address type cannot be resolved")
)