Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
35 changes: 22 additions & 13 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
CHANGEFEED_ACCESS_TOKEN=
GITHUB_ACCESS_TOKEN=
LIVEPEER_COM_API_ADMIN_TOKEN=
PINATA_JWT=
# Subgraph. With a Graph API key, queries go through The Graph's gateway to
# the published subgraph's latest version (lib/config.ts); restrict the key
# to your domains in Subgraph Studio, since it's used from the browser.
# Without one, the rate-limited Studio URL is used (fine for local dev).
NEXT_PUBLIC_SUBGRAPH_API_KEY=
# Optional: pin one version by deployment id (Qm…), or a whole endpoint URL.
NEXT_PUBLIC_SUBGRAPH_DEPLOYMENT=
NEXT_PUBLIC_SUBGRAPH_ENDPOINT=

NEXT_PUBLIC_GA_TRACKING_ID=
NEXT_PUBLIC_NETWORK=ARBITRUM_ONE
# RPC. Public endpoints are used when these are empty.
NEXT_PUBLIC_INFURA_KEY=
NEXT_PUBLIC_L1_RPC_URL=
NEXT_PUBLIC_L2_RPC_URL=
NEXT_PUBLIC_GITHUB_LIP_NAMESPACE=adamsoffer
NEXT_PUBLIC_SUBGRAPH_API_KEY=
NEXT_PUBLIC_SUBGRAPH_ID=FE63YgkzcpVocxdCEyEYbvjYqEf2kb1A6daMYRxmejYC

NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=
NEXT_PUBLIC_METRICS_SERVER_URL=https://leaderboard-serverless.vercel.app
NEXT_PUBLIC_AI_METRICS_SERVER_URL=https://leaderboard-api.livepeer.cloud

# Optional dev overrides (e.g. Graph Studio sandbox; leave empty in prod)
NEXT_PUBLIC_SUBGRAPH_ENDPOINT=
# Public URL of this deployment, e.g. https://explorer.livepeer.org. Used for
# absolute share-image URLs. Optional on Vercel when system environment
# variables are exposed; otherwise links preview without an image.
SITE_URL=

# Creating LIP polls: the explorer pins the LIP's text to IPFS through Pinata
# before the poll is created on-chain. Without it, poll creation is disabled.
PINATA_JWT=

# Optional: raises GitHub's rate limit when reading the LIPs repository.
GITHUB_ACCESS_TOKEN=

4 changes: 0 additions & 4 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ node_modules
.github
.vscode
.playwright-mcp
@types
apollo
codegen.yml
data
next-env.d.ts
pnpm-lock.yaml
public
8 changes: 0 additions & 8 deletions @types/custom.d.ts

This file was deleted.

9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.

This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.

<!-- END:nextjs-agent-rules -->
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
15 changes: 14 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,20 @@ If you find an issue you want to work on, follow the Commits and Pull Request in

### Commits

As best as possible, try to follow [Conventional Commits v1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) patterns.
Start the subject with the area of the app it touches, then a short summary in the imperative:

```text
orchestrators: rank by expected yield
wallet: resume the action once the right account connects
network, docs: explain what the sparklines cover
```

- **Area:** lowercase, naming the part of the app, such as `portfolio`, `orchestrators`, `gateways`, `governance`, `network`, `wallet`, `shell`, `ui`, `data`, `build` or `docs`. Separate two with a comma, and use `app` for changes across the whole app.
- **Summary:** lowercase and imperative ("add", not "added" or "adds"), with no trailing period. Keep the whole subject under 72 characters.
- **Body:** wrapped at 72 characters. Explain why and anything that isn't obvious from the diff, rather than listing files.
- **One logical change per commit,** each building and passing tests.

PRs are squash-merged, so the PR title becomes the commit on `main`: write it the same way.

### Code Conventions

Expand Down
37 changes: 10 additions & 27 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,21 @@ FROM node:24 AS builder
WORKDIR /app
RUN corepack enable

