UNPKG

@pirichain/core

Version:

Pirichain API package contains base commands for common usage.

40 lines 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPubKeyFromPrivate = getPubKeyFromPrivate; exports.convertToBase58 = convertToBase58; exports.base58extracted = base58extracted; // @ts-ignore const base58check_1 = __importDefault(require("base58check")); const sha256_1 = __importDefault(require("sha256")); const ripemd160_1 = __importDefault(require("ripemd160")); const elliptic_1 = __importDefault(require("elliptic")); const ec = new elliptic_1.default.ec("secp256k1"); function getPubKeyFromPrivate(pri) { try { const key = ec.keyFromPrivate(pri); return key.getPublic().encode("hex", false); } catch (e) { console.log('getPubKeyFromPrivateBase58'); console.log(e); } } function convertToBase58(pubAddress, chainPrefix) { const prefix = '83'; const resultStr = base58extracted(pubAddress, prefix); const b58 = base58check_1.default.encode(resultStr, prefix); return { pub: pubAddress, base58: (chainPrefix !== null && chainPrefix !== void 0 ? chainPrefix : 'PR') + b58 }; } function base58extracted(publicKey, prefix) { publicKey = sha256_1.default.x2(publicKey); publicKey = new ripemd160_1.default().update(publicKey).digest('hex'); const secondHash = prefix + publicKey; let hashLast = sha256_1.default.x2(secondHash); hashLast = sha256_1.default.x2(hashLast); const firstByte = hashLast.substr(0, 8); return secondHash + firstByte; } //# sourceMappingURL=utility.js.map