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:
Olaoluwa Osuntokun committed 2020-03-18 19:34:49 -07:00
1 parent fc808ac538
commit f0911765af
36 files changed
+804 -752

No files matched your search

+3 -3
View File
@@ -3,7 +3,7 @@ package migration13
import (
"testing"
"github.com/coreos/bbolt"
"github.com/lightningnetwork/lnd/channeldb/kvdb"
"github.com/lightningnetwork/lnd/channeldb/migtest"
)
@@ -111,10 +111,10 @@ func TestMigrateMpp(t *testing.T) {
migtest.ApplyMigration(
t,
func(tx *bbolt.Tx) error {
func(tx kvdb.RwTx) error {
return migtest.RestoreDB(tx, paymentsRootBucket, pre)
},
func(tx *bbolt.Tx) error {
func(tx kvdb.RwTx) error {
return migtest.VerifyDB(tx, paymentsRootBucket, post)
},
MigrateMPP,