channeldb: convert to uniformly use new kvdb abstractions
In this commit, we migrate all the code in `channeldb` to only reference the new `kvdb` package rather than `bbolt` directly. In many instances, we need to add two version to fetch a bucket as both read and write when needed. As an example, we add a new `fetchChanBucketRw` function. This function is identical to `fetchChanBucket`, but it will be used to fetch the main channel bucket for all _write_ transactions. We need a new method as you can pass a write transaction where a read is accepted, but not the other way around due to the stronger typing of the new `kvdb` package.
This commit is contained in:
36 files changed
+804
-752
No files matched your search
@@ -3,7 +3,7 @@ package migration12
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/coreos/bbolt"
|
||||
"github.com/lightningnetwork/lnd/channeldb/kvdb"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
@@ -12,11 +12,11 @@ var emptyFeatures = lnwire.NewFeatureVector(nil, nil)
|
||||
// MigrateInvoiceTLV migrates all existing invoice bodies over to be serialized
|
||||
// in a single TLV stream. In the process, we drop the Receipt field and add
|
||||
// PaymentAddr and Features to the invoice Terms.
|
||||
func MigrateInvoiceTLV(tx *bbolt.Tx) error {
|
||||
func MigrateInvoiceTLV(tx kvdb.RwTx) error {
|
||||
log.Infof("Migrating invoice bodies to TLV, " +
|
||||
"adding payment addresses and feature vectors.")
|
||||
|
||||
invoiceB := tx.Bucket(invoiceBucket)
|
||||
invoiceB := tx.ReadWriteBucket(invoiceBucket)
|
||||
if invoiceB == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user