@ledgerhq/coin-casper
Version:
Ledger Casper integration
53 lines • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRandomTransferID = exports.getBufferFromString = exports.methodToString = exports.isError = exports.isValidBase64 = exports.isValidHex = exports.getPath = exports.isNoErrorReturnCode = void 0;
const bignumber_js_1 = __importDefault(require("bignumber.js"));
const validHexRegExp = new RegExp(/[0-9A-Fa-f]{6}/g);
const validBase64RegExp = new RegExp(/^(?:[A-Za-z\d+/]{4})*(?:[A-Za-z\d+/]{3}=|[A-Za-z\d+/]{2}==)?$/);
const isNoErrorReturnCode = (code) => code === 0x9000;
exports.isNoErrorReturnCode = isNoErrorReturnCode;
const getPath = (path) => path && path.substring(0, 2) !== "m/" ? `m/${path}` : path;
exports.getPath = getPath;
const isValidHex = (msg) => validHexRegExp.test(msg);
exports.isValidHex = isValidHex;
const isValidBase64 = (msg) => validBase64RegExp.test(msg);
exports.isValidBase64 = isValidBase64;
const isError = (r) => {
if (!(0, exports.isNoErrorReturnCode)(r.returnCode))
throw new Error(`${r.returnCode} - ${r.errorMessage}`);
};
exports.isError = isError;
const methodToString = (method) => {
switch (method) {
case 0:
return "Token transfer";
default:
return "Unknown";
}
};
exports.methodToString = methodToString;
const getBufferFromString = (message) => {
if ((0, exports.isValidHex)(message)) {
return Buffer.from(message, "hex");
}
if ((0, exports.isValidBase64)(message)) {
return Buffer.from(message, "base64");
}
return Buffer.from(message);
};
exports.getBufferFromString = getBufferFromString;
function randomIntFromInterval(min, max) {
const minBig = new bignumber_js_1.default(min);
const maxBig = new bignumber_js_1.default(max);
const random = bignumber_js_1.default.random().multipliedBy(maxBig.minus(minBig).plus(1)).plus(minBig);
const randomInt = random.integerValue(bignumber_js_1.default.ROUND_FLOOR);
return randomInt.toString();
}
function getRandomTransferID() {
return randomIntFromInterval(0, Number.MAX_SAFE_INTEGER);
}
exports.getRandomTransferID = getRandomTransferID;
//# sourceMappingURL=utils.js.map