@iota-pico/data
Version:
IOTA Pico Framework Data Structures and Helpers
774 lines (745 loc) • 283 kB
JavaScript
(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