eth-json-rpc-infura
Advanced tools
Comparing version 2.0.0 to 2.0.1
{ | ||
"name": "eth-json-rpc-infura", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"main": "index.js", | ||
@@ -11,2 +11,3 @@ "directories": { | ||
"json-rpc-engine": "^3.4.0", | ||
"json-rpc-error": "^2.0.0", | ||
"tape": "^4.8.0" | ||
@@ -13,0 +14,0 @@ }, |
const createAsyncMiddleware = require('json-rpc-engine/src/createAsyncMiddleware') | ||
const JsonRpcError = require('json-rpc-error') | ||
@@ -11,2 +12,19 @@ module.exports = createInfuraMiddleware | ||
const rawData = await response.text() | ||
// handle errors | ||
if (!response.ok) { | ||
switch (response.status) { | ||
case 405: | ||
throw new JsonRpcError.MethodNotFound() | ||
case 418: | ||
throw createRatelimitError() | ||
case 503: | ||
case 504: | ||
throw createTimeoutError() | ||
default: | ||
throw createInternalError(rawData) | ||
} | ||
} | ||
// special case for now | ||
@@ -44,1 +62,18 @@ if (req.method === 'eth_getBlockByNumber' && rawData === 'Not Found') { | ||
} | ||
function createRatelimitError () { | ||
let msg = `Request is being rate limited.` | ||
return createInternalError(msg) | ||
} | ||
function createTimeoutError () { | ||
let msg = `Gateway timeout. The request took too long to process. ` | ||
msg += `This can happen when querying logs over too wide a block range.` | ||
return createInternalError(msg) | ||
} | ||
function createInternalError (msg) { | ||
const err = new Error(msg) | ||
return new JsonRpcError.InternalError(err) | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4278
105
4
+ Addedjson-rpc-error@^2.0.0