mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-08-25 14:11:09 +00:00
fix(liquidity): avoid reading closed sequencer replies
This commit is contained in:
@@ -235,9 +235,11 @@ void SequencerClient::startRead(const QString& accountId)
|
||||
WalletAccountRead read { accountId };
|
||||
const int status = reply->attribute(
|
||||
QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
const QByteArray payload = reply->readAll();
|
||||
if (reply->error() == QNetworkReply::NoError
|
||||
&& status >= 200 && status < 300) {
|
||||
const bool successfulResponse = reply->error() == QNetworkReply::NoError
|
||||
&& status >= 200 && status < 300
|
||||
&& reply->isOpen();
|
||||
if (successfulResponse) {
|
||||
const QByteArray payload = reply->readAll();
|
||||
const AmmClientResult normalized =
|
||||
m_client->normalizeAccountRpc(QJsonObject {
|
||||
{ QStringLiteral("accountId"), accountId },
|
||||
@@ -290,19 +292,24 @@ void SequencerClient::queryTransaction(const QString& nativeHash,
|
||||
}
|
||||
const int status = reply->attribute(
|
||||
QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
const QByteArray payload = reply->readAll();
|
||||
QJsonParseError error;
|
||||
const QJsonDocument document = QJsonDocument::fromJson(payload, &error);
|
||||
const QJsonObject envelope = document.object();
|
||||
const bool ok = reply->error() == QNetworkReply::NoError
|
||||
const bool successfulResponse = reply->error() == QNetworkReply::NoError
|
||||
&& status >= 200 && status < 300
|
||||
&& error.error == QJsonParseError::NoError
|
||||
&& document.isObject()
|
||||
&& (!envelope.contains(QStringLiteral("error"))
|
||||
|| envelope.value(QStringLiteral("error")).isNull())
|
||||
&& envelope.contains(QStringLiteral("result"));
|
||||
const bool included = ok
|
||||
&& !envelope.value(QStringLiteral("result")).isNull();
|
||||
&& reply->isOpen();
|
||||
bool ok = false;
|
||||
bool included = false;
|
||||
if (successfulResponse) {
|
||||
const QByteArray payload = reply->readAll();
|
||||
QJsonParseError error;
|
||||
const QJsonDocument document = QJsonDocument::fromJson(payload, &error);
|
||||
const QJsonObject envelope = document.object();
|
||||
ok = error.error == QJsonParseError::NoError
|
||||
&& document.isObject()
|
||||
&& (!envelope.contains(QStringLiteral("error"))
|
||||
|| envelope.value(QStringLiteral("error")).isNull())
|
||||
&& envelope.contains(QStringLiteral("result"));
|
||||
included = ok
|
||||
&& !envelope.value(QStringLiteral("result")).isNull();
|
||||
}
|
||||
reply->deleteLater();
|
||||
callback(ok, included);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user