Viewing File: /home/ubuntu/misabloom-frontend-base/node_modules/eth-rpc-errors/src/errors.js
const { EthereumRpcError, EthereumProviderError } = require('./classes')
const { getMessageFromCode } = require('./utils')
const ERROR_CODES = require('./errorCodes.json')
module.exports = {
rpc: {
/**
* Get a JSON RPC 2.0 Parse (-32700) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
parse: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.parse, opts,
),
/**
* Get a JSON RPC 2.0 Invalid Request (-32600) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
invalidRequest: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.invalidRequest, opts,
),
/**
* Get a JSON RPC 2.0 Invalid Params (-32602) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
invalidParams: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.invalidParams, opts,
),
/**
* Get a JSON RPC 2.0 Method Not Found (-32601) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
methodNotFound: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.methodNotFound, opts,
),
/**
* Get a JSON RPC 2.0 Internal (-32603) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
internal: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.internal, opts,
),
/**
* Get a JSON RPC 2.0 Server error.
* Permits integer error codes in the [ -32099 <= -32005 ] range.
* Codes -32000 through -32004 are reserved by EIP 1474.
*
* @param {Object|string} opts - Options object
* @param {number} opts.code - The error code
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
server: (opts) => {
if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {
throw new Error('Ethereum RPC Server errors must provide single object argument.')
}
const { code } = opts
if (!Number.isInteger(code) || code > -32005 || code < -32099) {
throw new Error(
'"code" must be an integer such that: -32099 <= code <= -32005',
)
}
return getEthJsonRpcError(code, opts)
},
/**
* Get an Ethereum JSON RPC Invalid Input (-32000) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
invalidInput: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.invalidInput, opts,
),
/**
* Get an Ethereum JSON RPC Resource Not Found (-32001) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
resourceNotFound: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.resourceNotFound, opts,
),
/**
* Get an Ethereum JSON RPC Resource Unavailable (-32002) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
resourceUnavailable: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.resourceUnavailable, opts,
),
/**
* Get an Ethereum JSON RPC Transaction Rejected (-32003) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
transactionRejected: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.transactionRejected, opts,
),
/**
* Get an Ethereum JSON RPC Method Not Supported (-32004) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
methodNotSupported: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.methodNotSupported, opts,
),
/**
* Get an Ethereum JSON RPC Limit Exceeded (-32005) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumRpcError} The error
*/
limitExceeded: (opts) => getEthJsonRpcError(
ERROR_CODES.rpc.limitExceeded, opts,
),
},
provider: {
/**
* Get an Ethereum Provider User Rejected Request (4001) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
userRejectedRequest: (opts) => {
return getEthProviderError(
ERROR_CODES.provider.userRejectedRequest, opts,
)
},
/**
* Get an Ethereum Provider Unauthorized (4100) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
unauthorized: (opts) => {
return getEthProviderError(
ERROR_CODES.provider.unauthorized, opts,
)
},
/**
* Get an Ethereum Provider Unsupported Method (4200) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
unsupportedMethod: (opts) => {
return getEthProviderError(
ERROR_CODES.provider.unsupportedMethod, opts,
)
},
/**
* Get an Ethereum Provider Not Connected (4900) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
disconnected: (opts) => {
return getEthProviderError(
ERROR_CODES.provider.disconnected, opts,
)
},
/**
* Get an Ethereum Provider Chain Not Connected (4901) error.
*
* @param {Object|string} [opts] - Options object or error message string
* @param {string} [opts.message] - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
chainDisconnected: (opts) => {
return getEthProviderError(
ERROR_CODES.provider.chainDisconnected, opts,
)
},
/**
* Get a custom Ethereum Provider error.
*
* @param {Object|string} opts - Options object
* @param {number} opts.code - The error code
* @param {string} opts.message - The error message
* @param {any} [opts.data] - Error data
* @returns {EthereumProviderError} The error
*/
custom: (opts) => {
if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {
throw new Error('Ethereum Provider custom errors must provide single object argument.')
}
const { code, message, data } = opts
if (!message || typeof message !== 'string') {
throw new Error(
'"message" must be a nonempty string',
)
}
return new EthereumProviderError(code, message, data)
},
},
}
// Internal
function getEthJsonRpcError (code, opts) {
const [message, data] = validateOpts(opts)
return new EthereumRpcError(
code,
message || getMessageFromCode(code),
data,
)
}
function getEthProviderError (code, opts) {
const [message, data] = validateOpts(opts)
return new EthereumProviderError(
code,
message || getMessageFromCode(code),
data,
)
}
function validateOpts (opts) {
if (opts) {
if (typeof opts === 'string') {
return [opts]
} else if (typeof opts === 'object' && !Array.isArray(opts)) {
const { message, data } = opts
return [message, data]
}
}
return []
}
Back to Directory
File Manager