Compare commits

..

No commits in common. "main" and "filecoin-calibration" have entirely different histories.

8 changed files with 103 additions and 137 deletions

View File

@ -2,7 +2,7 @@
## Source
* Subgraph: [secured-finance-subgraph v0.1.2-watcher-0.1.1](https://github.com/cerc-io/secured-finance-subgraph/releases/tag/v0.1.2-watcher-0.1.1)
* Subgraph: [secured-finance-subgraph v0.1.1](https://github.com/cerc-io/secured-finance-subgraph/releases/tag/v0.1.1)
## Setup
@ -12,12 +12,6 @@
yarn
```
* Run build:
```bash
yarn build
```
* Create a postgres12 database for the watcher:
```bash

View File

@ -78,10 +78,6 @@
# 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 = 0
[upstream.cache]
name = "requests"
enabled = false

View File

@ -1,6 +1,6 @@
{
"name": "@cerc-io/secured-finance-watcher-ts",
"version": "0.1.4",
"version": "0.1.1",
"description": "secured-finance-watcher-ts",
"private": true,
"main": "dist/index.js",
@ -39,11 +39,11 @@
"homepage": "https://github.com/cerc-io/watcher-ts#readme",
"dependencies": {
"@apollo/client": "^3.3.19",
"@cerc-io/cli": "^0.2.106",
"@cerc-io/ipld-eth-client": "^0.2.106",
"@cerc-io/solidity-mapper": "^0.2.106",
"@cerc-io/util": "^0.2.106",
"@cerc-io/graph-node": "^0.2.106",
"@cerc-io/cli": "^0.2.98",
"@cerc-io/ipld-eth-client": "^0.2.98",
"@cerc-io/solidity-mapper": "^0.2.98",
"@cerc-io/util": "^0.2.98",
"@cerc-io/graph-node": "^0.2.98",
"@ethersproject/providers": "^5.4.4",
"debug": "^4.3.1",
"decimal.js": "^10.3.1",

View File

@ -5,7 +5,7 @@
import { Entity, PrimaryGeneratedColumn, Column, Index } from 'typeorm';
@Entity()
@Index(['address', 'kind'], { unique: true })
@Index(['address'], { unique: true })
export class Contract {
@PrimaryGeneratedColumn()
id!: number;

View File

@ -5,10 +5,11 @@
import assert from 'assert';
import { DeepPartial, FindConditions, FindManyOptions, ObjectLiteral } from 'typeorm';
import debug from 'debug';
import { ethers, constants, providers } from 'ethers';
import { ethers, constants } from 'ethers';
import { GraphQLResolveInfo } from 'graphql';
import { JsonFragment } from '@ethersproject/abi';
import { BaseProvider } from '@ethersproject/providers';
import { MappingKey, StorageLayout } from '@cerc-io/solidity-mapper';
import {
Indexer as BaseIndexer,
@ -35,7 +36,6 @@ import {
EthFullTransaction,
ExtraEventData
} from '@cerc-io/util';
import { initClients } from '@cerc-io/cli';
import { GraphWatcher } from '@cerc-io/graph-node';
import LendingMarketOperationLogicArtifacts from './artifacts/LendingMarketOperationLogic.json';
@ -85,7 +85,7 @@ const KIND_ORDERBOOKLOGIC = 'OrderBookLogic';
export class Indexer implements IndexerInterface {
_db: Database;
_ethClient: EthClient;
_ethProvider: providers.JsonRpcProvider;
_ethProvider: BaseProvider;
_baseIndexer: BaseIndexer;
_serverConfig: ServerConfig;
_upstreamConfig: UpstreamConfig;
@ -108,7 +108,7 @@ export class Indexer implements IndexerInterface {
},
db: DatabaseInterface,
clients: Clients,
ethProvider: providers.JsonRpcProvider,
ethProvider: BaseProvider,
jobQueue: JobQueue,
graphWatcher?: GraphWatcherInterface
) {
@ -237,17 +237,13 @@ export class Indexer implements IndexerInterface {
await this._baseIndexer.fetchStateStatus();
}
async switchClients (): Promise<void> {
const { ethClient, ethProvider } = await this._baseIndexer.switchClients(initClients);
switchClients ({ ethClient, ethProvider }: { ethClient: EthClient, ethProvider: BaseProvider }): void {
this._ethClient = ethClient;
this._ethProvider = ethProvider;
this._baseIndexer.switchClients({ ethClient, ethProvider });
this._graphWatcher.switchClients({ ethClient, ethProvider });
}
async isGetLogsRequestsSlow (): Promise<boolean> {
return this._baseIndexer.isGetLogsRequestsSlow();
}
async getMetaData (block: BlockHeight): Promise<ResultMeta | null> {
return this._baseIndexer.getMetaData(block);
}
@ -435,27 +431,23 @@ export class Indexer implements IndexerInterface {
console.timeEnd('time:indexer#processBlockAfterEvents-dump_subgraph_state');
}
parseEventNameAndArgs (watchedContracts: Contract[], logObj: any): { eventParsed: boolean, eventDetails: any } {
parseEventNameAndArgs (kind: string, logObj: any): { eventParsed: boolean, eventDetails: any } {
const { topics, data } = logObj;
let logDescription: ethers.utils.LogDescription | undefined;
for (const watchedContract of watchedContracts) {
const contract = this._contractMap.get(watchedContract.kind);
assert(contract);
const contract = this._contractMap.get(kind);
assert(contract);
try {
logDescription = contract.parseLog({ data, topics });
break;
} catch (err) {
// Continue loop only if no matching event found
if (!((err as Error).message.includes('no matching event'))) {
throw err;
}
let logDescription: ethers.utils.LogDescription;
try {
logDescription = contract.parseLog({ data, topics });
} catch (err) {
// Return if no matching event found
if ((err as Error).message.includes('no matching event')) {
log(`WARNING: Skipping event for contract ${kind} as no matching event found in the ABI`);
return { eventParsed: false, eventDetails: {} };
}
}
if (!logDescription) {
return { eventParsed: false, eventDetails: {} };
throw err;
}
const { eventName, eventInfo, eventSignature } = this._baseIndexer.parseEvent(logDescription);
@ -559,8 +551,8 @@ export class Indexer implements IndexerInterface {
return this._baseIndexer.getEventsByFilter(blockHash, contract, name);
}
isContractAddressWatched (address : string): Contract[] | undefined {
return this._baseIndexer.isContractAddressWatched(address);
isWatchedContract (address : string): Contract | undefined {
return this._baseIndexer.isWatchedContract(address);
}
getWatchedContracts (): Contract[] {
@ -587,10 +579,6 @@ export class Indexer implements IndexerInterface {
return this._baseIndexer.getBlocks(blockFilter);
}
async getBlockByHash (blockHash?: string): Promise<{ block: any }> {
return this._baseIndexer.getBlockByHash(blockHash);
}
async updateSyncStatusIndexedBlock (blockHash: string, blockNumber: number, force = false): Promise<SyncStatus> {
return this._baseIndexer.updateSyncStatusIndexedBlock(blockHash, blockNumber, force);
}
@ -830,7 +818,6 @@ export class Indexer implements IndexerInterface {
});
}
// eslint-disable-next-line @typescript-eslint/no-empty-function
_populateRelationsMap (): void {
this._relationsMap.set(Transaction, {
user: {
@ -970,18 +957,7 @@ export class Indexer implements IndexerInterface {
assert(blockHash);
assert(blockNumber);
let dbEvents: DeepPartial<Event>[] = [];
let transactions: EthFullTransaction[] = [];
// Fetch events and txs only if subgraph config has any event handlers
if (this._graphWatcher.eventHandlerExists) {
({ events: dbEvents, transactions } = await this._baseIndexer.fetchEvents(
blockHash,
blockNumber,
this.eventSignaturesMap,
this.parseEventNameAndArgs.bind(this)
));
}
const { events: dbEvents, transactions } = await this._baseIndexer.fetchEvents(blockHash, blockNumber, this.eventSignaturesMap, this.parseEventNameAndArgs.bind(this));
const dbTx = await this._db.createTransactionRunner();
try {

View File

@ -1632,14 +1632,14 @@ type User {
id: ID!
createdAt: BigInt!
transactionCount: BigInt!
transactions (where: Transaction_filter, orderBy: Transaction_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Transaction!]!
transactions: [Transaction!]!
orderCount: BigInt!
orders (where: Order_filter, orderBy: Order_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Order!]!
orders: [Order!]!
liquidationCount: BigInt!
liquidations (where: Liquidation_filter, orderBy: Liquidation_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Liquidation!]!
liquidations: [Liquidation!]!
transferCount: BigInt!
transfers (where: Transfer_filter, orderBy: Transfer_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Transfer!]!
deposits (where: Deposit_filter, orderBy: Deposit_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Deposit!]!
transfers: [Transfer!]!
deposits: [Deposit!]!
}
type Order {
@ -1657,7 +1657,7 @@ type Order {
lendingMarket: LendingMarket!
isPreOrder: Boolean!
type: OrderType!
transactions (where: Transaction_filter, orderBy: Transaction_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Transaction!]!
transactions: [Transaction!]!
isCircuitBreakerTriggered: Boolean!
createdAt: BigInt!
blockNumber: BigInt!
@ -1669,10 +1669,10 @@ type LendingMarket {
currency: Bytes!
maturity: BigInt!
isActive: Boolean!
transactions (where: Transaction_filter, orderBy: Transaction_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Transaction!]!
orders (where: Order_filter, orderBy: Order_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Order!]!
transactions: [Transaction!]!
orders: [Order!]!
volume: BigInt!
dailyVolume (where: DailyVolume_filter, orderBy: DailyVolume_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [DailyVolume!]!
dailyVolume: [DailyVolume!]!
openingUnitPrice: BigInt!
lastLendUnitPrice: BigInt!
lastBorrowUnitPrice: BigInt!

View File

@ -5,11 +5,11 @@ schema:
dataSources:
- kind: ethereum
name: LendingMarketOperationLogic
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: LendingMarketController
address: "0x35e9D8e0223A75E51a67aa731127C91Ea0779Fe2"
startBlock: 3998055
address: "0x015528f1c2D7676bFf39d50a6c5a2686E68e3376"
startBlock: 1576704
mapping:
kind: ethereum/events
apiVersion: 0.0.7
@ -30,11 +30,11 @@ dataSources:
file: LendingMarketOperationLogic/LendingMarketOperationLogic.wasm
- kind: ethereum
name: TokenVault
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: TokenVault
address: "0xB74749b2213916b1dA3b869E41c7c57f1db69393"
startBlock: 3998059
address: "0xc02Cf07B04B6AA45716BdC3D23656Ac55f70bdf5"
startBlock: 1576708
mapping:
kind: ethereum/events
apiVersion: 0.0.7
@ -52,11 +52,11 @@ dataSources:
file: TokenVault/TokenVault.wasm
- kind: ethereum
name: FundManagementLogic
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: LendingMarketController
address: "0x35e9D8e0223A75E51a67aa731127C91Ea0779Fe2"
startBlock: 3998055
address: "0x015528f1c2D7676bFf39d50a6c5a2686E68e3376"
startBlock: 1576704
mapping:
kind: ethereum/events
apiVersion: 0.0.7
@ -74,11 +74,11 @@ dataSources:
file: FundManagementLogic/FundManagementLogic.wasm
- kind: ethereum
name: LiquidationLogic
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: LendingMarketController
address: "0x35e9D8e0223A75E51a67aa731127C91Ea0779Fe2"
startBlock: 3998055
address: "0x015528f1c2D7676bFf39d50a6c5a2686E68e3376"
startBlock: 1576704
mapping:
kind: ethereum/events
apiVersion: 0.0.7
@ -96,7 +96,7 @@ dataSources:
templates:
- kind: ethereum
name: OrderActionLogic
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: OrderActionLogic
mapping:
@ -128,7 +128,7 @@ templates:
file: templates/OrderActionLogic/OrderActionLogic.wasm
- kind: ethereum
name: OrderBookLogic
network: filecoin-mainnet
network: filecoin-testnet
source:
abi: OrderBookLogic
mapping:

102
yarn.lock
View File

@ -194,10 +194,10 @@
binaryen "101.0.0-nightly.20210723"
long "^4.0.0"
"@cerc-io/cache@^0.2.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.106/cache-0.2.106.tgz#00075d50433421af71639e527d7d6af1320b0150"
integrity sha512-vIHhkKLSaAq9EZp14fTWkb/kbervdt3FDxY3+WOP2qwSvppxiJk8Mvyyt5wmc4Yu0SHWKmdKpRohsF1vrH1DYg==
"@cerc-io/cache@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.98/cache-0.2.98.tgz#acbd54b0e3b0379652020f3dac832ed04cf392dc"
integrity sha512-scrDlufZIs0DDehEUL+eaab4Rz2r4G2fgvy2USeY3AnItreXMgUwTUAR7pXqh3FOCuj9crNfysH09Et+49/F/w==
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.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.106/cli-0.2.106.tgz#4711979a23e6a1ab371a76072c1e607b624d0657"
integrity sha512-a9HcukYuW73dCdLaGejjSL84u2h/xVkNCVlAYCkFMEY/CZ171lh5OloVkSUaogrQpng+/IinaXP1UXdnM58aQA==
"@cerc-io/cli@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.98/cli-0.2.98.tgz#b29046fe48260e3e465c240d0aa64da84ad2338d"
integrity sha512-d79Gm3YOLn+CEidPBHaQhm1zu873O75LnFyH7fbIOubC4cBDWQk+RdH5U+8jU4b54EPZeVRotSoo7rQ5V8HsDg==
dependencies:
"@apollo/client" "^3.7.1"
"@cerc-io/cache" "^0.2.106"
"@cerc-io/ipld-eth-client" "^0.2.106"
"@cerc-io/cache" "^0.2.98"
"@cerc-io/ipld-eth-client" "^0.2.98"
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
"@cerc-io/nitro-node" "^0.1.15"
"@cerc-io/peer" "^0.2.106"
"@cerc-io/rpc-eth-client" "^0.2.106"
"@cerc-io/util" "^0.2.106"
"@cerc-io/peer" "^0.2.98"
"@cerc-io/rpc-eth-client" "^0.2.98"
"@cerc-io/util" "^0.2.98"
"@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.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.106/graph-node-0.2.106.tgz#ad78cad7808803612df1ece681d3f543a095dc20"
integrity sha512-T5WuAuFUZP+EMVG7B22YgUHXxQzxCByU1u6gpvESVZsPOQIUn75/4LQpAvVfw/l71DDDHTCrG0KfadTvCnCz+A==
"@cerc-io/graph-node@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.98/graph-node-0.2.98.tgz#06b7eb0feb1e1c4ae4e203b6007b8f0c0ac3c218"
integrity sha512-6PGVnPyRihW1f+yyU2TL61ALnsVN1f5MffmHxiJ+Co02F5t/RP7sfYjJPdT63S+W6mlwpnnmGyX0LuklOXpezQ==
dependencies:
"@apollo/client" "^3.3.19"
"@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2"
"@cerc-io/cache" "^0.2.106"
"@cerc-io/ipld-eth-client" "^0.2.106"
"@cerc-io/util" "^0.2.106"
"@cerc-io/cache" "^0.2.98"
"@cerc-io/ipld-eth-client" "^0.2.98"
"@cerc-io/util" "^0.2.98"
"@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.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.106/ipld-eth-client-0.2.106.tgz#fa48bfa20ed89f0e462676b69f14aff5e612f53f"
integrity sha512-YVGfnyu3dQRLJZvk7zKt/DAB8N5oYpSTizwTY4rrPIY/F5Www/XEEGb2s95JpWtkGc3qqw9EhWYYTGn7FMmXRQ==
"@cerc-io/ipld-eth-client@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.98/ipld-eth-client-0.2.98.tgz#c1a7128be1e81fb4d1ec9a9888b7e5e94ae710ac"
integrity sha512-qCnz7foqf+9+X/zEGAu5HGXlvzNwahcsKu6Rtreh8bxhR5VTuuF3KrEeFcQeL1Bhv5+w7KXs5I+ivEgo4ZvHSA==
dependencies:
"@apollo/client" "^3.7.1"
"@cerc-io/cache" "^0.2.106"
"@cerc-io/util" "^0.2.106"
"@cerc-io/cache" "^0.2.98"
"@cerc-io/util" "^0.2.98"
cross-fetch "^3.1.4"
debug "^4.3.1"
ethers "^5.4.4"
@ -394,10 +394,10 @@
lodash "^4.17.21"
uint8arrays "^4.0.3"
"@cerc-io/peer@^0.2.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.106/peer-0.2.106.tgz#be00031cfda26995299229f93217d124204fdb1a"
integrity sha512-RGGZZJSgOjHTtdpcB78S/Vdv8gbJsuB8JbXAB38ujpitVHq/vX2V0aRoaBZl248DuGUxLN0lMMeJiYqEFNvtjA==
"@cerc-io/peer@^0.2.65":
version "0.2.90"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.90/peer-0.2.90.tgz#4507ab3d793b7c4e35af26f26470e2770aac6319"
integrity sha512-jrmbjJBXwrSYOqNkXaaAh2J30gVKV+4vXnZAiPYbpl6Tlo72iJOwWAzJLXJej48NNCkJkdpXkuxcsQZtsW90mQ==
dependencies:
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
"@cerc-io/prometheus-metrics" "1.1.4"
@ -424,10 +424,10 @@
unique-names-generator "^4.7.1"
yargs "^17.0.1"
"@cerc-io/peer@^0.2.65":
version "0.2.90"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.90/peer-0.2.90.tgz#4507ab3d793b7c4e35af26f26470e2770aac6319"
integrity sha512-jrmbjJBXwrSYOqNkXaaAh2J30gVKV+4vXnZAiPYbpl6Tlo72iJOwWAzJLXJej48NNCkJkdpXkuxcsQZtsW90mQ==
"@cerc-io/peer@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.98/peer-0.2.98.tgz#650c771be2a3767456f38c93cb86e6667f2867ec"
integrity sha512-b8sCTzFxfTgrlscNutBzML0y4rzkZvzjCpHDEp3P4fMRHIK9SM5o8yYaPS9g1NwoedjbLKCnCDrmaIGpLEbmqA==
dependencies:
"@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
"@cerc-io/prometheus-metrics" "1.1.4"
@ -466,23 +466,23 @@
it-stream-types "^1.0.4"
promjs "^0.4.2"
"@cerc-io/rpc-eth-client@^0.2.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.106/rpc-eth-client-0.2.106.tgz#c9c506c43f2865020bb93acec77fb512689648bc"
integrity sha512-/M9U1e2Wjm97bQyNYHsQrapNKA7KUzIFQQx/A8cN/wblMC3Ihe4rcV5eqdfT+ucKT47KoE4JVpCy1wKdJxRPVg==
"@cerc-io/rpc-eth-client@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.98/rpc-eth-client-0.2.98.tgz#005546cf25a245e60fa00b0c972239748ac1c29e"
integrity sha512-SjR621w5WxrhLsXyy17mTXo1UwvcPz9QPL4/mwQcwsvzDXoFff1bgxR7UGKInQG5QzGgwTJjAaozVqxQA1X3+g==
dependencies:
"@cerc-io/cache" "^0.2.106"
"@cerc-io/ipld-eth-client" "^0.2.106"
"@cerc-io/util" "^0.2.106"
"@cerc-io/cache" "^0.2.98"
"@cerc-io/ipld-eth-client" "^0.2.98"
"@cerc-io/util" "^0.2.98"
chai "^4.3.4"
ethers "^5.4.4"
left-pad "^1.3.0"
mocha "^8.4.0"
"@cerc-io/solidity-mapper@^0.2.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.106/solidity-mapper-0.2.106.tgz#758afe7c2b0f207d618ad05a2419cc2e4e1f967e"
integrity sha512-yhiOaozk52pFlpejUFjwk8wGrcFo8naJ4cMdYNVAjjnc2T1ANRVR1zOi07g3ylZI+lr86+c+sm5ySac5CCMT3Q==
"@cerc-io/solidity-mapper@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.98/solidity-mapper-0.2.98.tgz#6fc8dfcaf872e31964a6cca1ea9fbd7900119f8a"
integrity sha512-RmGmcgN0fZEZU0r4q14qPm2hVHUK/OQVPIEgyLEbcStHXupYLaTn79li1WpURI7yeVuJ7mFVaauviWA2DeG7dw==
dependencies:
dotenv "^10.0.0"
@ -491,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.106":
version "0.2.106"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.106/util-0.2.106.tgz#65265c0b4b6078ca9bc765584f701ee52df71dc4"
integrity sha512-OgcdveALMLDmt7uK9btim7UrHapw5uAS6p/uJKFaXxdfXI7NFnAW+Vz1YD6M25qoGkbxFsdLWorccTnvUuoqtw==
"@cerc-io/util@^0.2.98":
version "0.2.98"
resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.98/util-0.2.98.tgz#0bed961a20d43c8973d5b86b400086caa76d2d0a"
integrity sha512-s1St/bD9OjD3NIfx3gj1tDELgpiyxGl6le3mCs77jHM4KbEHW7pFjhe/5YsLXRvc5cIHwNsrCdOuSAIyVUtC2Q==
dependencies:
"@apollo/utils.keyvaluecache" "^1.0.1"
"@cerc-io/nitro-node" "^0.1.15"
"@cerc-io/peer" "^0.2.106"
"@cerc-io/solidity-mapper" "^0.2.106"
"@cerc-io/peer" "^0.2.98"
"@cerc-io/solidity-mapper" "^0.2.98"
"@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
"@ethersproject/properties" "^5.7.0"
"@ethersproject/providers" "^5.4.4"