WizardConnect/packages/core/src/utilnostr.ts
2026-03-06 11:38:09 +01:00

21 lines
823 B
TypeScript

// Copyright (C) 2026 Whiterun LLC,
// This software is licensed under the GNU Lesser General Public License (LGPL), version 3.0 or later.
// A copy of the license can be found in the LICENSE file or at https://www.gnu.org/licenses/lgpl-3.0.html
import { binToHex, secp256k1 } from "@bitauth/libauth";
import { unwrap } from "./primitives.js";
export function deriveNostrPublicKey(privateKey: Uint8Array): string {
const publicKeyCompressed = unwrap(
secp256k1.derivePublicKeyCompressed(privateKey),
);
const publicKeyNostr = publicKeyCompressed.slice(1);
return binToHex(publicKeyNostr);
}
export function deriveNostrPublicKeyBytes(privateKey: Uint8Array): Uint8Array {
const publicKeyCompressed = unwrap(
secp256k1.derivePublicKeyCompressed(privateKey),
);
return publicKeyCompressed.slice(1);
}