zic-evm-sdk
Version:
An sdk for interacting with zebec card evm contracts
40 lines (39 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.percentToBps = percentToBps;
exports.bpsToPercent = bpsToPercent;
exports.hashSHA256 = hashSHA256;
exports.isEmailValid = isEmailValid;
exports.areDatesOfSameDay = areDatesOfSameDay;
const bignumber_js_1 = require("bignumber.js");
/**
* Converts percentage value to bps
* @param percent
* @returns
*/
function percentToBps(percent) {
return (0, bignumber_js_1.BigNumber)(percent).times(100).toFixed(0, bignumber_js_1.BigNumber.ROUND_DOWN);
}
/**
* Coverts bps value to percentage
* @param bps
* @returns
*/
function bpsToPercent(bps) {
return (0, bignumber_js_1.BigNumber)(bps).div(100).toFixed(2, bignumber_js_1.BigNumber.ROUND_DOWN);
}
async function hashSHA256(input) {
const utf8 = new TextEncoder().encode(input);
const hashBuffer = await crypto.subtle.digest("SHA-256", utf8);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map((bytes) => bytes.toString(16).padStart(2, "0")).join("");
return hashHex;
}
function isEmailValid(value) {
return /^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,10}$/.test(value);
}
function areDatesOfSameDay(date1, date2) {
return (date1.getUTCDay() === date2.getUTCDay() &&
date1.getUTCMonth() === date2.getUTCMonth() &&
date1.getUTCFullYear() === date2.getUTCFullYear());
}