         if let gasLimit = pendingGasEstimate?.gasEstimate {
             print("[EWM] using specified gas estimate for \(transfer.currency.code) transfer (\(transfer.hash)): \(gasLimit.string(decimals: 10))")
             completion(gasLimit.hexString)
-            stopWaitingForSend()
             return
         }
 

        }
    }

    private func stopWaitingForSend() {
        DispatchQueue.main.async {
            self.pendingGasEstimate = nil
            self.pendingSend = nil
            self.sendTimeoutTimer = nil
        }
    }
}

    func handleTransferEvent(ewm: EthereumWalletManager, wallet: EthereumWallet, transfer: EthereumTransfer, event: EthereumTransferEvent) {
        print("[EWM] \(transfer.currency.code) transfer \(transfer.hash) event: \(event)")

        if event == .gasEstimateUpdated {
            if let pendingGasEstimate = pendingGasEstimate, pendingGasEstimate.tx.identifier == transfer.identifier {
                print("  ↳ gas estimate updated: \(transfer.gasLimit)")
                stopWaitingForSend {
                    pendingGasEstimate.completion(.success)
                }
                return
            } else {
                assertionFailure("unexpected gas estimation event")
            }
        }

        if let pendingSend = pendingSend, transfer.hash == pendingSend.tx.hash {
