Browse Source

made the kind 24 public messages ephemeral for 4 weeks

master
silberengel 7 months ago
parent
commit
4975293117
  1. 2
      src/lib/consts.ts
  2. 10
      src/lib/utils/nostrEventService.ts

2
src/lib/consts.ts

@ -51,5 +51,7 @@ export enum FeedType {
UserRelays = "user", UserRelays = "user",
} }
export const EXPIRATION_DURATION = 28 * 24 * 60 * 60; // 4 weeks in seconds
export const loginStorageKey = "alexandria/login/pubkey"; export const loginStorageKey = "alexandria/login/pubkey";
export const feedTypeStorageKey = "alexandria/feed/type"; export const feedTypeStorageKey = "alexandria/feed/type";

10
src/lib/utils/nostrEventService.ts

@ -3,6 +3,7 @@ import { getEventHash, signEvent, prefixNostrAddresses } from "./nostrUtils.ts";
import { get } from "svelte/store"; import { get } from "svelte/store";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { EVENT_KINDS, TIME_CONSTANTS } from "./search_constants.ts"; import { EVENT_KINDS, TIME_CONSTANTS } from "./search_constants.ts";
import { EXPIRATION_DURATION } from "../consts.ts";
import { ndkInstance } from "../ndk.ts"; import { ndkInstance } from "../ndk.ts";
import { NDKRelaySet, NDKEvent } from "@nostr-dev-kit/ndk"; import { NDKRelaySet, NDKEvent } from "@nostr-dev-kit/ndk";
@ -320,12 +321,19 @@ export async function createSignedEvent(
): Promise<{ id: string; sig: string; event: any }> { ): Promise<{ id: string; sig: string; event: any }> {
const prefixedContent = prefixNostrAddresses(content); const prefixedContent = prefixNostrAddresses(content);
// Add expiration tag for kind 24 events (NIP-40)
const finalTags = [...tags];
if (kind === 24) {
const expirationTimestamp = Math.floor(Date.now() / TIME_CONSTANTS.UNIX_TIMESTAMP_FACTOR) + EXPIRATION_DURATION;
finalTags.push(["expiration", String(expirationTimestamp)]);
}
const eventToSign = { const eventToSign = {
kind: Number(kind), kind: Number(kind),
created_at: Number( created_at: Number(
Math.floor(Date.now() / TIME_CONSTANTS.UNIX_TIMESTAMP_FACTOR), Math.floor(Date.now() / TIME_CONSTANTS.UNIX_TIMESTAMP_FACTOR),
), ),
tags: tags.map((tag) => [ tags: finalTags.map((tag) => [
String(tag[0]), String(tag[0]),
String(tag[1]), String(tag[1]),
String(tag[2] || ""), String(tag[2] || ""),

Loading…
Cancel
Save