ARG CHANGEFEED_ACCESS_TOKEN
ARG GITHUB_ACCESS_TOKEN
ARG LIVEPEER_COM_API_ADMIN_TOKEN
ARG PINATA_JWT
ARG NEXT_PUBLIC_GA_TRACKING_ID
ARG NEXT_PUBLIC_NETWORK=ARBITRUM_ONE
ARG NEXT_PUBLIC_SUBGRAPH_ENDPOINT
ARG NEXT_PUBLIC_SUBGRAPH_API_KEY
ARG NEXT_PUBLIC_SUBGRAPH_ID
ARG NEXT_PUBLIC_INFURA_KEY
ARG NEXT_PUBLIC_L1_RPC_URL
ARG NEXT_PUBLIC_L2_RPC_URL
ARG NEXT_PUBLIC_GITHUB_LIP_NAMESPACE=adamsoffer
ARG NEXT_PUBLIC_SUBGRAPH_API_KEY
ARG NEXT_PUBLIC_SUBGRAPH_ID
ARG NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID
ARG NEXT_PUBLIC_METRICS_SERVER_URL=https://leaderboard-serverless.vercel.app
ARG NEXT_PUBLIC_AI_METRICS_SERVER_URL=https://leaderboard-api.livepeer.cloud

# Step 5: Create .env file with substituted values
RUN echo "CHANGEFEED_ACCESS_TOKEN=${CHANGEFEED_ACCESS_TOKEN}" >> .env && \
echo "GITHUB_ACCESS_TOKEN=${GITHUB_ACCESS_TOKEN}" >> .env && \
echo "LIVEPEER_COM_API_ADMIN_TOKEN=${LIVEPEER_COM_API_ADMIN_TOKEN}" >> .env && \
echo "PINATA_JWT=${PINATA_JWT}" >> .env && \
echo "NEXT_PUBLIC_GA_TRACKING_ID=${NEXT_PUBLIC_GA_TRACKING_ID}" >> .env && \
echo "NEXT_PUBLIC_NETWORK=${NEXT_PUBLIC_NETWORK}" >> .env && \
echo "NEXT_PUBLIC_INFURA_KEY=${NEXT_PUBLIC_INFURA_KEY}" >> .env && \
echo "NEXT_PUBLIC_L1_RPC_URL=${NEXT_PUBLIC_L1_RPC_URL}" >> .env && \
echo "NEXT_PUBLIC_L2_RPC_URL=${NEXT_PUBLIC_L2_RPC_URL}" >> .env && \
echo "NEXT_PUBLIC_GITHUB_LIP_NAMESPACE=${NEXT_PUBLIC_GITHUB_LIP_NAMESPACE}" >> .env && \
echo "NEXT_PUBLIC_SUBGRAPH_API_KEY=${NEXT_PUBLIC_SUBGRAPH_API_KEY}" >> .env && \
echo "NEXT_PUBLIC_SUBGRAPH_ID=${NEXT_PUBLIC_SUBGRAPH_ID}" >> .env && \
echo "NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=${NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID}" >> .env && \
echo "NEXT_PUBLIC_METRICS_SERVER_URL=${NEXT_PUBLIC_METRICS_SERVER_URL}" >> .env && \
echo "NEXT_PUBLIC_AI_METRICS_SERVER_URL=${NEXT_PUBLIC_AI_METRICS_SERVER_URL}" >> .env
ENV NEXT_PUBLIC_SUBGRAPH_ENDPOINT=${NEXT_PUBLIC_SUBGRAPH_ENDPOINT} \
NEXT_PUBLIC_SUBGRAPH_API_KEY=${NEXT_PUBLIC_SUBGRAPH_API_KEY} \
NEXT_PUBLIC_SUBGRAPH_ID=${NEXT_PUBLIC_SUBGRAPH_ID} \
NEXT_PUBLIC_INFURA_KEY=${NEXT_PUBLIC_INFURA_KEY} \
NEXT_PUBLIC_L1_RPC_URL=${NEXT_PUBLIC_L1_RPC_URL} \
NEXT_PUBLIC_L2_RPC_URL=${NEXT_PUBLIC_L2_RPC_URL} \
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=${NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID}

COPY . .
RUN pnpm install --frozen-lockfile && pnpm run build
Expand Down
Loading
Loading