better ransom

This commit is contained in:
zmeyer44 2023-10-18 16:08:01 -04:00
parent c1787c98ae
commit eecc3875fe
5 changed files with 55 additions and 42 deletions

View File

@ -67,12 +67,12 @@ export default function Header({ event }: { event: NDKEvent }) {
}, [isMember, currentUser]); }, [isMember, currentUser]);
async function handleCheckPayment() { async function handleCheckPayment() {
if (!event || !currentUser) return; if (!event || !currentUser || !ndk) return;
setCheckingPayment(true); setCheckingPayment(true);
console.log("Checking payment"); console.log("Checking payment");
try { try {
const result = await checkPayment( const result = await checkPayment(
ndk!, ndk,
event.tagId(), event.tagId(),
currentUser.pubkey, currentUser.pubkey,
rawEvent, rawEvent,
@ -88,11 +88,11 @@ export default function Header({ event }: { event: NDKEvent }) {
} }
} }
async function handleSyncUsers() { async function handleSyncUsers() {
if (!event) return; if (!event || !ndk) return;
setSyncingUsers(true); setSyncingUsers(true);
try { try {
console.log("handleSyncUsers"); console.log("handleSyncUsers");
await updateListUsersFromZaps(ndk!, event.tagId(), rawEvent); await updateListUsersFromZaps(ndk, event.tagId(), rawEvent);
toast.success("Users Synced!"); toast.success("Users Synced!");
} catch (err) { } catch (err) {
console.log("error syncing users", err); console.log("error syncing users", err);
@ -171,7 +171,11 @@ export default function Header({ event }: { event: NDKEvent }) {
</Button> </Button>
</> </>
)} )}
{subscriptionsEnabled && !isMember && ( {subscriptionsEnabled &&
!isMember &&
(hasValidPayment ? (
<Button variant={"outline"}>Pending Sync</Button>
) : (
<Button <Button
onClick={() => onClick={() =>
modal?.show( modal?.show(
@ -203,7 +207,7 @@ export default function Header({ event }: { event: NDKEvent }) {
> >
Subscribe Subscribe
</Button> </Button>
)} ))}
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@ import FormModal from "./FormModal";
import { z } from "zod"; import { z } from "zod";
import { useModal } from "@/app/_providers/modal/provider"; import { useModal } from "@/app/_providers/modal/provider";
import { toast } from "sonner"; import { toast } from "sonner";
import { generateRandomString } from "@/lib/nostr"; import { generateRandomString, randomId } from "@/lib/nostr";
import { satsToBtc } from "@/lib/utils"; import { satsToBtc } from "@/lib/utils";
import useCurrentUser from "@/lib/hooks/useCurrentUser"; import useCurrentUser from "@/lib/hooks/useCurrentUser";
import { useNDK } from "@/app/_providers/ndk"; import { useNDK } from "@/app/_providers/ndk";
@ -34,7 +34,7 @@ export default function CreateList() {
const { getSigner } = useSigner()!; const { getSigner } = useSigner()!;
async function handleSubmit(data: CreateListType) { async function handleSubmit(data: CreateListType) {
setIsLoading(true); setIsLoading(true);
const random = generateRandomString(); const random = randomId();
const tags = [ const tags = [
["title", data.title], ["title", data.title],
["name", data.title], ["name", data.title],

View File

@ -7,7 +7,7 @@ import NDK, {
type NostrEvent, type NostrEvent,
NDKUser, NDKUser,
} from "@nostr-dev-kit/ndk"; } from "@nostr-dev-kit/ndk";
import { generateRandomString, encryptMessage } from "@/lib/nostr"; import { generateRandomString, encryptMessage, randomId } from "@/lib/nostr";
import { unixTimeNowInSeconds } from "@/lib/nostr/dates"; import { unixTimeNowInSeconds } from "@/lib/nostr/dates";
import { getTagsValues } from "@/lib/nostr/utils"; import { getTagsValues } from "@/lib/nostr/utils";
@ -155,7 +155,7 @@ export async function createList(
tags: [ tags: [
["name", title], ["name", title],
["description", description ?? ""], ["description", description ?? ""],
["d", generateRandomString()], ["d", randomId()],
], ],
}); });
} }

View File

@ -39,7 +39,6 @@ export async function checkPayment(
pubkey: string, pubkey: string,
event: NostrEvent, event: NostrEvent,
) { ) {
console.log("Running check payment");
const paymentEvent = await ndk.fetchEvent({ const paymentEvent = await ndk.fetchEvent({
kinds: [9735], kinds: [9735],
["#a"]: [tagId], ["#a"]: [tagId],

View File

@ -142,7 +142,17 @@ function create32ByteBuffer(inputString: string) {
const buffer = Buffer.from(hash, "hex"); const buffer = Buffer.from(hash, "hex");
return buffer; return buffer;
} }
export function randomId() {
// @ts-ignore
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11)
.replace(/[018]/g, (c: any) =>
(
c ^
(crypto.getRandomValues(new Uint8Array(1))[0]! & (15 >> (c / 4)))
).toString(16),
)
.slice(0, 8) as string;
}
export function generateRandomString() { export function generateRandomString() {
return crypto.randomBytes(32).toString("hex"); return crypto.randomBytes(32).toString("hex");
} }