     ([error result]
      (if error
        (error-fn error)
-       (success-fn (parse-transaction-entry block-number chain direction result))))))
+       (add-block-info web3 current-block-number chain direction result success-fn)))))
 
 ;;
 ;; Here we are querying event logs for Transfer events.

;;

(defn get-token-transfer-logs
  ;; NOTE(goranjovic): here we cannot use web3 since events don't work with infura
  [block-number network contracts direction address cb]
  (let [chain (ethereum/network->chain-keyword network)
        [from to] (if (= :inbound direction)
                    [nil (ethereum/normalized-address address)]

              ;; confirmations count.
              :transfer      true}]))))

(defn add-block-info [web3 current-block-number chain direction result success-fn]
  (let [transfers-by-block (group-by :blockNumber result)]
    (doseq [[block-number transfers] transfers-by-block]
      (ethereum/get-block-info web3 (ethereum/hex->int block-number)
                               (fn [block-info]
                                 (success-fn (parse-transaction-entries current-block-number
                                                                        block-info
                                                                        chain
                                                                        direction
                                                                        transfers)))))))

(defn- response-handler [web3 current-block-number chain direction error-fn success-fn]
  (fn handle-response
    ([response]
     (let [{:keys [error result]} (parse-json response)]
