diff --git a/src/libs/etherlib/node.cpp b/src/libs/etherlib/node.cpp index c9625d07a2..951d302b3b 100644 --- a/src/libs/etherlib/node.cpp +++ b/src/libs/etherlib/node.cpp @@ -616,12 +616,16 @@ string_q getVersionFromClient(void) { // We do this to avoid constantly hitting the node just to see if it's there. // If the rpcProvider changed or we haven't checked for a while, check it again. string_q clientVersion = callRPC("web3_clientVersion", "[]", false); - stringToAsciiFile(clientVersionFn, getCurlContext()->baseURL + "\t" + clientVersion); - return clientVersion; + if (!clientVersion.empty()) { + stringToAsciiFile(clientVersionFn, getCurlContext()->baseURL + "\t" + clientVersion); + return clientVersion; + } } CStringArray parts; explode(parts, contents, '\t'); + if (parts.size() < 2) + return uint_2_Str(NOPOS); return parts[1]; } @@ -637,8 +641,9 @@ bool isGeth(void) { //------------------------------------------------------------------------- bool isParity(void) { - return contains(toLower(getVersionFromClient()), "parity") || - contains(toLower(getVersionFromClient()), "openethereum"); + return isErigon() || + contains(toLower(getVersionFromClient()), "parity") || + contains(toLower(getVersionFromClient()), "openethereum"); } //--------------------------------------------------------------------------