@metamask/keyring-snap-sdk
Version:
MetaMask Keyring Snap SDK
28 lines • 1 kB
JavaScript
import { SNAP_ERROR_CODE, SNAP_ERROR_MESSAGE } from "@metamask/snaps-sdk";
import { isJsonRpcError, isObject } from "@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`.
*/
export function isSnapError(error) {
if (isObject(error) &&
'serialize' in error &&
typeof error.serialize === 'function') {
const serialized = error.serialize();
return 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`.
*/
export function isSerializedSnapError(error) {
return error.code === SNAP_ERROR_CODE && error.message === SNAP_ERROR_MESSAGE;
}
//# sourceMappingURL=errors.mjs.map