code: func (w *Wallet) Accounts() []accounts.Account {
  	// Attempt self-derivation if it's running
  	reqc := make(chan struct{}, 1)
  	select {
  	case w.deriveReq <- reqc:
  		// Self-derivation request accepted, wait for it
  		<-reqc
  	default:
  		// Self-derivation offline, throttled or busy, skip
  	}
  
  	w.lock.Lock()
  	defer w.lock.Unlock()
  
  	if pairing := w.Hub.pairing(w); pairing != nil {
  		ret := make([]accounts.Account, 0, len(pairing.Accounts))
  		for address, path := range pairing.Accounts {
  			ret = append(ret, w.makeAccount(address, path))
  		}
  		sort.Sort(accounts.AccountsByURL(ret))
  		return ret
  	}
  	return nil
  }
docs: // Accounts retrieves the list of signing accounts the wallet is currently aware
  // of. For hierarchical deterministic wallets, the list will not be exhaustive,
  // rather only contain the accounts explicitly pinned during account derivation.