From f1bfb2333b299b3bf213d20af78ac75f4da4bc56 Mon Sep 17 00:00:00 2001 From: Nabarun Date: Mon, 14 Oct 2024 12:37:27 +0000 Subject: [PATCH] Add stack for steer-protocol watcher (#1) Part of https://www.notion.so/FEVM-Subgraph-Production-Deployment-089a34a10010495b9ccb5cd878c1bbe9 Reviewed-on: https://git.vdb.to/cerc-io/steer-protocol-watcher-ts/pulls/1 Co-authored-by: Nabarun Co-committed-by: Nabarun --- package.json | 10 +- src/indexer.ts | 4 + stacks/README.md | 3 + .../docker-compose-watcher-steer-protocol.yml | 82 ++++++++++++ .../start-job-runner.sh | 29 +++++ .../watcher-steer-protocol/start-server.sh | 29 +++++ .../watcher-config-template.toml | 121 ++++++++++++++++++ .../cerc-watcher-steer-protocol/.dockerignore | 1 + .../cerc-watcher-steer-protocol/Dockerfile | 15 +++ .../cerc-watcher-steer-protocol/build.sh | 7 + .../stacks/steer-protocol/README.md | 110 ++++++++++++++++ .../stacks/steer-protocol/stack.yml | 8 ++ yarn.lock | 118 ++++++++++------- 13 files changed, 488 insertions(+), 49 deletions(-) create mode 100644 stacks/README.md create mode 100644 stacks/stack-orchestrator/compose/docker-compose-watcher-steer-protocol.yml create mode 100755 stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh create mode 100755 stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh create mode 100644 stacks/stack-orchestrator/config/watcher-steer-protocol/watcher-config-template.toml create mode 100644 stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/.dockerignore create mode 100644 stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/Dockerfile create mode 100755 stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/build.sh create mode 100644 stacks/stack-orchestrator/stacks/steer-protocol/README.md create mode 100644 stacks/stack-orchestrator/stacks/steer-protocol/stack.yml diff --git a/package.json b/package.json index 11ec3d3..e666f12 100644 --- a/package.json +++ b/package.json @@ -39,11 +39,11 @@ "homepage": "https://github.com/cerc-io/watcher-ts#readme", "dependencies": { "@apollo/client": "^3.3.19", - "@cerc-io/cli": "^0.2.107", - "@cerc-io/ipld-eth-client": "^0.2.107", - "@cerc-io/solidity-mapper": "^0.2.107", - "@cerc-io/util": "^0.2.107", - "@cerc-io/graph-node": "^0.2.107", + "@cerc-io/cli": "^0.2.108", + "@cerc-io/ipld-eth-client": "^0.2.108", + "@cerc-io/solidity-mapper": "^0.2.108", + "@cerc-io/util": "^0.2.108", + "@cerc-io/graph-node": "^0.2.108", "@ethersproject/providers": "^5.4.4", "debug": "^4.3.1", "decimal.js": "^10.3.1", diff --git a/src/indexer.ts b/src/indexer.ts index e04e2ac..50023eb 100644 --- a/src/indexer.ts +++ b/src/indexer.ts @@ -620,6 +620,10 @@ export class Indexer implements IndexerInterface { return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock, context); } + async removeContract (address: string, kind: string): Promise { + return this._baseIndexer.removeContract(address, kind); + } + updateStateStatusMap (address: string, stateStatus: StateStatus): void { this._baseIndexer.updateStateStatusMap(address, stateStatus); } diff --git a/stacks/README.md b/stacks/README.md new file mode 100644 index 0000000..e4e137e --- /dev/null +++ b/stacks/README.md @@ -0,0 +1,3 @@ +# steer-protocol-watcher-stack + +- [steer-protocol-watcher](stack-orchestrator/stacks/steer-protocol) diff --git a/stacks/stack-orchestrator/compose/docker-compose-watcher-steer-protocol.yml b/stacks/stack-orchestrator/compose/docker-compose-watcher-steer-protocol.yml new file mode 100644 index 0000000..82accad --- /dev/null +++ b/stacks/stack-orchestrator/compose/docker-compose-watcher-steer-protocol.yml @@ -0,0 +1,82 @@ +version: '3.2' + +services: + steer-protocol-watcher-db: + restart: unless-stopped + image: postgres:14-alpine + environment: + - POSTGRES_USER=vdbm + - POSTGRES_MULTIPLE_DATABASES=steer-protocol-watcher,steer-protocol-watcher-job-queue + - POSTGRES_EXTENSION=steer-protocol-watcher-job-queue:pgcrypto + - POSTGRES_PASSWORD=password + volumes: + - ../config/postgresql/multiple-postgressql-databases.sh:/docker-entrypoint-initdb.d/multiple-postgressql-databases.sh + - steer_protocol_watcher_db_data:/var/lib/postgresql/data + ports: + - "5432" + healthcheck: + test: ["CMD", "nc", "-v", "localhost", "5432"] + interval: 20s + timeout: 5s + retries: 15 + start_period: 10s + + steer-protocol-watcher-job-runner: + restart: unless-stopped + depends_on: + steer-protocol-watcher-db: + condition: service_healthy + image: cerc/watcher-steer-protocol:local + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH:-/graphql} + CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH:-/rpc} + CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS} + command: ["bash", "./start-job-runner.sh"] + volumes: + - ../config/watcher-steer-protocol/watcher-config-template.toml:/app/environments/watcher-config-template.toml + - ../config/watcher-steer-protocol/start-job-runner.sh:/app/start-job-runner.sh + ports: + - "9000" + healthcheck: + test: ["CMD", "nc", "-vz", "127.0.0.1", "9000"] + interval: 20s + timeout: 5s + retries: 15 + start_period: 5s + extra_hosts: + - "host.docker.internal:host-gateway" + + steer-protocol-watcher-server: + restart: unless-stopped + depends_on: + steer-protocol-watcher-db: + condition: service_healthy + steer-protocol-watcher-job-runner: + condition: service_healthy + image: cerc/watcher-steer-protocol:local + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH:-/graphql} + CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH:-/rpc} + CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS} + command: ["bash", "./start-server.sh"] + volumes: + - ../config/watcher-steer-protocol/watcher-config-template.toml:/app/environments/watcher-config-template.toml + - ../config/watcher-steer-protocol/start-server.sh:/app/start-server.sh + - steer_protocol_watcher_gql_logs_data:/app/gql-logs + ports: + - "3008" + - "9001" + healthcheck: + test: ["CMD", "nc", "-vz", "127.0.0.1", "3008"] + interval: 20s + timeout: 5s + retries: 15 + start_period: 5s + extra_hosts: + - "host.docker.internal:host-gateway" + +volumes: + steer_protocol_watcher_db_data: + steer_protocol_watcher_gql_logs_data: diff --git a/stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh b/stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh new file mode 100755 index 0000000..92c94d0 --- /dev/null +++ b/stacks/stack-orchestrator/config/watcher-steer-protocol/start-job-runner.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi +set -u + +echo "Using env variables:" +echo "CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH}" +echo "CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH}" +echo "CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}" + +# Read in the config template TOML file and modify it +WATCHER_CONFIG_TEMPLATE=$(cat environments/watcher-config-template.toml) + +# Convert the comma-separated list in CERC_ETH_RPC_ENDPOINTS to a JSON array +RPC_ENDPOINTS_ARRAY=$(echo "$CERC_ETH_RPC_ENDPOINTS" | tr ',' '\n' | awk '{print "\"" $0 "\""}' | paste -sd, - | sed 's/^/[/; s/$/]/') + +WATCHER_CONFIG=$(echo "$WATCHER_CONFIG_TEMPLATE" | \ + sed -E "s|REPLACE_WITH_CERC_GQL_SERVER_PATH|\"${CERC_GQL_SERVER_PATH}\"|g; \ + s|REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH|\"${CERC_ETH_RPC_SERVER_PATH}\"|g; \ + s|REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS|${RPC_ENDPOINTS_ARRAY}| ") + +# Write the modified content to a new file +echo "$WATCHER_CONFIG" > environments/local.toml + +echo "Running job-runner..." +DEBUG=vulcanize:* exec node --enable-source-maps dist/job-runner.js diff --git a/stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh b/stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh new file mode 100755 index 0000000..36496ab --- /dev/null +++ b/stacks/stack-orchestrator/config/watcher-steer-protocol/start-server.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi +set -u + +echo "Using env variables:" +echo "CERC_GQL_SERVER_PATH: ${CERC_GQL_SERVER_PATH}" +echo "CERC_ETH_RPC_SERVER_PATH: ${CERC_ETH_RPC_SERVER_PATH}" +echo "CERC_ETH_RPC_ENDPOINTS: ${CERC_ETH_RPC_ENDPOINTS}" + +# Read in the config template TOML file and modify it +WATCHER_CONFIG_TEMPLATE=$(cat environments/watcher-config-template.toml) + +# Convert the comma-separated list in CERC_ETH_RPC_ENDPOINTS to a JSON array +RPC_ENDPOINTS_ARRAY=$(echo "$CERC_ETH_RPC_ENDPOINTS" | tr ',' '\n' | awk '{print "\"" $0 "\""}' | paste -sd, - | sed 's/^/[/; s/$/]/') + +WATCHER_CONFIG=$(echo "$WATCHER_CONFIG_TEMPLATE" | \ + sed -E "s|REPLACE_WITH_CERC_GQL_SERVER_PATH|\"${CERC_GQL_SERVER_PATH}\"|g; \ + s|REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH|\"${CERC_ETH_RPC_SERVER_PATH}\"|g; \ + s|REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS|${RPC_ENDPOINTS_ARRAY}| ") + +# Write the modified content to a new file +echo "$WATCHER_CONFIG" > environments/local.toml + +echo "Running server..." +DEBUG=vulcanize:* exec node --enable-source-maps dist/server.js diff --git a/stacks/stack-orchestrator/config/watcher-steer-protocol/watcher-config-template.toml b/stacks/stack-orchestrator/config/watcher-steer-protocol/watcher-config-template.toml new file mode 100644 index 0000000..a8406d1 --- /dev/null +++ b/stacks/stack-orchestrator/config/watcher-steer-protocol/watcher-config-template.toml @@ -0,0 +1,121 @@ +[server] + host = "0.0.0.0" + port = 3008 + kind = "active" + + # Checkpointing state. + checkpointing = true + + # Checkpoint interval in number of blocks. + checkpointInterval = 2000 + + # Enable state creation + enableState = false + + subgraphPath = "./subgraph-build" + + # Interval to restart wasm instance periodically + wasmRestartBlocksInterval = 20 + + # Interval in number of blocks at which to clear entities cache. + clearEntitiesCacheInterval = 1000 + + # Flag to specify whether RPC endpoint supports block hash as block tag parameter + rpcSupportsBlockHashParam = false + + # GQL server config + [server.gql] + path = REPLACE_WITH_CERC_GQL_SERVER_PATH + + # Max block range for which to return events in eventsInRange GQL query. + # Use -1 for skipping check on block range. + maxEventsBlockRange = 1000 + + # Log directory for GQL requests + logDir = "./gql-logs" + + # GQL cache settings + [server.gql.cache] + enabled = true + + # Max in-memory cache size (in bytes) (default 8 MB) + # maxCacheSize + + # GQL cache-control max-age settings (in seconds) + maxAge = 15 + timeTravelMaxAge = 86400 # 1 day + + # ETH RPC server config + [server.ethRPC] + enabled = true + path = REPLACE_WITH_CERC_ETH_RPC_SERVER_PATH + + # Max number of logs that can be returned in a single getLogs request (default: 10000) + getLogsResultLimit = 10000 + +[metrics] + host = "0.0.0.0" + port = 9000 + [metrics.gql] + port = 9001 + +[database] + type = "postgres" + host = "steer-protocol-watcher-db" + port = 5432 + database = "steer-protocol-watcher" + username = "vdbm" + password = "password" + synchronize = true + logging = false + +[upstream] + [upstream.ethServer] + rpcProviderEndpoints = REPLACE_WITH_CERC_ETH_RPC_ENDPOINTS + + # Boolean flag to specify if rpc-eth-client should be used for RPC endpoint instead of ipld-eth-client (ipld-eth-server GQL client) + rpcClient = true + + # Boolean flag to specify if rpcProviderEndpoint is an FEVM RPC endpoint + isFEVM = true + + # Boolean flag to filter event logs by contracts + filterLogsByAddresses = true + # Boolean flag to filter event logs by topics + filterLogsByTopics = true + + # Switch clients if eth_getLogs call takes more than threshold (in secs) + # Set to 0 for disabling switching + getLogsClientSwitchThresholdInSecs = 30 + + [upstream.cache] + name = "requests" + enabled = false + deleteOnStart = false + +[jobQueue] + dbConnectionString = "postgres://vdbm:password@steer-protocol-watcher-db/steer-protocol-watcher-job-queue" + maxCompletionLagInSecs = 300 + jobDelayInMilliSecs = 100 + eventsInBatch = 50 + subgraphEventsOrder = true + # Filecoin block time: https://docs.filecoin.io/basics/the-blockchain/blocks-and-tipsets#blocktime + blockDelayInMilliSecs = 30000 + + # Number of blocks by which block processing lags behind head + blockProcessingOffset = 0 + + # Boolean to switch between modes of processing events when starting the server. + # Setting to true will fetch filtered events and required blocks in a range of blocks and then process them. + # Setting to false will fetch blocks consecutively with its events and then process them (Behaviour is followed in realtime processing near head). + useBlockRanges = true + + # Block range in which logs are fetched during historical blocks processing + historicalLogsBlockRange = 2000 + + # Max block range of historical processing after which it waits for completion of events processing + # If set to -1 historical processing does not wait for events processing and completes till latest canonical block + historicalMaxFetchAhead = 10000 + + # Max number of retries to fetch new block after which watcher will failover to other RPC endpoints + maxNewBlockRetries = 3 diff --git a/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/.dockerignore b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/.dockerignore new file mode 100644 index 0000000..6013216 --- /dev/null +++ b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/.dockerignore @@ -0,0 +1 @@ +stacks diff --git a/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/Dockerfile b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/Dockerfile new file mode 100644 index 0000000..6355465 --- /dev/null +++ b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/Dockerfile @@ -0,0 +1,15 @@ +FROM node:18.17.1-alpine3.18 + +RUN apk --update --no-cache add git python3 alpine-sdk bash curl jq + +WORKDIR /app + +COPY . . + +# Get the latest Git commit hash and set in package.json +RUN COMMIT_HASH=$(git rev-parse HEAD) && \ + jq --arg commitHash "$COMMIT_HASH" '.commitHash = $commitHash' package.json > tmp.json && \ + mv tmp.json package.json + +RUN echo "Installing dependencies and building steer-protocol-watcher-ts" && \ + yarn && yarn build diff --git a/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/build.sh b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/build.sh new file mode 100755 index 0000000..79b020f --- /dev/null +++ b/stacks/stack-orchestrator/container-build/cerc-watcher-steer-protocol/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Build cerc/watcher-steer-protocol + +source ${CERC_CONTAINER_BASE_DIR}/build-base.sh +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +docker build -t cerc/watcher-steer-protocol:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/steer-protocol-watcher-ts diff --git a/stacks/stack-orchestrator/stacks/steer-protocol/README.md b/stacks/stack-orchestrator/stacks/steer-protocol/README.md new file mode 100644 index 0000000..51c3f9c --- /dev/null +++ b/stacks/stack-orchestrator/stacks/steer-protocol/README.md @@ -0,0 +1,110 @@ +# SteerProtocol Watcher + +## Clone the stack repo + +```bash +laconic-so fetch-stack git.vdb.to/cerc-io/steer-protocol-watcher-ts +``` + +## Build the container image + +```bash +laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol build-containers +``` + +## Create a spec file for the deployment + +```bash +laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol deploy init --output steer-protocol-spec.yml +``` + +### Ports + +Edit `network` in the spec file to map container ports to host ports as required: + +```yml +... +network: + ports: + steer-protocol-watcher-db: + - 15432:5432 + steer-protocol-watcher-job-runner: + - 9000:9000 + steer-protocol-watcher-server: + - 3008:3008 + - 9001:9001 +``` + +## Create a deployment from the spec file + +```bash +laconic-so --stack ~/cerc/steer-protocol-watcher-ts/stacks/stack-orchestrator/stacks/steer-protocol deploy create --spec-file steer-protocol-spec.yml --deployment-dir steer-protocol-deployment +``` + +### Configuration + +Inside deployment directory, open the `config.env` file and set following env variables: + +```bash +# External Filecoin (ETH RPC) endpoint to point the watcher to +CERC_ETH_RPC_ENDPOINTS=https://example-lotus-endpoint-1/rpc/v1,https://example-lotus-endpoint-2/rpc/v1 + +# GQL path of watcher to set in config (server.gql.path) +CERC_GQL_SERVER_PATH=/graphql + +# ETH RPC path of watcher to set in config (server.ethRPC.path) +CERC_ETH_RPC_SERVER_PATH=/rpc +``` + +## Start the deployment + +```bash +laconic-so deployment --dir steer-protocol-deployment start +``` + +* To list down and monitor the running containers: + + ```bash + # With status + docker ps -a + + # Check logs for a container + docker logs -f + ``` + +* Open the GQL playground at + + ```graphql + # Example query + query { + _meta { + block { + hash + number + timestamp + } + deployment + hasIndexingErrors + } + ``` + +## Clean up + +Stop all the steer-protocol services running in background: + +```bash +# Only stop the docker containers +laconic-so deployment --dir steer-protocol-deployment stop + +# Run 'start' to restart the deployment +``` + +To stop all the steer-protocol services and also delete data: + +```bash +# Stop the docker containers +laconic-so deployment --dir steer-protocol-deployment stop --delete-volumes + +# Remove deployment directory (deployment will have to be recreated for a re-run) +rm -r steer-protocol-deployment +``` diff --git a/stacks/stack-orchestrator/stacks/steer-protocol/stack.yml b/stacks/stack-orchestrator/stacks/steer-protocol/stack.yml new file mode 100644 index 0000000..0e31def --- /dev/null +++ b/stacks/stack-orchestrator/stacks/steer-protocol/stack.yml @@ -0,0 +1,8 @@ +version: "1.0" +name: steer-protocol +description: "SteerProtocol watcher stack" +repos: +containers: + - cerc/watcher-steer-protocol +pods: + - watcher-steer-protocol diff --git a/yarn.lock b/yarn.lock index c738e81..8e56566 100644 --- a/yarn.lock +++ b/yarn.lock @@ -194,10 +194,10 @@ binaryen "101.0.0-nightly.20210723" long "^4.0.0" -"@cerc-io/cache@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.107/cache-0.2.107.tgz#45a8535a02c5753377f43099886d56f71021d3e5" - integrity sha512-qgum0iXoucQ4cu9hYa0NFe15xoN7B6+Y9CyB5XK5Wj5Jd0u3+fYbK7hDplc4KRwfMlrmMoETy7xJsbghOEtr2Q== +"@cerc-io/cache@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.108/cache-0.2.108.tgz#92ed16720bbc542ce5101da5dcd6ad5f82848076" + integrity sha512-oIrIDn5161si5657F0GDyabx8IpUPngur5mplS1vlyVp6SwBzt+rlSM32S26CR0p8kJRwKFEgJDGxU1yxLUcwA== dependencies: canonical-json "^0.0.4" debug "^4.3.1" @@ -205,19 +205,19 @@ fs-extra "^10.0.0" level "^7.0.0" -"@cerc-io/cli@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.107/cli-0.2.107.tgz#9d58b44046c7d5d7898bf9060f696691e744dd72" - integrity sha512-vApmnid5VgxVA2PSUyhJYHWZK6bwqODmhdyLvzg6qoFOFRxp61o5XeNaGHfN5842oAljMcL53ILpBnebJV58jw== +"@cerc-io/cli@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.108/cli-0.2.108.tgz#28dd548114cffbf6bbfa268acafef712236a1948" + integrity sha512-x847X4+6k0JxRDXlkT8xgsBLuF7jDEhlUkEKoihVjQcGPcAAZQ8P1OkkXw56Mo3p/CaoP6oTTsd11CJxuLLN5Q== dependencies: "@apollo/client" "^3.7.1" - "@cerc-io/cache" "^0.2.107" - "@cerc-io/ipld-eth-client" "^0.2.107" + "@cerc-io/cache" "^0.2.108" + "@cerc-io/ipld-eth-client" "^0.2.108" "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4" "@cerc-io/nitro-node" "^0.1.15" - "@cerc-io/peer" "^0.2.107" - "@cerc-io/rpc-eth-client" "^0.2.107" - "@cerc-io/util" "^0.2.107" + "@cerc-io/peer" "^0.2.108" + "@cerc-io/rpc-eth-client" "^0.2.108" + "@cerc-io/util" "^0.2.108" "@ethersproject/providers" "^5.4.4" "@graphql-tools/utils" "^9.1.1" "@ipld/dag-cbor" "^8.0.0" @@ -238,16 +238,16 @@ typeorm "0.2.37" yargs "^17.0.1" -"@cerc-io/graph-node@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.107/graph-node-0.2.107.tgz#55348641235104e12fa2e0194155e08e96b12bee" - integrity sha512-16vVq9CQ2roh7DJ7gHny5xCtWVk7sqfqqoMa75IX+7ua+fj6GcsHIQdEFf21R/8sdGbu/3aJt6lCLtOOnzL4tw== +"@cerc-io/graph-node@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.108/graph-node-0.2.108.tgz#75e4936e26989e075c1c9fb25e5162e384914a3f" + integrity sha512-sSZHfTtswGDOlMGo//ezCdinpZTqcDCdiLVhxCYL2i86xvmS8lir0ho93jmfqUSomHLNZkMODiwtkli+qW8pUg== dependencies: "@apollo/client" "^3.3.19" "@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2" - "@cerc-io/cache" "^0.2.107" - "@cerc-io/ipld-eth-client" "^0.2.107" - "@cerc-io/util" "^0.2.107" + "@cerc-io/cache" "^0.2.108" + "@cerc-io/ipld-eth-client" "^0.2.108" + "@cerc-io/util" "^0.2.108" "@types/json-diff" "^0.5.2" "@types/yargs" "^17.0.0" bn.js "^4.11.9" @@ -264,14 +264,14 @@ typeorm-naming-strategies "^2.0.0" yargs "^17.0.1" -"@cerc-io/ipld-eth-client@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.107/ipld-eth-client-0.2.107.tgz#8bbeeb730b92965b75c42a7760cc95e5481e903a" - integrity sha512-6y/nZrtU7tVsHhqlzpe/iGRVhgZ3yh7hKkpYVnur4LPQHMBdOGa0qW+rD1CDpKs5RuUMqNi6U+bU5UedQeF2lw== +"@cerc-io/ipld-eth-client@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.108/ipld-eth-client-0.2.108.tgz#455bd5d0cbe129ed266a7377246989d68d85a6a3" + integrity sha512-GwfPaWzhmYhPtu0S2vFQe8w9OTIMD007hhLl6myIsOTdHbVJtGj3RpzXQXmvs9NCpOj66YcFhGJ2YbV52hdUXg== dependencies: "@apollo/client" "^3.7.1" - "@cerc-io/cache" "^0.2.107" - "@cerc-io/util" "^0.2.107" + "@cerc-io/cache" "^0.2.108" + "@cerc-io/util" "^0.2.108" cross-fetch "^3.1.4" debug "^4.3.1" ethers "^5.4.4" @@ -394,7 +394,37 @@ lodash "^4.17.21" uint8arrays "^4.0.3" -"@cerc-io/peer@^0.2.107", "@cerc-io/peer@^0.2.65": +"@cerc-io/peer@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.108/peer-0.2.108.tgz#327b86581d6750f21bd22105be0ecb39dcde5b6e" + integrity sha512-ywXetDME6JmfPRiOEI6N1R7j2p0Eo0OWbmumeNVuDhmsrkENwFUDu32PsOp3oomBHndgmcFhGQlppPWFxwUggg== + dependencies: + "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4" + "@cerc-io/prometheus-metrics" "1.1.4" + "@chainsafe/libp2p-gossipsub" "^6.0.0" + "@chainsafe/libp2p-noise" "^11.0.0" + "@chainsafe/libp2p-yamux" "3.0.7" + "@libp2p/floodsub" "^6.0.0" + "@libp2p/mplex" "^7.1.1" + "@libp2p/peer-id-factory" "^2.0.0" + "@libp2p/pubsub-peer-discovery" "^8.0.0" + "@libp2p/websockets" "^5.0.5" + "@multiformats/multiaddr" "^11.1.4" + assert "^2.0.0" + buffer "^6.0.3" + chai "^4.3.4" + debug "^4.3.1" + it-length-prefixed "^8.0.4" + it-map "^2.0.0" + it-pipe "^2.0.5" + it-pushable "^3.1.2" + mocha "^8.4.0" + p-event "^5.0.1" + uint8arrays "^4.0.3" + unique-names-generator "^4.7.1" + yargs "^17.0.1" + +"@cerc-io/peer@^0.2.65": version "0.2.107" resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.107/peer-0.2.107.tgz#4a6d2e1d434a98424bee50433c8bdfd4427884fa" integrity sha512-MJ86pK/s2W3onJYQnKVMHe9nWjQ3hkMRyCgodNXOfCCHJwp/tVTpKak+ddTxdyI5umeUAtG9A0ItHSmrnEY9YQ== @@ -436,23 +466,23 @@ it-stream-types "^1.0.4" promjs "^0.4.2" -"@cerc-io/rpc-eth-client@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.107/rpc-eth-client-0.2.107.tgz#338bf52695da299fc02dc69dcf6f9a0f25609993" - integrity sha512-VuQiozd/h/03LB8sexYkor0yr77TiLmRM/wYGaoFB3WiUj7Zi5/TqO7SEiz1toxNtNCmhhnxu6eSe3m1pyjkXQ== +"@cerc-io/rpc-eth-client@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.108/rpc-eth-client-0.2.108.tgz#1cc68a9296cd21aa7578b89bea8886b46ef986ed" + integrity sha512-+gVTshn0fvEytYkYqwrrlsSQZadw48+vTWTLCx1tbUpMJkCfzFhj9dbzvYV/1FkTkKmAAbrG05Bf7r2elW5Hqw== dependencies: - "@cerc-io/cache" "^0.2.107" - "@cerc-io/ipld-eth-client" "^0.2.107" - "@cerc-io/util" "^0.2.107" + "@cerc-io/cache" "^0.2.108" + "@cerc-io/ipld-eth-client" "^0.2.108" + "@cerc-io/util" "^0.2.108" chai "^4.3.4" ethers "^5.4.4" left-pad "^1.3.0" mocha "^8.4.0" -"@cerc-io/solidity-mapper@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.107/solidity-mapper-0.2.107.tgz#f3abfd4b8d84ff8f7e03449d876e3ea580fa03be" - integrity sha512-7Ow2mlOFP8n9VrEIFcNE4r9qjJpQVwP1GGQ+pyD9TAEZdQ0GYCzDzPZi44ezIr8NCxda3YPcegtPmSegBtCtmA== +"@cerc-io/solidity-mapper@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.108/solidity-mapper-0.2.108.tgz#6a49da90afdcd096cf75ce8c8a15a97130f931eb" + integrity sha512-bT5X4ySqAwoOzMbN7Q+HgpJWTcTLcg2KHdiEbyFXO9jBA2ByKx2jQoCnb5BkDjvF9yGQ1fUiAv5oSVSw8DF4JA== dependencies: dotenv "^10.0.0" @@ -461,15 +491,15 @@ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fts-channel/-/1.0.3-ts-nitro-0.1.1/ts-channel-1.0.3-ts-nitro-0.1.1.tgz#0768781313a167295c0bf21307f47e02dc17e936" integrity sha512-2jFICUSyffuZ+8+qRhXuLSJq4GJ6Y02wxiXoubH0Kzv2lIKkJtWICY1ZQQhtXAvP0ncAQB85WJHqtqwH8l7J3Q== -"@cerc-io/util@^0.2.107": - version "0.2.107" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.107/util-0.2.107.tgz#5f19a2ea9a83bdab8b152cd0143ca6eda990d4f9" - integrity sha512-5iKJweNVvxt+t82eVQrw8EkBVBl9q9oMP8Qju9JrJqJaqqhE7/GGCmveybKt0dO0vYz9BfQtOnBbMRv7JjQV6A== +"@cerc-io/util@^0.2.108": + version "0.2.108" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.108/util-0.2.108.tgz#411aa58ca4694d38b13d8e619cf9707e3b50e073" + integrity sha512-ZslsRMaJ1EiDjy7GpK6iHjzq8a69QTzJe2TIeQBbWXRlsvZ2/Qca8Y39BzfVbgZ6cgnh+hclzwprtitzrqPvwQ== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" "@cerc-io/nitro-node" "^0.1.15" - "@cerc-io/peer" "^0.2.107" - "@cerc-io/solidity-mapper" "^0.2.107" + "@cerc-io/peer" "^0.2.108" + "@cerc-io/solidity-mapper" "^0.2.108" "@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1" "@ethersproject/properties" "^5.7.0" "@ethersproject/providers" "^5.4.4"