From 3365461500cef336f015bb53432aa7bb6a5f5b11 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Tue, 22 Oct 2024 12:26:08 +0200 Subject: [PATCH] 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. --- channeldb/codec.go | 9 +++++---- channeldb/error.go | 4 ---- channeldb/graph.go | 5 +++-- channeldb/nodes.go | 5 +++-- {channeldb => graph/db}/addr.go | 2 +- {channeldb => graph/db}/addr_test.go | 2 +- graph/db/codec.go | 8 ++++++++ graph/db/errors.go | 9 +++++++++ 8 files changed, 30 insertions(+), 14 deletions(-) rename {channeldb => graph/db}/addr.go (99%) rename {channeldb => graph/db}/addr_test.go (99%) create mode 100644 graph/db/codec.go create mode 100644 graph/db/errors.go diff --git a/channeldb/codec.go b/channeldb/codec.go index aaa7917ac..9917dbf86 100644 --- a/channeldb/codec.go +++ b/channeldb/codec.go @@ -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 } diff --git a/channeldb/error.go b/channeldb/error.go index 629cd93c6..090c3a158 100644 --- a/channeldb/error.go +++ b/channeldb/error.go @@ -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") diff --git a/channeldb/graph.go b/channeldb/graph.go index e51c68753..a52a13f3c 100644 --- a/channeldb/graph.go +++ b/channeldb/graph.go @@ -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 } diff --git a/channeldb/nodes.go b/channeldb/nodes.go index b5b1cfdec..b17d5c360 100644 --- a/channeldb/nodes.go +++ b/channeldb/nodes.go @@ -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 } diff --git a/channeldb/addr.go b/graph/db/addr.go similarity index 99% rename from channeldb/addr.go rename to graph/db/addr.go index 2064939c1..f99413158 100644 --- a/channeldb/addr.go +++ b/graph/db/addr.go @@ -1,4 +1,4 @@ -package channeldb +package graphdb import ( "encoding/binary" diff --git a/channeldb/addr_test.go b/graph/db/addr_test.go similarity index 99% rename from channeldb/addr_test.go rename to graph/db/addr_test.go index b8318b72f..2e6e5439c 100644 --- a/channeldb/addr_test.go +++ b/graph/db/addr_test.go @@ -1,4 +1,4 @@ -package channeldb +package graphdb import ( "bytes" diff --git a/graph/db/codec.go b/graph/db/codec.go new file mode 100644 index 000000000..c649f9fa3 --- /dev/null +++ b/graph/db/codec.go @@ -0,0 +1,8 @@ +package graphdb + +import "encoding/binary" + +var ( + // byteOrder defines the preferred byte order, which is Big Endian. + byteOrder = binary.BigEndian +) diff --git a/graph/db/errors.go b/graph/db/errors.go new file mode 100644 index 000000000..351c24f32 --- /dev/null +++ b/graph/db/errors.go @@ -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") +)