diff --git a/.env.template b/.env.template index 2187efc..82b4256 100644 --- a/.env.template +++ b/.env.template @@ -1,39 +1,48 @@ -### EXPRESS ### - -# Port to run the server on -PORT= +### SERVICE ### +ENVIRONMENT=test # test | production +PORT=4001 ### INDEXING ### # Number of blocks to index -BATCH_SIZE= +BATCH_SIZE=20000 # Indexing polling interval between runs in milliseconds -DELAY= +DELAY=2500 + +### RPCs ### +# We implement a fallback to the first available RPC -### EVM ### +# https://www.alchemy.com/ +ALCHEMY_API_KEY="" -## Which chain to index (e.g. sepolia = 11155111) -CHAIN_ID= +# https://www.infura.io/ +INFURA_API_KEY="" -## RPC config -ALCHEMY_API_KEY= -INFURA_API_KEY= -ANKR_API_KEY= -DRPC_API_KEY= +# https://drpc.org/ +DRPC_API_KEY="" ### DATABASE ### +## LOCAL CACHE + +LOCAL_CACHING_DB_URL="postgresql://localhost/postgres" # default for Postgress.app + +## KYSELY + +DB_URL="postgresql://postgres:postgres@127.0.0.1:54322/postgres" + ## Supabase config -SUPABASE_DB_URL= -SUPABASE_CACHING_SERVICE_API_KEY= -### MONITORING ### +SUPABASE_CACHING_DB_URL=http://127.0.0.1:54321 +SUPABASE_CACHING_SERVICE_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU -## Sentry config -### staging || production -### If not set, Sentry will not be initialized -SENTRY_ENVIRONMENT= +SUPABASE_DATA_DB_URL="http://127.0.0.1:64321" +SUPABASE_DATA_SERVICE_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU + +### MONITORING ### -SENTRY_DSN= -SENTRY_AUTH_TOKEN= \ No newline at end of file +### SENTRY +SENTRY_ENVIRONMENT=local # local | staging | production +SENTRY_DSN="" #disabled for local +SENTRY_AUTH_TOKEN="" #disabled for local diff --git a/.github/workflows/supabase-ci-production.yml b/.github/workflows/supabase-ci-production.yml index 4f1e9e2..c2233a1 100644 --- a/.github/workflows/supabase-ci-production.yml +++ b/.github/workflows/supabase-ci-production.yml @@ -14,10 +14,10 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: supabase/setup-cli@v1 with: - version: latest + version: 1.223.10 - name: Start Supabase local development setup run: supabase start diff --git a/.github/workflows/supabase-ci-staging.yml b/.github/workflows/supabase-ci-staging.yml index 0e2cf09..71aef68 100644 --- a/.github/workflows/supabase-ci-staging.yml +++ b/.github/workflows/supabase-ci-staging.yml @@ -14,10 +14,10 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: supabase/setup-cli@v1 with: - version: latest + version: 1.223.10 - name: Start Supabase local development setup run: supabase start diff --git a/.github/workflows/supabase-ci-test.yml b/.github/workflows/supabase-ci-test.yml index 31d148e..91641a6 100644 --- a/.github/workflows/supabase-ci-test.yml +++ b/.github/workflows/supabase-ci-test.yml @@ -1,8 +1,7 @@ name: verify supabase types on: pull_request: - branches-ignore: - - main + branches: - develop env: @@ -15,10 +14,11 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - uses: supabase/setup-cli@v1 with: - version: latest + version: 1.223.10 - name: Start Supabase local development setup run: supabase start diff --git a/README.md b/README.md new file mode 100644 index 0000000..259c80c --- /dev/null +++ b/README.md @@ -0,0 +1,120 @@ +# Hypercerts Indexer + +The hypercerts indexing service monitors the hypercerts contract and indexes the data into a postgres database for all supported chains on either testnets or production. + +## Getting started + +### Environment variables + +#### Service + +Determines the chains to index and the port to run the service on. Based on the environment, all relevant contract and events are fetched from the database and will be monitored. + +#### Indexing + +Determines the batch size and the delay between indexing runs. + +#### RPCs + +The API implements a fallback to the first available RPC. You can set the RPC keys in the `.env` file. + +#### Databases + +##### Local caching + +The indexing service is paired with a local postgres database for caching purposes. When the service needs to do a remote call to an EVM or IPFS, the call and the response are cached in the local database. This reduces load and latency on the RPCs. + +> We recommend using [Postgres.app](https://postgresapp.com/) to run the local caching database on MacOS. + +#### Kysely + +Kysely is implemented in favor of SupabaseJS as it allows for more flexibility and complexity in queries. To connect to the database you need to set the `DB_URL` in the `.env` file. By default, the local variables are set to the local Supabase instance. + +##### Supabase + +The indexing service is paired with a Postgres database for storing state provided by Supabase. Events for mints, transfers, claims and other relevant events are parsed and the state in the DB is updated. Additionally, the database provides a cache for the metadata of hypercerts and parses attestations. + +#### Sentry + +Sentry is used for monitoring and error reporting. You can read more about it [here](https://docs.sentry.io/platforms/javascript/guides/node/configuration/env-vars/). When Sentry is set to `local` it will be disabled by default. + +### Run the Indexer locally + +`pnpm dev` + +## Deployments + +The indexing services are deployed on Railway and not publicly exposed. + +## Scripts + +- `dev`: Starts the development server using `nodemon`, which will automatically restart the server whenever you save a file that the server uses. +- `build`: Compiles the TypeScript code into JavaScript using `swc`. The compiled code is output to the `dist` directory. +- `start`: Starts the application in production mode. +- `test`: Runs tests using `vitest` +- `test:coverage`: Runs tests and generates a coverage report. +- `test:integration`: Runs integration tests using `vitest`. +- `supabase:reset`: Resets the Supabase database and generates the TypeScript types for the database. +- `supabase:seed`: Seeds the Supabase database with test data. +- `supabase:types`: Generates the TypeScript types for the caching database (indexer). +- `supabase:types:data`: Generates the TypeScript types for the data database (api). +- `update:sentry:sourcemaps`: Updates the Sentry source maps. + +## Data + +The indexer service monitors supported chains and gathers data from multiple sources based on the observed events. + +### Hypercerts minter + +> Mints, allowlist claims, splits, merges, transfers, burns, etc. + +The hypercerts minter contract is monitored for minting events. When a minting event is observed, the data is indexed into the local caching database. In addition to minting events, the indexer also monitors the hypercerts contract for allowlist claims, splits, merges and other state changes. + +### IPFS + +> Metadata, allowlist data, images, etc. + +Hypercerts created via our stack store the metadata on IPFS. The indexer fetches the metadata from IPFS and stores it in the local caching database and writes it to the caching database for the API. + +### EAS - Ethereum Attestation Service + +> Schemas and attestations. + +[EAS](https://attest.sh/) utilizes schemas to define the structure of the data stored in the attestations. The indexer database is seeded with the schemas from the EAS contract. When an attestation is observed, the indexer fetches the schema from the database and decodes the attestation data. The decoded data is then indexed into the local caching database. + +## Architecture + +```mermaid +graph TB + subgraph "Indexer Service" + Indexer[Indexer Service] + Cache[("Local Cache DB\n(Postgres)\n- RPC Responses\n- IPFS Responses")] + State[("State DB\n(Supabase)\n- Events\n- Metadata\n- Attestations")] + end + + subgraph "Data Sources" + Contract[("Hypercerts Contract\n- Mints\n- Claims\n- Splits\n- Merges\n- Transfers\n- Burns")] + IPFS[("IPFS\n- Metadata\n- Allowlist Data\n- Images")] + EAS[("EAS\n- Schemas\n- Attestations")] + end + + subgraph "Configuration" + ENV["Environment Variables\n- Chain Selection\n- RPC Config\n- Batch Size\n- Index Delay"] + Sentry[Sentry Monitoring] + end + + Indexer --> Cache + Indexer --> State + + Contract --> Indexer + IPFS --> Indexer + EAS --> Indexer + + ENV --> Indexer + Indexer --> Sentry + + class Cache,State database; + class Contract,IPFS,EAS external; + class ENV config; + class Sentry monitoring; +``` \ No newline at end of file diff --git a/lib/hypercerts-api b/lib/hypercerts-api index 31dc44c..8c970ab 160000 --- a/lib/hypercerts-api +++ b/lib/hypercerts-api @@ -1 +1 @@ -Subproject commit 31dc44c0ab9100f18e8c283c766c95f1361f9a5e +Subproject commit 8c970abf10af5291b6e8137fc6be371d4d3cfe83 diff --git a/package.json b/package.json index d79e528..4217b97 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "prool": "^0.0.15", "rimraf": "^5.0.5", "sinon": "^17.0.1", - "supabase": "^1.191.3", + "supabase": "^1.223.10", "supertest": "^6.3.4", "ts-mockito": "^2.6.1", "tsx": "^4.7.1", @@ -66,9 +66,9 @@ }, "dependencies": { "@hypercerts-org/chainsauce": "1.0.24", - "@hypercerts-org/contracts": "2.0.0-alpha.9", - "@hypercerts-org/marketplace-sdk": "^0.3.35", - "@hypercerts-org/sdk": "^2.2.0-beta.2", + "@hypercerts-org/contracts": "2.0.0-alpha.11", + "@hypercerts-org/marketplace-sdk": "^0.3.37", + "@hypercerts-org/sdk": "^2.3.0", "@opentelemetry/instrumentation": "^0.52.1", "@openzeppelin/merkle-tree": "^1.0.7", "@supabase/postgrest-js": "^1.15.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 359bc5e..61de1bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,14 +12,14 @@ importers: specifier: 1.0.24 version: 1.0.24(zod@3.23.8) '@hypercerts-org/contracts': - specifier: 2.0.0-alpha.9 - version: 2.0.0-alpha.9(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + specifier: 2.0.0-alpha.11 + version: 2.0.0-alpha.11(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) '@hypercerts-org/marketplace-sdk': - specifier: ^0.3.35 - version: 0.3.35(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(svelte@4.2.18)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) + specifier: ^0.3.37 + version: 0.3.37(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(svelte@4.2.18)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) '@hypercerts-org/sdk': - specifier: ^2.2.0-beta.2 - version: 2.2.0-beta.2(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) + specifier: ^2.3.0 + version: 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) '@opentelemetry/instrumentation': specifier: ^0.52.1 version: 0.52.1(@opentelemetry/api@1.9.0) @@ -128,7 +128,7 @@ importers: version: 2.0.0(kysely@0.27.4)(postgres@3.4.4) kysely-supabase: specifier: ^0.2.0 - version: 0.2.0(@supabase/supabase-js@2.44.2)(kysely@0.27.4)(supabase@1.191.3) + version: 0.2.0(@supabase/supabase-js@2.44.2)(kysely@0.27.4)(supabase@1.223.10) msw: specifier: ^2.2.2 version: 2.2.2(typescript@5.5.2) @@ -151,8 +151,8 @@ importers: specifier: ^17.0.1 version: 17.0.1 supabase: - specifier: ^1.191.3 - version: 1.191.3 + specifier: ^1.223.10 + version: 1.223.10 supertest: specifier: ^6.3.4 version: 6.3.4 @@ -732,26 +732,17 @@ packages: '@hypercerts-org/chainsauce@1.0.24': resolution: {integrity: sha512-HKRUlVsWyEJhfPdewvZeBJu1J6e667B60csrQuzJ8e+9d6MJFw3z+zZcKAbIbzsN7dSf9neBmW2KgMiUW/s2fw==} - '@hypercerts-org/contracts@2.0.0-alpha.7': - resolution: {integrity: sha512-rnITsv1vcRsVtJxYCaHWXT9xk+5xjRRub1hJ9XqOrs0+HAvZTwBzTsoNWjjUlrW37loYHGxm5pRD+omFfeBbsw==} + '@hypercerts-org/contracts@2.0.0-alpha.11': + resolution: {integrity: sha512-cugbt53vxI4W+hkbpcP5nPoaw+1fWnurA6vsJybbEhQrngsCis0fgv1HgHalS4gLVURByU9Pc2oCPxpHrQ4I/Q==} - '@hypercerts-org/contracts@2.0.0-alpha.8': - resolution: {integrity: sha512-ZOZ2ByLeoc2rkvSAivyF/cZE6NYSUNYLE4oDgNHN+J/ONmxTCJCBYi92EDh+efnM/KFwsksdsIcA3TLw86bigA==} - - '@hypercerts-org/contracts@2.0.0-alpha.9': - resolution: {integrity: sha512-bhYtN0hnO/MGbkyHtikMSzY5IVXFZ16FCsbonZBxglZeg0XUZHHzA7DokZkQOmFydG3MBmg5QewLCXwOHp3T7A==} - - '@hypercerts-org/marketplace-sdk@0.3.35': - resolution: {integrity: sha512-s5k4SaNRxcKKuvTLgleoMXu6NlYmvZFx8gsiBjnbXSHYWWfyHUbF+ilAok/S1uMsDuxBQgAXO7hfj3V6WhaTVw==} + '@hypercerts-org/marketplace-sdk@0.3.37': + resolution: {integrity: sha512-RSWadvX8yceC9vY5Qtc38EJ559NUBq9YTMNiPJroMPmHi1tkO1KLUN7c6g7tI8NvAKKGezveg04I5DvXAQPxgA==} engines: {node: '>= 16.15.1 <= 20.x'} peerDependencies: ethers: ^6.6.2 - '@hypercerts-org/sdk@2.1.1': - resolution: {integrity: sha512-Wf/wZOvZfsj0Y/gVGHS8hWnLKlbN/AphLzDusX7KnhtygLC9KUnP8RnTPAAwVkd6ma4gFsVyzpKbCx2Ph7rKmw==} - - '@hypercerts-org/sdk@2.2.0-beta.2': - resolution: {integrity: sha512-87nAidAyONkfBTB3bXmehCO+J6WqvrKoRt0OaRrPip60+MhipPZ9QhKQAK3dCxHbj8ZuPNaJwdNlPNuP6dlAXw==} + '@hypercerts-org/sdk@2.3.0': + resolution: {integrity: sha512-9J6LtV23F3/NiUQHAY8QKSpxIhyDP92rvH9E0aj5Eq2KIEefRJ0l1XltpwLXDh3yswh1HORrGMbK5blswdlVew==} '@inquirer/confirm@3.0.0': resolution: {integrity: sha512-LHeuYP1D8NmQra1eR4UqvZMXwxEdDXyElJmmZfU44xdNLL6+GcQBS0uE16vyfZVjH8c22p9e+DStROfE/hyHrg==} @@ -835,6 +826,10 @@ packages: '@noble/curves@1.4.0': resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + '@noble/curves@1.6.0': + resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.2.0': resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} @@ -846,6 +841,10 @@ packages: resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} @@ -861,36 +860,36 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nomicfoundation/edr-darwin-arm64@0.5.2': - resolution: {integrity: sha512-Gm4wOPKhbDjGTIRyFA2QUAPfCXA1AHxYOKt3yLSGJkQkdy9a5WW+qtqKeEKHc/+4wpJSLtsGQfpzyIzggFfo/A==} + '@nomicfoundation/edr-darwin-arm64@0.6.5': + resolution: {integrity: sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-darwin-x64@0.5.2': - resolution: {integrity: sha512-ClyABq2dFCsrYEED3/UIO0c7p4H1/4vvlswFlqUyBpOkJccr75qIYvahOSJRM62WgUFRhbSS0OJXFRwc/PwmVg==} + '@nomicfoundation/edr-darwin-x64@0.6.5': + resolution: {integrity: sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-gnu@0.5.2': - resolution: {integrity: sha512-HWMTVk1iOabfvU2RvrKLDgtFjJZTC42CpHiw2h6rfpsgRqMahvIlx2jdjWYzFNy1jZKPTN1AStQ/91MRrg5KnA==} + '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': + resolution: {integrity: sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-musl@0.5.2': - resolution: {integrity: sha512-CwsQ10xFx/QAD5y3/g5alm9+jFVuhc7uYMhrZAu9UVF+KtVjeCvafj0PaVsZ8qyijjqVuVsJ8hD1x5ob7SMcGg==} + '@nomicfoundation/edr-linux-arm64-musl@0.6.5': + resolution: {integrity: sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-gnu@0.5.2': - resolution: {integrity: sha512-CWVCEdhWJ3fmUpzWHCRnC0/VLBDbqtqTGTR6yyY1Ep3S3BOrHEAvt7h5gx85r2vLcztisu2vlDq51auie4IU1A==} + '@nomicfoundation/edr-linux-x64-gnu@0.6.5': + resolution: {integrity: sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-musl@0.5.2': - resolution: {integrity: sha512-+aJDfwhkddy2pP5u1ISg3IZVAm0dO836tRlDTFWtvvSMQ5hRGqPcWwlsbobhDQsIxhPJyT7phL0orCg5W3WMeA==} + '@nomicfoundation/edr-linux-x64-musl@0.6.5': + resolution: {integrity: sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A==} engines: {node: '>= 18'} - '@nomicfoundation/edr-win32-x64-msvc@0.5.2': - resolution: {integrity: sha512-CcvvuA3sAv7liFNPsIR/68YlH6rrybKzYttLlMr80d4GKJjwJ5OKb3YgE6FdZZnOfP19HEHhsLcE0DPLtY3r0w==} + '@nomicfoundation/edr-win32-x64-msvc@0.6.5': + resolution: {integrity: sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A==} engines: {node: '>= 18'} - '@nomicfoundation/edr@0.5.2': - resolution: {integrity: sha512-hW/iLvUQZNTVjFyX/I40rtKvvDOqUEyIi96T28YaLfmPL+3LW2lxmYLUXEJ6MI14HzqxDqrLyhf6IbjAa2r3Dw==} + '@nomicfoundation/edr@0.6.5': + resolution: {integrity: sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng==} engines: {node: '>= 18'} '@nomicfoundation/ethereumjs-common@4.0.4': @@ -1337,6 +1336,9 @@ packages: '@scure/base@1.1.7': resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + '@scure/bip32@1.1.5': resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} @@ -1346,6 +1348,9 @@ packages: '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + '@scure/bip32@1.5.0': + resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} + '@scure/bip39@1.1.1': resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} @@ -1355,6 +1360,9 @@ packages: '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + '@scure/bip39@1.4.0': + resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1456,6 +1464,11 @@ packages: resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==} engines: {node: '>=16.0.0'} + '@starboardventures/hardhat-verify@1.0.1': + resolution: {integrity: sha512-/FO3wMmUSrL8PsYwuxA233+3iwLzmjI2z39MiZCgki0uJXtDELhO9YXDI9qoUR2jHxvHiBa1gKd/ZIpC9tpuKw==} + peerDependencies: + hardhat: ^2.0.0 + '@supabase/auth-js@2.64.2': resolution: {integrity: sha512-s+lkHEdGiczDrzXJ1YWt2y3bxRi+qIUnXcgkpLSrId7yjBeaXBFygNjTaoZLG02KNcYwbuZ9qkEIqmj2hF7svw==} @@ -2007,6 +2020,17 @@ packages: zod: optional: true + abitype@1.0.6: + resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -2178,6 +2202,9 @@ packages: axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} @@ -2203,9 +2230,9 @@ packages: resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} engines: {node: '>=4'} - bin-links@4.0.4: - resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + bin-links@5.0.0: + resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} + engines: {node: ^18.17.0 || >=20.5.0} bin-version-check@5.1.0: resolution: {integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==} @@ -2347,6 +2374,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -2393,9 +2424,9 @@ packages: clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + cmd-shim@7.0.0: + resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} + engines: {node: ^18.17.0 || >=20.5.0} code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} @@ -2780,7 +2811,6 @@ packages: ethereum-bloom-filters@1.1.0: resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} - deprecated: do not use this package use package versions above as this can miss some topics ethereum-cryptography@0.1.3: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} @@ -2887,6 +2917,14 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -2926,10 +2964,6 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -3006,6 +3040,10 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -3093,17 +3131,12 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} @@ -3146,8 +3179,8 @@ packages: hardhat-deploy@0.11.45: resolution: {integrity: sha512-aC8UNaq3JcORnEUIwV945iJuvBwi65tjHVDU3v6mOcqik7WAzHVCJ7cwmkkipsHrWysrB5YvGF1q9S1vIph83w==} - hardhat@2.22.8: - resolution: {integrity: sha512-hPh2feBGRswkXkoXUFW6NbxgiYtEzp/3uvVFjYROy6fA9LH8BobUyxStlyhSKj4+v1Y23ZoUBOVWL84IcLACrA==} + hardhat@2.22.16: + resolution: {integrity: sha512-d52yQZ09u0roL6GlgJSvtknsBtIuj9JrJ/U8VMzr/wue+gO5v2tQayvOX6llerlR57Zw2EOTQjLAt6RpHvjwHA==} hasBin: true peerDependencies: ts-node: '*' @@ -3475,6 +3508,11 @@ packages: peerDependencies: ws: '*' + isows@1.0.6: + resolution: {integrity: sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==} + peerDependencies: + ws: '*' + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -3523,6 +3561,10 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stream-stringify@3.1.6: + resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} + engines: {node: '>=7.10.1'} + json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -3581,10 +3623,6 @@ packages: locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3863,6 +3901,10 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + node-fetch@2.0.0: + resolution: {integrity: sha512-bici2HCWFnAghTYMcy12WPxrEwJ5qK7GQJOTwTfyEZjyL99ECWxbYQfabZ2U1zrHMKkOBE97Z9iHIuKQfCMdzQ==} + engines: {node: 4.x || >=6.0.0} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -3901,9 +3943,9 @@ packages: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} @@ -3976,6 +4018,14 @@ packages: outvariant@1.4.2: resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} + ox@0.1.2: + resolution: {integrity: sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -3984,10 +4034,6 @@ packages: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -4000,10 +4046,6 @@ packages: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -4012,10 +4054,6 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4034,10 +4072,6 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -4137,10 +4171,17 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -4224,6 +4265,10 @@ packages: resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} engines: {node: '>=18'} + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4289,9 +4334,9 @@ packages: react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-cmd-shim@5.0.0: + resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} + engines: {node: ^18.17.0 || >=20.5.0} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -4305,6 +4350,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4672,8 +4721,8 @@ packages: resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} engines: {node: '>=14.16'} - supabase@1.191.3: - resolution: {integrity: sha512-5tIG7mPc5lZ9QRbkZssyHiOsx42qGFaVqclauXv+1fJAkZnfA28d0pzEDvfs33+w8YTReO5nNaWAgyzkWQQwfA==} + supabase@1.223.10: + resolution: {integrity: sha512-a5Wi562n0eiV3w359qiCjewyVad688Z3+JHdvLybdlITrwvNIcR6QYqRR6EzjKY5V/sNCqC+5sNf40wDYAYcHg==} engines: {npm: '>=8'} hasBin: true @@ -4757,6 +4806,10 @@ packages: tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinypool@0.7.0: resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} @@ -5037,6 +5090,14 @@ packages: typescript: optional: true + viem@2.21.49: + resolution: {integrity: sha512-NNItYfTv4+yGE5DDKc+S/g2S7KeJn047GwgEYG60FAJlK0FzwuP6lQKSeQ8k7Y4VasfuKPqiT+XiilcCtTRiDQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + vite-node@0.34.6: resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} @@ -5161,6 +5222,9 @@ packages: resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} engines: {node: '>=8.0.0'} + webauthn-p256@0.0.10: + resolution: {integrity: sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==} + webauthn-p256@0.0.5: resolution: {integrity: sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg==} @@ -5216,9 +5280,9 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@6.0.0: + resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} + engines: {node: ^18.17.0 || >=20.5.0} ws@7.4.6: resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} @@ -5280,6 +5344,18 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -5336,7 +5412,6 @@ packages: zksync-web3@0.14.4: resolution: {integrity: sha512-kYehMD/S6Uhe1g434UnaMN+sBr9nQm23Ywn0EUP5BfQCsbjcr3ORuS68PosZw8xUTu3pac7G6YMSnNHk+fwzvg==} - deprecated: This package has been deprecated in favor of zksync-ethers@5.0.0 peerDependencies: ethers: ^5.7.0 @@ -5959,10 +6034,11 @@ snapshots: - webdriverio - zod - '@hypercerts-org/contracts@2.0.0-alpha.7(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': + '@hypercerts-org/contracts@2.0.0-alpha.11(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': dependencies: - '@tenderly/hardhat-tenderly': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + '@starboardventures/hardhat-verify': 1.0.1(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@tenderly/hardhat-tenderly': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' - '@swc/core' @@ -5978,10 +6054,11 @@ snapshots: - typescript - utf-8-validate - '@hypercerts-org/contracts@2.0.0-alpha.8(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': + '@hypercerts-org/contracts@2.0.0-alpha.11(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': dependencies: - '@tenderly/hardhat-tenderly': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + '@starboardventures/hardhat-verify': 1.0.1(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@tenderly/hardhat-tenderly': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' - '@swc/core' @@ -5997,28 +6074,9 @@ snapshots: - typescript - utf-8-validate - '@hypercerts-org/contracts@2.0.0-alpha.9(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)': + '@hypercerts-org/marketplace-sdk@0.3.37(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(svelte@4.2.18)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': dependencies: - '@tenderly/hardhat-tenderly': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) - transitivePeerDependencies: - - '@nomicfoundation/hardhat-ethers' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - bufferutil - - c-kzg - - debug - - encoding - - ethers - - supports-color - - ts-node - - typescript - - utf-8-validate - - '@hypercerts-org/marketplace-sdk@0.3.35(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(svelte@4.2.18)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': - dependencies: - '@hypercerts-org/sdk': 2.1.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) + '@hypercerts-org/sdk': 2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) '@supabase/supabase-js': 2.44.2 '@urql/core': 5.0.4(graphql@16.8.1) ethers: 6.13.1 @@ -6041,46 +6099,17 @@ snapshots: - typescript - utf-8-validate - '@hypercerts-org/sdk@2.1.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - '@hypercerts-org/contracts': 2.0.0-alpha.7(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) - '@openzeppelin/merkle-tree': 1.0.7 - '@swc/core': 1.6.5 - ajv: 8.16.0 - axios: 1.7.2(debug@4.3.5) - dotenv: 16.4.5 - rollup-plugin-swc3: 0.11.2(@swc/core@1.6.5)(rollup@4.12.0) - viem: 2.19.7(typescript@5.5.2)(zod@3.23.8) - zod: 3.23.8 - transitivePeerDependencies: - - '@nomicfoundation/hardhat-ethers' - - '@swc/helpers' - - '@swc/wasm' - - '@types/node' - - bufferutil - - c-kzg - - debug - - encoding - - ethers - - graphql - - rollup - - supports-color - - ts-node - - typescript - - utf-8-validate - - '@hypercerts-org/sdk@2.2.0-beta.2(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': + '@hypercerts-org/sdk@2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@types/node@20.11.19)(ethers@6.13.1)(graphql@16.8.1)(rollup@4.12.0)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - '@hypercerts-org/contracts': 2.0.0-alpha.8(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) + '@hypercerts-org/contracts': 2.0.0-alpha.11(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.2) '@openzeppelin/merkle-tree': 1.0.7 '@swc/core': 1.6.5 ajv: 8.16.0 - axios: 1.7.2(debug@4.3.5) + axios: 1.7.7 dotenv: 16.4.5 rollup-plugin-swc3: 0.11.2(@swc/core@1.6.5)(rollup@4.12.0) - viem: 2.19.7(typescript@5.5.2)(zod@3.23.8) + viem: 2.21.49(typescript@5.5.2)(zod@3.23.8) zod: 3.23.8 transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' @@ -6215,12 +6244,18 @@ snapshots: dependencies: '@noble/hashes': 1.4.0 + '@noble/curves@1.6.0': + dependencies: + '@noble/hashes': 1.5.0 + '@noble/hashes@1.2.0': {} '@noble/hashes@1.3.2': {} '@noble/hashes@1.4.0': {} + '@noble/hashes@1.5.0': {} + '@noble/secp256k1@1.7.1': {} '@nodelib/fs.scandir@2.1.5': @@ -6235,29 +6270,29 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nomicfoundation/edr-darwin-arm64@0.5.2': {} + '@nomicfoundation/edr-darwin-arm64@0.6.5': {} - '@nomicfoundation/edr-darwin-x64@0.5.2': {} + '@nomicfoundation/edr-darwin-x64@0.6.5': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.5.2': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': {} - '@nomicfoundation/edr-linux-arm64-musl@0.5.2': {} + '@nomicfoundation/edr-linux-arm64-musl@0.6.5': {} - '@nomicfoundation/edr-linux-x64-gnu@0.5.2': {} + '@nomicfoundation/edr-linux-x64-gnu@0.6.5': {} - '@nomicfoundation/edr-linux-x64-musl@0.5.2': {} + '@nomicfoundation/edr-linux-x64-musl@0.6.5': {} - '@nomicfoundation/edr-win32-x64-msvc@0.5.2': {} + '@nomicfoundation/edr-win32-x64-msvc@0.6.5': {} - '@nomicfoundation/edr@0.5.2': + '@nomicfoundation/edr@0.6.5': dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.5.2 - '@nomicfoundation/edr-darwin-x64': 0.5.2 - '@nomicfoundation/edr-linux-arm64-gnu': 0.5.2 - '@nomicfoundation/edr-linux-arm64-musl': 0.5.2 - '@nomicfoundation/edr-linux-x64-gnu': 0.5.2 - '@nomicfoundation/edr-linux-x64-musl': 0.5.2 - '@nomicfoundation/edr-win32-x64-msvc': 0.5.2 + '@nomicfoundation/edr-darwin-arm64': 0.6.5 + '@nomicfoundation/edr-darwin-x64': 0.6.5 + '@nomicfoundation/edr-linux-arm64-gnu': 0.6.5 + '@nomicfoundation/edr-linux-arm64-musl': 0.6.5 + '@nomicfoundation/edr-linux-x64-gnu': 0.6.5 + '@nomicfoundation/edr-linux-x64-musl': 0.6.5 + '@nomicfoundation/edr-win32-x64-msvc': 0.6.5 '@nomicfoundation/ethereumjs-common@4.0.4': dependencies: @@ -6279,38 +6314,38 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: debug: 4.3.5 ethers: 6.13.1 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: - '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) '@nomicfoundation/ignition-core': 0.15.5 '@nomicfoundation/ignition-ui': 0.15.5 chalk: 4.1.2 debug: 4.3.5 fs-extra: 10.1.0 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) prompts: 2.4.2 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 cbor: 8.1.0 chalk: 2.4.2 debug: 4.3.5 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) lodash.clonedeep: 4.5.0 semver: 6.3.1 table: 6.8.2 @@ -6662,9 +6697,9 @@ snapshots: - debug - encoding - '@openzeppelin/hardhat-upgrades@3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@openzeppelin/hardhat-upgrades@3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-ethers': 3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) '@openzeppelin/defender-sdk-base-client': 1.14.3 '@openzeppelin/defender-sdk-deploy-client': 1.14.3(debug@4.3.5) '@openzeppelin/defender-sdk-network-client': 1.14.3(debug@4.3.5) @@ -6673,11 +6708,11 @@ snapshots: debug: 4.3.5 ethereumjs-util: 7.1.5 ethers: 6.13.1 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) proper-lockfile: 4.1.2 undici: 6.19.7 optionalDependencies: - '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) transitivePeerDependencies: - encoding - supports-color @@ -6763,6 +6798,8 @@ snapshots: '@scure/base@1.1.7': {} + '@scure/base@1.1.9': {} + '@scure/bip32@1.1.5': dependencies: '@noble/hashes': 1.2.0 @@ -6781,6 +6818,12 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.7 + '@scure/bip32@1.5.0': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.7 + '@scure/bip39@1.1.1': dependencies: '@noble/hashes': 1.2.0 @@ -6796,6 +6839,11 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.7 + '@scure/bip39@1.4.0': + dependencies: + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + '@sec-ant/readable-stream@0.4.1': {} '@sentry/core@5.30.0': @@ -6952,6 +7000,12 @@ snapshots: dependencies: tslib: 2.6.3 + '@starboardventures/hardhat-verify@1.0.1(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + dependencies: + fs-extra: 11.2.0 + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + node-fetch: 2.0.0 + '@supabase/auth-js@2.64.2': dependencies: '@supabase/node-fetch': 2.6.15 @@ -7139,19 +7193,19 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tenderly/hardhat-tenderly@2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@tenderly/hardhat-tenderly@2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.5.25)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: '@ethersproject/bignumber': 5.7.0 - '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - '@openzeppelin/hardhat-upgrades': 3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@openzeppelin/hardhat-upgrades': 3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) '@openzeppelin/upgrades-core': 1.35.1 axios: 1.7.2(debug@4.3.5) ethers: 6.13.1 fs-extra: 10.1.0 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) hardhat-deploy: 0.11.45 - tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.4) + tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.4) ts-node: 10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4) tslog: 4.9.3 typescript: 5.5.4 @@ -7166,17 +7220,17 @@ snapshots: - supports-color - utf-8-validate - '@tenderly/hardhat-tenderly@2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': + '@tenderly/hardhat-tenderly@2.3.0(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@swc/core@1.6.5)(@types/node@20.11.19)(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2))': dependencies: '@ethersproject/bignumber': 5.7.0 - '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) - '@openzeppelin/hardhat-upgrades': 3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@nomicfoundation/hardhat-verify': 2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) + '@openzeppelin/hardhat-upgrades': 3.2.1(@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(@nomicfoundation/hardhat-verify@2.0.9(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)))(ethers@6.13.1)(hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2)) '@openzeppelin/upgrades-core': 1.35.1 axios: 1.7.2(debug@4.3.5) ethers: 6.13.1 fs-extra: 10.1.0 - hardhat: 2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) + hardhat: 2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2) hardhat-deploy: 0.11.45 tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.6.5)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.4) ts-node: 10.9.2(@swc/core@1.6.5)(@types/node@20.11.19)(typescript@5.5.4) @@ -7643,6 +7697,11 @@ snapshots: typescript: 5.5.2 zod: 3.23.8 + abitype@1.0.6(typescript@5.5.2)(zod@3.23.8): + optionalDependencies: + typescript: 5.5.2 + zod: 3.23.8 + accepts@1.3.8: dependencies: mime-types: 2.1.35 @@ -7827,6 +7886,14 @@ snapshots: transitivePeerDependencies: - debug + axios@1.7.7: + dependencies: + follow-redirects: 1.15.6(debug@4.3.5) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axobject-query@4.0.0: dependencies: dequal: 2.0.3 @@ -7853,12 +7920,13 @@ snapshots: execa: 0.7.0 executable: 4.1.1 - bin-links@4.0.4: + bin-links@5.0.0: dependencies: - cmd-shim: 6.0.3 - npm-normalize-package-bin: 3.0.1 - read-cmd-shim: 4.0.0 - write-file-atomic: 5.0.1 + cmd-shim: 7.0.0 + npm-normalize-package-bin: 4.0.0 + proc-log: 5.0.0 + read-cmd-shim: 5.0.0 + write-file-atomic: 6.0.0 bin-version-check@5.1.0: dependencies: @@ -8059,6 +8127,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@3.0.0: {} @@ -8102,7 +8174,7 @@ snapshots: dependencies: mimic-response: 1.0.1 - cmd-shim@6.0.3: {} + cmd-shim@7.0.0: {} code-red@1.0.4: dependencies: @@ -8575,7 +8647,7 @@ snapshots: ethereum-bloom-filters@1.1.0: dependencies: - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.5.0 ethereum-cryptography@0.1.3: dependencies: @@ -8834,6 +8906,10 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -8883,10 +8959,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-up@2.1.0: - dependencies: - locate-path: 2.0.0 - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -8956,6 +9028,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -9041,15 +9119,6 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 - glob@7.2.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -9153,11 +9222,11 @@ snapshots: - supports-color - utf-8-validate - hardhat@2.22.8(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2): + hardhat@2.22.16(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.2): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/edr': 0.5.2 + '@nomicfoundation/edr': 0.6.5 '@nomicfoundation/ethereumjs-common': 4.0.4 '@nomicfoundation/ethereumjs-tx': 5.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 @@ -9169,31 +9238,32 @@ snapshots: aggregate-error: 3.1.0 ansi-escapes: 4.3.2 boxen: 5.1.2 - chalk: 2.4.2 - chokidar: 3.6.0 + chokidar: 4.0.1 ci-info: 2.0.0 debug: 4.3.5 enquirer: 2.4.1 env-paths: 2.2.1 ethereum-cryptography: 1.2.0 ethereumjs-abi: 0.6.8 - find-up: 2.1.0 + find-up: 5.0.0 fp-ts: 1.19.3 fs-extra: 7.0.1 - glob: 7.2.0 immutable: 4.3.5 io-ts: 1.10.4 + json-stream-stringify: 3.1.6 keccak: 3.0.4 lodash: 4.17.21 mnemonist: 0.38.5 mocha: 10.3.0 p-map: 4.0.0 + picocolors: 1.1.1 raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.1 solc: 0.8.26(debug@4.3.5) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 + tinyglobby: 0.2.10 tsort: 0.0.1 undici: 5.28.3 uuid: 8.3.2 @@ -9492,6 +9562,10 @@ snapshots: dependencies: ws: 8.17.1 + isows@1.0.6(ws@8.18.0): + dependencies: + ws: 8.18.0 + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -9545,6 +9619,8 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stream-stringify@3.1.6: {} + json-stringify-safe@5.0.1: {} jsonc-parser@3.2.1: {} @@ -9578,11 +9654,11 @@ snapshots: kysely: 0.27.4 postgres: 3.4.4 - kysely-supabase@0.2.0(@supabase/supabase-js@2.44.2)(kysely@0.27.4)(supabase@1.191.3): + kysely-supabase@0.2.0(@supabase/supabase-js@2.44.2)(kysely@0.27.4)(supabase@1.223.10): dependencies: '@supabase/supabase-js': 2.44.2 kysely: 0.27.4 - supabase: 1.191.3 + supabase: 1.223.10 kysely@0.27.4: {} @@ -9600,11 +9676,6 @@ snapshots: locate-character@3.0.0: {} - locate-path@2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -9881,6 +9952,8 @@ snapshots: node-domexception@1.0.0: {} + node-fetch@2.0.0: {} + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -9916,7 +9989,7 @@ snapshots: normalize-url@6.1.0: {} - npm-normalize-package-bin@3.0.1: {} + npm-normalize-package-bin@4.0.0: {} npm-run-path@2.0.2: dependencies: @@ -9998,14 +10071,24 @@ snapshots: outvariant@1.4.2: {} + ox@0.1.2(typescript@5.5.2)(zod@3.23.8): + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.5.2)(zod@3.23.8) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - zod + p-cancelable@2.1.1: {} p-finally@1.0.0: {} - p-limit@1.3.0: - dependencies: - p-try: 1.0.0 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -10018,10 +10101,6 @@ snapshots: dependencies: yocto-queue: 1.0.0 - p-locate@2.0.0: - dependencies: - p-limit: 1.3.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -10030,8 +10109,6 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-try@1.0.0: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -10047,8 +10124,6 @@ snapshots: path-browserify@1.0.1: {} - path-exists@3.0.0: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -10141,8 +10216,12 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pirates@4.0.6: {} @@ -10218,6 +10297,8 @@ snapshots: dependencies: parse-ms: 4.0.0 + proc-log@5.0.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -10288,7 +10369,7 @@ snapshots: react-is@18.2.0: {} - read-cmd-shim@4.0.0: {} + read-cmd-shim@5.0.0: {} readable-stream@3.6.2: dependencies: @@ -10304,6 +10385,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + regenerator-runtime@0.14.1: {} regexp.prototype.flags@1.5.2: @@ -10701,9 +10784,9 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 5.0.0 - supabase@1.191.3: + supabase@1.223.10: dependencies: - bin-links: 4.0.4 + bin-links: 5.0.0 https-proxy-agent: 7.0.5 node-fetch: 3.3.2 tar: 7.4.3 @@ -10811,7 +10894,7 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - tenderly@0.9.1(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.2))(typescript@5.5.4): + tenderly@0.9.1(ts-node@10.9.2(@swc/core@1.5.25)(@types/node@20.11.19)(typescript@5.5.4))(typescript@5.5.4): dependencies: axios: 0.27.2 cli-table3: 0.6.5 @@ -10857,6 +10940,11 @@ snapshots: tinybench@2.6.0: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@0.7.0: {} tinypool@0.8.2: {} @@ -11134,6 +11222,24 @@ snapshots: - utf-8-validate - zod + viem@2.21.49(typescript@5.5.2)(zod@3.23.8): + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.5.2)(zod@3.23.8) + isows: 1.0.6(ws@8.18.0) + ox: 0.1.2(typescript@5.5.2)(zod@3.23.8) + webauthn-p256: 0.0.10 + ws: 8.18.0 + optionalDependencies: + typescript: 5.5.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + vite-node@0.34.6(@types/node@20.14.2): dependencies: cac: 6.7.14 @@ -11300,6 +11406,11 @@ snapshots: randombytes: 2.1.0 utf8: 3.0.0 + webauthn-p256@0.0.10: + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + webauthn-p256@0.0.5: dependencies: '@noble/curves': 1.4.0 @@ -11369,7 +11480,7 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@5.0.1: + write-file-atomic@6.0.0: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 @@ -11384,6 +11495,8 @@ snapshots: ws@8.17.1: {} + ws@8.18.0: {} + xtend@4.0.2: {} y18n@5.0.8: {} diff --git a/seed.ts b/seed.ts index 66601da..606b308 100644 --- a/seed.ts +++ b/seed.ts @@ -92,22 +92,22 @@ const main = async () => { await supabase.from("contracts").upsert( [ { - chain_id: 42161, - contract_address: "0xcE8fa09562f07c23B9C21b5d0A29a293F8a8BC83", - start_block: 258720235, - contract_slug: marketplaceContractSlug, + chain_id: 10, + contract_address: "0x4200000000000000000000000000000000000021", + start_block: 126023023, + contract_slug: easContractSlug, }, { - chain_id: 42161, - contract_address: "0xC2679fBD37d54388Ce493F1DB75320D236e1815e", - start_block: 258705973, - contract_slug: easContractSlug, + chain_id: 10, + contract_address: "0x822F17A9A5EeCFd66dBAFf7946a8071C265D1d07", + start_block: 76066993, + contract_slug: minterContractSlug, }, { chain_id: 10, - contract_address: "0x4200000000000000000000000000000000000021", - start_block: 126023023, - contract_slug: easContractSlug, + contract_address: "0x2F7Ab1844594112E00708e18835ba2e731880Db1", + start_block: 124234816, + contract_slug: marketplaceContractSlug, }, { chain_id: 8453, @@ -116,10 +116,10 @@ const main = async () => { contract_slug: easContractSlug, }, { - chain_id: 42220, - contract_address: "0xC2679fBD37d54388Ce493F1DB75320D236e1815e", - start_block: 27994577, - contract_slug: easContractSlug, + chain_id: 8453, + contract_address: "0xC2d179166bc9dbB00A03686a5b17eCe2224c2704", + start_block: 6771210, + contract_slug: minterContractSlug, }, { chain_id: 42161, @@ -128,16 +128,16 @@ const main = async () => { contract_slug: minterContractSlug, }, { - chain_id: 421614, - contract_address: "0x0A00a2f09cd37B24E7429c5238323bfebCfF3Ed9", - start_block: 69066523, - contract_slug: minterContractSlug, + chain_id: 42161, + contract_address: "0xcE8fa09562f07c23B9C21b5d0A29a293F8a8BC83", + start_block: 258720235, + contract_slug: marketplaceContractSlug, }, { - chain_id: 421614, - contract_address: "0x1d905Bec93E48C64649300688B99D5F7d11ac412", - start_block: 72624136, - contract_slug: marketplaceContractSlug, + chain_id: 42161, + contract_address: "0xC2679fBD37d54388Ce493F1DB75320D236e1815e", + start_block: 258705973, + contract_slug: easContractSlug, }, { chain_id: 42220, @@ -146,10 +146,16 @@ const main = async () => { contract_slug: minterContractSlug, }, { - chain_id: 8453, - contract_address: "0xC2d179166bc9dbB00A03686a5b17eCe2224c2704", - start_block: 6771210, - contract_slug: minterContractSlug, + chain_id: 42220, + contract_address: "0xC2679fBD37d54388Ce493F1DB75320D236e1815e", + start_block: 27994577, + contract_slug: easContractSlug, + }, + { + chain_id: 42220, + contract_address: "0xfB29FDb0677b1acB4b148F953DE5ee6ec5cBf717", + start_block: 28920720, + contract_slug: marketplaceContractSlug, }, { chain_id: 84532, @@ -164,23 +170,29 @@ const main = async () => { contract_slug: marketplaceContractSlug, }, { - chain_id: 11155111, - contract_address: "0xa16DFb32Eb140a6f3F2AC68f41dAd8c7e83C4941", - start_block: 4421945, + chain_id: 314159, + contract_address: "0x822F17A9A5EeCFd66dBAFf7946a8071C265D1d07", + start_block: 2058128, contract_slug: minterContractSlug, }, { - chain_id: 10, - contract_address: "0x822F17A9A5EeCFd66dBAFf7946a8071C265D1d07", - start_block: 76066993, + chain_id: 421614, + contract_address: "0x0A00a2f09cd37B24E7429c5238323bfebCfF3Ed9", + start_block: 69066523, contract_slug: minterContractSlug, }, { - chain_id: 10, - contract_address: "0x2F7Ab1844594112E00708e18835ba2e731880Db1", - start_block: 124234816, + chain_id: 421614, + contract_address: "0x1d905Bec93E48C64649300688B99D5F7d11ac412", + start_block: 72624136, contract_slug: marketplaceContractSlug, }, + { + chain_id: 11155111, + contract_address: "0xa16DFb32Eb140a6f3F2AC68f41dAd8c7e83C4941", + start_block: 4421945, + contract_slug: minterContractSlug, + }, { chain_id: 11155111, contract_address: "0xB1991E985197d14669852Be8e53ee95A1f4621c0", @@ -204,7 +216,7 @@ const main = async () => { await supabase.from("supported_schemas").upsert( [ { - chain_id: 11155111, + chain_id: 10, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", @@ -212,7 +224,7 @@ const main = async () => { revocable: true, }, { - chain_id: 84532, + chain_id: 8453, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", @@ -220,7 +232,7 @@ const main = async () => { revocable: true, }, { - chain_id: 10, + chain_id: 42161, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", @@ -228,7 +240,7 @@ const main = async () => { revocable: true, }, { - chain_id: 8453, + chain_id: 42220, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", @@ -236,7 +248,7 @@ const main = async () => { revocable: true, }, { - chain_id: 42220, + chain_id: 84532, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", @@ -244,7 +256,7 @@ const main = async () => { revocable: true, }, { - chain_id: 42161, + chain_id: 11155111, uid: "0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449", schema: "uint256 chain_id,address contract_address,uint256 token_id,uint8 evaluate_basic,uint8 evaluate_work,uint8 evaluate_contributors,uint8 evaluate_properties,string comments,string[] tags", diff --git a/src/clients/evmClient.ts b/src/clients/evmClient.ts index 8522564..01fe34e 100644 --- a/src/clients/evmClient.ts +++ b/src/clients/evmClient.ts @@ -5,6 +5,7 @@ import { base, baseSepolia, celo, + filecoinCalibration, optimism, sepolia, } from "viem/chains"; @@ -17,7 +18,8 @@ import { } from "@/utils/constants.js"; export const getSupportedChains = () => { - if (environment === Environment.TEST) return [11155111, 84532, 421614]; + if (environment === Environment.TEST) + return [11155111, 84532, 421614, 314159]; if (environment === Environment.PRODUCTION) return [10, 8453, 42220, 42161]; }; @@ -37,6 +39,8 @@ const selectedNetwork = (chainId: number) => { return baseSepolia; case 11155111: return sepolia; + case 314159: + return filecoinCalibration; default: throw new Error(`Unsupported chain ID: ${chainId}`); } @@ -58,6 +62,8 @@ export const alchemyUrl = (chainId: number) => { return `https://base-sepolia.g.alchemy.com/v2/${alchemyApiKey}`; case 11155111: return `https://eth-sepolia.g.alchemy.com/v2/${alchemyApiKey}`; + case 314159: + return; default: throw new Error(`Unsupported chain ID: ${chainId}`); } @@ -78,7 +84,9 @@ const infuraUrl = (chainId: number) => { case 84532: return; case 11155111: - return `https://sepolia.infura.io/v3/${infuraApiKey}`; + return; + case 314159: + return; default: throw new Error(`Unsupported chain ID: ${chainId}`); } @@ -100,18 +108,30 @@ const drpcUrl = (chainId: number) => { return; case 11155111: return; + case 314159: + return; default: throw new Error(`Unsupported chain ID: ${chainId}`); } }; +const glifUrl = (chainId: number) => { + switch (chainId) { + case 314159: + return `https://api.calibration.node.glif.io/rpc/v1`; + default: + return; + } +}; + const rpc_timeout = 20_000; export const getRpcUrl = (chainId: number) => { const alchemy = alchemyUrl(chainId); const infura = infuraUrl(chainId); const drpc = drpcUrl(chainId); - return [alchemy, infura, drpc].filter((url) => url)[0]; + const glif = glifUrl(chainId); + return [alchemy, infura, drpc, glif].filter((url) => url)[0]; }; const fallBackProvider = (chainId: number) => { @@ -124,7 +144,10 @@ const fallBackProvider = (chainId: number) => { const drpc = drpcUrl(chainId) ? [http(drpcUrl(chainId), { timeout: rpc_timeout })] : []; - return fallback([...alchemy, ...drpc, ...infura], { + const glif = glifUrl(chainId) + ? [http(glifUrl(chainId), { timeout: rpc_timeout })] + : []; + return fallback([...alchemy, ...drpc, ...infura, ...glif], { retryCount: 5, }); }; diff --git a/src/indexer/chainsauce.ts b/src/indexer/chainsauce.ts index 68b3d77..a482ad7 100644 --- a/src/indexer/chainsauce.ts +++ b/src/indexer/chainsauce.ts @@ -62,7 +62,7 @@ export const getIndexer = async ({ id: chainId, maxBlockRange: 100000n, rpcClient: createHttpRpcClient({ url: rpcUrl }), - pollingInterval: environment === Environment.TEST ? 5000 : 2500, + pollingInterval: environment === Environment.TEST ? 10000 : 5000, }, contracts: MyContracts, context: { diff --git a/src/indexer/indexer.ts b/src/indexer/indexer.ts index 427cd71..0b58bbb 100644 --- a/src/indexer/indexer.ts +++ b/src/indexer/indexer.ts @@ -12,6 +12,8 @@ class Indexer { const supportedChains = getSupportedChains(); + console.log(supportedChains); + if (!supportedChains || supportedChains.length === 0) { throw new Error("No supported chains found."); } diff --git a/src/instrument.mjs b/src/instrument.mjs index 9ed3975..44baf88 100644 --- a/src/instrument.mjs +++ b/src/instrument.mjs @@ -1,29 +1,21 @@ import * as Sentry from "@sentry/node"; import { nodeProfilingIntegration } from "@sentry/profiling-node"; -export const assertExists = (variable, name) => { - if (!variable) { - throw new Error(`Environment variable ${name} is not set.`); - } - - return variable; -}; - -const enabled = - process.env.SENTRY_ENVIRONMENT === "production" || - process.env.SENTRY_ENVIRONMENT === "staging"; - // Ensure to call this before importing any other modules! Sentry.init({ - dsn: enabled ? assertExists(process.env.SENTRY_DSN, "SENTRY_DSN") : undefined, - integrations: [nodeProfilingIntegration(), Sentry.captureConsoleIntegration({ levels: ["warn", "error"] })], - enabled, - + dsn: process.env.SENTRY_DSN, + integrations: [ + nodeProfilingIntegration(), + Sentry.captureConsoleIntegration({ levels: ["warn", "error"] }), + ], + enabled: + process.env.SENTRY_ENVIRONMENT === "production" || + process.env.SENTRY_ENVIRONMENT === "staging", // Add Tracing by setting tracesSampleRate // We recommend adjusting this value in production tracesSampleRate: 1.0, // Set sampling rate for profiling // This is relative to tracesSampleRate - profilesSampleRate: 1.0 + profilesSampleRate: 1.0, }); diff --git a/src/types/database-generated.types.ts b/src/types/database-generated.types.ts index f94050d..a850a35 100644 --- a/src/types/database-generated.types.ts +++ b/src/types/database-generated.types.ts @@ -1019,3 +1019,18 @@ export type Enums< ? PublicSchema["Enums"][PublicEnumNameOrOptions] : never +export type CompositeTypes< + PublicCompositeTypeNameOrOptions extends + | keyof PublicSchema["CompositeTypes"] + | { schema: keyof Database }, + CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { + schema: keyof Database + } + ? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] + : never = never, +> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database } + ? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] + : PublicCompositeTypeNameOrOptions extends keyof PublicSchema["CompositeTypes"] + ? PublicSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] + : never + diff --git a/src/utils/getDeployment.ts b/src/utils/getDeployment.ts index e72e8ed..55dd7d8 100644 --- a/src/utils/getDeployment.ts +++ b/src/utils/getDeployment.ts @@ -84,6 +84,14 @@ export const getDeployment = ( schemaRegistryAddress: "", chainId, }; + case 314159: + return { + ...DEPLOYMENTS["314159"], + startBlock: 2058128n, + easAddress: "", + schemaRegistryAddress: "", + chainId, + }; default: throw new Error(`Unsupported chain ID: ${chainId}`); } diff --git a/src/utils/metadata.zod.ts b/src/utils/metadata.zod.ts index a60078e..64de65b 100644 --- a/src/utils/metadata.zod.ts +++ b/src/utils/metadata.zod.ts @@ -52,6 +52,7 @@ export const HypercertMetadataValidator: z.ZodType = .object({ trait_type: z.string().optional(), value: z.string().optional(), + data: z.string().optional(), }) .and(z.record(z.string())), )