Throw RPCException when server return error.

This commit is contained in:
sc0Vu 2018-01-05 16:46:25 +08:00
parent 3223d66610
commit ff7f3ee781

View File

@ -11,6 +11,8 @@
namespace Web3\RequestManagers;
use InvalidArgumentException;
use RuntimeException as RPCException;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Client;
@ -76,10 +78,17 @@ class HttpRequestManager extends RequestManager implements IRequestManager
$json = json_decode($res->getBody());
if (JSON_ERROR_NONE !== json_last_error()) {
return call_user_func($callback, new \InvalidArgumentException('json_decode error: ' . json_last_error_msg()), null);
return call_user_func($callback, new InvalidArgumentException('json_decode error: ' . json_last_error_msg()), null);
}
if (isset($json->result)) {
call_user_func($callback, null, $json->result);
} else {
if (isset($json->error)) {
$error = $json->error;
call_user_func($callback, null, $json);
call_user_func($callback, new RPCException(mb_ereg_replace('Error: ', '', $error->message), $error->code), null);
}
}
} catch (RequestException $err) {
call_user_func($callback, $err, null);
}