@ledgerhq/coin-internet_computer
Version:
Ledger Internet Computer integration
34 lines • 1.42 kB
JavaScript
import { BigNumber } from "bignumber.js";
import { ICP_SEND_TXN_TYPE, MAX_MEMO_VALUE } from "../consts";
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}==)?$/);
export const getPath = (path) => path && path.substr(0, 2) !== "m/" ? `m/${path}` : path;
export const isValidHex = (msg) => validHexRegExp.test(msg);
export const isValidBase64 = (msg) => validBase64RegExp.test(msg);
export const methodToString = (method) => {
switch (method) {
case ICP_SEND_TXN_TYPE:
return "Send ICP";
default:
return "Unknown";
}
};
export const getBufferFromString = (message) => isValidHex(message)
? Buffer.from(message, "hex")
: isValidBase64(message)
? Buffer.from(message, "base64")
: Buffer.from(message);
export const normalizeEpochTimestamp = (timestamp) => {
return parseInt(timestamp.slice(0, 13));
};
function randomIntFromInterval(min, max) {
const minBig = new BigNumber(min);
const maxBig = new BigNumber(max);
const random = BigNumber.random().multipliedBy(maxBig.minus(minBig).plus(1)).plus(minBig);
const randomInt = random.integerValue(BigNumber.ROUND_FLOOR);
return randomInt.toString();
}
export function getRandomTransferID() {
return randomIntFromInterval(0, MAX_MEMO_VALUE);
}
//# sourceMappingURL=utils.js.map