   _requestDerivations: ->
     d = ledger.defer()
     ledger.wallet.pathsToAddresses ledger.wallet.Wallet.instance.getAllObservedAddressesPaths(), (addresses) ->
+      l "REQUEST DERIVATION ", ledger.wallet.Wallet.instance.getAllObservedAddressesPaths()
       d.resolve(_.invert(addresses))
     d.promise
 
-  _getAddressCache: ->
-    @_cachePromise ||= do => @_requestDerivations()
-
-  _notifyNewPathAreAvailable: ->
-    l "TIME TO FETCH"
-    return unless @_cachePromise?
-    @_cachePromise = null
-    @_getAddressCache()
-    return
+  _getAddressCache: -> @_requestDerivations()
 
   ###
     Extends the given transaction with derivation paths and related accounts

          l "HEY OK SEE NEXT 0.1"
        else if !databaseAccount?
          # No account found. Try to pull before recovering
          ledger.database.contexts.main.refresh().then ->
            pulled = yes
            createAccount()

  _extendTransaction: (err, transaction, push, next) ->
    wallet = ledger.wallet.Wallet.instance
    @_getAddressCache().then (cache) =>
      l "IN CACHE ", cache
      for io in transaction.inputs.concat(transaction.outputs)
        io.paths = []
        io.accounts = []
