@okxweb3/coin-kaspa
Version:
A Kaspa SDK for building Web3 wallets and applications.
42 lines • 1.5 kB
JavaScript
;
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