nip60: dropping a token.

This commit is contained in:
fiatjaf
2025-08-29 09:50:36 -03:00
parent 7ac9e6290b
commit 76e90481f4
2 changed files with 36 additions and 2 deletions

34
nip60/drop.go Normal file
View File

@@ -0,0 +1,34 @@
package nip60
import (
"context"
"fiatjaf.com/nostr"
)
// DropToken silently abandons a token
func (w *Wallet) DropToken(
ctx context.Context,
tokenID string,
) {
updatedTokens := make([]Token, 0, len(w.Tokens))
for _, token := range w.Tokens {
if token.ID() == tokenID {
deleteEvent := nostr.Event{
CreatedAt: nostr.Now(),
Kind: 5,
Tags: nostr.Tags{{"e", token.event.ID.Hex()}, {"k", "7375"}},
}
w.kr.SignEvent(ctx, &deleteEvent)
w.Lock()
w.PublishUpdate(deleteEvent, &token, nil, nil, false)
w.Unlock()
} else {
updatedTokens = append(updatedTokens, token)
}
}
w.Tokens = updatedTokens
}