UNPKG

@okxweb3/coin-kaspa

Version:

A Kaspa SDK for building Web3 wallets and applications.

42 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateAddress = exports.addressFromPrvKey = exports.addressFromPubKey = exports.checkPrvKey = exports.pubKeyFromPrvKey = void 0; const coin_base_1 = require("@okxweb3/coin-base"); const crypto_lib_1 = require("@okxweb3/crypto-lib"); const address_1 = require("./lib/address"); function pubKeyFromPrvKey(prvKey) { if (!checkPrvKey(prvKey)) { throw new Error('invalid key'); } return coin_base_1.base.toHex(crypto_lib_1.signUtil.secp256k1 .publicKeyCreate(coin_base_1.base.fromHex(prvKey.toLowerCase()), true) .slice(1)); } exports.pubKeyFromPrvKey = pubKeyFromPrvKey; function checkPrvKey(prvKey) { if (!coin_base_1.base.validateHexString(prvKey)) { return false; } const buf = coin_base_1.base.fromHex(prvKey.toLowerCase()); return buf.length == 32 && !buf.every((byte) => byte === 0); } exports.checkPrvKey = checkPrvKey; function addressFromPubKey(pubKey) { return (0, address_1.encodePubKeyAddress)(pubKey, 'kaspa'); } exports.addressFromPubKey = addressFromPubKey; function addressFromPrvKey(prvKey) { return addressFromPubKey(pubKeyFromPrvKey(prvKey)); } exports.addressFromPrvKey = addressFromPrvKey; function validateAddress(address) { try { (0, address_1.payToAddrScript)(address); } catch (e) { return false; } return true; } exports.validateAddress = validateAddress; //# sourceMappingURL=address.js.map