UNPKG

exonum-client-cis

Version:

Light Client for Exonum CIS Blockchain

104 lines (86 loc) 2.25 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.newType = newType; exports.isType = isType; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var crypto = _interopRequireWildcard(require("../crypto")); var _helpers = require("../helpers"); /** * @constructor * @param {Object} schema */ var Type = /*#__PURE__*/ function () { function Type(schema) { (0, _classCallCheck2["default"])(this, Type); this.schema = schema; } /** * Serialize data into array of 8-bit integers * @param {Object} data * @returns {Uint8Array} */ (0, _createClass2["default"])(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; }