import base58_to_binary from "base58-js/base58_to_binary.js";
import get_public_key from "isomorphic-secp256k1-js/get_public_key.js";
import public_key_to_wif from "./public_key_to_wif.js";
import validate_private_key from "./validate_private_key.js";
/**
* Convert an Antelope private key WIF to a public key WIF.
* @example
Usage `public_key_from_private_wif`.
* ```js
* import public_key_from_private_wif from 'antelope-ecc/public_key_from_private_wif'
*
* public_key_from_private_wif(
* 'PVT_K1_asdf…'
* ).then(console.log)
* ```
* The logged output will be PUB_K1_….
*/
export default async function public_key_from_private_wif(wif_private_key) {
await validate_private_key(wif_private_key);
if (!wif_private_key.startsWith("PVT_K1_"))
throw new Error("Private key must be K1 key, “PVT_K1_…”");
const raw_pk = base58_to_binary(wif_private_key.replace("PVT_K1_", "")).slice(0, -4);
return public_key_to_wif(await get_public_key(raw_pk));
}