UNPKG

@polkadot/util-keyring

Version:
59 lines (47 loc) 2.14 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = pair; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _sign = _interopRequireDefault(require("@polkadot/util-crypto/nacl/sign")); var _verify = _interopRequireDefault(require("@polkadot/util-crypto/nacl/verify")); var _encode = _interopRequireDefault(require("../address/encode")); var _decode = _interopRequireDefault(require("./decode")); var _encode2 = _interopRequireDefault(require("./encode")); var _getMeta2 = _interopRequireDefault(require("./getMeta")); var _setMeta2 = _interopRequireDefault(require("./setMeta")); var _toJson2 = _interopRequireDefault(require("./toJson")); // Copyright 2017-2018 @polkadot/util-keyring authors & contributors // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. function pair({ publicKey: _publicKey, secretKey }, meta = {}, defaultEncoded) { const state = { address: (0, _encode.default)(_publicKey), meta: (0, _objectSpread2.default)({}, meta) }; return { address: () => state.address, decodePkcs8: (passphrase, encoded) => { const decoded = (0, _decode.default)(passphrase, encoded || defaultEncoded); _publicKey = decoded.publicKey; secretKey = decoded.secretKey; state.address = (0, _encode.default)(_publicKey); }, encodePkcs8: passphrase => (0, _encode2.default)(secretKey, passphrase), getMeta: () => (0, _getMeta2.default)(state), isLocked: () => !secretKey || secretKey.length === 0, lock: () => { secretKey = new Uint8Array(0); }, publicKey: () => _publicKey, setMeta: meta => (0, _setMeta2.default)(state, meta), sign: message => (0, _sign.default)(message, secretKey), toJson: passphrase => (0, _toJson2.default)(state, (0, _encode2.default)(secretKey, passphrase), !!passphrase), verify: (message, signature) => (0, _verify.default)(message, signature, _publicKey) }; }