feat: NIP-96 server list
This commit is contained in:
@ -34,6 +34,7 @@ const enum EventKind {
|
||||
SearchRelaysList = 10_007, // NIP-51
|
||||
InterestsList = 10_015, // NIP-51
|
||||
EmojisList = 10_030, // NIP-51
|
||||
StorageServerList = 10_096, // NIP-96 server list
|
||||
|
||||
FollowSet = 30_000, // NIP-51
|
||||
RelaySet = 30_002, // NIP-51
|
||||
|
@ -76,7 +76,7 @@ export class QueryTrace extends EventEmitter<QueryTraceEvents> {
|
||||
* Total time spent waiting for relay to respond
|
||||
*/
|
||||
get responseTime() {
|
||||
return this.finished ? unwrap(this.eose) - unwrap(this.sent) : 0;
|
||||
return this.finished ? unwrap(this.eose) - (this.sent ?? unixNowMs()) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -160,7 +160,7 @@ export class DiffSyncTags extends EventEmitter<SafeSyncEvents> {
|
||||
? (change.tag as Array<Array<string>>)
|
||||
: [change.tag as Array<string>];
|
||||
for (const changeTag of changeTags) {
|
||||
const existing = tags.findIndex(a => change.tag[0] === a[0] && change.tag[1] === a[1]);
|
||||
const existing = tags.findIndex(a => changeTag[0] === a[0] && changeTag[1] === a[1]);
|
||||
if (existing === -1) {
|
||||
tags.push(changeTag);
|
||||
} else {
|
||||
@ -174,7 +174,7 @@ export class DiffSyncTags extends EventEmitter<SafeSyncEvents> {
|
||||
? (change.tag as Array<Array<string>>)
|
||||
: [change.tag as Array<string>];
|
||||
for (const changeTag of changeTags) {
|
||||
const existing = tags.findIndex(a => change.tag[0] === a[0] && change.tag[1] === a[1]);
|
||||
const existing = tags.findIndex(a => changeTag[0] === a[0] && changeTag[1] === a[1]);
|
||||
if (existing !== -1) {
|
||||
tags.splice(existing, 1);
|
||||
} else {
|
||||
@ -188,7 +188,7 @@ export class DiffSyncTags extends EventEmitter<SafeSyncEvents> {
|
||||
? (change.tag as Array<Array<string>>)
|
||||
: [change.tag as Array<string>];
|
||||
for (const changeTag of changeTags) {
|
||||
const existing = tags.findIndex(a => change.tag[0] === a[0] && change.tag[1] === a[1]);
|
||||
const existing = tags.findIndex(a => changeTag[0] === a[0] && changeTag[1] === a[1]);
|
||||
if (existing !== -1) {
|
||||
tags[existing] = changeTag;
|
||||
} else {
|
||||
|
@ -88,7 +88,7 @@ export class UserState<TAppData> extends EventEmitter<UserStateEvents> {
|
||||
}
|
||||
|
||||
// always track mute list
|
||||
this.#checkIsStandardList(EventKind.MuteList);
|
||||
this.checkIsStandardList(EventKind.MuteList);
|
||||
|
||||
this.#profile.on("change", () => this.emit("change", UserStateChangeType.Profile));
|
||||
this.#contacts.on("change", () => this.emit("change", UserStateChangeType.Contacts));
|
||||
@ -338,7 +338,7 @@ export class UserState<TAppData> extends EventEmitter<UserStateEvents> {
|
||||
autoCommit = false,
|
||||
encrypted = false,
|
||||
) {
|
||||
this.#checkIsStandardList(kind);
|
||||
this.checkIsStandardList(kind);
|
||||
this.#checkInit();
|
||||
const list = this.#standardLists.get(kind);
|
||||
const tags = removeUndefined(Array.isArray(links) ? links.map(a => a.toEventTag()) : [links.toEventTag()]);
|
||||
@ -363,7 +363,7 @@ export class UserState<TAppData> extends EventEmitter<UserStateEvents> {
|
||||
autoCommit = false,
|
||||
encrypted = false,
|
||||
) {
|
||||
this.#checkIsStandardList(kind);
|
||||
this.checkIsStandardList(kind);
|
||||
this.#checkInit();
|
||||
const list = this.#standardLists.get(kind);
|
||||
const tags = removeUndefined(Array.isArray(links) ? links.map(a => a.toEventTag()) : [links.toEventTag()]);
|
||||
@ -416,7 +416,7 @@ export class UserState<TAppData> extends EventEmitter<UserStateEvents> {
|
||||
};
|
||||
}
|
||||
|
||||
#checkIsStandardList(kind: EventKind) {
|
||||
checkIsStandardList(kind: EventKind) {
|
||||
if (!(kind >= 10_000 && kind < 20_000)) {
|
||||
throw new Error("Not a standar list");
|
||||
}
|
||||
|
Reference in New Issue
Block a user