@ledgerhq/coin-stacks
Version:
Ledger Stacks Coin integration
26 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBufferFromString = exports.throwIfError = exports.getPath = exports.isNoErrorReturnCode = exports.isValidBase64 = exports.isValidHex = void 0;
// NOTE: inlined now, this shared utils code will be moved to coin-framework in a future PR
const validHexRegExp = new RegExp(/^(0x)?[a-fA-F0-9]+$/);
const validBase64RegExp = new RegExp(/^(?:[A-Za-z\d+/]{4})*(?:[A-Za-z\d+/]{3}=|[A-Za-z\d+/]{2}==)?$/);
const isValidHex = (msg) => validHexRegExp.test(msg) && msg.length % 2 === 0;
exports.isValidHex = isValidHex;
const isValidBase64 = (msg) => validBase64RegExp.test(msg);
exports.isValidBase64 = isValidBase64;
const isNoErrorReturnCode = (code) => code === 0x9000;
exports.isNoErrorReturnCode = isNoErrorReturnCode;
const getPath = (path) => (path && path.substr(0, 2) !== "m/" ? `m/${path}` : path);
exports.getPath = getPath;
const throwIfError = (r) => {
if (!(0, exports.isNoErrorReturnCode)(r.returnCode))
throw new Error(`${r.returnCode} - ${r.errorMessage}`);
};
exports.throwIfError = throwIfError;
const getBufferFromString = (message) => (0, exports.isValidHex)(message)
? Buffer.from(message, "hex")
: (0, exports.isValidBase64)(message)
? Buffer.from(message, "base64")
: Buffer.from(message);
exports.getBufferFromString = getBufferFromString;
//# sourceMappingURL=utils.js.map