multi: move lnd specific code to own package

pull/3/head
Oliver Gugger 4 years ago
parent 937db7b4aa
commit 9c2b85c21b
No known key found for this signature in database
GPG Key ID: 8E4256593F177720

@ -21,6 +21,7 @@ linters:
- gosec
- funlen
- maligned
- interfacer
issues:
exclude-rules:

@ -3,13 +3,13 @@ package main
import (
"bytes"
"fmt"
"github.com/guggero/chantools/btc"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/keychain"
"path"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/keychain"
)
type chanBackupCommand struct {
@ -55,7 +55,7 @@ func (c *chanBackupCommand) Execute(_ []string) error {
return fmt.Errorf("error opening rescue DB: %v", err)
}
multiFile := chanbackup.NewMultiFile(c.MultiFile)
keyRing := &btc.HDKeyRing{
keyRing := &lnd.HDKeyRing{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}
@ -70,7 +70,7 @@ func createChannelBackup(db *channeldb.DB, multiFile *chanbackup.MultiFile,
return fmt.Errorf("error extracting channel backup: %v", err)
}
multi := &chanbackup.Multi{
Version: chanbackup.DefaultMultiVersion,
Version: chanbackup.DefaultMultiVersion,
StaticBackups: singles,
}
var b bytes.Buffer

@ -65,7 +65,9 @@ func (c *compactDBCommand) compact(dst, src *bbolt.DB) error {
if err != nil {
return err
}
defer tx.Rollback()
defer func() {
_ = tx.Rollback()
}()
if err := c.walk(src, func(keys [][]byte, k, v []byte, seq uint64) error {
// On each key/value, check if we have exceeded tx size.
@ -166,9 +168,9 @@ func (c *compactDBCommand) walkBucket(b *bbolt.Bucket, keypath [][]byte,
if v == nil {
bkt := b.Bucket(k)
if bkt == nil {
log.Warnf("Could not read bucket '%s' (full " +
"path '%s') database is likely " +
"corrupted. Continuing anyway but " +
log.Warnf("Could not read bucket '%s' (full "+
"path '%s') database is likely "+
"corrupted. Continuing anyway but "+
"skipping corrupt bucket.", k, keypath)
return nil
}

@ -5,7 +5,7 @@ import (
"github.com/btcsuite/btcutil"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/lnd"
)
type deriveKeyCommand struct {
@ -41,11 +41,11 @@ func deriveKey(extendedKey *hdkeychain.ExtendedKey, path string,
neuter bool) error {
fmt.Printf("Deriving path %s for network %s.\n", path, chainParams.Name)
parsedPath, err := btc.ParsePath(path)
parsedPath, err := lnd.ParsePath(path)
if err != nil {
return fmt.Errorf("could not parse derivation path: %v", err)
}
derivedKey, err := btc.DeriveChildren(extendedKey, parsedPath)
derivedKey, err := lnd.DeriveChildren(extendedKey, parsedPath)
if err != nil {
return fmt.Errorf("could not derive children: %v", err)
}

@ -5,8 +5,8 @@ import (
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/davecgh/go-spew/spew"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/dump"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/keychain"
)
@ -41,7 +41,7 @@ func (c *dumpBackupCommand) Execute(_ []string) error {
return fmt.Errorf("backup file is required")
}
multiFile := chanbackup.NewMultiFile(c.MultiFile)
keyRing := &btc.HDKeyRing{
keyRing := &lnd.HDKeyRing{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}

@ -7,7 +7,7 @@ import (
"time"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/keychain"
)
@ -46,7 +46,7 @@ func (c *filterBackupCommand) Execute(_ []string) error {
return fmt.Errorf("backup file is required")
}
multiFile := chanbackup.NewMultiFile(c.MultiFile)
keyRing := &btc.HDKeyRing{
keyRing := &lnd.HDKeyRing{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}

@ -6,7 +6,7 @@ import (
"time"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/chanbackup"
"github.com/lightningnetwork/lnd/keychain"
)
@ -40,7 +40,7 @@ func (c *fixOldBackupCommand) Execute(_ []string) error {
return fmt.Errorf("backup file is required")
}
multiFile := chanbackup.NewMultiFile(c.MultiFile)
keyRing := &btc.HDKeyRing{
keyRing := &lnd.HDKeyRing{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}
@ -48,7 +48,7 @@ func (c *fixOldBackupCommand) Execute(_ []string) error {
}
func fixOldChannelBackup(multiFile *chanbackup.MultiFile,
ring *btc.HDKeyRing) error {
ring *lnd.HDKeyRing) error {
multi, err := multiFile.ExtractMulti(ring)
if err != nil {

@ -14,6 +14,7 @@ import (
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/dataformat"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/input"
)
@ -49,7 +50,7 @@ func (c *forceCloseCommand) Execute(_ []string) error {
return fmt.Errorf("rescue DB is required")
}
db, err := channeldb.Open(
path.Dir(c.ChannelDB),channeldb.OptionSetSyncFreelist(true),
path.Dir(c.ChannelDB), channeldb.OptionSetSyncFreelist(true),
channeldb.OptionReadOnly(true),
)
if err != nil {
@ -73,7 +74,7 @@ func forceCloseChannels(extendedKey *hdkeychain.ExtendedKey,
return err
}
api := &btc.ExplorerAPI{BaseURL: cfg.APIURL}
signer := &btc.Signer{
signer := &lnd.Signer{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}
@ -103,7 +104,7 @@ func forceCloseChannels(extendedKey *hdkeychain.ExtendedKey,
}
// Create signed transaction.
lc := &btc.LightningChannel{
lc := &lnd.LightningChannel{
LocalChanCfg: channel.LocalChanCfg,
RemoteChanCfg: channel.RemoteChanCfg,
ChannelState: channel,

@ -7,7 +7,7 @@ import (
"github.com/btcsuite/btcd/chaincfg"
"github.com/btcsuite/btcutil"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/lnd"
)
const (
@ -84,10 +84,10 @@ func (c *genImportScriptCommand) Execute(_ []string) error {
// External branch first (m/84'/<coinType>'/0'/0/x).
for i := uint32(0); i < c.RecoveryWindow; i++ {
derivedKey, err := btc.DeriveChildren(extendedKey, []uint32{
btc.HardenedKeyStart + uint32(84),
btc.HardenedKeyStart + chainParams.HDCoinType,
btc.HardenedKeyStart + uint32(0),
derivedKey, err := lnd.DeriveChildren(extendedKey, []uint32{
lnd.HardenedKeyStart + uint32(84),
lnd.HardenedKeyStart + chainParams.HDCoinType,
lnd.HardenedKeyStart + uint32(0),
0,
i,
})
@ -102,10 +102,10 @@ func (c *genImportScriptCommand) Execute(_ []string) error {
// Now the internal branch (m/84'/<coinType>'/0'/1/x).
for i := uint32(0); i < c.RecoveryWindow; i++ {
derivedKey, err := btc.DeriveChildren(extendedKey, []uint32{
btc.HardenedKeyStart + uint32(84),
btc.HardenedKeyStart + chainParams.HDCoinType,
btc.HardenedKeyStart + uint32(0),
derivedKey, err := lnd.DeriveChildren(extendedKey, []uint32{
lnd.HardenedKeyStart + uint32(84),
lnd.HardenedKeyStart + chainParams.HDCoinType,
lnd.HardenedKeyStart + uint32(0),
1,
i,
})

@ -12,8 +12,8 @@ import (
"github.com/btcsuite/btcd/btcec"
"github.com/btcsuite/btcutil"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/dataformat"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/input"
"github.com/lightningnetwork/lnd/keychain"
@ -197,10 +197,10 @@ func fillCache(extendedKey *hdkeychain.ExtendedKey) error {
cache = make([]*cacheEntry, cacheSize)
for i := 0; i < cacheSize; i++ {
key, err := btc.DeriveChildren(extendedKey, []uint32{
btc.HardenedKeyStart + uint32(keychain.BIP0043Purpose),
btc.HardenedKeyStart + chainParams.HDCoinType,
btc.HardenedKeyStart +
key, err := lnd.DeriveChildren(extendedKey, []uint32{
lnd.HardenedKeyStart + uint32(keychain.BIP0043Purpose),
lnd.HardenedKeyStart + chainParams.HDCoinType,
lnd.HardenedKeyStart +
uint32(keychain.KeyFamilyPaymentBase),
0,
uint32(i),

@ -12,6 +12,7 @@ import (
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/guggero/chantools/btc"
"github.com/guggero/chantools/dataformat"
"github.com/guggero/chantools/lnd"
"github.com/lightningnetwork/lnd/input"
)
@ -72,7 +73,7 @@ func sweepTimeLock(extendedKey *hdkeychain.ExtendedKey, apiURL string,
publish bool) error {
// Create signer and transaction template.
signer := &btc.Signer{
signer := &lnd.Signer{
ExtendedKey: extendedKey,
ChainParams: chainParams,
}

@ -111,7 +111,7 @@ func walletInfo(w *wallet.Wallet) error {
},
})
if err != nil {
return fmt.Errorf("unable to open key ring for coin type %d: " +
return fmt.Errorf("unable to open key ring for coin type %d: "+
"%v", chainParams.HDCoinType, err)
}
idPrivKey.Curve = btcec.S256()

@ -1,4 +1,4 @@
package btc
package lnd
import (
"github.com/btcsuite/btcd/txscript"

@ -1,4 +1,4 @@
package btc
package lnd
import (
"fmt"

@ -1,4 +1,4 @@
package btc
package lnd
import (
"fmt"
Loading…
Cancel
Save