feat(Relays): added logic to manage relays #63

Closed
y wants to merge 8 commits from relays-management into main
3 changed files with 233 additions and 12 deletions
Showing only changes of commit 424e06a52b - Show all commits

View File

@ -2,3 +2,4 @@ export * from './core'
export * from './nostr' export * from './nostr'
export * from './profile' export * from './profile'
export * from './zip' export * from './zip'
export * from './relay'

View File

@ -8,19 +8,7 @@ export interface SignedEvent {
sig: string sig: string
} }
export interface RelaySet {
read: string[]
write: string[]
}
export interface NostrJoiningBlock { export interface NostrJoiningBlock {
block: number block: number
encodedEventPointer: string encodedEventPointer: string
} }
export type RelayMap = {
[key: string]: {
read: boolean
write: boolean
}
}

232
src/types/relay.ts Normal file
View File

@ -0,0 +1,232 @@
export interface RelaySet {
read: string[]
write: string[]
}
export type RelayMap = {
[key: string]: {
read: boolean
write: boolean
}
}
export interface RelayStats {
relays: number
pubKeys: number
users: number
trusted_users: number
events: number
posts: number
zaps: number
zap_amount: number
daily: Daily
daily_totals: DailyTotals
relay_stats: RelayStats
}
export interface RelayStats {
user_picks: UserPicks
written: Written
}
export interface Written {
last_week: LastWeek[]
}
export interface LastWeek {
d: string
p: number
ps: number
e: number
es: number
}
export interface UserPicks {
read_relays: ReadRelay[]
write_relays: ReadRelay[]
}
export interface ReadRelay {
d: string
r: number
w: number
rs: number
ws: number
}
export interface DailyTotals {
datasets: Datasets2
}
export interface Datasets2 {
kind_0: Kind0[]
kind_1: Kind0[]
kind_2: Kind0[]
kind_3: Kind0[]
kind_5: Kind0[]
kind_6: Kind0[]
kind_7: Kind0[]
kind_1984: Kind0[]
kind_9735: Kind0[]
kind_1063: Kind0[]
kind_6969: Kind0[]
kind_9802: Kind0[]
kind_30000: Kind0[]
kind_30001: Kind0[]
kind_30008: Kind0[]
kind_30009: Kind0[]
kind_30017: Kind0[]
kind_30018: Kind0[]
kind_30023: Kind0[]
kind_31337: Kind0[]
totals: Kind0[]
new_profiles: Kind0[]
new_pubkeys: Kind0[]
new_contact_lists: Kind0[]
new_ln: Kind0[]
new_users: Kind0[]
total_zap_amount: Kind0[]
zappers: Kind0[]
zapped_pubkeys: Kind0[]
zapped_events: Kind0[]
zap_providers: Kind0[]
}
export interface Daily {
datasets: Datasets
}
export interface Datasets {
kind_0: Kind0[]
kind_1: Kind0[]
kind_2: Kind0[]
kind_3: Kind0[]
kind_5: Kind0[]
kind_6: Kind0[]
kind_7: Kind0[]
kind_1984: Kind0[]
kind_9735: Kind0[]
kind_1063: Kind0[]
kind_6969: Kind0[]
kind_9802: Kind0[]
kind_30000: Kind0[]
kind_30001: Kind0[]
kind_30008: Kind0[]
kind_30009: Kind0[]
kind_30017: Kind0[]
kind_30018: Kind0[]
kind_30023: Kind0[]
kind_31337: Kind0[]
totals: Kind0[]
new_profiles: Kind0[]
new_pubkeys: Kind0[]
new_contact_lists: Kind0[]
new_ln: Kind0[]
new_users: Kind0[]
max_zap_amount: Kind0[]
avg_zap_amount: Kind0[]
total_zap_amount: Kind0[]
active_pubkeys: Kind0[]
active_pubkeys_total: Kind0[]
active_pubkeys_week: Kind0[]
active_pubkeys_total_week: Kind0[]
active_relays: Kind0[]
zappers: Kind0[]
zapped_pubkeys: Kind0[]
zapped_events: Kind0[]
zap_providers: Kind0[]
retention: Retention
}
export interface Retention {
all: All[]
tr: All[]
bio: All[]
all_curves: Allcurve[]
tr_curves: Allcurve[]
bio_curves: Allcurve[]
}
export interface Allcurve {
day: number
'2023-02': number
'2023-03': number
'2023-04': number
'2023-05': number
'2023-06': number
'2023-07': number
}
export interface All {
d: string
signups: number
retained: number
retd_posts: number
retd_replies: number
retd_reposts: number
retd_likes: number
retd_liked: number
retd_liked_pubkeys: number
retd_replied: number
retd_replied_pubkeys: number
retd_zaps_received: number
retd_zaps_received_msats: number
retd_zaps_sent: number
retd_zaps_sent_msats: number
retd_following: number
retd_followers: number
lost_posts: number
lost_replies: number
lost_reposts: number
lost_likes: number
lost_liked: number
lost_liked_pubkeys: number
lost_replied: number
lost_replied_pubkeys: number
lost_zaps_received: number
lost_zaps_received_msats: number
lost_zaps_sent: number
lost_zaps_sent_msats: number
lost_following: number
lost_followers: number
}
export interface Kind0 {
d: string
c: number
}
export interface RelayFee {
amount: number
unit: string
}
export interface RelayInfo {
name: string
description: string
pubkey: string
contact: string
supported_nips: number[]
software: string
version: string
limitation?: { [key: string]: number | boolean }
fees?: { [key: string]: RelayFee[] }
}
export interface RelayInfoObject {
[key: string]: RelayInfo
}
export interface RelayInfoItem {
uri: string
info: RelayInfo
}
export enum RelayConnectionState {
Connected = 'Connected',
NotConnected = 'Failed to connect'
}
export interface RelayConnectionStatus {
[key: string]: RelayConnectionState
}