itns-sidechain/lib/errors.js
2022-06-07 10:17:06 -04:00

60 lines
1.3 KiB
JavaScript

/*!
* errors.js - internal error objects for hsd
* Copyright (c) 2022 The Handshake Developers (MIT License).
* https://github.com/handshake-org/hsd
*/
'use strict';
/**
* @module errors
*/
const assert = require('bsert');
/**
* Critical Error
* An error severe enough to warrant shutting down the node.
* @extends Error
* @param {Block|TX} msg
* @param {String} code - Reject packet code.
* @param {String} reason - Reject packet reason.
* @param {Number} score - Ban score increase
* (can be -1 for no reject packet).
* @param {Boolean} malleated
*/
class CriticalError extends Error {
/**
* Create a verify error.
* @constructor
* @param {Block|TX} msg
* @param {String} code - Reject packet code.
* @param {String} reason - Reject packet reason.
* @param {Number} score - Ban score increase
* (can be -1 for no reject packet).
* @param {Boolean} malleated
*/
constructor(err) {
super();
this.type = 'CriticalError';
if (err instanceof Error) {
this.message = `Critical Error: ${err.message}`;
} else {
assert(typeof err === 'string');
this.message = `Critical Error: ${err}`;
}
if (Error.captureStackTrace)
Error.captureStackTrace(this, CriticalError);
}
}
/*
* Expose
*/
exports.CriticalError = CriticalError;