@funded-labs/dab-js
Version:
JS adapter for DAB
39 lines (38 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateToken = exports.validateCanisterId = exports.validateAccountId = exports.validatePrincipalId = exports.isValidPrincipal = exports.ALPHANUM_REGEX = exports.PRINCIPAL_REGEX = exports.CANISTER_MAX_LENGTH = void 0;
const principal_1 = require("@dfinity/principal");
exports.CANISTER_MAX_LENGTH = 27;
exports.PRINCIPAL_REGEX = /(\w{5}-){10}\w{3}/;
exports.ALPHANUM_REGEX = /^[a-zA-Z0-9]+$/;
const isValidPrincipal = (text) => {
try {
return principal_1.Principal.fromText(text).toText() === text;
}
catch (e) {
return false;
}
};
exports.isValidPrincipal = isValidPrincipal;
const validatePrincipalId = (text) => {
try {
return Boolean(exports.PRINCIPAL_REGEX.test(text) && (0, exports.isValidPrincipal)(text));
}
catch (e) {
return false;
}
};
exports.validatePrincipalId = validatePrincipalId;
const validateAccountId = (text) => text.length === 64 && exports.ALPHANUM_REGEX.test(text);
exports.validateAccountId = validateAccountId;
const validateCanisterId = (text) => {
try {
return Boolean(text.length <= exports.CANISTER_MAX_LENGTH && (0, exports.isValidPrincipal)(text));
}
catch (e) {
return false;
}
};
exports.validateCanisterId = validateCanisterId;
const validateToken = (metadata) => Boolean(!!metadata.decimal && !!metadata.name && !!metadata.symbol);
exports.validateToken = validateToken;