mirror of
https://github.com/smolgrrr/TAO.git
synced 2024-09-20 09:21:25 +00:00
fix shit
This commit is contained in:
parent
c1986b48c8
commit
4b2f7b213d
@ -56,10 +56,13 @@ const NewNoteCard = ({
|
|||||||
} else {
|
} else {
|
||||||
unsigned.tags = refEvent.tags
|
unsigned.tags = refEvent.tags
|
||||||
unsigned.tags.push(['p', refEvent.pubkey]);
|
unsigned.tags.push(['p', refEvent.pubkey]);
|
||||||
unsigned.tags.push(['e', refEvent.id]);
|
|
||||||
}
|
if (tagType === 'Quote') {
|
||||||
if (tagType === 'Quote') {
|
setComment(comment + '\nnostr:' + nip19.noteEncode(refEvent.id));
|
||||||
setComment(comment + '\nnostr:' + nip19.noteEncode(refEvent.id));
|
unsigned.tags.push(['q', refEvent.id]);
|
||||||
|
} else {
|
||||||
|
unsigned.tags.push(['e', refEvent.id]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useState, useEffect } from "react";
|
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";
|
import { publish } from "../../utils/relays";
|
||||||
|
|
||||||
const useWorkers = (numCores: number, unsigned: UnsignedEvent, difficulty: string, deps: any[]) => {
|
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) => {
|
export const useSubmitForm = (unsigned: UnsignedEvent, difficulty: string) => {
|
||||||
const [doingWorkProp, setDoingWorkProp] = useState(false);
|
const [doingWorkProp, setDoingWorkProp] = useState(false);
|
||||||
const [sk, setSk] = useState(generatePrivateKey());
|
const [sk, setSk] = useState(generateSecretKey());
|
||||||
const unsignedWithPubkey = { ...unsigned, pubkey: getPublicKey(sk) };
|
const unsignedWithPubkey = { ...unsigned, pubkey: getPublicKey(sk) };
|
||||||
const powServer = useState(localStorage.getItem('powserver') || '');
|
const powServer = useState(localStorage.getItem('powserver') || '');
|
||||||
const [unsignedPoWEvent, setUnsignedPoWEvent] = useState<UnsignedEvent>()
|
const [unsignedPoWEvent, setUnsignedPoWEvent] = useState<UnsignedEvent>()
|
||||||
@ -49,9 +49,9 @@ export const useSubmitForm = (unsigned: UnsignedEvent, difficulty: string) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (unsignedPoWEvent) {
|
if (unsignedPoWEvent) {
|
||||||
setDoingWorkProp(false);
|
setDoingWorkProp(false);
|
||||||
const signedEvent = finishEvent(unsignedPoWEvent, sk);
|
const signedEvent = finalizeEvent(unsignedPoWEvent, sk);
|
||||||
publish(signedEvent);
|
publish(signedEvent);
|
||||||
setSk(generatePrivateKey())
|
setSk(generateSecretKey())
|
||||||
}
|
}
|
||||||
}, [unsignedPoWEvent]);
|
}, [unsignedPoWEvent]);
|
||||||
|
|
||||||
|
@ -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
|
* 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;
|
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()]
|
const tag = ['nonce', nonce.toString(), difficulty.toString()]
|
||||||
|
|
||||||
event.tags.push(tag);
|
event.tags.push(tag);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { generatePrivateKey, getPublicKey, finishEvent } from "nostr-tools";
|
import { generateSecretKey, getPublicKey, finalizeEvent } from "nostr-tools";
|
||||||
import { base64 } from "@scure/base";
|
import { base64 } from "@scure/base";
|
||||||
|
|
||||||
export interface UploadResult {
|
export interface UploadResult {
|
||||||
@ -13,7 +13,7 @@ export interface UploadResult {
|
|||||||
|
|
||||||
export default async function FileUpload(file: File): Promise<UploadResult> {
|
export default async function FileUpload(file: File): Promise<UploadResult> {
|
||||||
const buf = await file.arrayBuffer();
|
const buf = await file.arrayBuffer();
|
||||||
const sk = generatePrivateKey();
|
const sk = generateSecretKey();
|
||||||
const auth = async () => {
|
const auth = async () => {
|
||||||
const authEvent = {
|
const authEvent = {
|
||||||
kind: 27235,
|
kind: 27235,
|
||||||
@ -25,7 +25,7 @@ export default async function FileUpload(file: File): Promise<UploadResult> {
|
|||||||
created_at: Math.floor(Date.now() / 1000),
|
created_at: Math.floor(Date.now() / 1000),
|
||||||
pubkey: getPublicKey(sk),
|
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", {
|
const req = await fetch("https://void.cat/upload", {
|
||||||
|
@ -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
|
* 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
|
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()]
|
const tag = ['nonce', count.toString(), difficulty.toString()]
|
||||||
|
|
||||||
event.tags.push(tag)
|
event.tags.push(tag)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {Event, Filter, relayInit, Relay, Sub} from 'nostr-tools';
|
import {Event, Filter, Relay, Subscription} from 'nostr-tools';
|
||||||
|
|
||||||
type SubCallback = (
|
type SubCallback = (
|
||||||
event: Readonly<Event>,
|
event: Readonly<Event>,
|
||||||
@ -11,18 +11,18 @@ type Subscribe = {
|
|||||||
unsub?: boolean;
|
unsub?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
const subList: Array<Sub> = [];
|
const subList: Array<Subscription> = [];
|
||||||
const currentSubList: Array<Subscribe> = [];
|
const currentSubList: Array<Subscribe> = [];
|
||||||
const relayMap = new Map<string, Relay>();
|
const relayMap = new Map<string, Relay>();
|
||||||
|
|
||||||
export const addRelay = async (url: string) => {
|
export const addRelay = async (url: string) => {
|
||||||
const relay = relayInit(url);
|
const relay = await Relay.connect(url);
|
||||||
relay.on('connect', () => {
|
// relay.on('connect', () => {
|
||||||
console.info(`connected to ${relay.url}`);
|
// console.info(`connected to ${relay.url}`);
|
||||||
});
|
// });
|
||||||
relay.on('error', () => {
|
// relay.on('error', () => {
|
||||||
console.warn(`failed to connect to ${relay.url}`);
|
// console.warn(`failed to connect to ${relay.url}`);
|
||||||
});
|
// });
|
||||||
try {
|
try {
|
||||||
await relay.connect();
|
await relay.connect();
|
||||||
currentSubList.forEach(({cb, filter}) => subscribe(cb, filter, relay));
|
currentSubList.forEach(({cb, filter}) => subscribe(cb, filter, relay));
|
||||||
@ -32,8 +32,8 @@ export const addRelay = async (url: string) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const unsubscribe = (sub: Sub) => {
|
export const unsubscribe = (sub: Subscription) => {
|
||||||
sub.unsub();
|
sub.close();
|
||||||
subList.splice(subList.indexOf(sub), 1);
|
subList.splice(subList.indexOf(sub), 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -43,17 +43,18 @@ const subscribe = (
|
|||||||
relay: Relay,
|
relay: Relay,
|
||||||
unsub?: boolean
|
unsub?: boolean
|
||||||
) => {
|
) => {
|
||||||
const sub = relay.sub([filter]);
|
const sub = relay.subscribe([filter],
|
||||||
subList.push(sub);
|
{
|
||||||
sub.on('event', (event: Event) => {
|
onevent(event) {
|
||||||
cb(event, relay.url);
|
cb(event, relay.url);
|
||||||
});
|
},
|
||||||
if (unsub) {
|
oneose() {
|
||||||
sub.on('eose', () => {
|
if (unsub) {
|
||||||
// console.log('eose', relay.url);
|
unsubscribe(sub);
|
||||||
unsubscribe(sub);
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
subList.push(sub);
|
||||||
return sub;
|
return sub;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -68,10 +69,6 @@ export const subOnce = (
|
|||||||
const relay = relayMap.get(obj.relay);
|
const relay = relayMap.get(obj.relay);
|
||||||
if (relay) {
|
if (relay) {
|
||||||
const sub = subscribe(obj.cb, obj.filter, relay);
|
const sub = subscribe(obj.cb, obj.filter, relay);
|
||||||
sub.on('eose', () => {
|
|
||||||
// console.log('eose', obj.relay);
|
|
||||||
unsubscribe(sub);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user