mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2026-01-25 19:58:50 +00:00
This commit upgrades the noble cryptography dependencies to v2.0.1, which includes: Breaking changes addressed: - Updated all @noble imports to include .js extensions (required by v2 ESM-only API) - Changed @noble/hashes/sha256 to @noble/hashes/sha2.js across 8 files - Fixed secp256k1 API changes: methods now require Uint8Array instead of hex strings - Updated schnorr.utils.randomPrivateKey() to schnorr.utils.randomSecretKey() Files modified (27 total): - package.json: Bump dependency versions - Source files (12): pure.ts, nip04.ts, nip06.ts, nip13.ts, nip19.ts, nip44.ts, nip49.ts, nip77.ts, nip98.ts, nipb7.ts, utils.ts, wasm.ts - Test files (14): All corresponding test files updated Benefits: - Latest security updates from audited noble libraries - Smaller bundle sizes from v2 optimizations - Future-proof ESM-only compatibility - All tests passing Co-authored-by: OpenCode <opencode@anomalyco.com>
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { bytesToHex } from '@noble/hashes/utils.js'
|
|
import { Nostr as NostrWasm } from 'nostr-wasm'
|
|
import { EventTemplate, Event, Nostr, VerifiedEvent, verifiedSymbol } from './core.ts'
|
|
|
|
let nw: NostrWasm
|
|
|
|
export function setNostrWasm(x: NostrWasm) {
|
|
nw = x
|
|
}
|
|
|
|
class Wasm implements Nostr {
|
|
generateSecretKey(): Uint8Array {
|
|
return nw.generateSecretKey()
|
|
}
|
|
getPublicKey(secretKey: Uint8Array): string {
|
|
return bytesToHex(nw.getPublicKey(secretKey))
|
|
}
|
|
finalizeEvent(t: EventTemplate, secretKey: Uint8Array): VerifiedEvent {
|
|
nw.finalizeEvent(t as any, secretKey)
|
|
return t as VerifiedEvent
|
|
}
|
|
verifyEvent(event: Event): event is VerifiedEvent {
|
|
try {
|
|
nw.verifyEvent(event)
|
|
event[verifiedSymbol] = true
|
|
return true
|
|
} catch (err) {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
|
|
const i: Wasm = new Wasm()
|
|
export const generateSecretKey = i.generateSecretKey
|
|
export const getPublicKey = i.getPublicKey
|
|
export const finalizeEvent = i.finalizeEvent
|
|
export const verifyEvent = i.verifyEvent
|
|
export * from './core.ts'
|