diff --git a/.env.example b/.env.example index f4d15692..4c7e308a 100644 --- a/.env.example +++ b/.env.example @@ -49,3 +49,5 @@ DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_HOST}:${DB_ # Redis database connection REDIS_URL=redis://localhost:6379 + +ANONYMOUS_ACCOUNT_PRIVATEKEY= \ No newline at end of file diff --git a/data/filter.json b/data/filter.json index 420c9fa1..fc36acaa 100644 --- a/data/filter.json +++ b/data/filter.json @@ -1,3 +1,3 @@ { - "latest": [151, 53994, 54570, 54481, 54537, 54302, 53944, 55768, 55855] + "latest": [151, 53994, 54570, 54481, 54537, 54302, 53944, 55768, 55855, 56592] } \ No newline at end of file diff --git a/deploy/dev/secrets.yaml b/deploy/dev/secrets.yaml index 60b8dc52..cc981cd1 100644 --- a/deploy/dev/secrets.yaml +++ b/deploy/dev/secrets.yaml @@ -10,6 +10,7 @@ stringData: OPENSEA_API_KEY: ${OPENSEA_API_KEY} POAP_API_KEY: ${POAP_API_KEY} OPENAI_API_KEY: ${OPENAI_API_KEY} + ANONYMOUS_ACCOUNT_PRIVATEKEY: ${ANONYMOUS_ACCOUNT_PRIVATEKEY} kind: Secret metadata: name: xlog diff --git a/deploy/prod/secrets.yaml b/deploy/prod/secrets.yaml index e65d070b..5620f564 100644 --- a/deploy/prod/secrets.yaml +++ b/deploy/prod/secrets.yaml @@ -10,6 +10,7 @@ stringData: OPENSEA_API_KEY: ${OPENSEA_API_KEY} POAP_API_KEY: ${POAP_API_KEY} OPENAI_API_KEY: ${OPENAI_API_KEY} + ANONYMOUS_ACCOUNT_PRIVATEKEY: ${ANONYMOUS_ACCOUNT_PRIVATEKEY} kind: Secret metadata: name: xlog diff --git a/next.config.js b/next.config.js index bb2ef29f..c61752e5 100644 --- a/next.config.js +++ b/next.config.js @@ -119,6 +119,8 @@ module.exports = withBundleAnalyzer( ENV_OPENSEA_API_KEY: process.env.OPENSEA_API_KEY, ENV_POAP_API_KEY: process.env.POAP_API_KEY, ENV_OPENAI_API_KEY: process.env.OPENAI_API_KEY, + ENV_ANONYMOUS_ACCOUNT_PRIVATEKEY: + process.env.ANONYMOUS_ACCOUNT_PRIVATEKEY, }, async headers() { diff --git a/src/app/api/anonymous/comment/route.ts b/src/app/api/anonymous/comment/route.ts new file mode 100644 index 00000000..4e3f9df5 --- /dev/null +++ b/src/app/api/anonymous/comment/route.ts @@ -0,0 +1,42 @@ +import { createContract } from "crossbell" +import { NextResponse } from "next/server" + +import { ANONYMOUS_ACCOUNT_PRIVATEKEY } from "~/lib/env.server" +import { NextServerResponse, getQuery } from "~/lib/server-helper" + +const contract = createContract(ANONYMOUS_ACCOUNT_PRIVATEKEY) + +// /api/anonymous/comment?target=1-1&content=hello&name=Me +export async function GET(req: Request): Promise { + const { target, content, name } = getQuery(req) + + if (!target || !content) { + return NextResponse.json({ error: "Missing target or content" }) + } + const res = new NextServerResponse() + + const { data } = await contract.note.postForNote({ + targetCharacterId: target.split("-")[0], + targetNoteId: target.split("-")[1], + characterId: 56592, + metadataOrUri: { + tags: ["comment"], + sources: ["xlog"], + content: content, + }, + ...(name && { + attributes: [ + { + trait_type: "xlog_display_name", + value: name, + }, + ], + }), + }) + + return res.status(200).json({ + data: { + noteId: data.noteId.toString(), + }, + }) +} diff --git a/src/lib/env.server.ts b/src/lib/env.server.ts index 3a6781db..7ba74704 100644 --- a/src/lib/env.server.ts +++ b/src/lib/env.server.ts @@ -23,3 +23,6 @@ export const OPENSEA_API_KEY = export const POAP_API_KEY = config.ENV_POAP_API_KEY || process.env.POAP_API_KEY export const OPENAI_API_KEY = config.ENV_OPENAI_API_KEY || process.env.OPENAI_API_KEY +export const ANONYMOUS_ACCOUNT_PRIVATEKEY = + config.ENV_ANONYMOUS_ACCOUNT_PRIVATEKEY || + process.env.ANONYMOUS_ACCOUNT_PRIVATEKEY