From 482f76a0f4c47d222b7e26d5e3aa7c2c0402cc1d Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Tue, 3 Aug 2021 09:57:37 +0200 Subject: [PATCH] mod+kvdb+channeldb: use btcwallet new DB interface Depends on btcsuite/btcwallet#757. Pulls in the updated version of btcwallet and walletdb that have the DB interface enhanced by their own View() and Update() methods with the reset callback/closure supported out of the box. That way the global package-level View() and Update() functions now become pure redirects. --- chainntnfs/bitcoindnotify/bitcoind_test.go | 2 +- chainntnfs/btcdnotify/btcd_test.go | 2 +- chainntnfs/height_hint_cache_test.go | 2 +- chainntnfs/test/test_interface.go | 4 +- channeldb/db.go | 41 ---------------- channeldb/graph.go | 2 +- channeldb/reports.go | 2 +- go.mod | 9 ++-- go.sum | 19 ++++---- kvdb/go.mod | 2 +- kvdb/go.sum | 4 +- kvdb/interface.go | 57 +++------------------- lnwallet/test/test_interface.go | 2 +- 13 files changed, 34 insertions(+), 114 deletions(-) diff --git a/chainntnfs/bitcoindnotify/bitcoind_test.go b/chainntnfs/bitcoindnotify/bitcoind_test.go index e48423bcb..4b670854f 100644 --- a/chainntnfs/bitcoindnotify/bitcoind_test.go +++ b/chainntnfs/bitcoindnotify/bitcoind_test.go @@ -44,7 +44,7 @@ func initHintCache(t *testing.T) *chainntnfs.HeightHintCache { testCfg := chainntnfs.CacheConfig{ QueryDisable: false, } - hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db) + hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db.Backend) if err != nil { t.Fatalf("unable to create hint cache: %v", err) } diff --git a/chainntnfs/btcdnotify/btcd_test.go b/chainntnfs/btcdnotify/btcd_test.go index 7302171c1..798275f06 100644 --- a/chainntnfs/btcdnotify/btcd_test.go +++ b/chainntnfs/btcdnotify/btcd_test.go @@ -42,7 +42,7 @@ func initHintCache(t *testing.T) *chainntnfs.HeightHintCache { testCfg := chainntnfs.CacheConfig{ QueryDisable: false, } - hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db) + hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db.Backend) if err != nil { t.Fatalf("unable to create hint cache: %v", err) } diff --git a/chainntnfs/height_hint_cache_test.go b/chainntnfs/height_hint_cache_test.go index 7909f82f1..ad2f48426 100644 --- a/chainntnfs/height_hint_cache_test.go +++ b/chainntnfs/height_hint_cache_test.go @@ -32,7 +32,7 @@ func initHintCacheWithConfig(t *testing.T, cfg CacheConfig) *HeightHintCache { if err != nil { t.Fatalf("unable to create db: %v", err) } - hintCache, err := NewHeightHintCache(cfg, db) + hintCache, err := NewHeightHintCache(cfg, db.Backend) if err != nil { t.Fatalf("unable to create hint cache: %v", err) } diff --git a/chainntnfs/test/test_interface.go b/chainntnfs/test/test_interface.go index bd6b70aca..d85cc8025 100644 --- a/chainntnfs/test/test_interface.go +++ b/chainntnfs/test/test_interface.go @@ -1926,7 +1926,9 @@ func TestInterfaces(t *testing.T, targetBackEnd string) { testCfg := chainntnfs.CacheConfig{ QueryDisable: false, } - hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db) + hintCache, err := chainntnfs.NewHeightHintCache( + testCfg, db.Backend, + ) if err != nil { t.Fatalf("unable to create height hint cache: %v", err) } diff --git a/channeldb/db.go b/channeldb/db.go index 75095b01a..37397b048 100644 --- a/channeldb/db.go +++ b/channeldb/db.go @@ -10,7 +10,6 @@ import ( "github.com/btcsuite/btcd/btcec" "github.com/btcsuite/btcd/wire" - "github.com/btcsuite/btcwallet/walletdb" "github.com/go-errors/errors" mig "github.com/lightningnetwork/lnd/channeldb/migration" "github.com/lightningnetwork/lnd/channeldb/migration12" @@ -214,46 +213,6 @@ type DB struct { dryRun bool } -// Update is a wrapper around walletdb.Update which calls into the extended -// backend when available. This call is needed to be able to cast DB to -// ExtendedBackend. The passed reset function is called before the start of the -// transaction and can be used to reset intermediate state. As callers may -// expect retries of the f closure (depending on the database backend used), the -// reset function will be called before each retry respectively. -func (db *DB) Update(f func(tx walletdb.ReadWriteTx) error, reset func()) error { - if v, ok := db.Backend.(kvdb.ExtendedBackend); ok { - return v.Update(f, reset) - } - - reset() - return walletdb.Update(db, f) -} - -// View is a wrapper around walletdb.View which calls into the extended -// backend when available. This call is needed to be able to cast DB to -// ExtendedBackend. The passed reset function is called before the start of the -// transaction and can be used to reset intermediate state. As callers may -// expect retries of the f closure (depending on the database backend used), the -// reset function will be called before each retry respectively. -func (db *DB) View(f func(tx walletdb.ReadTx) error, reset func()) error { - if v, ok := db.Backend.(kvdb.ExtendedBackend); ok { - return v.View(f, reset) - } - - reset() - return walletdb.View(db, f) -} - -// PrintStats calls into the extended backend if available. This call is needed -// to be able to cast DB to ExtendedBackend. -func (db *DB) PrintStats() string { - if v, ok := db.Backend.(kvdb.ExtendedBackend); ok { - return v.PrintStats() - } - - return "unimplemented" -} - // Open opens or creates channeldb. Any necessary schemas migrations due // to updates will take place as necessary. // TODO(bhandras): deprecate this function. diff --git a/channeldb/graph.go b/channeldb/graph.go index f396739bd..678b7ac06 100644 --- a/channeldb/graph.go +++ b/channeldb/graph.go @@ -3406,7 +3406,7 @@ func (c *ChannelGraph) MarkEdgeZombie(chanID uint64, c.cacheMu.Lock() defer c.cacheMu.Unlock() - err := kvdb.Batch(c.db, func(tx kvdb.RwTx) error { + err := kvdb.Batch(c.db.Backend, func(tx kvdb.RwTx) error { edges := tx.ReadWriteBucket(edgeBucket) if edges == nil { return ErrGraphNoEdgesFound diff --git a/channeldb/reports.go b/channeldb/reports.go index 5d2892b28..c94c1933e 100644 --- a/channeldb/reports.go +++ b/channeldb/reports.go @@ -214,7 +214,7 @@ func (d DB) FetchChannelReports(chainHash chainhash.Hash, var reports []*ResolverReport - if err := kvdb.View(d, func(tx kvdb.RTx) error { + if err := kvdb.View(d.Backend, func(tx kvdb.RTx) error { chanBucket, err := fetchReportReadBucket( tx, chainHash, outPoint, ) diff --git a/go.mod b/go.mod index 392a55a78..61bbe5319 100644 --- a/go.mod +++ b/go.mod @@ -9,12 +9,11 @@ require ( github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f github.com/btcsuite/btcutil v1.0.3-0.20210527170813-e2ba6805a890 github.com/btcsuite/btcutil/psbt v1.0.3-0.20210527170813-e2ba6805a890 - github.com/btcsuite/btcwallet v0.12.1-0.20210519225359-6ab9b615576f - github.com/btcsuite/btcwallet/wallet/txauthor v1.0.1-0.20210519225359-6ab9b615576f + github.com/btcsuite/btcwallet v0.12.1-0.20210803004036-eebed51155ec + github.com/btcsuite/btcwallet/wallet/txauthor v1.0.2-0.20210803004036-eebed51155ec github.com/btcsuite/btcwallet/wallet/txrules v1.0.0 - github.com/btcsuite/btcwallet/wallet/txsizes v1.0.1-0.20210519225359-6ab9b615576f // indirect - github.com/btcsuite/btcwallet/walletdb v1.3.5 - github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210706234807-aaf03fee735a + github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec + github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210803004036-eebed51155ec github.com/davecgh/go-spew v1.1.1 github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/go-errors/errors v1.0.1 diff --git a/go.sum b/go.sum index 043937f91..f9f35e64a 100644 --- a/go.sum +++ b/go.sum @@ -85,23 +85,24 @@ github.com/btcsuite/btcutil v1.0.3-0.20210527170813-e2ba6805a890/go.mod h1:0DVlH github.com/btcsuite/btcutil/psbt v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:LVveMu4VaNSkIRTZu2+ut0HDBRuYjqGocxDMNS1KuGQ= github.com/btcsuite/btcutil/psbt v1.0.3-0.20210527170813-e2ba6805a890 h1:0xUNvvwJ7RjzBs4nCF+YrK28S5P/b4uHkpPxY1ovGY4= github.com/btcsuite/btcutil/psbt v1.0.3-0.20210527170813-e2ba6805a890/go.mod h1:LVveMu4VaNSkIRTZu2+ut0HDBRuYjqGocxDMNS1KuGQ= -github.com/btcsuite/btcwallet v0.12.1-0.20210519225359-6ab9b615576f h1:Me6OOQP2ZYttZuViKXHVegXPKz2n42zNbHI3ljPeqwU= -github.com/btcsuite/btcwallet v0.12.1-0.20210519225359-6ab9b615576f/go.mod h1:f1HuBGov5+OTp40Gh1vA+tvF6d7bbuLFTceJMRB7fXw= +github.com/btcsuite/btcwallet v0.12.1-0.20210803004036-eebed51155ec h1:MAAR//aKu+I7bnxmWJZqGTX7fU7abWFBRoSzX6ty8zw= +github.com/btcsuite/btcwallet v0.12.1-0.20210803004036-eebed51155ec/go.mod h1:LNhKxGlbwEGVQFjS4Qa7BgR6NipPhTd1/93Ay049pBw= github.com/btcsuite/btcwallet/wallet/txauthor v1.0.0/go.mod h1:VufDts7bd/zs3GV13f/lXc/0lXrPnvxD/NvmpG/FEKU= -github.com/btcsuite/btcwallet/wallet/txauthor v1.0.1-0.20210519225359-6ab9b615576f h1:uzCtWqLJ6dlufUhpmoNgaegF87Pb9kOwPmpFYEi2up4= -github.com/btcsuite/btcwallet/wallet/txauthor v1.0.1-0.20210519225359-6ab9b615576f/go.mod h1:VufDts7bd/zs3GV13f/lXc/0lXrPnvxD/NvmpG/FEKU= +github.com/btcsuite/btcwallet/wallet/txauthor v1.0.1-0.20210329233242-e0607006dce6/go.mod h1:VufDts7bd/zs3GV13f/lXc/0lXrPnvxD/NvmpG/FEKU= +github.com/btcsuite/btcwallet/wallet/txauthor v1.0.2-0.20210803004036-eebed51155ec h1:nuO8goa4gbgDM4iegCztF7mTq8io9NT1DAMoPrEI6S4= +github.com/btcsuite/btcwallet/wallet/txauthor v1.0.2-0.20210803004036-eebed51155ec/go.mod h1:VufDts7bd/zs3GV13f/lXc/0lXrPnvxD/NvmpG/FEKU= github.com/btcsuite/btcwallet/wallet/txrules v1.0.0 h1:2VsfS0sBedcM5KmDzRMT3+b6xobqWveZGvjb+jFez5w= github.com/btcsuite/btcwallet/wallet/txrules v1.0.0/go.mod h1:UwQE78yCerZ313EXZwEiu3jNAtfXj2n2+c8RWiE/WNA= github.com/btcsuite/btcwallet/wallet/txsizes v1.0.0/go.mod h1:pauEU8UuMFiThe5PB3EO+gO5kx87Me5NvdQDsTuq6cs= github.com/btcsuite/btcwallet/wallet/txsizes v1.0.1-0.20210519225359-6ab9b615576f h1:bzrmHuQ3ZGWWhGDyTL0OqihQWXGXSXNuBPkDoDB8SS4= github.com/btcsuite/btcwallet/wallet/txsizes v1.0.1-0.20210519225359-6ab9b615576f/go.mod h1:pauEU8UuMFiThe5PB3EO+gO5kx87Me5NvdQDsTuq6cs= github.com/btcsuite/btcwallet/walletdb v1.3.4/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= -github.com/btcsuite/btcwallet/walletdb v1.3.5-0.20210513043850-3a2f12e3a954/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= -github.com/btcsuite/btcwallet/walletdb v1.3.5 h1:SoxUPLgJUkyO1XqON6X7x+rjHJoIpRQov8o8X6gNoz8= github.com/btcsuite/btcwallet/walletdb v1.3.5/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= +github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec h1:zcAU3Ij8SmqaE+ITtS76fua2Niq7DRNp46sJRhi8PiI= +github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= github.com/btcsuite/btcwallet/wtxmgr v1.3.0/go.mod h1:awQsh1n/0ZrEQ+JZgWvHeo153ubzEisf/FyNtwI0dDk= -github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210706234807-aaf03fee735a h1:25oMK8eFUTVMyKGHc2xX7pNkU4u208Dpf6IPVh5E+cA= -github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210706234807-aaf03fee735a/go.mod h1:UM38ixX8VwJ9qey4umf//0H3ndn5kSImFZ46V54Nd5Q= +github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210803004036-eebed51155ec h1:q2OVY/GUKpdpfaVYztVrWoTRVzyzdDQftRcgHs/6cXI= +github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210803004036-eebed51155ec/go.mod h1:UM38ixX8VwJ9qey4umf//0H3ndn5kSImFZ46V54Nd5Q= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/golangcrypto v0.0.0-20150304025918-53f62d9b43e8/go.mod h1:tYvUd8KLhm/oXvUeSEs2VlLghFjQt9+ZaF9ghH0JNjc= @@ -613,9 +614,9 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/kvdb/go.mod b/kvdb/go.mod index 42f88ac00..c50152142 100644 --- a/kvdb/go.mod +++ b/kvdb/go.mod @@ -2,7 +2,7 @@ module github.com/lightningnetwork/lnd/kvdb require ( github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f - github.com/btcsuite/btcwallet/walletdb v1.3.5-0.20210513043850-3a2f12e3a954 + github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec github.com/lightningnetwork/lnd/healthcheck v1.0.0 github.com/stretchr/testify v1.7.0 go.etcd.io/bbolt v1.3.6 diff --git a/kvdb/go.sum b/kvdb/go.sum index 20502f7b0..9cdaa0650 100644 --- a/kvdb/go.sum +++ b/kvdb/go.sum @@ -35,8 +35,8 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcwallet/walletdb v1.3.5-0.20210513043850-3a2f12e3a954 h1:CB6chiHPhZWmbCL7kFCADDf15V6I3EUNDgGC25jbptc= -github.com/btcsuite/btcwallet/walletdb v1.3.5-0.20210513043850-3a2f12e3a954/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= +github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec h1:zcAU3Ij8SmqaE+ITtS76fua2Niq7DRNp46sJRhi8PiI= +github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= diff --git a/kvdb/interface.go b/kvdb/interface.go index a54a94d82..87593b678 100644 --- a/kvdb/interface.go +++ b/kvdb/interface.go @@ -13,12 +13,7 @@ import ( // database backend used), the reset function will be called before each retry // respectively. func Update(db Backend, f func(tx RwTx) error, reset func()) error { - if extendedDB, ok := db.(ExtendedBackend); ok { - return extendedDB.Update(f, reset) - } - - reset() - return walletdb.Update(db, f) + return db.Update(f, reset) } // View opens a database read transaction and executes the function f with the @@ -29,15 +24,7 @@ func Update(db Backend, f func(tx RwTx) error, reset func()) error { // expect retries of the f closure (depending on the database backend used), the // reset function will be called before each retry respectively. func View(db Backend, f func(tx RTx) error, reset func()) error { - if extendedDB, ok := db.(ExtendedBackend); ok { - return extendedDB.View(f, reset) - } - - // Since we know that walletdb simply calls into bbolt which never - // retries transactions, we'll call the reset function here before View. - reset() - - return walletdb.View(db, f) + return db.View(f, reset) } // Batch is identical to the Update call, but it attempts to combine several @@ -46,10 +33,12 @@ func View(db Backend, f func(tx RTx) error, reset func()) error { // Batch. For etcd Batch simply does an Update since combination is more complex // in that case due to STM retries. func Batch(db Backend, f func(tx RwTx) error) error { - if extendedDB, ok := db.(ExtendedBackend); ok { + // Fall back to the normal Update method if the backend doesn't support + // batching. + if _, ok := db.(walletdb.BatchDB); !ok { // Since Batch calls handle external state reset, we can safely // pass in an empty reset closure. - return extendedDB.Update(f, func() {}) + return db.Update(f, func() {}) } return walletdb.Batch(db, f) @@ -66,35 +55,6 @@ var Create = walletdb.Create // through read or read+write transactions. type Backend = walletdb.DB -// ExtendedBackend is and interface that supports View and Update and also able -// to collect database access patterns. -type ExtendedBackend interface { - Backend - - // PrintStats returns all collected stats pretty printed into a string. - PrintStats() string - - // View opens a database read transaction and executes the function f - // with the transaction passed as a parameter. After f exits, the - // transaction is rolled back. If f errors, its error is returned, not a - // rollback error (if any occur). The passed reset function is called - // before the start of the transaction and can be used to reset - // intermediate state. As callers may expect retries of the f closure - // (depending on the database backend used), the reset function will be - //called before each retry respectively. - View(f func(tx walletdb.ReadTx) error, reset func()) error - - // Update opens a database read/write transaction and executes the - // function f with the transaction passed as a parameter. After f exits, - // if f did not error, the transaction is committed. Otherwise, if f did - // error, the transaction is rolled back. If the rollback fails, the - // original error returned by f is still returned. If the commit fails, - // the commit error is returned. As callers may expect retries of the f - // closure (depending on the database backend used), the reset function - // will be called before each retry respectively. - Update(f func(tx walletdb.ReadWriteTx) error, reset func()) error -} - // Open opens an existing database for the specified type. The arguments are // specific to the database type driver. See the documentation for the database // driver for further details. @@ -129,9 +89,8 @@ type RwBucket = walletdb.ReadWriteBucket // operations. type RwCursor = walletdb.ReadWriteCursor -// ReadWriteTx represents a database transaction that can be used for both -// reads and writes. When only reads are necessary, consider using a RTx -// instead. +// RwTx represents a database transaction that can be used for both reads and +// writes. When only reads are necessary, consider using a RTx instead. type RwTx = walletdb.ReadWriteTx var ( diff --git a/lnwallet/test/test_interface.go b/lnwallet/test/test_interface.go index be2ab1d0c..dd6bf1a95 100644 --- a/lnwallet/test/test_interface.go +++ b/lnwallet/test/test_interface.go @@ -3201,7 +3201,7 @@ func TestLightningWallet(t *testing.T, targetBackEnd string) { testCfg := chainntnfs.CacheConfig{ QueryDisable: false, } - hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db) + hintCache, err := chainntnfs.NewHeightHintCache(testCfg, db.Backend) if err != nil { t.Fatalf("unable to create height hint cache: %v", err) }