UNPKG

exonum-client

Version:

Light Client for Exonum Blockchain

108 lines (86 loc) 3.89 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.newType = newType; exports.isType = isType; var crypto = _interopRequireWildcard(require("../crypto")); var _helpers = require("../helpers"); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } /** * @constructor * @param {Object} schema */ var Type = /*#__PURE__*/function () { function Type(schema) { _classCallCheck(this, Type); this.schema = schema; } /** * Serialize data into array of 8-bit integers * @param {Object} data * @returns {Uint8Array} */ _createClass(Type, [{ key: "serialize", value: function serialize(data) { var object = (0, _helpers.cleanZeroValuedFields)(data, {}); return this.schema.encode(object).finish(); } /** * Get SHA256 hash * @param {Object} data * @returns {string} */ }, { key: "hash", value: function hash(data) { return crypto.hash(data, this); } /** * Get ED25519 signature * @param {string} secretKey * @param {Object} data * @returns {string} */ }, { key: "sign", value: function sign(secretKey, data) { return crypto.sign(secretKey, data, this); } /** * Verifies ED25519 signature * @param {string} signature * @param {string} publicKey * @param {Object} data * @returns {boolean} */ }, { key: "verifySignature", value: function verifySignature(signature, publicKey, data) { return crypto.verifySignature(signature, publicKey, data, this); } }]); return Type; }(); /** * Create element of Type class * @param {Object} type * @returns {Type} */ function newType(type) { return new Type(type); } /** * Check if passed object is of type Type * @param {Object} type * @returns {boolean} */ function isType(type) { return type instanceof Type; }