@algonameservice/sdk
Version:
JavaScript SDK to resolve ANS .algo names
27 lines • 955 B
JavaScript
import algosdk from "algosdk";
import { ALLOWED_TLDS, ASCII_CODES } from "./constants.js";
import { InvalidNameError } from "./errors.js";
export function isValidAddress(address) {
return algosdk.isValidAddress(address);
}
export function normalizeName(name) {
const tld = name.split(".").pop();
if (!ALLOWED_TLDS.includes(tld)) {
throw new Error("TLD not supported");
}
name = name.split(".")[0].toLowerCase();
const lengthOfName = name.length;
if (lengthOfName > 64) {
throw new InvalidNameError();
}
for (let i = 0; i < lengthOfName; i++) {
if (!(name.charCodeAt(i) >= ASCII_CODES.ASCII_0 &&
name.charCodeAt(i) <= ASCII_CODES.ASCII_9)) {
if (!(name.charCodeAt(i) >= ASCII_CODES.ASCII_A &&
name.charCodeAt(i) <= ASCII_CODES.ASCII_Z))
throw new InvalidNameError();
}
}
return name;
}
//# sourceMappingURL=validation.js.map