@iota-pico/data
Version:
IOTA Pico Framework Data Structures and Helpers
55 lines • 3.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const objectHelper_1 = require("@iota-pico/core/dist/helpers/objectHelper");
const dataError_1 = require("../error/dataError");
const trytes_1 = require("./trytes");
/**
* A class for handling tags.
*/
class Tag {
/* @internal */
constructor(trytes) {
this._trytes = trytes;
}
/**
* Create tag from trytes.
* @param tag The trytes to create the tag from.
* @returns An instance of Tag.
*/
static fromTrytes(tag) {
if (!objectHelper_1.ObjectHelper.isType(tag, trytes_1.Trytes)) {
throw new dataError_1.DataError("The tag should be a valid Trytes object");
}
let trytesString = tag.toString();
if (trytesString.length > Tag.LENGTH) {
throw new dataError_1.DataError(`The tag should be at most ${Tag.LENGTH} characters in length`, { length: trytesString.length });
}
while (trytesString.length < Tag.LENGTH) {
trytesString += "9";
}
return new Tag(trytesString);
}
/**
* Convert the tag to trytes.
* @returns Trytes version of the tag.
*/
toTrytes() {
return trytes_1.Trytes.fromString(this._trytes);
}
/**
* Get the string view of the object.
* @returns string of the trytes.
*/
toString() {
return this._trytes;
}
}
/**
* The length of a valid tag (27).
*/
Tag.LENGTH = 27;
/**
* An empty tag all 9s.
*/
Tag.EMPTY = Tag.fromTrytes(trytes_1.Trytes.fromString("9".repeat(Tag.LENGTH)));
exports.Tag = Tag;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEvdGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0RUFBeUU7QUFDekUsa0RBQStDO0FBQy9DLHFDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQWEsR0FBRztJQWFaLGVBQWU7SUFDZixZQUFvQixNQUFjO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ2hDLElBQUksQ0FBQywyQkFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsZUFBTSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxJQUFJLHFCQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUNsRTtRQUVELElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxNQUFNLElBQUkscUJBQVMsQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLE1BQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDeEg7UUFFRCxPQUFPLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZLElBQUksR0FBRyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUTtRQUNYLE9BQU8sZUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUF0REQ7O0dBRUc7QUFDb0IsVUFBTSxHQUFXLEVBQUUsQ0FBQztBQUMzQzs7R0FFRztBQUNvQixTQUFLLEdBQVEsR0FBRyxDQUFDLFVBQVUsQ0FBQyxlQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVJsRyxrQkF3REMifQ==