@mutopad/connex-framework
Version:
A library implements VeChain Connex interface
82 lines • 6.4 kB
JavaScript
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
export function isDecString(val) {
return typeof val === 'string' && /^[0-9]+$/.test(val);
}
export function isHexString(val) {
return typeof val === 'string' && /^0x[0-9a-f]+$/i.test(val);
}
export function isHexBytes(val, n) {
if (typeof val !== 'string' || !/^0x[0-9a-f]*$/i.test(val)) {
return false;
}
return n ? val.length === n * 2 + 2 : val.length % 2 === 0;
}
export function isUInt(val, bit) {
if (val < 0 || !Number.isInteger(val)) {
return false;
}
return bit ? val < Math.pow(2, bit) : true;
}
export function isBigInt(v) {
return typeof v === 'string' ?
(isDecString(v) || isHexString(v)) :
isUInt(v, 0);
}
export class BadParameter extends Error {
constructor(msg) {
super(msg);
}
}
BadParameter.prototype.name = 'BadParameter';
export function ensure(b, msg) {
if (!b) {
throw new BadParameter(msg);
}
}
import * as V from 'validator-ts';
export function test(value, scheme, context) {
try {
return V.validate(value, scheme, context);
}
catch (err) {
if (err instanceof V.ValidationError) {
throw new BadParameter(err.message);
}
throw err;
}
}
// rules
export function bytes(v) {
return isHexBytes(v) ? '' : 'expected bytes in hex string';
}
export function bytes8(v) {
return isHexBytes(v, 8) ? '' : 'expected bytes8';
}
export function bytes32(v) {
return isHexBytes(v, 32) ? '' : 'expected bytes32';
}
export function uint8(v) {
return isUInt(v, 8) ? '' : 'expected 8-bit unsigned integer';
}
export function uint32(v) {
return isUInt(v, 32) ? '' : 'expected 32-bit unsigned integer';
}
export function uint64(v) {
return isUInt(v, 64) ? '' : 'expected 64-bit unsigned integer';
}
export function bool(v) {
return typeof v === 'boolean' ? '' : 'expected boolean';
}
export function bigInt(v) {
return isBigInt(v) ? '' : 'expected unsigned integer in number or string';
}
export function hexString(v) {
return isHexString(v) ? '' : 'expected integer in hex string';
}
export function address(v) {
return isHexBytes(v, 20) ? '' : 'expected address';
}
export function string(v) {
return typeof v === 'string' ? '' : 'expected string';
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNuQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVcsRUFBRSxDQUFVO0lBQzlDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3hELE9BQU8sS0FBSyxDQUFBO0tBQ2Y7SUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbkMsT0FBTyxLQUFLLENBQUE7S0FDZjtJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsU0FBQSxDQUFDLEVBQUksR0FBRyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFrQjtJQUN2QyxP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