UNPKG

@iota-pico/data

Version:

IOTA Pico Framework Data Structures and Helpers

774 lines (745 loc) 283 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("@iota-pico/core/dist/error/coreError"), require("@iota-pico/core/dist/helpers/arrayHelper"), require("@iota-pico/core/dist/helpers/jsonHelper"), require("@iota-pico/core/dist/helpers/numberHelper"), require("@iota-pico/core/dist/helpers/objectHelper"), require("@iota-pico/core/dist/helpers/stringHelper")); else if(typeof define === 'function' && define.amd) define("@iota-pico/data", ["@iota-pico/core/dist/error/coreError", "@iota-pico/core/dist/helpers/arrayHelper", "@iota-pico/core/dist/helpers/jsonHelper", "@iota-pico/core/dist/helpers/numberHelper", "@iota-pico/core/dist/helpers/objectHelper", "@iota-pico/core/dist/helpers/stringHelper"], factory); else if(typeof exports === 'object') exports["@iota-pico/data"] = factory(require("@iota-pico/core/dist/error/coreError"), require("@iota-pico/core/dist/helpers/arrayHelper"), require("@iota-pico/core/dist/helpers/jsonHelper"), require("@iota-pico/core/dist/helpers/numberHelper"), require("@iota-pico/core/dist/helpers/objectHelper"), require("@iota-pico/core/dist/helpers/stringHelper")); else root["IotaPicoData"] = factory(root["@iota-pico/core/dist/error/coreError"], root["@iota-pico/core/dist/helpers/arrayHelper"], root["@iota-pico/core/dist/helpers/jsonHelper"], root["@iota-pico/core/dist/helpers/numberHelper"], root["@iota-pico/core/dist/helpers/objectHelper"], root["@iota-pico/core/dist/helpers/stringHelper"]); })(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_error_coreError__, __WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_helpers_arrayHelper__, __WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_helpers_jsonHelper__, __WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_helpers_numberHelper__, __WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_helpers_objectHelper__, __WEBPACK_EXTERNAL_MODULE__iota_pico_core_dist_helpers_stringHelper__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./dist.es6/index.js"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./dist.es6/converters/asciiTrytesConverter.js": /*!*****************************************************!*\ !*** ./dist.es6/converters/asciiTrytesConverter.js ***! \*****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const stringHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/stringHelper */ "@iota-pico/core/dist/helpers/stringHelper"); const trytes_1 = __webpack_require__(/*! ../data/trytes */ "./dist.es6/data/trytes.js"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); /** * Trytes converter that converts to and from a string. */ class AsciiTrytesConverter { /** * Convert a string value into trytes. * @param value value to convert into trytes. * @returns The trytes representation of the value. */ to(value) { if (!stringHelper_1.StringHelper.isString(value)) { throw new dataError_1.DataError("The value must be a string", { value }); } if (!stringHelper_1.StringHelper.isASCII(value)) { throw new dataError_1.DataError("The value contains non ASCII characters", { value }); } let trytes = ""; for (let i = 0; i < value.length; i++) { const asciiValue = value.charCodeAt(i); const firstValue = asciiValue % 27; const secondValue = (asciiValue - firstValue) / 27; trytes += trytes_1.Trytes.ALPHABET[firstValue] + trytes_1.Trytes.ALPHABET[secondValue]; } return trytes_1.Trytes.fromString(trytes); } /** * Convert trytes into a string value. * @param trytes to convert into a string value. * @returns The string value converted from the trytes. */ from(trytes) { if (!objectHelper_1.ObjectHelper.isType(trytes, trytes_1.Trytes)) { throw new dataError_1.DataError("The trytes parameter is empty or not the correct type"); } const trytesString = trytes.toString(); if (trytesString.length % 2 === 1) { throw new dataError_1.DataError("The trytes length must be an even number"); } let ascii = ""; for (let i = 0; i < trytesString.length; i += 2) { const firstValue = trytes_1.Trytes.ALPHABET.indexOf(trytesString[i]); const secondValue = trytes_1.Trytes.ALPHABET.indexOf(trytesString[i + 1]); const decimalValue = firstValue + secondValue * 27; ascii += String.fromCharCode(decimalValue); } return ascii; } } exports.AsciiTrytesConverter = AsciiTrytesConverter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWlUcnl0ZXNDb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udmVydGVycy9hc2NpaVRyeXRlc0NvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNEVBQXlFO0FBQ3pFLDRFQUF5RTtBQUN6RSwyQ0FBd0M7QUFDeEMsa0RBQStDO0FBRy9DOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDN0I7Ozs7T0FJRztJQUNJLEVBQUUsQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQywyQkFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixNQUFNLElBQUkscUJBQVMsQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDaEU7UUFFRCxJQUFJLENBQUMsMkJBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxJQUFJLHFCQUFTLENBQUMseUNBQXlDLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdkMsTUFBTSxVQUFVLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFbkQsTUFBTSxJQUFJLGVBQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsZUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sZUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBQyxNQUFjO1FBQ3RCLElBQUksQ0FBQywyQkFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLHFCQUFTLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUNoRjtRQUNELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixNQUFNLElBQUkscUJBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxNQUFNLFdBQVcsR0FBRyxlQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFakUsTUFBTSxZQUFZLEdBQUcsVUFBVSxHQUFHLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFFbkQsS0FBSyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUF6REQsb0RBeURDIn0= /***/ }), /***/ "./dist.es6/converters/objectTrytesConverter.js": /*!******************************************************!*\ !*** ./dist.es6/converters/objectTrytesConverter.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const jsonHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/jsonHelper */ "@iota-pico/core/dist/helpers/jsonHelper"); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const stringHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/stringHelper */ "@iota-pico/core/dist/helpers/stringHelper"); const trytes_1 = __webpack_require__(/*! ../data/trytes */ "./dist.es6/data/trytes.js"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const asciiTrytesConverter_1 = __webpack_require__(/*! ./asciiTrytesConverter */ "./dist.es6/converters/asciiTrytesConverter.js"); /** * Trytes converter that converts to and from an object. * @typeparam T The generic type for the conversion methods. */ class ObjectTrytesConverter { /** * Convert an object value into trytes. * @param value to convert into trytes. * @returns The trytes representation of the object. */ to(value) { let json; try { json = jsonHelper_1.JsonHelper.stringify(value); } catch (err) { throw new dataError_1.DataError("There was a problem converting the object to JSON", { err }); } // Encode any non ascii chars const encoded = stringHelper_1.StringHelper.encodeNonASCII(json); // Convert to ascii trytes return new asciiTrytesConverter_1.AsciiTrytesConverter().to(encoded); } /** * Convert trytes into a string value. * @param trytes to convert into a string value. * @returns The string value converted from the trytes. */ from(trytes) { if (!objectHelper_1.ObjectHelper.isType(trytes, trytes_1.Trytes)) { throw new dataError_1.DataError("The trytes parameter is empty or not the correct type"); } let ascii = new asciiTrytesConverter_1.AsciiTrytesConverter().from(trytes); // trim any trailing nulls (9s in trytes) ascii = ascii.replace(/\0+$/, ""); const decoded = stringHelper_1.StringHelper.decodeNonASCII(ascii); let obj; try { obj = JSON.parse(decoded); } catch (err) { throw new dataError_1.DataError("There was a problem converting the object from JSON", { err }); } return obj; } } exports.ObjectTrytesConverter = ObjectTrytesConverter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0VHJ5dGVzQ29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnZlcnRlcnMvb2JqZWN0VHJ5dGVzQ29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3RUFBcUU7QUFDckUsNEVBQXlFO0FBQ3pFLDRFQUF5RTtBQUN6RSwyQ0FBd0M7QUFDeEMsa0RBQStDO0FBRS9DLGlFQUE4RDtBQUU5RDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUM5Qjs7OztPQUlHO0lBQ0ksRUFBRSxDQUFDLEtBQVE7UUFDZCxJQUFJLElBQUksQ0FBQztRQUNULElBQUk7WUFDQSxJQUFJLEdBQUcsdUJBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sSUFBSSxxQkFBUyxDQUFDLG1EQUFtRCxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNyRjtRQUVELDZCQUE2QjtRQUM3QixNQUFNLE9BQU8sR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLDJDQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLE1BQWM7UUFDdEIsSUFBSSxDQUFDLDJCQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFNLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUkscUJBQVMsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCx5Q0FBeUM7UUFDekMsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sT0FBTyxHQUFHLDJCQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSTtZQUNBLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUkscUJBQVMsQ0FBQyxxREFBcUQsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFVLEdBQUcsQ0FBQztJQUNsQixDQUFDO0NBQ0o7QUEvQ0Qsc0RBK0NDIn0= /***/ }), /***/ "./dist.es6/data/address.js": /*!**********************************!*\ !*** ./dist.es6/data/address.js ***! \**********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const trytes_1 = __webpack_require__(/*! ./trytes */ "./dist.es6/data/trytes.js"); /** * A class for handling addresses. */ class Address { /* @internal */ constructor(addressTrytes, checksumTrytes) { this._addressTrytes = addressTrytes; this._checksumTrytes = checksumTrytes; } /** * Create address from trytes. * @param address The trytes to create the address from. * @returns An instance of Address. */ static fromTrytes(address) { if (!objectHelper_1.ObjectHelper.isType(address, trytes_1.Trytes)) { throw new dataError_1.DataError("The address should be a valid Trytes object"); } const trytesString = address.toString(); if (trytesString.length !== Address.LENGTH && trytesString.length !== Address.LENGTH_WITH_CHECKSUM) { throw new dataError_1.DataError(`The address should either be ${Address.LENGTH} or ${Address.LENGTH_WITH_CHECKSUM} characters in length`, { length: trytesString.length }); } const addressTrytes = trytesString.substr(0, Address.LENGTH); let checksumTrytes; if (trytesString.length === Address.LENGTH_WITH_CHECKSUM) { checksumTrytes = trytesString.substr(Address.LENGTH); } return new Address(addressTrytes, checksumTrytes); } /** * Convert the address to trytes with no checksum. * @returns Trytes version of the address with no checksum. */ toTrytes() { return trytes_1.Trytes.fromString(this._addressTrytes); } /** * Convert the address to trytes with a checksum, creating a blank one if needed. * @returns Trytes version of the address with checksu,. */ toTrytesWithChecksum() { if (!objectHelper_1.ObjectHelper.isEmpty(this._checksumTrytes)) { return trytes_1.Trytes.fromString(this._addressTrytes + this._checksumTrytes); } else { throw new dataError_1.DataError(`This address has no checksum calculated for it`); } } /** * Get the string view of the object. * @returns string of the trytes. */ toString() { if (!objectHelper_1.ObjectHelper.isEmpty(this._checksumTrytes)) { return this._addressTrytes + this._checksumTrytes; } else { return this._addressTrytes; } } } /** * The length for a valid address without checksum (81). */ Address.LENGTH = 81; /** * The length for an address checksum (9). */ Address.LENGTH_CHECKSUM = 9; /** * The length for valid address with checksum (90). */ Address.LENGTH_WITH_CHECKSUM = Address.LENGTH + Address.LENGTH_CHECKSUM; /** * An empty hash all 9s. */ Address.EMPTY = Address.fromTrytes(trytes_1.Trytes.fromString("9".repeat(Address.LENGTH))); exports.Address = Address; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRFQUF5RTtBQUN6RSxrREFBK0M7QUFDL0MscUNBQWtDO0FBRWxDOztHQUVHO0FBQ0gsTUFBYSxPQUFPO0lBd0JoQixlQUFlO0lBQ2YsWUFBb0IsYUFBcUIsRUFBRSxjQUFzQjtRQUM3RCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFJLGNBQWMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZTtRQUNwQyxJQUFJLENBQUMsMkJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGVBQU0sQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxxQkFBUyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFeEMsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7WUFDaEcsTUFBTSxJQUFJLHFCQUFTLENBQUMsZ0NBQWdDLE9BQU8sQ0FBQyxNQUFNLE9BQU8sT0FBTyxDQUFDLG9CQUFvQix1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNsSztRQUVELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLGNBQWMsQ0FBQztRQUNuQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ3RELGNBQWMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4RDtRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ1gsT0FBTyxlQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CO1FBQ3ZCLElBQUksQ0FBQywyQkFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDN0MsT0FBTyxlQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDSCxNQUFNLElBQUkscUJBQVMsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxJQUFJLENBQUMsMkJBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3JEO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDOUI7SUFDTCxDQUFDOztBQW5GRDs7R0FFRztBQUNvQixjQUFNLEdBQVcsRUFBRSxDQUFDO0FBQzNDOztHQUVHO0FBQ29CLHVCQUFlLEdBQVcsQ0FBQyxDQUFDO0FBQ25EOztHQUVHO0FBQ29CLDRCQUFvQixHQUFXLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztBQUUvRjs7R0FFRztBQUNvQixhQUFLLEdBQVksT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQWpCOUcsMEJBcUZDIn0= /***/ }), /***/ "./dist.es6/data/addressSecurity.js": /*!******************************************!*\ !*** ./dist.es6/data/addressSecurity.js ***! \******************************************/ /*! no static exports found */ /***/ (function(module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); /** * Represents an enum for the address security values. */ var AddressSecurity; (function (AddressSecurity) { AddressSecurity[AddressSecurity["low"] = 1] = "low"; AddressSecurity[AddressSecurity["medium"] = 2] = "medium"; AddressSecurity[AddressSecurity["high"] = 3] = "high"; })(AddressSecurity = exports.AddressSecurity || (exports.AddressSecurity = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1NlY3VyaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEvYWRkcmVzc1NlY3VyaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRztBQUNILElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixtREFBUSxDQUFBO0lBQ1IseURBQVUsQ0FBQTtJQUNWLHFEQUFRLENBQUE7QUFDWixDQUFDLEVBSlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFJMUIifQ== /***/ }), /***/ "./dist.es6/data/bundle.js": /*!*********************************!*\ !*** ./dist.es6/data/bundle.js ***! \*********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const hash_1 = __webpack_require__(/*! ./hash */ "./dist.es6/data/hash.js"); const signatureMessageFragment_1 = __webpack_require__(/*! ./signatureMessageFragment */ "./dist.es6/data/signatureMessageFragment.js"); const tag_1 = __webpack_require__(/*! ./tag */ "./dist.es6/data/tag.js"); const transaction_1 = __webpack_require__(/*! ./transaction */ "./dist.es6/data/transaction.js"); const tryteNumber_1 = __webpack_require__(/*! ./tryteNumber */ "./dist.es6/data/tryteNumber.js"); /** * A class for handling bundles. */ class Bundle { /** * Create a new instance of Bundle. */ constructor() { this.transactions = []; } /** * Add new transactions to the bundle. * @param signatureMessageLength The number of transactions to add. * @param address The address for the transactions. * @param value The value for the first of the transactions. * @param tag The tag to include in the transactions. * @param timestamp The timestamp for the transactions. */ addTransactions(signatureMessageLength, address, value, tag, timestamp) { for (let i = 0; i < signatureMessageLength; i++) { this.transactions.push(transaction_1.Transaction.fromParams(undefined, address, i === 0 ? value : 0, tag, timestamp, undefined, undefined, undefined, undefined, undefined, tag, undefined, undefined, undefined, undefined)); } } /** * Add signature fragments to the bundle. * @param signatureMessageFragments The signature fragments to add to the bundle transactions. */ addSignatureMessageFragments(signatureMessageFragments) { if (objectHelper_1.ObjectHelper.isEmpty(signatureMessageFragments)) { throw new dataError_1.DataError("The signatureMessageFragments should be an array of SignatureMessageFragments"); } for (let i = 0; i < this.transactions.length; i++) { this.transactions[i].signatureMessageFragment = (signatureMessageFragments[i] || signatureMessageFragment_1.SignatureMessageFragment.EMPTY); this.transactions[i].trunkTransaction = hash_1.Hash.EMPTY; this.transactions[i].branchTransaction = hash_1.Hash.EMPTY; this.transactions[i].attachmentTimestamp = tryteNumber_1.TryteNumber.EMPTY_9; this.transactions[i].attachmentTimestampLowerBound = tryteNumber_1.TryteNumber.EMPTY_9; this.transactions[i].attachmentTimestampUpperBound = tryteNumber_1.TryteNumber.EMPTY_9; this.transactions[i].nonce = tag_1.Tag.EMPTY; } } } exports.Bundle = Bundle; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0RUFBeUU7QUFDekUsa0RBQStDO0FBRS9DLGlDQUE4QjtBQUM5Qix5RUFBc0U7QUFDdEUsK0JBQTRCO0FBQzVCLCtDQUE0QztBQUM1QywrQ0FBNEM7QUFFNUM7O0dBRUc7QUFDSCxNQUFhLE1BQU07SUFVZjs7T0FFRztJQUNIO1FBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQUMsc0JBQThCLEVBQUUsT0FBZ0IsRUFBRSxLQUFhLEVBQUUsR0FBUSxFQUFFLFNBQWlCO1FBQy9HLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyx5QkFBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFDNUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUMxQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQ3BDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSw0QkFBNEIsQ0FBQyx5QkFBcUQ7UUFDckYsSUFBSSwyQkFBWSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxxQkFBUyxDQUFDLCtFQUErRSxDQUFDLENBQUM7U0FDeEc7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLG1EQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsV0FBSSxDQUFDLEtBQUssQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLFdBQUksQ0FBQyxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyx5QkFBVyxDQUFDLE9BQU8sQ0FBQztZQUMvRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixHQUFHLHlCQUFXLENBQUMsT0FBTyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLEdBQUcseUJBQVcsQ0FBQyxPQUFPLENBQUM7WUFDekUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBRyxDQUFDLEtBQUssQ0FBQztTQUMxQztJQUNMLENBQUM7Q0FDSjtBQXJERCx3QkFxREMifQ== /***/ }), /***/ "./dist.es6/data/hash.js": /*!*******************************!*\ !*** ./dist.es6/data/hash.js ***! \*******************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const trytes_1 = __webpack_require__(/*! ./trytes */ "./dist.es6/data/trytes.js"); /** * A class for handling hashes. */ class Hash { /* @internal */ constructor(trytes) { this._trytes = trytes; } /** * Create hash from trytes. * @param hash The trytes to create the hash from. * @returns An instance of Hash. */ static fromTrytes(hash) { if (!objectHelper_1.ObjectHelper.isType(hash, trytes_1.Trytes)) { throw new dataError_1.DataError("The hash should be a valid Trytes object"); } const length = hash.length(); if (length !== Hash.LENGTH) { throw new dataError_1.DataError(`The hash should be ${Hash.LENGTH} characters in length`, { length }); } return new Hash(hash); } /** * Convert the hash to trytes. * @returns Trytes version of the hash. */ toTrytes() { return this._trytes; } /** * Get the string view of the object. * @returns string of the trytes. */ toString() { return this._trytes.toString(); } } /** * The length for a valid hash (81). */ Hash.LENGTH = 81; /** * An empty hash all 9s. */ Hash.EMPTY = Hash.fromTrytes(trytes_1.Trytes.fromString("9".repeat(Hash.LENGTH))); exports.Hash = Hash; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2hhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRFQUF5RTtBQUN6RSxrREFBK0M7QUFDL0MscUNBQWtDO0FBRWxDOztHQUVHO0FBQ0gsTUFBYSxJQUFJO0lBYWIsZUFBZTtJQUNmLFlBQW9CLE1BQWM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDakMsSUFBSSxDQUFDLDJCQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFNLENBQUMsRUFBRTtZQUNwQyxNQUFNLElBQUkscUJBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDeEIsTUFBTSxJQUFJLHFCQUFTLENBQUMsc0JBQXNCLElBQUksQ0FBQyxNQUFNLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUM3RjtRQUVELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7QUFqREQ7O0dBRUc7QUFDb0IsV0FBTSxHQUFXLEVBQUUsQ0FBQztBQUMzQzs7R0FFRztBQUNvQixVQUFLLEdBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVJyRyxvQkFtREMifQ== /***/ }), /***/ "./dist.es6/data/input.js": /*!********************************!*\ !*** ./dist.es6/data/input.js ***! \********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const numberHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/numberHelper */ "@iota-pico/core/dist/helpers/numberHelper"); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const address_1 = __webpack_require__(/*! ./address */ "./dist.es6/data/address.js"); const addressSecurity_1 = __webpack_require__(/*! ./addressSecurity */ "./dist.es6/data/addressSecurity.js"); /** * A class for handling inputs. */ class Input { /* @internal */ constructor() { } /** * Create instance of input from parameters. * @param address The address. * @param security The address security. * @param keyIndex The key index. * @param balance The balance of the address. * @returns New instance of Input. */ static fromParams(address, security, keyIndex, balance) { if (!objectHelper_1.ObjectHelper.isType(address, address_1.Address)) { throw new dataError_1.DataError("The address should be a valid Address object"); } if (!numberHelper_1.NumberHelper.isInteger(security) || security < addressSecurity_1.AddressSecurity.low || security > addressSecurity_1.AddressSecurity.high) { throw new dataError_1.DataError(`The security should be a number between ${addressSecurity_1.AddressSecurity.low} and ${addressSecurity_1.AddressSecurity.high}`); } if (!numberHelper_1.NumberHelper.isInteger(keyIndex) || keyIndex < 0) { throw new dataError_1.DataError("The keyIndex should be a number >= 0"); } if (!numberHelper_1.NumberHelper.isInteger(balance) || balance < 0) { throw new dataError_1.DataError("The balance should be a number >= 0"); } const input = new Input(); input.address = address; input.security = security; input.keyIndex = keyIndex; input.balance = balance; return input; } } exports.Input = Input; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS9pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNEVBQXlFO0FBQ3pFLDRFQUF5RTtBQUN6RSxrREFBK0M7QUFDL0MsdUNBQW9DO0FBQ3BDLHVEQUFvRDtBQUVwRDs7R0FFRztBQUNILE1BQWEsS0FBSztJQWtCZCxlQUFlO0lBQ2Y7SUFDQSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZ0IsRUFDaEIsUUFBeUIsRUFDekIsUUFBZ0IsRUFDaEIsT0FBZTtRQUNwQyxJQUFJLENBQUMsMkJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGlCQUFPLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUkscUJBQVMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLDJCQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsR0FBRyxpQ0FBZSxDQUFDLEdBQUcsSUFBSSxRQUFRLEdBQUcsaUNBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDeEcsTUFBTSxJQUFJLHFCQUFTLENBQUMsMkNBQTJDLGlDQUFlLENBQUMsR0FBRyxRQUFRLGlDQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNySDtRQUVELElBQUksQ0FBQywyQkFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELE1BQU0sSUFBSSxxQkFBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLENBQUMsMkJBQVksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNqRCxNQUFNLElBQUkscUJBQVMsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QixLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQixLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQixLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUF6REQsc0JBeURDIn0= /***/ }), /***/ "./dist.es6/data/signatureMessageFragment.js": /*!***************************************************!*\ !*** ./dist.es6/data/signatureMessageFragment.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const trytes_1 = __webpack_require__(/*! ./trytes */ "./dist.es6/data/trytes.js"); /** * A class for handling signature message fragments. */ class SignatureMessageFragment { /* @internal */ constructor(trytes) { this._trytes = trytes; } /** * Create signature fragment from trytes. * @param signatureMessageFragment The trytes to create the signature fragment from. * @returns An instance of SignatureMessageFragment. */ static fromTrytes(signatureMessageFragment) { if (!objectHelper_1.ObjectHelper.isType(signatureMessageFragment, trytes_1.Trytes)) { throw new dataError_1.DataError("The signatureMessageFragment should be a valid Trytes object"); } const length = signatureMessageFragment.length(); if (length !== SignatureMessageFragment.LENGTH) { throw new dataError_1.DataError(`The signatureMessageFragment should be ${SignatureMessageFragment.LENGTH} characters in length`, { length }); } return new SignatureMessageFragment(signatureMessageFragment); } /** * Convert the signature fragment to trytes. * @returns Trytes version of the signature fragment. */ toTrytes() { return this._trytes; } /** * Get the string view of the object. * @returns string of the trytes. */ toString() { return this._trytes.toString(); } } /** * The length of a valid signature message fragment (2187) */ SignatureMessageFragment.LENGTH = 2187; /** * An empty signature message fragment all 9s. */ SignatureMessageFragment.EMPTY = SignatureMessageFragment.fromTrytes(trytes_1.Trytes.fromString("9".repeat(SignatureMessageFragment.LENGTH))); exports.SignatureMessageFragment = SignatureMessageFragment; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlTWVzc2FnZUZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEvc2lnbmF0dXJlTWVzc2FnZUZyYWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0RUFBeUU7QUFDekUsa0RBQStDO0FBQy9DLHFDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQWEsd0JBQXdCO0lBYWpDLGVBQWU7SUFDZixZQUFvQixNQUFjO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyx3QkFBZ0M7UUFDckQsSUFBSSxDQUFDLDJCQUFZLENBQUMsTUFBTSxDQUFDLHdCQUF3QixFQUFFLGVBQU0sQ0FBQyxFQUFFO1lBQ3hELE1BQU0sSUFBSSxxQkFBUyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDdkY7UUFFRCxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxJQUFJLE1BQU0sS0FBSyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsTUFBTSxJQUFJLHFCQUFTLENBQUMsMENBQTBDLHdCQUF3QixDQUFDLE1BQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3JJO1FBQ0QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7QUFoREQ7O0dBRUc7QUFDb0IsK0JBQU0sR0FBVyxJQUFJLENBQUM7QUFDN0M7O0dBRUc7QUFDb0IsOEJBQUssR0FBNkIsd0JBQXdCLENBQUMsVUFBVSxDQUFDLGVBQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFSakssNERBa0RDIn0= /***/ }), /***/ "./dist.es6/data/tag.js": /*!******************************!*\ !*** ./dist.es6/data/tag.js ***! \******************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const trytes_1 = __webpack_require__(/*! ./trytes */ "./dist.es6/data/trytes.js"); /** * 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== /***/ }), /***/ "./dist.es6/data/transaction.js": /*!**************************************!*\ !*** ./dist.es6/data/transaction.js ***! \**************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", { value: true }); const objectHelper_1 = __webpack_require__(/*! @iota-pico/core/dist/helpers/objectHelper */ "@iota-pico/core/dist/helpers/objectHelper"); const dataError_1 = __webpack_require__(/*! ../error/dataError */ "./dist.es6/error/dataError.js"); const address_1 = __webpack_require__(/*! ./address */ "./dist.es6/data/address.js"); const hash_1 = __webpack_require__(/*! ./hash */ "./dist.es6/data/hash.js"); const signatureMessageFragment_1 = __webpack_require__(/*! ./signatureMessageFragment */ "./dist.es6/data/signatureMessageFragment.js"); const tag_1 = __webpack_require__(/*! ./tag */ "./dist.es6/data/tag.js"); const tryteNumber_1 = __webpack_require__(/*! ./tryteNumber */ "./dist.es6/data/tryteNumber.js"); const trytes_1 = __webpack_require__(/*! ./trytes */ "./dist.es6/data/trytes.js"); /** * A class for handling transactions. */ class Transaction { /* @internal */ constructor() { } /** * Create instance of transaction from parameters. * @param signatureMessageFragment The signature message fragment. * @param address The address. * @param value The value. * @param obsoleteTag Obsolete transaction tag. * @param timestamp The timestamp. * @param currentIndex The current index. * @param lastIndex The last index. * @param bundle The bundle. * @param trunkTransaction The trunk transaction. * @param branchTransaction The branch transaction. * @param tag The tag. * @param attachmentTimestamp The attachment timestamp. * @param attachmentTimestampLowerBound The attachment timestamp lower bound. * @param attachmentTimestampUpperBound The attachment timestamp upper bound. * @param nonce The nonce. * @returns New instance of transaction. */ static fromParams(signatureMessageFragment, address, value, obsoleteTag, timestamp, currentIndex, lastIndex, bundle, trunkTransaction, branchTransaction, tag, attachmentTimestamp, attachmentTimestampLowerBound, attachmentTimestampUpperBound, nonce) { const tx = new Transaction(); tx.signatureMessageFragment = signatureMessageFragment; tx.address = address; tx.value = tryteNumber_1.TryteNumber.fromNumber(value, 11); tx.obsoleteTag = obsoleteTag; tx.timestamp = tryteNumber_1.TryteNumber.fromNumber(timestamp); tx.currentIndex = tryteNumber_1.TryteNumber.fromNumber(currentIndex); tx.lastIndex = tryteNumber_1.TryteNumber.fromNumber(lastIndex); tx.bundle = bundle; tx.trunkTransaction = trunkTransaction; tx.branchTransaction = branchTransaction; tx.tag = tag; tx.attachmentTimestamp = tryteNumber_1.TryteNumber.fromNumber(attachmentTimestamp); tx.attachmentTimestampLowerBound = tryteNumber_1.TryteNumber.fromNumber(attachmentTimestampLowerBound); tx.attachmentTimestampUpperBound = tryteNumber_1.TryteNumber.fromNumber(attachmentTimestampUpperBound); tx.nonce = nonce; return tx; } /** * Create instance of transaction from trytes. * @param trytes The trytes for the this. * @returns An instance of this. */ static fromTrytes(trytes) { if (!objectHelper_1.ObjectHelper.isType(trytes, trytes_1.Trytes)) { throw new dataError_1.DataError("The trytes should be a valid Trytes object"); } const length = trytes.length(); if (length !== Transaction.LENGTH) { throw new dataError_1.DataError(`The trytes must be ${Transaction.LENGTH} in length`, { length }); } const checkIndexStart = 2279; const checkIndexLength = 16; const check = trytes.sub(checkIndexStart, checkIndexLength).toString(); if (check !== Transaction.CHECK_VALUE) { throw new dataError_1.DataError(`The trytes between ${checkIndexStart} and ${checkIndexStart + checkIndexLength} should be all 9s`, { check }); } const tx = new Transaction(); let startPos = 0; tx.signatureMessageFragment = signatureMessageFragment_1.SignatureMessageFragment.fromTrytes(trytes.sub(startPos, signatureMessageFragment_1.SignatureMessageFragment.LENGTH)); startPos += signatureMessageFragment_1.SignatureMessageFragment.LENGTH; tx.address = address_1.Address.fromTrytes(trytes.sub(startPos, address_1.Address.LENGTH)); startPos += address_1.Address.LENGTH; tx.value = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, 11), 11); startPos += 11; startPos += Transaction.CHECK_VALUE_LENGTH; tx.obsoleteTag = tag_1.Tag.fromTrytes(trytes.sub(startPos, tag_1.Tag.LENGTH)); startPos += tag_1.Tag.LENGTH; tx.timestamp = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.currentIndex = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.lastIndex = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.bundle = hash_1.Hash.fromTrytes(trytes.sub(startPos, hash_1.Hash.LENGTH)); startPos += hash_1.Hash.LENGTH; tx.trunkTransaction = hash_1.Hash.fromTrytes(trytes.sub(startPos, hash_1.Hash.LENGTH)); startPos += hash_1.Hash.LENGTH; tx.branchTransaction = hash_1.Hash.fromTrytes(trytes.sub(startPos, hash_1.Hash.LENGTH)); startPos += hash_1.Hash.LENGTH; tx.tag = tag_1.Tag.fromTrytes(trytes.sub(startPos, tag_1.Tag.LENGTH)); startPos += tag_1.Tag.LENGTH; tx.attachmentTimestamp = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.attachmentTimestampLowerBound = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.attachmentTimestampUpperBound = tryteNumber_1.TryteNumber.fromTrytes(trytes.sub(startPos, tryteNumber_1.TryteNumber.LENGTH_9)); startPos += tryteNumber_1.TryteNumber.LENGTH_9; tx.nonce = tag_1.Tag.fromTrytes(trytes.sub(startPos, tag_1.Tag.LENGTH)); return tx; } /** * Convert the transaction to trytes. * @returns The transaction as trytes. */ toTrytes() { if (!objectHelper_1.ObjectHelper.isType(this.signatureMessageFragment, signatureMessageFragment_1.SignatureMessageFragment)) { throw new dataError_1.DataError(`The signatureMessageFragment must be set to create transaction trytes`, { signatureMessageFragment: this.signatureMessageFragment }); } if (!objectHelper_1.ObjectHelper.isType(this.address, address_1.Address)) { throw new dataError_1.DataError(`The address must be set to create transaction trytes`, { address: this.address }); } if (!objectHelper_1.ObjectHelper.isType(this.obsoleteTag, tag_1.Tag)) { throw new dataError_1.DataError(`T