feat: migrate NIP-51 list encryption from NIP-04 to NIP-44
NIP-04 encryption is deprecated due to security vulnerabilities. This migrates MuteList (kind 10000) and PinnedUsers (kind 10010) private entries to use NIP-44 encryption, with backward compatibility for reading existing NIP-04 encrypted content. When NIP-04 content is detected, it is automatically re-encrypted with NIP-44 and republished to gradually migrate users. Co-Authored-By: captain-stacks <201298974+captain-stacks@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4fb40e81b3
commit
2efc884e01
9 changed files with 191 additions and 32 deletions
6
src/types/index.d.ts
vendored
6
src/types/index.d.ts
vendored
|
|
@ -91,6 +91,10 @@ export type TNip07 = {
|
|||
encrypt?: (pubkey: string, plainText: string) => Promise<string>
|
||||
decrypt?: (pubkey: string, cipherText: string) => Promise<string>
|
||||
}
|
||||
nip44?: {
|
||||
encrypt?: (pubkey: string, plainText: string) => Promise<string>
|
||||
decrypt?: (pubkey: string, cipherText: string) => Promise<string>
|
||||
}
|
||||
}
|
||||
|
||||
export interface ISigner {
|
||||
|
|
@ -98,6 +102,8 @@ export interface ISigner {
|
|||
signEvent: (draftEvent: TDraftEvent) => Promise<VerifiedEvent>
|
||||
nip04Encrypt: (pubkey: string, plainText: string) => Promise<string>
|
||||
nip04Decrypt: (pubkey: string, cipherText: string) => Promise<string>
|
||||
nip44Encrypt: (pubkey: string, plainText: string) => Promise<string>
|
||||
nip44Decrypt: (pubkey: string, cipherText: string) => Promise<string>
|
||||
}
|
||||
|
||||
export type TSignerType = 'nsec' | 'nip-07' | 'bunker' | 'browser-nsec' | 'ncryptsec' | 'npub'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue