@metamask/keyring-snap-sdk
Version:
MetaMask Keyring Snap SDK
32 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSnapError = isSnapError;
exports.isSerializedSnapError = isSerializedSnapError;
const snaps_sdk_1 = require("@metamask/snaps-sdk");
const utils_1 = require("@metamask/utils");
// These were extracted from snaps-utils but should be eventually be made available in snaps-sdk to reduce duplication.
/**
* Check if an object is a `SnapError`.
*
* @param error - The object to check.
* @returns Whether the object is a `SnapError`.
*/
function isSnapError(error) {
if ((0, utils_1.isObject)(error) &&
'serialize' in error &&
typeof error.serialize === 'function') {
const serialized = error.serialize();
return (0, utils_1.isJsonRpcError)(serialized) && isSerializedSnapError(serialized);
}
return false;
}
/**
* Check if a JSON-RPC error is a `SnapError`.
*
* @param error - The object to check.
* @returns Whether the object is a `SnapError`.
*/
function isSerializedSnapError(error) {
return error.code === snaps_sdk_1.SNAP_ERROR_CODE && error.message === snaps_sdk_1.SNAP_ERROR_MESSAGE;
}
//# sourceMappingURL=errors.cjs.map