don't process older contact events
I noticed sometimes damus would load older contact events and relays. not good! Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -424,7 +424,7 @@ func add_contact_if_friend(contacts: Contacts, ev: NostrEvent) {
|
||||
}
|
||||
|
||||
func load_our_contacts(contacts: Contacts, our_pubkey: String, ev: NostrEvent) {
|
||||
guard ev.pubkey == our_pubkey else {
|
||||
guard should_process_our_contact_event(ev, contacts: contacts, our_pubkey: our_pubkey) else {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -527,12 +527,27 @@ func robohash(_ pk: String) -> String {
|
||||
|
||||
func process_contact_event(pool: RelayPool, contacts: Contacts, pubkey: String, ev: NostrEvent) {
|
||||
load_our_contacts(contacts: contacts, our_pubkey: pubkey, ev: ev)
|
||||
load_our_relays(our_pubkey: pubkey, pool: pool, ev: ev)
|
||||
load_our_relays(our_pubkey: pubkey, contacts: contacts, pool: pool, ev: ev)
|
||||
add_contact_if_friend(contacts: contacts, ev: ev)
|
||||
}
|
||||
|
||||
func load_our_relays(our_pubkey: String, pool: RelayPool, ev: NostrEvent) {
|
||||
func should_process_our_contact_event(_ ev: NostrEvent, contacts: Contacts, our_pubkey: String) -> Bool {
|
||||
guard ev.pubkey == our_pubkey else {
|
||||
return false
|
||||
}
|
||||
|
||||
if let contacts_ev = contacts.event {
|
||||
guard ev.created_at > contacts_ev.created_at else {
|
||||
// this is an older contacts event, ignore
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func load_our_relays(our_pubkey: String, contacts: Contacts, pool: RelayPool, ev: NostrEvent) {
|
||||
guard should_process_our_contact_event(ev, contacts: contacts, our_pubkey: our_pubkey) else {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user