Skip to content

Commit

Permalink
chore: rename verified-contracts to verified-contract-instances (#248)
Browse files Browse the repository at this point in the history
  • Loading branch information
FilipHarald authored Jan 10, 2025
1 parent c37d4b7 commit e08ebfe
Show file tree
Hide file tree
Showing 21 changed files with 146 additions and 143 deletions.
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

0 comments on commit e08ebfe

Please sign in to comment.