 
 extension WalletManager : BRWalletListener {
     func balanceChanged(_ balance: UInt64) {
-        checkForReceived(newBalance: balance)
-        Store.perform(action: WalletChange(self.currency).setBalance(balance))
-        requestTxUpdate()
+        DispatchQueue.main.async { [weak self] in
+            guard let myself = self else { return }
+            myself.checkForReceived(newBalance: balance)
+            Store.perform(action: WalletChange(myself.currency).setBalance(balance))
+            myself.requestTxUpdate()
+        }
     }
 
     func txAdded(_ tx: BRTxRef) {

    func txDeleted(_ txHash: UInt256, notifyUser: Bool, recommendRescan: Bool) {
        if notifyUser {
            if recommendRescan {
                Store.perform(action: WalletChange(self.currency).setRecommendScan(recommendRescan))
            }
        }
        requestTxUpdate()
        db?.txDeleted(txHash, notifyUser: notifyUser, recommendRescan: true)
    }


    }

    func txStatusUpdate() {
        DispatchQueue.main.async { [weak self] in
            self?.requestTxUpdate()
        }
    }

    func saveBlocks(_ replace: Bool, _ blocks: [BRBlockRef?]) {
