Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: rename verified-contracts to verified-contract-instances #248

Merged
Merged
10 changes: 5 additions & 5 deletions packages/types/src/aztec/special.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import {
} from "./l2Contract.js";
import { chicmozL2TxEffectSchema } from "./l2TxEffect.js";

export const chicmozL2VerifiedContractAddressDataSchema = z.object({
contractInstanceAddress: z.string(),
export const chicmozL2VerifiedContractInstanceDataSchema = z.object({
address: z.lazy(() => chicmozL2ContractInstanceDeployedEventSchema.shape.address),
contractIdentifier: z.string(),
details: z.string(),
creatorName: z.string(),
Expand All @@ -16,15 +16,15 @@ export const chicmozL2VerifiedContractAddressDataSchema = z.object({
repoUrl: z.string(),
});

export type ChicmozL2VerifiedContractAddressData = z.infer<
typeof chicmozL2VerifiedContractAddressDataSchema
export type ChicmozL2VerifiedContractInctanceData = z.infer<
typeof chicmozL2VerifiedContractInstanceDataSchema
>;

export const chicmozL2ContractInstanceDeluxeSchema = z.object({
...chicmozL2ContractInstanceDeployedEventSchema.shape,
...chicmozL2ContractClassRegisteredEventSchema.shape,
blockHeight: chicmozL2BlockSchema.shape.height.optional(),
verifiedInfo: chicmozL2VerifiedContractAddressDataSchema.optional(),
verifiedInfo: chicmozL2VerifiedContractInstanceDataSchema.optional(),
});

export type ChicmozL2ContractInstanceDeluxe = z.infer<
Expand Down
12 changes: 6 additions & 6 deletions services/explorer-api/src/constants.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { ChicmozL2VerifiedContractAddressData } from "@chicmoz-pkg/types";
import { ChicmozL2VerifiedContractInctanceData } from "@chicmoz-pkg/types";

export const CHAIN_NAME = "AZTEC";
export const SERVICE_NAME = "explorer-api";

export const DEFAULT_VERIFIED_CONTRACT_ADDRESSES_DEV: ChicmozL2VerifiedContractAddressData[] =
export const DEFAULT_VERIFIED_CONTRACT_INSTANCES_DEV: ChicmozL2VerifiedContractInctanceData[] =
[
{
contractInstanceAddress:
address:
"0x0e5fe9a23c854f14262bb3b3e88dab8e33412d6db17baa199506f865ed746a0c",
contractIdentifier: "Some contract name/id",
details: "This is a dummy verified contract",
details: "This is a dummy verified contract instance",
creatorName: "Test",
creatorContact:
"email: [email protected], discord: test#1234, telegram: @test",
Expand All @@ -18,7 +18,7 @@ export const DEFAULT_VERIFIED_CONTRACT_ADDRESSES_DEV: ChicmozL2VerifiedContractA
},
];

export const DEFAULT_VERIFIED_CONTRACT_ADDRESSES_PROD: ChicmozL2VerifiedContractAddressData[] =
export const DEFAULT_VERIFIED_CONTRACT_INSTANCES_PROD: ChicmozL2VerifiedContractInctanceData[] =
[
// TODO: Add verified contract addresses for production
// TODO: Add verified contract instances for production
];
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
import { ChicmozL2ContractInstanceDeluxe, chicmozL2ContractInstanceDeluxeSchema } from "@chicmoz-pkg/types";
import { VERIFIED_CONTRACT_ADDRESSES } from "../../../environment.js";
import { VERIFIED_CONTRACT_INSTANCES } from "../../../environment.js";

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const parseDeluxe = (contractClass: any, instance: any): ChicmozL2ContractInstanceDeluxe => {
const verifiedInfo = VERIFIED_CONTRACT_ADDRESSES.find(info => info.contractInstanceAddress === instance.address);
const verifiedInfo = VERIFIED_CONTRACT_INSTANCES.find(info => info.address === instance.address);
return chicmozL2ContractInstanceDeluxeSchema.parse({
...contractClass,
verifiedInfo,
Expand Down
10 changes: 5 additions & 5 deletions services/explorer-api/src/environment.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
export const NODE_ENV = process.env.NODE_ENV ?? "development";
import {
CHAIN_NAME,
DEFAULT_VERIFIED_CONTRACT_ADDRESSES_DEV,
DEFAULT_VERIFIED_CONTRACT_ADDRESSES_PROD,
DEFAULT_VERIFIED_CONTRACT_INSTANCES_DEV,
DEFAULT_VERIFIED_CONTRACT_INSTANCES_PROD,
} from "./constants.js";

const verifiedContractAddresses =
NODE_ENV === "production"
? DEFAULT_VERIFIED_CONTRACT_ADDRESSES_PROD
: DEFAULT_VERIFIED_CONTRACT_ADDRESSES_DEV;
? DEFAULT_VERIFIED_CONTRACT_INSTANCES_PROD
: DEFAULT_VERIFIED_CONTRACT_INSTANCES_DEV;

export const VERIFIED_CONTRACT_ADDRESSES = verifiedContractAddresses
export const VERIFIED_CONTRACT_INSTANCES = verifiedContractAddresses

export const PUBLIC_API_KEY =
process.env.PUBLIC_API_KEY ?? "d1e2083a-660c-4314-a6f2-1d42f4b944f4";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export * from "./txs.js";
export * from "./contract-classes.js";
export * from "./contract-class-functions.js";
export * from "./contract-instances.js";
export * from "./verified-contracts.js";
export * from "./verified-contract-instances.js";
export * from "./validators.js";
export * from "./search.js";
export * from "./stats.js";
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
chicmozL2TxEffectDeluxeSchema,
chicmozL2UnconstrainedFunctionBroadcastedEventSchema,
chicmozSearchResultsSchema,
chicmozL2VerifiedContractAddressDataSchema,
chicmozL2VerifiedContractInstanceDataSchema,
} from "@chicmoz-pkg/types";
import { generateSchema } from "@anatine/zod-openapi";

Expand Down Expand Up @@ -46,7 +46,7 @@ export const contractClassUnconstrainedFunctionResponseArray = getResponse(z.arr
export const contractInstanceResponse = getResponse(chicmozL2ContractInstanceDeluxeSchema);
export const contractInstanceResponseArray = getResponse(z.array(chicmozL2ContractInstanceDeluxeSchema));

export const verifiedContractResponse = getResponse(chicmozL2VerifiedContractAddressDataSchema);
export const verifiedContractResponseArray = getResponse(z.array(chicmozL2VerifiedContractAddressDataSchema));
export const verifiedContractInstanceResponse = getResponse(chicmozL2VerifiedContractInstanceDataSchema);
export const verifiedContractInstanceResponseArray = getResponse(z.array(chicmozL2VerifiedContractInstanceDataSchema));

export const searchResultResponse = getResponse(chicmozSearchResultsSchema);
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { RequestHandler } from "express";
import { VERIFIED_CONTRACT_INSTANCES } from "../../../environment.js";
import { getVerifiedContractInstanceSchema } from "../paths_and_validation.js";
import {
verifiedContractInstanceResponse,
verifiedContractInstanceResponseArray,
} from "./utils/open-api-responses.js";

export const openapi_GET_L2_VERIFIED_CONTRACT_INSTANCES = {
"/l2/verified-contract-instances": {
get: {
summary: "Get all verified contract instances",
responses: verifiedContractInstanceResponseArray,
},
},
};

export const GET_L2_VERIFIED_CONTRACT_INSTANCES: RequestHandler = (_req, res) => {
res.status(200).send(JSON.stringify(VERIFIED_CONTRACT_INSTANCES));
};

export const openapi_GET_L2_VERIFIED_CONTRACT_INSTANCE = {
"/l2/verified-contract-instances/{contractInstanceAddress}": {
get: {
summary: "Get a verified contract instance by address",
parameters: [
{
name: "contractInstanceAddress",
in: "path",
required: true,
schema: {
type: "string",
},
},
],
responses: verifiedContractInstanceResponse,
},
},
};

export const GET_L2_VERIFIED_CONTRACT_INSTANCE: RequestHandler = (req, res) => {
const contractInstanceAddress =
getVerifiedContractInstanceSchema.parse(req).params.address;
const verifiedInfo = VERIFIED_CONTRACT_INSTANCES.find(
(info) => info.address === contractInstanceAddress
);
if (!verifiedInfo) throw new Error("Verified contract instance not found"); // TODO: ensure this resolves in a 404
res.status(200).send(JSON.stringify(verifiedInfo));
};

This file was deleted.

8 changes: 4 additions & 4 deletions services/explorer-api/src/http-server/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ export const openApiPaths = {
...controller.openapi_GET_L2_CONTRACT_INSTANCE,
...controller.openapi_GET_L2_CONTRACT_INSTANCES,

...controller.openapi_GET_L2_VERIFIED_CONTRACT,
...controller.openapi_GET_L2_VERIFIED_CONTRACTS,
...controller.openapi_GET_L2_VERIFIED_CONTRACT_INSTANCE,
...controller.openapi_GET_L2_VERIFIED_CONTRACT_INSTANCES,

...controller.openapi_SEARCH,
};
Expand Down Expand Up @@ -152,8 +152,8 @@ export const init = ({ router }: { router: Router }) => {
router.get(paths.contractInstance, controller.GET_L2_CONTRACT_INSTANCE);
router.get(paths.contractInstances, controller.GET_L2_CONTRACT_INSTANCES);

router.get(paths.verifiedContract, controller.GET_L2_VERIFIED_CONTRACT);
router.get(paths.verifiedContracts, controller.GET_L2_VERIFIED_CONTRACTS);
router.get(paths.verifiedContract, controller.GET_L2_VERIFIED_CONTRACT_INSTANCE);
router.get(paths.verifiedContracts, controller.GET_L2_VERIFIED_CONTRACT_INSTANCES);

router.get(paths.validators, controller.GET_L2_VALIDATORS);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ export const paths = {

search: "/l2/search",

verifiedContract: `/l2/verified-contracts/:${address}`,
verifiedContracts: "/l2/verified-contracts",
verifiedContract: `/l2/verified-contracts-instances/:${address}`,
verifiedContracts: "/l2/verified-contract-instances",

validators: "/l2/validators",

Expand Down Expand Up @@ -140,7 +140,7 @@ export const postContrctClassArtifactSchema = z.lazy(() => {
export const getContractInstancesByContractClassIdSchema =
getContractClassesByClassIdSchema;

export const getVerifiedContractSchema = getContractInstanceSchema;
export const getVerifiedContractInstanceSchema = getContractInstanceSchema;

export const getSearchSchema = z.object({
query: chicmozSearchQuerySchema,
Expand Down
2 changes: 1 addition & 1 deletion services/explorer-ui/src/api/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export * from "./contract";
export * from "./verified-contract";
export * from "./verified-contract-instance";
export * from "./block";
export * from "./tx-effect";
export * from "./tx";
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
import {
chicmozL2VerifiedContractAddressDataSchema,
type ChicmozL2VerifiedContractAddressData,
chicmozL2VerifiedContractInstanceDataSchema,
type ChicmozL2VerifiedContractInctanceData,
} from "@chicmoz-pkg/types";
import { aztecExplorer } from "~/service/constants";
import client, { validateResponse } from "./client";

export const VerifiedContractL2API = {
export const VerifiedContractInstanceL2API = {
getVerifiedContract: async (
address: string
): Promise<ChicmozL2VerifiedContractAddressData> => {
): Promise<ChicmozL2VerifiedContractInctanceData> => {
const response = await client.get(
aztecExplorer.getL2VerifiedContractByInstanceAddress(address)
);
return validateResponse(
chicmozL2VerifiedContractAddressDataSchema,
chicmozL2VerifiedContractInstanceDataSchema,
response.data
);
},
getVerifiedContracts: async (): Promise<
ChicmozL2VerifiedContractAddressData[]
ChicmozL2VerifiedContractInctanceData[]
> => {
const response = await client.get(aztecExplorer.getL2VerifiedContracts);
return validateResponse(
chicmozL2VerifiedContractAddressDataSchema.array(),
chicmozL2VerifiedContractInstanceDataSchema.array(),
response.data
);
},
Expand Down
14 changes: 14 additions & 0 deletions services/explorer-ui/src/hooks/verified-contract-instance.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { type ChicmozL2VerifiedContractInctanceData } from "@chicmoz-pkg/types";
import { type UseQueryResult, useQuery } from "@tanstack/react-query";
import { VerifiedContractInstanceL2API } from "~/api";
import { queryKeyGenerator } from "./utils";

export const useVerifiedContractInstances = (): UseQueryResult<
ChicmozL2VerifiedContractInctanceData[],
Error
> => {
return useQuery<ChicmozL2VerifiedContractInctanceData[], Error>({
queryKey: queryKeyGenerator.verifiedContracts,
queryFn: VerifiedContractInstanceL2API.getVerifiedContracts,
});
};
14 changes: 0 additions & 14 deletions services/explorer-ui/src/hooks/verified-contract.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useParams } from "@tanstack/react-router";
import { type FC } from "react";
import { KeyValueDisplay } from "~/components/info-display/key-value-display";
import { useContractInstance } from "~/hooks/";
import { getContractData, getVerifiedContractData } from "./util";
import { getContractData, getVerifiedContractInstanceData } from "./util";
import { routes } from "~/routes/__root";
import { CustomTooltip } from "~/components/custom-tooltip";

Expand All @@ -23,7 +23,7 @@ export const ContractInstanceDetails: FC = () => {
if (error) return <div>Error</div>;
if (!contractInstanceDetails) return <div>No data</div>;

const verfiedContractData = getVerifiedContractData(contractInstanceDetails);
const verfiedData = getVerifiedContractInstanceData(contractInstanceDetails);

return (
<div className="mx-auto px-[70px] max-w-[1440px]">
Expand All @@ -42,14 +42,14 @@ export const ContractInstanceDetails: FC = () => {
</div>
</div>
</div>
{verfiedContractData && (
{verfiedData && (
<div className="mt-20">
<div>
<h2 className="flex items-center gap-2">
Verified contract data
Verified contract instance data
<div className="relative group">
<Link to={routes.verifiedContracts.route}>
<CustomTooltip content="Read more about verified contracts here">
<Link to={routes.verifiedContractInstances.route}>
<CustomTooltip content="Read more about verified contract instances here">
<CheckCircledIcon className="size-10 stroke-lime-700" />
</CustomTooltip>
</Link>
Expand All @@ -58,7 +58,7 @@ export const ContractInstanceDetails: FC = () => {
</div>
<div className="flex flex-col gap-4 mt-8">
<div className="bg-white rounded-lg shadow-md p-4">
<KeyValueDisplay data={verfiedContractData} />
<KeyValueDisplay data={verfiedData} />
</div>
</div>
</div>
Expand Down
Loading