Sfoglia il codice sorgente

Revert "Can now specify the number of empty accounts to derive"

This reverts commit 5b30aa59d63fcb7ef8111ec89a6f06509b5ce687.
Péter Szilágyi 6 anni fa
parent
commit
8cf764da89
1 ha cambiato i file con 7 aggiunte e 10 eliminazioni
  1. 7 10
      accounts/scwallet/wallet.go

+ 7 - 10
accounts/scwallet/wallet.go

@@ -390,7 +390,7 @@ func (w *Wallet) Open(passphrase string) error {
 	w.deriveReq = make(chan chan struct{})
 	w.deriveQuit = make(chan chan error)
 
-	go w.selfDerive(0)
+	go w.selfDerive()
 
 	// Notify anyone listening for wallet events that a new device is accessible
 	go w.Hub.updateFeed.Send(accounts.WalletEvent{Wallet: w, Kind: accounts.WalletOpened})
@@ -426,9 +426,8 @@ func (w *Wallet) Close() error {
 }
 
 // selfDerive is an account derivation loop that upon request attempts to find
-// new non-zero accounts. maxEmpty specifies the number of empty accounts that
-// should be derived once an initial empty account has been found.
-func (w *Wallet) selfDerive(maxEmpty int) {
+// new non-zero accounts.
+func (w *Wallet) selfDerive() {
 	w.log.Debug("Smart card wallet self-derivation started")
 	defer w.log.Debug("Smart card wallet self-derivation stopped")
 
@@ -466,7 +465,7 @@ func (w *Wallet) selfDerive(maxEmpty int) {
 
 			context = context.Background()
 		)
-		for empty, emptyCount := false, maxEmpty+1; !empty || emptyCount > 0; {
+		for empty := false; !empty; {
 			// Retrieve the next derived Ethereum account
 			if nextAddr == (common.Address{}) {
 				if nextAcc, err = w.session.derive(nextPath); err != nil {
@@ -490,11 +489,9 @@ func (w *Wallet) selfDerive(maxEmpty int) {
 				w.log.Warn("Smartcard wallet nonce retrieval failed", "err", err)
 				break
 			}
-			// If the next account is empty and no more empty accounts are
-			// allowed, stop self-derivation. Add the current one nonetheless.
+			// If the next account is empty, stop self-derivation, but add it nonetheless
 			if balance.Sign() == 0 && nonce == 0 {
 				empty = true
-				emptyCount--
 			}
 			// We've just self-derived a new account, start tracking it locally
 			path := make(accounts.DerivationPath, len(nextPath))
@@ -508,7 +505,7 @@ func (w *Wallet) selfDerive(maxEmpty int) {
 			pairing.Accounts[nextAddr] = path
 
 			// Fetch the next potential account
-			if !empty || emptyCount > 0 {
+			if !empty {
 				nextAddr = common.Address{}
 				nextPath[len(nextPath)-1]++
 			}
@@ -592,7 +589,7 @@ func (w *Wallet) Contains(account accounts.Account) bool {
 
 // Initialize installs a keypair generated from the provided key into the wallet.
 func (w *Wallet) Initialize(seed []byte) error {
-	go w.selfDerive(0)
+	go w.selfDerive()
 	// DO NOT lock at this stage, as the initialize
 	// function relies on Status()
 	return w.session.initialize(seed)