From 4783e5ed247bff3e5a712b448cf662369ce7a099 Mon Sep 17 00:00:00 2001 From: Nabarun Gogoi Date: Tue, 21 Nov 2023 16:22:14 +0530 Subject: [PATCH] Upgrade cerc-io dependencies and update watcher (#20) * Remove Indexer method fetchEventsAndSaveBlocks * Add context column to Contract entity * Upgrade cerc-io dependencies * Update package version * Set gqlPath to base URL --------- Co-authored-by: neeraj Co-authored-by: Prathamesh Musale --- environments/local.toml | 1 + package.json | 12 ++--- src/database.ts | 4 +- src/entity/Contract.ts | 3 ++ src/gql/queries/index.ts | 2 +- src/indexer.ts | 43 ++++++++---------- src/resolvers.ts | 16 +++---- src/schema.gql | 26 +++++------ yarn.lock | 94 ++++++++++++++++++++-------------------- 9 files changed, 100 insertions(+), 101 deletions(-) diff --git a/environments/local.toml b/environments/local.toml index 8b5ac91..f108bfa 100644 --- a/environments/local.toml +++ b/environments/local.toml @@ -2,6 +2,7 @@ host = "127.0.0.1" port = 3008 kind = "active" + gqlPath = "/" # Checkpointing state. checkpointing = true diff --git a/package.json b/package.json index 3e513ff..3b7aa7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cerc-io/sushiswap-v3-watcher-ts", - "version": "0.1.2", + "version": "0.1.3", "description": "sushiswap-v3-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.72", - "@cerc-io/ipld-eth-client": "^0.2.72", - "@cerc-io/solidity-mapper": "^0.2.72", - "@cerc-io/util": "^0.2.72", - "@cerc-io/graph-node": "^0.2.72", + "@cerc-io/cli": "^0.2.73", + "@cerc-io/ipld-eth-client": "^0.2.73", + "@cerc-io/solidity-mapper": "^0.2.73", + "@cerc-io/util": "^0.2.73", + "@cerc-io/graph-node": "^0.2.73", "@ethersproject/providers": "^5.4.4", "debug": "^4.3.1", "decimal.js": "^10.3.1", diff --git a/src/database.ts b/src/database.ts index 98df2c9..3612879 100644 --- a/src/database.ts +++ b/src/database.ts @@ -199,10 +199,10 @@ export class Database implements DatabaseInterface { return this._baseDatabase.saveBlockProgress(repo, block); } - async saveContract (queryRunner: QueryRunner, address: string, kind: string, checkpoint: boolean, startingBlock: number): Promise { + async saveContract (queryRunner: QueryRunner, address: string, kind: string, checkpoint: boolean, startingBlock: number, context?: any): Promise { const repo = queryRunner.manager.getRepository(Contract); - return this._baseDatabase.saveContract(repo, address, kind, checkpoint, startingBlock); + return this._baseDatabase.saveContract(repo, address, kind, checkpoint, startingBlock, context); } async updateSyncStatusIndexedBlock (queryRunner: QueryRunner, blockHash: string, blockNumber: number, force = false): Promise { diff --git a/src/entity/Contract.ts b/src/entity/Contract.ts index de66b38..e4defa8 100644 --- a/src/entity/Contract.ts +++ b/src/entity/Contract.ts @@ -21,4 +21,7 @@ export class Contract { @Column('integer') startingBlock!: number; + + @Column('jsonb', { nullable: true }) + context!: Record; } diff --git a/src/gql/queries/index.ts b/src/gql/queries/index.ts index e71ce26..dadceb0 100644 --- a/src/gql/queries/index.ts +++ b/src/gql/queries/index.ts @@ -47,7 +47,7 @@ export const increaseEvent = fs.readFileSync(path.join(__dirname, 'increaseEvent export const increaseEvents = fs.readFileSync(path.join(__dirname, 'increaseEvents.gql'), 'utf8'); export const decreaseEvent = fs.readFileSync(path.join(__dirname, 'decreaseEvent.gql'), 'utf8'); export const decreaseEvents = fs.readFileSync(path.join(__dirname, 'decreaseEvents.gql'), 'utf8'); +export const _meta = fs.readFileSync(path.join(__dirname, '_meta.gql'), 'utf8'); export const getStateByCID = fs.readFileSync(path.join(__dirname, 'getStateByCID.gql'), 'utf8'); export const getState = fs.readFileSync(path.join(__dirname, 'getState.gql'), 'utf8'); export const getSyncStatus = fs.readFileSync(path.join(__dirname, 'getSyncStatus.gql'), 'utf8'); -export const _meta = fs.readFileSync(path.join(__dirname, '_meta.gql'), 'utf8'); diff --git a/src/indexer.ts b/src/indexer.ts index a817deb..522d5fb 100644 --- a/src/indexer.ts +++ b/src/indexer.ts @@ -20,6 +20,7 @@ import { Where, QueryOptions, BlockHeight, + ResultMeta, updateSubgraphState, dumpSubgraphState, GraphWatcherInterface, @@ -31,7 +32,6 @@ import { Clients, EthClient, UpstreamConfig, - ResultMeta, EthFullBlock, EthFullTransaction, ExtraEventData @@ -131,8 +131,6 @@ export class Indexer implements IndexerInterface { this._storageLayoutMap = new Map(); this._contractMap = new Map(); this.eventSignaturesMap = new Map(); - let contractInterface: ethers.utils.Interface; - let eventSignatures: string[]; const { abi: FactoryABI } = FactoryArtifacts; @@ -143,35 +141,35 @@ export class Indexer implements IndexerInterface { assert(FactoryABI); this._abiMap.set(KIND_FACTORY, FactoryABI); - contractInterface = new ethers.utils.Interface(FactoryABI); - this._contractMap.set(KIND_FACTORY, contractInterface); + const FactoryContractInterface = new ethers.utils.Interface(FactoryABI); + this._contractMap.set(KIND_FACTORY, FactoryContractInterface); - eventSignatures = Object.values(contractInterface.events).map(value => { - return contractInterface.getEventTopic(value); + const FactoryEventSignatures = Object.values(FactoryContractInterface.events).map(value => { + return FactoryContractInterface.getEventTopic(value); }); - this.eventSignaturesMap.set(KIND_FACTORY, eventSignatures); + this.eventSignaturesMap.set(KIND_FACTORY, FactoryEventSignatures); assert(NonfungiblePositionManagerABI); this._abiMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerABI); - contractInterface = new ethers.utils.Interface(NonfungiblePositionManagerABI); - this._contractMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, contractInterface); + const NonfungiblePositionManagerContractInterface = new ethers.utils.Interface(NonfungiblePositionManagerABI); + this._contractMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerContractInterface); - eventSignatures = Object.values(contractInterface.events).map(value => { - return contractInterface.getEventTopic(value); + const NonfungiblePositionManagerEventSignatures = Object.values(NonfungiblePositionManagerContractInterface.events).map(value => { + return NonfungiblePositionManagerContractInterface.getEventTopic(value); }); - this.eventSignaturesMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, eventSignatures); + this.eventSignaturesMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerEventSignatures); assert(PoolABI); this._abiMap.set(KIND_POOL, PoolABI); - contractInterface = new ethers.utils.Interface(PoolABI); - this._contractMap.set(KIND_POOL, contractInterface); + const PoolContractInterface = new ethers.utils.Interface(PoolABI); + this._contractMap.set(KIND_POOL, PoolContractInterface); - eventSignatures = Object.values(contractInterface.events).map(value => { - return contractInterface.getEventTopic(value); + const PoolEventSignatures = Object.values(PoolContractInterface.events).map(value => { + return PoolContractInterface.getEventTopic(value); }); - this.eventSignaturesMap.set(KIND_POOL, eventSignatures); + this.eventSignaturesMap.set(KIND_POOL, PoolEventSignatures); this._entityTypesMap = new Map(); this._populateEntityTypesMap(); @@ -351,6 +349,7 @@ export class Indexer implements IndexerInterface { return this._graphWatcher.getEntities(entity, this._relationsMap, block, where, queryOptions, selections); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars async triggerIndexingOnEvent (event: Event, extraData: ExtraEventData): Promise { const resultEvent = this.getResultEvent(event); @@ -471,8 +470,8 @@ export class Indexer implements IndexerInterface { await this._graphWatcher.addContracts(); } - async watchContract (address: string, kind: string, checkpoint: boolean, startingBlock: number): Promise { - return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock); + async watchContract (address: string, kind: string, checkpoint: boolean, startingBlock: number, context?: any): Promise { + return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock, context); } updateStateStatusMap (address: string, stateStatus: StateStatus): void { @@ -562,10 +561,6 @@ export class Indexer implements IndexerInterface { return this._baseIndexer.getBlocksAtHeight(height, isPruned); } - async fetchEventsAndSaveBlocks (blocks: DeepPartial[]): Promise<{ blockProgress: BlockProgress, events: DeepPartial[] }[]> { - return this._baseIndexer.fetchEventsAndSaveBlocks(blocks, this.eventSignaturesMap, this.parseEventNameAndArgs.bind(this)); - } - async fetchAndSaveFilteredEventsAndBlocks (startBlock: number, endBlock: number): Promise<{ blockProgress: BlockProgress, events: DeepPartial[], diff --git a/src/resolvers.ts b/src/resolvers.ts index 839faa1..bd8d59d 100644 --- a/src/resolvers.ts +++ b/src/resolvers.ts @@ -1011,14 +1011,6 @@ export const createResolvers = async (indexerArg: IndexerInterface, eventWatcher return state && state.block.isComplete ? getResultState(state) : undefined; }, - getSyncStatus: async () => { - log('getSyncStatus'); - gqlTotalQueryCount.inc(1); - gqlQueryCount.labels('getSyncStatus').inc(1); - - return indexer.getSyncStatus(); - }, - _meta: async ( _: any, { block = {} }: { block: BlockHeight } @@ -1028,6 +1020,14 @@ export const createResolvers = async (indexerArg: IndexerInterface, eventWatcher gqlQueryCount.labels('_meta').inc(1); return indexer.getMetaData(block); + }, + + getSyncStatus: async () => { + log('getSyncStatus'); + gqlTotalQueryCount.inc(1); + gqlQueryCount.labels('getSyncStatus').inc(1); + + return indexer.getSyncStatus(); } } }; diff --git a/src/schema.gql b/src/schema.gql index 1ec4efa..01dfea0 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -4654,6 +4654,18 @@ input DecreaseEvent_filter { or: [DecreaseEvent_filter] } +type _MetaBlock_ { + hash: Bytes + number: Int! + timestamp: Int +} + +type _Meta_ { + block: _MetaBlock_! + deployment: String! + hasIndexingErrors: Boolean! +} + type ResultState { block: _Block_! contractAddress: String! @@ -4669,18 +4681,6 @@ type SyncStatus { latestCanonicalBlockNumber: Int! } -type _MetaBlock_ { - hash: Bytes - number: Int! - timestamp: Int -} - -type _Meta_ { - block: _MetaBlock_! - deployment: String! - hasIndexingErrors: Boolean! -} - type Query { events(blockHash: String!, contractAddress: String!, name: String): [ResultEvent!] eventsInRange(fromBlockNumber: Int!, toBlockNumber: Int!): [ResultEvent!] @@ -4728,10 +4728,10 @@ type Query { increaseEvents(block: Block_height, where: IncreaseEvent_filter, orderBy: IncreaseEvent_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [IncreaseEvent!]! decreaseEvent(id: ID!, block: Block_height): DecreaseEvent decreaseEvents(block: Block_height, where: DecreaseEvent_filter, orderBy: DecreaseEvent_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [DecreaseEvent!]! + _meta(block: Block_height): _Meta_ getStateByCID(cid: String!): ResultState getState(blockHash: String!, contractAddress: String!, kind: String): ResultState getSyncStatus: SyncStatus - _meta(block: Block_height): _Meta_ } type Factory { diff --git a/yarn.lock b/yarn.lock index ee6c1b4..5ff0d01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -175,10 +175,10 @@ binaryen "101.0.0-nightly.20210723" long "^4.0.0" -"@cerc-io/cache@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.72/cache-0.2.72.tgz#5d879171cdc8638b562b76384c7a6b80e128f3be" - integrity sha512-8/Q4guOlxFv6mur8ZddkwXDntHQ1TCi0IdLVNbzYz4X5rDsyYGwOna7XCf3/c1xN4BjcYzan5Zau0K+E/n8r/A== +"@cerc-io/cache@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.73/cache-0.2.73.tgz#62a79484968d3fda8a6805608d664fb025014eb1" + integrity sha512-T+TKQJuuIdi+es1bOc4a/dN3v64RN67vRxA12FggKnwTIrSmzmvc+zq3vlM9JjvuTrj8TCVZ7iq3YKi4E00Ktg== dependencies: canonical-json "^0.0.4" debug "^4.3.1" @@ -186,19 +186,19 @@ fs-extra "^10.0.0" level "^7.0.0" -"@cerc-io/cli@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.72/cli-0.2.72.tgz#d0d57ddc5cbdedee5165de89d4786bfbfdec12b3" - integrity sha512-Ve7yB/BRcpon/G7Hq5LQJqNVwx8jsJ4SZjdRMEgrsoelRq6wLXDFfCfcgp6RbE/HVMqyOIpAxuN/+JVaVPjOUg== +"@cerc-io/cli@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.73/cli-0.2.73.tgz#9b8f31f827d5137af5d16a4d95958e6c30ded7d5" + integrity sha512-6dvDSL3fcXPXg46BeWR6iIgmqtSkXBryHx5mObLTsaWzEemyWkDBja4v7NhJr92pkkGANTbZ6wsyXK7CX4RKnQ== dependencies: "@apollo/client" "^3.7.1" - "@cerc-io/cache" "^0.2.72" - "@cerc-io/ipld-eth-client" "^0.2.72" + "@cerc-io/cache" "^0.2.73" + "@cerc-io/ipld-eth-client" "^0.2.73" "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4" "@cerc-io/nitro-node" "^0.1.15" - "@cerc-io/peer" "^0.2.72" - "@cerc-io/rpc-eth-client" "^0.2.72" - "@cerc-io/util" "^0.2.72" + "@cerc-io/peer" "^0.2.73" + "@cerc-io/rpc-eth-client" "^0.2.73" + "@cerc-io/util" "^0.2.73" "@ethersproject/providers" "^5.4.4" "@graphql-tools/utils" "^9.1.1" "@ipld/dag-cbor" "^8.0.0" @@ -214,16 +214,16 @@ typeorm "0.2.37" yargs "^17.0.1" -"@cerc-io/graph-node@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.72/graph-node-0.2.72.tgz#b6c9e491cbed5b9dfd51eee930627b1cafff627e" - integrity sha512-aKA22gr5BoZ3L1+tNDa17hwNDFiUZnKe61d98Zadhhqe7cM3U4i9KKdf1vyLSebc2WnA8jjDAM0K0y+ljy1l5g== +"@cerc-io/graph-node@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.73/graph-node-0.2.73.tgz#ed6a612d7286e83eaed196950e8bc3969e0aa5d8" + integrity sha512-6KBpOjWLe7VeErRGLD6+eIj+ob9fY6XroYc4k4YsvTbKsgLTXnqb4WJfCcR+zLH8ss8+OWtSzzxT9uBVuUWxOA== dependencies: "@apollo/client" "^3.3.19" "@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2" - "@cerc-io/cache" "^0.2.72" - "@cerc-io/ipld-eth-client" "^0.2.72" - "@cerc-io/util" "^0.2.72" + "@cerc-io/cache" "^0.2.73" + "@cerc-io/ipld-eth-client" "^0.2.73" + "@cerc-io/util" "^0.2.73" "@types/json-diff" "^0.5.2" "@types/yargs" "^17.0.0" bn.js "^4.11.9" @@ -240,14 +240,14 @@ typeorm-naming-strategies "^2.0.0" yargs "^17.0.1" -"@cerc-io/ipld-eth-client@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.72/ipld-eth-client-0.2.72.tgz#5d629e692d962b11ef8313b710ea375e2ed265ef" - integrity sha512-E1bjoq4LR/H/WaU0hanExy2vXmMEJ5H+icFYO9a1QgpZXQaKhiqsNRoAlBxmHISp48pbB1AWOXFKFlW6vkZ4lQ== +"@cerc-io/ipld-eth-client@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.73/ipld-eth-client-0.2.73.tgz#8508869323a215ce40ffdd14d62752db689833f4" + integrity sha512-5J98rZnb/QJIXCwtMMmwYZkZhnFKxZcYKQATH9pxbOKesJiZO9Fd22ja8mBOH+9Xa+FL6v7IxyW4hW8EYDmlPQ== dependencies: "@apollo/client" "^3.7.1" - "@cerc-io/cache" "^0.2.72" - "@cerc-io/util" "^0.2.72" + "@cerc-io/cache" "^0.2.73" + "@cerc-io/util" "^0.2.73" cross-fetch "^3.1.4" debug "^4.3.1" ethers "^5.4.4" @@ -400,10 +400,10 @@ unique-names-generator "^4.7.1" yargs "^17.0.1" -"@cerc-io/peer@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.72/peer-0.2.72.tgz#7f9bb2dae59dac2359dbce98bf3c5db12247217a" - integrity sha512-3C0oalGvJsKaK7tT7sUuD2FTYHiCJ7JmpRYX8xvscplOz8gTM95EX6OtDlWobYwNWYmf0sIkvVUIW+PKlVeRAw== +"@cerc-io/peer@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.73/peer-0.2.73.tgz#cbb7fb2ae71e09e766a1559c3f2babaae2aa0351" + integrity sha512-kzOWUnvCrql3/E7IWKWJCA7hPCyTtUDpIdLhqawD2QciWnrAmKGevaHkogwRxJZ8k4DxqAHlqWSRoBt6AWMckA== dependencies: "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4" "@cerc-io/prometheus-metrics" "1.1.4" @@ -442,23 +442,23 @@ it-stream-types "^1.0.4" promjs "^0.4.2" -"@cerc-io/rpc-eth-client@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.72/rpc-eth-client-0.2.72.tgz#171625916717839452467d75ea5d6f0a5aa43d01" - integrity sha512-iOOJO4mauhz1An4Pp2XvZwWVSuLnJDUp2hk3zoyCOjL8uOh4mpe77ORUuQ1fScw/RfzehKpDPxp9suXRCA94dw== +"@cerc-io/rpc-eth-client@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.73/rpc-eth-client-0.2.73.tgz#05c657142be33a8dba46b21ee5eef8f31d14d342" + integrity sha512-oQxq9OaEy7sctINOxQ5Yl42a0GROKu2uNXReRA3ER0vTJ5Co6SiotXkUWGo3OdQKLCR5GeaiABdgAo3HHjoUhQ== dependencies: - "@cerc-io/cache" "^0.2.72" - "@cerc-io/ipld-eth-client" "^0.2.72" - "@cerc-io/util" "^0.2.72" + "@cerc-io/cache" "^0.2.73" + "@cerc-io/ipld-eth-client" "^0.2.73" + "@cerc-io/util" "^0.2.73" chai "^4.3.4" ethers "^5.4.4" left-pad "^1.3.0" mocha "^8.4.0" -"@cerc-io/solidity-mapper@^0.2.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.72/solidity-mapper-0.2.72.tgz#8193f52b06a1fd014996ca800e0192025ea3078d" - integrity sha512-qG+tjt6VSsLsaJDIjQU+gDv2kjPLICiTPoxO5WioeR90Ule8BreQxYwpBFNYMyFsVRoJyof5KT3Z5dHkgNTlFg== +"@cerc-io/solidity-mapper@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.73/solidity-mapper-0.2.73.tgz#5ed3bbface3e872d65621ee333a75867411329e3" + integrity sha512-J5qgNdHpbq2I9NevjlUsxqv3zS+397ksA2GNKewnvgqQwS2tbr7WAIO3aLCvOYpqIgg9287ehqSw5RmCLR2kvw== dependencies: dotenv "^10.0.0" @@ -467,15 +467,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.72": - version "0.2.72" - resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.72/util-0.2.72.tgz#39067ed99399394047f3cb69933dac542e0e6944" - integrity sha512-isx0D5t3AvhRSVE9FmN9mX5Yr2VlSDAzPCqXQoH2bcuxT5tyo5VPY7oOCW1TbluMemuZN3We46e9WBwtnOLhVg== +"@cerc-io/util@^0.2.73": + version "0.2.73" + resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.73/util-0.2.73.tgz#30f964bf447860bcc9c646884a60b4108999ca80" + integrity sha512-iI22V9AyMX10BEKK6qHXaLrOh5t3xuq+ks5JOWKy7kDfDf4z1aUJMe7iemAZ4//zFr/9Sjkdo2YxckQhLM/vuQ== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" "@cerc-io/nitro-node" "^0.1.15" - "@cerc-io/peer" "^0.2.72" - "@cerc-io/solidity-mapper" "^0.2.72" + "@cerc-io/peer" "^0.2.73" + "@cerc-io/solidity-mapper" "^0.2.73" "@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1" "@ethersproject/properties" "^5.7.0" "@ethersproject/providers" "^5.4.4"