feat: full event verify in wasm

This commit is contained in:
2024-01-03 23:20:00 +00:00
parent 267c09a946
commit 0043b7e8bd
13 changed files with 85 additions and 41 deletions

View File

@ -1,8 +1,9 @@
import { schnorr } from "@noble/curves/secp256k1";
import { ReqFilter } from "../nostr";
import { NostrEvent, ReqFilter } from "../nostr";
import { expandFilter } from "./request-expander";
import { flatMerge, mergeSimilar } from "./request-merger";
import { diffFilters } from "./request-splitter";
import { EventExt } from "../event-ext";
export interface FlatReqFilter {
keys: number;
@ -21,15 +22,15 @@ export interface FlatReqFilter {
resultSetId: string;
}
export interface QueryOptimizer {
export interface Optimizer {
expandFilter(f: ReqFilter): Array<FlatReqFilter>;
getDiff(prev: Array<ReqFilter>, next: Array<ReqFilter>): Array<FlatReqFilter>;
flatMerge(all: Array<FlatReqFilter>): Array<ReqFilter>;
compress(all: Array<ReqFilter>): Array<ReqFilter>;
schnorrVerify(hash: string, sig: string, pubkey: string): boolean;
schnorrVerify(ev: NostrEvent): boolean;
}
export const DefaultQueryOptimizer = {
export const DefaultOptimizer = {
expandFilter: (f: ReqFilter) => {
return expandFilter(f);
},
@ -46,7 +47,8 @@ export const DefaultQueryOptimizer = {
compress: (all: Array<ReqFilter>) => {
return mergeSimilar(all);
},
schnorrVerify: (hash, sig, pubkey) => {
return schnorr.verify(sig, hash, pubkey);
schnorrVerify: ev => {
const id = EventExt.createId(ev);
return schnorr.verify(ev.sig, id, ev.pubkey);
},
} as QueryOptimizer;
} as Optimizer;