parent
32c2e663a9
commit
eddba62575
@ -116,15 +116,6 @@ export default function useEventPublisher() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* Write to every online relay using Blastr.
|
|
||||||
* https://github.com/MutinyWallet/blastr
|
|
||||||
*/
|
|
||||||
broadcastWithBlastr: (ev: NEvent | undefined) => {
|
|
||||||
if (ev) {
|
|
||||||
System.WriteOnceToRelay("wss://nostr.mutinywallet.com", ev);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
muted: async (keys: HexKey[], priv: HexKey[]) => {
|
muted: async (keys: HexKey[], priv: HexKey[]) => {
|
||||||
if (pubKey) {
|
if (pubKey) {
|
||||||
const ev = NEvent.ForPubKey(pubKey);
|
const ev = NEvent.ForPubKey(pubKey);
|
||||||
@ -260,6 +251,18 @@ export default function useEventPublisher() {
|
|||||||
return await signEvent(ev);
|
return await signEvent(ev);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
saveRelays: async () => {
|
||||||
|
if (pubKey) {
|
||||||
|
const ev = NEvent.ForPubKey(pubKey);
|
||||||
|
ev.Kind = EventKind.ContactList;
|
||||||
|
ev.Content = JSON.stringify(relays);
|
||||||
|
for (const pk of follows) {
|
||||||
|
ev.Tags.push(new Tag(["p", pk], ev.Tags.length));
|
||||||
|
}
|
||||||
|
|
||||||
|
return await signEvent(ev);
|
||||||
|
}
|
||||||
|
},
|
||||||
saveRelaysSettings: async () => {
|
saveRelaysSettings: async () => {
|
||||||
if (pubKey) {
|
if (pubKey) {
|
||||||
const ev = NEvent.ForPubKey(pubKey);
|
const ev = NEvent.ForPubKey(pubKey);
|
||||||
|
@ -18,33 +18,17 @@ const RelaySettingsPage = () => {
|
|||||||
const [newRelay, setNewRelay] = useState<string>();
|
const [newRelay, setNewRelay] = useState<string>();
|
||||||
|
|
||||||
async function saveRelays() {
|
async function saveRelays() {
|
||||||
const updatedRelaysEvent = await publisher.saveRelaysSettings();
|
const ev = await publisher.saveRelays();
|
||||||
let wasBlastrBrodcastSuccessful: boolean;
|
publisher.broadcast(ev);
|
||||||
|
publisher.broadcastForBootstrap(ev);
|
||||||
try {
|
try {
|
||||||
publisher.broadcast(updatedRelaysEvent);
|
const onlineRelays = await fetch("https://api.nostr.watch/v1/online").then(r => r.json());
|
||||||
publisher.broadcastForBootstrap(updatedRelaysEvent);
|
const settingsEv = await publisher.saveRelaysSettings();
|
||||||
|
const rs = Object.keys(relays).concat(randomSample(onlineRelays, 20));
|
||||||
|
publisher.broadcastAll(settingsEv, rs);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
publisher.broadcastWithBlastr(updatedRelaysEvent);
|
|
||||||
wasBlastrBrodcastSuccessful = true;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
wasBlastrBrodcastSuccessful = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!wasBlastrBrodcastSuccessful) {
|
|
||||||
try {
|
|
||||||
const onlineRelays = await fetch("https://api.nostr.watch/v1/online").then(r => r.json());
|
|
||||||
const rs = Object.keys(relays).concat(randomSample(onlineRelays, 20));
|
|
||||||
publisher.broadcastAll(updatedRelaysEvent, rs);
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addRelay() {
|
function addRelay() {
|
||||||
|
Loading…
Reference in New Issue
Block a user