@polkadot/util-keyring
Version:
34 lines (24 loc) • 1.38 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = encode;
var _bs = _interopRequireDefault(require("bs58"));
var _assert = _interopRequireDefault(require("@polkadot/util/assert"));
var _concat = _interopRequireDefault(require("@polkadot/util/u8a/concat"));
var _toBuffer = _interopRequireDefault(require("@polkadot/util/u8a/toBuffer"));
var _toU8a = _interopRequireDefault(require("@polkadot/util/u8a/toU8a"));
var _asU8a = _interopRequireDefault(require("@polkadot/util-crypto/blake2/asU8a"));
// 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.
// Original implementation: https://github.com/paritytech/polka-ui/blob/4858c094684769080f5811f32b081dd7780b0880/src/polkadot.js#L34
const PREFIX = new Uint8Array([42]);
function encode(_publicKey) {
const publicKey = (0, _toU8a.default)(_publicKey);
(0, _assert.default)(publicKey.length === 32, `Expected a valid publicKey to convert`);
const input = (0, _concat.default)(PREFIX, publicKey);
const hash = (0, _asU8a.default)(input, 512);
return _bs.default.encode((0, _toBuffer.default)((0, _concat.default)(input, hash.subarray(0, 2))));
}