relay: split descriptors to {our,all}_descriptors

Now that we have ephemeral relays, we don't want them used everywhere
This commit is contained in:
William Casarin
2023-05-10 12:20:33 -07:00
parent 1367be0d10
commit fe6d7e5118
10 changed files with 17 additions and 13 deletions

View File

@@ -146,7 +146,7 @@ func send_zap(damus_state: DamusState, event: NostrEvent, lnurl: String, is_cust
}
// Only take the first 10 because reasons
let relays = Array(damus_state.pool.descriptors.prefix(10))
let relays = Array(damus_state.pool.our_descriptors.prefix(10))
let target = ZapTarget.note(id: event.id, author: event.pubkey)
let content = comment ?? ""

View File

@@ -739,7 +739,7 @@ func find_event(state: DamusState, evid: String, search_type: SearchType, find_f
case .eose:
if !has_event {
attempts += 1
if attempts == state.pool.descriptors.count / 2 {
if attempts == state.pool.our_descriptors.count / 2 {
callback(nil)
}
state.pool.unsubscribe(sub_id: subid, to: [relay_id])

View File

@@ -42,7 +42,11 @@ class RelayPool {
network_monitor.start(queue: network_monitor_queue)
}
var descriptors: [RelayDescriptor] {
var our_descriptors: [RelayDescriptor] {
return all_descriptors.filter { d in !d.info.ephemeral }
}
var all_descriptors: [RelayDescriptor] {
relays.map { r in r.descriptor }
}

View File

@@ -105,7 +105,7 @@ class PostBox {
return
}
let remaining = to ?? pool.descriptors.map { $0.url.id }
let remaining = to ?? pool.our_descriptors.map { $0.url.id }
let posted_ev = PostedEvent(event: event, remaining: remaining, skip_ephemeral: skip_ephemeral)
events[event.id] = posted_ev

View File

@@ -83,7 +83,7 @@ func load_relay_filters(_ pubkey: String) -> Set<RelayFilter>? {
}
func determine_to_relays(pool: RelayPool, filters: RelayFilters) -> [String] {
return pool.descriptors
return pool.our_descriptors
.map { $0.url.url.absoluteString }
.filter { !filters.is_filtered(timeline: .search, relay_id: $0) }
}

View File

@@ -22,7 +22,7 @@ struct RelayFilterView: View {
}
var relays: [RelayDescriptor] {
return state.pool.descriptors
return state.pool.our_descriptors
}
var body: some View {

View File

@@ -107,7 +107,7 @@ struct RecommendedRelayView: View {
guard let ev_before_add = damus.contacts.event else {
return
}
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: damus.pool.descriptors, relay: relay, info: .rw) else {
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: damus.pool.our_descriptors, relay: relay, info: .rw) else {
return
}
process_contact_event(state: damus, ev: ev_after_add)

View File

@@ -17,7 +17,7 @@ struct RelayConfigView: View {
init(state: DamusState) {
self.state = state
_relays = State(initialValue: state.pool.descriptors)
_relays = State(initialValue: state.pool.our_descriptors)
}
var recommended: [RelayDescriptor] {
@@ -32,7 +32,7 @@ struct RelayConfigView: View {
var body: some View {
MainContent
.onReceive(handle_notify(.relays_changed)) { _ in
self.relays = state.pool.descriptors
self.relays = state.pool.our_descriptors
}
.onReceive(handle_notify(.switched_timeline)) { _ in
dismiss()
@@ -95,7 +95,7 @@ struct RelayConfigView: View {
state.pool.connect(to: [new_relay])
guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.descriptors, relay: new_relay, info: info) else {
guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.our_descriptors, relay: new_relay, info: info) else {
return
}

View File

@@ -38,7 +38,7 @@ struct RelayDetailView: View {
return
}
let descriptors = state.pool.descriptors
let descriptors = state.pool.our_descriptors
guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else {
return
}
@@ -54,7 +54,7 @@ struct RelayDetailView: View {
guard let ev_before_add = state.contacts.event else {
return
}
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: state.pool.descriptors, relay: relay, info: .rw) else {
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: state.pool.our_descriptors, relay: relay, info: .rw) else {
return
}
process_contact_event(state: state, ev: ev_after_add)

View File

@@ -76,7 +76,7 @@ struct RelayView: View {
return
}
let descriptors = state.pool.descriptors
let descriptors = state.pool.our_descriptors
guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else {
return
}