This commit is contained in:
smolgrrr 2024-01-05 17:16:55 +11:00
parent c1986b48c8
commit 4b2f7b213d
6 changed files with 40 additions and 40 deletions

View File

@ -56,10 +56,13 @@ const NewNoteCard = ({
} else {
unsigned.tags = refEvent.tags
unsigned.tags.push(['p', refEvent.pubkey]);
unsigned.tags.push(['e', refEvent.id]);
}
if (tagType === 'Quote') {
setComment(comment + '\nnostr:' + nip19.noteEncode(refEvent.id));
unsigned.tags.push(['q', refEvent.id]);
} else {
unsigned.tags.push(['e', refEvent.id]);
}
}
}

View File

@ -1,5 +1,5 @@
import { useState, useEffect } from "react";
import { generatePrivateKey, getPublicKey, finishEvent, UnsignedEvent } from "nostr-tools";
import { generateSecretKey, getPublicKey, finalizeEvent, UnsignedEvent } from "nostr-tools";
import { publish } from "../../utils/relays";
const useWorkers = (numCores: number, unsigned: UnsignedEvent, difficulty: string, deps: any[]) => {
@ -35,7 +35,7 @@ const useWorkers = (numCores: number, unsigned: UnsignedEvent, difficulty: strin
export const useSubmitForm = (unsigned: UnsignedEvent, difficulty: string) => {
const [doingWorkProp, setDoingWorkProp] = useState(false);
const [sk, setSk] = useState(generatePrivateKey());
const [sk, setSk] = useState(generateSecretKey());
const unsignedWithPubkey = { ...unsigned, pubkey: getPublicKey(sk) };
const powServer = useState(localStorage.getItem('powserver') || '');
const [unsignedPoWEvent, setUnsignedPoWEvent] = useState<UnsignedEvent>()
@ -49,9 +49,9 @@ export const useSubmitForm = (unsigned: UnsignedEvent, difficulty: string) => {
useEffect(() => {
if (unsignedPoWEvent) {
setDoingWorkProp(false);
const signedEvent = finishEvent(unsignedPoWEvent, sk);
const signedEvent = finalizeEvent(unsignedPoWEvent, sk);
publish(signedEvent);
setSk(generatePrivateKey())
setSk(generateSecretKey())
}
}, [unsignedPoWEvent]);

View File

@ -43,10 +43,10 @@ export function getPow(hex: string): number {
*
* Adapted from Snort: https://git.v0l.io/Kieran/snort/src/commit/4df6c19248184218c4c03728d61e94dae5f2d90c/packages/system/src/pow-util.ts#L14-L36
*/
export function minePow<K extends number>(unsigned: UnsignedEvent<K>, difficulty: number, nonceStart: number, nonceStep: number): { found: boolean, event?: Omit<Event<K>, 'sig'> } {
export function minePow<K extends number>(unsigned: UnsignedEvent, difficulty: number, nonceStart: number, nonceStep: number): { found: boolean, event?: Omit<Event, 'sig'> } {
let nonce = nonceStart;
const event = unsigned as Omit<Event<K>, 'sig'>
const event = unsigned as Omit<Event, 'sig'>
const tag = ['nonce', nonce.toString(), difficulty.toString()]
event.tags.push(tag);

View File

@ -1,4 +1,4 @@
import { generatePrivateKey, getPublicKey, finishEvent } from "nostr-tools";
import { generateSecretKey, getPublicKey, finalizeEvent } from "nostr-tools";
import { base64 } from "@scure/base";
export interface UploadResult {
@ -13,7 +13,7 @@ export interface UploadResult {
export default async function FileUpload(file: File): Promise<UploadResult> {
const buf = await file.arrayBuffer();
const sk = generatePrivateKey();
const sk = generateSecretKey();
const auth = async () => {
const authEvent = {
kind: 27235,
@ -25,7 +25,7 @@ export default async function FileUpload(file: File): Promise<UploadResult> {
created_at: Math.floor(Date.now() / 1000),
pubkey: getPublicKey(sk),
}
return `Nostr ${base64.encode(new TextEncoder().encode(JSON.stringify(finishEvent(authEvent, sk))))}`;
return `Nostr ${base64.encode(new TextEncoder().encode(JSON.stringify(finalizeEvent(authEvent, sk))))}`;
};
const req = await fetch("https://void.cat/upload", {

View File

@ -23,10 +23,10 @@ export function getPow(hex: string): number {
*
* Adapted from Snort: https://git.v0l.io/Kieran/snort/src/commit/4df6c19248184218c4c03728d61e94dae5f2d90c/packages/system/src/pow-util.ts#L14-L36
*/
export function minePow<K extends number>(unsigned: UnsignedEvent<K>, difficulty: number): Omit<Event<K>, 'sig'> {
export function minePow<K extends number>(unsigned: UnsignedEvent, difficulty: number): Omit<Event, 'sig'> {
let count = 0
const event = unsigned as Omit<Event<K>, 'sig'>
const event = unsigned as Omit<Event, 'sig'>
const tag = ['nonce', count.toString(), difficulty.toString()]
event.tags.push(tag)

View File

@ -1,4 +1,4 @@
import {Event, Filter, relayInit, Relay, Sub} from 'nostr-tools';
import {Event, Filter, Relay, Subscription} from 'nostr-tools';
type SubCallback = (
event: Readonly<Event>,
@ -11,18 +11,18 @@ type Subscribe = {
unsub?: boolean;
};
const subList: Array<Sub> = [];
const subList: Array<Subscription> = [];
const currentSubList: Array<Subscribe> = [];
const relayMap = new Map<string, Relay>();
export const addRelay = async (url: string) => {
const relay = relayInit(url);
relay.on('connect', () => {
console.info(`connected to ${relay.url}`);
});
relay.on('error', () => {
console.warn(`failed to connect to ${relay.url}`);
});
const relay = await Relay.connect(url);
// relay.on('connect', () => {
// console.info(`connected to ${relay.url}`);
// });
// relay.on('error', () => {
// console.warn(`failed to connect to ${relay.url}`);
// });
try {
await relay.connect();
currentSubList.forEach(({cb, filter}) => subscribe(cb, filter, relay));
@ -32,8 +32,8 @@ export const addRelay = async (url: string) => {
}
};
export const unsubscribe = (sub: Sub) => {
sub.unsub();
export const unsubscribe = (sub: Subscription) => {
sub.close();
subList.splice(subList.indexOf(sub), 1);
};
@ -43,17 +43,18 @@ const subscribe = (
relay: Relay,
unsub?: boolean
) => {
const sub = relay.sub([filter]);
subList.push(sub);
sub.on('event', (event: Event) => {
const sub = relay.subscribe([filter],
{
onevent(event) {
cb(event, relay.url);
});
},
oneose() {
if (unsub) {
sub.on('eose', () => {
// console.log('eose', relay.url);
unsubscribe(sub);
});
}
}
});
subList.push(sub);
return sub;
};
@ -68,10 +69,6 @@ export const subOnce = (
const relay = relayMap.get(obj.relay);
if (relay) {
const sub = subscribe(obj.cb, obj.filter, relay);
sub.on('eose', () => {
// console.log('eose', obj.relay);
unsubscribe(sub);
});
}
};