waddrmgr: convert unit tests to package-level tests

In this commit, we convert our unit tests to have package-level access.
We do this as an effort to reduce test code duplication when we
introduce migration tests which require access to specific unexported
functions/methods.
This commit is contained in:
Wilmer Paulino 2018-11-05 23:24:38 -08:00
parent 6d43b2e29b
commit c2d6f1a8b3
No known key found for this signature in database
GPG key ID: 6DF57B9F9514972F
2 changed files with 168 additions and 165 deletions

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.
package waddrmgr_test
package waddrmgr
import (
"encoding/hex"
@ -13,7 +13,6 @@ import (
"time"
"github.com/btcsuite/btcd/chaincfg"
"github.com/btcsuite/btcwallet/waddrmgr"
"github.com/btcsuite/btcwallet/walletdb"
_ "github.com/btcsuite/btcwallet/walletdb/bdb"
)
@ -34,7 +33,7 @@ var (
// fastScrypt are parameters used throughout the tests to speed up the
// scrypt operations.
fastScrypt = &waddrmgr.ScryptOptions{
fastScrypt = &ScryptOptions{
N: 16,
R: 8,
P: 1,
@ -55,7 +54,7 @@ var (
pubKey: hexToBytes("02d8f88468c5a2e8e1815faf555f59cbd1979e3dbdf823f80c271b6fb70d2d519b"),
privKey: hexToBytes("c27d6581b92785834b381fa697c4b0ffc4574b495743722e0acb7601b1b68b99"),
privKeyWIF: "L3jmpy54Pc7MLXTN2mL8Xas7BJziwKaUGmgnXXzgGbVRdiAniXZk",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 0,
Index: 0,
@ -70,7 +69,7 @@ var (
pubKey: hexToBytes("02b9c175b908624f8a8eaac227d0e8c77c0eec327b8c512ad1b8b7a4b5b676971f"),
privKey: hexToBytes("18f3b191019e83878a81557abebb2afda199e31d22e150d8bf4df4561671be6c"),
privKeyWIF: "Kx4DNid19W8sjNFN3uPqQE7UYnCqyEp7unCvdkf2LrVUFpnDtwpB",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 0,
Index: 1,
@ -85,7 +84,7 @@ var (
pubKey: hexToBytes("0329faddf1254d490d6add49e2b08cf52b561038c72baec0edb3cfacff71ff1021"),
privKey: hexToBytes("ccb8f6305b73136b363644b647f6efc0fd27b6b7d9c11c7e560662ed38db7b34"),
privKeyWIF: "L45fWF6Yd736fDohuB97vwRRLdQQJr3ZGvbokk9ubiT7aNrg7tTn",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 0,
Index: 2,
@ -100,7 +99,7 @@ var (
pubKey: hexToBytes("03d738324e2f0ce42e46975d7f8c7117c1670e3d7912b0291aea452add99674774"),
privKey: hexToBytes("d6bc8ff768814fede2adcdb74826bd846924341b3862e3b6e31cdc084e992940"),
privKeyWIF: "L4R8XyxYQyPSpTwj8w96tM86a6j3QA9jbRPj3RA7DVTVWk71ndeP",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 0,
Index: 3,
@ -115,7 +114,7 @@ var (
pubKey: hexToBytes("03a917acd5cd5b6f544b43f1921a35677e4d5320e5d2add2056039b4b44fdf905e"),
privKey: hexToBytes("8563ade061110e03aee50695ffc5cb1c06c8310bde0a3674257c853c966968c0"),
privKeyWIF: "L1h16Hunxomww4FrpyQP2iFmWNgG7U1u3awp6Vd3s2uGf7v5VU8c",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 0,
Index: 4,
@ -130,7 +129,7 @@ var (
pubKey: hexToBytes("020a1290b997c0a234a95213962e7edcb761c7360f0230f698a1a3e71c37047bb0"),
privKey: hexToBytes("fe4f855fcf059ec6ddf7b25f63b19aa49c771d1fcb9850b68ae3d65e20657a60"),
privKeyWIF: "L5k4HivqXvohxBMpuwD38iUgi6uewffwZny91ZNYfM39RXH2x3QR",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 1,
Index: 0,
@ -145,7 +144,7 @@ var (
pubKey: hexToBytes("03f79bbde32af42dde98195f011d95982602fcd0dab657fe4a1f49f9d5ada1e02d"),
privKey: hexToBytes("bfef521317c65b018ae7e6d7ecc3aa700d5d0f7ea84d567be9270382d0b5e3e6"),
privKeyWIF: "L3eomUajnTDM3Pc8GU47qqXUFuCjvpqY7NYN9mH3x1ZFjDgiY4BU",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 1,
Index: 1,
@ -160,7 +159,7 @@ var (
pubKey: hexToBytes("023ded84afe4fe91b52b45c3deb26fd263f749cbc27747dc964dae9e0739cbc579"),
privKey: hexToBytes("f506dffd4494c24006df7a35f3291f7ca0297a1a431557a1339bfed6f48738ca"),
privKeyWIF: "L5S1bVQUPqQb1Su82fLoSpnGCjcPfdAQE1pJxWRopJSBdYNDHESv",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 1,
Index: 2,
@ -175,7 +174,7 @@ var (
pubKey: hexToBytes("030f1e79f06824e10a259914ec310528bb2d5b8d6356341fe9dff55498591af6af"),
privKey: hexToBytes("b3629de8ef6a275b4ffae41aa2bbbc2952eb92282ea6402435abbb010ecc1fb8"),
privKeyWIF: "L3EQsGeEnyXmKaux54cG4DQeCSQDvGuvEuy3W2ss4geum7AtWaHw",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 1,
Index: 3,
@ -190,7 +189,7 @@ var (
pubKey: hexToBytes("0317d7182e26b6ca3e0f3db531c474b9cab7a763a75eabff2e14ac92f62a793238"),
privKey: hexToBytes("ca747a7ef815ea0dbe68655272cecbfbd65f2a109019a9ed28e0d3dcaffe05c3"),
privKeyWIF: "L41Frac75RPbTELKzw1EGC2qCkdveiVumpmsyX4daAvyyCMxit1W",
derivationInfo: waddrmgr.DerivationPath{
derivationInfo: DerivationPath{
Account: 0,
Branch: 1,
Index: 4,
@ -209,11 +208,13 @@ var (
// checkManagerError ensures the passed error is a ManagerError with an error
// code that matches the passed error code.
func checkManagerError(t *testing.T, testName string, gotErr error, wantErrCode waddrmgr.ErrorCode) bool {
merr, ok := gotErr.(waddrmgr.ManagerError)
func checkManagerError(t *testing.T, testName string, gotErr error,
wantErrCode ErrorCode) bool {
merr, ok := gotErr.(ManagerError)
if !ok {
t.Errorf("%s: unexpected error type - got %T, want %T",
testName, gotErr, waddrmgr.ManagerError{})
testName, gotErr, ManagerError{})
return false
}
if merr.ErrorCode != wantErrCode {
@ -255,7 +256,7 @@ func emptyDB(t *testing.T) (tearDownFunc func(), db walletdb.DB) {
// setupManager creates a new address manager and returns a teardown function
// that should be invoked to ensure it is closed and removed upon completion.
func setupManager(t *testing.T) (tearDownFunc func(), db walletdb.DB, mgr *waddrmgr.Manager) {
func setupManager(t *testing.T) (tearDownFunc func(), db walletdb.DB, mgr *Manager) {
// Create a new manager in a temp directory.
dirName, err := ioutil.TempDir("", "mgrtest")
if err != nil {
@ -272,14 +273,14 @@ func setupManager(t *testing.T) (tearDownFunc func(), db walletdb.DB, mgr *waddr
if err != nil {
return err
}
err = waddrmgr.Create(
err = Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
if err != nil {
return err
}
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if err != nil {

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.
package waddrmgr_test
package waddrmgr
import (
"bytes"
@ -17,7 +17,6 @@ import (
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcutil"
"github.com/btcsuite/btcwallet/snacl"
"github.com/btcsuite/btcwallet/waddrmgr"
"github.com/btcsuite/btcwallet/walletdb"
"github.com/davecgh/go-spew/spew"
)
@ -34,10 +33,10 @@ func newHash(hexStr string) *chainhash.Hash {
return hash
}
// failingSecretKeyGen is a waddrmgr.SecretKeyGenerator that always returns
// failingSecretKeyGen is a SecretKeyGenerator that always returns
// snacl.ErrDecryptFailed.
func failingSecretKeyGen(passphrase *[]byte,
config *waddrmgr.ScryptOptions) (*snacl.SecretKey, error) {
config *ScryptOptions) (*snacl.SecretKey, error) {
return nil, snacl.ErrDecryptFailed
}
@ -52,8 +51,8 @@ func failingSecretKeyGen(passphrase *[]byte,
type testContext struct {
t *testing.T
db walletdb.DB
rootManager *waddrmgr.Manager
manager *waddrmgr.ScopedKeyManager
rootManager *Manager
manager *ScopedKeyManager
account uint32
create bool
unlocked bool
@ -81,7 +80,7 @@ type expectedAddr struct {
privKey []byte
privKeyWIF string
script []byte
derivationInfo waddrmgr.DerivationPath
derivationInfo DerivationPath
}
// testNamePrefix is a helper to return a prefix to show for test errors based
@ -103,7 +102,7 @@ func testNamePrefix(tc *testContext) string {
// will also be tested, otherwise, the functions which deal with private data
// are checked to ensure they return the correct error.
func testManagedPubKeyAddress(tc *testContext, prefix string,
gotAddr waddrmgr.ManagedPubKeyAddress, wantAddr *expectedAddr) bool {
gotAddr ManagedPubKeyAddress, wantAddr *expectedAddr) bool {
// Ensure pubkey is the expected value for the managed address.
var gpubBytes []byte
@ -152,7 +151,7 @@ func testManagedPubKeyAddress(tc *testContext, prefix string,
case tc.watchingOnly:
// Confirm expected watching-only error.
testName := fmt.Sprintf("%s PrivKey", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrWatchingOnly) {
if !checkManagerError(tc.t, testName, err, ErrWatchingOnly) {
return false
}
case tc.unlocked:
@ -170,7 +169,7 @@ func testManagedPubKeyAddress(tc *testContext, prefix string,
default:
// Confirm expected locked error.
testName := fmt.Sprintf("%s PrivKey", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrLocked) {
if !checkManagerError(tc.t, testName, err, ErrLocked) {
return false
}
}
@ -184,7 +183,7 @@ func testManagedPubKeyAddress(tc *testContext, prefix string,
case tc.watchingOnly:
// Confirm expected watching-only error.
testName := fmt.Sprintf("%s ExportPrivKey", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrWatchingOnly) {
if !checkManagerError(tc.t, testName, err, ErrWatchingOnly) {
return false
}
case tc.unlocked:
@ -202,7 +201,7 @@ func testManagedPubKeyAddress(tc *testContext, prefix string,
default:
// Confirm expected locked error.
testName := fmt.Sprintf("%s ExportPrivKey", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrLocked) {
if !checkManagerError(tc.t, testName, err, ErrLocked) {
return false
}
}
@ -223,7 +222,9 @@ func testManagedPubKeyAddress(tc *testContext, prefix string,
// When the test context indicates the manager is unlocked, the private data
// will also be tested, otherwise, the functions which deal with private data
// are checked to ensure they return the correct error.
func testManagedScriptAddress(tc *testContext, prefix string, gotAddr waddrmgr.ManagedScriptAddress, wantAddr *expectedAddr) bool {
func testManagedScriptAddress(tc *testContext, prefix string,
gotAddr ManagedScriptAddress, wantAddr *expectedAddr) bool {
// Ensure script is the expected value for the managed address.
// Ensure script is the expected value for the managed address. Since
// this is only available when the manager is unlocked, also check for
@ -233,7 +234,7 @@ func testManagedScriptAddress(tc *testContext, prefix string, gotAddr waddrmgr.M
case tc.watchingOnly:
// Confirm expected watching-only error.
testName := fmt.Sprintf("%s Script", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrWatchingOnly) {
if !checkManagerError(tc.t, testName, err, ErrWatchingOnly) {
return false
}
case tc.unlocked:
@ -250,7 +251,7 @@ func testManagedScriptAddress(tc *testContext, prefix string, gotAddr waddrmgr.M
default:
// Confirm expected locked error.
testName := fmt.Sprintf("%s Script", prefix)
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrLocked) {
if !checkManagerError(tc.t, testName, err, ErrLocked) {
return false
}
}
@ -266,7 +267,9 @@ func testManagedScriptAddress(tc *testContext, prefix string, gotAddr waddrmgr.M
// When the test context indicates the manager is unlocked, the private data
// will also be tested, otherwise, the functions which deal with private data
// are checked to ensure they return the correct error.
func testAddress(tc *testContext, prefix string, gotAddr waddrmgr.ManagedAddress, wantAddr *expectedAddr) bool {
func testAddress(tc *testContext, prefix string, gotAddr ManagedAddress,
wantAddr *expectedAddr) bool {
if gotAddr.Account() != tc.account {
tc.t.Errorf("ManagedAddress.Account: unexpected account - got "+
"%d, want %d", gotAddr.Account(), tc.account)
@ -307,12 +310,12 @@ func testAddress(tc *testContext, prefix string, gotAddr waddrmgr.ManagedAddress
}
switch addr := gotAddr.(type) {
case waddrmgr.ManagedPubKeyAddress:
case ManagedPubKeyAddress:
if !testManagedPubKeyAddress(tc, prefix, addr, wantAddr) {
return false
}
case waddrmgr.ManagedScriptAddress:
case ManagedScriptAddress:
if !testManagedScriptAddress(tc, prefix, addr, wantAddr) {
return false
}
@ -327,10 +330,10 @@ func testAddress(tc *testContext, prefix string, gotAddr waddrmgr.ManagedAddress
// and unlocked.
func testExternalAddresses(tc *testContext) bool {
prefix := testNamePrefix(tc) + " testExternalAddresses"
var addrs []waddrmgr.ManagedAddress
var addrs []ManagedAddress
if tc.create {
prefix := prefix + " NextExternalAddresses"
var addrs []waddrmgr.ManagedAddress
var addrs []ManagedAddress
err := walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
var err error
@ -365,7 +368,7 @@ func testExternalAddresses(tc *testContext) bool {
// Ensure the last external address is the expected one.
leaPrefix := prefix + " LastExternalAddress"
var lastAddr waddrmgr.ManagedAddress
var lastAddr ManagedAddress
err := walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -395,7 +398,7 @@ func testExternalAddresses(tc *testContext) bool {
}
prefix := fmt.Sprintf("%s Address #%d", prefix, i)
var addr waddrmgr.ManagedAddress
var addr ManagedAddress
err = walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -480,7 +483,7 @@ func testInternalAddresses(tc *testContext) bool {
}
prefix := testNamePrefix(tc) + " testInternalAddresses"
var addrs []waddrmgr.ManagedAddress
var addrs []ManagedAddress
if tc.create {
prefix := prefix + " NextInternalAddress"
err := walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
@ -517,7 +520,7 @@ func testInternalAddresses(tc *testContext) bool {
// Ensure the last internal address is the expected one.
liaPrefix := prefix + " LastInternalAddress"
var lastAddr waddrmgr.ManagedAddress
var lastAddr ManagedAddress
err := walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -547,7 +550,7 @@ func testInternalAddresses(tc *testContext) bool {
}
prefix := fmt.Sprintf("%s Address #%d", prefix, i)
var addr waddrmgr.ManagedAddress
var addr ManagedAddress
err = walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -618,9 +621,9 @@ func testLocking(tc *testContext) bool {
// should be ErrLocked or ErrWatchingOnly depending on the type of the
// address manager.
err := tc.rootManager.Lock()
wantErrCode := waddrmgr.ErrLocked
wantErrCode := ErrLocked
if tc.watchingOnly {
wantErrCode = waddrmgr.ErrWatchingOnly
wantErrCode = ErrWatchingOnly
}
if !checkManagerError(tc.t, "Lock", err, wantErrCode) {
return false
@ -635,7 +638,7 @@ func testLocking(tc *testContext) bool {
return tc.rootManager.Unlock(ns, privPassphrase)
})
if tc.watchingOnly {
if !checkManagerError(tc.t, "Unlock", err, waddrmgr.ErrWatchingOnly) {
if !checkManagerError(tc.t, "Unlock", err, ErrWatchingOnly) {
return false
}
} else if err != nil {
@ -655,7 +658,7 @@ func testLocking(tc *testContext) bool {
return tc.rootManager.Unlock(ns, privPassphrase)
})
if tc.watchingOnly {
if !checkManagerError(tc.t, "Unlock2", err, waddrmgr.ErrWatchingOnly) {
if !checkManagerError(tc.t, "Unlock2", err, ErrWatchingOnly) {
return false
}
} else if err != nil {
@ -673,9 +676,9 @@ func testLocking(tc *testContext) bool {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
return tc.rootManager.Unlock(ns, []byte("invalidpassphrase"))
})
wantErrCode = waddrmgr.ErrWrongPassphrase
wantErrCode = ErrWrongPassphrase
if tc.watchingOnly {
wantErrCode = waddrmgr.ErrWatchingOnly
wantErrCode = ErrWatchingOnly
}
if !checkManagerError(tc.t, "Unlock", err, wantErrCode) {
return false
@ -700,7 +703,7 @@ func testImportPrivateKey(tc *testContext) bool {
tests := []struct {
name string
in string
blockstamp waddrmgr.BlockStamp
blockstamp BlockStamp
expected expectedAddr
}{
{
@ -750,7 +753,7 @@ func testImportPrivateKey(tc *testContext) bool {
}
// Only import the private keys when in the create phase of testing.
tc.account = waddrmgr.ImportedAddrAccount
tc.account = ImportedAddrAccount
prefix := testNamePrefix(tc) + " testImportPrivateKey"
if tc.create {
for i, test := range tests {
@ -761,7 +764,7 @@ func testImportPrivateKey(tc *testContext) bool {
"error: %v", prefix, i, test.name, err)
continue
}
var addr waddrmgr.ManagedPubKeyAddress
var addr ManagedPubKeyAddress
err = walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
var err error
@ -802,7 +805,7 @@ func testImportPrivateKey(tc *testContext) bool {
}
taPrefix := fmt.Sprintf("%s Address #%d (%s)", prefix,
i, test.name)
var ma waddrmgr.ManagedAddress
var ma ManagedAddress
err = walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -866,7 +869,7 @@ func testImportScript(tc *testContext) bool {
tests := []struct {
name string
in []byte
blockstamp waddrmgr.BlockStamp
blockstamp BlockStamp
expected expectedAddr
}{
{
@ -923,7 +926,7 @@ func testImportScript(tc *testContext) bool {
}
// Only import the scripts when in the create phase of testing.
tc.account = waddrmgr.ImportedAddrAccount
tc.account = ImportedAddrAccount
prefix := testNamePrefix(tc)
if tc.create {
for i, test := range tests {
@ -931,7 +934,7 @@ func testImportScript(tc *testContext) bool {
prefix := fmt.Sprintf("%s ImportScript #%d (%s)", prefix,
i, test.name)
var addr waddrmgr.ManagedScriptAddress
var addr ManagedScriptAddress
err := walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
var err error
@ -970,7 +973,7 @@ func testImportScript(tc *testContext) bool {
}
taPrefix := fmt.Sprintf("%s Address #%d (%s)", prefix,
i, test.name)
var ma waddrmgr.ManagedAddress
var ma ManagedAddress
err = walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
@ -1107,27 +1110,27 @@ func testChangePassphrase(tc *testContext) bool {
// that intentionally errors.
testName := "ChangePassphrase (public) with invalid new secret key"
oldKeyGen := waddrmgr.SetSecretKeyGen(failingSecretKeyGen)
oldKeyGen := SetSecretKeyGen(failingSecretKeyGen)
err := walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
return tc.rootManager.ChangePassphrase(
ns, pubPassphrase, pubPassphrase2, false, fastScrypt,
)
})
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrCrypto) {
if !checkManagerError(tc.t, testName, err, ErrCrypto) {
return false
}
// Attempt to change public passphrase with invalid old passphrase.
testName = "ChangePassphrase (public) with invalid old passphrase"
waddrmgr.SetSecretKeyGen(oldKeyGen)
SetSecretKeyGen(oldKeyGen)
err = walletdb.Update(tc.db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
return tc.rootManager.ChangePassphrase(
ns, []byte("bogus"), pubPassphrase2, false, fastScrypt,
)
})
if !checkManagerError(tc.t, testName, err, waddrmgr.ErrWrongPassphrase) {
if !checkManagerError(tc.t, testName, err, ErrWrongPassphrase) {
return false
}
@ -1172,9 +1175,9 @@ func testChangePassphrase(tc *testContext) bool {
ns, []byte("bogus"), privPassphrase2, true, fastScrypt,
)
})
wantErrCode := waddrmgr.ErrWrongPassphrase
wantErrCode := ErrWrongPassphrase
if tc.watchingOnly {
wantErrCode = waddrmgr.ErrWatchingOnly
wantErrCode = ErrWatchingOnly
}
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
@ -1251,8 +1254,10 @@ func testNewAccount(tc *testContext) bool {
_, err := tc.manager.NewAccount(ns, "test")
return err
})
if !checkManagerError(tc.t, "Create account in watching-only mode", err,
waddrmgr.ErrWatchingOnly) {
if !checkManagerError(
tc.t, "Create account in watching-only mode", err,
ErrWatchingOnly,
) {
tc.manager.Close()
return false
}
@ -1264,8 +1269,9 @@ func testNewAccount(tc *testContext) bool {
_, err := tc.manager.NewAccount(ns, "test")
return err
})
if !checkManagerError(tc.t, "Create account when wallet is locked", err,
waddrmgr.ErrLocked) {
if !checkManagerError(
tc.t, "Create account when wallet is locked", err, ErrLocked,
) {
tc.manager.Close()
return false
}
@ -1313,7 +1319,7 @@ func testNewAccount(tc *testContext) bool {
_, err := tc.manager.NewAccount(ns, testName)
return err
})
wantErrCode := waddrmgr.ErrDuplicateAccount
wantErrCode := ErrDuplicateAccount
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1324,7 +1330,7 @@ func testNewAccount(tc *testContext) bool {
_, err := tc.manager.NewAccount(ns, testName)
return err
})
wantErrCode = waddrmgr.ErrInvalidAccount
wantErrCode = ErrInvalidAccount
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1334,7 +1340,7 @@ func testNewAccount(tc *testContext) bool {
_, err := tc.manager.NewAccount(ns, testName)
return err
})
wantErrCode = waddrmgr.ErrInvalidAccount
wantErrCode = ErrInvalidAccount
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1346,8 +1352,8 @@ func testNewAccount(tc *testContext) bool {
func testLookupAccount(tc *testContext) bool {
// Lookup accounts created earlier in testNewAccount
expectedAccounts := map[string]uint32{
waddrmgr.TstDefaultAccountName: waddrmgr.DefaultAccountNum,
waddrmgr.ImportedAddrAccountName: waddrmgr.ImportedAddrAccount,
TstDefaultAccountName: DefaultAccountNum,
ImportedAddrAccountName: ImportedAddrAccount,
}
for acctName, expectedAccount := range expectedAccounts {
var account uint32
@ -1375,7 +1381,7 @@ func testLookupAccount(tc *testContext) bool {
_, err := tc.manager.LookupAccount(ns, testName)
return err
})
wantErrCode := waddrmgr.ErrAccountNotFound
wantErrCode := ErrAccountNotFound
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1476,7 +1482,7 @@ func testRenameAccount(tc *testContext) bool {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
return tc.manager.RenameAccount(ns, tc.account, testName)
})
wantErrCode := waddrmgr.ErrDuplicateAccount
wantErrCode := ErrDuplicateAccount
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1486,7 +1492,7 @@ func testRenameAccount(tc *testContext) bool {
_, err := tc.manager.LookupAccount(ns, acctName)
return err
})
wantErrCode = waddrmgr.ErrAccountNotFound
wantErrCode = ErrAccountNotFound
if !checkManagerError(tc.t, testName, err, wantErrCode) {
return false
}
@ -1503,7 +1509,7 @@ func testForEachAccount(tc *testContext) bool {
expectedAccounts = append(expectedAccounts, 2)
}
// Imported account
expectedAccounts = append(expectedAccounts, waddrmgr.ImportedAddrAccount)
expectedAccounts = append(expectedAccounts, ImportedAddrAccount)
var accounts []uint32
err := walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
@ -1542,11 +1548,11 @@ func testForEachAccountAddress(tc *testContext) bool {
expectedAddrMap[expectedAddrs[i].address] = &expectedAddrs[i]
}
var addrs []waddrmgr.ManagedAddress
var addrs []ManagedAddress
err := walletdb.View(tc.db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
return tc.manager.ForEachAccountAddress(ns, tc.account,
func(maddr waddrmgr.ManagedAddress) error {
func(maddr ManagedAddress) error {
addrs = append(addrs, maddr)
return nil
})
@ -1629,11 +1635,11 @@ func testWatchingOnly(tc *testContext) bool {
defer db.Close()
// Open the manager using the namespace and convert it to watching-only.
var mgr *waddrmgr.Manager
var mgr *Manager
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if err != nil {
@ -1652,7 +1658,7 @@ func testWatchingOnly(tc *testContext) bool {
// Run all of the manager API tests against the converted manager and
// close it. We'll also retrieve the default scope (BIP0044) from the
// manager in order to use.
scopedMgr, err := mgr.FetchScopedKeyManager(waddrmgr.KeyScopeBIP0044)
scopedMgr, err := mgr.FetchScopedKeyManager(KeyScopeBIP0044)
if err != nil {
tc.t.Errorf("unable to fetch bip 44 scope %v", err)
return false
@ -1672,7 +1678,7 @@ func testWatchingOnly(tc *testContext) bool {
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if err != nil {
@ -1681,7 +1687,7 @@ func testWatchingOnly(tc *testContext) bool {
}
defer mgr.Close()
scopedMgr, err = mgr.FetchScopedKeyManager(waddrmgr.KeyScopeBIP0044)
scopedMgr, err = mgr.FetchScopedKeyManager(KeyScopeBIP0044)
if err != nil {
tc.t.Errorf("unable to fetch bip 44 scope %v", err)
return false
@ -1712,7 +1718,7 @@ func testSync(tc *testContext) bool {
tc.t.Errorf("SetSyncedTo unexpected err on nil: %v", err)
return false
}
blockStamp := waddrmgr.BlockStamp{
blockStamp := BlockStamp{
Height: 0,
Hash: *chaincfg.MainNetParams.GenesisHash,
}
@ -1730,7 +1736,7 @@ func testSync(tc *testContext) bool {
tc.t.Errorf("%v", err)
return false
}
blockStamp = waddrmgr.BlockStamp{
blockStamp = BlockStamp{
Height: 1,
Hash: *latestHash,
Timestamp: time.Unix(1234, 0),
@ -1766,28 +1772,28 @@ func TestManager(t *testing.T) {
// returned.
err := walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
_, err := waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
_, err := Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if !checkManagerError(t, "Open non-existant", err, waddrmgr.ErrNoExist) {
if !checkManagerError(t, "Open non-existant", err, ErrNoExist) {
return
}
// Create a new manager.
var mgr *waddrmgr.Manager
var mgr *Manager
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns, err := tx.CreateTopLevelBucket(waddrmgrNamespaceKey)
if err != nil {
return err
}
err = waddrmgr.Create(
err = Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
if err != nil {
return err
}
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if err != nil {
@ -1802,17 +1808,19 @@ func TestManager(t *testing.T) {
// returned.
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
return waddrmgr.Create(ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{})
return Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
})
if !checkManagerError(t, "Create existing", err, waddrmgr.ErrAlreadyExists) {
if !checkManagerError(t, "Create existing", err, ErrAlreadyExists) {
mgr.Close()
return
}
// Run all of the manager API tests in create mode and close the
// manager after they've completed
scopedMgr, err := mgr.FetchScopedKeyManager(waddrmgr.KeyScopeBIP0044)
scopedMgr, err := mgr.FetchScopedKeyManager(KeyScopeBIP0044)
if err != nil {
t.Fatalf("unable to fetch default scope: %v", err)
}
@ -1829,23 +1837,23 @@ func TestManager(t *testing.T) {
// Ensure the expected error is returned if the latest manager version
// constant is bumped without writing code to actually do the upgrade.
*waddrmgr.TstLatestMgrVersion++
*TstLatestMgrVersion++
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
_, err := waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
_, err := Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if !checkManagerError(t, "Upgrade needed", err, waddrmgr.ErrUpgrade) {
if !checkManagerError(t, "Upgrade needed", err, ErrUpgrade) {
return
}
*waddrmgr.TstLatestMgrVersion--
*TstLatestMgrVersion--
// Open the manager and run all the tests again in open mode which
// avoids reinserting new addresses like the create mode tests do.
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
return err
})
if err != nil {
@ -1854,7 +1862,7 @@ func TestManager(t *testing.T) {
}
defer mgr.Close()
scopedMgr, err = mgr.FetchScopedKeyManager(waddrmgr.KeyScopeBIP0044)
scopedMgr, err = mgr.FetchScopedKeyManager(KeyScopeBIP0044)
if err != nil {
t.Fatalf("unable to fetch default scope: %v", err)
}
@ -1895,7 +1903,7 @@ func TestEncryptDecryptErrors(t *testing.T) {
teardown, db, mgr := setupManager(t)
defer teardown()
invalidKeyType := waddrmgr.CryptoKeyType(0xff)
invalidKeyType := CryptoKeyType(0xff)
if _, err := mgr.Encrypt(invalidKeyType, []byte{}); err == nil {
t.Fatalf("Encrypt accepted an invalid key type!")
}
@ -1911,13 +1919,13 @@ func TestEncryptDecryptErrors(t *testing.T) {
var err error
// Now the mgr is locked and encrypting/decrypting with private
// keys should fail.
_, err = mgr.Encrypt(waddrmgr.CKTPrivate, []byte{})
_, err = mgr.Encrypt(CKTPrivate, []byte{})
checkManagerError(t, "encryption with private key fails when manager is locked",
err, waddrmgr.ErrLocked)
err, ErrLocked)
_, err = mgr.Decrypt(waddrmgr.CKTPrivate, []byte{})
_, err = mgr.Decrypt(CKTPrivate, []byte{})
checkManagerError(t, "decryption with private key fails when manager is locked",
err, waddrmgr.ErrLocked)
err, ErrLocked)
// Unlock the manager for these tests
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
@ -1929,16 +1937,16 @@ func TestEncryptDecryptErrors(t *testing.T) {
}
// Make sure to cover the ErrCrypto error path in Encrypt.
waddrmgr.TstRunWithFailingCryptoKeyPriv(mgr, func() {
_, err = mgr.Encrypt(waddrmgr.CKTPrivate, []byte{})
TstRunWithFailingCryptoKeyPriv(mgr, func() {
_, err = mgr.Encrypt(CKTPrivate, []byte{})
})
checkManagerError(t, "failed encryption", err, waddrmgr.ErrCrypto)
checkManagerError(t, "failed encryption", err, ErrCrypto)
// Make sure to cover the ErrCrypto error path in Decrypt.
waddrmgr.TstRunWithFailingCryptoKeyPriv(mgr, func() {
_, err = mgr.Decrypt(waddrmgr.CKTPrivate, []byte{})
TstRunWithFailingCryptoKeyPriv(mgr, func() {
_, err = mgr.Decrypt(CKTPrivate, []byte{})
})
checkManagerError(t, "failed decryption", err, waddrmgr.ErrCrypto)
checkManagerError(t, "failed decryption", err, ErrCrypto)
}
// TestEncryptDecrypt ensures that encrypting and decrypting data with the
@ -1960,10 +1968,10 @@ func TestEncryptDecrypt(t *testing.T) {
t.Fatal("Attempted to unlock the manager, but failed:", err)
}
keyTypes := []waddrmgr.CryptoKeyType{
waddrmgr.CKTPublic,
waddrmgr.CKTPrivate,
waddrmgr.CKTScript,
keyTypes := []CryptoKeyType{
CKTPublic,
CKTPrivate,
CKTScript,
}
for _, keyType := range keyTypes {
@ -1994,13 +2002,13 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// We'll start the test by creating a new root manager that will be
// used for the duration of the test.
var mgr *waddrmgr.Manager
var mgr *Manager
err := walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns, err := tx.CreateTopLevelBucket(waddrmgrNamespaceKey)
if err != nil {
return err
}
err = waddrmgr.Create(
err = Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
@ -2008,9 +2016,7 @@ func TestScopedKeyManagerManagement(t *testing.T) {
return err
}
mgr, err = waddrmgr.Open(
ns, pubPassphrase, &chaincfg.MainNetParams,
)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
if err != nil {
return err
}
@ -2023,7 +2029,7 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// All the default scopes should have been created and loaded into
// memory upon initial opening.
for _, scope := range waddrmgr.DefaultKeyScopes {
for _, scope := range DefaultKeyScopes {
_, err := mgr.FetchScopedKeyManager(scope)
if err != nil {
t.Fatalf("unable to fetch scope %v: %v", scope, err)
@ -2036,14 +2042,14 @@ func TestScopedKeyManagerManagement(t *testing.T) {
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
for _, scope := range waddrmgr.DefaultKeyScopes {
for _, scope := range DefaultKeyScopes {
sMgr, err := mgr.FetchScopedKeyManager(scope)
if err != nil {
t.Fatalf("unable to fetch scope %v: %v", scope, err)
}
externalAddr, err := sMgr.NextExternalAddresses(
ns, waddrmgr.DefaultAccountNum, 1,
ns, DefaultAccountNum, 1,
)
if err != nil {
t.Fatalf("unable to derive external addr: %v", err)
@ -2051,14 +2057,14 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// The external address should match the prescribed
// addr schema for this scoped key manager.
if externalAddr[0].AddrType() != waddrmgr.ScopeAddrMap[scope].ExternalAddrType {
if externalAddr[0].AddrType() != ScopeAddrMap[scope].ExternalAddrType {
t.Fatalf("addr type mismatch: expected %v, got %v",
externalAddr[0].AddrType(),
waddrmgr.ScopeAddrMap[scope].ExternalAddrType)
ScopeAddrMap[scope].ExternalAddrType)
}
internalAddr, err := sMgr.NextInternalAddresses(
ns, waddrmgr.DefaultAccountNum, 1,
ns, DefaultAccountNum, 1,
)
if err != nil {
t.Fatalf("unable to derive internal addr: %v", err)
@ -2066,10 +2072,10 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// Similarly, the internal address should match the
// prescribed addr schema for this scoped key manager.
if internalAddr[0].AddrType() != waddrmgr.ScopeAddrMap[scope].InternalAddrType {
if internalAddr[0].AddrType() != ScopeAddrMap[scope].InternalAddrType {
t.Fatalf("addr type mismatch: expected %v, got %v",
internalAddr[0].AddrType(),
waddrmgr.ScopeAddrMap[scope].InternalAddrType)
ScopeAddrMap[scope].InternalAddrType)
}
}
@ -2081,15 +2087,15 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// Now that the manager is open, we'll create a "test" scope that we'll
// be utilizing for the remainder of the test.
testScope := waddrmgr.KeyScope{
testScope := KeyScope{
Purpose: 99,
Coin: 0,
}
addrSchema := waddrmgr.ScopeAddrSchema{
ExternalAddrType: waddrmgr.NestedWitnessPubKey,
InternalAddrType: waddrmgr.WitnessPubKey,
addrSchema := ScopeAddrSchema{
ExternalAddrType: NestedWitnessPubKey,
InternalAddrType: WitnessPubKey,
}
var scopedMgr *waddrmgr.ScopedKeyManager
var scopedMgr *ScopedKeyManager
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
@ -2110,21 +2116,21 @@ func TestScopedKeyManagerManagement(t *testing.T) {
t.Fatalf("attempt to read created mgr failed: %v", err)
}
var externalAddr, internalAddr []waddrmgr.ManagedAddress
var externalAddr, internalAddr []ManagedAddress
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
// We'll now create a new external address to ensure we
// retrieve the proper type.
externalAddr, err = scopedMgr.NextExternalAddresses(
ns, waddrmgr.DefaultAccountNum, 1,
ns, DefaultAccountNum, 1,
)
if err != nil {
t.Fatalf("unable to derive external addr: %v", err)
}
internalAddr, err = scopedMgr.NextInternalAddresses(
ns, waddrmgr.DefaultAccountNum, 1,
ns, DefaultAccountNum, 1,
)
if err != nil {
t.Fatalf("unable to derive internal addr: %v", err)
@ -2136,9 +2142,9 @@ func TestScopedKeyManagerManagement(t *testing.T) {
}
// Ensure that the type of the address matches as expected.
if externalAddr[0].AddrType() != waddrmgr.NestedWitnessPubKey {
if externalAddr[0].AddrType() != NestedWitnessPubKey {
t.Fatalf("addr type mismatch: expected %v, got %v",
waddrmgr.NestedWitnessPubKey, externalAddr[0].AddrType())
NestedWitnessPubKey, externalAddr[0].AddrType())
}
_, ok := externalAddr[0].Address().(*btcutil.AddressScriptHash)
if !ok {
@ -2147,9 +2153,9 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// We'll also create an internal address and ensure that the types
// match up properly.
if internalAddr[0].AddrType() != waddrmgr.WitnessPubKey {
if internalAddr[0].AddrType() != WitnessPubKey {
t.Fatalf("addr type mismatch: expected %v, got %v",
waddrmgr.WitnessPubKey, internalAddr[0].AddrType())
WitnessPubKey, internalAddr[0].AddrType())
}
_, ok = internalAddr[0].Address().(*btcutil.AddressWitnessPubKeyHash)
if !ok {
@ -2162,7 +2168,7 @@ func TestScopedKeyManagerManagement(t *testing.T) {
err = walletdb.View(db, func(tx walletdb.ReadTx) error {
ns := tx.ReadBucket(waddrmgrNamespaceKey)
var err error
mgr, err = waddrmgr.Open(ns, pubPassphrase, &chaincfg.MainNetParams)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
if err != nil {
return err
}
@ -2183,12 +2189,12 @@ func TestScopedKeyManagerManagement(t *testing.T) {
// If we fetch the last generated external address, it should map
// exactly to the address that we just generated.
var lastAddr waddrmgr.ManagedAddress
var lastAddr ManagedAddress
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
lastAddr, err = scopedMgr.LastExternalAddress(
ns, waddrmgr.DefaultAccountNum,
ns, DefaultAccountNum,
)
if err != nil {
return err
@ -2205,7 +2211,7 @@ func TestScopedKeyManagerManagement(t *testing.T) {
}
// After the restart, all the default scopes should be been re-loaded.
for _, scope := range waddrmgr.DefaultKeyScopes {
for _, scope := range DefaultKeyScopes {
_, err := mgr.FetchScopedKeyManager(scope)
if err != nil {
t.Fatalf("unable to fetch scope %v: %v", scope, err)
@ -2245,13 +2251,13 @@ func TestRootHDKeyNeutering(t *testing.T) {
// We'll start the test by creating a new root manager that will be
// used for the duration of the test.
var mgr *waddrmgr.Manager
var mgr *Manager
err := walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns, err := tx.CreateTopLevelBucket(waddrmgrNamespaceKey)
if err != nil {
return err
}
err = waddrmgr.Create(
err = Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
@ -2259,9 +2265,7 @@ func TestRootHDKeyNeutering(t *testing.T) {
return err
}
mgr, err = waddrmgr.Open(
ns, pubPassphrase, &chaincfg.MainNetParams,
)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
if err != nil {
return err
}
@ -2275,13 +2279,13 @@ func TestRootHDKeyNeutering(t *testing.T) {
// With the root manager open, we'll now create a new scoped manager
// for usage within this test.
testScope := waddrmgr.KeyScope{
testScope := KeyScope{
Purpose: 99,
Coin: 0,
}
addrSchema := waddrmgr.ScopeAddrSchema{
ExternalAddrType: waddrmgr.NestedWitnessPubKey,
InternalAddrType: waddrmgr.WitnessPubKey,
addrSchema := ScopeAddrSchema{
ExternalAddrType: NestedWitnessPubKey,
InternalAddrType: WitnessPubKey,
}
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
@ -2309,7 +2313,7 @@ func TestRootHDKeyNeutering(t *testing.T) {
// If we try to create *another* scope, this should fail, as the root
// key is no longer in the database.
testScope = waddrmgr.KeyScope{
testScope = KeyScope{
Purpose: 100,
Coin: 0,
}
@ -2339,13 +2343,13 @@ func TestNewRawAccount(t *testing.T) {
// We'll start the test by creating a new root manager that will be
// used for the duration of the test.
var mgr *waddrmgr.Manager
var mgr *Manager
err := walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns, err := tx.CreateTopLevelBucket(waddrmgrNamespaceKey)
if err != nil {
return err
}
err = waddrmgr.Create(
err = Create(
ns, seed, pubPassphrase, privPassphrase,
&chaincfg.MainNetParams, fastScrypt, time.Time{},
)
@ -2353,9 +2357,7 @@ func TestNewRawAccount(t *testing.T) {
return err
}
mgr, err = waddrmgr.Open(
ns, pubPassphrase, &chaincfg.MainNetParams,
)
mgr, err = Open(ns, pubPassphrase, &chaincfg.MainNetParams)
if err != nil {
return err
}
@ -2369,9 +2371,9 @@ func TestNewRawAccount(t *testing.T) {
// Now that we have the manager created, we'll fetch one of the default
// scopes for usage within this test.
scopedMgr, err := mgr.FetchScopedKeyManager(waddrmgr.KeyScopeBIP0084)
scopedMgr, err := mgr.FetchScopedKeyManager(KeyScopeBIP0084)
if err != nil {
t.Fatalf("unable to fetch scope %v: %v", waddrmgr.KeyScopeBIP0084, err)
t.Fatalf("unable to fetch scope %v: %v", KeyScopeBIP0084, err)
}
// With the scoped manager retrieved, we'll attempt to create a new raw
@ -2387,7 +2389,7 @@ func TestNewRawAccount(t *testing.T) {
// With the account created, we should be able to derive new addresses
// from the account.
var accountAddrNext waddrmgr.ManagedAddress
var accountAddrNext ManagedAddress
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
@ -2407,11 +2409,11 @@ func TestNewRawAccount(t *testing.T) {
// Additionally, we should be able to manually derive specific target
// keys.
var accountTargetAddr waddrmgr.ManagedAddress
var accountTargetAddr ManagedAddress
err = walletdb.Update(db, func(tx walletdb.ReadWriteTx) error {
ns := tx.ReadWriteBucket(waddrmgrNamespaceKey)
keyPath := waddrmgr.DerivationPath{
keyPath := DerivationPath{
Account: accountNum,
Branch: 0,
Index: 0,