Skip to content

Commit

Permalink
feat: migrate protocol definition to separate package (#111)
Browse files Browse the repository at this point in the history
  • Loading branch information
pradel authored Aug 12, 2024
1 parent ed604c9 commit 8629586
Show file tree
Hide file tree
Showing 32 changed files with 86 additions and 125 deletions.
6 changes: 6 additions & 0 deletions .changeset/forty-cheetahs-dress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@stackspulse/server": patch
"stackspulse": patch
---

Migrate protocols list to a separate package.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
.turbo
dist
1 change: 1 addition & 0 deletions apps/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"@sentry/node": "8.25.0",
"@stacks/blockchain-api-client": "7.13.2",
"@stacks/stacks-blockchain-api-types": "7.13.2",
"@stackspulse/protocols": "workspace:*",
"@t3-oss/env-core": "0.11.0",
"drizzle-orm": "0.33.0",
"h3": "1.12.0",
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/api/protocols/users/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Protocol } from "@stackspulse/protocols";
import { z } from "zod";
import { sql } from "~/db/db";
import { apiCacheConfig } from "~/lib/api";
import { getValidatedQueryZod } from "~/lib/nitro";
import type { Protocol } from "~/lib/protocols";

const protocolUsersRouteSchema = z.object({
date: z.enum(["7d", "30d", "all"]),
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/api/root/upsert-dapps/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { protocols, protocolsInfo } from "@stackspulse/protocols";
import { db } from "~/db/db";
import { dapps } from "~/db/schema";
import { conflictUpdateSetAllColumns } from "~/db/utils";
import { protocols, protocolsInfo } from "~/lib/protocols";

/**
* Keep the DB up to date with the latest protocols
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/api/transactions/index.get.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { ContractCallTransaction } from "@stacks/stacks-blockchain-api-types";
import { type Protocol, protocols } from "@stackspulse/protocols";
import { z } from "zod";
import { sql } from "~/db/db";
import { apiCacheConfig } from "~/lib/api";
import { getValidatedQueryZod } from "~/lib/nitro";
import { type Protocol, protocols } from "~/lib/protocols";
import { stacksApi } from "~/lib/stacks-api";

const transactionsRouteSchema = z.object({
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/api/transactions/stats/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { protocols } from "@stackspulse/protocols";
import { z } from "zod";
import { sql } from "~/db/db";
import { apiCacheConfig } from "~/lib/api";
import { getValidatedQueryZod } from "~/lib/nitro";
import { protocols } from "~/lib/protocols";

const transactionStatsRouteSchema = z.object({
protocol: z.enum(protocols).optional(),
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/api/transactions/unique-senders/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { protocols } from "@stackspulse/protocols";
import { z } from "zod";
import { sql } from "~/db/db";
import { apiCacheConfig } from "~/lib/api";
import { getValidatedQueryZod } from "~/lib/nitro";
import { protocols } from "~/lib/protocols";

const transactionUniqueSendersRouteSchema = z.object({
protocol: z.enum(protocols),
Expand Down
1 change: 1 addition & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"@sentry/nextjs": "8.25.0",
"@stacks/stacks-blockchain-api-types": "7.13.2",
"@stacks/transactions": "6.16.1",
"@stackspulse/protocols": "workspace:*",
"@t3-oss/env-core": "0.11.0",
"@t3-oss/env-nextjs": "0.11.0",
"@tabler/icons-react": "3.12.0",
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/api/cron/weekly-users/route.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { env } from "@/env";
import type { ProtocolUsersRouteResponse } from "@/lib/api";
import { protocolsInfo } from "@/lib/protocols";
import { sendTweet } from "@/lib/twitter";
import { protocolsInfo } from "@stackspulse/protocols";

export const dynamic = "force-dynamic";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/protocols/[protocol]/contracts/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { isProtocol, protocolsInfo } from "@/lib/protocols";
import { Link, Table } from "@radix-ui/themes";
import { isProtocol, protocolsInfo } from "@stackspulse/protocols";
import type { Metadata } from "next";
import { notFound } from "next/navigation";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/protocols/[protocol]/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ProtocolInfo } from "@/components/Protocol/ProtocolInfo";
import { ProtocolMenu } from "@/components/Protocol/ProtocolMenu";
import { isProtocol, protocolsInfo } from "@/lib/protocols";
import { Container } from "@radix-ui/themes";
import { isProtocol, protocolsInfo } from "@stackspulse/protocols";
import type { Metadata } from "next";
import { notFound } from "next/navigation";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/protocols/[protocol]/opengraph-image.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { env } from "@/env";
import { type Protocol, protocolsInfo } from "@/lib/protocols";
import { type Protocol, protocolsInfo } from "@stackspulse/protocols";
import { ImageResponse } from "next/og";

export const runtime = "edge";
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/protocols/[protocol]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { ProtocolTransactions } from "@/components/Protocol/ProtocolTransactions
import { StackingDAORef } from "@/components/Protocol/StackingDAO/StackingDAORef";
import { UniqueUsersBarChart } from "@/components/Stats/UniqueUsersBarChart";
import { DepositWithdrawBarChart } from "@/components/Stats/stackingdao/DepositsWithdrawBarChart";
import { isProtocol, protocolsInfo } from "@/lib/protocols";
import { isProtocol, protocolsInfo } from "@stackspulse/protocols";
import { notFound } from "next/navigation";
import { Suspense } from "react";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/app/sitemap.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { env } from "@/env";
import { protocolsInfo } from "@/lib/protocols";
import { protocolsInfo } from "@stackspulse/protocols";
import type { MetadataRoute } from "next";

export default function sitemap(): MetadataRoute.Sitemap {
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/Layout/Header.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"use client";
import { appConfig } from "@/appConfig";
import { type Protocol, protocolsInfo } from "@/lib/protocols";
import {
Container,
DropdownMenu,
IconButton,
Link,
Separator,
} from "@radix-ui/themes";
import { type Protocol, protocolsInfo } from "@stackspulse/protocols";
import {
IconBrandGithub,
IconBrandX,
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/Protocol/ProtocolInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type Protocol, protocolsInfo } from "@/lib/protocols";
import { Heading, IconButton, Text } from "@radix-ui/themes";
import { type Protocol, protocolsInfo } from "@stackspulse/protocols";
import { IconBrandX, IconWorld } from "@tabler/icons-react";
import Image from "next/image";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/Protocol/ProtocolMenu.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import type { Protocol } from "@/lib/protocols";
import { Button } from "@radix-ui/themes";
import type { Protocol } from "@stackspulse/protocols";
import Link from "next/link";
import { useParams, usePathname } from "next/navigation";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/Protocol/ProtocolStats.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { env } from "@/env";
import type { TransactionStatsRouteResponse } from "@/lib/api";
import type { Protocol } from "@/lib/protocols";
import { Card, Text } from "@radix-ui/themes";
import type { Protocol } from "@stackspulse/protocols";

interface ProtocolStatsProps {
protocol: Protocol;
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/Protocol/ProtocolTransactions.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use client";

import { useGetTransactions } from "@/hooks/api/useGetTransactions";
import type { Protocol } from "@/lib/protocols";
import { Heading, Separator } from "@radix-ui/themes";
import type { Protocol } from "@stackspulse/protocols";
import { Fragment } from "react";
import { TransactionRow } from "../Transaction/TransactionRow";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BarList } from "@/components/ui/BarList";
import { useGetProtocolsUsers } from "@/hooks/api/useGetProtocolsUsers";
import type { ProtocolUsersRouteQuery } from "@/lib/api";
import { protocolsInfo } from "@/lib/protocols";
import { protocolsInfo } from "@stackspulse/protocols";

interface TopProtocolsBarListClientProps {
dateFilter: ProtocolUsersRouteQuery["date"];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use client";
import { BarChart } from "@/components/ui/BarChart";
import { numberValueFormatter } from "@/components/ui/utils";
import type { Protocol } from "@/lib/protocols";
import { Card, Inset, Separator, Text } from "@radix-ui/themes";
import type { Protocol } from "@stackspulse/protocols";

interface UniqueUsersBarChartProps {
protocol: Protocol;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { env } from "@/env";
import type { Protocol } from "@/lib/protocols";
import type { Protocol } from "@stackspulse/protocols";
import { UniqueUsersBarChartClient } from "./UniqueUsersBarChartClient";

export const UniqueUsersBarChart = async ({
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/hooks/api/useGetTransactions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { env } from "@/env";
import type { TransactionsRouteResponse } from "@/lib/api";
import type { Protocol } from "@/lib/protocols";
import type { Protocol } from "@stackspulse/protocols";
import { useSuspenseQuery } from "@tanstack/react-query";

export const useGetTransactions = (
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/lib/api.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { ContractCallTransaction } from "@stacks/stacks-blockchain-api-types";
import type { Protocol } from "./protocols";
import type { Protocol } from "@stackspulse/protocols";

/**
* `/api/protocols/users`
Expand Down
98 changes: 0 additions & 98 deletions apps/web/src/lib/protocols.ts

This file was deleted.

15 changes: 15 additions & 0 deletions packages/protocols/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "@stackspulse/protocols",
"version": "0.0.0",
"private": true,
"files": ["dist"],
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"scripts": {
"build": "tsc"
},
"devDependencies": {
"@tsconfig/node22": "22.0.0",
"typescript": "5.5.4"
}
}
1 change: 1 addition & 0 deletions packages/protocols/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./protocols.js";
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,15 @@ export type Protocol = (typeof protocols)[number];
export const isProtocol = (value: string): value is Protocol =>
protocols.includes(value as Protocol);

export const protocolsInfo = {
export const protocolsInfo: {
[key in Protocol]: {
name: string;
description: string;
website: string;
x: string;
contracts: string[];
};
} = {
alex: {
name: "Alex",
description:
Expand All @@ -22,7 +30,6 @@ export const protocolsInfo = {
x: "https://twitter.com/ALEXLabBTC",
contracts: [
"SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.amm-pool-v2-01",
// Contracts before hack
"SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.amm-swap-pool-v1-1",
"SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.swap-helper-v1-01",
"SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.swap-helper-v1-02",
Expand Down
7 changes: 7 additions & 0 deletions packages/protocols/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "@tsconfig/node22/tsconfig.json",
"compilerOptions": {
"outDir": "dist",
"declaration": true
}
}
Loading

0 comments on commit 8629586

Please sign in to comment.