diff --git a/.dockerignore b/.dockerignore new file mode 120000 index 0000000..3e4e48b --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.gitignore \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6456dc6..a7425ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# .dockerignore is a symbolic link to .gitignore .bin .vscode build diff --git a/docker-compose.test.yaml b/docker-compose.test.yaml new file mode 100644 index 0000000..435ad75 --- /dev/null +++ b/docker-compose.test.yaml @@ -0,0 +1,10 @@ +version: '3.4' +services: + matchstick: + image: cartesi/subgraph-matchstick:dev + build: + dockerfile: tests/.docker + target: base + container_name: cartesi-subgraph-matchstick + volumes: + - .:/matchstick diff --git a/package.json b/package.json index 85391b5..fb72f33 100644 --- a/package.json +++ b/package.json @@ -27,16 +27,18 @@ "prepare:kovan": "hardhat --network kovan subgraph --input-file subgraph.testnet.template.yaml --output-file subgraph.kovan.yaml", "prepare:mainnet": "hardhat --network mainnet subgraph", "prettier": "prettier --check **/*.ts", - "test": "graph test" + "test": "graph test", + "test:docker": "docker-compose -f docker-compose.test.yaml run --rm matchstick", + "test:docker:build": "docker-compose -f docker-compose.test.yaml build" }, "dependencies": { "@cartesi/pos": "^1.1.2", "@cartesi/pos-1.0": "npm:@cartesi/pos@1.0.0", "@cartesi/staking-pool": "^1.0.0", "@cartesi/util": "^1.0.1", - "@graphprotocol/graph-cli": "0.23.2", - "@graphprotocol/graph-ts": "0.23.1", - "matchstick-as": "^0.2.0" + "@graphprotocol/graph-cli": "^0.30.2", + "@graphprotocol/graph-ts": "^0.27.0", + "matchstick-as": "^0.5.0" }, "devDependencies": { "@nomiclabs/hardhat-ethers": "^2.0.2", @@ -48,6 +50,6 @@ "prettier": "^2.4.0", "rimraf": "^3.0.2", "ts-node": "^10.3.1", - "typescript": "^4.4.4" + "typescript": "^4.6.3" } } diff --git a/schema.er b/schema.er index 78f25f9..7e6b921 100644 --- a/schema.er +++ b/schema.er @@ -8,6 +8,7 @@ releasingTimestamp balance totalBlocks totalReward +totalTransactionFee +pool [Node] @@ -52,6 +53,8 @@ reward difficulty gasPrice gasLimit +gasUsed +transactionFee [Chain] *id @@ -134,6 +137,7 @@ totalNodes totalStaked totalBlocks totalReward +totalTransactionFee totalProtocols totalChains diff --git a/schema.graphql b/schema.graphql index 3180f72..2949688 100644 --- a/schema.graphql +++ b/schema.graphql @@ -7,6 +7,7 @@ type Summary @entity { totalStaked: BigInt! totalBlocks: Int! totalReward: BigInt! + totalTransactionFee: BigInt! totalProtocols: Int! totalChains: Int! } @@ -21,6 +22,7 @@ type User @entity { balance: BigInt! totalBlocks: Int! totalReward: BigInt! + totalTransactionFee: BigInt! pool: StakingPool } @@ -161,4 +163,6 @@ type Block @entity { difficulty: BigInt gasPrice: BigInt! gasLimit: BigInt! + gasUsed: BigInt! + transactionFee: BigInt! } diff --git a/src/block-1.0.ts b/src/block-1.0.ts index e294a5e..775b6d9 100644 --- a/src/block-1.0.ts +++ b/src/block-1.0.ts @@ -11,75 +11,11 @@ // under the License. import { Rewarded } from "../generated/PoS-1.0/PoS" -import { BlockProduced } from "../generated/BlockSelector-1.0/BlockSelector" -import { Block } from "../generated/schema" -import * as chains from "./chain" -import * as nodes from "./node" -import * as summary from "./summary" -import * as users from "./user" +import { handleRewardedInner, handleBlockProduced } from "./block-common" export function handleRewarded(event: Rewarded): void { let reward = event.params.userReward.plus(event.params.beneficiaryReward) - - // handle user - let user = users.loadOrCreate(event.params.user) - user.totalBlocks++ - user.totalReward = user.totalReward.plus(reward) - user.save() - - // handle node - let node = nodes.loadOrCreate( - event.params.user, - event.params.worker, - event.block.timestamp - ) - node.totalBlocks++ - node.status = "Authorized" - node.totalReward = node.totalReward.plus(reward) - node.save() - - // handle chain - let posAddress = event.address.toHex() - let chain = chains.loadOrCreate( - posAddress, - event.params.index.toI32(), - event.block.timestamp - ) - chain.totalBlocks++ - chain.totalReward = chain.totalReward.plus(reward) - chain.save() - - // Rewarded is always called before BlockProduced, so create Block here - let block = Block.load(event.transaction.hash.toHex()) - if (block == null) { - block = new Block(event.transaction.hash.toHex()) - block.timestamp = event.block.timestamp - block.gasPrice = event.transaction.gasPrice - block.gasLimit = event.transaction.gasLimit - } - block.chain = chain.id - block.reward = reward - block.producer = event.params.user.toHex() - block.node = event.params.worker.toHex() - block.save() - - // handle global summary - let s = summary.loadOrCreate() - s.totalBlocks++ - s.totalReward = s.totalReward.plus(reward) - s.save() + handleRewardedInner(event, reward) } -export function handleBlockProduced(event: BlockProduced): void { - // load Block and fill other properties - let block = Block.load(event.transaction.hash.toHex()) - if (block == null) { - block = new Block(event.transaction.hash.toHex()) - block.timestamp = event.block.timestamp - block.gasPrice = event.transaction.gasPrice - block.gasLimit = event.transaction.gasLimit - } - block.number = event.params.blockNumber.toI32() - block.difficulty = event.params.difficulty - block.save() -} +export { handleBlockProduced } diff --git a/src/block-common.ts b/src/block-common.ts new file mode 100644 index 0000000..f9118f1 --- /dev/null +++ b/src/block-common.ts @@ -0,0 +1,92 @@ +import { Address, BigInt, ethereum, log } from "@graphprotocol/graph-ts" +import { Block } from "../generated/schema" +import * as nodes from "./node" +import * as chains from "./chain" +import * as users from "./user" +import * as summary from "./summary" +import { BlockProduced } from "../generated/BlockSelector/BlockSelector" + +function createBlock(event: ethereum.Event): Block { + const block = new Block(event.transaction.hash.toHex()) + block.timestamp = event.block.timestamp + block.gasPrice = event.transaction.gasPrice + block.gasLimit = event.transaction.gasLimit + block.gasUsed = (event.receipt as ethereum.TransactionReceipt).gasUsed + block.transactionFee = block.gasUsed.times(block.gasPrice) + return block +} + +abstract class RewardedCommonParams { + abstract get index(): BigInt + abstract get worker(): Address + abstract get user(): Address +} + +abstract class RewardedCommon extends ethereum.Event { + abstract get params(): RewardedCommonParams +} + +export function handleRewardedInner( + event: T, + reward: BigInt +): void { + // handle node + let node = nodes.loadOrCreate( + event.params.user, + event.params.worker, + event.block.timestamp + ) + node.totalBlocks++ + node.status = "Authorized" + node.totalReward = node.totalReward.plus(reward) + node.save() + + // handle chain + let posAddress = event.address.toHex() + let chain = chains.loadOrCreate( + posAddress, + event.params.index.toI32(), + event.block.timestamp + ) + chain.totalBlocks++ + chain.totalReward = chain.totalReward.plus(reward) + chain.save() + + // Rewarded is always called before BlockProduced, so create Block here + let block = Block.load(event.transaction.hash.toHex()) + if (block == null) { + block = createBlock(event) + } + block.chain = chain.id + block.reward = reward + block.producer = event.params.user.toHex() + block.node = event.params.worker.toHex() + block.save() + + // handle user + let user = users.loadOrCreate(event.params.user) + user.totalBlocks++ + user.totalReward = user.totalReward.plus(reward) + user.totalTransactionFee = user.totalTransactionFee.plus( + block.transactionFee + ) + user.save() + + // handle global summary + let s = summary.loadOrCreate() + s.totalBlocks++ + s.totalReward = s.totalReward.plus(reward) + s.totalTransactionFee = s.totalTransactionFee.plus(block.transactionFee) + s.save() +} + +export function handleBlockProduced(event: BlockProduced): void { + // load Block and fill other properties + let block = Block.load(event.transaction.hash.toHex()) + if (block == null) { + block = createBlock(event) + } + block.number = event.params.blockNumber.toI32() + block.difficulty = event.params.difficulty + block.save() +} diff --git a/src/block.ts b/src/block.ts index aee0a98..a194f16 100644 --- a/src/block.ts +++ b/src/block.ts @@ -11,63 +11,12 @@ // under the License. import { NewChain, Rewarded } from "../generated/PoS/PoS" -import { BlockProduced } from "../generated/BlockSelector/BlockSelector" -import { Block } from "../generated/schema" import * as chains from "./chain" -import * as nodes from "./node" -import * as summary from "./summary" -import * as users from "./user" +import { handleBlockProduced, handleRewardedInner } from "./block-common" export function handleRewarded(event: Rewarded): void { let reward = event.params.reward - - // handle user - let user = users.loadOrCreate(event.params.user) - user.totalBlocks++ - user.totalReward = user.totalReward.plus(reward) - user.save() - - // handle node - let node = nodes.loadOrCreate( - event.params.user, - event.params.worker, - event.block.timestamp - ) - node.totalBlocks++ - node.status = "Authorized" - node.totalReward = node.totalReward.plus(reward) - node.save() - - // handle chain - let posAddress = event.address.toHex() - let chain = chains.loadOrCreate( - posAddress, - event.params.index.toI32(), - event.block.timestamp - ) - chain.totalBlocks++ - chain.totalReward = chain.totalReward.plus(reward) - chain.save() - - // Rewarded is always called before BlockProduced, so create Block here - let block = Block.load(event.transaction.hash.toHex()) - if (block == null) { - block = new Block(event.transaction.hash.toHex()) - block.timestamp = event.block.timestamp - block.gasPrice = event.transaction.gasPrice - block.gasLimit = event.transaction.gasLimit - } - block.chain = chain.id - block.reward = reward - block.producer = event.params.user.toHex() - block.node = event.params.worker.toHex() - block.save() - - // handle global summary - let s = summary.loadOrCreate() - s.totalBlocks++ - s.totalReward = s.totalReward.plus(reward) - s.save() + handleRewardedInner(event, reward) } export function handleNewChain(event: NewChain): void { @@ -82,16 +31,4 @@ export function handleNewChain(event: NewChain): void { chain.save() } -export function handleBlockProduced(event: BlockProduced): void { - // load Block and fill other properties - let block = Block.load(event.transaction.hash.toHex()) - if (block == null) { - block = new Block(event.transaction.hash.toHex()) - block.timestamp = event.block.timestamp - block.gasPrice = event.transaction.gasPrice - block.gasLimit = event.transaction.gasLimit - } - block.number = event.params.blockNumber.toI32() - block.difficulty = event.params.difficulty - block.save() -} +export { handleBlockProduced } diff --git a/src/summary.ts b/src/summary.ts index c7219a6..49462d7 100644 --- a/src/summary.ts +++ b/src/summary.ts @@ -25,6 +25,7 @@ export function loadOrCreate(): Summary { summary.totalStaked = BigInt.fromI32(0) summary.totalBlocks = 0 summary.totalReward = BigInt.fromI32(0) + summary.totalTransactionFee = BigInt.fromI32(0) summary.totalProtocols = 0 summary.totalChains = 0 summary.save() diff --git a/src/user.ts b/src/user.ts index 218de8a..46e25a4 100644 --- a/src/user.ts +++ b/src/user.ts @@ -32,6 +32,7 @@ export function loadOrCreate(address: Address): User { user.balance = BigInt.fromI32(0) user.totalBlocks = 0 user.totalReward = BigInt.fromI32(0) + user.totalTransactionFee = BigInt.fromI32(0) user.save() let s = summary.loadOrCreate() diff --git a/subgraph.localhost.template.yaml b/subgraph.localhost.template.yaml index edd3fdf..1ff2e58 100644 --- a/subgraph.localhost.template.yaml +++ b/subgraph.localhost.template.yaml @@ -1,4 +1,4 @@ -specVersion: 0.0.2 +specVersion: 0.0.5 description: Cartesi Explorer repository: "https://github.com/cartesi/subgraph" schema: @@ -13,7 +13,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Stake @@ -41,7 +41,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Summary @@ -73,7 +73,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -90,6 +90,7 @@ dataSources: handler: handleNewChain - event: "Rewarded(indexed uint256,indexed address,indexed address,uint256)" handler: handleRewarded + receipt: true file: ./src/block.ts - kind: ethereum/contract name: BlockSelector @@ -100,7 +101,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -115,6 +116,7 @@ dataSources: eventHandlers: - event: "BlockProduced(indexed uint256,indexed address,uint32,uint256,uint256)" handler: handleBlockProduced + receipt: true file: ./src/block.ts - kind: ethereum/contract name: StakingPoolFactoryImpl @@ -125,7 +127,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPool @@ -149,7 +151,7 @@ templates: abi: StakingPoolImpl mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - PoolBalance @@ -184,7 +186,7 @@ templates: abi: FlatRateCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee @@ -202,7 +204,7 @@ templates: abi: GasTaxCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee diff --git a/subgraph.template.yaml b/subgraph.template.yaml index ddb895b..662fc72 100644 --- a/subgraph.template.yaml +++ b/subgraph.template.yaml @@ -1,4 +1,4 @@ -specVersion: 0.0.2 +specVersion: 0.0.5 description: Cartesi Explorer repository: "https://github.com/cartesi/subgraph" schema: @@ -13,7 +13,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Stake @@ -41,7 +41,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Summary @@ -73,7 +73,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -88,6 +88,7 @@ dataSources: eventHandlers: - event: "Rewarded(indexed uint256,indexed address,indexed address,address,uint256,uint256)" handler: handleRewarded + receipt: true file: ./src/block-1.0.ts - kind: ethereum/contract name: PoS @@ -98,7 +99,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -115,6 +116,7 @@ dataSources: handler: handleNewChain - event: "Rewarded(indexed uint256,indexed address,indexed address,uint256)" handler: handleRewarded + receipt: true file: ./src/block.ts - kind: ethereum/contract name: BlockSelector-1.0 @@ -125,7 +127,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -140,6 +142,7 @@ dataSources: eventHandlers: - event: "BlockProduced(indexed uint256,indexed address,uint256,uint256,uint256,uint256)" handler: handleBlockProduced + receipt: true file: ./src/block-1.0.ts - kind: ethereum/contract name: BlockSelector @@ -150,7 +153,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -165,6 +168,7 @@ dataSources: eventHandlers: - event: "BlockProduced(indexed uint256,indexed address,uint32,uint256,uint256)" handler: handleBlockProduced + receipt: true file: ./src/block.ts - kind: ethereum/contract name: StakingPoolFactoryImpl @@ -175,7 +179,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPool @@ -199,7 +203,7 @@ templates: abi: StakingPoolImpl mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - PoolBalance @@ -234,7 +238,7 @@ templates: abi: FlatRateCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee @@ -252,7 +256,7 @@ templates: abi: GasTaxCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee diff --git a/subgraph.testnet.template.yaml b/subgraph.testnet.template.yaml index f2dbf3e..01f4e98 100644 --- a/subgraph.testnet.template.yaml +++ b/subgraph.testnet.template.yaml @@ -1,4 +1,4 @@ -specVersion: 0.0.2 +specVersion: 0.0.5 description: Cartesi Explorer repository: "https://github.com/cartesi/subgraph" schema: @@ -13,7 +13,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Stake @@ -41,7 +41,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Summary @@ -73,7 +73,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -88,6 +88,7 @@ dataSources: eventHandlers: - event: "Rewarded(indexed uint256,indexed address,indexed address,address,uint256,uint256)" handler: handleRewarded + receipt: true file: ./src/block-1.0.ts - kind: ethereum/contract name: PoS @@ -98,7 +99,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -115,6 +116,7 @@ dataSources: handler: handleNewChain - event: "Rewarded(indexed uint256,indexed address,indexed address,uint256)" handler: handleRewarded + receipt: true file: ./src/block.ts - kind: ethereum/contract name: BlockSelector-1.0 @@ -125,7 +127,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -140,6 +142,7 @@ dataSources: eventHandlers: - event: "BlockProduced(indexed uint256,indexed address,uint256,uint256,uint256,uint256)" handler: handleBlockProduced + receipt: true file: ./src/block-1.0.ts - kind: ethereum/contract name: BlockSelector @@ -150,7 +153,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - Block @@ -165,6 +168,7 @@ dataSources: eventHandlers: - event: "BlockProduced(indexed uint256,indexed address,uint32,uint256,uint256)" handler: handleBlockProduced + receipt: true file: ./src/block.ts - kind: ethereum/contract name: StakingPoolFactoryImpl @@ -175,7 +179,7 @@ dataSources: startBlock: mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPool @@ -199,7 +203,7 @@ templates: abi: StakingPoolImpl mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - PoolBalance @@ -234,7 +238,7 @@ templates: abi: FlatRateCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee @@ -252,7 +256,7 @@ templates: abi: GasTaxCommission mapping: kind: ethereum/events - apiVersion: 0.0.5 + apiVersion: 0.0.7 language: wasm/assemblyscript entities: - StakingPoolFee diff --git a/tests/.docker/Dockerfile b/tests/.docker/Dockerfile new file mode 100644 index 0000000..35869b4 --- /dev/null +++ b/tests/.docker/Dockerfile @@ -0,0 +1,50 @@ +FROM ubuntu:20.04 as base + +ARG BUILDPLATFORM=linux/x86_64 +ARG DEBIAN_FRONTEND=noninteractive +ARG TZ=Etc/UTC +ARG NVM_VERSION=0.39.1 +ARG NODE_VERSION=16.14.2 +ARG MATCHSTICK_VERSION=0.5.0 + +ENV NVM_DIR=/root/.nvm +ENV ARGS="" +ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}" + +RUN apt-get update \ + && apt-get install -y \ + git \ + postgresql \ + curl \ + cmake \ + # nodejs + npm + yarn + && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash \ + && . "$NVM_DIR/nvm.sh" \ + && nvm install ${NODE_VERSION} \ + && nvm use v${NODE_VERSION} \ + && nvm alias default v${NODE_VERSION} \ + && npm install -g yarn \ + # matchstick + && curl -o /bin/matchstick -L https://github.com/LimeChain/matchstick/releases/download/${MATCHSTICK_VERSION}/binary-linux-20 \ + && chmod a+x /bin/matchstick \ + && mkdir matchstick \ + && apt-get remove -y --purge curl \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /matchstick +CMD matchstick ${ARGS} + +FROM base as libs +COPY package.json yarn.lock ./ +RUN yarn + +FROM libs as code +ARG PROJECT_ID +COPY . ./ +RUN yarn prepare:goerli \ + && mv subgraph.goerli.yaml subgraph.yaml \ + && yarn codegen subgraph.yaml + +FROM code as test +RUN matchstick ${ARGS} diff --git a/tests/block/reward.test.ts b/tests/block/reward.test.ts new file mode 100644 index 0000000..2cd6eb3 --- /dev/null +++ b/tests/block/reward.test.ts @@ -0,0 +1,89 @@ +import { assert, beforeEach, clearStore, log, test } from "matchstick-as" +import { handleRewarded } from "../../src/block" +import { createRewardedEvent, txHash, txTimestamp } from "../utils" +import { BigInt } from "@graphprotocol/graph-ts" +import { Summary } from "../../generated/schema" + +beforeEach(() => { + clearStore() +}) + +test("New reward should store expected values", () => { + const index = BigInt.fromString("1") + const address = "0x0000000000000000000000000000000000000000" + const reward = BigInt.fromString("2900000000000000000000") + const gasPrice = BigInt.fromString("100000000000") + const gasUsed = BigInt.fromString("100000") + const gasLimit = BigInt.fromString("200000") + const transactionFee = gasUsed.times(gasPrice) + const rewardEvent = createRewardedEvent( + index, + address, + address, + reward, + gasPrice, + gasLimit, + gasUsed + ) + handleRewarded(rewardEvent) + + // assert User + assert.fieldEquals("User", address, "id", address) + assert.fieldEquals( + "User", + address, + "totalTransactionFee", + transactionFee.toString() + ) + + // assert Block + assert.fieldEquals( + "Block", + txHash.toHexString(), + "reward", + reward.toString() + ) + assert.fieldEquals("Block", txHash.toHexString(), "producer", address) + assert.fieldEquals("Block", txHash.toHexString(), "node", address) + assert.fieldEquals( + "Block", + txHash.toHexString(), + "timestamp", + txTimestamp.toString() + ) + assert.fieldEquals( + "Block", + txHash.toHexString(), + "gasPrice", + gasPrice.toString() + ) + assert.fieldEquals( + "Block", + txHash.toHexString(), + "gasLimit", + gasLimit.toString() + ) + assert.fieldEquals( + "Block", + txHash.toHexString(), + "gasUsed", + gasUsed.toString() + ) + assert.fieldEquals( + "Block", + txHash.toHexString(), + "transactionFee", + transactionFee.toString() + ) + + // assert Summary + assert.fieldEquals("Summary", "1", "totalUsers", "1") + assert.fieldEquals("Summary", "1", "totalBlocks", "1") + assert.fieldEquals("Summary", "1", "totalReward", reward.toString()) + assert.fieldEquals( + "Summary", + "1", + "totalTransactionFee", + transactionFee.toString() + ) +}) diff --git a/tests/pool/fee.test.ts b/tests/pool/fee.test.ts index 114bdac..34ad60a 100644 --- a/tests/pool/fee.test.ts +++ b/tests/pool/fee.test.ts @@ -10,7 +10,7 @@ // License for the specific language governing permissions and limitations // under the License. -import { assert, clearStore, test, log } from "matchstick-as" +import { assert, clearStore, test, log, beforeEach } from "matchstick-as" import { Address, BigInt } from "@graphprotocol/graph-ts" import { buildStakingPoolFee, @@ -22,6 +22,10 @@ import { handleFlatRateChanged, handleGasTaxChanged } from "../../src/fee" let STAKING_POOL_FEE = "StakingPoolFee" +beforeEach(() => { + clearStore() +}) + test("New staking-pool-fee should store expected values", () => { const address = Address.fromString( "0x0000000000000000000000000000000000000000" @@ -48,8 +52,6 @@ test("New staking-pool-fee should store expected values", () => { timestamp.toString() ) assert.fieldEquals("StakingPoolFee", address.toHex(), "pool", pool.toHex()) - - clearStore() }) test("When handling flat-rate-changed event the updated staking-pool-fee should have the expected values", () => { diff --git a/tests/user/stake.test.ts b/tests/user/stake.test.ts index 7630b15..b3f3d65 100644 --- a/tests/user/stake.test.ts +++ b/tests/user/stake.test.ts @@ -10,9 +10,9 @@ // License for the specific language governing permissions and limitations // under the License. -import { assert, clearStore, test } from "matchstick-as" -import { BigInt } from "@graphprotocol/graph-ts" -import { handleStakeEvent } from "../../src/user" +import { assert, beforeEach, clearStore, test } from "matchstick-as" +import { Address, BigInt } from "@graphprotocol/graph-ts" +import { handleStakeEvent, loadOrCreate } from "../../src/user" import { User } from "../../generated/schema" import { assertUser, @@ -22,6 +22,10 @@ import { ZERO, } from "../utils" +beforeEach(() => { + clearStore() +}) + test("stake(1000)", () => { let address = "0x0000000000000000000000000000000000000000" let amount = BigInt.fromI32(1000) @@ -38,15 +42,13 @@ test("stake(1000)", () => { "timestamp", txTimestamp.toString() ) - - clearStore() }) test("stake(1000) while maturing", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 500 maturing - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.maturingBalance = BigInt.fromI32(500) user.maturingTimestamp = BigInt.fromI32(1630000000 + 10800) // Thursday, August 26, 2021 08:46:40 PM user.save() @@ -64,15 +66,13 @@ test("stake(1000) while maturing", () => { ZERO, ZERO ) - - clearStore() }) test("stake(1000) while matured", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 500 matured and 2000 staked - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.stakedBalance = BigInt.fromI32(2000) user.maturingBalance = BigInt.fromI32(500) user.maturingTimestamp = BigInt.fromI32(txTimestamp - 10800) // Thursday, August 26, 2021 02:46:40 PM @@ -91,15 +91,13 @@ test("stake(1000) while matured", () => { ZERO, ZERO ) - - clearStore() }) test("stake(1000) while releasing", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 200 releasing - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.releasingBalance = BigInt.fromI32(1200) user.save() @@ -116,6 +114,4 @@ test("stake(1000) while releasing", () => { BigInt.fromI32(200), ZERO ) - - clearStore() }) diff --git a/tests/user/unstake.test.ts b/tests/user/unstake.test.ts index 8810a5e..a430e6d 100644 --- a/tests/user/unstake.test.ts +++ b/tests/user/unstake.test.ts @@ -10,17 +10,21 @@ // License for the specific language governing permissions and limitations // under the License. -import { clearStore, test } from "matchstick-as" -import { BigInt } from "@graphprotocol/graph-ts" -import { handleUnstakeEvent } from "../../src/user" +import { clearStore, test, beforeEach } from "matchstick-as" +import { Address, BigInt } from "@graphprotocol/graph-ts" +import { handleUnstakeEvent, loadOrCreate } from "../../src/user" import { User } from "../../generated/schema" import { assertUser, createUnstakeEvent, txTimestamp, ZERO } from "../utils" +beforeEach(() => { + clearStore() +}) + test("unstake(1000)", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 1200 staked - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.stakedBalance = BigInt.fromI32(1200) user.releasingBalance = BigInt.fromI32(500) user.save() @@ -38,15 +42,13 @@ test("unstake(1000)", () => { amount, releasingTimestamp ) - - clearStore() }) test("unstake(1000) from maturing", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 1200 maturing - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.maturingBalance = BigInt.fromI32(1200) user.save() @@ -63,8 +65,6 @@ test("unstake(1000) from maturing", () => { amount, releasingTimestamp ) - - clearStore() }) test("unstake(1000) from maturing and staked", () => { @@ -72,7 +72,7 @@ test("unstake(1000) from maturing and staked", () => { // create a user with 200 maturing and 1900 staked // unstake 1000 must take 200 from maturing and 800 from staked - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.maturingBalance = BigInt.fromI32(200) user.stakedBalance = BigInt.fromI32(1900) user.save() @@ -90,6 +90,4 @@ test("unstake(1000) from maturing and staked", () => { amount, releasingTimestamp ) - - clearStore() }) diff --git a/tests/user/withdraw.test.ts b/tests/user/withdraw.test.ts index ed3cf23..fa35d98 100644 --- a/tests/user/withdraw.test.ts +++ b/tests/user/withdraw.test.ts @@ -10,17 +10,21 @@ // License for the specific language governing permissions and limitations // under the License. -import { clearStore, test } from "matchstick-as" -import { BigInt } from "@graphprotocol/graph-ts" -import { handleWithdrawEvent } from "../../src/user" +import { beforeEach, clearStore, test } from "matchstick-as" +import { Address, BigInt } from "@graphprotocol/graph-ts" +import { handleWithdrawEvent, loadOrCreate } from "../../src/user" import { User } from "../../generated/schema" import { assertUser, createWithdrawEvent, ZERO } from "../utils" +beforeEach(() => { + clearStore() +}) + test("withdraw(1000)", () => { let address = "0x0000000000000000000000000000000000000000" // create a user with 1200 releasing balance - let user = new User(address) + let user = loadOrCreate(Address.fromString(address)) user.releasingBalance = BigInt.fromI32(1200) user.save() @@ -29,6 +33,4 @@ test("withdraw(1000)", () => { handleWithdrawEvent(event) assertUser(address, ZERO, ZERO, ZERO, BigInt.fromI32(200), ZERO) - - clearStore() }) diff --git a/tests/utils.ts b/tests/utils.ts index bf2dae4..2ffcf6e 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -16,6 +16,7 @@ import { Stake, Unstake, Withdraw } from "../generated/StakingImpl/StakingImpl" import { StakingPoolFee } from "../generated/schema" import { FlatRateChanged } from "../generated/templates/FlatRateCommission/FlatRateCommission" import { GasTaxChanged } from "../generated/templates/GasTaxCommission/GasTaxCommission" +import { Rewarded } from "../generated/PoS/PoS" export const txHash = Bytes.fromHexString( "0x0000000000000000000000000000000000000000000000000000000000000001" @@ -154,6 +155,50 @@ export function createWithdrawEvent(user: string, amount: BigInt): Withdraw { return event } +export function createRewardedEvent( + index: BigInt, + worker: string, + user: string, + reward: BigInt, + gasPrice: BigInt, + gasLimit: BigInt, + gasUsed: BigInt +): Rewarded { + const event = changetype(newMockEvent()) + event.transaction.hash = txHash + event.transaction.gasPrice = gasPrice + event.transaction.gasLimit = gasLimit + event.block.timestamp = BigInt.fromI32(txTimestamp) // Thursday, August 26, 2021 05:46:40 PM + ;(event.receipt as ethereum.TransactionReceipt).gasUsed = gasUsed + + event.parameters = new Array() + event.parameters.push( + new ethereum.EventParam( + "index", + ethereum.Value.fromUnsignedBigInt(index) + ) + ) + event.parameters.push( + new ethereum.EventParam( + "worker", + ethereum.Value.fromAddress(Address.fromString(worker)) + ) + ) + event.parameters.push( + new ethereum.EventParam( + "user", + ethereum.Value.fromAddress(Address.fromString(user)) + ) + ) + event.parameters.push( + new ethereum.EventParam( + "reward", + ethereum.Value.fromUnsignedBigInt(reward) + ) + ) + return event +} + export function assertUser( address: string, stakedBalance: BigInt, diff --git a/yarn.lock b/yarn.lock index 76a7e4f..fb9e789 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,13 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/runtime@^7.9.2": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" + integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== + dependencies: + regenerator-runtime "^0.13.4" + "@cartesi/pos-1.0@npm:@cartesi/pos@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@cartesi/pos/-/pos-1.0.0.tgz#3e5dce627c895dd816ecaa5cce905c5a40e7fc15" @@ -975,46 +982,41 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@graphprotocol/graph-cli@0.23.2": - version "0.23.2" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.23.2.tgz#cfb3787bd1b571b28fed05a748116579f01cda19" - integrity sha512-1JDyCwaAIeKsEPYPlsJ7IiAB5BhQ+v2fvmDIJTcLfRIYmTKsoETdjrw9qUGJtjICVXIGuL9DeNVhQgKgTMCQZQ== +"@graphprotocol/graph-cli@^0.30.2": + version "0.30.2" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.30.2.tgz#b48be217d961ace9b37284a24e1bb669ed340fd0" + integrity sha512-qbH5JnSlPUfE20pG/xBAWbh70wQ8J/QeNoWt8fN9OHKEJc+5emdMfC30tVU4/Q4pJ+nC6DHSli8znZWZpCD7EA== dependencies: assemblyscript "0.19.10" binary-install-raw "0.0.13" - chalk "^3.0.0" - chokidar "^3.0.2" - debug "^4.1.1" - docker-compose "^0.23.2" - dockerode "^2.5.8" - fs-extra "^9.0.0" - glob "^7.1.2" - gluegun "^4.3.1" - graphql "^15.5.0" - immutable "^3.8.2" - ipfs-http-client "^34.0.0" - jayson "^3.0.2" - js-yaml "^3.13.1" - node-fetch "^2.3.0" - pkginfo "^0.4.1" - prettier "^1.13.5" - request "^2.88.0" + chalk "3.0.0" + chokidar "3.5.1" + debug "4.1.1" + docker-compose "0.23.4" + dockerode "2.5.8" + fs-extra "9.0.0" + glob "7.1.6" + gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" + graphql "15.5.0" + immutable "3.8.2" + ipfs-http-client "34.0.0" + jayson "3.2.0" + js-yaml "3.13.1" + node-fetch "2.6.0" + pkginfo "0.4.1" + prettier "1.19.1" + request "2.88.2" semver "7.3.5" - tmp-promise "^3.0.2" + sync-request "6.1.0" + tmp-promise "3.0.2" + web3-eth-abi "1.7.0" which "2.0.2" - yaml "^1.5.1" - -"@graphprotocol/graph-ts@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.22.0.tgz#5280513d1c8a162077f82ce7f9a492bb5783d6f4" - integrity sha512-kJIBL73xBxj0+NJdRABukAtcrc3Mb8jt31s0tCLPe6c57rQXEf7KR9oYrFdzE1ZsJCP6j+MX+A2+sj1Pj3aJtQ== - dependencies: - assemblyscript "0.19.10" + yaml "1.9.2" -"@graphprotocol/graph-ts@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.23.1.tgz#76e595d26ec5672f3778b1d3830e4640a57aec1b" - integrity sha512-pipofvN1LlwLOXrS7IWy8hSBFZzVyVHdLXDpQskl9nKqdbb3chelj4JoVEzCl7klvomDpP84ngLpW17fBh5vww== +"@graphprotocol/graph-ts@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.27.0.tgz#948fe1716f6082964a01a63a19bcbf9ac44e06ff" + integrity sha512-r1SPDIZVQiGMxcY8rhFSM0y7d/xAbQf5vHMWUf59js1KgoyWpM6P3tczZqmQd7JTmeyNsDGIPzd9FeaxllsU4w== dependencies: assemblyscript "0.19.10" @@ -1355,22 +1357,36 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.22.tgz#47020d7e4cf19194d43b5202f35f75bd2ad35ce7" integrity sha512-tFfcE+DSTzWAgifkjik9AySNqIyNoYwmR+uecPwwD/XRNfvOjmC/FjCxpiUGDkDVDphPfCUecSQVFw+lN3M3kQ== -"@types/connect@^3.4.33": +"@types/concat-stream@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + +"@types/connect@^3.4.32": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" -"@types/express-serve-static-core@^4.17.9": - version "4.17.24" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" - integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== +"@types/express-serve-static-core@^4.16.9": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" +"@types/form-data@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + integrity sha1-yayFsqX9GENbjIXZ7LUObWyJP/g= + dependencies: + "@types/node" "*" + "@types/js-yaml@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz#9f33cd6fbf0d5ec575dc8c8fc69c7fec1b4eb200" @@ -1390,10 +1406,10 @@ "@types/level-errors" "*" "@types/node" "*" -"@types/lodash@^4.14.159": - version "4.14.175" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.175.tgz#b78dfa959192b01fae0ad90e166478769b215f45" - integrity sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw== +"@types/lodash@^4.14.139": + version "4.14.181" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.181.tgz#d1d3740c379fda17ab175165ba04e2d03389385d" + integrity sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag== "@types/lru-cache@^5.1.0": version "5.1.1" @@ -1420,11 +1436,26 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== -"@types/node@^12.12.54", "@types/node@^12.12.6": +"@types/node@^10.0.3": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.6": version "12.20.27" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.27.tgz#4141fcad57c332a120591de883e26fe4bb14aaea" integrity sha512-qZdePUDSLAZRXXV234bLBEUM0nAQjoxbcSwp1rqSMUe1rZ47mwU6OjciR/JvF1Oo8mc0ys6GE0ks0HGgqAZoGg== +"@types/node@^12.7.7": + version "12.20.47" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.47.tgz#ca9237d51f2a2557419688511dab1c8daf475188" + integrity sha512-BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg== + +"@types/node@^8.0.0": + version "8.10.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -1442,7 +1473,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== -"@types/qs@*", "@types/qs@^6.9.7": +"@types/qs@*", "@types/qs@^6.2.31", "@types/qs@^6.9.7": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== @@ -1494,13 +1525,6 @@ "@types/bn.js" "*" "@types/underscore" "*" -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -1514,7 +1538,7 @@ JSONStream@1.3.2: jsonparse "^1.2.0" through ">=2.2.7 <3" -JSONStream@^1.3.5: +JSONStream@^1.3.1: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -1732,12 +1756,12 @@ anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apisauce@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.1.tgz#0b8bc7f2544e6ef710a6fa1d6f49583856940dd2" - integrity sha512-P4SsLvmsH8BLLruBn/nsO+65j+ChZlGQ2zC5avCIjbWstYS4PgjxeVWtbeVwFGEWX7dEkLp85OvdapGXy1zS8g== +apisauce@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" + integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== dependencies: - axios "^0.21.1" + axios "^0.21.2" ramda "^0.25.0" app-module-path@^2.2.0: @@ -1818,6 +1842,11 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + asmcrypto.js@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz#b9f84bd0a1fb82f21f8c29cc284a707ad17bba2e" @@ -1848,13 +1877,14 @@ assemblyscript@0.19.10: binaryen "101.0.0-nightly.20210723" long "^4.0.0" -assemblyscript@^0.19.16: - version "0.19.17" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.17.tgz#b1dc9842a024a65eaf1f9943b3094e7c98b9f055" - integrity sha512-KY80XCUFaocBR9V+Xx9oaG2ftkO1Da13MDcF6ZB25Nlir8SHPQBzR7nqCqmVHxp5FoE3pAnxJMNmQmS3JiTUTA== +assemblyscript@^0.19.20: + version "0.19.23" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" + integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== dependencies: - binaryen "101.0.0-nightly.20210904" - long "^4.0.0" + binaryen "102.0.0-nightly.20211028" + long "^5.2.0" + source-map-support "^0.5.20" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" @@ -1937,7 +1967,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@^0.21.1: +axios@^0.21.1, axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -2551,10 +2581,10 @@ binaryen@101.0.0-nightly.20210723: resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz#b6bb7f3501341727681a03866c0856500eec3740" integrity sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA== -binaryen@101.0.0-nightly.20210904: - version "101.0.0-nightly.20210904" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210904.tgz#58a7990d6d64b16567f376a1fe47d8aea6698b14" - integrity sha512-2AvJhErttuoMvgNcYPPpPy7C12PSvDdtZWtEeX/Otm/Vtf4ePvBpT3UIA00hGAh8HNaGr+dzFNstxTUvjNwZTg== +binaryen@102.0.0-nightly.20211028: + version "102.0.0-nightly.20211028" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz#8f1efb0920afd34509e342e37f84313ec936afb2" + integrity sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w== bindings@^1.5.0: version "1.5.0" @@ -2959,7 +2989,7 @@ caniuse-lite@^1.0.30000844: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01" integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA== -caseless@~0.12.0: +caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= @@ -2976,6 +3006,14 @@ chai@^4.2.0: pathval "^1.1.1" type-detect "^4.0.5" +chalk@3.0.0, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2996,14 +3034,6 @@ chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -3063,6 +3093,21 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chokidar@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -3079,7 +3124,7 @@ chokidar@^1.6.0: optionalDependencies: fsevents "^1.0.0" -chokidar@^3.0.2, chokidar@^3.4.0, chokidar@^3.5.2: +chokidar@^3.4.0, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -3262,7 +3307,12 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@^1.1.2, colors@^1.3.3: +colors@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -3298,7 +3348,7 @@ commander@3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^2.15.0, commander@^2.20.3, commander@^2.9.0: +commander@^2.12.2, commander@^2.15.0, commander@^2.9.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3318,7 +3368,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.1, concat-stream@~1.6.2: +concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3584,6 +3634,13 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: dependencies: ms "2.1.2" +debug@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debug@^3.1.0, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3696,11 +3753,6 @@ defined@~1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -3777,12 +3829,10 @@ dns-packet@^5.3.0: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -docker-compose@^0.23.2: - version "0.23.13" - resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.13.tgz#77d37bd05b6a966345f631e6d05e961c79514f06" - integrity sha512-/9fYC4g3AO+qsqxIZhmbVnFvJJPcYEV2yJbAPPXH+6AytU3urIY8lUAXOlvY8sl4u25pdKu1JrOfAmWC7lJDJg== - dependencies: - yaml "^1.10.2" +docker-compose@0.23.4: + version "0.23.4" + resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.4.tgz#43bcabcde55a6ba2873b52fe0ccd99dd8fdceba8" + integrity sha512-yWdXby9uQ8o4syOfvoSJ9ZlTnLipvUmDn59uaYY5VGIUSUAfMPPGqE1DE3pOCnfSg9Tl9UOOFO0PCSAzuIHmuA== docker-modem@^1.0.8: version "1.0.9" @@ -3794,7 +3844,7 @@ docker-modem@^1.0.8: readable-stream "~1.0.26-4" split-ca "^1.0.0" -dockerode@^2.5.8: +dockerode@2.5.8: version "2.5.8" resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== @@ -4980,6 +5030,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -5039,6 +5098,16 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" + integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -5077,16 +5146,6 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-jetpack@^2.2.2: version "2.4.0" resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" @@ -5122,7 +5181,7 @@ fsevents@^1.0.0: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.3, fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.1.3, fsevents@^2.3.2, fsevents@~2.3.1, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -5203,6 +5262,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -5288,6 +5352,18 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.2, glob@^7.1.3: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -5325,15 +5401,14 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -gluegun@^4.3.1: - version "4.7.0" - resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-4.7.0.tgz#d1e88828ec6737d966619fff07c04f7e689dc59e" - integrity sha512-St+J/rly0FoWLeISgBGDuymwF3/b8OdmxBCbSvK1hXEoRbaaATiRpPepJSJWuRYR7cGR7Hy9drgQwGFBAolhbQ== +"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": + version "4.3.1" + resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" dependencies: - apisauce "^2.0.1" + apisauce "^1.0.1" app-module-path "^2.2.0" cli-table3 "~0.5.0" - colors "^1.3.3" + colors "1.3.3" cosmiconfig "6.0.0" cross-spawn "^7.0.0" ejs "^2.6.1" @@ -5404,10 +5479,10 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -graphql@^15.5.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.0.tgz#e69323c6a9780a1a4b9ddf7e35ca8904bb04df02" - integrity sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ== +graphql@15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" + integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== growl@1.10.3: version "1.10.3" @@ -5752,6 +5827,16 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +http-basic@^8.1.1: + version "8.1.3" + resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== + dependencies: + caseless "^0.12.0" + concat-stream "^1.6.2" + http-response-object "^3.0.1" + parse-cache-control "^1.0.1" + http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -5784,6 +5869,13 @@ http-https@^1.0.0: resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= +http-response-object@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" + integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== + dependencies: + "@types/node" "^10.0.3" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -5842,7 +5934,7 @@ immediate@~3.2.3: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= -immutable@^3.8.2: +immutable@3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= @@ -5939,7 +6031,7 @@ ipfs-block@~0.8.1: cids "~0.7.0" class-is "^1.1.0" -ipfs-http-client@^34.0.0: +ipfs-http-client@34.0.0: version "34.0.0" resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-34.0.0.tgz#8804d06a11c22306332a8ffa0949b6f672a0c9c8" integrity sha512-4RCkk8ix4Dqn6sxqFVwuXWCZ1eLFPsVaj6Ijvu1fs9VYgxgVudsW9PWwarlr4mw1xUCmPWYyXnEbGgzBrfMy0Q== @@ -6496,11 +6588,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -6521,26 +6608,22 @@ iterable-ndjson@^1.1.0: dependencies: string_decoder "^1.2.0" -jayson@^3.0.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.4.tgz#9e9d1ba2a75d811f254bceff61a096772fa04832" - integrity sha512-GH63DsRFFlodS8krFgAhxwYvQFmSwjsFxKnPrHQtp+BJj/tpeSj3hyBGGqmTkuq043U1Gn6u8VdsVRFZX1EEiQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/express-serve-static-core" "^4.17.9" - "@types/lodash" "^4.14.159" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - JSONStream "^1.3.5" - commander "^2.20.3" - delay "^5.0.0" +jayson@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.2.0.tgz#df6d8139cd9f6ee2f56c8c2deaee448da7eccf1b" + integrity sha512-DZQnwA57GcStw4soSYB2VntWXFfoWvmSarlaWePDYOWhjxT72PBM4atEBomaTaS1uqk3jFC9UO9AyWjlujo3xw== + dependencies: + "@types/connect" "^3.4.32" + "@types/express-serve-static-core" "^4.16.9" + "@types/lodash" "^4.14.139" + "@types/node" "^12.7.7" + JSONStream "^1.3.1" + commander "^2.12.2" es6-promisify "^5.0.0" eyes "^0.1.8" - isomorphic-ws "^4.0.1" json-stringify-safe "^5.0.1" - lodash "^4.17.20" - uuid "^3.4.0" - ws "^7.4.5" + lodash "^4.17.15" + uuid "^3.2.1" js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" @@ -6575,14 +6658,6 @@ js-yaml@3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -7191,7 +7266,7 @@ lodash@4.17.20: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.4: +lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7208,6 +7283,11 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" + integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + looper@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" @@ -7315,13 +7395,14 @@ match-all@^1.2.6: resolved "https://registry.yarnpkg.com/match-all/-/match-all-1.2.6.tgz#66d276ad6b49655551e63d3a6ee53e8be0566f8d" integrity sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ== -matchstick-as@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/matchstick-as/-/matchstick-as-0.2.0.tgz#6810d4338a0e6aae9111543c1e91c351713e531b" - integrity sha512-LBG8eL4oyUnfSsGnnp2KJxP37GwcARuhQl17Etyywdh+LTtMHTiDLTAGNLnzKfN0lNCcqFZEA8PLQ1z1YibyHQ== +matchstick-as@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/matchstick-as/-/matchstick-as-0.5.0.tgz#cdafc1ef49d670b9cbe98e933bc2a5cb7c450aeb" + integrity sha512-4K619YDH+so129qt4RB4JCNxaFwJJYLXPc7drpG+/mIj86Cfzg6FKs/bA91cnajmS1CLHdhHl9vt6Kd6Oqvfkg== dependencies: - "@graphprotocol/graph-ts" "0.22.0" - assemblyscript "^0.19.16" + "@graphprotocol/graph-ts" "^0.27.0" + assemblyscript "^0.19.20" + wabt "1.0.24" math-random@^1.0.1: version "1.0.4" @@ -7950,6 +8031,11 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" +node-fetch@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-fetch@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -8335,6 +8421,11 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-cache-control@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + integrity sha1-juqz5U+laSD+Fro493+iGqzC104= + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -8557,7 +8648,7 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkginfo@^0.4.1: +pkginfo@0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= @@ -8597,7 +8688,7 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@^1.13.5: +prettier@1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== @@ -8640,6 +8731,13 @@ promise-to-callback@^1.0.0: is-fn "^1.0.0" set-immediate-shim "^1.0.1" +promise@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" @@ -8798,6 +8896,13 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.4.0: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@^6.5.2, qs@^6.7.0, qs@^6.9.4: version "6.10.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" @@ -8970,6 +9075,13 @@ readdirp@~3.2.0: dependencies: picomatch "^2.0.4" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -8987,6 +9099,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -9062,7 +9179,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@2.88.2, request@^2.79.0, request@^2.85.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9624,6 +9741,14 @@ source-map-support@^0.5.13, source-map-support@^0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" @@ -9929,6 +10054,22 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" +sync-request@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== + dependencies: + http-response-object "^3.0.1" + sync-rpc "^1.2.1" + then-request "^6.0.0" + +sync-rpc@^1.2.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" + tape@^4.6.3: version "4.14.0" resolved "https://registry.yarnpkg.com/tape/-/tape-4.14.0.tgz#e4d46097e129817175b90925f2385f6b1bcfa826" @@ -10027,6 +10168,23 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +then-request@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== + dependencies: + "@types/concat-stream" "^1.6.0" + "@types/form-data" "0.0.33" + "@types/node" "^8.0.0" + "@types/qs" "^6.2.31" + caseless "~0.12.0" + concat-stream "^1.6.0" + form-data "^2.2.0" + http-basic "^8.1.1" + http-response-object "^3.0.1" + promise "^8.0.0" + qs "^6.4.0" + through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -10053,7 +10211,7 @@ timed-out@^4.0.0, timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -tmp-promise@^3.0.2: +tmp-promise@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== @@ -10294,10 +10452,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" + integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" @@ -10371,6 +10529,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -10506,7 +10669,7 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.2.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -10538,6 +10701,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +wabt@1.0.24: + version "1.0.24" + resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" + integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -10782,6 +10950,14 @@ web3-eth-abi@1.5.3: "@ethersproject/abi" "5.0.7" web3-utils "1.5.3" +web3-eth-abi@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz#4fac9c7d9e5a62b57f8884b37371f515c766f3f4" + integrity sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.7.0" + web3-eth-accounts@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520" @@ -11254,6 +11430,19 @@ web3-utils@1.5.3, web3-utils@^1.0.0-beta.31: randombytes "^2.1.0" utf8 "3.0.0" +web3-utils@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.0.tgz#c59f0fd43b2449357296eb54541810b99b1c771c" + integrity sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w== + dependencies: + bn.js "^4.11.9" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + web3@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" @@ -11442,7 +11631,7 @@ ws@^5.1.1: dependencies: async-limiter "~1.0.0" -ws@^7.4.5, ws@^7.4.6: +ws@^7.4.6: version "7.5.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== @@ -11531,7 +11720,14 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.2, yaml@^1.5.1, yaml@^1.7.2: +yaml@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed" + integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg== + dependencies: + "@babel/runtime" "^7.9.2" + +yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==