diff --git a/waddrmgr/common_test.go b/waddrmgr/common_test.go index 4187e32..5edc694 100644 --- a/waddrmgr/common_test.go +++ b/waddrmgr/common_test.go @@ -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 { diff --git a/waddrmgr/manager_test.go b/waddrmgr/manager_test.go index 67edc7b..9964e55 100644 --- a/waddrmgr/manager_test.go +++ b/waddrmgr/manager_test.go @@ -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,