Skip to content

Commit

Permalink
Merge pull request #258 from hypercerts-org/develop
Browse files Browse the repository at this point in the history
Push to PRD
  • Loading branch information
bitbeckers authored Feb 3, 2025
2 parents 6bd2e9f + f8a4e17 commit dfa7d3d
Show file tree
Hide file tree
Showing 11 changed files with 466 additions and 150 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@
},
"dependencies": {
"@hypercerts-org/chainsauce": "1.0.24",
"@hypercerts-org/contracts": "2.0.0-alpha.11",
"@hypercerts-org/contracts": "2.0.0-alpha.12",
"@hypercerts-org/marketplace-sdk": "^0.3.37",
"@hypercerts-org/sdk": "^2.3.0",
"@hypercerts-org/sdk": "^2.5.0-beta.6",
"@opentelemetry/instrumentation": "^0.52.1",
"@openzeppelin/merkle-tree": "^1.0.7",
"@supabase/postgrest-js": "^1.17.7",
Expand Down
432 changes: 424 additions & 8 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

15 changes: 4 additions & 11 deletions scripts/update_sales_values.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import "dotenv/config";

import { HypercertExchangeAbi, getHypercertTokenId, parseClaimOrFractionId } from "@hypercerts-org/sdk";
import { createClient } from "@supabase/supabase-js";
import { parseClaimOrFractionId } from "@hypercerts-org/sdk";
import { createPublicClient, erc20Abi, zeroAddress } from "viem";
import { http } from "viem";
import { Chain, erc20Abi, getAddress, parseEventLogs, zeroAddress } from "viem";
import {
arbitrum,
arbitrumSepolia,
Expand All @@ -13,17 +12,11 @@ import {
filecoin,
filecoinCalibration,
optimism,
sepolia,
} from "viem/chains";
import { Chain } from "viem";
import { sepolia } from "viem/chains";
import { HypercertMinterAbi } from "@hypercerts-org/sdk";
import { parseEventLogs } from "viem";
import { EvmClientFactory } from "../src/clients/evmClient.js";
import { TakerBid } from "../src/storage/storeTakerBid.js";
import { getAddress } from "viem";
import { getDeployment } from "../src/utils/getDeployment.js";
import { getHypercertTokenId } from "../src/utils/tokenIds.js";
import { HypercertExchangeAbi } from "@hypercerts-org/sdk";
import { EvmClientFactory } from "../src/clients/evmClient.js";

const getChain = (chainId: number) => {
const chains: Record<number, Chain> = {
Expand Down
34 changes: 16 additions & 18 deletions src/parsing/parseAttestationData.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,9 @@
import { decodeAbiParameters, isAddress } from "viem";
import { EasAttestation } from "@/parsing/parseAttestedEvent.js";
import { Tables } from "@/types/database.types.js";
import { parseSchemaToABI } from "@/utils/parseSchemaToAbi.js";
import { ValidatorFactory } from "@hypercerts-org/sdk";
import { decodeAbiParameters } from "viem";
import { z } from "zod";
import { EasAttestation } from "@/parsing/parseAttestedEvent.js";

const HypercertAttestationSchema = z.object(
{
chain_id: z.coerce.bigint(),
contract_address: z.string().refine(isAddress, {
message: `[decodeAttestationData] Invalid contract address in attestation data`,
}),
token_id: z.coerce.bigint(),
},
{ message: `[decodeAttestationData] Invalid hypercert attestation data` },
);

const DecodedAttestationSchema = z.object({
attester: z.string(),
Expand Down Expand Up @@ -81,6 +71,7 @@ export const parseAttestationData = ({
);
}

const validator = ValidatorFactory.createAttestationValidator();
const { attester, recipient, data, uid } = attestation;
let _attestation: { [key: string]: unknown } = {};

Expand All @@ -104,8 +95,15 @@ export const parseAttestationData = ({
}

try {
const { chain_id, contract_address, token_id } =
HypercertAttestationSchema.parse(_attestation);
const validationResult = validator.validate(_attestation);

if (!validationResult.isValid) {
console.error(
"[DecodeAttestationData] Attestation data is invalid: ",
validationResult,
);
throw new Error("Invalid attestation data");
}

return DecodedAttestationSchema.parse({
attester,
Expand All @@ -114,9 +112,9 @@ export const parseAttestationData = ({
supported_schemas_id: schema.id,
attestation: attestation,
data: _attestation,
chain_id,
contract_address,
token_id,
chain_id: validationResult.data?.chain_id,
contract_address: validationResult.data?.contract_address,
token_id: validationResult.data?.token_id,
});
} catch (error) {
console.error(
Expand Down
10 changes: 5 additions & 5 deletions src/parsing/parseAttestedEvent.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { getAddress, isAddress, isHex } from "viem";
import { getDeployment } from "@/utils/getDeployment.js";
import { z } from "zod";
import { messages } from "@/utils/validation.js";
import { ParserMethod } from "@/indexer/LogParser.js";
import {
parseAttestationData,
DecodedAttestation,
parseAttestationData,
} from "@/parsing/parseAttestationData.js";
import { getDeployment } from "@/utils/getDeployment.js";
import { messages } from "@/utils/validation.js";
import { getAddress, isAddress, isHex } from "viem";
import { z } from "zod";

export const AttestationSchema = z.object({
uid: z.string(),
Expand Down
13 changes: 6 additions & 7 deletions src/parsing/parseTakerBidEvent.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
import { getEvmClient } from "@/clients/evmClient.js";
import { ParserMethod } from "@/indexer/LogParser.js";
import { TakerBid } from "@/storage/storeTakerBid.js";
import { getDeployment } from "@/utils/getDeployment.js";
import { messages } from "@/utils/validation.js";
import { HypercertExchangeAbi, HypercertMinterAbi, getHypercertTokenId } from "@hypercerts-org/sdk";
import {
erc20Abi,
getAddress,
Expand All @@ -6,13 +12,6 @@ import {
zeroAddress,
} from "viem";
import { z } from "zod";
import { messages } from "@/utils/validation.js";
import { getEvmClient } from "@/clients/evmClient.js";
import { HypercertExchangeAbi, HypercertMinterAbi } from "@hypercerts-org/sdk";
import { getDeployment } from "@/utils/getDeployment.js";
import { TakerBid } from "@/storage/storeTakerBid.js";
import { ParserMethod } from "@/indexer/LogParser.js";
import { getHypercertTokenId } from "@/utils/tokenIds.js";

/**
* Parses an event object to extract the details of a TakerBid event.
Expand Down
8 changes: 4 additions & 4 deletions src/storage/storeTransferSingle.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { dbClient } from "@/clients/dbClient.js";
import { supabase } from "@/clients/supabaseClient.js";
import { getHypercertTokenId } from "@/utils/tokenIds.js";
import { getAddress } from "viem";
import { ParsedTransferSingle } from "@/parsing/parseTransferSingleEvent.js";
import { StorageMethod } from "@/indexer/LogParser.js";
import { dbClient } from "@/clients/dbClient.js";
import { ParsedTransferSingle } from "@/parsing/parseTransferSingleEvent.js";
import { getHypercertTokenId } from "@hypercerts-org/sdk";
import { getAddress } from "viem";

/*
This function stores the hypercert token and the ownership of the token in the database.
Expand Down
63 changes: 0 additions & 63 deletions src/utils/tokenIds.ts

This file was deleted.

7 changes: 3 additions & 4 deletions test/parsing/takerBidEvent.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { describe, expect, it, vi, beforeEach } from "vitest";
import { parseTakerBidEvent } from "../../src/parsing/parseTakerBidEvent.js";
import { faker } from "@faker-js/faker";
import { Block } from "@hypercerts-org/chainsauce";
import { getHypercertTokenId } from "@hypercerts-org/sdk";
import { getAddress, zeroAddress } from "viem";
import { getEvmClient } from "../../src/clients/evmClient.js";
import { getHypercertTokenId } from "../../src/utils/tokenIds.js";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { parseTakerBidEvent } from "../../src/parsing/parseTakerBidEvent.js";

const mocks = vi.hoisted(() => ({
getTransactionReceipt: vi.fn(),
Expand Down
26 changes: 0 additions & 26 deletions test/utils/tokenIds.test.ts

This file was deleted.

4 changes: 2 additions & 2 deletions vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ export default defineConfig({
reportOnFailure: true,
thresholds: {
lines: 26,
branches: 72,
functions: 70,
branches: 73,
functions: 69,
statements: 26,
},
include: ["src/**/*.ts"],
Expand Down

0 comments on commit dfa7d3d

Please sign in to comment.