diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..97337d7 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(chmod +x /Users/ajand/Projects/rewards-distro/subgraph/scripts/sync-tenderly-config.sh)", + "Bash(docker compose:*)" + ] + } +} diff --git a/.gitignore b/.gitignore index 469cfa1..180f084 100644 --- a/.gitignore +++ b/.gitignore @@ -62,6 +62,7 @@ typings/ # Graph-node docker/.env +docker/.env.tenderly docker/data @@ -69,4 +70,6 @@ docker/data subgraph.yaml build/ generated/ -src/utils/addresses.ts \ No newline at end of file +src/utils/addresses.ts + +**/.DS_Store \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 2c7b788..eb58f03 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12 AS deployer +FROM node:18 AS deployer WORKDIR /usr/graph/ COPY package.json . @@ -11,6 +11,7 @@ COPY subgraph.template.yaml . COPY schema.graphql . COPY src src COPY config config +COPY scripts scripts RUN ls diff --git a/TENDERLY.md b/TENDERLY.md new file mode 100644 index 0000000..7837280 --- /dev/null +++ b/TENDERLY.md @@ -0,0 +1,96 @@ +# Running the Subgraph on a Tenderly Fork + +This guide explains how to run the subgraph locally against a Tenderly Optimism mainnet fork. + +## Prerequisites + +- Docker and Docker Compose installed +- A Tenderly account with an Optimism mainnet fork + +## Setup + +### 1. Create a Tenderly Fork + +1. Go to [Tenderly Dashboard](https://dashboard.tenderly.co/) +2. Navigate to **Forks** → **Create Fork** +3. Select **Optimism** as the network +4. Copy the fork RPC URL (e.g. `https://rpc.tenderly.co/fork/your-fork-id`) + +### 2. Configure Environment + +```bash +cp docker/.env.tenderly.example docker/.env.tenderly +``` + +Edit `docker/.env.tenderly` and set your `TENDERLY_FORK_RPC` URL. + +### 3. Sync Contract Addresses + +The Tenderly config starts from mainnet addresses, then applies any Tenderly-specific overrides from `config/tenderly-overrides.json`. Run the sync script whenever mainnet addresses change: + +```bash +./scripts/sync-tenderly-config.sh +``` + +To override specific contract addresses for Tenderly (e.g. a redeployed contract on the fork), add them to `config/tenderly-overrides.json`: + +```json +{ + "GEB_SAFE_ENGINE": "0xYourTenderlySpecificAddress...", + "STARTING_BLOCK_NUMBER": "123456789" +} +``` + +The sync script merges mainnet values first, then overwrites with anything in the overrides file. + +### 4. Create Docker Volume (first time only) + +```bash +docker volume create --name=pgdata +``` + +### 5. Start the Services + +```bash +docker compose -f docker/docker-compose.yml -f docker/docker-compose.tenderly.yml --env-file docker/.env.tenderly up +``` + +This starts: +- **graph-node** — connected to your Tenderly fork (port 80 for queries, 8030 for status) +- **ipfs** — local IPFS node (port 5001) +- **postgres** — database (port 5432) +- **graph-deployer** — automatically deploys the subgraph + +### 6. Query the Subgraph + +Once the deployer finishes and graph-node starts indexing, query at: + +``` +http://localhost/subgraphs/name/hai/hai +``` + +Example query: + +```graphql +{ + systemStates(first: 1) { + id + totalActiveSafeCount + } +} +``` + +## Resetting + +To start fresh, stop the containers and remove the data: + +```bash +docker compose -f docker/docker-compose.yml -f docker/docker-compose.tenderly.yml --env-file docker/.env.tenderly down +docker volume rm pgdata +docker volume create --name=pgdata +``` + +## NPM Scripts + +- `npm run prepare-tenderly` — generates `subgraph.yaml` and `addresses.ts` from the Tenderly config +- `npm run sync-tenderly` — copies mainnet addresses to Tenderly config, then applies overrides from `config/tenderly-overrides.json` diff --git a/abis/AccountingEngine.json b/abis/AccountingEngine.json index 5b12f93..938ea96 100644 --- a/abis/AccountingEngine.json +++ b/abis/AccountingEngine.json @@ -1,28 +1,185 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" }, { "internalType": "address", - "name": "surplusAuctionHouse_", + "name": "_safeEngine", "type": "address" }, { "internalType": "address", - "name": "debtAuctionHouse_", + "name": "_surplusAuctionHouse", "type": "address" + }, + { + "internalType": "address", + "name": "_debtAuctionHouse", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "surplusIsTransferred", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "popDebtDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "disableCooldown", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusBuffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtAuctionMintedTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtAuctionBidSize", + "type": "uint256" + } + ], + "internalType": "struct IAccountingEngine.AccountingEngineParams", + "name": "_accEngineParams", + "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AccEng_DebtAuctionDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_InsufficientDebt", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_InsufficientSurplus", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_NullAmount", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_NullSurplusReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_PopDebtCooldown", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_PostSettlementCooldown", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_SurplusAuctionDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_SurplusCooldown", + "type": "error" + }, + { + "inputs": [], + "name": "AccEng_SurplusTransferDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_contract", + "type": "address" + } + ], + "name": "NoCode", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -35,19 +192,19 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "totalOnAuctionDebt", + "name": "_initialBid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "debtBalance", + "name": "_debtAuctioned", "type": "uint256" } ], @@ -60,19 +217,19 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "lastSurplusAuctionTime", + "name": "_initialBid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "coinBalance", + "name": "_surplusAuctioned", "type": "uint256" } ], @@ -85,59 +242,28 @@ { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "totalOnAuctionDebt", + "name": "_coinBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "coinBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "debtBalance", + "name": "_debtBalance", "type": "uint256" } ], - "name": "CancelAuctionedDebtWithSurplus", + "name": "CancelDebt", "type": "event" }, { "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "disableTimestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "disableCooldown", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "coinBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "debtBalance", - "type": "uint256" - } - ], + "inputs": [], "name": "DisableContract", "type": "event" }, @@ -147,33 +273,20 @@ { "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_param", "type": "bytes32" }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "ModifyParameters", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "address", - "name": "data", - "type": "address" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -185,19 +298,13 @@ { "indexed": true, "internalType": "uint256", - "name": "timestamp", + "name": "_timestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "debtQueueBlock", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "totalQueuedDebt", + "name": "_debtAmount", "type": "uint256" } ], @@ -210,19 +317,13 @@ { "indexed": true, "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "debtQueueBlock", + "name": "_timestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "totalQueuedDebt", + "name": "_debtAmount", "type": "uint256" } ], @@ -235,7 +336,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -248,19 +349,19 @@ { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "coinBalance", + "name": "_coinBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "debtBalance", + "name": "_debtBalance", "type": "uint256" } ], @@ -273,53 +374,74 @@ { "indexed": true, "internalType": "address", - "name": "extraSurplusReceiver", + "name": "_extraSurplusReceiver", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "lastSurplusAuctionTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "coinBalance", + "name": "_surplusTransferred", "type": "uint256" } ], - "name": "TransferExtraSurplus", + "name": "TransferSurplus", "type": "event" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "_params", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "postSettlementSurplusDrain", - "type": "address" + "internalType": "uint256", + "name": "surplusIsTransferred", + "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "coinBalance", + "name": "surplusDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "popDebtDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "disableCooldown", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusBuffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtAuctionMintedTokens", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "debtBalance", + "name": "debtAuctionBidSize", "type": "uint256" } ], - "name": "TransferPostSettlementSurplus", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -329,33 +451,69 @@ { "inputs": [], "name": "auctionDebt", - "outputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "auctionSurplus", - "outputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "canPrintProtocolTokens", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "rad", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "name": "cancelAuctionedDebtWithSurplus", "outputs": [], "stateMutability": "nonpayable", @@ -364,14 +522,13 @@ { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "debtAuctionBidSize", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, @@ -380,7 +537,7 @@ "name": "debtAuctionHouse", "outputs": [ { - "internalType": "contract DebtAuctionHouseLike", + "internalType": "contract IDebtAuctionHouse", "name": "", "type": "address" } @@ -389,16 +546,21 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "debtPoppers", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_timestamp", + "type": "uint256" + } + ], "name": "debtQueue", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -409,69 +571,57 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "disableCooldown", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "disableTimestamp", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "extraSurplusIsTransferred", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extraSurplusReceiver", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initialDebtAuctionMintedTokens", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastSurplusAuctionTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "lastSurplusTransferTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "data", "type": "address" } + "name": "lastSurplusTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -480,8 +630,56 @@ }, { "inputs": [], - "name": "popDebtDelay", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "surplusIsTransferred", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "popDebtDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "disableCooldown", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusBuffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtAuctionMintedTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtAuctionBidSize", + "type": "uint256" + } + ], + "internalType": "struct IAccountingEngine.AccountingEngineParams", + "name": "_accEngineParams", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, @@ -489,7 +687,7 @@ "inputs": [ { "internalType": "uint256", - "name": "debtBlockTimestamp", + "name": "_debtBlockTimestamp", "type": "uint256" } ], @@ -501,16 +699,9 @@ { "inputs": [], "name": "postSettlementSurplusDrain", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "protocolTokenAuthority", "outputs": [ { - "internalType": "contract ProtocolTokenAuthorityLike", + "internalType": "address", "name": "", "type": "address" } @@ -520,7 +711,11 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "debtBlock", "type": "uint256" } + { + "internalType": "uint256", + "name": "_debtBlock", + "type": "uint256" + } ], "name": "pushDebtToQueue", "outputs": [], @@ -529,7 +724,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -541,7 +740,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -550,32 +749,24 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "rad", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "name": "settleDebt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "surplusAuctionAmountToSell", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "surplusAuctionDelay", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "surplusAuctionHouse", "outputs": [ { - "internalType": "contract SurplusAuctionHouseLike", + "internalType": "contract ISurplusAuctionHouse", "name": "", "type": "address" } @@ -585,49 +776,27 @@ }, { "inputs": [], - "name": "surplusBuffer", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "surplusTransferAmount", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "surplusTransferDelay", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "systemStakingPool", + "name": "totalOnAuctionDebt", "outputs": [ { - "internalType": "contract SystemStakingPoolLike", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "totalOnAuctionDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "totalQueuedDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -648,8 +817,14 @@ { "inputs": [], "name": "unqueuedUnauctionedDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "__unqueuedUnauctionedDebt", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" } -] +] \ No newline at end of file diff --git a/abis/BurningSurplusAuctionHouse.json b/abis/BurningSurplusAuctionHouse.json index 4adeeb9..e5f9fe6 100644 --- a/abis/BurningSurplusAuctionHouse.json +++ b/abis/BurningSurplusAuctionHouse.json @@ -1,19 +1,154 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" }, - { "internalType": "address", "name": "protocolToken_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_protocolToken", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "bidIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + }, + { + "internalType": "address", + "name": "bidReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "recyclingPercentage", + "type": "uint256" + } + ], + "internalType": "struct ISurplusAuctionHouse.SurplusAuctionHouseParams", + "name": "_sahParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_AmountsNotMatching", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_AuctionAlreadyExpired", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_AuctionNeverStarted", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_AuctionNotFinished", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_BidAlreadyExpired", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_BidAlreadyPlaced", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_BidNotHigher", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_HighBidderNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_InsufficientIncrease", + "type": "error" + }, + { + "inputs": [], + "name": "SAH_NullProtTokenReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -30,33 +165,39 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "highBidder", + "name": "_bidder", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amountToBuy", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "bid", + "name": "_raisedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "bidExpiry", + "name": "_soldAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_bidExpiry", "type": "uint256" } ], @@ -67,16 +208,22 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_param", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -88,7 +235,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -98,16 +245,22 @@ { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "auctionDeadline", + "name": "_auctionDeadline", "type": "uint256" } ], @@ -120,7 +273,25 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_blockTimestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "_highBidder", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_raisedAmount", "type": "uint256" } ], @@ -133,31 +304,37 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, + { + "indexed": true, + "internalType": "address", + "name": "_auctioneer", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "auctionsStarted", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "amountToSell", + "name": "_amountToSell", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "initialBid", + "name": "_amountToRaise", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "auctionDeadline", + "name": "_auctionDeadline", "type": "uint256" } ], @@ -170,25 +347,25 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "uint256", + "name": "_blockTimestamp", + "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "highBidder", + "name": "_highBidder", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "bidAmount", + "name": "_raisedAmount", "type": "uint256" } ], @@ -198,20 +375,95 @@ { "inputs": [], "name": "AUCTION_HOUSE_TYPE", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "_auctions", + "outputs": [ + { + "internalType": "uint256", + "name": "bidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountToSell", + "type": "uint256" + }, + { + "internalType": "address", + "name": "highBidder", + "type": "address" + }, + { + "internalType": "uint256", + "name": "bidExpiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auctionDeadline", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "SURPLUS_AUCTION_TYPE", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "bidIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + }, + { + "internalType": "address", + "name": "bidReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "recyclingPercentage", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -219,42 +471,92 @@ "type": "function" }, { - "inputs": [], - "name": "auctionsStarted", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "auctions", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "bidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountToSell", + "type": "uint256" + }, + { + "internalType": "address", + "name": "highBidder", + "type": "address" + }, + { + "internalType": "uint256", + "name": "bidExpiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auctionDeadline", + "type": "uint256" + } + ], + "internalType": "struct ICommonSurplusAuctionHouse.Auction", + "name": "_auction", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "bidDuration", - "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], + "name": "auctionsStarted", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "bidIncrease", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "bids", + "inputs": [], + "name": "authorizedAccounts", "outputs": [ - { "internalType": "uint256", "name": "bidAmount", "type": "uint256" }, - { "internalType": "uint256", "name": "amountToSell", "type": "uint256" }, - { "internalType": "address", "name": "highBidder", "type": "address" }, - { "internalType": "uint48", "name": "bidExpiry", "type": "uint48" }, - { "internalType": "uint48", "name": "auctionDeadline", "type": "uint48" } + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } ], "stateMutability": "view", "type": "function" @@ -262,7 +564,13 @@ { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, @@ -275,9 +583,21 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amountToBuy", "type": "uint256" }, - { "internalType": "uint256", "name": "bid", "type": "uint256" } + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_amountToBuy", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_bid", + "type": "uint256" + } ], "name": "increaseBidSize", "outputs": [], @@ -286,26 +606,105 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "modifyParameters", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "bidIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + }, + { + "internalType": "address", + "name": "bidReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "recyclingPercentage", + "type": "uint256" + } + ], + "internalType": "struct ISurplusAuctionHouse.SurplusAuctionHouseParams", + "name": "_sahParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "protocolToken", "outputs": [ - { "internalType": "contract TokenLike", "name": "", "type": "address" } + { + "internalType": "contract IProtocolToken", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -313,7 +712,13 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "restartAuction", "outputs": [], "stateMutability": "nonpayable", @@ -324,7 +729,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -333,7 +738,13 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "settleAuction", "outputs": [], "stateMutability": "nonpayable", @@ -341,26 +752,39 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "amountToSell", "type": "uint256" }, - { "internalType": "uint256", "name": "initialBid", "type": "uint256" } + { + "internalType": "uint256", + "name": "_amountToSell", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_initialBid", + "type": "uint256" + } ], "name": "startAuction", - "outputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "terminateAuctionPrematurely", "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "totalAuctionLength", - "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], - "stateMutability": "view", - "type": "function" } -] +] \ No newline at end of file diff --git a/abis/CoinJoin.json b/abis/CoinJoin.json index 3d1ecf6..5c805ff 100644 --- a/abis/CoinJoin.json +++ b/abis/CoinJoin.json @@ -1,19 +1,62 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" }, - { "internalType": "address", "name": "systemCoin_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_systemCoin", + "type": "address" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -32,19 +75,19 @@ { "indexed": false, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_wad", "type": "uint256" } ], @@ -57,19 +100,19 @@ { "indexed": false, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_wad", "type": "uint256" } ], @@ -82,7 +125,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -91,7 +134,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -99,23 +146,60 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -128,8 +212,16 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "exit", "outputs": [], @@ -138,8 +230,16 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "join", "outputs": [], @@ -148,7 +248,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -160,7 +264,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -172,9 +276,13 @@ "inputs": [], "name": "systemCoin", "outputs": [ - { "internalType": "contract DSTokenLike", "name": "", "type": "address" } + { + "internalType": "contract ISystemCoin", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" } -] +] \ No newline at end of file diff --git a/abis/DSProxyFactory.json b/abis/DSProxyFactory.json deleted file mode 100644 index 0dd645f..0000000 --- a/abis/DSProxyFactory.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "proxy", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "cache", - "type": "address" - } - ], - "name": "Created", - "type": "event" - }, - { - "inputs": [], - "name": "build", - "outputs": [ - { "internalType": "address payable", "name": "proxy", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" } - ], - "name": "build", - "outputs": [ - { "internalType": "address payable", "name": "proxy", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cache", - "outputs": [ - { "internalType": "contract DSProxyCache", "name": "", "type": "address" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "isProxy", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abis/DebtAuctionHouse.json b/abis/DebtAuctionHouse.json index a3a065d..60e2f6d 100644 --- a/abis/DebtAuctionHouse.json +++ b/abis/DebtAuctionHouse.json @@ -1,19 +1,155 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" }, - { "internalType": "address", "name": "protocolToken_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_protocolToken", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "bidDecrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountSoldIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + } + ], + "internalType": "struct IDebtAuctionHouse.DebtAuctionHouseParams", + "name": "_dahParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_AmountBoughtNotLower", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_AuctionAlreadyExpired", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_AuctionNeverStarted", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_AuctionNotFinished", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_BidAlreadyExpired", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_BidAlreadyPlaced", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_HighBidderNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_InsufficientDecrease", + "type": "error" + }, + { + "inputs": [], + "name": "DAH_NotMatchingBid", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_contract", + "type": "address" + } + ], + "name": "NoCode", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -26,31 +162,37 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "highBidder", + "name": "_bidder", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amountToBuy", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "bid", + "name": "_raisedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "bidExpiry", + "name": "_soldAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_bidExpiry", "type": "uint256" } ], @@ -59,14 +201,7 @@ }, { "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], + "inputs": [], "name": "DisableContract", "type": "event" }, @@ -74,35 +209,22 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_param", "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "ModifyParameters", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "address", - "name": "data", - "type": "address" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -114,7 +236,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -127,13 +249,19 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "auctionDeadline", + "name": "_blockTimestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_auctionDeadline", "type": "uint256" } ], @@ -146,13 +274,25 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "activeDebtAuctions", + "name": "_blockTimestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "_highBidder", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_raisedAmount", "type": "uint256" } ], @@ -165,43 +305,37 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", "type": "uint256" }, { - "indexed": false, - "internalType": "uint256", - "name": "auctionsStarted", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_auctioneer", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amountToSell", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "initialBid", + "name": "_amountToSell", "type": "uint256" }, { - "indexed": true, - "internalType": "address", - "name": "incomeReceiver", - "type": "address" - }, - { - "indexed": true, + "indexed": false, "internalType": "uint256", - "name": "auctionDeadline", + "name": "_amountToRaise", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "activeDebtAuctions", + "name": "_auctionDeadline", "type": "uint256" } ], @@ -214,61 +348,144 @@ { "indexed": true, "internalType": "uint256", - "name": "id", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_blockTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "sender", + "name": "_highBidder", "type": "address" }, { "indexed": false, + "internalType": "uint256", + "name": "_raisedAmount", + "type": "uint256" + } + ], + "name": "TerminateAuctionPrematurely", + "type": "event" + }, + { + "inputs": [], + "name": "AUCTION_HOUSE_TYPE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_auctionId", + "type": "uint256" + } + ], + "name": "_auctions", + "outputs": [ + { + "internalType": "uint256", + "name": "bidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountToSell", + "type": "uint256" + }, + { "internalType": "address", "name": "highBidder", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "bidAmount", + "name": "bidExpiry", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "activeDebtAuctions", + "name": "auctionDeadline", "type": "uint256" } ], - "name": "TerminateAuctionPrematurely", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "AUCTION_HOUSE_TYPE", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "bidDecrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountSoldIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "accountingEngine", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeDebtAuctions", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -276,49 +493,92 @@ "type": "function" }, { - "inputs": [], - "name": "amountSoldIncrease", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "auctions", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "bidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountToSell", + "type": "uint256" + }, + { + "internalType": "address", + "name": "highBidder", + "type": "address" + }, + { + "internalType": "uint256", + "name": "bidExpiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auctionDeadline", + "type": "uint256" + } + ], + "internalType": "struct IDebtAuctionHouse.Auction", + "name": "_auction", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "auctionsStarted", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bidDecrease", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "bidDuration", - "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "bids", + "name": "authorizedAccounts", "outputs": [ - { "internalType": "uint256", "name": "bidAmount", "type": "uint256" }, - { "internalType": "uint256", "name": "amountToSell", "type": "uint256" }, - { "internalType": "address", "name": "highBidder", "type": "address" }, - { "internalType": "uint48", "name": "bidExpiry", "type": "uint48" }, - { "internalType": "uint48", "name": "auctionDeadline", "type": "uint48" } + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } ], "stateMutability": "view", "type": "function" @@ -326,15 +586,28 @@ { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amountToBuy", "type": "uint256" }, - { "internalType": "uint256", "name": "bid", "type": "uint256" } + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_amountToBuy", + "type": "uint256" + } ], "name": "decreaseSoldAmount", "outputs": [], @@ -350,8 +623,16 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "addr", "type": "address" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -359,27 +640,60 @@ "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + "inputs": [], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "bidDecrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountSoldIncrease", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bidDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAuctionLength", + "type": "uint256" + } + ], + "internalType": "struct IDebtAuctionHouse.DebtAuctionHouseParams", + "name": "_dahParams", + "type": "tuple" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "protocolToken", "outputs": [ - { "internalType": "contract TokenLike", "name": "", "type": "address" } + { + "internalType": "contract IProtocolToken", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -387,7 +701,13 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "restartAuction", "outputs": [], "stateMutability": "nonpayable", @@ -398,7 +718,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -407,7 +727,13 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "settleAuction", "outputs": [], "stateMutability": "nonpayable", @@ -417,29 +743,42 @@ "inputs": [ { "internalType": "address", - "name": "incomeReceiver", + "name": "_incomeReceiver", "type": "address" }, - { "internalType": "uint256", "name": "amountToSell", "type": "uint256" }, - { "internalType": "uint256", "name": "initialBid", "type": "uint256" } + { + "internalType": "uint256", + "name": "_amountToSell", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_initialBid", + "type": "uint256" + } ], "name": "startAuction", - "outputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "name": "terminateAuctionPrematurely", "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "totalAuctionLength", - "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], - "stateMutability": "view", - "type": "function" } -] +] \ No newline at end of file diff --git a/abis/GebSafeManager.json b/abis/GebSafeManager.json index 57653c3..df90a24 100644 --- a/abis/GebSafeManager.json +++ b/abis/GebSafeManager.json @@ -1,31 +1,70 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadySafeOwner", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralTypesMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "HandlerNotAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "IntOverflow", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "SafeNotAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "usr", + "name": "_usr", "type": "address" }, { "indexed": false, - "internalType": "uint256", - "name": "ok", - "type": "uint256" + "internalType": "bool", + "name": "_ok", + "type": "bool" } ], "name": "AllowHandler", @@ -35,28 +74,28 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "usr", + "name": "_usr", "type": "address" }, { "indexed": false, - "internalType": "uint256", - "name": "ok", - "type": "uint256" + "internalType": "bool", + "name": "_ok", + "type": "bool" } ], "name": "AllowSAFE", @@ -66,21 +105,21 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "src", + "name": "_src", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" } ], @@ -91,27 +130,52 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, { "indexed": false, + "internalType": "address", + "name": "_dst", + "type": "address" + } + ], + "name": "InitiateTransferSAFEOwnership", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "int256", - "name": "deltaCollateral", + "name": "_deltaCollateral", "type": "int256" }, { "indexed": false, "internalType": "int256", - "name": "deltaDebt", + "name": "_deltaDebt", "type": "int256" } ], @@ -122,21 +186,21 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safeSrc", + "name": "_safeSrc", "type": "uint256" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safeDst", + "name": "_safeDst", "type": "uint256" } ], @@ -149,19 +213,19 @@ { "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "own", + "name": "_own", "type": "address" }, { "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" } ], @@ -172,27 +236,27 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "liquidationEngine", + "name": "_liquidationEngine", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "saviour", + "name": "_saviour", "type": "address" } ], @@ -203,21 +267,21 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" } ], @@ -228,27 +292,27 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_wad", "type": "uint256" } ], @@ -259,33 +323,33 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_wad", "type": "uint256" } ], @@ -296,27 +360,27 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" } ], @@ -327,21 +391,21 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "safe", + "name": "_safe", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" } ], @@ -350,36 +414,83 @@ }, { "inputs": [ - { "internalType": "address", "name": "usr", "type": "address" }, - { "internalType": "uint256", "name": "ok", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + } ], - "name": "allowHandler", + "name": "acceptSAFEOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "usr", "type": "address" }, - { "internalType": "uint256", "name": "ok", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + } ], - "name": "allowSAFE", + "name": "addSAFE", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "collateralTypes", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "view", + "inputs": [ + { + "internalType": "address", + "name": "_usr", + "type": "address" + }, + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + } + ], + "name": "allowHandler", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "src", "type": "address" }, - { "internalType": "uint256", "name": "safe", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_usr", + "type": "address" + }, + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + } + ], + "name": "allowSAFE", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_src", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + } ], "name": "enterSystem", "outputs": [], @@ -387,34 +498,118 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "firstSAFEID", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "address", + "name": "_usr", + "type": "address" + } + ], + "name": "getSafes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "_safes", + "type": "uint256[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "address", + "name": "_usr", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "getSafes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "_safes", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_usr", + "type": "address" + } + ], + "name": "getSafesData", + "outputs": [ + { + "internalType": "uint256[]", + "name": "_safes", + "type": "uint256[]" + }, + { + "internalType": "address[]", + "name": "_safeHandlers", + "type": "address[]" + }, + { + "internalType": "bytes32[]", + "name": "_cTypes", + "type": "bytes32[]" + } ], - "name": "handlerCan", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "lastSAFEID", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "address", + "name": "_safeHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "handlerCan", + "outputs": [ + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "int256", "name": "deltaCollateral", "type": "int256" }, - { "internalType": "int256", "name": "deltaDebt", "type": "int256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "_deltaCollateral", + "type": "int256" + }, + { + "internalType": "int256", + "name": "_deltaDebt", + "type": "int256" + } ], "name": "modifySAFECollateralization", "outputs": [], @@ -423,8 +618,16 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "safeSrc", "type": "uint256" }, - { "internalType": "uint256", "name": "safeDst", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safeSrc", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_safeDst", + "type": "uint256" + } ], "name": "moveSAFE", "outputs": [], @@ -435,32 +638,43 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "usr", "type": "address" } + { + "internalType": "address", + "name": "_usr", + "type": "address" + } ], "name": "openSAFE", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "ownsSAFE", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, { "internalType": "address", - "name": "liquidationEngine", + "name": "_liquidationEngine", "type": "address" }, - { "internalType": "address", "name": "saviour", "type": "address" } + { + "internalType": "address", + "name": "_saviour", + "type": "address" + } ], "name": "protectSAFE", "outputs": [], @@ -469,8 +683,16 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "dst", "type": "address" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + } ], "name": "quitSystem", "outputs": [], @@ -479,58 +701,117 @@ }, { "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + } ], - "name": "safeCan", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "safeCount", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", + "name": "removeSAFE", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "safeEngine", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_safeId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "safeCan", + "outputs": [ + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "safeList", + "inputs": [ + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + } + ], + "name": "safeData", "outputs": [ - { "internalType": "uint256", "name": "prev", "type": "uint256" }, - { "internalType": "uint256", "name": "next", "type": "uint256" } + { + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "pendingOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "safeHandler", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "collateralType", + "type": "bytes32" + } + ], + "internalType": "struct IHaiSafeManager.SAFEData", + "name": "_sData", + "type": "tuple" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "safei", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "safes", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "name": "safeEngine", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "transferCollateral", "outputs": [], @@ -541,12 +822,24 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "transferCollateral", "outputs": [], @@ -555,9 +848,21 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "transferInternalCoins", "outputs": [], @@ -566,12 +871,20 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "safe", "type": "uint256" }, - { "internalType": "address", "name": "dst", "type": "address" } + { + "internalType": "uint256", + "name": "_safe", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + } ], "name": "transferSAFEOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/abis/GlobalSettlement.json b/abis/GlobalSettlement.json index b12d934..e6ab9a0 100644 --- a/abis/GlobalSettlement.json +++ b/abis/GlobalSettlement.json @@ -1,12 +1,180 @@ [ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_liquidationEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_oracleRelayer", + "type": "address" + }, + { + "internalType": "address", + "name": "_coinJoin", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralJoinFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAuctionHouseFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_stabilityFeeTreasury", + "type": "address" + }, + { + "internalType": "address", + "name": "_accountingEngine", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "shutdownCooldown", + "type": "uint256" + } + ], + "internalType": "struct IGlobalSettlement.GlobalSettlementParams", + "name": "_gsParams", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "GS_CollateralCashPriceAlreadyDefined", + "type": "error" + }, + { + "inputs": [], + "name": "GS_CollateralCashPriceNotDefined", + "type": "error" + }, + { + "inputs": [], + "name": "GS_FinalCollateralPriceAlreadyDefined", + "type": "error" + }, + { + "inputs": [], + "name": "GS_FinalCollateralPriceNotDefined", + "type": "error" + }, + { + "inputs": [], + "name": "GS_InsufficientBagBalance", + "type": "error" + }, + { + "inputs": [], + "name": "GS_OutstandingCoinSupplyNotZero", + "type": "error" + }, + { + "inputs": [], + "name": "GS_OutstandingCoinSupplyZero", + "type": "error" + }, + { + "inputs": [], + "name": "GS_SafeDebtNotZero", + "type": "error" + }, + { + "inputs": [], + "name": "GS_ShutdownCooldownNotFinished", + "type": "error" + }, + { + "inputs": [], + "name": "GS_SurplusNotZero", + "type": "error" + }, + { + "inputs": [], + "name": "IntOverflow", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_contract", + "type": "address" + } + ], + "name": "NoCode", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -19,38 +187,44 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", - "name": "collateralCashPrice", + "name": "_collateralCashPrice", "type": "uint256" } ], "name": "CalculateCashPrice", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "DisableContract", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "auctionId", + "name": "_auctionId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "collateralTotalDebt", + "name": "_collateralTotalDebt", "type": "uint256" } ], @@ -63,20 +237,20 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, - "internalType": "int256", - "name": "collateralAmount", - "type": "int256" + "internalType": "uint256", + "name": "_collateralAmount", + "type": "uint256" } ], "name": "FreeCollateral", @@ -88,13 +262,13 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", - "name": "finalCoinPerCollateralPrice", + "name": "_finalCoinPerCollateralPrice", "type": "uint256" } ], @@ -105,35 +279,22 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_param", "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "ModifyParameters", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "address", - "name": "data", - "type": "address" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -145,13 +306,13 @@ { "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "coinBag", + "name": "_coinBag", "type": "uint256" } ], @@ -164,19 +325,19 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "safe", + "name": "_safe", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "collateralShortfall", + "name": "_collateralShortfall", "type": "uint256" } ], @@ -189,25 +350,25 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "coinsAmount", + "name": "_coinsAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "collateralAmount", + "name": "_collateralAmount", "type": "uint256" } ], @@ -220,7 +381,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -233,7 +394,7 @@ { "indexed": false, "internalType": "uint256", - "name": "outstandingCoinSupply", + "name": "_outstandingCoinSupply", "type": "uint256" } ], @@ -246,12 +407,25 @@ "name": "ShutdownSystem", "type": "event" }, + { + "inputs": [], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "shutdownCooldown", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "accountingEngine", "outputs": [ { - "internalType": "contract AccountingEngineLike", + "internalType": "contract IDisableable", "name": "", "type": "address" } @@ -261,7 +435,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -269,15 +447,44 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "calculateCashPrice", "outputs": [], @@ -285,18 +492,30 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_usr", + "type": "address" + } + ], "name": "coinBag", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "coinSavingsAccount", + "name": "coinJoin", "outputs": [ { - "internalType": "contract CoinSavingsAccountLike", + "internalType": "contract IDisableable", "name": "", "type": "address" } @@ -306,50 +525,143 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_usr", + "type": "address" + } ], "name": "coinsUsedToRedeem", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralAuctionHouseFactory", + "outputs": [ + { + "internalType": "contract IDisableable", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], "name": "collateralCashPrice", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_ray", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralJoinFactory", + "outputs": [ + { + "internalType": "contract IDisableable", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], "name": "collateralShortfall", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], "name": "collateralTotalDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "disableContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "uint256", "name": "auctionId", "type": "uint256" } + { + "internalType": "uint256", + "name": "_auctionId", + "type": "uint256" + } ], "name": "fastTrackAuction", "outputs": [], @@ -357,15 +669,31 @@ "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], "name": "finalCoinPerCollateralPrice", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_ray", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "freeCollateral", "outputs": [], @@ -374,7 +702,11 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "freezeCollateralType", "outputs": [], @@ -386,7 +718,7 @@ "name": "liquidationEngine", "outputs": [ { - "internalType": "contract LiquidationEngineLike", + "internalType": "contract ILiquidationEngine", "name": "", "type": "address" } @@ -396,8 +728,16 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "data", "type": "address" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -405,23 +745,26 @@ "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + "inputs": [], + "name": "oracleRelayer", + "outputs": [ + { + "internalType": "contract IOracleRelayer", + "name": "", + "type": "address" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "oracleRelayer", + "name": "outstandingCoinSupply", "outputs": [ { - "internalType": "contract OracleRelayerLike", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -429,14 +772,31 @@ }, { "inputs": [], - "name": "outstandingCoinSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "shutdownCooldown", + "type": "uint256" + } + ], + "internalType": "struct IGlobalSettlement.GlobalSettlementParams", + "name": "_globalSettlementParams", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "coinAmount", "type": "uint256" } + { + "internalType": "uint256", + "name": "_coinAmount", + "type": "uint256" + } ], "name": "prepareCoinsForRedeeming", "outputs": [], @@ -447,10 +807,14 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "safe", "type": "address" } + { + "internalType": "address", + "name": "_safe", + "type": "address" + } ], "name": "processSAFE", "outputs": [], @@ -461,10 +825,14 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "uint256", "name": "coinsAmount", "type": "uint256" } + { + "internalType": "uint256", + "name": "_coinsAmount", + "type": "uint256" + } ], "name": "redeemCollateral", "outputs": [], @@ -473,7 +841,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -485,7 +857,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -500,13 +872,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "shutdownCooldown", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "shutdownSystem", @@ -517,7 +882,13 @@ { "inputs": [], "name": "shutdownTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -526,7 +897,7 @@ "name": "stabilityFeeTreasury", "outputs": [ { - "internalType": "contract StabilityFeeTreasuryLike", + "internalType": "contract IDisableable", "name": "", "type": "address" } @@ -534,4 +905,4 @@ "stateMutability": "view", "type": "function" } -] +] \ No newline at end of file diff --git a/abis/HaiProxyFactory.json b/abis/HaiProxyFactory.json new file mode 100644 index 0000000..6a5e114 --- /dev/null +++ b/abis/HaiProxyFactory.json @@ -0,0 +1,132 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "contract IHaiProxy", + "name": "_proxy", + "type": "address" + } + ], + "name": "AlreadyHasProxy", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_proxy", + "type": "address" + } + ], + "name": "Created", + "type": "event" + }, + { + "inputs": [], + "name": "build", + "outputs": [ + { + "internalType": "address payable", + "name": "_proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "build", + "outputs": [ + { + "internalType": "address payable", + "name": "_proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_proxyAddress", + "type": "address" + } + ], + "name": "isProxy", + "outputs": [ + { + "internalType": "bool", + "name": "_exists", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "proxies", + "outputs": [ + { + "internalType": "contract IHaiProxy", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/abis/LiquidationEngine.json b/abis/LiquidationEngine.json index 897f4fb..7925b78 100644 --- a/abis/LiquidationEngine.json +++ b/abis/LiquidationEngine.json @@ -1,18 +1,181 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "address", + "name": "_accountingEngine", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "onAuctionSystemCoinLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "saviourGasLimit", + "type": "uint256" + } + ], + "internalType": "struct ILiquidationEngine.LiquidationEngineParams", + "name": "_liqEngineParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralTypeAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "IntOverflow", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_CannotModifySAFE", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_InvalidAmounts", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_InvalidSAFESaviourOperation", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_LiquidationLimitHit", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_NullAuction", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_NullCollateralToSell", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_OnlyLiqEng", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_SAFENotUnsafe", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_SaviourNotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "LiqEng_SaviourNotOk", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_contract", + "type": "address" + } + ], + "name": "NoCode", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_y", + "type": "uint256" + } + ], + "name": "NotLesserOrEqualThan", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrancyGuardReentrantCall", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -25,7 +188,7 @@ { "indexed": false, "internalType": "address", - "name": "saviour", + "name": "_saviour", "type": "address" } ], @@ -44,7 +207,7 @@ { "indexed": false, "internalType": "address", - "name": "saviour", + "name": "_saviour", "type": "address" } ], @@ -57,56 +220,69 @@ { "indexed": false, "internalType": "bytes", - "name": "failReason", + "name": "_failReason", "type": "bytes" } ], "name": "FailedSAFESave", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "InitializeCollateralType", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "safe", + "name": "_safe", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "collateralAmount", + "name": "_collateralAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "debtAmount", + "name": "_debtAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "amountToRaise", + "name": "_amountToRaise", "type": "uint256" }, { "indexed": false, "internalType": "address", - "name": "collateralAuctioneer", + "name": "_collateralAuctioneer", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "auctionId", + "name": "_auctionId", "type": "uint256" } ], @@ -117,35 +293,22 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_param", "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "ModifyParameters", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "address", - "name": "data", - "type": "address" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -155,50 +318,38 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "_safe", + "type": "address" }, { "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "address", + "name": "_saviour", + "type": "address" } ], - "name": "ModifyParameters", + "name": "ProtectSAFE", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "collateralType", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" - }, { "indexed": false, "internalType": "address", - "name": "data", + "name": "_account", "type": "address" } ], - "name": "ModifyParameters", + "name": "RemoveAuthorization", "type": "event" }, { @@ -207,23 +358,23 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "safe", + "name": "_safe", "type": "address" }, { "indexed": false, - "internalType": "address", - "name": "saviour", - "type": "address" + "internalType": "uint256", + "name": "_collateralAddedOrDebtRepaid", + "type": "uint256" } ], - "name": "ProtectSAFE", + "name": "SaveSAFE", "type": "event" }, { @@ -231,58 +382,67 @@ "inputs": [ { "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_currentOnAuctionSystemCoins", + "type": "uint256" } ], - "name": "RemoveAuthorization", + "name": "UpdateCurrentOnAuctionSystemCoins", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" - }, + } + ], + "name": "_cParams", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "safe", + "name": "collateralAuctionHouse", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "collateralAddedOrDebtRepaid", + "name": "liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationQuantity", "type": "uint256" } ], - "name": "SaveSAFE", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "onAuctionSystemCoinLimit", + "type": "uint256" + }, { - "indexed": false, "internalType": "uint256", - "name": "currentOnAuctionSystemCoins", + "name": "saviourGasLimit", "type": "uint256" } ], - "name": "UpdateCurrentOnAuctionSystemCoins", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], "name": "accountingEngine", "outputs": [ { - "internalType": "contract AccountingEngineLike", + "internalType": "contract IAccountingEngine", "name": "", "type": "address" } @@ -292,7 +452,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -300,40 +464,163 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_safe", + "type": "address" + }, + { + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "lockedCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "generatedDebt", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFE", + "name": "_safeData", + "type": "tuple" + } + ], + "name": "attemptSave", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "lockedCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "generatedDebt", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFE", + "name": "_newSafeData", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" } + "inputs": [], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } ], - "name": "chosenSAFESaviour", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "collateralTypes", + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "cParams", "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "collateralAuctionHouse", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationQuantity", + "type": "uint256" + } + ], + "internalType": "struct ILiquidationEngine.LiquidationEngineCollateralParams", + "name": "_liqEngineCParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, { "internalType": "address", - "name": "collateralAuctionHouse", + "name": "_safe", "type": "address" - }, + } + ], + "name": "chosenSAFESaviour", + "outputs": [ { - "internalType": "uint256", - "name": "liquidationPenalty", - "type": "uint256" - }, + "internalType": "address", + "name": "_saviour", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralList", + "outputs": [ { - "internalType": "uint256", - "name": "liquidationQuantity", - "type": "uint256" + "internalType": "bytes32[]", + "name": "__collateralList", + "type": "bytes32[]" } ], "stateMutability": "view", @@ -341,7 +628,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "saviour", "type": "address" } + { + "internalType": "address", + "name": "_saviour", + "type": "address" + } ], "name": "connectSAFESaviour", "outputs": [], @@ -351,14 +642,26 @@ { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentOnAuctionSystemCoins", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -371,7 +674,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "saviour", "type": "address" } + { + "internalType": "address", + "name": "_saviour", + "type": "address" + } ], "name": "disconnectSAFESaviour", "outputs": [], @@ -382,13 +689,23 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "safe", "type": "address" } + { + "internalType": "address", + "name": "_safe", + "type": "address" + } ], "name": "getLimitAdjustedDebtToCover", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_limitAdjustedDebtToCover", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -396,15 +713,17 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "safe", "type": "address" } - ], - "name": "liquidateSAFE", - "outputs": [ - { "internalType": "uint256", "name": "auctionId", "type": "uint256" } + { + "internalType": "bytes", + "name": "_collateralParams", + "type": "bytes" + } ], + "name": "initializeCollateralType", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -412,24 +731,23 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "data", "type": "address" } + { + "internalType": "address", + "name": "_safe", + "type": "address" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "data", "type": "address" } + "name": "liquidateSAFE", + "outputs": [ + { + "internalType": "uint256", + "name": "_auctionId", + "type": "uint256" + } ], - "name": "modifyParameters", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -437,11 +755,19 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_param", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -450,28 +776,44 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "mutex", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], - "name": "onAuctionSystemCoinLimit", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "onAuctionSystemCoinLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "saviourGasLimit", + "type": "uint256" + } + ], + "internalType": "struct ILiquidationEngine.LiquidationEngineParams", + "name": "_liqEngineParams", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, @@ -479,11 +821,19 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "safe", "type": "address" }, - { "internalType": "address", "name": "saviour", "type": "address" } + { + "internalType": "address", + "name": "_safe", + "type": "address" + }, + { + "internalType": "address", + "name": "_saviour", + "type": "address" + } ], "name": "protectSAFE", "outputs": [], @@ -492,7 +842,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -500,7 +854,13 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "rad", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "name": "removeCoinsFromAuction", "outputs": [], "stateMutability": "nonpayable", @@ -511,7 +871,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -520,10 +880,22 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_saviour", + "type": "address" + } + ], "name": "safeSaviours", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_allowed", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" } -] +] \ No newline at end of file diff --git a/abis/OracleRelayer.json b/abis/OracleRelayer.json index 79fa8f2..def58bd 100644 --- a/abis/OracleRelayer.json +++ b/abis/OracleRelayer.json @@ -1,53 +1,173 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "internalType": "contract IBaseOracle", + "name": "_systemCoinOracle", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "redemptionRateUpperBound", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "redemptionRateLowerBound", + "type": "uint256" + } + ], + "internalType": "struct IOracleRelayer.OracleRelayerParams", + "name": "_oracleRelayerParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, { - "anonymous": false, + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralTypeAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { "inputs": [ { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_contract", "type": "address" } ], - "name": "AddAuthorization", - "type": "event" + "name": "NoCode", + "type": "error" }, { - "anonymous": false, "inputs": [], - "name": "DisableContract", - "type": "event" + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "bytes32", - "name": "collateralType", - "type": "bytes32" + "internalType": "uint256", + "name": "_x", + "type": "uint256" }, { - "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" + "internalType": "uint256", + "name": "_y", + "type": "uint256" + } + ], + "name": "NotGreaterOrEqualThan", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_x", + "type": "uint256" }, + { + "internalType": "uint256", + "name": "_y", + "type": "uint256" + } + ], + "name": "NotGreaterThan", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_y", + "type": "uint256" + } + ], + "name": "NotLesserThan", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "OracleRelayer_CollateralTypeAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "OracleRelayer_RedemptionPriceNotUpdated", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, "internalType": "address", - "name": "addr", + "name": "_account", "type": "address" } ], - "name": "ModifyParameters", + "name": "AddAuthorization", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DisableContract", "type": "event" }, { @@ -56,39 +176,33 @@ { "indexed": false, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" } ], - "name": "ModifyParameters", + "name": "InitializeCollateralType", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_param", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -100,7 +214,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -113,25 +227,25 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", - "name": "priceFeedValue", + "name": "_priceFeedValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "safetyPrice", + "name": "_safetyPrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "liquidationPrice", + "name": "_liquidationPrice", "type": "uint256" } ], @@ -144,7 +258,7 @@ { "indexed": false, "internalType": "uint256", - "name": "redemptionPrice", + "name": "_redemptionPrice", "type": "uint256" } ], @@ -153,7 +267,58 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "_cParams", + "outputs": [ + { + "internalType": "contract IBaseOracle", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint256", + "name": "safetyCRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationCRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "redemptionRateUpperBound", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "redemptionRateLowerBound", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -161,35 +326,109 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "collateralTypes", + "inputs": [], + "name": "authorizedAccounts", "outputs": [ { - "internalType": "contract OracleLike", - "name": "orcl", - "type": "address" - }, - { "internalType": "uint256", "name": "safetyCRatio", "type": "uint256" }, + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "cParams", + "outputs": [ + { + "components": [ + { + "internalType": "contract IBaseOracle", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint256", + "name": "safetyCRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationCRatio", + "type": "uint256" + } + ], + "internalType": "struct IOracleRelayer.OracleRelayerCollateralParams", + "name": "_oracleRelayerCParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "calcRedemptionPrice", + "outputs": [ { "internalType": "uint256", - "name": "liquidationCRatio", + "name": "_virtualRedemptionPrice", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "collateralList", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "__collateralList", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, @@ -200,39 +439,54 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } - ], - "name": "liquidationCRatio", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "addr", "type": "address" } + { + "internalType": "bytes", + "name": "_collateralParams", + "type": "bytes" + } ], - "name": "modifyParameters", + "name": "initializeCollateralType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "marketPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "_marketPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_param", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -241,8 +495,16 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -250,52 +512,76 @@ "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + "inputs": [], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "redemptionRateUpperBound", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "redemptionRateLowerBound", + "type": "uint256" + } + ], + "internalType": "struct IOracleRelayer.OracleRelayerParams", + "name": "_oracleRelayerParams", + "type": "tuple" + } ], - "name": "orcl", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "redemptionPrice", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_updatedPrice", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "redemptionPriceUpdateTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "redemptionRate", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "redemptionRateLowerBound", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "redemptionRateUpperBound", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -307,7 +593,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -316,21 +602,42 @@ "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + "inputs": [], + "name": "systemCoinOracle", + "outputs": [ + { + "internalType": "contract IBaseOracle", + "name": "", + "type": "address" + } ], - "name": "safetyCRatio", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "updateCollateralPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_redemptionRate", + "type": "uint256" + } + ], + "name": "updateRedemptionRate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } -] +] \ No newline at end of file diff --git a/abis/RewardDistributor.json b/abis/RewardDistributor.json new file mode 100644 index 0000000..82882cf --- /dev/null +++ b/abis/RewardDistributor.json @@ -0,0 +1,5 @@ +[{"inputs":[ + {"internalType":"uint256","name":"_epochDuration","type":"uint256"}, + {"internalType":"uint256","name":"_bufferDuration","type":"uint256"}, + {"internalType":"address","name":"_rootSetter","type":"address"}], + "stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyAuthorized","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"NotAuthorized","type":"error"},{"inputs":[{"internalType":"uint256","name":"_x","type":"uint256"},{"internalType":"uint256","name":"_y","type":"uint256"}],"name":"NotGreaterThan","type":"error"},{"inputs":[],"name":"RewardDistributor_AlreadyClaimed","type":"error"},{"inputs":[],"name":"RewardDistributor_ArrayLengthsMustMatch","type":"error"},{"inputs":[],"name":"RewardDistributor_InitialEpochAlreadyStarted","type":"error"},{"inputs":[],"name":"RewardDistributor_InitialEpochNotStarted","type":"error"},{"inputs":[],"name":"RewardDistributor_InvalidAmount","type":"error"},{"inputs":[],"name":"RewardDistributor_InvalidMerkleProof","type":"error"},{"inputs":[],"name":"RewardDistributor_InvalidMerkleRoot","type":"error"},{"inputs":[],"name":"RewardDistributor_InvalidTokenAddress","type":"error"},{"inputs":[],"name":"RewardDistributor_NotRootSetter","type":"error"},{"inputs":[],"name":"RewardDistributor_TooSoonEpochNotElapsed","type":"error"},{"inputs":[],"name":"RewardDistributor_TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnrecognizedCType","type":"error"},{"inputs":[],"name":"UnrecognizedParam","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_param","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"_cType","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_rescueReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"_rewardToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"RewardDistributorEmergencyWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_rewardToken","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_epochCounter","type":"uint256"}],"name":"RewardDistributorMerkleRootUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":true,"internalType":"address","name":"_rewardToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"RewardDistributorRewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"bool","name":"_authorized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authorizedAccounts","outputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bufferDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rescueReceiver","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epochDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"_hasClaimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"merkleRoots","outputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_param","type":"bytes32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_wads","type":"uint256[]"},{"internalType":"bytes32[][]","name":"_merkleProofs","type":"bytes32[][]"}],"name":"multiClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startInitialEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"bytes32[]","name":"_merkleRoots","type":"bytes32[]"}],"name":"updateMerkleRoots","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/abis/SAFEEngine.json b/abis/SAFEEngine.json index 9942a74..4bd7f20 100644 --- a/abis/SAFEEngine.json +++ b/abis/SAFEEngine.json @@ -1,12 +1,129 @@ [ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "safeDebtCeiling", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "globalDebtCeiling", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFEEngineParams", + "name": "_safeEngineParams", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralTypeAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "IntOverflow", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_CollateralDebtCeilingHit", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_CollateralTypeNotInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_DustySAFE", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_GlobalDebtCeilingHit", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_NotCollateralSrcAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_NotDebtDstAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_NotSAFEAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_SAFEDebtCeilingHit", + "type": "error" + }, + { + "inputs": [], + "name": "SAFEEng_SAFENotSafe", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -19,13 +136,13 @@ { "indexed": false, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -38,44 +155,38 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "safe", + "name": "_safe", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "collateralCounterparty", + "name": "_collateralSource", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "debtCounterparty", + "name": "_debtDestination", "type": "address" }, { "indexed": false, "internalType": "int256", - "name": "deltaCollateral", + "name": "_deltaCollateral", "type": "int256" }, { "indexed": false, "internalType": "int256", - "name": "deltaDebt", + "name": "_deltaDebt", "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalUnbackedDebt", - "type": "uint256" } ], "name": "ConfiscateSAFECollateralAndDebt", @@ -87,43 +198,19 @@ { "indexed": true, "internalType": "address", - "name": "debtDestination", + "name": "_debtDestination", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "coinDestination", + "name": "_coinDestination", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "debtDstBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "coinDstBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalUnbackedDebt", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalDebt", + "name": "_rad", "type": "uint256" } ], @@ -136,13 +223,13 @@ { "indexed": false, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -161,7 +248,7 @@ { "indexed": false, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" } ], @@ -174,64 +261,20 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_param", "type": "bytes32" }, { "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "int256", - "name": "wad", - "type": "int256" - } - ], - "name": "ModifyCollateralBalance", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "ModifyParameters", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "collateralType", - "type": "bytes32" - }, - { - "indexed": false, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -243,56 +286,38 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "safe", + "name": "_safe", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "collateralSource", + "name": "_collateralSource", "type": "address" }, { "indexed": false, "internalType": "address", - "name": "debtDestination", + "name": "_debtDestination", "type": "address" }, { "indexed": false, "internalType": "int256", - "name": "deltaCollateral", + "name": "_deltaCollateral", "type": "int256" }, { "indexed": false, "internalType": "int256", - "name": "deltaDebt", + "name": "_deltaDebt", "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lockedCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "generatedDebt", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalDebt", - "type": "uint256" } ], "name": "ModifySAFECollateralization", @@ -304,7 +329,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -317,37 +342,13 @@ { "indexed": true, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "debtBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "coinBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalUnbackedDebt", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "globalDebt", + "name": "_rad", "type": "uint256" } ], @@ -360,25 +361,25 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "src", + "name": "_src", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_wad", "type": "uint256" } ], @@ -391,19 +392,19 @@ { "indexed": true, "internalType": "address", - "name": "src", + "name": "_src", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" } ], @@ -416,56 +417,32 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "src", + "name": "_src", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "dst", + "name": "_dst", "type": "address" }, { "indexed": false, "internalType": "int256", - "name": "deltaCollateral", + "name": "_deltaCollateral", "type": "int256" }, { "indexed": false, "internalType": "int256", - "name": "deltaDebt", + "name": "_deltaDebt", "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "srcLockedCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "srcGeneratedDebt", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "dstLockedCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "dstGeneratedDebt", - "type": "uint256" } ], "name": "TransferSAFECollateralAndDebt", @@ -477,92 +454,80 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": false, "internalType": "address", - "name": "surplusDst", + "name": "_surplusDst", "type": "address" }, { "indexed": false, "internalType": "int256", - "name": "rateMultiplier", + "name": "_rateMultiplier", "type": "int256" + } + ], + "name": "UpdateAccumulatedRate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" }, { "indexed": false, "internalType": "uint256", - "name": "dstCoinBalance", + "name": "_safetyPrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "globalDebt", + "name": "_liquidationPrice", "type": "uint256" } ], - "name": "UpdateAccumulatedRate", + "name": "UpdateCollateralPrice", "type": "event" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "addAuthorization", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "approveSAFEModification", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "safe", "type": "address" }, - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], - "name": "canModifySAFE", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "coinBalance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "collateralTypes", + "name": "_cData", "outputs": [ - { "internalType": "uint256", "name": "debtAmount", "type": "uint256" }, + { + "internalType": "uint256", + "name": "debtAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedAmount", + "type": "uint256" + }, { "internalType": "uint256", "name": "accumulatedRate", "type": "uint256" }, - { "internalType": "uint256", "name": "safetyPrice", "type": "uint256" }, - { "internalType": "uint256", "name": "debtCeiling", "type": "uint256" }, - { "internalType": "uint256", "name": "debtFloor", "type": "uint256" }, + { + "internalType": "uint256", + "name": "safetyPrice", + "type": "uint256" + }, { "internalType": "uint256", "name": "liquidationPrice", @@ -576,22 +541,296 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" - }, - { "internalType": "address", "name": "safe", "type": "address" }, + } + ], + "name": "_cParams", + "outputs": [ { - "internalType": "address", - "name": "collateralCounterparty", - "type": "address" + "internalType": "uint256", + "name": "debtCeiling", + "type": "uint256" }, { - "internalType": "address", - "name": "debtCounterparty", - "type": "address" + "internalType": "uint256", + "name": "debtFloor", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "safeDebtCeiling", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "globalDebtCeiling", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_safe", + "type": "address" + } + ], + "name": "_safes", + "outputs": [ + { + "internalType": "uint256", + "name": "lockedCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "generatedDebt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "addAuthorization", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "approveSAFEModification", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "cData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "debtAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accumulatedRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "safetyPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationPrice", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFEEngineCollateralData", + "name": "_safeEngineCData", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "cParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "debtCeiling", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "debtFloor", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFEEngineCollateralParams", + "name": "_safeEngineCParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_safe", + "type": "address" }, - { "internalType": "int256", "name": "deltaCollateral", "type": "int256" }, - { "internalType": "int256", "name": "deltaDebt", "type": "int256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "canModifySAFE", + "outputs": [ + { + "internalType": "bool", + "name": "_canModifySafe", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_safe", + "type": "address" + } + ], + "name": "coinBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralList", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "__collateralList", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_safe", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralSource", + "type": "address" + }, + { + "internalType": "address", + "name": "_debtDestination", + "type": "address" + }, + { + "internalType": "int256", + "name": "_deltaCollateral", + "type": "int256" + }, + { + "internalType": "int256", + "name": "_deltaDebt", + "type": "int256" + } ], "name": "confiscateSAFECollateralAndDebt", "outputs": [], @@ -601,7 +840,13 @@ { "inputs": [], "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, @@ -609,15 +854,19 @@ "inputs": [ { "internalType": "address", - "name": "debtDestination", + "name": "_debtDestination", "type": "address" }, { "internalType": "address", - "name": "coinDestination", + "name": "_coinDestination", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "createUnbackedDebt", "outputs": [], @@ -625,15 +874,31 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_safe", + "type": "address" + } + ], "name": "debtBalance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "denySAFEModification", "outputs": [], @@ -650,27 +915,41 @@ { "inputs": [], "name": "globalDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "globalDebtCeiling", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "globalUnbackedDebt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_collateralParams", + "type": "bytes" + } ], "name": "initializeCollateralType", "outputs": [], @@ -681,11 +960,19 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "int256", "name": "wad", "type": "int256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "int256", + "name": "_wad", + "type": "int256" + } ], "name": "modifyCollateralBalance", "outputs": [], @@ -696,11 +983,19 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -709,8 +1004,16 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -721,73 +1024,146 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "safe", "type": "address" }, { "internalType": "address", - "name": "collateralSource", + "name": "_safe", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralSource", "type": "address" }, { "internalType": "address", - "name": "debtDestination", + "name": "_debtDestination", "type": "address" }, - { "internalType": "int256", "name": "deltaCollateral", "type": "int256" }, - { "internalType": "int256", "name": "deltaDebt", "type": "int256" } + { + "internalType": "int256", + "name": "_deltaCollateral", + "type": "int256" + }, + { + "internalType": "int256", + "name": "_deltaDebt", + "type": "int256" + } ], "name": "modifySAFECollateralization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "safeDebtCeiling", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "globalDebtCeiling", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFEEngineParams", + "name": "_safeEngineParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "safeDebtCeiling", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "address", + "name": "_caller", + "type": "address" + }, + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "safeRights", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "bool", + "name": "_isAllowed", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_safe", + "type": "address" + } ], "name": "safes", "outputs": [ { - "internalType": "uint256", - "name": "lockedCollateral", - "type": "uint256" - }, - { "internalType": "uint256", "name": "generatedDebt", "type": "uint256" } + "components": [ + { + "internalType": "uint256", + "name": "lockedCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "generatedDebt", + "type": "uint256" + } + ], + "internalType": "struct ISAFEEngine.SAFE", + "name": "_safeData", + "type": "tuple" + } ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "rad", "type": "uint256" }], + "inputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], "name": "settleDebt", "outputs": [], "stateMutability": "nonpayable", @@ -795,11 +1171,25 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_safe", + "type": "address" + } ], "name": "tokenCollateral", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -807,12 +1197,24 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "src", "type": "address" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "address", + "name": "_source", + "type": "address" + }, + { + "internalType": "address", + "name": "_destination", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "transferCollateral", "outputs": [], @@ -821,9 +1223,21 @@ }, { "inputs": [ - { "internalType": "address", "name": "src", "type": "address" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "address", + "name": "_source", + "type": "address" + }, + { + "internalType": "address", + "name": "_destination", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "transferInternalCoins", "outputs": [], @@ -834,13 +1248,29 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "src", "type": "address" }, - { "internalType": "address", "name": "dst", "type": "address" }, - { "internalType": "int256", "name": "deltaCollateral", "type": "int256" }, - { "internalType": "int256", "name": "deltaDebt", "type": "int256" } + { + "internalType": "address", + "name": "_src", + "type": "address" + }, + { + "internalType": "address", + "name": "_dst", + "type": "address" + }, + { + "internalType": "int256", + "name": "_deltaCollateral", + "type": "int256" + }, + { + "internalType": "int256", + "name": "_deltaDebt", + "type": "int256" + } ], "name": "transferSAFECollateralAndDebt", "outputs": [], @@ -851,15 +1281,46 @@ "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "address", "name": "surplusDst", "type": "address" }, - { "internalType": "int256", "name": "rateMultiplier", "type": "int256" } + { + "internalType": "address", + "name": "_surplusDst", + "type": "address" + }, + { + "internalType": "int256", + "name": "_rateMultiplier", + "type": "int256" + } ], "name": "updateAccumulatedRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_safetyPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPrice", + "type": "uint256" + } + ], + "name": "updateCollateralPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } -] +] \ No newline at end of file diff --git a/abis/StabilityFeeTreasury.json b/abis/StabilityFeeTreasury.json index 80dc60a..ac7bccf 100644 --- a/abis/StabilityFeeTreasury.json +++ b/abis/StabilityFeeTreasury.json @@ -1,24 +1,149 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" }, { "internalType": "address", - "name": "extraSurplusReceiver_", + "name": "_safeEngine", "type": "address" }, - { "internalType": "address", "name": "coinJoin_", "type": "address" } + { + "internalType": "address", + "name": "_extraSurplusReceiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_coinJoin", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "treasuryCapacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pullFundsMinThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusTransferDelay", + "type": "uint256" + } + ], + "internalType": "struct IStabilityFeeTreasury.StabilityFeeTreasuryParams", + "name": "_sfTreasuryParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsDisabled", + "type": "error" + }, + { + "inputs": [], + "name": "ContractIsEnabled", + "type": "error" + }, + { + "inputs": [], + "name": "NonDisableable", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_AccountCannotBeTreasury", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_BelowPullFundsMinThreshold", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_DstCannotBeAccounting", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_NotAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_NotEnoughFunds", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_NotEnoughSurplus", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_NullTransferAmount", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_OutstandingBadDebt", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_PerHourLimitExceeded", + "type": "error" + }, + { + "inputs": [], + "name": "SFTreasury_TransferCooldownNotPassed", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -37,19 +162,13 @@ { "indexed": true, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "expensesAccumulator", + "name": "_rad", "type": "uint256" } ], @@ -61,34 +180,34 @@ "inputs": [ { "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "addr", - "type": "address" + "internalType": "uint256", + "name": "_wad", + "type": "uint256" } ], - "name": "ModifyParameters", + "name": "JoinCoins", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "uint256", - "name": "val", - "type": "uint256" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -100,31 +219,19 @@ { "indexed": true, "internalType": "address", - "name": "sender", + "name": "_sender", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "dstAccount", + "name": "_dstAccount", "type": "address" }, - { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "rad", - "type": "uint256" - }, { "indexed": false, "internalType": "uint256", - "name": "expensesAccumulator", + "name": "_rad", "type": "uint256" } ], @@ -137,7 +244,7 @@ { "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], @@ -150,17 +257,17 @@ { "indexed": true, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" } ], - "name": "SetPerBlockAllowance", + "name": "SetPerHourAllowance", "type": "event" }, { @@ -169,32 +276,45 @@ { "indexed": true, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" } ], "name": "SetTotalAllowance", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } + ], + "name": "SettleDebt", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "rad", + "name": "_rad", "type": "uint256" } ], @@ -207,29 +327,73 @@ { "indexed": false, "internalType": "address", - "name": "extraSurplusReceiver", + "name": "_extraSurplusReceiver", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "fundsToTransfer", + "name": "_fundsToTransfer", "type": "uint256" } ], "name": "TransferSurplusFunds", "type": "event" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "_allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "perHour", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], - "name": "accumulatorTag", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "_params", + "outputs": [ + { + "internalType": "uint256", + "name": "treasuryCapacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pullFundsMinThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusTransferDelay", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -237,72 +401,126 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "perHour", + "type": "uint256" + } + ], + "internalType": "struct IStabilityFeeTreasury.Allowance", + "name": "__allowance", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "coinJoin", + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "authorizedAccounts", "outputs": [ - { "internalType": "contract CoinJoinLike", "name": "", "type": "address" } + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "contractEnabled", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "authorizedAccounts", + "outputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "disableContract", - "outputs": [], - "stateMutability": "nonpayable", + "name": "coinJoin", + "outputs": [ + { + "internalType": "contract ICoinJoin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "expensesAccumulator", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "contractEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "expensesMultiplier", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", + "name": "disableContract", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "extraSurplusReceiver", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "getAllowance", "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } + { + "internalType": "address", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "giveFunds", "outputs": [], @@ -312,21 +530,28 @@ { "inputs": [], "name": "latestSurplusTransferTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumFundsRequired", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "addr", "type": "address" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -334,46 +559,84 @@ "type": "function" }, { - "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "val", "type": "uint256" } + "inputs": [], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "treasuryCapacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pullFundsMinThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "surplusTransferDelay", + "type": "uint256" + } + ], + "internalType": "struct IStabilityFeeTreasury.StabilityFeeTreasuryParams", + "name": "_sfTreasuryParams", + "type": "tuple" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "dstAccount", "type": "address" }, - { "internalType": "address", "name": "token", "type": "address" }, - { "internalType": "uint256", "name": "wad", "type": "uint256" } + { + "internalType": "address", + "name": "_dstAccount", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } ], "name": "pullFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "pullFundsMinThreshold", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_blockHour", + "type": "uint256" + } + ], + "name": "pulledPerHour", + "outputs": [ + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], - "name": "pulledPerBlock", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -385,7 +648,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -395,18 +658,34 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], - "name": "setPerBlockAllowance", + "name": "setPerHourAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "setTotalAllowance", "outputs": [], @@ -416,23 +695,27 @@ { "inputs": [], "name": "settleDebt", - "outputs": [], + "outputs": [ + { + "internalType": "uint256", + "name": "_coinBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_debtBalance", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "surplusTransferDelay", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "systemCoin", "outputs": [ { - "internalType": "contract SystemCoinLike", + "internalType": "contract ISystemCoin", "name": "", "type": "address" } @@ -442,8 +725,16 @@ }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "rad", "type": "uint256" } + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rad", + "type": "uint256" + } ], "name": "takeFunds", "outputs": [], @@ -456,12 +747,5 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "treasuryCapacity", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" } -] +] \ No newline at end of file diff --git a/abis/StakingManager.json b/abis/StakingManager.json new file mode 100644 index 0000000..d1d7dfa --- /dev/null +++ b/abis/StakingManager.json @@ -0,0 +1,111 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "name": "StakingManagerStaked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "name": "StakingManagerWithdrawalInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "name": "StakingManagerWithdrawalCancelled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "name": "StakingManagerWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_rewardToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_destination", + "type": "address" + } + ], + "name": "StakingManagerRewardPaid", + "type": "event" + } + ] +} diff --git a/abis/TaxCollector.json b/abis/TaxCollector.json index 755b26b..52b920e 100644 --- a/abis/TaxCollector.json +++ b/abis/TaxCollector.json @@ -1,59 +1,197 @@ [ { "inputs": [ - { "internalType": "address", "name": "safeEngine_", "type": "address" } + { + "internalType": "address", + "name": "_safeEngine", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "primaryTaxReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "globalStabilityFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxStabilityFeeRange", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxSecondaryReceivers", + "type": "uint256" + } + ], + "internalType": "struct ITaxCollector.TaxCollectorParams", + "name": "_taxCollectorParams", + "type": "tuple" + } ], "stateMutability": "nonpayable", "type": "constructor" }, { - "anonymous": false, + "inputs": [], + "name": "AlreadyAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralTypeAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "IntOverflow", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_y", + "type": "uint256" } ], - "name": "AddAuthorization", - "type": "event" + "name": "NotGreaterOrEqualThan", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "collateralType", - "type": "bytes32" + "internalType": "uint256", + "name": "_x", + "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverNonce", + "name": "_y", "type": "uint256" - }, + } + ], + "name": "NotGreaterThan", + "type": "error" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "latestSecondaryReceiver", + "name": "_x", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverAllotedTax", + "name": "_y", + "type": "uint256" + } + ], + "name": "NotLesserOrEqualThan", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_x", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverRevenueSources", + "name": "_y", "type": "uint256" } ], - "name": "AddSecondaryReceiver", + "name": "NotLesserThan", + "type": "error" + }, + { + "inputs": [], + "name": "NullAddress", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_CollateralTypeNotInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_ExceedsMaxReceiverLimit", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_InvalidIndexes", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_NullAccount", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_NullSF", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_PrimaryReceiverCannotBeSecondary", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_TaxCutExceedsHundred", + "type": "error" + }, + { + "inputs": [], + "name": "TaxCollector_TaxCutTooBig", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedCType", + "type": "error" + }, + { + "inputs": [], + "name": "UnrecognizedParam", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "AddAuthorization", "type": "event" }, { @@ -62,19 +200,19 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", - "name": "latestAccumulatedRate", + "name": "_latestAccumulatedRate", "type": "uint256" }, { "indexed": false, "internalType": "int256", - "name": "deltaRate", + "name": "_deltaRate", "type": "int256" } ], @@ -87,19 +225,19 @@ { "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "target", + "name": "_target", "type": "address" }, { "indexed": false, "internalType": "int256", - "name": "taxCut", + "name": "_taxCut", "type": "int256" } ], @@ -112,7 +250,7 @@ { "indexed": false, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" } ], @@ -123,22 +261,22 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_param", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], "name": "ModifyParameters", @@ -149,148 +287,181 @@ "inputs": [ { "indexed": false, - "internalType": "bytes32", - "name": "parameter", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" } ], - "name": "ModifyParameters", + "name": "RemoveAuthorization", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "parameter", + "name": "_cType", "type": "bytes32" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "data", + "name": "_receiver", "type": "address" } ], - "name": "ModifyParameters", + "name": "SetPrimaryReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, + { + "indexed": true, + "internalType": "address", + "name": "_receiver", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "position", + "name": "_taxPercentage", "type": "uint256" }, { "indexed": false, - "internalType": "uint256", - "name": "val", - "type": "uint256" + "internalType": "bool", + "name": "_canTakeBackTax", + "type": "bool" } ], - "name": "ModifyParameters", + "name": "SetSecondaryReceiver", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" - }, + } + ], + "name": "_cData", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "position", + "name": "nextStabilityFee", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "taxPercentage", + "name": "updateTime", "type": "uint256" }, { - "indexed": false, - "internalType": "address", - "name": "receiverAccount", - "type": "address" + "internalType": "uint256", + "name": "secondaryReceiverAllotedTax", + "type": "uint256" } ], - "name": "ModifyParameters", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" - }, + } + ], + "name": "_cParams", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverNonce", + "name": "stabilityFee", "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_params", + "outputs": [ + { + "internalType": "address", + "name": "primaryTaxReceiver", + "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "latestSecondaryReceiver", + "name": "globalStabilityFee", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverAllotedTax", + "name": "maxStabilityFeeRange", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "secondaryReceiverRevenueSources", + "name": "maxSecondaryReceivers", "type": "uint256" } ], - "name": "ModifySecondaryReceiver", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { "internalType": "address", - "name": "account", + "name": "_taxReceiver", "type": "address" } ], - "name": "RemoveAuthorization", - "type": "event" + "name": "_secondaryTaxReceivers", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "bool", + "name": "canTakeBackTax", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "taxPercentage", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "addAuthorization", "outputs": [], @@ -298,139 +469,203 @@ "type": "function" }, { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], "name": "authorizedAccounts", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "collateralList", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "outputs": [ + { + "internalType": "bool", + "name": "_authorized", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "collateralListLength", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "collateralTypes", + "name": "authorizedAccounts", "outputs": [ - { "internalType": "uint256", "name": "stabilityFee", "type": "uint256" }, - { "internalType": "uint256", "name": "updateTime", "type": "uint256" } + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "start", "type": "uint256" }, - { "internalType": "uint256", "name": "end", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } + ], + "name": "cData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "nextStabilityFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updateTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondaryReceiverAllotedTax", + "type": "uint256" + } + ], + "internalType": "struct ITaxCollector.TaxCollectorCollateralData", + "name": "_taxCollectorCData", + "type": "tuple" + } ], - "name": "collectedManyTax", - "outputs": [{ "internalType": "bool", "name": "ok", "type": "bool" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "globalStabilityFee", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], - "name": "initializeCollateralType", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "_receiver", "type": "uint256" } + "name": "cParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "stabilityFee", + "type": "uint256" + } + ], + "internalType": "struct ITaxCollector.TaxCollectorCollateralParams", + "name": "_taxCollectorCParams", + "type": "tuple" + } ], - "name": "isSecondaryReceiver", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "latestSecondaryReceiver", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "collateralList", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "__collateralList", + "type": "bytes32[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "maxSecondaryReceivers", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "collateralListLength", + "outputs": [ + { + "internalType": "uint256", + "name": "_collateralListLength", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "collateralType", - "type": "bytes32" + "internalType": "uint256", + "name": "_start", + "type": "uint256" }, - { "internalType": "uint256", "name": "position", "type": "uint256" }, - { "internalType": "uint256", "name": "taxPercentage", "type": "uint256" }, { - "internalType": "address", - "name": "receiverAccount", - "type": "address" + "internalType": "uint256", + "name": "_end", + "type": "uint256" } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "name": "collectedManyTax", + "outputs": [ + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "uint256", "name": "position", "type": "uint256" }, - { "internalType": "uint256", "name": "val", "type": "uint256" } + { + "internalType": "bytes", + "name": "_collateralParams", + "type": "bytes" + } ], - "name": "modifyParameters", + "name": "initializeCollateralType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "address", "name": "data", "type": "address" } + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } ], - "name": "modifyParameters", - "outputs": [], - "stateMutability": "nonpayable", + "name": "isSecondaryReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "_isSecondaryReceiver", + "type": "bool" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", - "name": "collateralType", + "name": "_cType", "type": "bytes32" }, - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -439,8 +674,16 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "parameter", "type": "bytes32" }, - { "internalType": "uint256", "name": "data", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_param", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } ], "name": "modifyParameters", "outputs": [], @@ -449,14 +692,46 @@ }, { "inputs": [], - "name": "primaryTaxReceiver", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "name": "params", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "primaryTaxReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "globalStabilityFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxStabilityFeeRange", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxSecondaryReceivers", + "type": "uint256" + } + ], + "internalType": "struct ITaxCollector.TaxCollectorParams", + "name": "_taxCollectorParams", + "type": "tuple" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } + { + "internalType": "address", + "name": "_account", + "type": "address" + } ], "name": "removeAuthorization", "outputs": [], @@ -468,7 +743,7 @@ "name": "safeEngine", "outputs": [ { - "internalType": "contract SAFEEngineLike", + "internalType": "contract ISAFEEngine", "name": "", "type": "address" } @@ -477,61 +752,103 @@ "type": "function" }, { - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "secondaryReceiverAccounts", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "secondaryReceiverAllotedTax", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "inputs": [ + { + "internalType": "address", + "name": "_secondaryReceiver", + "type": "address" + } + ], + "name": "secondaryReceiverRevenueSourcesList", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "_secondaryReceiverRevenueSourcesList", + "type": "bytes32[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "secondaryReceiverNonce", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "secondaryReceiverRevenueSources", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "secondaryReceiversList", + "outputs": [ + { + "internalType": "address[]", + "name": "_secondaryReceiversList", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "secondaryReceiversAmount", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "secondaryReceiversListLength", + "outputs": [ + { + "internalType": "uint256", + "name": "_secondaryReceiversListLength", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "uint256", "name": "", "type": "uint256" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } ], "name": "secondaryTaxReceivers", "outputs": [ { - "internalType": "uint256", - "name": "canTakeBackTax", - "type": "uint256" - }, - { "internalType": "uint256", "name": "taxPercentage", "type": "uint256" } + "components": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "bool", + "name": "canTakeBackTax", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "taxPercentage", + "type": "uint256" + } + ], + "internalType": "struct ITaxCollector.TaxReceiver", + "name": "_secondaryTaxReceiver", + "type": "tuple" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "start", "type": "uint256" }, - { "internalType": "uint256", "name": "end", "type": "uint256" } + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + } ], "name": "taxMany", "outputs": [], @@ -540,43 +857,74 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "start", "type": "uint256" }, - { "internalType": "uint256", "name": "end", "type": "uint256" } + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + } ], "name": "taxManyOutcome", "outputs": [ - { "internalType": "bool", "name": "ok", "type": "bool" }, - { "internalType": "int256", "name": "rad", "type": "int256" } + { + "internalType": "bool", + "name": "_ok", + "type": "bool" + }, + { + "internalType": "int256", + "name": "_rad", + "type": "int256" + } ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "taxSingle", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "_latestAccumulatedRate", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "collateralType", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_cType", + "type": "bytes32" + } ], "name": "taxSingleOutcome", "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "int256", "name": "", "type": "int256" } + { + "internalType": "uint256", + "name": "_newlyAccumulatedRate", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "_deltaRate", + "type": "int256" + } ], "stateMutability": "view", "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "usedSecondaryReceiver", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" } -] +] \ No newline at end of file diff --git a/abis/UniswapV2Pair.json b/abis/UniswapV2Pair.json deleted file mode 100644 index 8357a38..0000000 --- a/abis/UniswapV2Pair.json +++ /dev/null @@ -1,402 +0,0 @@ -[ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1In", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount0Out", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount1Out", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "Swap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint112", - "name": "reserve0", - "type": "uint112" - }, - { - "indexed": false, - "internalType": "uint112", - "name": "reserve1", - "type": "uint112" - } - ], - "name": "Sync", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_LIQUIDITY", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "to", "type": "address" }], - "name": "burn", - "outputs": [ - { "internalType": "uint256", "name": "amount0", "type": "uint256" }, - { "internalType": "uint256", "name": "amount1", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { "internalType": "uint112", "name": "_reserve0", "type": "uint112" }, - { "internalType": "uint112", "name": "_reserve1", "type": "uint112" }, - { - "internalType": "uint32", - "name": "_blockTimestampLast", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_token0", "type": "address" }, - { "internalType": "address", "name": "_token1", "type": "address" } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "kLast", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "to", "type": "address" }], - "name": "mint", - "outputs": [ - { "internalType": "uint256", "name": "liquidity", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "nonces", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" }, - { "internalType": "uint256", "name": "deadline", "type": "uint256" }, - { "internalType": "uint8", "name": "v", "type": "uint8" }, - { "internalType": "bytes32", "name": "r", "type": "bytes32" }, - { "internalType": "bytes32", "name": "s", "type": "bytes32" } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "price0CumulativeLast", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "price1CumulativeLast", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "address", "name": "to", "type": "address" }], - "name": "skim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, - { "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "sync", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token0", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token1", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "from", "type": "address" }, - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abis/UniswapV3Pool.json b/abis/UniswapV3Pool.json new file mode 100644 index 0000000..49cc338 --- /dev/null +++ b/abis/UniswapV3Pool.json @@ -0,0 +1,988 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "name": "Collect", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "name": "CollectProtocol", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "paid0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "paid1", + "type": "uint256" + } + ], + "name": "Flash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "observationCardinalityNextOld", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "observationCardinalityNextNew", + "type": "uint16" + } + ], + "name": "IncreaseObservationCardinalityNext", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "indexed": false, + "internalType": "int24", + "name": "tick", + "type": "int24" + } + ], + "name": "Initialize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol0Old", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol1Old", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol0New", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol1New", + "type": "uint8" + } + ], + "name": "SetFeeProtocol", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount0", + "type": "int256" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount1", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "int24", + "name": "tick", + "type": "int24" + } + ], + "name": "Swap", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + } + ], + "name": "burn", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount0Requested", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1Requested", + "type": "uint128" + } + ], + "name": "collect", + "outputs": [ + { + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint128", + "name": "amount0Requested", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1Requested", + "type": "uint128" + } + ], + "name": "collectProtocol", + "outputs": [ + { + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "fee", + "outputs": [ + { + "internalType": "uint24", + "name": "", + "type": "uint24" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeGrowthGlobal0X128", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeGrowthGlobal1X128", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "flash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "observationCardinalityNext", + "type": "uint16" + } + ], + "name": "increaseObservationCardinalityNext", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidity", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxLiquidityPerTick", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "observations", + "outputs": [ + { + "internalType": "uint32", + "name": "blockTimestamp", + "type": "uint32" + }, + { + "internalType": "int56", + "name": "tickCumulative", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityCumulativeX128", + "type": "uint160" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32[]", + "name": "secondsAgos", + "type": "uint32[]" + } + ], + "name": "observe", + "outputs": [ + { + "internalType": "int56[]", + "name": "tickCumulatives", + "type": "int56[]" + }, + { + "internalType": "uint160[]", + "name": "secondsPerLiquidityCumulativeX128s", + "type": "uint160[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, + { + "internalType": "uint256", + "name": "feeGrowthInside0LastX128", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "feeGrowthInside1LastX128", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "tokensOwed0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "tokensOwed1", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "protocolFees", + "outputs": [ + { + "internalType": "uint128", + "name": "token0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "token1", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "feeProtocol0", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "feeProtocol1", + "type": "uint8" + } + ], + "name": "setFeeProtocol", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "slot0", + "outputs": [ + { + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "internalType": "int24", + "name": "tick", + "type": "int24" + }, + { + "internalType": "uint16", + "name": "observationIndex", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "observationCardinality", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "observationCardinalityNext", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "feeProtocol", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "unlocked", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + } + ], + "name": "snapshotCumulativesInside", + "outputs": [ + { + "internalType": "int56", + "name": "tickCumulativeInside", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityInsideX128", + "type": "uint160" + }, + { + "internalType": "uint32", + "name": "secondsInside", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bool", + "name": "zeroForOne", + "type": "bool" + }, + { + "internalType": "int256", + "name": "amountSpecified", + "type": "int256" + }, + { + "internalType": "uint160", + "name": "sqrtPriceLimitX96", + "type": "uint160" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "swap", + "outputs": [ + { + "internalType": "int256", + "name": "amount0", + "type": "int256" + }, + { + "internalType": "int256", + "name": "amount1", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int16", + "name": "", + "type": "int16" + } + ], + "name": "tickBitmap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tickSpacing", + "outputs": [ + { + "internalType": "int24", + "name": "", + "type": "int24" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "", + "type": "int24" + } + ], + "name": "ticks", + "outputs": [ + { + "internalType": "uint128", + "name": "liquidityGross", + "type": "uint128" + }, + { + "internalType": "int128", + "name": "liquidityNet", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "feeGrowthOutside0X128", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "feeGrowthOutside1X128", + "type": "uint256" + }, + { + "internalType": "int56", + "name": "tickCumulativeOutside", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityOutsideX128", + "type": "uint160" + }, + { + "internalType": "uint32", + "name": "secondsOutside", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token0", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/abis/WrappedToken.json b/abis/WrappedToken.json new file mode 100644 index 0000000..e36049e --- /dev/null +++ b/abis/WrappedToken.json @@ -0,0 +1,186 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "WrappedTokenDeposit", + "type": "event" + }, + { + "inputs": [], + "name": "BASE_TOKEN", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseTokenManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_wad", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/config/kovan.json b/config/kovan.json deleted file mode 100644 index 969336d..0000000 --- a/config/kovan.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "NETWORK": "kovan", - "PROXY_REGISTRY_STARTING_BLOCK": "7726591", - "CHAINLINK_AGGREGATOR": "0x9326BFA02ADD2366b30bacB125260Af641031331", - "ETH_FROM": "0x7BCd5C864a0aC07EFee60a1A18f9d5c99Ff7fD4d", - "STARTING_BLOCK_NUMBER": "23275958", - "PROXY_DEPLOYER": "0x3D223a697b7ca376c8289431d4946ebD26CA80ae", - "COIN_TYPE": "INDEX", - "GOVERNANCE_TYPE": "MULTISIG-SAFE", - "MULTICALL": "0x551283ecB1257B5aE0A4b2DFe42e06E5F29b8068", - "FAUCET": "0x0000000000000000000000000000000000000000", - "GEB_MULTISIG": "0x5CCFc908D9810E32DDC6B1Df1f24c67A2Cfcfd83", - "GEB_MULTISIG_PROXY": "0xDcceA20B82f43BDDaa55dB54a40C031C9948e296", - "GEB_DEPLOY": "0x5feC3771419d0D2A027854e41de62722d9182c1d", - "GEB_PROT": "0x6e6eA84bb2fcE17AfCE8e1117DdC708142ef51c9", - "PROTOCOL_TOKEN_AUTHORITY": "0xacB478e8e657fb1eF78Ad3dF3B537466642f9faD", - "GEB_PAUSE_AUTHORITY": "0x68BE18B496Fb2472E4bD05dF8cC6d566C401be9B", - "GEB_POLLING_EMITTER": "0x5Bc73aff8aADdD3A340a61DeaE885205088AAe68", - "GEB_SAFE_ENGINE": "0x7f63fE955fFF8EA474d990f1Fc8979f2C650edbE", - "GEB_TAX_COLLECTOR": "0xc1a94C5ad9FCD79b03F79B34d8C0B0C8192fdc16", - "GEB_LIQUIDATION_ENGINE": "0x75A807a667FbcB303f46c0F8Ca45fdfEF8fdC9AC", - "GEB_ACCOUNTING_ENGINE": "0x6073E8FE874B53732b5DdD469a2De4047f33C64B", - "GEB_COIN_JOIN": "0x7d4fe9659D80970097E604727a2BA3F094B00758", - "GEB_SURPLUS_AUCTION_HOUSE": "0xCdaA2ec0975eD41202E1078b21a4833E414f6379", - "GEB_DEBT_AUCTION_HOUSE": "0x6AcE594C5A421E468c13715AD62A183200C320a6", - "GEB_PAUSE": "0x2ef5240F19B45C02c6eb53211e034bD504Ea1f82", - "GEB_PAUSE_PROXY": "0xe074d33128CecaA74ef137cF2ACAB353843e7821", - "GEB_GOV_ACTIONS": "0x9Dc31eCDf2553d28ffc615B74f7d1D4B7C65EBc8", - "GEB_COIN": "0x76b06a2f6dF6f0514e7BEC52a9AfB3f603b477CD", - "GEB_ORACLE_RELAYER": "0xE5Ae4E49bEA485B5E5172EE6b1F99243cB15225c", - "GEB_GLOBAL_SETTLEMENT": "0x9cc56ae3fbf4feebb428b981a787d31f039b3fc5", - "GEB_STABILITY_FEE_TREASURY": "0xE8B3b96D632D7257639de137FB6aD191F0515c8d", - "GEB_ESM": "0xe3Ea20bDeF87Bb75162CF79eB491243eF790DFa8", - "GEB_ESM_TOKEN_BURNER": "0x41d4D7AB0a80864A59acc7A25b5e6bDD07E7FFB3", - "GEB_RRFM_CALCULATOR": "0x10D64e797555dB168BD764E4C8c179d294bE8014", - "GEB_DUMMY_RRFM_CALCULATOR": "0x750f2b976F8e233AFcCDee2f8213996cB7D3D798", - "GEB_RRFM_SETTER": "0x97533CD0c5997bce2504378CB29a091830de0F94", - "GEB_RRFM_SETTER_RELAYER": "0xED26c78563f98f60B718f7d39e9BFB03A725b015", - "PROXY_ACTIONS": "0x938291470A786f73Ae69A4E67246E3396D1118eC", - "PROXY_ACTIONS_INCENTIVES": "0x3D36CA69b16f31C8F5E4f391Df95Ef5eC4ab663f", - "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0x771f6CA88935989A635981E42dE00B8cfa1258d0", - "PROXY_DEBT_AUCTION_ACTIONS": "0xC31518D4fbA20E3618F6e7B24D1Bada43837Ed45", - "PROXY_SURPLUS_AUCTION_ACTIONS": "0x7Ce3922988E84D3967ED7df1eF6FB789cc149Bd4", - "PROXY_SAVIOUR_ACTIONS": "0xD9a9F95FA771f6BF19E664Fe6B1D5Ae52C230A46", - "SAFE_MANAGER": "0x807C8eCb73d9c8203d2b1369E678098B9370F2EA", - "GET_SAFES": "0x702dcf4a8C3bBBd243477D5704fc45F2762D3826", - "FSM_GOV_INTERFACE": "0x355DA9a2A54007A850e823651a29CFF8f0afdC02", - "PROXY_FACTORY": "0xe11E3b391F7E8bC47247866aF32AF67Dd58Dc800", - "PROXY_REGISTRY": "0x64A436ae831C1672AE81F674CAb8B6775df3475C", - "MEDIANIZER_RAI": "0xcede0Fa68bCCc0910d5355725BfDb7AdAfC7Aeb3", - "MEDIANIZER_RAI_REWARDS_RELAYER": "0x6f2ae2ed721e2b0cb5254eff4e0982b3fb812b56", - "SPOT_RAI": "0xFDba7b009C096f2b38CdDfd746644bBAEdE06922", - "SPOT_FEED_SECURITY_MODULE_RAI": "0x0000000000000000000000000000000000000000", - "ETH": "0xd0A1E359811322d97991E03f863a0C30C2cF029C", - "MEDIANIZER_ETH": "0x395A96E956164A0C76759a686ebC6296fe5Ee6f9", - "MEDIANIZER_ETH_REWARDS_RELAYER": "0x8743aFDd9fAc4a849A33417B1aD6190DA71ca5a1", - "FEED_SECURITY_MODULE_ETH": "0xD047A920140390b16A0aB8A77c4aa2FCBa5C6675", - "FSM_WRAPPER_ETH": "0x656590A7C9aD09319134C2b9B956945d8Cb955B1", - "GEB_JOIN_ETH_A": "0xad4AB4Cb7b8aDC45Bf2873507fC8700f3dFB9Dd3", - "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "0xC72Ad1D01D7c0E19934677Cb60bE99AEc8A22e46", - "GEB_UNISWAP_SINGLE_KEEPER_FLASH_PROXY_ETH_A": "0x9cC49b574070379B71817Aa34643CB78Ad90A932", - "GEB_UNISWAP_MULTI_COLLATERAL_KEEPER_FLASH_PROXY": "0xe29fEfa1ECD4b1Ca55deC29A7EfDBc622998FD99", - "PROXY_PAUSE_ACTIONS": "0xfbD93C8E9c428447ccb8fE386A8de1df2075c962", - "PROXY_PAUSE_SCHEDULE_ACTIONS": "0xFde9047Ec24166d2d2F9522f69aF81DF478dd276", - "GEB_INCENTIVES_MINER": "0xEB03d9ACdd445f7DfA914eE99aC73Bd6888677EC", - "UNISWAP_FACTORY": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", - "UNISWAP_ROUTER": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", - "GEB_DS_COMPARE": "0xde1766FE0D4A00f1C45875EB76D819E9A37585b1", - "GEB_TX_MANAGER": "0x3876f196A072533A5262Af485c64Fa9B50951991", - "GEB_COIN_UNISWAP_POOL": "0x052AE8b0F7E5c610937920e46ED265c2063Cb7B8", - "GEB_SINGLE_CEILING_SETTER": "0x27c5A7B619FFBc074f9653bD39335Eac49Cd7A44", - "SAFE_SAVIOUR_REGISTRY": "0xB19bc2e13Bd6BAeeE8c0D8282387221D7f9b8833", - "MERKLE_DISTRIBUTOR_FACTORY": "0x11614138187314448fBbBA4c7094E4d5eA0dc1f7", - "COLLATERAL_AUCTION_THROTTLER": "0xB64a4106bF6ACf5128b5010F37aC1AFE6868aB1d", - "ESM_THRESHOLD_SETTER": "0x18cd95e59fff3fef4a6cbf82d1bfc8e572b44749", - "DEBT_POPPER_REWARDS": "0x488d76dB8767c9c78e99473530CEc2112d12b60b", - "GEB_UNISWAP_SAVIOUR_LIQUIDITY_MANAGER": "0x387f9BD28F906CD63155F3094c2e0A2c3Aa56B81", - "GEB_SAVIOUR_CRATIO_SETTER": "0x78AFBE751d3C3fcb6c60d62E1900c1ae80BA26A4", - "GEB_COIN_ETH_UNISWAP_V2_POOL_SAVIOUR": "0x6a25F6dD623cA6e534108EFb3DF9e9E485DD46fb", - "GEB_UNISWAP_V3_LIQUIDITY_MANAGER": "0x883954281F7013bbA49188350a678Ca331bC5521", - "GEB_UNISWAP_TWO_TRANCHE_MANAGER": "0x3221CD71E57f066a9eA410344cFF3A1577b1CD69", - "GEB_STAKING_AUCTION_HOUSE": "0x63e5455824F23e1a0d6157F4C6f400A782Ab9eF1" -} diff --git a/config/mainnet.json b/config/mainnet.json index 7fc44f9..70b7b8f 100644 --- a/config/mainnet.json +++ b/config/mainnet.json @@ -1,66 +1,79 @@ { - "NETWORK": "mainnet", - "PROXY_REGISTRY_STARTING_BLOCK": "5834628", - "ETH_FROM": "0x7FAfc11677649DB6AbFEC127B4B776D585520ae1", - "STARTING_BLOCK_NUMBER": "11848304", - "PROXY_DEPLOYER": "0x631e38D6Dc0F4A26F6BE0d3d0E4ebA3d02033aB4", + "NETWORK": "optimism", + "PROXY_REGISTRY_STARTING_BLOCK": "", + "ETH_FROM": "", + "STARTING_BLOCK_NUMBER": "116055145", + "PROXY_DEPLOYER": "", "COIN_TYPE": "INDEX", "GOVERNANCE_TYPE": "MULTISIG-SAFE", - "MULTICALL": "0x51812e07497586ce025D798Bb44b6d11bBEe3a01", + "MULTICALL": "0xcA11bde05977b3631167028862bE2a173976CA11", "FAUCET": "0x0000000000000000000000000000000000000000", - "GEB_MULTISIG": "0x427A277eA53e25143B3b509C684aA4D0EB8bA01b", - "GEB_MULTISIG_PROXY": "0x2695b1dC32899c07d177A287f006b6569216a5a1", - "GEB_DEPLOY": "0x24AcC85528e6dd5B9C297fb8821522D36B1Ae09f", - "GEB_PROT": "0x6243d8CEA23066d098a15582d81a598b4e8391F4", - "PROTOCOL_TOKEN_AUTHORITY": "0xcb8479840A5576B1cafBb3FA7276e04Df122FDc7", - "GEB_PAUSE_AUTHORITY": "0x1490a828957f1E23491c8d69273d684B15c6E25A", - "GEB_POLLING_EMITTER": "0xf7Da963B88194a9bc6775e93d39c70c6e3f04f6F", - "GEB_SAFE_ENGINE": "0xCC88a9d330da1133Df3A7bD823B95e52511A6962", - "GEB_TAX_COLLECTOR": "0xcDB05aEda142a1B0D6044C09C64e4226c1a281EB", - "GEB_LIQUIDATION_ENGINE": "0x4fFbAA89d648079Faafc7852dE49EA1dc92f9976", - "GEB_ACCOUNTING_ENGINE": "0xcEe6Aa1aB47d0Fb0f24f51A3072EC16E20F90fcE", - "GEB_COIN_JOIN": "0x0A5653CCa4DB1B6E265F47CAf6969e64f1CFdC45", - "GEB_SURPLUS_AUCTION_HOUSE": "0x4EEfDaE928ca97817302242a851f317Be1B85C90", - "GEB_DEBT_AUCTION_HOUSE": "0x1896adBE708bF91158748B3F33738Ba497A69e8f", - "GEB_PAUSE": "0x2cDE6A1147B0EE61726b86d83Fd548401B1162c7", - "GEB_PAUSE_PROXY": "0xa57A4e6170930ac547C147CdF26aE4682FA8262E", - "GEB_GOV_ACTIONS": "0x0463bF18c2457B00402A7639fa1DFB7d60f659Ee", - "GEB_COIN": "0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919", - "GEB_ORACLE_RELAYER": "0x4ed9C0dCa0479bC64d8f4EB3007126D5791f7851", - "GEB_GLOBAL_SETTLEMENT": "0xee4cf96e5359d9619197fd82b6ef2a9eae7b91e1", - "GEB_STABILITY_FEE_TREASURY": "0x83533fdd3285f48204215E9CF38C785371258E76", - "GEB_ESM": "0xa33Ea2Ac39902d4A206D6A1F8D38c7330C80f094", - "GEB_ESM_TOKEN_BURNER": "0xB10409FC293F987841964C4FcFEf887D9ece799B", - "GEB_RRFM_CALCULATOR": "0xddA334de7A9C57A641616492175ca203Ba8Cf981", - "GEB_DUMMY_RRFM_CALCULATOR": "0x9F02ddBFb4B045Df83D45c4d644027FBD7d72A6D", - "GEB_RRFM_SETTER": "0x7acfc14dbf2decd1c9213db32ae7784626daeb48", - "PROXY_ACTIONS": "0x880CECbC56F48bCE5E0eF4070017C0a4270F64Ed", - "PROXY_ACTIONS_INCENTIVES": "0x88A77b8Ff53329f88B8B6F9e29835FEc287349e0", - "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0x17b5d9914194a08c7Ef14451BA15E8aE4f92Cb93", - "PROXY_DEBT_AUCTION_ACTIONS": "0x3615A303674eC8bC0432f7e1BE8449A63a19d6Ef", - "PROXY_SURPLUS_AUCTION_ACTIONS": "0x16B0BF0Bf031A3691f4bD600e5340fEDd149C0ED", - "SAFE_MANAGER": "0xEfe0B4cA532769a3AE758fD82E1426a03A94F185", - "GET_SAFES": "0xdf4BC9aA98cC8eCd90Ba2BEe73aD4a1a9C8d202B", - "FSM_GOV_INTERFACE": "0xe24F8B30fd28c90462c9BbC87A9A2a823636F533", - "PROXY_FACTORY": "0xA26e15C895EFc0616177B7c1e7270A4C7D51C997", - "PROXY_REGISTRY": "0x4678f0a6958e4D2Bc4F1BAF7Bc52E8F3564f3fE4", - "MEDIANIZER_RAI": "0x92dC9b16be52De059279916c1eF810877f85F960", - "SPOT_RAI": "0x7235a0094eD56eB2Bd0de168d307C8990233645f", - "SPOT_FEED_SECURITY_MODULE_RAI": "0x0000000000000000000000000000000000000000", - "ETH": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - "MEDIANIZER_ETH": "0xb825e25856bD98b3f2FAF2aEb6Cb8742B38C4025", - "FEED_SECURITY_MODULE_ETH": "0xD4A0E3EC2A937E7CCa4A192756a8439A8BF4bA91", - "GEB_JOIN_ETH_A": "0x2D3cD7b81c93f188F3CB8aD87c8Acc73d6226e3A", - "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "0x7fFdF1Dfef2bfeE32054C8E922959fB235679aDE", - "PROXY_PAUSE_ACTIONS": "0x27a54e99dE813CE2E41BAa7F44d1F19FBA22B36D", - "PROXY_PAUSE_SCHEDULE_ACTIONS": "0x6a2714404Be6613A952A80266840ffe916194632", - "GEB_INCENTIVES_MINER": "0xa706d4c39c315288113020f3e2D7e1095e912a20", - "UNISWAP_FACTORY": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", - "UNISWAP_ROUTER": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", - "GEB_DS_COMPARE": "0x10122261ff9520C590c0c3A679b7E3dFC8B09C64", - "GEB_TX_MANAGER": "0xB7272627825D1cb633f705BC269F8e11126D7A25", - "GEB_COIN_UNISWAP_POOL": "0x8aE720a71622e824F576b4A8C03031066548A3B1", - "GEB_SINGLE_CEILING_SETTER": "0x54999Ee378b339f405a4a8a1c2f7722CD25960fa", - "CHAINLINK_AGGREGATOR": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", - "GEB_STAKING_AUCTION_HOUSE": "0x0000000000000000000000000000000000000000" + "GEB_MULTISIG": "", + "GEB_MULTISIG_PROXY": "", + "GEB_DEPLOY": "", + "GEB_PROT": "0xf467C7d5a4A9C4687fFc7986aC6aD5A4c81E1404", + "PROTOCOL_TOKEN_AUTHORITY": "", + "GEB_PAUSE_AUTHORITY": "", + "GEB_POLLING_EMITTER": "", + "GEB_SAFE_ENGINE": "0x9Ff826860689483181C5FAc9628fd2F70275A700", + "GEB_TAX_COLLECTOR": "0x62B82ccE08f8F2D808348409E9418c65EB1973C3", + "GEB_LIQUIDATION_ENGINE": "0x8Be588895BE9B75F9a9dAee185e0c2ad89891b56", + "GEB_ACCOUNTING_ENGINE": "0xa4900795EbFfadc12790f05f7c4AC42CD765Bd10", + "GEB_COIN_JOIN": "0x30Ce72230A47A0967B7e52A1bAE0178DbD7c6eA3", + "GEB_SURPLUS_AUCTION_HOUSE": "0x096125Fa7E2181DbA78136782365a39c3a1778E9", + "GEB_DEBT_AUCTION_HOUSE": "0x7CdE0d7296725aFB80EA091Eca8D06A377f617b3", + "GEB_PAUSE": "", + "GEB_PAUSE_PROXY": "", + "GEB_GOV_ACTIONS": "", + "GEB_COIN": "0x10398AbC267496E49106B07dd6BE13364D10dC71", + "GEB_ORACLE_RELAYER": "0x6270403b908505F02Da05BE5c1956aBB59FDb3A6", + "GEB_GLOBAL_SETTLEMENT": "0x75880aca7230462a630Ad65ad5444cb1E1864218", + "GEB_STABILITY_FEE_TREASURY": "0xE9E54c55d41D6622933F9F736e0c55484b3c4f6f", + "GEB_ESM": "", + "GEB_ESM_TOKEN_BURNER": "", + "GEB_RRFM_CALCULATOR": "", + "GEB_DUMMY_RRFM_CALCULATOR": "", + "GEB_RRFM_SETTER": "", + "PROXY_ACTIONS": "0xd36b1bD5445374Ceb7Fe4148a719584234Da7Bb0", + "PROXY_ACTIONS_INCENTIVES": "", + "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0xA0A78899Cd5c093F563EF22e86B68bBC44845Fa1", + "PROXY_DEBT_AUCTION_ACTIONS": "0xFC55B886a2619bd8645549f7Cb672872479F8117", + "PROXY_SURPLUS_AUCTION_ACTIONS": "0x632229A0A849bde3A1f1200cF23118b33A925cEc", + "SAFE_MANAGER": "0xB0FF82D8322f6Fa9C28Ec46eF0A5C343e95106C3", + "GET_SAFES": "", + "FSM_GOV_INTERFACE": "", + "PROXY_FACTORY": "0xBAfbCDbFbB1569722253ED4D491D2fB3b5E03a27", + "PROXY_REGISTRY": "", + "MEDIANIZER_RAI": "", + "SPOT_RAI": "", + "SPOT_FEED_SECURITY_MODULE_RAI": "", + "ETH": "0x4200000000000000000000000000000000000006", + "MEDIANIZER_ETH": "", + "FEED_SECURITY_MODULE_ETH": "", + "GEB_JOIN_ETH_A": "", + "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "", + "PROXY_PAUSE_ACTIONS": "", + "PROXY_PAUSE_SCHEDULE_ACTIONS": "", + "GEB_INCENTIVES_MINER": "", + "UNISWAP_FACTORY": "", + "UNISWAP_ROUTER": "", + "GEB_DS_COMPARE": "", + "GEB_TX_MANAGER": "", + "GEB_COIN_UNISWAP_POOL": "0x146b020399769339509c98B7B353d19130C150EC", + "GEB_SINGLE_CEILING_SETTER": "", + "CHAINLINK_AGGREGATOR": "0x13e3Ee699D1909E989722E753853AE30b17e08c5", + "GEB_STAKING_AUCTION_HOUSE": "", + "HAIVELO": "0x70f3713512089736661f928b291d1443c8b1bb6a", + "HAIVELO_START_BLOCK": "19200000", + "REWARD_DISTRIBUTOR": "0xfEd2eB6325432F0bF7110DcE2CCC5fF811ac3D4D", + "REWARD_DISTRIBUTOR_START_BLOCK": "144598400", + "STAKING_MANAGER": "0x1250f2326F04ac61Ee5aEd92fEf74BcAC6E6BC90", + "STAKING_MANAGER_START_BLOCK": "135218135", + "STAKING_MANAGER_HAI_BOLD_CURVE_LP": "0x70bf153870e405097eeec57d0b800fe7ee279e93", + "STAKING_MANAGER_HAI_BOLD_CURVE_LP_START_BLOCK": "144287109", + "STAKING_MANAGER_HAI_VELO_VELO_LP": "0xfFf582CE7353026B20264F27770fa7Bdd4Aa6d0E", + "STAKING_MANAGER_HAI_VELO_VELO_LP_START_BLOCK": "143314389" } + + + diff --git a/config/optimism-goerli.json b/config/optimism-goerli.json new file mode 100644 index 0000000..a5f6734 --- /dev/null +++ b/config/optimism-goerli.json @@ -0,0 +1,67 @@ +{ + "NETWORK": "optimism-goerli", + "PROXY_REGISTRY_STARTING_BLOCK": "", + "ETH_FROM": "", + "STARTING_BLOCK_NUMBER": "17538842", + "PROXY_DEPLOYER": "", + "COIN_TYPE": "INDEX", + "GOVERNANCE_TYPE": "MULTISIG-SAFE", + "MULTICALL": "0xcA11bde05977b3631167028862bE2a173976CA11", + "FAUCET": "0x0000000000000000000000000000000000000000", + "GEB_MULTISIG": "", + "GEB_MULTISIG_PROXY": "", + "GEB_DEPLOY": "", + "GEB_PROT": "0x05CBD1C19Af83Ab7929C8cA5000076cc0D3CeD62", + "PROTOCOL_TOKEN_AUTHORITY": "", + "GEB_PAUSE_AUTHORITY": "", + "GEB_POLLING_EMITTER": "", + "GEB_SAFE_ENGINE": "0x8CD47C308BE756F3721D2B25d73D372312fC58e3", + "GEB_TAX_COLLECTOR": "0x4d551Fb5132bfDf04f4e3742b244989A70F6098d", + "GEB_LIQUIDATION_ENGINE": "0x602F40EC23763994d5a6Dd26b240f4BeC39C7001", + "GEB_ACCOUNTING_ENGINE": "0xeeD607FC8c614f75B12524e7a04f62B8257fAB33", + "GEB_COIN_JOIN": "0xf439248215b6668018272bcF4B03E6E172472b52", + "GEB_SURPLUS_AUCTION_HOUSE": "0x80e05a7ade7C1D0f82635764C6a90c6473Fc3a9c", + "GEB_DEBT_AUCTION_HOUSE": "0x2b6227a6ee0DD1C51AD849675E688195cE9bB203", + "GEB_PAUSE": "", + "GEB_PAUSE_PROXY": "", + "GEB_GOV_ACTIONS": "", + "GEB_COIN": "0xb2d541BDd0037e03d6B43490c9A72594a6c37A0f", + "GEB_ORACLE_RELAYER": "0xC87db8Fc544b9d12c10CA68e0D396598ecECF310", + "GEB_GLOBAL_SETTLEMENT": "0xB9C85D0887d210fd39d22fB26EeC87705feA35a6", + "GEB_STABILITY_FEE_TREASURY": "0x1411F0833Bc05DA16a959b3De21D5Fb7f1E0881f", + "GEB_ESM": "", + "GEB_ESM_TOKEN_BURNER": "", + "GEB_RRFM_CALCULATOR": "", + "GEB_DUMMY_RRFM_CALCULATOR": "", + "GEB_RRFM_SETTER": "", + "PROXY_ACTIONS": "0x61C2510325c89D6A244E2b5D84C2a2e66bFd067A", + "PROXY_ACTIONS_INCENTIVES": "", + "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0x7ca73B3b9be083f5323804B5054BC4323ab383a3", + "PROXY_DEBT_AUCTION_ACTIONS": "0xDeCCaAFEbfCF2C1210ac2d7115E5E043f27071E5", + "PROXY_SURPLUS_AUCTION_ACTIONS": "0xd1E276F8CEC64016e962a2c5B7D7B47aa611004b", + "SAFE_MANAGER": "0xd582Cb7e38503D584E7872B18B5451AbcA2527Ac", + "GET_SAFES": "", + "FSM_GOV_INTERFACE": "", + "PROXY_FACTORY": "0xCE03C307d005c26d3Ee83Ff2B5341179df380887", + "PROXY_REGISTRY": "", + "MEDIANIZER_RAI": "", + "SPOT_RAI": "", + "SPOT_FEED_SECURITY_MODULE_RAI": "", + "ETH": "0x4200000000000000000000000000000000000006", + "MEDIANIZER_ETH": "", + "FEED_SECURITY_MODULE_ETH": "", + "GEB_JOIN_ETH_A": "", + "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "", + "PROXY_PAUSE_ACTIONS": "", + "PROXY_PAUSE_SCHEDULE_ACTIONS": "", + "GEB_INCENTIVES_MINER": "", + "UNISWAP_FACTORY": "", + "UNISWAP_ROUTER": "", + "GEB_DS_COMPARE": "", + "GEB_TX_MANAGER": "", + "GEB_COIN_UNISWAP_POOL": "0x85E5Ebc04510e1A0a807AAC618176C6A84367cD5", + "GEB_SINGLE_CEILING_SETTER": "", + "CHAINLINK_AGGREGATOR": "0x57241A37733983F97C4Ab06448F244A1E0Ca0ba8", + "GEB_STAKING_AUCTION_HOUSE": "" + } + \ No newline at end of file diff --git a/config/optimism-sepolia.json b/config/optimism-sepolia.json new file mode 100644 index 0000000..eaa2003 --- /dev/null +++ b/config/optimism-sepolia.json @@ -0,0 +1,70 @@ +{ + "NETWORK": "optimism-sepolia", + "PROXY_REGISTRY_STARTING_BLOCK": "", + "ETH_FROM": "", + "STARTING_BLOCK_NUMBER": "8291429", + "PROXY_DEPLOYER": "", + "COIN_TYPE": "INDEX", + "GOVERNANCE_TYPE": "MULTISIG-SAFE", + "MULTICALL": "0xcA11bde05977b3631167028862bE2a173976CA11", + "FAUCET": "0x0000000000000000000000000000000000000000", + "GEB_MULTISIG": "", + "GEB_MULTISIG_PROXY": "", + "GEB_DEPLOY": "", + "GEB_PROT": "0xbEa0B991DfA52b6935F968fEf4279ba8472326E2", + "PROTOCOL_TOKEN_AUTHORITY": "", + "GEB_PAUSE_AUTHORITY": "", + "GEB_POLLING_EMITTER": "", + "GEB_SAFE_ENGINE": "0x2e7DdAddFa10E0b88fE084e2Cc2Cd8BD6c5d6a98", + "GEB_TAX_COLLECTOR": "0xF444E49eA0e4026030655F55547aA65baEfcc905", + "GEB_LIQUIDATION_ENGINE": "0xF31A62ab4FAba23348d943ca4E4FB9394d6B8A6A", + "GEB_ACCOUNTING_ENGINE": "0xC2F02F28228DD8DAd40AADa1DC2313073b27Ee7b", + "GEB_COIN_JOIN": "0xdA31dE7569F96A435B7D1ad8c297fc89c871C228", + "GEB_SURPLUS_AUCTION_HOUSE": "0x0df99181289acB1Fc3659B008651eC510c67d342", + "GEB_DEBT_AUCTION_HOUSE": "0x26ff852b0Cd3f3d202E81F177f96d0BD3A4FFF39", + "GEB_PAUSE": "", + "GEB_PAUSE_PROXY": "", + "GEB_GOV_ACTIONS": "", + "GEB_COIN": "0xd87Dd8e541BB8027f5d7292b2096a59DCa056C76", + "GEB_ORACLE_RELAYER": "0x1c76E151DB66cD6940934E04e6a497764d335600", + "GEB_GLOBAL_SETTLEMENT": "0x82893F9d9e0295264B4Cc74279F7C4aF3F100d13", + "GEB_STABILITY_FEE_TREASURY": "0xAB641b9907B2daf4642B08267A0DD669213248aC", + "GEB_ESM": "", + "GEB_ESM_TOKEN_BURNER": "", + "GEB_RRFM_CALCULATOR": "", + "GEB_DUMMY_RRFM_CALCULATOR": "", + "GEB_RRFM_SETTER": "", + "PROXY_ACTIONS": "0xF5348795719186D1eFAa13e1D8A3D890b2640e42", + "PROXY_ACTIONS_INCENTIVES": "", + "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0xe7B516F27cebD5FDCCDf519E12688Ee8878356Ef", + "PROXY_DEBT_AUCTION_ACTIONS": "0x312C5DcCd2D63b3bD29342219Dcc1dE2C4aE86d4", + "PROXY_SURPLUS_AUCTION_ACTIONS": "0x2EA2f271b6C0Ad3fE5412B020B6657ef158dcb57", + "SAFE_MANAGER": "0x1463a2D373111ace4A13b4B8147AE70789996556", + "GET_SAFES": "", + "FSM_GOV_INTERFACE": "", + "PROXY_FACTORY": "0x9fc5d3Be336FFdf0A1a5e1F9ac94340Aaa66d278", + "PROXY_REGISTRY": "", + "MEDIANIZER_RAI": "", + "SPOT_RAI": "", + "SPOT_FEED_SECURITY_MODULE_RAI": "", + "ETH": "0x4200000000000000000000000000000000000006", + "MEDIANIZER_ETH": "", + "FEED_SECURITY_MODULE_ETH": "", + "GEB_JOIN_ETH_A": "", + "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "", + "PROXY_PAUSE_ACTIONS": "", + "PROXY_PAUSE_SCHEDULE_ACTIONS": "", + "GEB_INCENTIVES_MINER": "", + "UNISWAP_FACTORY": "", + "UNISWAP_ROUTER": "", + "GEB_DS_COMPARE": "", + "GEB_TX_MANAGER": "", + "GEB_COIN_UNISWAP_POOL": "0x0000000000000000000000000000000000000000", + "GEB_SINGLE_CEILING_SETTER": "", + "CHAINLINK_AGGREGATOR": "0x61Ec26aA57019C486B10502285c5A3D4A4750AD7", + "GEB_STAKING_AUCTION_HOUSE": "", + "REWARD_DISTRIBUTOR": "0x7eEabf2B41445d3f004FA2dA2EEDf803922aC8de", + "STAKING_MANAGER": "0x5adb973008cfbdfd21a06d04a748b4d2b3750347", + "STAKING_MANAGER_START_BLOCK": "23116330" + } + diff --git a/config/tenderly-overrides.json b/config/tenderly-overrides.json new file mode 100644 index 0000000..8bd2e1b --- /dev/null +++ b/config/tenderly-overrides.json @@ -0,0 +1,8 @@ +{ + "STARTING_BLOCK_NUMBER": "148610000", + "HAIVELO_START_BLOCK": "148610000", + "STAKING_MANAGER_START_BLOCK": "148610000", + "STAKING_MANAGER_HAI_BOLD_CURVE_LP_START_BLOCK": "148610000", + "STAKING_MANAGER_HAI_VELO_VELO_LP_START_BLOCK": "148610000", + "REWARD_DISTRIBUTOR_START_BLOCK": "148610000" +} diff --git a/config/tenderly.json b/config/tenderly.json new file mode 100644 index 0000000..714d824 --- /dev/null +++ b/config/tenderly.json @@ -0,0 +1,75 @@ +{ + "NETWORK": "optimism", + "PROXY_REGISTRY_STARTING_BLOCK": "", + "ETH_FROM": "", + "STARTING_BLOCK_NUMBER": "116055145", + "PROXY_DEPLOYER": "", + "COIN_TYPE": "INDEX", + "GOVERNANCE_TYPE": "MULTISIG-SAFE", + "MULTICALL": "0xcA11bde05977b3631167028862bE2a173976CA11", + "FAUCET": "0x0000000000000000000000000000000000000000", + "GEB_MULTISIG": "", + "GEB_MULTISIG_PROXY": "", + "GEB_DEPLOY": "", + "GEB_PROT": "0xf467C7d5a4A9C4687fFc7986aC6aD5A4c81E1404", + "PROTOCOL_TOKEN_AUTHORITY": "", + "GEB_PAUSE_AUTHORITY": "", + "GEB_POLLING_EMITTER": "", + "GEB_SAFE_ENGINE": "0x9Ff826860689483181C5FAc9628fd2F70275A700", + "GEB_TAX_COLLECTOR": "0x62B82ccE08f8F2D808348409E9418c65EB1973C3", + "GEB_LIQUIDATION_ENGINE": "0x8Be588895BE9B75F9a9dAee185e0c2ad89891b56", + "GEB_ACCOUNTING_ENGINE": "0xa4900795EbFfadc12790f05f7c4AC42CD765Bd10", + "GEB_COIN_JOIN": "0x30Ce72230A47A0967B7e52A1bAE0178DbD7c6eA3", + "GEB_SURPLUS_AUCTION_HOUSE": "0x096125Fa7E2181DbA78136782365a39c3a1778E9", + "GEB_DEBT_AUCTION_HOUSE": "0x7CdE0d7296725aFB80EA091Eca8D06A377f617b3", + "GEB_PAUSE": "", + "GEB_PAUSE_PROXY": "", + "GEB_GOV_ACTIONS": "", + "GEB_COIN": "0x10398AbC267496E49106B07dd6BE13364D10dC71", + "GEB_ORACLE_RELAYER": "0x6270403b908505F02Da05BE5c1956aBB59FDb3A6", + "GEB_GLOBAL_SETTLEMENT": "0x75880aca7230462a630Ad65ad5444cb1E1864218", + "GEB_STABILITY_FEE_TREASURY": "0xE9E54c55d41D6622933F9F736e0c55484b3c4f6f", + "GEB_ESM": "", + "GEB_ESM_TOKEN_BURNER": "", + "GEB_RRFM_CALCULATOR": "", + "GEB_DUMMY_RRFM_CALCULATOR": "", + "GEB_RRFM_SETTER": "", + "PROXY_ACTIONS": "0xd36b1bD5445374Ceb7Fe4148a719584234Da7Bb0", + "PROXY_ACTIONS_INCENTIVES": "", + "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0xA0A78899Cd5c093F563EF22e86B68bBC44845Fa1", + "PROXY_DEBT_AUCTION_ACTIONS": "0xFC55B886a2619bd8645549f7Cb672872479F8117", + "PROXY_SURPLUS_AUCTION_ACTIONS": "0x632229A0A849bde3A1f1200cF23118b33A925cEc", + "SAFE_MANAGER": "0xB0FF82D8322f6Fa9C28Ec46eF0A5C343e95106C3", + "GET_SAFES": "", + "FSM_GOV_INTERFACE": "", + "PROXY_FACTORY": "0xBAfbCDbFbB1569722253ED4D491D2fB3b5E03a27", + "PROXY_REGISTRY": "", + "MEDIANIZER_RAI": "", + "SPOT_RAI": "", + "SPOT_FEED_SECURITY_MODULE_RAI": "", + "ETH": "0x4200000000000000000000000000000000000006", + "MEDIANIZER_ETH": "", + "FEED_SECURITY_MODULE_ETH": "", + "GEB_JOIN_ETH_A": "", + "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "", + "PROXY_PAUSE_ACTIONS": "", + "PROXY_PAUSE_SCHEDULE_ACTIONS": "", + "GEB_INCENTIVES_MINER": "", + "UNISWAP_FACTORY": "", + "UNISWAP_ROUTER": "", + "GEB_DS_COMPARE": "", + "GEB_TX_MANAGER": "", + "GEB_COIN_UNISWAP_POOL": "0x146b020399769339509c98B7B353d19130C150EC", + "GEB_SINGLE_CEILING_SETTER": "", + "CHAINLINK_AGGREGATOR": "0x13e3Ee699D1909E989722E753853AE30b17e08c5", + "GEB_STAKING_AUCTION_HOUSE": "", + "HAIVELO": "0x70f3713512089736661f928b291d1443c8b1bb6a", + "REWARD_DISTRIBUTOR": "0xfEd2eB6325432F0bF7110DcE2CCC5fF811ac3D4D", + "REWARD_DISTRIBUTOR_START_BLOCK": "144598400", + "STAKING_MANAGER": "0x1250f2326F04ac61Ee5aEd92fEf74BcAC6E6BC90", + "STAKING_MANAGER_START_BLOCK": "135218135", + "STAKING_MANAGER_HAI_BOLD_CURVE_LP": "0x70bf153870e405097eeec57d0b800fe7ee279e93", + "STAKING_MANAGER_HAI_BOLD_CURVE_LP_START_BLOCK": "144287109", + "STAKING_MANAGER_HAI_VELO_VELO_LP": "0xfFf582CE7353026B20264F27770fa7Bdd4Aa6d0E", + "STAKING_MANAGER_HAI_VELO_VELO_LP_START_BLOCK": "143314389" +} diff --git a/config/test.json b/config/test.json index f992e27..a8eb24b 100644 --- a/config/test.json +++ b/config/test.json @@ -1,57 +1,66 @@ { "NETWORK": "test", - "ETH_FROM": "0x00a329c0648769A73afAc7F9381E08FB43dBEA72", - "STARTING_BLOCK_NUMBER": "231", - "COIN_TYPE": "BOND", - "GOVERNANCE_TYPE": "MULTISIG", - "MULTICALL": "0x6fb1B37a51E01D9eBf0A382952c832Db94a3b028", - "FAUCET": "0xf60830c59C01EAFcE8e77796fD4eA6ad1029e279", - "GEB_MULTISIG": "0x0b32Fa20F100FcE51191434d2ACb896A2c926893", - "GEB_MULTISIG_PROXY": "0x581C545495DD5d3DA66a04E044eA3d5a602BeC60", - "GEB_GOVERNANCE_AGGREGATION": "0x0F07F1a220b0938E9eA2bCdAc0DAE65149AeAD5b", - "GEB_DEPLOY": "0xA94D619043D1Af1f9eC3a05bE4C7e5934DE03d7e", - "GEB_PROT": "0x525774447253CEdC46cCFfA18c9A48d4904B1D14", - "PROTOCOL_TOKEN_AUTHORITY": "0xc999681B023Ee86B491a4dFC0a916d781C5DdB6B", - "PRINTING_PERMISSIONS_REGISTRY": "0xF86Ec683b4115eA84ff895a00aDf9E5579d30d64", - "GEB_PAUSE_AUTHORITY": "0xCe4B6E68b7ec7B120adee48ca329C66A2a4c96ad", - "GEB_POLLING_EMITTER": "0x2FE69328c58a4717E6ed4ceE1C0b42BDA83685F8", - "GEB_SAFE_ENGINE": "0x93EE6051CD820eA8FD238c31424601E9221A9294", - "GEB_TAX_COLLECTOR": "0x58Ab1163630dd10186D41cB0CD1b295Adac13Ff7", - "GEB_LIQUIDATION_ENGINE": "0x48B5bEBFFb168646F3c7770e1DF0CaF94e3899C3", - "GEB_ACCOUNTING_ENGINE": "0x2A5DB9E6Bf9227AbFce518e66251D1924014bD46", - "GEB_COIN_JOIN": "0xBb658D7DAf2567da7D77f66673d9D35Da141d554", - "GEB_SETTLEMENT_SURPLUS_AUCTIONEER": "0x3B9152B4a26c320b43D2a63dd0e2a9E9F3d0d0C9", - "GEB_PRE_SETTLEMENT_SURPLUS_AUCTION_HOUSE": "0x6dE5C8B62C203EF6695Bc9437F002BffC2111062", - "GEB_POST_SETTLEMENT_SURPLUS_AUCTION_HOUSE": "0x07542F5AC5B474Ac33cf453252f55e16039b3905", - "GEB_DEBT_AUCTION_HOUSE": "0x16e2e58Cf8d693827a804B530A93E2e080f2F9FA", - "GEB_PAUSE": "0x3d17908e5588E9ed872c0Ff9b78E885E540c8EFA", - "GEB_PAUSE_PROXY": "0x3Cc26fD3956Ba3b382a8439Df5B37ce6FbeE1bF2", - "GEB_GOV_ACTIONS": "0x4E9ec0CF15A333BDEfDEE626678C3107d56FC060", - "GEB_COIN": "0x15A1EBDD1359C1D799105d1aD5b2bF174e18D81f", - "GEB_ORACLE_RELAYER": "0x3EB23912265Fe653Bdd834ed645B5F15BD26f5d4", - "GEB_GLOBAL_SETTLEMENT": "0x3211E943a4EC1414301b7824cd4efDEb84761874", - "GEB_ESM": "0x999a54303A4a247c5a46c3dFAB1F4d8aDD683907", - "GEB_ESM_TOKEN_BURNER": "0x7a74C098C6B26932c2Ccd9c1DF2dA97d48839AE0", - "PROXY_ACTIONS": "0x16fd5e5067cA991B96B2C3116C2641C81e098E8d", - "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0x0dEfF30733D365c5f5AE99A0bc9fb37D45d5f8cB", - "SAFE_MANAGER": "0xD391711093A84d1a489A39B4d28B767884400BEc", - "GET_SAFES": "0xD7fcC836eb2CB5d4c6d23029163a985c222a61F4", - "FSM_GOV_INTERFACE": "0xC9611dbFb954E594E53c00B35F724Ea6AB3A8Bf6", - "PROXY_FACTORY": "0xC8F865622751cF76E6F3c559b890f7667EF372c0", - "PROXY_REGISTRY": "0x1124F106A8e4cd82dCA8bF65C863665BF24DA625", - "ETH": "0x603c6b2EcA9cd481dF27F65d352F6378688B72Da", - "MEDIANIZER_ETH": "0xB6669de8956f8a013Bb0c8495Bd4c6D94c4C9bd5", - "ORACLE_SECURITY_MODULE_ETH": "0xB6669de8956f8a013Bb0c8495Bd4c6D94c4C9bd5", - "GEB_JOIN_ETH_A": "0xA62ce11dF1a4C963F5d5Eb4eAB25E5BA30Ba0f9F", - "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "0x2C029F60D91Da89978506342866Bf3550c378843", - "GEB_JOIN_ETH_B": "0x7ED8e8AA2976317Cc42Ef5141b26046D17eB975D", - "GEB_COLLATERAL_AUCTION_HOUSE_ETH_B": "0xED75f4049A70E17f7c1022858Ec9528c2830013E", - "GEB_JOIN_ETH_C": "0x7C4675e2D1DA5Ec71F71fc2056254A36E463e506", - "GEB_COLLATERAL_AUCTION_HOUSE_ETH_C": "0x603413E8A854F480D2e7f35Ee0238CD6f24412Ed", - "PROXY_PAUSE_ACTIONS": "0x84Fb5900B037328287136D6E323a59E53bd43325", - "PROXY_DEPLOYER": "0x6672Ae089f1d91c8C7bfAD8Bfb02AE731eA67D58", - "UNISWAP_FACTORY": "0x4aecf261541f168Bb3CA65FA8Ff5012498aac3b8", - "UNISWAP_ROUTER": "0x9Ed61f3502F6f18010f50A07606A7D9fea34ebc1", - "GEB_DS_COMPARE": "0xC9B3300aA230642ADCF352Ea0517302872d9ADBd", - "GEB_TX_MANAGER": "0x6894eC281fb32fad42abd7750750B1A51F5d32Be" + "PROXY_REGISTRY_STARTING_BLOCK": "", + "ETH_FROM": "", + "STARTING_BLOCK_NUMBER": "17538842", + "PROXY_DEPLOYER": "", + "COIN_TYPE": "INDEX", + "GOVERNANCE_TYPE": "MULTISIG-SAFE", + "MULTICALL": "0xcA11bde05977b3631167028862bE2a173976CA11", + "FAUCET": "0x0000000000000000000000000000000000000000", + "GEB_MULTISIG": "", + "GEB_MULTISIG_PROXY": "", + "GEB_DEPLOY": "", + "GEB_PROT": "0x05CBD1C19Af83Ab7929C8cA5000076cc0D3CeD62", + "PROTOCOL_TOKEN_AUTHORITY": "", + "GEB_PAUSE_AUTHORITY": "", + "GEB_POLLING_EMITTER": "", + "GEB_SAFE_ENGINE": "0x8CD47C308BE756F3721D2B25d73D372312fC58e3", + "GEB_TAX_COLLECTOR": "0x4d551Fb5132bfDf04f4e3742b244989A70F6098d", + "GEB_LIQUIDATION_ENGINE": "0x602F40EC23763994d5a6Dd26b240f4BeC39C7001", + "GEB_ACCOUNTING_ENGINE": "0xeeD607FC8c614f75B12524e7a04f62B8257fAB33", + "GEB_COIN_JOIN": "0xf439248215b6668018272bcF4B03E6E172472b52", + "GEB_SURPLUS_AUCTION_HOUSE": "0x80e05a7ade7C1D0f82635764C6a90c6473Fc3a9c", + "GEB_DEBT_AUCTION_HOUSE": "0x2b6227a6ee0DD1C51AD849675E688195cE9bB203", + "GEB_PAUSE": "", + "GEB_PAUSE_PROXY": "", + "GEB_GOV_ACTIONS": "", + "GEB_COIN": "0xb2d541BDd0037e03d6B43490c9A72594a6c37A0f", + "GEB_ORACLE_RELAYER": "0xC87db8Fc544b9d12c10CA68e0D396598ecECF310", + "GEB_GLOBAL_SETTLEMENT": "0xB9C85D0887d210fd39d22fB26EeC87705feA35a6", + "GEB_STABILITY_FEE_TREASURY": "0x1411F0833Bc05DA16a959b3De21D5Fb7f1E0881f", + "GEB_ESM": "", + "GEB_ESM_TOKEN_BURNER": "", + "GEB_RRFM_CALCULATOR": "", + "GEB_DUMMY_RRFM_CALCULATOR": "", + "GEB_RRFM_SETTER": "", + "PROXY_ACTIONS": "0x61C2510325c89D6A244E2b5D84C2a2e66bFd067A", + "PROXY_ACTIONS_INCENTIVES": "", + "PROXY_ACTIONS_GLOBAL_SETTLEMENT": "0x7ca73B3b9be083f5323804B5054BC4323ab383a3", + "PROXY_DEBT_AUCTION_ACTIONS": "0xDeCCaAFEbfCF2C1210ac2d7115E5E043f27071E5", + "PROXY_SURPLUS_AUCTION_ACTIONS": "0xd1E276F8CEC64016e962a2c5B7D7B47aa611004b", + "SAFE_MANAGER": "0xd582Cb7e38503D584E7872B18B5451AbcA2527Ac", + "GET_SAFES": "", + "FSM_GOV_INTERFACE": "", + "PROXY_FACTORY": "0xCE03C307d005c26d3Ee83Ff2B5341179df380887", + "PROXY_REGISTRY": "", + "MEDIANIZER_RAI": "", + "SPOT_RAI": "", + "SPOT_FEED_SECURITY_MODULE_RAI": "", + "ETH": "0x4200000000000000000000000000000000000006", + "MEDIANIZER_ETH": "", + "FEED_SECURITY_MODULE_ETH": "", + "GEB_JOIN_ETH_A": "", + "GEB_COLLATERAL_AUCTION_HOUSE_ETH_A": "", + "PROXY_PAUSE_ACTIONS": "", + "PROXY_PAUSE_SCHEDULE_ACTIONS": "", + "GEB_INCENTIVES_MINER": "", + "UNISWAP_FACTORY": "", + "UNISWAP_ROUTER": "", + "GEB_DS_COMPARE": "", + "GEB_TX_MANAGER": "", + "GEB_COIN_UNISWAP_POOL": "0x85E5Ebc04510e1A0a807AAC618176C6A84367cD5", + "GEB_SINGLE_CEILING_SETTER": "", + "CHAINLINK_AGGREGATOR": "0x57241A37733983F97C4Ab06448F244A1E0Ca0ba8", + "GEB_STAKING_AUCTION_HOUSE": "" } diff --git a/docker/.env.prod.example b/docker/.env.prod.example index 507b408..dc06e1c 100644 --- a/docker/.env.prod.example +++ b/docker/.env.prod.example @@ -8,4 +8,4 @@ ETHEREUM_RPC=hhttps://kovan.infura.io/v3/ NETWORK=kovan # Name of the subgraph on the graph node. -SUBGAPH_NAME=reflexer-labs/rai +SUBGAPH_NAME=hai-on-op/hai diff --git a/docker/.env.tenderly.example b/docker/.env.tenderly.example new file mode 100644 index 0000000..88a5c30 --- /dev/null +++ b/docker/.env.tenderly.example @@ -0,0 +1,7 @@ +# PostgreSQL password +POSTGRES_PASSWORD=1234 + +# Tenderly Optimism mainnet fork RPC URL +# Create a fork at https://dashboard.tenderly.co/ -> Forks -> Create Fork +# Select "Optimism" as the network, then copy the RPC URL +TENDERLY_FORK_RPC=https://rpc.tenderly.co/fork/ diff --git a/docker/docker-compose.tenderly.yml b/docker/docker-compose.tenderly.yml new file mode 100644 index 0000000..bd5f301 --- /dev/null +++ b/docker/docker-compose.tenderly.yml @@ -0,0 +1,12 @@ +version: '3' +services: + graph-node: + environment: + ethereum: 'optimism:${TENDERLY_FORK_RPC}' + ETHEREUM_BLOCK_BATCH_SIZE: 10000 + GRAPH_ETHEREUM_GENESIS_BLOCK_NUMBER: 148610000 + + graph-deployer: + environment: + - NETWORK=tenderly + command: 'docker/wait-for-it.sh\ graph-node:8020\ --timeout=60\ --\ npm\ run\ deploy-local' diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d2431c9..73db2d2 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -16,9 +16,10 @@ services: ipfs: 'ipfs:5001' ethereum: ${ETHEREUM_RPC} RUST_LOG: error + RUST_BACKTRACE: full GRAPH_LOG: info GRAPH_ETH_CALL_BY_NUMBER: 'true' - ETHEREUM_POLLING_INTERVAL: 500 + ETHEREUM_POLLING_INTERVAL: 1000 ETHEREUM_ANCESTOR_COUNT: 15 ETHEREUM_REORG_THRESHOLD: 15 EXPERIMENTAL_SUBGRAPH_VERSION_SWITCHING_MODE: synced @@ -26,7 +27,7 @@ services: options: max-size: 100m - restart: always + # restart: always ipfs: image: ipfs/go-ipfs:v0.4.23 ports: @@ -47,8 +48,10 @@ services: POSTGRES_USER: graph-node POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: graph-node + PGDATA: "/data/postgres" + POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C" volumes: - - ./data/postgres:/var/lib/postgresql/data + - pgdata:/data/postgres restart: always logging: options: @@ -62,9 +65,13 @@ services: environment: - GRAPH_ADMIN_RPC_URL=http://graph-node:8020/ - IPFS_URL=http://ipfs:5001 - - SUBGRAPH_NAME=reflexer-labs/rai + - SUBGRAPH_NAME=hai/hai - NETWORK - command: './docker/wait-for-it.sh\ graph-node:8000\ --timeout=40\ &&\ npm\ run\ deploy-local' + command: 'npm\ run\ deploy-local' logging: options: - max-size: 100m \ No newline at end of file + max-size: 100m + +volumes: + pgdata: + external: true \ No newline at end of file diff --git a/funding.json b/funding.json new file mode 100644 index 0000000..6c8f8da --- /dev/null +++ b/funding.json @@ -0,0 +1,5 @@ +{ + "opRetro": { + "projectId": "0x447b6819a0fa334f2429f86c022cf75ef3cad7e6e96078cb361ab961514b5125" + } +} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index a8c4dec..0000000 --- a/package-lock.json +++ /dev/null @@ -1,5536 +0,0 @@ -{ - "name": "geb-subgraph", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dev": true, - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz", - "integrity": "sha512-i/CjElAkzV7vQBAeoz+IpjGfcFYEP9eD7j3fzZ0fzTq03DO7PPnR+xkEZ1IoDXGwDS+55aLM1xvLDwB/Lx6IOQ==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/networks": "^5.0.3", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/transactions": "^5.0.5", - "@ethersproject/web": "^5.0.6" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.6.tgz", - "integrity": "sha512-h8TZBX3pL2Xx9tmsRxfWcaaI+FcJFHWvZ/vNvFjLp8zJ0kPD501LKTt2jo44LZ20N3EW68JMoyEmRQ6bpsn+iA==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3" - } - }, - "@ethersproject/address": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.5.tgz", - "integrity": "sha512-DpkQ6rwk9jTefrRsJzEm6nhRiJd9pvhn1xN0rw5N/jswXG5r7BLk/GVA0mMAVWAsYfvi2xSc5L41FMox43RYEA==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/rlp": "^5.0.3", - "bn.js": "^4.4.0" - } - }, - "@ethersproject/base64": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.4.tgz", - "integrity": "sha512-4KRykQ7BQMeOXfvio1YITwHjxwBzh92UoXIdzxDE1p53CK28bbHPdsPNYo0wl0El7lJAMpT2SOdL0hhbWRnyIA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4" - } - }, - "@ethersproject/basex": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.4.tgz", - "integrity": "sha512-ixIr/kKiAoSzOnSc777AGIOAhKai5Ivqr4HO/Gz+YG+xkfv6kqD6AW4ga9vM20Wwb0QBhh3LoRWTu4V1K+x9Ew==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/properties": "^5.0.3" - } - }, - "@ethersproject/bignumber": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.8.tgz", - "integrity": "sha512-KXFVAFKS1jdTXYN8BE5Oj+ZfPMh28iRdFeNGBVT6cUFdtiPVqeXqc0ggvBqA3A1VoFFGgM7oAeaagA393aORHA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "bn.js": "^4.4.0" - } - }, - "@ethersproject/bytes": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.5.tgz", - "integrity": "sha512-IEj9HpZB+ACS6cZ+QQMTqmu/cnUK2fYNE6ms/PVxjoBjoxc6HCraLpam1KuRvreMy0i523PLmjN8OYeikRdcUQ==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/constants": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.5.tgz", - "integrity": "sha512-foaQVmxp2+ik9FrLUCtVrLZCj4M3Ibgkqvh+Xw/vFRSerkjVSYePApaVE5essxhoSlF1U9oXfWY09QI2AXtgKA==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.0.7" - } - }, - "@ethersproject/contracts": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.5.tgz", - "integrity": "sha512-tFI255lFbmbqMkgnuyhDWHl3yWqttPlReplYuVvDCT/SuvBjLR4ad2uipBlh1fh5X1ipK9ettAoV4S0HKim4Kw==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.0.5", - "@ethersproject/abstract-provider": "^5.0.4", - "@ethersproject/abstract-signer": "^5.0.4", - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3" - } - }, - "@ethersproject/hash": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.5.tgz", - "integrity": "sha512-GpI80/h2HDpfNKpCZoxQJCjOQloGnlD5hM1G+tZe8FQDJhEvFjJoPDuWv+NaYjJfOciKS2Axqc4Q4WamdLoUgg==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/hdnode": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.5.tgz", - "integrity": "sha512-Ho4HZaK+KijE5adayvjAGusWMnT0mgwGa5hGMBofBOgX9nqiKf6Wxx68SXBGI1/L3rmKo6mlAjxUd8gefs0teQ==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.0.4", - "@ethersproject/basex": "^5.0.3", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/pbkdf2": "^5.0.3", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/sha2": "^5.0.3", - "@ethersproject/signing-key": "^5.0.4", - "@ethersproject/strings": "^5.0.4", - "@ethersproject/transactions": "^5.0.5", - "@ethersproject/wordlists": "^5.0.4" - } - }, - "@ethersproject/json-wallets": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.7.tgz", - "integrity": "sha512-dgOn9JtGgjT28mDXs4LYY2rT4CzS6bG/rxoYuPq3TLHIf6nmvBcr33Fee6RrM/y8UAx4gyIkf6wb2cXsOctvQQ==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.0.4", - "@ethersproject/address": "^5.0.4", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/hdnode": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/pbkdf2": "^5.0.3", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/random": "^5.0.3", - "@ethersproject/strings": "^5.0.4", - "@ethersproject/transactions": "^5.0.5", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.4.tgz", - "integrity": "sha512-GNpiOUm9PGUxFNqOxYKDQBM0u68bG9XC9iOulEQ8I0tOx/4qUpgVzvgXL6ugxr0RY554Gz/NQsVqknqPzUcxpQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "js-sha3": "0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - } - } - }, - "@ethersproject/logger": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.6.tgz", - "integrity": "sha512-FrX0Vnb3JZ1md/7GIZfmJ06XOAA8r3q9Uqt9O5orr4ZiksnbpXKlyDzQtlZ5Yv18RS8CAUbiKH9vwidJg1BPmQ==", - "dev": true - }, - "@ethersproject/networks": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.4.tgz", - "integrity": "sha512-/wHDTRms5mpJ09BoDrbNdFWINzONe05wZRgohCXvEv39rrH/Gd/yAnct8wC0RsW3tmFOgjgQxuBvypIxuUynTw==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.4.tgz", - "integrity": "sha512-9jVBjHXQKfr9+3bkCg01a8Cd1H9e+7Kw3ZMIvAxD0lZtuzrXsJxm1hVwY9KA+PRUvgS/9tTP4viXQYwLAax7zg==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/sha2": "^5.0.3" - } - }, - "@ethersproject/properties": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.4.tgz", - "integrity": "sha512-UdyX3GqBxFt15B0uSESdDNmhvEbK3ACdDXl2soshoPcneXuTswHDeA0LoPlnaZzhbgk4p6jqb4GMms5C26Qu6A==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/providers": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.12.tgz", - "integrity": "sha512-bRUEVNth+wGlm2Q0cQprVlixBWumfP9anrgAc3V2CbIh+GKvCwisVO8uRLrZOfOvTNSy6PUJi/Z4D5L+k3NAog==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.0.4", - "@ethersproject/abstract-signer": "^5.0.4", - "@ethersproject/address": "^5.0.4", - "@ethersproject/basex": "^5.0.3", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/networks": "^5.0.3", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/random": "^5.0.3", - "@ethersproject/rlp": "^5.0.3", - "@ethersproject/sha2": "^5.0.3", - "@ethersproject/strings": "^5.0.4", - "@ethersproject/transactions": "^5.0.5", - "@ethersproject/web": "^5.0.6", - "bech32": "1.1.4", - "ws": "7.2.3" - } - }, - "@ethersproject/random": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.4.tgz", - "integrity": "sha512-AIZJhqs6Ba4/+U3lOjt3QZbP6b/kuuGLJUYFUonAgWmkTHwqsCwYnFvnHKQSUuHbXHvErp7WFXFlztx+yMn3kQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/rlp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.4.tgz", - "integrity": "sha512-5qrrZad7VTjofxSsm7Zg/7Dr4ZOln4S2CqiDdOuTv6MBKnXj0CiBojXyuDy52M8O3wxH0CyE924hXWTDV1PQWQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/sha2": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.4.tgz", - "integrity": "sha512-0yFhf1mspxAfWdXXoPtK94adUeu1R7/FzAa+DfEiZTc76sz/vHXf0LSIazoR3znYKFny6haBxME+usbvvEcF3A==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "hash.js": "1.1.3" - }, - "dependencies": { - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - } - } - }, - "@ethersproject/signing-key": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.5.tgz", - "integrity": "sha512-Z1wY7JC1HVO4CvQWY2TyTTuAr8xK3bJijZw1a9G92JEmKdv1j255R/0YLBBcFTl2J65LUjtXynNJ2GbArPGi5g==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "elliptic": "6.5.3" - } - }, - "@ethersproject/solidity": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.5.tgz", - "integrity": "sha512-DMFQ0ouXmNVoKWbGEUFGi8Urli4SJip9jXafQyFHWPRr5oJUqDVkNfwcyC37k+mhBG93k7qrYXCH2xJnGEOxHg==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/sha2": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/strings": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.5.tgz", - "integrity": "sha512-JED6WaIV00xM/gvj8vSnd+0VWtDYdidTmavFRCTQakqfz+4tDo6Jz5LHgG+dd45h7ah7ykCHW0C7ZXWEDROCXQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/transactions": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.6.tgz", - "integrity": "sha512-htsFhOD+NMBxx676A8ehSuwVV49iqpSB+CkjPZ02tpNew0K6p8g0CZ46Z1ZP946gIHAU80xQ0NACHYrjIUaCFA==", - "dev": true, - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/rlp": "^5.0.3", - "@ethersproject/signing-key": "^5.0.4" - } - }, - "@ethersproject/units": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.6.tgz", - "integrity": "sha512-tsJuy4mipppdmooukRfhXt8fGx9nxvfvG6Xdy0RDm7LzHsjghjwQ69m2bCpId6SDSR1Uq1cQ9irPiUBSyWolUA==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/logger": "^5.0.5" - } - }, - "@ethersproject/wallet": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.5.tgz", - "integrity": "sha512-NbrKmsW3w+5dVOEyVCN5VAAIp3y8ckutW6AV7Lo0Hn8RO9mLT8ZFzLGp4lzgJoxkm+EV8BE+x1N6NdiOgUzRng==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.0.4", - "@ethersproject/abstract-signer": "^5.0.4", - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/hdnode": "^5.0.4", - "@ethersproject/json-wallets": "^5.0.6", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/random": "^5.0.3", - "@ethersproject/signing-key": "^5.0.4", - "@ethersproject/transactions": "^5.0.5", - "@ethersproject/wordlists": "^5.0.4" - } - }, - "@ethersproject/web": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.9.tgz", - "integrity": "sha512-//QNlv1MSkOII1hv3+HQwWoiVFS+BMVGI0KYeUww4cyrEktnx1QIez5bTSab9s9fWTFaWKNmQNBwMbxAqPuYDw==", - "dev": true, - "requires": { - "@ethersproject/base64": "^5.0.3", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/wordlists": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.5.tgz", - "integrity": "sha512-XA3ycFltVrCTQt04w5nHu3Xq5Z6HjqWsXaAYQHFdqtugyUsIumaO9S5MOwFFuUYTNkZUoT3jCRa/OBS+K4tLfA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@graphprotocol/graph-cli": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.20.1.tgz", - "integrity": "sha512-vT8pKz2OMyLcYGiFK8RVUk0HHYT9hYYdGwlYAOUON3HHIr51EjSbvTHW7ezBfneFurzj9z0Xdezwywf/N1ay0Q==", - "dev": true, - "requires": { - "assemblyscript": "git+https://github.com/AssemblyScript/assemblyscript.git#v0.6", - "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", - "keytar": "^7.4.0", - "node-fetch": "^2.3.0", - "pkginfo": "^0.4.1", - "prettier": "^1.13.5", - "request": "^2.88.0", - "tmp": "^0.1.0", - "yaml": "^1.5.1" - }, - "dependencies": { - "assemblyscript": { - "version": "git+https://github.com/AssemblyScript/assemblyscript.git#3ed76a97f05335504166fce1653da75f4face28f", - "from": "git+https://github.com/AssemblyScript/assemblyscript.git#v0.6", - "dev": true, - "requires": { - "@protobufjs/utf8": "^1.1.0", - "binaryen": "77.0.0-nightly.20190407", - "glob": "^7.1.3", - "long": "^4.0.0", - "opencollective-postinstall": "^2.0.0", - "source-map-support": "^0.5.11" - } - } - } - }, - "@graphprotocol/graph-ts": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.18.1.tgz", - "integrity": "sha512-vwDZjsnHlRKg8vdR+bfPdHwDixf0ozY6FU9CyVjrGLQpsEEISoNwsSCriUXE4Wv57LhmZEl8Ce3dhiPoqsv9tg==", - "dev": true, - "requires": { - "assemblyscript": "git+https://github.com/AssemblyScript/assemblyscript.git#36040d5b5312f19a025782b5e36663823494c2f3" - } - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=", - "dev": true - }, - "@reflexer-finance/geb-contract-api": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@reflexer-finance/geb-contract-api/-/geb-contract-api-0.0.20.tgz", - "integrity": "sha512-nUYJF+63eKd1lUF7K6bBI7f5bejFqWjz8t6V0p7DBwuOCr995c8ssaBNJp0tFl1Oc9sZPOd7djMup3VFMXkW/Q==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "5.x", - "@reflexer-finance/geb-contract-base": "^0.0.12" - } - }, - "@reflexer-finance/geb-contract-base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@reflexer-finance/geb-contract-base/-/geb-contract-base-0.0.12.tgz", - "integrity": "sha512-6PUWeIPBFwv904I1AZna+gCHgAGEdH+qrfZs7EHirjICv9z1IWcrNvFaOpwPpIUfMKKELsk+GB9r4WAab/CKSg==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "5.x" - } - }, - "@reflexer-finance/geb-ethers-provider": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@reflexer-finance/geb-ethers-provider/-/geb-ethers-provider-0.0.14.tgz", - "integrity": "sha512-eG8F0jp+xaPs4tVTvYZiHBWGWqVCsS9AcfaaAj7zP4q+WriHTgbqDGSwD6Skl/XSPWYnXsHkRkpOM+bichLSdg==", - "dev": true, - "requires": { - "@reflexer-finance/geb-contract-base": "^0.0.12" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/connect": { - "version": "3.4.34", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", - "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz", - "integrity": "sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/lodash": { - "version": "4.14.170", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", - "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==", - "dev": true - }, - "@types/mocha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.3.tgz", - "integrity": "sha512-vyxR57nv8NfcU0GZu8EUXZLTbCMupIUwy95LJ6lllN+JRPG25CwMHoB1q5xKh8YKhQnHYRAn4yW2yuHbf/5xgg==", - "dev": true - }, - "@types/node": { - "version": "12.20.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.15.tgz", - "integrity": "sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", - "dev": true - }, - "@types/ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-8mbDgtc8xpxDDem5Gwj76stBDJX35KQ3YBoayxlqUQcL5BZUthiqP/VQ4PQnLHqM4PmlbyO74t98eJpURO+gPA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apisauce": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/apisauce/-/apisauce-2.1.1.tgz", - "integrity": "sha512-P4SsLvmsH8BLLruBn/nsO+65j+ChZlGQ2zC5avCIjbWstYS4PgjxeVWtbeVwFGEWX7dEkLp85OvdapGXy1zS8g==", - "dev": true, - "requires": { - "axios": "^0.21.1", - "ramda": "^0.25.0" - }, - "dependencies": { - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - } - } - }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array.prototype.map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", - "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.4" - } - }, - "asmcrypto.js": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz", - "integrity": "sha512-3FgFARf7RupsZETQ1nHnhLUUvpcttcCq1iZCaVAbJZbCZ5VNRrNyvpDyHTOb0KC3llFcsyOT/a99NZcCbeiEsA==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assemblyscript": { - "version": "git+https://github.com/AssemblyScript/assemblyscript.git#36040d5b5312f19a025782b5e36663823494c2f3", - "from": "git+https://github.com/AssemblyScript/assemblyscript.git#36040d5b5312f19a025782b5e36663823494c2f3", - "dev": true, - "requires": { - "@protobufjs/utf8": "^1.1.0", - "binaryen": "77.0.0-nightly.20190407", - "glob": "^7.1.3", - "long": "^4.0.0", - "opencollective-postinstall": "^2.0.0", - "source-map-support": "^0.5.11" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "axios": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz", - "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - }, - "dependencies": { - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - } - } - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "dev": true - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "binaryen": { - "version": "77.0.0-nightly.20190407", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-77.0.0-nightly.20190407.tgz", - "integrity": "sha512-1mxYNvQ0xywMe582K7V6Vo2zzhZZxMTeGHH8aE/+/AND8f64D8Q1GThVY3RVRwGY/4p+p95ccw9Xbw2ovFXRIg==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", - "dev": true - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, - "requires": { - "base-x": "^3.0.2" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", - "dev": true - }, - "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "optional": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "docker-compose": { - "version": "0.23.12", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.12.tgz", - "integrity": "sha512-KFbSMqQBuHjTGZGmYDOCO0L4SaML3BsWTId5oSUyaBa22vALuFHNv+UdDWs3HcMylHWKsxCbLB7hnM/nCosWZw==", - "dev": true, - "requires": { - "yaml": "^1.10.2" - } - }, - "docker-modem": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz", - "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "debug": "^3.2.6", - "readable-stream": "~1.0.26-4", - "split-ca": "^1.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "dockerode": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz", - "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==", - "dev": true, - "requires": { - "concat-stream": "~1.6.2", - "docker-modem": "^1.0.8", - "tar-fs": "~1.16.3" - } - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "dev": true, - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.4.tgz", - "integrity": "sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==", - "dev": true, - "requires": { - "ansi-colors": "^3.2.1" - } - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - } - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", - "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", - "dev": true, - "requires": { - "es-abstract": "^1.17.4", - "has-symbols": "^1.0.1", - "is-arguments": "^1.0.4", - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "ethers": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.17.tgz", - "integrity": "sha512-E0MrwCttHgdD6Irfa0B9cNdX0VoWVWLusaj51+EQalkl3pqhV2zGMPncfhYbc9+4nD2u81dbX8Pk9UN5kh/jew==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.0.7", - "@ethersproject/abstract-provider": "5.0.5", - "@ethersproject/abstract-signer": "5.0.6", - "@ethersproject/address": "5.0.5", - "@ethersproject/base64": "5.0.4", - "@ethersproject/basex": "5.0.4", - "@ethersproject/bignumber": "5.0.8", - "@ethersproject/bytes": "5.0.5", - "@ethersproject/constants": "5.0.5", - "@ethersproject/contracts": "5.0.5", - "@ethersproject/hash": "5.0.5", - "@ethersproject/hdnode": "5.0.5", - "@ethersproject/json-wallets": "5.0.7", - "@ethersproject/keccak256": "5.0.4", - "@ethersproject/logger": "5.0.6", - "@ethersproject/networks": "5.0.4", - "@ethersproject/pbkdf2": "5.0.4", - "@ethersproject/properties": "5.0.4", - "@ethersproject/providers": "5.0.12", - "@ethersproject/random": "5.0.4", - "@ethersproject/rlp": "5.0.4", - "@ethersproject/sha2": "5.0.4", - "@ethersproject/signing-key": "5.0.5", - "@ethersproject/solidity": "5.0.5", - "@ethersproject/strings": "5.0.5", - "@ethersproject/transactions": "5.0.6", - "@ethersproject/units": "5.0.6", - "@ethersproject/wallet": "5.0.5", - "@ethersproject/web": "5.0.9", - "@ethersproject/wordlists": "5.0.5" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true, - "optional": true - }, - "explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flatmap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz", - "integrity": "sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ=", - "dev": true - }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-jetpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-2.4.0.tgz", - "integrity": "sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.2", - "rimraf": "^2.6.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "geb.js": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/geb.js/-/geb.js-0.0.18.tgz", - "integrity": "sha512-Rh41jNd/NYdeWtX55+0ckHjMnPTuQAzJ8hjOG7Yp8OvNc46p+yTiIhsgCzh8JevRAF6aQsVV5eduMt6ystSL0w==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "5.x", - "@reflexer-finance/geb-contract-api": "^0.0.20", - "@reflexer-finance/geb-contract-base": "^0.0.12", - "@reflexer-finance/geb-ethers-provider": "^0.0.14" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - }, - "dependencies": { - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "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-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "gluegun": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/gluegun/-/gluegun-4.6.1.tgz", - "integrity": "sha512-Jd5hV1Uku2rjBg59mYA/bnwLwynK7u9A1zmK/LIb/p5d3pzjDCKRjWFuxZXyPwl9rsvKGhJUQxkFo2HEy8crKQ==", - "dev": true, - "requires": { - "apisauce": "^2.0.1", - "app-module-path": "^2.2.0", - "cli-table3": "~0.5.0", - "colors": "^1.3.3", - "cosmiconfig": "6.0.0", - "cross-spawn": "^7.0.0", - "ejs": "^2.6.1", - "enquirer": "2.3.4", - "execa": "^3.0.0", - "fs-jetpack": "^2.2.2", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.lowercase": "^4.3.0", - "lodash.lowerfirst": "^4.3.1", - "lodash.pad": "^4.5.1", - "lodash.padend": "^4.6.1", - "lodash.padstart": "^4.6.1", - "lodash.repeat": "^4.1.0", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.trim": "^4.5.1", - "lodash.trimend": "^4.5.1", - "lodash.trimstart": "^4.5.1", - "lodash.uppercase": "^4.3.0", - "lodash.upperfirst": "^4.3.1", - "ora": "^4.0.0", - "pluralize": "^8.0.0", - "ramdasauce": "^2.1.0", - "semver": "^7.0.0", - "which": "^2.0.0", - "yargs-parser": "^16.1.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "graphql": { - "version": "15.5.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.1.tgz", - "integrity": "sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "optional": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - }, - "ipfs-block": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/ipfs-block/-/ipfs-block-0.8.1.tgz", - "integrity": "sha512-0FaCpmij+jZBoUYhjoB5ptjdl9QzvrdRIoBmUU5JiBnK2GA+4YM/ifklaB8ePRhA/rRzhd+KYBjvMFMAL4NrVQ==", - "dev": true, - "requires": { - "cids": "~0.7.0", - "class-is": "^1.1.0" - } - }, - "ipfs-http-client": { - "version": "34.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-34.0.0.tgz", - "integrity": "sha512-4RCkk8ix4Dqn6sxqFVwuXWCZ1eLFPsVaj6Ijvu1fs9VYgxgVudsW9PWwarlr4mw1xUCmPWYyXnEbGgzBrfMy0Q==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "async": "^2.6.1", - "bignumber.js": "^9.0.0", - "bl": "^3.0.0", - "bs58": "^4.0.1", - "buffer": "^5.4.2", - "cids": "~0.7.1", - "concat-stream": "github:hugomrdias/concat-stream#feat/smaller", - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "end-of-stream": "^1.4.1", - "err-code": "^2.0.0", - "explain-error": "^1.0.4", - "flatmap": "0.0.3", - "glob": "^7.1.3", - "ipfs-block": "~0.8.1", - "ipfs-utils": "~0.0.3", - "ipld-dag-cbor": "~0.15.0", - "ipld-dag-pb": "~0.17.3", - "ipld-raw": "^4.0.0", - "is-ipfs": "~0.6.1", - "is-pull-stream": "0.0.0", - "is-stream": "^2.0.0", - "iso-stream-http": "~0.1.2", - "iso-url": "~0.4.6", - "iterable-ndjson": "^1.1.0", - "just-kebab-case": "^1.1.0", - "just-map-keys": "^1.1.0", - "kind-of": "^6.0.2", - "ky": "^0.11.2", - "ky-universal": "^0.2.2", - "lru-cache": "^5.1.1", - "multiaddr": "^6.0.6", - "multibase": "~0.6.0", - "multicodec": "~0.5.1", - "multihashes": "~0.4.14", - "ndjson": "github:hugomrdias/ndjson#feat/readable-stream3", - "once": "^1.4.0", - "peer-id": "~0.12.3", - "peer-info": "~0.15.1", - "promise-nodeify": "^3.0.1", - "promisify-es6": "^1.0.3", - "pull-defer": "~0.2.3", - "pull-stream": "^3.6.9", - "pull-to-stream": "~0.1.1", - "pump": "^3.0.0", - "qs": "^6.5.2", - "readable-stream": "^3.1.1", - "stream-to-pull-stream": "^1.7.2", - "tar-stream": "^2.0.1", - "through2": "^3.0.1" - }, - "dependencies": { - "bl": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz", - "integrity": "sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==", - "dev": true, - "requires": { - "readable-stream": "^3.0.1" - } - }, - "concat-stream": { - "version": "github:hugomrdias/concat-stream#057bc7b5d6d8df26c8cf00a3f151b6721a0a8034", - "from": "github:hugomrdias/concat-stream#feat/smaller", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^3.0.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - } - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "ipfs-utils": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-0.0.4.tgz", - "integrity": "sha512-7cZf6aGj2FG3XJWhCNwn4mS93Q0GEWjtBZvEHqzgI43U2qzNDCyzfS1pei1Y5F+tw/zDJ5U4XG0G9reJxR53Ig==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "is-buffer": "^2.0.3", - "is-electron": "^2.2.0", - "is-pull-stream": "0.0.0", - "is-stream": "^2.0.0", - "kind-of": "^6.0.2", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "ipld-dag-cbor": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.15.3.tgz", - "integrity": "sha512-m23nG7ZyoVFnkK55/bLAErc7EfiMgaEQlqHWDTGzPI+O5r6bPfp+qbL5zTVSIT8tpbHmu174dwerVtLoVgeVyA==", - "dev": true, - "requires": { - "borc": "^2.1.2", - "buffer": "^5.5.0", - "cids": "~0.8.0", - "is-circular": "^1.0.2", - "multicodec": "^1.0.0", - "multihashing-async": "~0.8.0" - }, - "dependencies": { - "cids": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "class-is": "^1.1.0", - "multibase": "^1.0.0", - "multicodec": "^1.0.1", - "multihashes": "^1.0.1" - } - }, - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - } - } - } - }, - "ipld-dag-pb": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.17.4.tgz", - "integrity": "sha512-YwCxETEMuXVspOKOhjIOHJvKvB/OZfCDkpSFiYBQN2/JQjM9y/RFCYzIQGm0wg7dCFLrhvfjAZLTSaKs65jzWA==", - "dev": true, - "requires": { - "cids": "~0.7.0", - "class-is": "^1.1.0", - "multicodec": "~0.5.1", - "multihashing-async": "~0.7.0", - "protons": "^1.0.1", - "stable": "~0.1.8" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "multihashing-async": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.7.0.tgz", - "integrity": "sha512-SCbfl3f+DzJh+/5piukga9ofIOxwfT05t8R4jfzZIJ88YE9zU9+l3K2X+XB19MYyxqvyK9UJRNWbmQpZqQlbRA==", - "dev": true, - "requires": { - "blakejs": "^1.1.0", - "buffer": "^5.2.1", - "err-code": "^1.1.2", - "js-sha3": "~0.8.0", - "multihashes": "~0.4.13", - "murmurhash3js-revisited": "^3.0.0" - } - } - } - }, - "ipld-raw": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-4.0.1.tgz", - "integrity": "sha512-WjIdtZ06jJEar8zh+BHB84tE6ZdbS/XNa7+XCArOYfmeJ/c01T9VQpeMwdJQYn5c3s5UvvCu7y4VIi3vk2g1bA==", - "dev": true, - "requires": { - "cids": "~0.7.0", - "multicodec": "^1.0.0", - "multihashing-async": "~0.8.0" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" - }, - "is-circular": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", - "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==", - "dev": true - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dev": true, - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-ipfs": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.6.3.tgz", - "integrity": "sha512-HyRot1dvLcxImtDqPxAaY1miO6WsiP/z7Yxpg2qpaLWv5UdhAPtLvHJ4kMLM0w8GSl8AFsVF23PHe1LzuWrUlQ==", - "dev": true, - "requires": { - "bs58": "^4.0.1", - "cids": "~0.7.0", - "mafmt": "^7.0.0", - "multiaddr": "^7.2.1", - "multibase": "~0.6.0", - "multihashes": "~0.4.13" - }, - "dependencies": { - "multiaddr": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz", - "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "cids": "~0.8.0", - "class-is": "^1.1.0", - "is-ip": "^3.1.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "cids": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "class-is": "^1.1.0", - "multibase": "^1.0.0", - "multicodec": "^1.0.1", - "multihashes": "^1.0.1" - }, - "dependencies": { - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multihashes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - } - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "is-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", - "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", - "dev": true - }, - "is-pull-stream": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/is-pull-stream/-/is-pull-stream-0.0.0.tgz", - "integrity": "sha1-o7w9HG0wVRUcRr3m85nv7SFEDKk=", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", - "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "iso-random-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", - "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "iso-stream-http": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-stream-http/-/iso-stream-http-0.1.2.tgz", - "integrity": "sha512-oHEDNOysIMTNypbg2f1SlydqRBvjl4ZbSE9+0awVxnkx3K2stGTFwB/kpVqnB6UEfF8QD36kAjDwZvqyXBLMnQ==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "dev": true - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "dev": true, - "requires": { - "string_decoder": "^1.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "iterate-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", - "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", - "dev": true - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dev": true, - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, - "jayson": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.6.4.tgz", - "integrity": "sha512-GH63DsRFFlodS8krFgAhxwYvQFmSwjsFxKnPrHQtp+BJj/tpeSj3hyBGGqmTkuq043U1Gn6u8VdsVRFZX1EEiQ==", - "dev": true, - "requires": { - "@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", - "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" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "ws": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", - "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", - "dev": true - } - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dev": true, - "requires": { - "delimit-stream": "0.1.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-kebab-case": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-kebab-case/-/just-kebab-case-1.1.0.tgz", - "integrity": "sha512-QkuwuBMQ9BQHMUEkAtIA4INLrkmnnveqlFB1oFi09gbU0wBdZo6tTnyxNWMR84zHxBuwK7GLAwqN8nrvVxOLTA==", - "dev": true - }, - "just-map-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-map-keys/-/just-map-keys-1.1.0.tgz", - "integrity": "sha512-oNKi+4y7fr8lXnhKYpBbCkiwHRVkAnx0VDkCeTDtKKMzGr1Lz1Yym+RSieKUTKim68emC5Yxrb4YmiF9STDO+g==", - "dev": true - }, - "keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==", - "dev": true - }, - "keytar": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", - "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", - "dev": true, - "optional": true, - "requires": { - "node-addon-api": "^3.0.0", - "prebuild-install": "^6.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "ky": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.11.2.tgz", - "integrity": "sha512-5Aou5BWue5/mkPqIRqzSWW+0Hkl403pr/2AIrCKYw7cVl/Xoe8Xe4KLBO0PRjbz7GnRe1/8wW1KhqQNFFE7/GQ==", - "dev": true - }, - "ky-universal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.2.2.tgz", - "integrity": "sha512-fb32o/fKy/ux2ALWa9HU2hvGtfOq7/vn2nH0FpVE+jwNzyTeORlAbj3Fiw+WLMbUlmVqZIWupnLZ2USHvqwZHw==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "node-fetch": "^2.3.0" - } - }, - "libp2p-crypto": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.16.3.tgz", - "integrity": "sha512-ro7/5Tu+f8p2+qDS1JrROnO++nNaAaBFs+VVXVHLuTMnbnMASu1eUtSlWPk1uOwikAlBFTvfqe5J1bK6Bpq6Pg==", - "dev": true, - "requires": { - "asmcrypto.js": "^2.3.2", - "asn1.js": "^5.0.1", - "async": "^2.6.1", - "bn.js": "^4.11.8", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "iso-random-stream": "^1.1.0", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.3.0", - "multihashing-async": "~0.5.1", - "node-forge": "~0.9.1", - "pem-jwk": "^2.0.0", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "ursa-optional": "~0.10.0" - }, - "dependencies": { - "multihashing-async": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.5.2.tgz", - "integrity": "sha512-mmyG6M/FKxrpBh9xQDUvuJ7BbqT93ZeEeH5X6LeMYKoYshYLr9BDdCsvDtZvn+Egf+/Xi+aOznrWL4vp3s+p0Q==", - "dev": true, - "requires": { - "blakejs": "^1.1.0", - "js-sha3": "~0.8.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - } - } - }, - "libp2p-crypto-secp256k1": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/libp2p-crypto-secp256k1/-/libp2p-crypto-secp256k1-0.3.1.tgz", - "integrity": "sha512-evrfK/CeUSd/lcELUdDruyPBvxDmLairth75S32OLl3H+++2m2fV24JEtxzdFS9JH3xEFw0h6JFO8DBa1bP9dA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "bs58": "^4.0.1", - "multihashing-async": "~0.6.0", - "nodeify": "^1.0.1", - "safe-buffer": "^5.1.2", - "secp256k1": "^3.6.2" - }, - "dependencies": { - "multihashing-async": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.6.0.tgz", - "integrity": "sha512-Qv8pgg99Lewc191A5nlXy0bSd2amfqlafNJZmarU6Sj7MZVjpR94SCxQjf4DwPtgWZkiLqsjUQBXA2RSq+hYyA==", - "dev": true, - "requires": { - "blakejs": "^1.1.0", - "js-sha3": "~0.8.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - } - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, - "lodash.lowercase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", - "integrity": "sha1-RlFaztSssLcJMTMzOvBo5MOxTp0=", - "dev": true - }, - "lodash.lowerfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz", - "integrity": "sha1-3jx7EuAsZSSgBZwvbLfFxSZVoT0=", - "dev": true - }, - "lodash.pad": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", - "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=", - "dev": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", - "dev": true - }, - "lodash.repeat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", - "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=", - "dev": true - }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=", - "dev": true - }, - "lodash.trim": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", - "integrity": "sha1-NkJefukL5KpeJ7zruFt9EepHqlc=", - "dev": true - }, - "lodash.trimend": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz", - "integrity": "sha1-EoBENyhrmMrYmWt5QU4RMAEUCC8=", - "dev": true - }, - "lodash.trimstart": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz", - "integrity": "sha1-j/TexTLYJIavWVc8OURZFOlEp/E=", - "dev": true - }, - "lodash.uppercase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz", - "integrity": "sha1-xASr/RRp+Tkx+bskz2zH1XBZvHM=", - "dev": true - }, - "lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", - "dev": true - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "looper": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "mafmt": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-7.1.0.tgz", - "integrity": "sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA==", - "dev": true, - "requires": { - "multiaddr": "^7.3.0" - }, - "dependencies": { - "cids": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "class-is": "^1.1.0", - "multibase": "^1.0.0", - "multicodec": "^1.0.1", - "multihashes": "^1.0.1" - }, - "dependencies": { - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "multiaddr": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz", - "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "cids": "~0.8.0", - "class-is": "^1.1.0", - "is-ip": "^3.1.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "optional": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true, - "optional": true - }, - "mocha": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz", - "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.4.2", - "debug": "4.1.1", - "diff": "4.0.2", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.14.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.2", - "object.assign": "4.1.0", - "promise.allsettled": "1.0.2", - "serialize-javascript": "4.0.0", - "strip-json-comments": "3.0.1", - "supports-color": "7.1.0", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.0.0", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.1" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multiaddr": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-6.1.1.tgz", - "integrity": "sha512-Q1Ika0F9MNhMtCs62Ue+GWIJtRFEhZ3Xz8wH7/MZDVZTWhil1/H2bEGN02kUees3hkI3q1oHSjmXYDM0gxaFjQ==", - "dev": true, - "requires": { - "bs58": "^4.0.1", - "class-is": "^1.1.0", - "hi-base32": "~0.5.0", - "ip": "^1.1.5", - "is-ip": "^2.0.0", - "varint": "^5.0.0" - }, - "dependencies": { - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-2.0.0.tgz", - "integrity": "sha1-aO6gfooKCpTC0IDdZ0xzGrKkYas=", - "dev": true, - "requires": { - "ip-regex": "^2.0.0" - } - } - } - }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "requires": { - "varint": "^5.0.0" - } - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "multihashing-async": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.8.2.tgz", - "integrity": "sha512-2lKa1autuCy8x7KIEj9aVNbAb3aIMRFYIwN7mq/zD4pxgNIVgGlm+f6GKY4880EOF2Y3GktHYssRy7TAJQ2DyQ==", - "dev": true, - "requires": { - "blakejs": "^1.1.0", - "buffer": "^5.4.3", - "err-code": "^2.0.0", - "js-sha3": "^0.8.0", - "multihashes": "^1.0.1", - "murmurhash3js-revisited": "^3.0.0" - }, - "dependencies": { - "multibase": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "dev": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multihashes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", - "dev": true, - "requires": { - "buffer": "^5.6.0", - "multibase": "^1.0.1", - "varint": "^5.0.0" - } - } - } - }, - "murmurhash3js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/murmurhash3js/-/murmurhash3js-3.0.1.tgz", - "integrity": "sha1-Ppg+W0fCoG9DpxMXTn5DXKBEuZg=", - "dev": true - }, - "murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "dev": true - }, - "mustache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", - "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true, - "optional": true - }, - "ndjson": { - "version": "github:hugomrdias/ndjson#4db16da6b42e5b39bf300c3a7cde62abb3fa3a11", - "from": "github:hugomrdias/ndjson#feat/readable-stream3", - "dev": true, - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^3.1.0", - "through2": "^3.0.0" - } - }, - "node-abi": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz", - "integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==", - "dev": true, - "optional": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - } - } - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true - }, - "nodeify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", - "integrity": "sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0=", - "dev": true, - "requires": { - "is-promise": "~1.0.0", - "promise": "~1.3.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true - }, - "optimist": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "dev": true, - "requires": { - "wordwrap": "~0.0.2" - } - }, - "ora": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", - "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "peer-id": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.5.tgz", - "integrity": "sha512-3xVWrtIvNm9/OPzaQBgXDrfWNx63AftgFQkvqO6YSZy7sP3Fuadwwbn54F/VO9AnpyW/26i0WRQz9FScivXrmw==", - "dev": true, - "requires": { - "async": "^2.6.3", - "class-is": "^1.1.0", - "libp2p-crypto": "~0.16.1", - "multihashes": "~0.4.15" - } - }, - "peer-info": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/peer-info/-/peer-info-0.15.1.tgz", - "integrity": "sha512-Y91Q2tZRC0CpSTPd1UebhGqniOrOAk/aj60uYUcWJXCoLTAnGu+4LJGoiay8ayudS6ice7l3SKhgL/cS62QacA==", - "dev": true, - "requires": { - "mafmt": "^6.0.2", - "multiaddr": "^6.0.3", - "peer-id": "~0.12.2", - "unique-by": "^1.0.0" - }, - "dependencies": { - "mafmt": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-6.0.10.tgz", - "integrity": "sha512-FjHDnew6dW9lUu3eYwP0FvvJl9uvNbqfoJM+c1WJcSyutNEIlyu6v3f/rlPnD1cnmue38IjuHlhBdIh3btAiyw==", - "dev": true, - "requires": { - "multiaddr": "^6.1.0" - } - } - } - }, - "pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "dev": true, - "requires": { - "asn1.js": "^5.0.1" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", - "dev": true - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "prebuild-install": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz", - "integrity": "sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "optional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "optional": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", - "integrity": "sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU=", - "dev": true, - "requires": { - "is-promise": "~1" - } - }, - "promise-nodeify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/promise-nodeify/-/promise-nodeify-3.0.1.tgz", - "integrity": "sha512-ghsSuzZXJX8iO7WVec2z7GI+Xk/EyiD+JZK7AZKhUqYfpLa/Zs4ylUD+CwwnKlG6G3HnkUPMAi6PO7zeqGKssg==", - "dev": true - }, - "promise.allsettled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", - "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", - "dev": true, - "requires": { - "array.prototype.map": "^1.0.1", - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "iterate-value": "^1.0.0" - } - }, - "promisify-es6": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/promisify-es6/-/promisify-es6-1.0.3.tgz", - "integrity": "sha512-N9iVG+CGJsI4b4ZGazjwLnxErD2d9Pe4DPvvXSxYA9tFNu8ymXME4Qs5HIQ0LMJpNM7zj+m0NlNnNeqFpKzqnA==", - "dev": true - }, - "protocol-buffers-schema": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz", - "integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw==", - "dev": true - }, - "protons": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/protons/-/protons-1.2.1.tgz", - "integrity": "sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "protocol-buffers-schema": "^3.3.1", - "signed-varint": "^2.0.1", - "varint": "^5.0.0" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pull-defer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", - "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==", - "dev": true - }, - "pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==", - "dev": true - }, - "pull-to-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pull-to-stream/-/pull-to-stream-0.1.1.tgz", - "integrity": "sha512-thZkMv6F9PILt9zdvpI2gxs19mkDrlixYKX6cOBxAW16i1NZH+yLAmF4r8QfJ69zuQh27e01JZP9y27tsH021w==", - "dev": true, - "requires": { - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "ramda": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", - "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==", - "dev": true - }, - "ramdasauce": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ramdasauce/-/ramdasauce-2.1.3.tgz", - "integrity": "sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==", - "dev": true, - "requires": { - "ramda": "^0.24.1" - }, - "dependencies": { - "ramda": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", - "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", - "dev": true - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsa-pem-to-jwk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz", - "integrity": "sha1-JF52vbfnI0z+58oDLTG1TDj6uY4=", - "dev": true, - "requires": { - "object-assign": "^2.0.0", - "rsa-unpack": "0.0.6" - }, - "dependencies": { - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true - } - } - }, - "rsa-unpack": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/rsa-unpack/-/rsa-unpack-0.0.6.tgz", - "integrity": "sha1-9Q69VqYoN45jHylxYQJs6atO3bo=", - "dev": true, - "requires": { - "optimist": "~0.3.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "dev": true, - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "dependencies": { - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - } - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "dev": true, - "requires": { - "varint": "~5.0.0" - } - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "optional": true - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "dev": true, - "optional": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=", - "dev": true - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - } - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stream-to-pull-stream": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", - "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", - "dev": true, - "requires": { - "looper": "^3.0.0", - "pull-stream": "^3.2.3" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dev": true, - "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "ts-node": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", - "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", - "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==", - "dev": true - }, - "unique-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-by/-/unique-by-1.0.0.tgz", - "integrity": "sha1-UiDIa6e8Vy+3E610ZRRwy2RCEr0=", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "dev": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "workerpool": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", - "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", - "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "decamelize": "^1.2.0", - "flat": "^4.1.0", - "is-plain-obj": "^1.1.0", - "yargs": "^14.2.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json index c8aadfb..9d8bcc0 100644 --- a/package.json +++ b/package.json @@ -8,17 +8,18 @@ "codegen": "rm -rf generated && graph codegen", "create": "graph create --node ${GRAPH_ADMIN_RPC_URL} ${SUBGRAPH_NAME}", "remove": "graph remove --node ${GRAPH_ADMIN_RPC_URL} ${SUBGRAPH_NAME}", - "deploy-local": "npm run prepare-${NETWORK:-mainnet} && npm run codegen && npm run create; graph deploy --node ${GRAPH_ADMIN_RPC_URL} --ipfs ${IPFS_URL} ${SUBGRAPH_NAME}", - "deploy-hosted-kovan": "npm run prepare-kovan && npm run codegen && graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ reflexer-labs/rai-kovan", - "deploy-hosted-mainnet": "npm run prepare-mainnet && npm run codegen && graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ reflexer-labs/rai-mainnet", + "deploy-local": "npm run prepare-${NETWORK:-mainnet} && npm run codegen && npm run create; graph deploy --node ${GRAPH_ADMIN_RPC_URL} --ipfs ${IPFS_URL} ${SUBGRAPH_NAME} --version-label v1;", + "deploy-hosted-alchemy-optimism-goerli": "npm run prepare-optimism-goerli && npm run codegen; graph deploy hai --version-label v1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key deployKeyHere", + "deploy-hosted-alchemy-optimism-sepolia": "npm run prepare-optimism-sepolia && npm run codegen; graph deploy hai --version-label v1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key deployKeyHere", + "deploy-hosted-mainnet": "npm run prepare-mainnet && npm run codegen; graph deploy hai --version-label v1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key deployKeyHere", "deploy-hosted-dev": "npm run prepare-mainnet && npm run codegen && graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ guifel/geb", - "deploy-hosted-dev-kovan": "npm run prepare-kovan && npm run codegen && graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ guifel/gebkovan", "prepare-mainnet": "mustache config/mainnet.json subgraph.template.yaml > subgraph.yaml && mustache config/mainnet.json src/utils/addresses.template.ts > src/utils/addresses.ts", - "prepare-kovan": "mustache config/kovan.json subgraph.template.yaml > subgraph.yaml && mustache config/kovan.json src/utils/addresses.template.ts > src/utils/addresses.ts", + "prepare-optimism-goerli": "mustache config/optimism-goerli.json subgraph.template.yaml > subgraph.yaml && mustache config/optimism-goerli.json src/utils/addresses.template.ts > src/utils/addresses.ts", + "prepare-optimism-sepolia": "mustache config/optimism-sepolia.json subgraph.template.yaml > subgraph.yaml && mustache config/optimism-sepolia.json src/utils/addresses.template.ts > src/utils/addresses.ts", + "sync-tenderly": "bash scripts/sync-tenderly-config.sh", + "prepare-tenderly": "npm run sync-tenderly && mustache config/tenderly.json subgraph.template.yaml > subgraph.yaml && mustache config/tenderly.json src/utils/addresses.template.ts > src/utils/addresses.ts", "update-abis": "node update_abis.js geb-subgraph/abis kovan/0.6.0", - "test-hosted-kovan": "ETH_RPC=https://parity0.kovan.makerfoundation.com:8545 SUBGRAPH_NODE_URL=https://api.thegraph.com/subgraphs/name/reflexer-labs/rai-kovan TS_NODE_PROJECT=test/tsconfig.json mocha -r ts-node/register --timeout 5000 ./test/*.test.ts", - "test-hosted-mainnet": "ETH_RPC=https://parity0.mainnet.makerfoundation.com:8545 SUBGRAPH_NODE_URL=TODO TS_NODE_PROJECT=test/tsconfig.json mocha -r ts-node/register --timeout 5000 ./test/*.test.ts", - "test-aws-kovan": "ETH_RPC=https://parity0.kovan.makerfoundation.com:8545 SUBGRAPH_NODE_URL=https://subgraph-kovan.reflexer.finance/subgraphs/name/reflexer-labs/rai/graphql TS_NODE_PROJECT=test/tsconfig.json mocha -r ts-node/register --timeout 5000 ./test/*.test.ts" + "test-hosted-mainnet": "ETH_RPC=https://parity0.mainnet.makerfoundation.com:8545 SUBGRAPH_NODE_URL=TODO TS_NODE_PROJECT=test/tsconfig.json mocha -r ts-node/register --timeout 5000 ./test/*.test.ts" }, "repository": { "type": "git", @@ -31,8 +32,8 @@ }, "homepage": "https://github.com/reflexer-labs/geb-subgraph#readme", "devDependencies": { - "@graphprotocol/graph-cli": "^0.20.1", - "@graphprotocol/graph-ts": "^0.18.1", + "@graphprotocol/graph-cli": "^0.61.0", + "@graphprotocol/graph-ts": "^0.31.0", "@types/mocha": "^8.0.3", "axios": "^0.20.0", "ethers": "^5.0.17", diff --git a/schema.graphql b/schema.graphql index cc2d634..649066c 100644 --- a/schema.graphql +++ b/schema.graphql @@ -16,6 +16,9 @@ type Safe @entity { " Outstanding Safe debt " debt: BigDecimal! + " Current CRatio for this Safe " + cRatio: BigDecimal! + " The address of the Safe handler (ownership at the SAFEEngine level if the Safe was created using GebSafeManager) " safeHandler: Bytes! @@ -104,9 +107,6 @@ type UserProxy @entity { " Proxy contract address " address: Bytes! - " Cache contract address " - cache: Bytes! - " Allowance of the proxy to spend its owner RAIs (Useful when we need to repay debt)" coinAllowance: ERC20Allowance @@ -382,6 +382,14 @@ type CollateralType @entity { modifiedAtTransaction: Bytes } +type CollateralSafe @entity { + " Set to Collateral Type string " + id: ID! + + " List of Safe IDs with this Collateral Type " + safeIds: [String!]! +} + type SystemState @entity { " Singleton entity. Always set to 'current' " id: ID! @@ -535,9 +543,6 @@ type AccountingEngine @entity { " Contract that handles auctions for debt that couldn't be covered by collateral auctions " debtAuctionHouse: Bytes! - " Permissions registry dictating who can burn and mint protocol tokens " - protocolTokenAuthority: Bytes! - " Addredd of the contract that auctions extra surplus after settlement is triggered " postSettlementSurplusDrain: Bytes! @@ -942,6 +947,9 @@ type EnglishAuctionBid @entity { " Bidder address " bidder: Bytes + " proxy owner (if exists) " + owner: Bytes + " Timestamp of the block at which the liquidation started " createdAt: BigInt! @@ -1022,6 +1030,12 @@ type EnglishAuction @entity { " Deadline for the auction after which no more bids can be placed " auctionDeadline: BigInt! + " If auction was restarted, store timestamp of restart " + auctionRestartTimestamps: [BigInt!]! + + " Auction Restarts Hash " + auctionRestartHashes: [Bytes!]! + " List of individual bids " englishAuctionBids: [EnglishAuctionBid!] @derivedFrom(field: "auction") @@ -1066,7 +1080,7 @@ type DiscountAuction @entity { buyAmount: BigDecimal! " Cumulative collateral amount sold so far " - sellAmount: BigDecimal + sellAmount: BigDecimal! " Liquidated Safe " safe: Safe! @@ -1144,7 +1158,7 @@ type ERC20Balance @entity { address: Bytes! " Either the address or the owner of the proxy if the address is a Proxy " - owner: User + owner: User! " Balance amount " balance: BigDecimal! @@ -1325,20 +1339,8 @@ type UniswapPair @entity { " Quote token address " token1: Bytes! - " Base token reserve amount " - reserve0: BigDecimal! - - " Quote token reserve amount " - reserve1: BigDecimal! - - " reserve0 / reserve 1 " - token0Price: BigDecimal! - - " reserve1 / reserve 0 " - token1Price: BigDecimal! - - " Supply of pool token shares " - totalSupply: BigDecimal! + " SqrtPriceX96 " + sqrtPriceX96: BigInt! " Timestamp of the block at which the pair was created [unix time] " createdAt: BigInt! @@ -1523,10 +1525,10 @@ type DailyStat @entity { blockNumber: BigInt! " Redemption rate " - redemptionRate: RedemptionRate! + redemptionRate: RedemptionRate " Redemption price " - redemptionPrice: RedemptionPrice! + redemptionPrice: RedemptionPrice " Price of COIN in USD (Uniswap pool price * ETH median price) " marketPriceUsd: BigDecimal! @@ -1552,10 +1554,10 @@ type HourlyStat @entity { blockNumber: BigInt! " Redemption rate " - redemptionRate: RedemptionRate! + redemptionRate: RedemptionRate " Redemption price " - redemptionPrice: RedemptionPrice! + redemptionPrice: RedemptionPrice " Price of COIN in USD (Uniswap v2 pool price * ETH median price) " marketPriceUsd: BigDecimal! @@ -1569,3 +1571,403 @@ type HourlyStat @entity { " ERC20 COIN Supply " erc20CoinTotalSupply: BigDecimal! } + +# Main contract entity that manages the reward distribution system +type RewardDistributor @entity { + " Equal to: " + id: ID! + + " Address authorized to update merkle roots " + rewardSetter: Bytes! + + " List of all merkle roots for different tokens, derived from MerkleRoot entity " + merkleRoots: [MerkleRoot!]! @derivedFrom(field: "distributor") + + " List of all claims made through this distributor, derived from Claim entity " + claims: [Claim!]! @derivedFrom(field: "distributor") +} + +# Represents a merkle root for a specific token's reward distribution +type MerkleRoot @entity { + " Equal to: " + id: ID! + + " Link to the distributor contract that manages this root " + distributor: RewardDistributor! + + " Address of the token this merkle root is for " + token: Bytes! + + " The merkle root hash containing all claimable rewards " + root: Bytes! + + " Timestamp when this root was last updated [seconds] " + updatedAt: BigInt! + + " Block number when this root was last updated " + updatedAtBlock: BigInt! + + " Transaction hash that updated this root " + updatedAtTransaction: Bytes! +} + +# Records individual reward claim events +type Claim @entity { + " Equal to: -- " + id: ID! + + " Link to the distributor contract where claim was made " + distributor: RewardDistributor! + + " User who claimed the reward " + user: RewardUser! + + " Address of the token that was claimed " + token: Bytes! + + " Amount of tokens claimed " + amount: BigInt! + + " Timestamp when claim was made [seconds] " + claimedAt: BigInt! + + " Block number when claim was made " + claimedAtBlock: BigInt! + + " Transaction hash of the claim " + claimedAtTransaction: Bytes! +} + +# Represents a user who can claim rewards +type RewardUser @entity { + " Equal to: " + id: ID! + + " List of all claims made by this user, derived from Claim entity " + claims: [Claim!]! @derivedFrom(field: "user") + + " Aggregated claims per token, derived from TokenClaim entity " + totalClaimedByToken: [TokenClaim!]! @derivedFrom(field: "user") +} + +# Aggregates total claims per user per token +type TokenClaim @entity { + " Equal to: - " + id: ID! + + " Link to the user who owns these claims " + user: RewardUser! + + " Address of the token that was claimed " + token: Bytes! + + " Total amount claimed for this token " + totalAmount: BigInt! + + " Number of times this token has been claimed " + claimCount: BigInt! +} + +type StakingUser @entity { + id: ID! # user address + stakedBalance: BigInt! + totalStaked: BigInt! + totalWithdrawn: BigInt! + stakingPositions: [StakingPosition!]! @derivedFrom(field: "user") + rewards: [RewardClaim!]! @derivedFrom(field: "user") + pendingWithdrawal: PendingWithdrawal +} + +type StakingPosition @entity { + id: ID! # user address + timestamp + user: StakingUser! + amount: BigInt! + timestamp: BigInt! + type: StakingActionType! + transactionHash: String! +} + +enum StakingActionType { + STAKE + INITIATE_WITHDRAWAL + CANCEL_WITHDRAWAL + WITHDRAW +} + +type PendingWithdrawal @entity { + id: ID! # user address + user: StakingUser! + amount: BigInt! + timestamp: BigInt! + status: WithdrawalStatus! +} + +enum WithdrawalStatus { + PENDING + CANCELLED + COMPLETED +} + + +# Staking Rewards +type RewardClaim @entity { + id: ID! # user address + timestamp + user: StakingUser! + rewardToken: Bytes! # address of reward token + amount: BigInt! + destination: Bytes! # address where rewards were sent + timestamp: BigInt! + transactionHash: String! +} + +type StakingStatistic @entity { + id: ID! # "singleton" + totalStaked: BigInt! + totalStakers: BigInt! + totalRewardsPaid: BigInt! +} + +# --- HaiBoldCurveLP Staking --- + +type HaiBoldCurveLPStakingUser @entity { + id: ID! # user address + stakedBalance: BigInt! + totalStaked: BigInt! + totalWithdrawn: BigInt! + stakingPositions: [HaiBoldCurveLPStakingPosition!]! @derivedFrom(field: "user") + rewards: [HaiBoldCurveLPRewardClaim!]! @derivedFrom(field: "user") + pendingWithdrawal: HaiBoldCurveLPPendingWithdrawal +} + +type HaiBoldCurveLPStakingPosition @entity { + id: ID! # user address + timestamp + user: HaiBoldCurveLPStakingUser! + amount: BigInt! + timestamp: BigInt! + type: StakingActionType! + transactionHash: String! +} + +type HaiBoldCurveLPPendingWithdrawal @entity { + id: ID! # user address + user: HaiBoldCurveLPStakingUser! + amount: BigInt! + timestamp: BigInt! + status: WithdrawalStatus! +} + +type HaiBoldCurveLPRewardClaim @entity { + id: ID! # user address + timestamp + user: HaiBoldCurveLPStakingUser! + rewardToken: Bytes! # address of reward token + amount: BigInt! + destination: Bytes! # address where rewards were sent + timestamp: BigInt! + transactionHash: String! +} + +type HaiBoldCurveLPStakingStatistic @entity { + id: ID! # "singleton" + totalStaked: BigInt! + totalStakers: BigInt! + totalRewardsPaid: BigInt! +} + +# --- HaiVeloVeloLP Staking --- + +type HaiVeloVeloLPStakingUser @entity { + id: ID! # user address + stakedBalance: BigInt! + totalStaked: BigInt! + totalWithdrawn: BigInt! + stakingPositions: [HaiVeloVeloLPStakingPosition!]! @derivedFrom(field: "user") + rewards: [HaiVeloVeloLPRewardClaim!]! @derivedFrom(field: "user") + pendingWithdrawal: HaiVeloVeloLPPendingWithdrawal +} + +type HaiVeloVeloLPStakingPosition @entity { + id: ID! # user address + timestamp + user: HaiVeloVeloLPStakingUser! + amount: BigInt! + timestamp: BigInt! + type: StakingActionType! + transactionHash: String! +} + +type HaiVeloVeloLPPendingWithdrawal @entity { + id: ID! # user address + user: HaiVeloVeloLPStakingUser! + amount: BigInt! + timestamp: BigInt! + status: WithdrawalStatus! +} + +type HaiVeloVeloLPRewardClaim @entity { + id: ID! # user address + timestamp + user: HaiVeloVeloLPStakingUser! + rewardToken: Bytes! # address of reward token + amount: BigInt! + destination: Bytes! # address where rewards were sent + timestamp: BigInt! + transactionHash: String! +} + +type HaiVeloVeloLPStakingStatistic @entity { + id: ID! # "singleton" + totalStaked: BigInt! + totalStakers: BigInt! + totalRewardsPaid: BigInt! +} + +# --- Wrapped Token (HAI Velo) --- + +type WrappedToken @entity { + " Contract address " + id: ID! + + " Name of the wrapped token " + name: String! + + " Symbol of the wrapped token " + symbol: String! + + " Address of the base token " + baseToken: Bytes! + + " Address of the base token manager " + baseTokenManager: Bytes! + + " Total amount deposited across all users " + totalDeposits: BigDecimal! + + " Number of unique depositors " + depositorCount: BigInt! + + " List of all deposits made " + deposits: [WrappedTokenDeposit!]! @derivedFrom(field: "wrappedToken") + + " List of all user balances " + userBalances: [WrappedTokenUserBalance!]! @derivedFrom(field: "wrappedToken") + + " Timestamp of the first deposit " + createdAt: BigInt! + + " Block number of the first deposit " + createdAtBlock: BigInt! + + " Hash of the transaction of the first deposit " + createdAtTransaction: Bytes! + + " Timestamp of the last deposit " + modifiedAt: BigInt + + " Block number of the last deposit " + modifiedAtBlock: BigInt + + " Hash of the transaction of the last deposit " + modifiedAtTransaction: Bytes +} + +type WrappedTokenDeposit @entity { + " Equal to: - " + id: ID! + + " User who deposited " + user: User! + + " Amount deposited " + amount: BigDecimal! + + " The wrapped token contract " + wrappedToken: WrappedToken! + + " Timestamp of the deposit [seconds] " + createdAt: BigInt! + + " Block number of the deposit " + createdAtBlock: BigInt! + + " Hash of the transaction " + createdAtTransaction: Bytes! +} + +type WrappedTokenUserBalance @entity { + " Equal to: - " + id: ID! + + " User who owns the balance " + user: User! + + " The wrapped token contract " + wrappedToken: WrappedToken! + + " Current balance " + balance: BigDecimal! + + " Total amount deposited by this user " + totalDeposited: BigDecimal! + + " Number of deposits made by this user " + depositCount: BigInt! + + " Timestamp of the first deposit " + createdAt: BigInt! + + " Block number of the first deposit " + createdAtBlock: BigInt! + + " Hash of the transaction of the first deposit " + createdAtTransaction: Bytes! + + " Timestamp of the last deposit " + modifiedAt: BigInt + + " Block number of the last deposit " + modifiedAtBlock: BigInt + + " Hash of the transaction of the last deposit " + modifiedAtTransaction: Bytes +} + +# --- New Staking --- + +# type StakingManager @entity { +# "Contract address" +# id: ID! +# "Protocol token address (e.g., KITE)" +# protocolToken: Bytes! +# "Staking token address (e.g., stKITE)" +# stakingToken: StakingToken! +# "Total currently staked (excluding pending withdrawals)" +# totalStaked: BigInt! +# "Total staked including pending withdrawals" +# totalStakedRaw: BigInt! +# "Available KITE rewards" +# totalKiteRewardsAvailable: BigInt! +# "Cooldown period in seconds" +# cooldownPeriod: BigInt! +# "Number of reward types" +# rewardTypesCount: Int! +# "All reward types for this manager" +# rewardTypes: [RewardType!]! @derivedFrom(field: "stakingManager") +# "All user positions for this manager" +# userPositions: [UserStakingPosition!]! @derivedFrom(field: "stakingManager") +# "All stake transactions" +# stakeTransactions: [StakeTransaction!]! @derivedFrom(field: "stakingManager") +# "All withdrawal transactions" +# withdrawalTransactions: [WithdrawalTransaction!]! @derivedFrom(field: "stakingManager") +# "All reward claim transactions" +# rewardClaimTransactions: [RewardClaimTransaction!]! @derivedFrom(field: "stakingManager") +# "All checkpoint events" +# checkpointEvents: [CheckpointEvent!]! @derivedFrom(field: "stakingManager") +# "Statistics for this manager" +# stats: StakingManagerStats! +# "Block number when created" +# createdAtBlock: BigInt! +# "Timestamp when created" +# createdAtTimestamp: BigInt! +# "Last updated block" +# lastUpdatedBlock: BigInt! +# "Last updated timestamp" +# lastUpdatedTimestamp: BigInt! +# } diff --git a/scripts/sync-tenderly-config.sh b/scripts/sync-tenderly-config.sh new file mode 100755 index 0000000..c48f08e --- /dev/null +++ b/scripts/sync-tenderly-config.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Syncs tenderly.json from mainnet.json, then applies any overrides +# from tenderly-overrides.json on top. +# +# Usage: ./scripts/sync-tenderly-config.sh +# +# To override a specific address for Tenderly, add it to +# config/tenderly-overrides.json, e.g.: +# { "GEB_SAFE_ENGINE": "0xNewTenderlyAddress..." } + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +CONFIG_DIR="$SCRIPT_DIR/../config" + +MAINNET="$CONFIG_DIR/mainnet.json" +OVERRIDES="$CONFIG_DIR/tenderly-overrides.json" +OUTPUT="$CONFIG_DIR/tenderly.json" + +if [ ! -f "$MAINNET" ]; then + echo "Error: $MAINNET not found" + exit 1 +fi + +# Start from mainnet +cp "$MAINNET" "$OUTPUT" + +# Apply overrides if the file exists and is non-empty +if [ -f "$OVERRIDES" ] && [ -s "$OVERRIDES" ]; then + # Use node to merge since it's already a project dependency + node -e " + const fs = require('fs'); + const mainnet = JSON.parse(fs.readFileSync('$OUTPUT', 'utf8')); + const overrides = JSON.parse(fs.readFileSync('$OVERRIDES', 'utf8')); + const merged = { ...mainnet, ...overrides }; + fs.writeFileSync('$OUTPUT', JSON.stringify(merged, null, 2) + '\n'); + " + echo "Synced config/tenderly.json from mainnet.json with overrides applied" +else + echo "Synced config/tenderly.json from mainnet.json (no overrides)" +fi diff --git a/src/entities/accounting-engine.ts b/src/entities/accounting-engine.ts index ff8203f..2e4b6f7 100644 --- a/src/entities/accounting-engine.ts +++ b/src/entities/accounting-engine.ts @@ -10,20 +10,20 @@ export function getOrCreateAccountingEngine(event: ethereum.Event): AccountingEn if (engine == null) { let engineContract = AccountingEngineBind.bind(dataSource.address()) engine = new AccountingEngine('current') + let params = engineContract.params() engine.totalQueuedDebt = decimal.ZERO engine.totalOnAuctionDebt = decimal.ZERO - engine.surplusAuctionDelay = integer.ZERO - engine.popDebtDelay = integer.ZERO - engine.initialDebtAuctionMintedTokens = decimal.ZERO - engine.debtAuctionBidSize = decimal.ZERO - engine.surplusAuctionAmountToSell = decimal.ZERO - engine.surplusBuffer = decimal.ZERO - engine.disableCooldown = integer.ZERO + engine.surplusAuctionDelay = params.surplusDelay + engine.popDebtDelay = params.popDebtDelay + engine.initialDebtAuctionMintedTokens = decimal.fromWad(params.debtAuctionMintedTokens) + engine.debtAuctionBidSize = decimal.fromRad(params.debtAuctionBidSize) + engine.surplusAuctionAmountToSell = decimal.fromRad(params.surplusAmount) + engine.surplusBuffer = decimal.fromRad(params.surplusBuffer) + engine.disableCooldown = params.disableCooldown engine.contractEnabled = true engine.safeEngine = engineContract.safeEngine() engine.surplusAuctionHouse = engineContract.surplusAuctionHouse() engine.debtAuctionHouse = engineContract.debtAuctionHouse() - engine.protocolTokenAuthority = engineContract.protocolTokenAuthority() engine.postSettlementSurplusDrain = engineContract.postSettlementSurplusDrain() engine.debtAuctionCount = integer.ZERO engine.surplusAuctionCount = integer.ZERO diff --git a/src/entities/auctions.ts b/src/entities/auctions.ts index b8e3c9e..5c22f02 100644 --- a/src/entities/auctions.ts +++ b/src/entities/auctions.ts @@ -2,11 +2,12 @@ import { Bytes, log, Address } from '@graphprotocol/graph-ts' import * as decimal from '../utils/decimal' import * as integer from '../utils/integer' +import * as bytes from '../utils/bytes' import * as enums from '../utils/enums' import { EnglishAuctionConfiguration } from '.' import { DebtAuctionHouse } from '../../generated/DebtAuctionHouse/DebtAuctionHouse' import { SurplusAuctionHouse } from '../../generated/SurplusAuctionHouse/SurplusAuctionHouse' -import { StakedTokenAuctionHouse } from '../../generated/StakedTokenAuctionHouse/StakedTokenAuctionHouse' +// import { StakedTokenAuctionHouse } from '../../generated/StakedTokenAuctionHouse/StakedTokenAuctionHouse' export function getOrCreateEnglishAuctionConfiguration( houseAddress: Bytes, @@ -20,22 +21,26 @@ export function getOrCreateEnglishAuctionConfiguration( // Pull config from the auction contract if (configId == enums.EnglishAuctionType_DEBT) { - let contract = DebtAuctionHouse.bind(houseAddress as Address) - config.bidIncrease = decimal.fromWad(contract.bidDecrease()) - config.bidDuration = contract.bidDuration() - config.totalAuctionLength = contract.totalAuctionLength() - config.DEBT_amountSoldIncrease = decimal.fromWad(contract.amountSoldIncrease()) + let contract = DebtAuctionHouse.bind(bytes.toAddress(houseAddress)) + let params = contract.params() + config.bidIncrease = decimal.fromWad(params.bidDecrease) + config.bidDuration = params.bidDuration + config.totalAuctionLength = params.totalAuctionLength + + config.DEBT_amountSoldIncrease = decimal.fromWad(params.amountSoldIncrease) } else if (configId == enums.EnglishAuctionType_SURPLUS) { - let contract = SurplusAuctionHouse.bind(houseAddress as Address) - config.bidIncrease = decimal.fromWad(contract.bidIncrease()) - config.bidDuration = contract.bidDuration() - config.totalAuctionLength = contract.totalAuctionLength() - } else if (configId == enums.EnglishAuctionType_STAKED_TOKEN) { - let contract = StakedTokenAuctionHouse.bind(houseAddress as Address) - config.bidIncrease = decimal.fromWad(contract.bidIncrease()) - config.bidDuration = contract.bidDuration() - config.totalAuctionLength = contract.totalAuctionLength() + let contract = SurplusAuctionHouse.bind(bytes.toAddress(houseAddress)) + let params = contract.params() + config.bidIncrease = decimal.fromWad(params.bidIncrease) + config.bidDuration = params.bidDuration + config.totalAuctionLength = params.totalAuctionLength } + // } else if (configId == enums.EnglishAuctionType_STAKED_TOKEN) { + // let contract = StakedTokenAuctionHouse.bind(houseAddress as Address) + // config.bidIncrease = decimal.fromWad(contract.bidIncrease()) + // config.bidDuration = contract.bidDuration() + // config.totalAuctionLength = contract.totalAuctionLength() + // } config.save() diff --git a/src/entities/balances.ts b/src/entities/balances.ts index 3065700..e7d8038 100644 --- a/src/entities/balances.ts +++ b/src/entities/balances.ts @@ -53,7 +53,10 @@ function createCoinBalance( let bal = new InternalCoinBalance(address.toHexString()) bal.accountHandler = address bal.owner = getOrCreateUser(findUltimateOwner(address)).id - bal.proxy = findProxy(address).id + let proxy = findProxy(address) + if (proxy != null) { + bal.proxy = proxy.id + } bal.balance = balance bal.createdAt = event.block.timestamp bal.createdAtBlock = event.block.number @@ -114,7 +117,10 @@ function createCollateralBalance( let bal = new InternalCollateralBalance(address.toHexString() + '-' + collateralType.toString()) bal.accountHandler = address bal.owner = getOrCreateUser(findUltimateOwner(address)).id - bal.proxy = findProxy(address).id + let proxy = findProxy(address) + if (proxy != null) { + bal.proxy = proxy.id + } bal.collateralType = collateralType.toString() bal.balance = balance bal.createdAt = event.block.timestamp diff --git a/src/entities/collateral.ts b/src/entities/collateral.ts index 46a035b..82397fd 100644 --- a/src/entities/collateral.ts +++ b/src/entities/collateral.ts @@ -1,4 +1,4 @@ -import { CollateralType } from '../../generated/schema' +import { CollateralType, CollateralSafe } from '../../generated/schema' import { Bytes, ethereum, BigInt, Entity, Address } from '@graphprotocol/graph-ts' import * as decimal from '../utils/decimal' @@ -11,6 +11,8 @@ export function getOrCreateCollateral( let collateral = CollateralType.load(collateralType.toString()) if (collateral == null) { collateral = new CollateralType(collateralType.toString()) + let collateralSafe = new CollateralSafe(collateralType.toString()) + collateralSafe.safeIds = [] collateral.debtCeiling = decimal.ZERO collateral.debtFloor = decimal.ZERO collateral.debtAmount = decimal.ZERO @@ -18,12 +20,13 @@ export function getOrCreateCollateral( // TODO: auction parameter init collateral.liquidationPenalty = decimal.ZERO + collateral.liquidationQuantity = decimal.ZERO collateral.liquidationCRatio = decimal.ZERO collateral.safetyCRatio = decimal.ZERO collateral.collateralAuctionHouseAddress = Address.fromHexString( '0x0000000000000000000000000000000000000000', ) as Bytes - + collateral.accumulatedRate = decimal.fromRay(BigInt.fromI32(10).pow(27)) collateral.stabilityFee = decimal.ONE @@ -44,6 +47,7 @@ export function getOrCreateCollateral( collateral.createdAtTransaction = event.transaction.hash collateral.save() + collateralSafe.save() } collateral.modifiedAt = event.block.timestamp @@ -53,3 +57,11 @@ export function getOrCreateCollateral( return collateral as CollateralType } + +export function getCollateral( + collateralType: string, +): CollateralType | null { + let collateral = CollateralType.load(collateralType) + return collateral +} + diff --git a/src/entities/safe.ts b/src/entities/safe.ts index b313019..97bd631 100644 --- a/src/entities/safe.ts +++ b/src/entities/safe.ts @@ -1,6 +1,6 @@ import { Bytes, ethereum, Address, BigInt, log } from '@graphprotocol/graph-ts' -import { Safe, UserProxy, SafeHandlerOwner } from '../../generated/schema' -import { getOrCreateCollateral } from './collateral' +import { Safe, UserProxy, SafeHandlerOwner, CollateralPrice, CollateralSafe } from '../../generated/schema' +import { getOrCreateCollateral, getCollateral } from './collateral' import * as decimal from '../utils/decimal' import * as integer from '../utils/integer' @@ -95,12 +95,21 @@ function createSafe(safeHandler: Bytes, collateral: Bytes, event: ethereum.Event safe.collateralType = collateral.toString() safe.collateral = decimal.ZERO safe.debt = decimal.ZERO + safe.cRatio = decimal.ZERO safe.safeHandler = safeHandler safe.internalCollateralBalance = safeHandler.toHexString() + "-" + collateral.toString() safe.internalCoinBalance = safeHandler.toHexString() safe.createdAt = event.block.timestamp safe.createdAtBlock = event.block.number safe.createdAtTransaction = event.transaction.hash + + let collateralSafe = CollateralSafe.load(collateral.toString()) + if (collateralSafe) { + let safeIds = collateralSafe.safeIds + safeIds.push(id) + collateralSafe.safeIds = safeIds + collateralSafe.save() + } return safe } @@ -115,6 +124,25 @@ export function updateSafeCollateralization( safe.collateral = collateral safe.debt = debt + if (collateral != decimal.ZERO && debt != decimal.ZERO) { + let collateralType = getCollateral(safe.collateralType) + if (collateralType != null && collateralType.currentPrice !== null) { + let priceId = collateralType.currentPrice + if (priceId) { + let currentPrice = CollateralPrice.load(priceId) + if (currentPrice != null) { + let liqCRatio = collateralType.liquidationCRatio + + let cRatio = collateral.times(currentPrice.liquidationPrice).times(liqCRatio).div(debt) + + safe.cRatio = cRatio + } + } + } + } else { + safe.cRatio = decimal.ZERO; + } + let system = getSystemState(event) if (wasEmpty && !isEmptySafe(safe)) { diff --git a/src/entities/uniswap.ts b/src/entities/uniswap.ts index 4e86835..e382eff 100644 --- a/src/entities/uniswap.ts +++ b/src/entities/uniswap.ts @@ -1,5 +1,5 @@ import { UniswapPair as UniswapPairEntity } from './' -import { UniswapV2Pair as UniswapPairContract } from '../../generated/UniCoinPool/UniswapV2Pair' +import { UniswapV3Pool as UniswapPairContract } from '../../generated/UniCoinPool/UniswapV3Pool' import * as decimal from '../utils/decimal' import { Address, ethereum } from '@graphprotocol/graph-ts' @@ -20,16 +20,8 @@ export function getOrCreateUniPool( pair.token0 = pairContract.token0() pair.token1 = pairContract.token1() - let reserves = pairContract.getReserves() - pair.reserve0 = decimal.fromWad(reserves.value0) - pair.reserve1 = decimal.fromWad(reserves.value1) - - if (pair.reserve1.notEqual(decimal.ZERO)) pair.token0Price = pair.reserve0.div(pair.reserve1) - else pair.token0Price = decimal.ZERO - if (pair.reserve0.notEqual(decimal.ZERO)) pair.token1Price = pair.reserve1.div(pair.reserve0) - else pair.token1Price = decimal.ZERO - - pair.totalSupply = decimal.fromWad(pairContract.totalSupply()) + let slot = pairContract.slot0() + pair.sqrtPriceX96 = slot.value0 pair.createdAt = event.block.timestamp pair.createdAtBlock = event.block.number @@ -43,3 +35,10 @@ export function getOrCreateUniPool( return pair as UniswapPairEntity } + +export function getUniPool( + pairAddress: Address +): UniswapPairEntity | null { + let pair = UniswapPairEntity.load(pairAddress.toHexString()) + return pair +} diff --git a/src/mappings/modules/auctions/debt-auction-house.ts b/src/mappings/modules/auctions/debt-auction-house.ts index cfbc81a..df19dbe 100644 --- a/src/mappings/modules/auctions/debt-auction-house.ts +++ b/src/mappings/modules/auctions/debt-auction-house.ts @@ -1,29 +1,33 @@ import { - ModifyParameters as ModifyParametersUint, + ModifyParameters as ModifyParameters, DecreaseSoldAmount, RestartAuction, SettleAuction, AddAuthorization, RemoveAuthorization, } from '../../../../generated/DebtAuctionHouse/DebtAuctionHouse' +import { UserProxy, User } from '../../../../generated/schema' + import { EnglishAuctionConfiguration, EnglishAuctionBid, EnglishAuction } from '../../../entities' import { dataSource, log, BigInt } from '@graphprotocol/graph-ts' +import { toUnsignedInt } from '../../../utils/bytes' import * as decimal from '../../../utils/decimal' import * as integer from '../../../utils/integer' import * as enums from '../../../utils/enums' import { getOrCreateEnglishAuctionConfiguration } from '../../../entities/auctions' import { addAuthorization, removeAuthorization } from '../governance/authorizations' import { getOrCreateAccountingEngine } from '../../../entities/accounting-engine' +import { findProxy } from '../proxy/proxy-factory' -export function handleModifyParametersUint(event: ModifyParametersUint): void { - let what = event.params.parameter.toString() +export function handleModifyParameters(event: ModifyParameters): void { + let what = event.params._param.toString() let config = getOrCreateEnglishAuctionConfiguration( dataSource.address(), enums.EnglishAuctionType_DEBT, ) - let val = event.params.data + let val = toUnsignedInt(event.params._data) if (what == 'bidIncrease') { config.bidIncrease = decimal.fromWad(val) @@ -39,42 +43,64 @@ export function handleModifyParametersUint(event: ModifyParametersUint): void { } export function handleDecreaseSoldAmount(event: DecreaseSoldAmount): void { - let auction = EnglishAuction.load(auctionId(event.params.id)) - let bid = new EnglishAuctionBid(bidAuctionId(event.params.id, auction.numberOfBids)) - - bid.bidNumber = auction.numberOfBids - bid.type = enums.EnglishBidType_DECREASE_SOLD - bid.auction = auction.id - bid.sellAmount = decimal.fromWad(event.params.amountToBuy) - bid.buyAmount = auction.buyInitialAmount - bid.price = bid.sellAmount.div(bid.buyAmount) - bid.bidder = event.params.highBidder - bid.createdAt = event.block.timestamp - bid.createdAtBlock = event.block.number - bid.createdAtTransaction = event.transaction.hash - bid.save() - - auction.numberOfBids = auction.numberOfBids.plus(integer.ONE) - auction.auctionDeadline = event.params.bidExpiry - auction.sellAmount = bid.sellAmount - auction.price = bid.price - auction.winner = bid.bidder - auction.save() + let auction = EnglishAuction.load(auctionId(event.params._id)) + if (auction != null) { + let bid = new EnglishAuctionBid(bidAuctionId(event.params._id, auction.numberOfBids)) + + let proxy = findProxy(event.params._bidder) + if (proxy != null) { + let owner = User.load(proxy.owner) + if (owner != null) { + bid.owner = owner.address + } + } + + bid.bidNumber = auction.numberOfBids + bid.type = enums.EnglishBidType_DECREASE_SOLD + bid.auction = auction.id + bid.sellAmount = decimal.fromWad(event.params._soldAmount) + bid.buyAmount = auction.buyInitialAmount + bid.price = bid.sellAmount.div(bid.buyAmount) + bid.bidder = event.params._bidder + bid.createdAt = event.block.timestamp + bid.createdAtBlock = event.block.number + bid.createdAtTransaction = event.transaction.hash + bid.save() + + auction.numberOfBids = auction.numberOfBids.plus(integer.ONE) + auction.auctionDeadline = event.params._bidExpiry + auction.sellAmount = bid.sellAmount + auction.price = bid.price + auction.winner = bid.bidder + auction.save() + } } export function handleRestartAuction(event: RestartAuction): void { - let auction = EnglishAuction.load(auctionId(event.params.id)) - auction.auctionDeadline = event.params.auctionDeadline - auction.save() + let auction = EnglishAuction.load(auctionId(event.params._id)) + if (auction != null) { + auction.auctionDeadline = event.params._auctionDeadline + let timestamps = auction.auctionRestartTimestamps + let hashes = auction.auctionRestartHashes + + timestamps.push(event.block.timestamp!) + hashes.push(event.transaction.hash!) + auction.auctionRestartTimestamps = timestamps + auction.auctionRestartHashes = hashes + auction.save() + + } } export function handleSettleAuction(event: SettleAuction): void { let accounting = getOrCreateAccountingEngine(event) accounting.activeDebtAuctions = accounting.activeDebtAuctions.minus(integer.ONE) accounting.save() - let auction = EnglishAuction.load(auctionId(event.params.id)) - auction.isClaimed = true - auction.save() + let auction = EnglishAuction.load(auctionId(event.params._id)) + if (auction != null) { + auction.isClaimed = true + auction.save() + } } function auctionId(auctionId: BigInt): string { @@ -86,9 +112,9 @@ function bidAuctionId(auctionId: BigInt, bidNumber: BigInt): string { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/auctions/discount-collateral-auction-house.ts b/src/mappings/modules/auctions/discount-collateral-auction-house.ts index e4c20b2..05c0997 100644 --- a/src/mappings/modules/auctions/discount-collateral-auction-house.ts +++ b/src/mappings/modules/auctions/discount-collateral-auction-house.ts @@ -22,30 +22,30 @@ export function handleBuyCollateral(event: BuyCollateral): void { if (auction == null) { log.error('handleBuyCollateral - auction {} not found.', [auctionId]) + } else { + let batch = new DiscountAuctionBatch( + event.address.toHexString() + '-' + id.toString() + '-' + auction.numberOfBatches.toString(), + ) + + batch.batchNumber = auction.numberOfBatches + batch.auction = auctionId + let remainingToRaise = auction.amountToRaise.minus(auction.buyAmount) + let wad = decimal.fromWad(event.params.wad) + batch.buyAmount = wad.gt(remainingToRaise) ? remainingToRaise : wad + batch.sellAmount = decimal.fromWad(event.params.boughtCollateral) + batch.price = batch.sellAmount.div(batch.buyAmount) + batch.buyer = event.transaction.from + batch.createdAt = event.block.timestamp + batch.createdAtBlock = event.block.number + batch.createdAtTransaction = event.transaction.hash + batch.save() + + auction.numberOfBatches = auction.numberOfBatches.plus(integer.ONE) + auction.buyAmount = auction.buyAmount.plus(batch.buyAmount) + auction.sellAmount = auction.sellAmount.minus(batch.sellAmount) + auction.isTerminated = auction.amountToRaise.equals(auction.buyAmount) ? true : false + auction.save() } - - let batch = new DiscountAuctionBatch( - event.address.toHexString() + '-' + id.toString() + '-' + auction.numberOfBatches.toString(), - ) - - batch.batchNumber = auction.numberOfBatches - batch.auction = auctionId - let remainingToRaise = auction.amountToRaise.minus(auction.buyAmount) - let wad = decimal.fromWad(event.params.wad) - batch.buyAmount = wad.gt(remainingToRaise) ? remainingToRaise : wad - batch.sellAmount = decimal.fromWad(event.params.boughtCollateral) - batch.price = batch.sellAmount.div(batch.buyAmount) - batch.buyer = event.transaction.from - batch.createdAt = event.block.timestamp - batch.createdAtBlock = event.block.number - batch.createdAtTransaction = event.transaction.hash - batch.save() - - auction.numberOfBatches = auction.numberOfBatches.plus(integer.ONE) - auction.buyAmount = auction.buyAmount.plus(batch.buyAmount) - auction.sellAmount = auction.sellAmount.minus(batch.sellAmount) - auction.isTerminated = auction.amountToRaise.equals(auction.buyAmount) ? true : false - auction.save() } export function handleSettleAuction(event: SettleAuction): void { @@ -58,9 +58,12 @@ export function handleSettleAuction(event: SettleAuction): void { let auctionId = event.address.toHexString() + '-' + id.toString() let auction = DiscountAuction.load(auctionId) + + if (auction != null) { + auction.isSettled = true + auction.save() + } - auction.isSettled = true - auction.save() collateral.save() } diff --git a/src/mappings/modules/auctions/surplus-auction-houses.ts b/src/mappings/modules/auctions/surplus-auction-houses.ts index 44bc076..b61442d 100644 --- a/src/mappings/modules/auctions/surplus-auction-houses.ts +++ b/src/mappings/modules/auctions/surplus-auction-houses.ts @@ -6,23 +6,29 @@ import { AddAuthorization, RemoveAuthorization, } from '../../../../generated/SurplusAuctionHouse/SurplusAuctionHouse' +import { UserProxy, User } from '../../../../generated/schema' + import { EnglishAuctionConfiguration, EnglishAuctionBid, EnglishAuction } from '../../../entities' import { BigInt, ethereum, BigDecimal, Bytes, dataSource } from '@graphprotocol/graph-ts' +import { toUnsignedInt } from '../../../utils/bytes' import * as decimal from '../../../utils/decimal' import * as integer from '../../../utils/integer' import * as enums from '../../../utils/enums' import { getOrCreateEnglishAuctionConfiguration } from '../../../entities/auctions' import { addAuthorization, removeAuthorization } from '../governance/authorizations' import { getOrCreateAccountingEngine } from '../../../entities/accounting-engine' +import { findProxy } from '../proxy/proxy-factory' + export function handleModifyParameters(event: ModifyParameters): void { let config = getOrCreateEnglishAuctionConfiguration( dataSource.address(), enums.EnglishAuctionType_SURPLUS, ) - modifyParameter(config, event.params.parameter.toString(), event.params.data) + let data = toUnsignedInt(event.params._data) + modifyParameter(config, event.params._param.toString(), data) } function modifyParameter(config: EnglishAuctionConfiguration, what: string, val: BigInt): void { @@ -40,57 +46,80 @@ function modifyParameter(config: EnglishAuctionConfiguration, what: string, val: export function handleIncreaseBidSize(event: IncreaseBidSize): void { increaseBidSize( - event.params.id, - decimal.fromWad(event.params.bid), - event.params.highBidder, - event.params.bidExpiry, + event.params._id, + decimal.fromRad(event.params._soldAmount), + decimal.fromWad(event.params._raisedAmount), + event.params._bidder, + event.params._bidExpiry, event, ) } function increaseBidSize( id: BigInt, - bidAmount: BigDecimal, + soldAmount: BigDecimal, + raiseAmount: BigDecimal, highBidder: Bytes, bidExpiry: BigInt, event: ethereum.Event, ): void { let auction = EnglishAuction.load(auctionId(id)) - let bid = new EnglishAuctionBid(bidAuctionId(id, auction.numberOfBids)) - - bid.bidNumber = auction.numberOfBids - bid.type = enums.EnglishBidType_INCREASE_BUY - bid.auction = auction.id - bid.sellAmount = auction.sellInitialAmount - bid.buyAmount = bidAmount - bid.price = bid.sellAmount.div(bid.buyAmount) - bid.bidder = highBidder - bid.createdAt = event.block.timestamp - bid.createdAtBlock = event.block.number - bid.createdAtTransaction = event.transaction.hash - bid.save() - - auction.numberOfBids = auction.numberOfBids.plus(integer.ONE) - auction.auctionDeadline = bidExpiry - auction.sellAmount = bid.sellAmount - auction.buyAmount = bid.buyAmount - auction.price = bid.price - auction.winner = bid.bidder - auction.save() + if (auction != null) { + let bid = new EnglishAuctionBid(bidAuctionId(id, auction.numberOfBids)) + + let proxy = findProxy(highBidder) + if (proxy != null) { + let owner = User.load(proxy.owner) + if (owner != null) { + bid.owner = owner.address + } + } + + bid.bidNumber = auction.numberOfBids + bid.type = enums.EnglishBidType_INCREASE_BUY + bid.auction = auction.id + bid.sellAmount = soldAmount + bid.buyAmount = raiseAmount + bid.price = bid.sellAmount.div(bid.buyAmount) + bid.bidder = highBidder + + bid.createdAt = event.block.timestamp + bid.createdAtBlock = event.block.number + bid.createdAtTransaction = event.transaction.hash + bid.save() + + auction.numberOfBids = auction.numberOfBids.plus(integer.ONE) + auction.auctionDeadline = bidExpiry + auction.sellAmount = bid.sellAmount + auction.buyAmount = bid.buyAmount + auction.price = bid.price + auction.winner = bid.bidder + auction.save() + } } export function handleRestartAuction(event: RestartAuction): void { - restartAuction(event.params.id, event.params.auctionDeadline) + restartAuction(event.params._id, event.params._auctionDeadline, event) } export function handleSettleAuction(event: SettleAuction): void { - settleAuction(event.params.id, event) + settleAuction(event.params._id, event) } -function restartAuction(id: BigInt, auctionDeadline: BigInt): void { +function restartAuction(id: BigInt, auctionDeadline: BigInt, event: RestartAuction): void { let auction = EnglishAuction.load(auctionId(id)) - auction.auctionDeadline = auctionDeadline - auction.save() + if (auction != null) { + auction.auctionDeadline = event.params._auctionDeadline + let timestamps = auction.auctionRestartTimestamps + let hashes = auction.auctionRestartHashes + + timestamps.push(event.block.timestamp!) + hashes.push(event.transaction.hash!) + auction.auctionRestartTimestamps = timestamps + auction.auctionRestartHashes = hashes + auction.save() + + } } function settleAuction(id: BigInt, event: ethereum.Event): void { @@ -99,8 +128,10 @@ function settleAuction(id: BigInt, event: ethereum.Event): void { accounting.save() let auction = EnglishAuction.load(auctionId(id)) - auction.isClaimed = true - auction.save() + if (auction != null) { + auction.isClaimed = true + auction.save() + } } function auctionId(auctionId: BigInt): string { @@ -112,9 +143,9 @@ function bidAuctionId(auctionId: BigInt, bidNumber: BigInt): string { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/core/accounting-engine.ts b/src/mappings/modules/core/accounting-engine.ts index abeb08d..d048fc4 100644 --- a/src/mappings/modules/core/accounting-engine.ts +++ b/src/mappings/modules/core/accounting-engine.ts @@ -1,8 +1,8 @@ import * as decimal from '../../../utils/decimal' import * as integer from '../../../utils/integer' +import * as bytes from '../../../utils/bytes' import { - ModifyParameters as ModifyParametersUint, - ModifyParameters1 as ModifyParametersAddress, + ModifyParameters, AuctionDebt, AuctionSurplus, AddAuthorization, @@ -15,9 +15,9 @@ import { getOrCreateEnglishAuctionConfiguration } from '../../../entities/auctio import { addAuthorization, removeAuthorization } from '../governance/authorizations' import { getOrCreateAccountingEngine } from '../../../entities/accounting-engine' -export function handleModifyParametersAddress(event: ModifyParametersAddress): void { - let what = event.params.parameter.toString() - let data = event.params.data +export function handleModifyParameters(event: ModifyParameters): void { + let what = event.params._param.toString() + let data = event.params._data let accounting = getOrCreateAccountingEngine(event) if (what == 'surplusAuctionHouse') { @@ -27,38 +27,24 @@ export function handleModifyParametersAddress(event: ModifyParametersAddress): v // If this is called we need to adjust the subgraph accordingly anyway log.error('Setting debt auction house to {}', [accounting.debtAuctionHouse.toHexString()]) } else if (what == 'postSettlementSurplusDrain') { - accounting.postSettlementSurplusDrain = data + accounting.postSettlementSurplusDrain = bytes.toAddress(data) log.info('Set postSettlementSurplusDrain in accounting engine', []) - } else if (what == 'protocolTokenAuthority') { - accounting.protocolTokenAuthority = data - log.info('Set protocolTokenAuthority in accounting engine', []) - } else { - log.warning('Unknown parameter {}', [what]) - } - - accounting.save() -} - -export function handleModifyParametersUint(event: ModifyParametersUint): void { - let what = event.params.parameter.toString() - let data = event.params.data - let accounting = getOrCreateAccountingEngine(event) - - if (what == 'surplusAuctionDelay') { - accounting.surplusAuctionDelay = data + } else if (what == 'surplusAuctionDelay') { + accounting.surplusAuctionDelay = bytes.toUnsignedInt(data) } else if (what == 'popDebtDelay') { - accounting.popDebtDelay = data + accounting.popDebtDelay = bytes.toUnsignedInt(data) } else if (what == 'surplusAuctionAmountToSell') { - accounting.surplusAuctionAmountToSell = decimal.fromRad(data) + accounting.surplusAuctionAmountToSell = decimal.fromRad(bytes.toUnsignedInt(data)) } else if (what == 'debtAuctionBidSize') { - accounting.debtAuctionBidSize = decimal.fromRad(data) + accounting.debtAuctionBidSize = decimal.fromRad(bytes.toUnsignedInt(data)) } else if (what == 'initialDebtAuctionMintedTokens') { - accounting.initialDebtAuctionMintedTokens = decimal.fromWad(data) + accounting.initialDebtAuctionMintedTokens = decimal.fromWad(bytes.toUnsignedInt(data)) } else if (what == 'surplusBuffer') { - accounting.surplusBuffer = decimal.fromRad(data) + accounting.surplusBuffer = decimal.fromRad(bytes.toUnsignedInt(data)) } else if (what == 'disableCooldown') { - accounting.disableCooldown = data + accounting.disableCooldown = bytes.toUnsignedInt(data) } + accounting.save() } @@ -79,7 +65,7 @@ export function handleAuctionDebt(event: AuctionDebt): void { accounting.debtAuctionCount = accounting.debtAuctionCount.plus(integer.ONE) accounting.activeDebtAuctions = accounting.activeDebtAuctions.plus(integer.ONE) - let id = event.params.id + let id = event.params._id let auction = new EnglishAuction(enums.EnglishAuctionType_DEBT + '-' + id.toString()) auction.auctionId = id auction.numberOfBids = integer.ZERO @@ -92,6 +78,8 @@ export function handleAuctionDebt(event: AuctionDebt): void { auction.buyAmount = auction.buyInitialAmount auction.startedBy = event.address auction.isClaimed = false + auction.auctionRestartTimestamps = [] + auction.auctionRestartHashes = [] auction.createdAt = event.block.timestamp auction.createdAtBlock = event.block.number auction.createdAtTransaction = event.transaction.hash @@ -118,7 +106,7 @@ export function handleAuctionSurplus(event: AuctionSurplus): void { accounting.surplusAuctionCount = accounting.surplusAuctionCount.plus(integer.ONE) accounting.activeSurplusAuctions = accounting.activeSurplusAuctions.plus(integer.ONE) - let id = event.params.id + let id = event.params._id let auction = new EnglishAuction(enums.EnglishAuctionType_SURPLUS + '-' + id.toString()) auction.auctionId = id auction.numberOfBids = integer.ZERO @@ -131,6 +119,8 @@ export function handleAuctionSurplus(event: AuctionSurplus): void { auction.buyAmount = auction.buyInitialAmount auction.startedBy = event.address auction.isClaimed = false + auction.auctionRestartTimestamps = [] + auction.auctionRestartHashes = [] auction.createdAt = event.block.timestamp auction.createdAtBlock = event.block.number auction.createdAtTransaction = event.transaction.hash @@ -142,9 +132,9 @@ export function handleAuctionSurplus(event: AuctionSurplus): void { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/core/global-settlement.ts b/src/mappings/modules/core/global-settlement.ts index e2f3677..e96c658 100644 --- a/src/mappings/modules/core/global-settlement.ts +++ b/src/mappings/modules/core/global-settlement.ts @@ -5,9 +5,9 @@ import { } from '../../../../generated/GlobalSettlement/GlobalSettlement' export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } \ No newline at end of file diff --git a/src/mappings/modules/core/liquidation-engine.ts b/src/mappings/modules/core/liquidation-engine.ts index 9656d90..e1bb597 100644 --- a/src/mappings/modules/core/liquidation-engine.ts +++ b/src/mappings/modules/core/liquidation-engine.ts @@ -1,6 +1,6 @@ import { - ModifyParameters2 as ModifyParametersCollateralTypeUint, - ModifyParameters3 as ModifyParametersCollateralTypeAddress, + InitializeCollateralType, + ModifyParameters as ModifyParameters, Liquidate, AddAuthorization, RemoveAuthorization, @@ -9,6 +9,8 @@ import { ProtectSAFE, } from '../../../../generated/LiquidationEngine/LiquidationEngine' +import { LiquidationEngine as LiquidationEngineBind } from '../../../../generated/LiquidationEngine/LiquidationEngine' + import { FixedDiscountCollateralAuctionHouse, } from '../../../../generated/templates' @@ -23,41 +25,50 @@ import { import * as decimal from '../../../utils/decimal' import * as integer from '../../../utils/integer' +import * as bytes from '../../../utils/bytes' -import { log } from '@graphprotocol/graph-ts' +import { log, BigInt, dataSource } from '@graphprotocol/graph-ts' import * as enums from '../../../utils/enums' import { getOrCreateEnglishAuctionConfiguration } from '../../../entities/auctions' import { addAuthorization, removeAuthorization } from '../governance/authorizations' -export function handleModifyParametersCollateralTypeUint( - event: ModifyParametersCollateralTypeUint, -): void { - let what = event.params.parameter.toString() - let collateral = getOrCreateCollateral(event.params.collateralType, event) +// Register a new collateral type +export function handleInitializeCollateralType(event: InitializeCollateralType): void { + let collateral = getOrCreateCollateral(event.params._cType, event) + let liquidationEngineContract = LiquidationEngineBind.bind(dataSource.address()) - if (what == 'liquidationPenalty') { - collateral.liquidationPenalty = decimal.fromWad(event.params.data) - } else if (what == 'liquidationQuantity') { - collateral.liquidationQuantity = decimal.fromRad(event.params.data) - } + let liqParams = liquidationEngineContract.cParams(event.params._cType) + + collateral.liquidationPenalty = decimal.fromWad(liqParams.liquidationPenalty) + collateral.liquidationQuantity = decimal.fromRad(liqParams.liquidationQuantity) + collateral.collateralAuctionHouseAddress = liqParams.collateralAuctionHouse collateral.save() + + log.info('Onboard new collateral Liq Engine {} {} {} {}', [collateral.id, liqParams.liquidationPenalty.toString(), liqParams.liquidationQuantity.toString(), liqParams.collateralAuctionHouse.toHexString()]) + } -export function handleModifyParametersCollateralTypeAddress( - event: ModifyParametersCollateralTypeAddress, +export function handleModifyParameters( + event: ModifyParameters, ): void { - let what = event.params.parameter.toString() - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let what = event.params._param.toString() + let collateral = getOrCreateCollateral(event.params._cType, event) - if (what == 'collateralAuctionHouse') { + if (what == 'liquidationPenalty') { + let data = bytes.toUnsignedInt(event.params._data) + collateral.liquidationPenalty = decimal.fromWad(data) + } else if (what == 'liquidationQuantity') { + let data = bytes.toUnsignedInt(event.params._data) + collateral.liquidationQuantity = decimal.fromRad(data) + } else if (what == 'collateralAuctionHouse') { // Configure auction type - let address = event.params.data + let address = event.params._data collateral.collateralAuctionHouseAddress = address // Detect the type of auction - let auctionHouse = FixedDiscountCollateralAuctionHouseBind.bind(address) + let auctionHouse = FixedDiscountCollateralAuctionHouseBind.bind(bytes.toAddress(address)) let auctionType = auctionHouse.AUCTION_TYPE().toString() if (auctionType == enums.AuctionType_ENGLISH) { @@ -70,19 +81,19 @@ export function handleModifyParametersCollateralTypeAddress( collateral.englishAuctionConfiguration = auctionConfiguration.id // Start indexing an instance of english auction contract - FixedDiscountCollateralAuctionHouse.create(address) + FixedDiscountCollateralAuctionHouse.create(bytes.toAddress(address)) log.info('Start indexing english auction house: {}', [address.toHexString()]) } else if (auctionType == enums.AuctionType_FIXED_DISCOUNT) { collateral.auctionType = enums.AuctionType_FIXED_DISCOUNT // Start indexing an instance of fixed discount auction contract - FixedDiscountCollateralAuctionHouse.create(address) + FixedDiscountCollateralAuctionHouse.create(bytes.toAddress(address)) log.info('Start indexing fixed discount auction house: {}', [address.toHexString()]) } else if (auctionType == enums.AuctionType_INCREASING_DISCOUNT) { collateral.auctionType = enums.AuctionType_INCREASING_DISCOUNT // Start indexing an instance of fixed discount auction contract - FixedDiscountCollateralAuctionHouse.create(address) + FixedDiscountCollateralAuctionHouse.create(bytes.toAddress(address)) log.info('Start indexing increasing discount auction house: {}', [address.toHexString()]) } else { @@ -94,8 +105,8 @@ export function handleModifyParametersCollateralTypeAddress( } export function handleLiquidate(event: Liquidate): void { - let id = event.params.auctionId - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let id = event.params._auctionId + let collateral = getOrCreateCollateral(event.params._cType, event) log.info('Start liquidation id {} of collateral {}', [id.toString(), collateral.id]) if (collateral.auctionType == enums.AuctionType_ENGLISH) { @@ -108,18 +119,18 @@ export function handleLiquidate(event: Liquidate): void { log.error('handleLiquidate - auction configuration {} not found', [collateral.id]) } - let liquidation = new EnglishAuction(event.params.collateralAuctioneer.toHexString() + '-' + id.toString()) + let liquidation = new EnglishAuction(event.params._collateralAuctioneer.toHexString() + '-' + id.toString()) liquidation.auctionId = id liquidation.numberOfBids = integer.ZERO liquidation.englishAuctionType = enums.EnglishAuctionType_LIQUIDATION liquidation.buyToken = enums.AuctionToken_COIN liquidation.sellToken = enums.AuctionToken_COLLATERAL - liquidation.sellInitialAmount = decimal.fromWad(event.params.collateralAmount) + liquidation.sellInitialAmount = decimal.fromWad(event.params._collateralAmount) liquidation.buyInitialAmount = decimal.ZERO liquidation.sellAmount = liquidation.sellInitialAmount liquidation.buyAmount = liquidation.buyInitialAmount - liquidation.targetAmount = decimal.fromRad(event.params.amountToRaise) + liquidation.targetAmount = decimal.fromRad(event.params._amountToRaise) liquidation.startedBy = event.address liquidation.isClaimed = false liquidation.createdAt = event.block.timestamp @@ -128,24 +139,28 @@ export function handleLiquidate(event: Liquidate): void { liquidation.englishAuctionConfiguration = collateral.id liquidation.auctionDeadline = config.totalAuctionLength.plus(event.block.timestamp) - let safe = Safe.load(event.params.safe.toHexString() + '-' + collateral.id) - liquidation.safe = safe.id + let safe = Safe.load(event.params._safe.toHexString() + '-' + collateral.id) + if (safe != null) { + liquidation.safe = safe.id + } liquidation.save() } else if (collateral.auctionType == enums.AuctionType_FIXED_DISCOUNT || collateral.auctionType == enums.AuctionType_INCREASING_DISCOUNT) { - let liquidation = new DiscountAuction(event.params.collateralAuctioneer.toHexString() + '-' + id.toString()) + let liquidation = new DiscountAuction(event.params._collateralAuctioneer.toHexString() + '-' + id.toString()) liquidation.auctionId = id liquidation.collateralType = collateral.id - liquidation.safeHandler = event.params.safe - liquidation.sellInitialAmount = decimal.fromWad(event.params.collateralAmount) + liquidation.safeHandler = event.params._safe + liquidation.sellInitialAmount = decimal.fromWad(event.params._collateralAmount) liquidation.amountToRaise = decimal - .fromRad(event.params.amountToRaise) + .fromRad(event.params._amountToRaise) .times(collateral.liquidationPenalty) liquidation.buyAmount = decimal.ZERO liquidation.sellAmount = liquidation.sellInitialAmount - let safe = Safe.load(event.params.safe.toHexString() + '-' + collateral.id) - liquidation.safe = safe.id + let safe = Safe.load(event.params._safe.toHexString() + '-' + collateral.id) + if (safe != null) { + liquidation.safe = safe.id + } liquidation.startedBy = event.address liquidation.numberOfBatches = integer.ZERO liquidation.isTerminated = false @@ -163,18 +178,18 @@ export function handleLiquidate(event: Liquidate): void { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } export function handleConnectSAFESaviour(event: ConnectSAFESaviour): void { - let saviour = SafeSaviour.load(event.params.saviour.toHexString()) + let saviour = SafeSaviour.load(event.params._saviour.toHexString()) if (!saviour) { - saviour = new SafeSaviour(event.params.saviour.toHexString()) + saviour = new SafeSaviour(event.params._saviour.toHexString()) saviour.successSaveCount = integer.ZERO saviour.failSaveCount = integer.ZERO } @@ -183,7 +198,7 @@ export function handleConnectSAFESaviour(event: ConnectSAFESaviour): void { } export function handleDisconnectSAFESaviour(event: DisconnectSAFESaviour): void { - let saviour = SafeSaviour.load(event.params.saviour.toHexString()) + let saviour = SafeSaviour.load(event.params._saviour.toHexString()) if (!saviour) { log.error('Try to load non existing saviour', []) } else { @@ -193,13 +208,13 @@ export function handleDisconnectSAFESaviour(event: DisconnectSAFESaviour): void } export function handleProtectSAFE(event: ProtectSAFE): void { - let collateral = getOrCreateCollateral(event.params.collateralType, event) - let safe = Safe.load(event.params.safe.toHexString() + '-' + collateral.id) + let collateral = getOrCreateCollateral(event.params._cType, event) + let safe = Safe.load(event.params._safe.toHexString() + '-' + collateral.id) if (!safe) { log.error('Try to add saviour to non existing safe', []) } else { - safe.saviour = event.params.saviour.toHexString() + safe.saviour = event.params._saviour.toHexString() safe.save() } } diff --git a/src/mappings/modules/core/oracle-relayer.ts b/src/mappings/modules/core/oracle-relayer.ts index 78acdc9..e267482 100644 --- a/src/mappings/modules/core/oracle-relayer.ts +++ b/src/mappings/modules/core/oracle-relayer.ts @@ -2,13 +2,13 @@ import { log, dataSource, BigInt, Address } from '@graphprotocol/graph-ts' import * as bytes from '../../../utils/bytes' import * as decimal from '../../../utils/decimal' +import * as integer from '../../../utils/integer' import { + InitializeCollateralType, UpdateCollateralPrice, UpdateRedemptionPrice, - ModifyParameters as ModifyParametersCollateralTypeAddress, - ModifyParameters1 as ModifyParametersUint, - ModifyParameters2 as ModifyParametersCollateralTypeUint, + ModifyParameters as ModifyParameters, OracleRelayer, AddAuthorization, RemoveAuthorization, @@ -16,11 +16,15 @@ import { import { RateSetter } from '../../../../generated/OracleRelayer/RateSetter' +import { OracleRelayer as OracleRelayerBind } from '../../../../generated/OracleRelayer/OracleRelayer' + import { CollateralType, CollateralPrice, RedemptionPrice, RedemptionRate, + CollateralSafe, + Safe } from '../../../../generated/schema' import { getSystemState } from '../../../entities' import { getOrCreateCollateral } from '../../../entities/collateral' @@ -29,24 +33,56 @@ import { addressMap } from '../../../utils/addresses' import { SECOND_PER_YEAR } from '../../../utils/integer' import { addAuthorization, removeAuthorization } from '../governance/authorizations' +// Register a new collateral type +export function handleInitializeCollateralType(event: InitializeCollateralType): void { + let collateral = getOrCreateCollateral(event.params._cType, event) + let oracleContract = OracleRelayerBind.bind(dataSource.address()) + + let cParams = oracleContract.cParams(event.params._cType) + + collateral.safetyCRatio = decimal.fromRay(cParams.safetyCRatio) + collateral.liquidationCRatio = decimal.fromRay(cParams.liquidationCRatio) + + collateral.save() + log.info('Onboard new collateral Oracle {}', [collateral.id]) +} + export function handleUpdateCollateralPrice(event: UpdateCollateralPrice): void { - let collateralType = event.params.collateralType.toString() - let collateralPrice = decimal.fromWad(event.params.priceFeedValue) + let collateralType = event.params._cType.toString() + let collateralPrice = decimal.fromWad(event.params._priceFeedValue) let collateral = CollateralType.load(collateralType) if (collateral != null) { + let liqCRatio = collateral.liquidationCRatio let price = new CollateralPrice(eventUid(event)) price.block = event.block.number price.collateral = collateral.id - price.safetyPrice = decimal.fromRay(event.params.safetyPrice) - price.liquidationPrice = decimal.fromRay(event.params.liquidationPrice) + price.safetyPrice = decimal.fromRay(event.params._safetyPrice) + price.liquidationPrice = decimal.fromRay(event.params._liquidationPrice) + let liqPrice = price.liquidationPrice price.timestamp = event.block.timestamp price.value = collateralPrice price.save() collateral.currentPrice = price.id collateral.save() + + let collateralSafe = CollateralSafe.load(collateralType) + if (collateralSafe) { + let safeIds = collateralSafe.safeIds + + for (let i = 0; i < safeIds.length; i++) { + let safe = Safe.load(safeIds[i]) + if (safe && safe.collateral != decimal.ZERO && safe.debt != decimal.ZERO) { + let cRatio = safe.collateral.times(liqPrice).times(liqCRatio).div(safe.debt) + + safe.cRatio = cRatio + + safe.save() + } + } + } } } @@ -54,89 +90,76 @@ export function handleUpdateRedemptionPrice(event: UpdateRedemptionPrice): void let price = new RedemptionPrice(eventUid(event)) price.block = event.block.number price.timestamp = event.block.timestamp - price.value = decimal.fromRay(event.params.redemptionPrice) + price.value = decimal.fromRay(event.params._redemptionPrice) let relayer = OracleRelayer.bind(dataSource.address()) - price.redemptionRate = decimal.fromRay(relayer.redemptionRate()) + let redemptionRate = relayer.redemptionRate() + price.redemptionRate = decimal.fromRay(redemptionRate) + + let rate = new RedemptionRate(eventUid(event)) + + let perSecondRate = decimal.fromRay(redemptionRate) + let perSecondRateRay = redemptionRate + rate.perSecondRate = perSecondRate + + // Calculate solidity annualized rate by calling the contract + + const rpowerRate = (rate: BigInt, nSeconds: i32): decimal.BigDecimal => { + // Exponentiate in web assembly, it's not exactly like Solidity but more than accurate enough + return decimal.fromNumber(parseFloat(decimal.fromRay(rate).toString()) ** nSeconds) + } + + rate.annualizedRate = rpowerRate(perSecondRateRay, 31536000) + rate.eightHourlyRate = rpowerRate(perSecondRateRay, 3600 * 8) + rate.twentyFourHourlyRate = rpowerRate(perSecondRateRay, 3600 * 24) + rate.hourlyRate = rpowerRate(perSecondRateRay, 3600) + + rate.createdAt = event.block.timestamp + rate.createdAtBlock = event.block.number + rate.createdAtTransaction = event.transaction.hash let system = getSystemState(event) system.currentRedemptionPrice = price.id + system.currentRedemptionRate = rate.id system.save() price.save() + rate.save() } -export function handleModifyParametersCollateralTypeAddress( - event: ModifyParametersCollateralTypeAddress, +export function handleModifyParameters( + event: ModifyParameters, ): void { - let what = event.params.parameter.toString() + let what = event.params._param.toString() + let collateralType = CollateralType.load(event.params._cType.toString()) if (what == 'orcl') { - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let collateral = getOrCreateCollateral(event.params._cType, event) - collateral.fsmAddress = event.params.addr + collateral.fsmAddress = event.params._data collateral.modifiedAt = event.block.timestamp collateral.modifiedAtBlock = event.block.number collateral.modifiedAtTransaction = event.transaction.hash collateral.save() - } -} - -export function handleModifyParametersCollateralTypeUint( - event: ModifyParametersCollateralTypeUint, -): void { - let what = event.params.parameter.toString() - let collateralType = CollateralType.load(event.params.collateralType.toString()) - - if (what == 'safetyCRatio') { - collateralType.safetyCRatio = decimal.fromRay(event.params.data) + } else if (what == 'safetyCRatio') { + if (collateralType != null) { + collateralType.safetyCRatio = decimal.fromRay(bytes.toUnsignedInt(event.params._data)) + collateralType.save() + } } else if (what == 'liquidationCRatio') { - collateralType.liquidationCRatio = decimal.fromRay(event.params.data) - } - - collateralType.save() -} - -export function handleModifyParametersUint(event: ModifyParametersUint): void { - let what = event.params.parameter.toString() - - if (what == 'redemptionPrice') { - log.error('ModifyParameters-redemptionPrice is not supported', []) - } else if (what == 'redemptionRate') { - let system = getSystemState(event) - let rate = new RedemptionRate(eventUid(event)) - - let perSecondRate = decimal.fromRay(event.params.data) - let perSecondRateRay = event.params.data - rate.perSecondRate = perSecondRate - - // Calculate solidity annualized rate by calling the contract - - const rpowerRate = (rate: BigInt, nSeconds: i32): decimal.BigDecimal => { - // Exponentiate in web assembly, it's not exactly like Solidity but more than accurate enough - return decimal.fromNumber(parseFloat(decimal.fromRay(rate).toString()) ** nSeconds) + if (collateralType != null) { + collateralType.liquidationCRatio = decimal.fromRay(bytes.toUnsignedInt(event.params._data)) + collateralType.save() } - - rate.annualizedRate = rpowerRate(perSecondRateRay, 31536000) - rate.eightHourlyRate = rpowerRate(perSecondRateRay, 3600 * 8) - rate.twentyFourHourlyRate = rpowerRate(perSecondRateRay, 3600 * 24) - rate.hourlyRate = rpowerRate(perSecondRateRay, 3600) - - rate.createdAt = event.block.timestamp - rate.createdAtBlock = event.block.number - rate.createdAtTransaction = event.transaction.hash - - system.currentRedemptionRate = rate.id - - rate.save() - system.save() + } else if (what == 'redemptionPrice') { + log.error('ModifyParameters-redemptionPrice is not supported', []) } } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/core/periodic-handler.ts b/src/mappings/modules/core/periodic-handler.ts index 3376348..b7a0f60 100644 --- a/src/mappings/modules/core/periodic-handler.ts +++ b/src/mappings/modules/core/periodic-handler.ts @@ -1,9 +1,12 @@ import { ethereum } from '@graphprotocol/graph-ts' import { DailyStat, getSystemState, HourlyStat } from '../../../entities' import { EACAggregatorProxy } from '../../../../generated/SAFEEngine/EACAggregatorProxy' +// import { OracleRelayer } from '../../../../generated/SAFEEngine/OracleRelayer' +import { getUniEthPrice } from '../uniswap/uniswapv3' + import * as integer from '../../../utils/integer' import * as decimal from '../../../utils/decimal' -import { getRaiEthPrice } from '../uniswap/uniswap' + import { addressMap } from '../../../utils/addresses' const CHAINLINK_ETHUSD_PRECISION = 1e8 @@ -36,6 +39,15 @@ export function periodicHandler(event: ethereum.Event): void { .toBigDecimal() .div(decimal.fromNumber(CHAINLINK_ETHUSD_PRECISION)) + // let marketPrice = OracleRelayer.bind(addressMap.get('GEB_ORACLE_RELAYER')) + // .try_marketPrice() + // let haiUsdPrice: decimal.BigDecimal + // if (marketPrice.reverted) { + // haiUsdPrice = decimal.ZERO + // } else { + // haiUsdPrice = decimal.fromWad(marketPrice.value) + // } + if (daily == null) { // Daily record daily = new DailyStat(dailyId) @@ -43,9 +55,17 @@ export function periodicHandler(event: ethereum.Event): void { daily.blockNumber = event.block.number daily.redemptionRate = state.currentRedemptionRate daily.redemptionPrice = state.currentRedemptionPrice - let raiEthPrice = getRaiEthPrice(event) - daily.marketPriceEth = raiEthPrice - daily.marketPriceUsd = ethPrice.times(raiEthPrice) + let haiEthPrice = getUniEthPrice(event) + if (haiEthPrice == decimal.ZERO) { + daily.marketPriceEth = decimal.ZERO + daily.marketPriceUsd = decimal.ZERO + } else { + daily.marketPriceEth = haiEthPrice + daily.marketPriceUsd = ethPrice.times(haiEthPrice) + } + // daily.marketPriceEth = haiUsdPrice.div(ethPrice) + // daily.marketPriceUsd = haiUsdPrice + daily.globalDebt = state.globalDebt daily.erc20CoinTotalSupply = state.erc20CoinTotalSupply daily.save() @@ -56,9 +76,18 @@ export function periodicHandler(event: ethereum.Event): void { hourly.blockNumber = event.block.number hourly.redemptionRate = state.currentRedemptionRate hourly.redemptionPrice = state.currentRedemptionPrice - let raiEthPrice = getRaiEthPrice(event) - hourly.marketPriceEth = raiEthPrice - hourly.marketPriceUsd = ethPrice.times(raiEthPrice) + let haiEthPrice = getUniEthPrice(event) + if (haiEthPrice == decimal.ZERO) { + hourly.marketPriceEth = decimal.ZERO + hourly.marketPriceUsd = decimal.ZERO + } else { + hourly.marketPriceEth = haiEthPrice + hourly.marketPriceUsd = ethPrice.times(haiEthPrice) + } + + // hourly.marketPriceEth = haiUsdPrice.div(ethPrice) + // hourly.marketPriceUsd = haiUsdPrice + hourly.globalDebt = state.globalDebt hourly.erc20CoinTotalSupply = state.erc20CoinTotalSupply hourly.save() diff --git a/src/mappings/modules/core/safe-engine.ts b/src/mappings/modules/core/safe-engine.ts index fc96cfc..7ec4003 100644 --- a/src/mappings/modules/core/safe-engine.ts +++ b/src/mappings/modules/core/safe-engine.ts @@ -1,4 +1,4 @@ -import { Address, log, Bytes, ethereum } from '@graphprotocol/graph-ts' +import { Address, log, Bytes, ethereum, dataSource } from '@graphprotocol/graph-ts' import { CollateralType, @@ -9,13 +9,14 @@ import { UpdateAccumulatedRate as UpdateAccumulatedRateEntity, } from '../../../../generated/schema' +import { SAFEEngine as SAFEEngineBind } from '../../../../generated/SAFEEngine/SAFEEngine' + import { getSystemState } from '../../../entities' import { InitializeCollateralType, - ModifyParameters as ModifyParametersUint, - ModifyParameters1 as ModifyParametersCollateralTypeUint, - ModifyCollateralBalance, + ModifyParameters as ModifyParameters, + // ModifyCollateralBalance, TransferCollateral, TransferInternalCoins, TransferSAFECollateralAndDebt, @@ -29,6 +30,7 @@ import { } from '../../../../generated/SAFEEngine/SAFEEngine' import * as decimal from '../../../utils/decimal' +import * as bytes from '../../../utils/bytes' import * as integer from '../../../utils/integer' import { getOrCreateCollateral } from '../../../entities/collateral' import { @@ -40,51 +42,53 @@ import { createUnmanagedSafe, updateSafeCollateralization } from '../../../entit import { eventUid } from '../../../utils/ethereum' import { periodicHandler } from './periodic-handler' import { addressMap } from '../../../utils/addresses' +import { NULL_ADDRESS } from '../../../utils/ethereum' import { addAuthorization, removeAuthorization } from '../governance/authorizations' // Register a new collateral type export function handleInitializeCollateralType(event: InitializeCollateralType): void { - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let collateral = getOrCreateCollateral(event.params._cType, event) + let safeEngineContract = SAFEEngineBind.bind(dataSource.address()) + + let cParams = safeEngineContract.cParams(event.params._cType) - log.info('Onboard new collateral {}', [collateral.id]) + collateral.debtCeiling = decimal.fromRad(cParams.debtCeiling) + collateral.debtFloor = decimal.fromRad(cParams.debtFloor) + log.info('Onboard new collateral {}', [collateral.id, collateral.debtCeiling.toString()]) + + collateral.save() // Update system state let system = getSystemState(event) + let params = safeEngineContract.params() + system.globalDebtCeiling = decimal.fromRad(params.globalDebtCeiling) + system.perSafeDebtCeiling = decimal.fromWad(params.safeDebtCeiling) system.collateralCount = system.collateralCount.plus(integer.ONE) system.save() } // Modify collateral type parameters -export function handleModifyParametersUint(event: ModifyParametersUint): void { +export function handleModifyParameters(event: ModifyParameters): void { let system = getSystemState(event) - let what = event.params.parameter.toString() - let data = event.params.data + let what = event.params._param.toString() + let collateralType = event.params._cType.toString() + let data = event.params._data + + let collateral = CollateralType.load(collateralType) if (what == 'globalDebtCeiling') { - system.globalDebtCeiling = decimal.fromRad(data) + system.globalDebtCeiling = decimal.fromRad(bytes.toUnsignedInt(data)) system.save() } else if (what == 'safeDebtCeiling') { - system.perSafeDebtCeiling = decimal.fromWad(data) + system.perSafeDebtCeiling = decimal.fromWad(bytes.toUnsignedInt(data)) system.save() - } -} - -export function handleModifyParametersCollateralTypeUint( - event: ModifyParametersCollateralTypeUint, -): void { - let collateralType = event.params.collateralType.toString() - let what = event.params.parameter.toString() - let data = event.params.data - - let collateral = CollateralType.load(collateralType) - - if (collateral != null) { + } else if (collateral != null) { if (what == 'safetyPrice') { // Safety price is stored on the current price object } else if (what == 'debtCeiling') { - collateral.debtCeiling = decimal.fromRad(data) + collateral.debtCeiling = decimal.fromRad(bytes.toUnsignedInt(data)) } else if (what == 'debtFloor') { - collateral.debtFloor = decimal.fromRad(data) + collateral.debtFloor = decimal.fromRad(bytes.toUnsignedInt(data)) } else if (what == 'liquidationPrice') { // Liquidation price is stored on the current price object } else { @@ -93,41 +97,42 @@ export function handleModifyParametersCollateralTypeUint( collateral.save() } } -// Modify a user's collateral balance (Called by authorized collateral adapters, mint system coins) -export function handleModifyCollateralBalance(event: ModifyCollateralBalance): void { - let account = event.params.account - let collateral = event.params.collateralType - let amount = decimal.fromWad(event.params.wad) - - // Update user balance - updateCollateralBalance(account, collateral, event) - - // Update collateral counter - let collateralObj = getOrCreateCollateral(collateral, event) - collateralObj.totalCollateral = collateralObj.totalCollateral.plus(amount) - collateralObj.save() -} + +// // Modify a user's collateral balance (Called by authorized collateral adapters, mint system coins) +// export function handleModifyCollateralBalance(event: ModifyCollateralBalance): void { +// let account = event.params._account +// let collateral = event.params._cType +// let amount = decimal.fromWad(event.params._wad) + +// // Update user balance +// updateCollateralBalance(account, collateral, event) + +// // Update collateral counter +// let collateralObj = getOrCreateCollateral(collateral, event) +// collateralObj.totalCollateral = collateralObj.totalCollateral.plus(amount) +// collateralObj.save() +// } // Transfer collateral between users export function handleTransferCollateral(event: TransferCollateral): void { - let collateral = event.params.collateralType + let collateral = event.params._cType - updateCollateralBalance(event.params.src, collateral, event) - updateCollateralBalance(event.params.dst, collateral, event) + updateCollateralBalance(event.params._src, collateral, event) + updateCollateralBalance(event.params._dst, collateral, event) } // Transfer reflexer coin between users export function handleTransferInternalCoins(event: TransferInternalCoins): void { - updateCoinBalance(event.params.src, event) - updateCoinBalance(event.params.dst, event) + updateCoinBalance(event.params._src, event) + updateCoinBalance(event.params._dst, event) } // Create or modify a SAFE export function handleModifySAFECollateralization(event: ModifySAFECollateralization): void { - let collateralType = event.params.collateralType.toString() - let safeAddress = event.params.safe - let deltaCollateral = decimal.fromWad(event.params.deltaCollateral) - let deltaDebt = decimal.fromWad(event.params.deltaDebt) + let collateralType = event.params._cType.toString() + let safeAddress = event.params._safe + let deltaCollateral = decimal.fromWad(event.params._deltaCollateral) + let deltaDebt = decimal.fromWad(event.params._deltaDebt) let collateralBalance = deltaCollateral let safeId = safeAddress.toHexString() + '-' + collateralType @@ -137,7 +142,7 @@ export function handleModifySAFECollateralization(event: ModifySAFECollateraliza // It means that the SafeManager was not used, otherwise they would be a Safe entity already created. log.info('New unmanaged: {}', [safeId]) // Register new unmanaged safe - safe = createUnmanagedSafe(safeAddress, event.params.collateralType, event) + safe = createUnmanagedSafe(safeAddress, event.params._cType, event) updateSafeCollateralization(safe as Safe, collateralBalance, deltaDebt, event) } else { // Update existing Vault @@ -152,11 +157,14 @@ export function handleModifySAFECollateralization(event: ModifySAFECollateraliza safe.save() // Update debt and collateral counters - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let collateral = getOrCreateCollateral(event.params._cType, event) collateral.debtAmount = collateral.debtAmount.plus(deltaDebt) collateral.totalCollateralLockedInSafes = collateral.totalCollateralLockedInSafes.plus( deltaCollateral, ) + collateral.totalCollateral = collateral.totalCollateral.plus( + deltaCollateral + ) collateral.save() let system = getSystemState(event) @@ -164,8 +172,8 @@ export function handleModifySAFECollateralization(event: ModifySAFECollateraliza system.save() // Update balances - updateCollateralBalance(event.params.collateralSource, event.params.collateralType, event) - updateCoinBalance(event.params.debtDestination, event) + updateCollateralBalance(event.params._collateralSource, event.params._cType, event) + updateCoinBalance(event.params._debtDestination, event) // Create a new modify collateralization update let update = new ModifySAFECollateralizationEntity(eventUid(event)) @@ -185,10 +193,10 @@ export function handleModifySAFECollateralization(event: ModifySAFECollateraliza export function handleTransferSAFECollateralAndDebt(event: TransferSAFECollateralAndDebt): void { // Both should be non dusty so they exist let srcSafe = Safe.load( - event.params.src.toHexString() + '-' + event.params.collateralType.toString(), + event.params._src.toHexString() + '-' + event.params._cType.toString(), ) as Safe let dstSafe = Safe.load( - event.params.dst.toHexString() + '-' + event.params.collateralType.toString(), + event.params._dst.toHexString() + '-' + event.params._cType.toString(), ) as Safe if (!srcSafe) { @@ -197,38 +205,38 @@ export function handleTransferSAFECollateralAndDebt(event: TransferSAFECollatera } if (!dstSafe) { - dstSafe = createUnmanagedSafe(event.params.dst, event.params.collateralType, event) + dstSafe = createUnmanagedSafe(event.params._dst, event.params._cType, event) } updateSafeCollateralization( srcSafe, - srcSafe.collateral.minus(decimal.fromWad(event.params.deltaCollateral)), - srcSafe.debt.minus(decimal.fromWad(event.params.deltaDebt)), + srcSafe.collateral.minus(decimal.fromWad(event.params._deltaCollateral)), + srcSafe.debt.minus(decimal.fromWad(event.params._deltaDebt)), event, ) updateSafeCollateralization( dstSafe, - dstSafe.collateral.plus(decimal.fromWad(event.params.deltaCollateral)), - dstSafe.debt.plus(decimal.fromWad(event.params.deltaDebt)), + dstSafe.collateral.plus(decimal.fromWad(event.params._deltaCollateral)), + dstSafe.debt.plus(decimal.fromWad(event.params._deltaDebt)), event, ) srcSafe.save() dstSafe.save() - let collateral = getOrCreateCollateral(event.params.collateralType, event) - let deltaCollateral = decimal.fromWad(event.params.deltaCollateral) - let deltaDebt = decimal.fromWad(event.params.deltaDebt) + let collateral = getOrCreateCollateral(event.params._cType, event) + let deltaCollateral = decimal.fromWad(event.params._deltaCollateral) + let deltaDebt = decimal.fromWad(event.params._deltaDebt) let evt = new TransferSAFECollateralAndDebtEntity(eventUid(event)) evt.collateralType = collateral.id - evt.dstSafe = event.params.dst.toHexString() + '-' + collateral.id - evt.srcSafe = event.params.src.toHexString() + '-' + collateral.id + evt.dstSafe = event.params._dst.toHexString() + '-' + collateral.id + evt.srcSafe = event.params._src.toHexString() + '-' + collateral.id evt.deltaCollateral = deltaCollateral evt.deltaDebt = deltaDebt - evt.srcHandler = event.params.src - evt.dstHandler = event.params.dst + evt.srcHandler = event.params._src + evt.dstHandler = event.params._dst evt.createdAt = event.block.timestamp evt.createdAtBlock = event.block.number evt.createdAtTransaction = event.transaction.hash @@ -239,14 +247,14 @@ export function handleTransferSAFECollateralAndDebt(event: TransferSAFECollatera export function handleConfiscateSAFECollateralAndDebt( event: ConfiscateSAFECollateralAndDebt, ): void { - let collateralType = event.params.collateralType - let deltaDebt = decimal.fromWad(event.params.deltaDebt) - let deltaCollateral = decimal.fromWad(event.params.deltaCollateral) + let collateralType = event.params._cType + let deltaDebt = decimal.fromWad(event.params._deltaDebt) + let deltaCollateral = decimal.fromWad(event.params._deltaCollateral) - let safe = Safe.load(event.params.safe.toHexString() + '-' + collateralType.toString()) + let safe = Safe.load(event.params._safe.toHexString() + '-' + collateralType.toString()) if (!safe) { log.error('Trying to confiscate non-existing safe {}-{}', [ - event.params.safe.toHexString(), + event.params._safe.toHexString(), collateralType.toString(), ]) return @@ -265,13 +273,16 @@ export function handleConfiscateSAFECollateralAndDebt( collateral.totalCollateralLockedInSafes = collateral.totalCollateralLockedInSafes.plus( deltaCollateral, ) + collateral.totalCollateral = collateral.totalCollateral.plus( + deltaCollateral + ) collateral.save() // Update counter party collateral - updateCollateralBalance(event.params.collateralCounterparty, collateralType, event) + updateCollateralBalance(event.params._collateralSource, collateralType, event) // Update counter party debt - updateDebtBalance(event.params.debtCounterparty, event) + updateDebtBalance(event.params._debtDestination, event) // Update global debt counter let system = getSystemState(event) @@ -281,13 +292,13 @@ export function handleConfiscateSAFECollateralAndDebt( let evt = new ConfiscateSAFECollateralAndDebtEntity(eventUid(event)) evt.safe = safe.id - evt.safeHandler = event.params.safe + evt.safeHandler = event.params._safe evt.collateralType = collateral.id evt.deltaDebt = deltaDebt evt.deltaCollateral = deltaCollateral - evt.debtCounterparty = event.params.debtCounterparty - evt.collateralCounterparty = event.params.collateralCounterparty - evt.globalUnbackedDebt = decimal.fromRad(event.params.globalUnbackedDebt) + evt.debtCounterparty = event.params._debtDestination + evt.collateralCounterparty = event.params._collateralSource + evt.globalUnbackedDebt = system.globalUnbackedDebt evt.createdAt = event.block.timestamp evt.createdAtBlock = event.block.number evt.createdAtTransaction = event.transaction.hash @@ -296,9 +307,9 @@ export function handleConfiscateSAFECollateralAndDebt( // Create/destroy equal quantities of reflexer coin and system debt export function handleSettleDebt(event: SettleDebt): void { - let rad = decimal.fromRad(event.params.rad) + let rad = decimal.fromRad(event.params._rad) - let account = event.params.account + let account = event.params._account // Update debt counters let system = getSystemState(event) @@ -313,7 +324,7 @@ export function handleSettleDebt(event: SettleDebt): void { // Mint unbacked reflexer coins export function handleCreateUnbackedDebt(event: CreateUnbackedDebt): void { - let rad = decimal.fromRad(event.params.rad) + let rad = decimal.fromRad(event.params._rad) // Update debt counters let system = getSystemState(event) @@ -322,27 +333,30 @@ export function handleCreateUnbackedDebt(event: CreateUnbackedDebt): void { system.save() // Update coin and debt balances - updateCoinBalance(event.params.coinDestination, event) - updateDebtBalance(event.params.debtDestination, event) + updateCoinBalance(event.params._coinDestination, event) + updateDebtBalance(event.params._debtDestination, event) } // Modify the debt multiplier, creating/destroying corresponding debt export function handleUpdateAccumulatedRate(event: UpdateAccumulatedRate): void { - let rate = decimal.fromRay(event.params.rateMultiplier) - let collateral = getOrCreateCollateral(event.params.collateralType, event) + let rate = decimal.fromRay(event.params._rateMultiplier) + let collateral = getOrCreateCollateral(event.params._cType, event) // Set the new rate let accumulatedRate = collateral.accumulatedRate.plus(rate) + let debtAmount = collateral.debtAmount collateral.accumulatedRate = accumulatedRate collateral.save() // Update debt counter let system = getSystemState(event) - system.globalDebt = decimal.fromRad(event.params.globalDebt) + let deltaSurplus = debtAmount.times(rate) + let debtAddition = system.globalDebt.plus(deltaSurplus) + system.globalDebt = debtAddition system.save() // Update the balance - updateCoinBalance(event.params.surplusDst, event) + updateCoinBalance(event.params._surplusDst, event) // This needs tbe call at least once an hour. We call it from here since it's a popular function. periodicHandler(event) @@ -351,7 +365,7 @@ export function handleUpdateAccumulatedRate(event: UpdateAccumulatedRate): void rateEvent.collateralType = collateral.id rateEvent.rateMultiplier = rate rateEvent.accumulatedRate = accumulatedRate - rateEvent.globalDebt = decimal.fromRad(event.params.globalDebt) + rateEvent.globalDebt = debtAddition rateEvent.createdAt = event.block.timestamp rateEvent.createdAtBlock = event.block.number rateEvent.createdAtTransaction = event.transaction.hash @@ -359,9 +373,9 @@ export function handleUpdateAccumulatedRate(event: UpdateAccumulatedRate): void } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/core/stability-fee-treasury.ts b/src/mappings/modules/core/stability-fee-treasury.ts index 8e3d9c8..d1eae2f 100644 --- a/src/mappings/modules/core/stability-fee-treasury.ts +++ b/src/mappings/modules/core/stability-fee-treasury.ts @@ -5,9 +5,9 @@ import { } from '../../../../generated/StabilityFeeTreasury/StabilityFeeTreasury' export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } \ No newline at end of file diff --git a/src/mappings/modules/core/tax-collector.ts b/src/mappings/modules/core/tax-collector.ts index e5104e9..0551230 100644 --- a/src/mappings/modules/core/tax-collector.ts +++ b/src/mappings/modules/core/tax-collector.ts @@ -1,44 +1,64 @@ -import { log } from '@graphprotocol/graph-ts' +import { log, dataSource } from '@graphprotocol/graph-ts' import { + InitializeCollateralType, AddAuthorization, - ModifyParameters as ModifyParametersCollateralTypeUint, - ModifyParameters1 as ModifyParametersUint, + ModifyParameters as ModifyParameters, RemoveAuthorization, } from '../../../../generated/TaxCollector/TaxCollector' + +import { TaxCollector as TaxcollectorBind } from '../../../../generated/TaxCollector/TaxCollector' + import { getSystemState, getOrCreateCollateral } from '../../../entities' import * as decimal from '../../../utils/decimal' +import * as integer from '../../../utils/integer' +import * as bytes from '../../../utils/bytes' import { addAuthorization, removeAuthorization } from '../governance/authorizations' // TODO: Authorizations // TODO: Tax Recipients -export function handleModifyParametersCollateralTypeUint( - event: ModifyParametersCollateralTypeUint, +// Register a new collateral type +export function handleInitializeCollateralType(event: InitializeCollateralType): void { + let collateral = getOrCreateCollateral(event.params._cType, event) + let taxCollectorContract = TaxcollectorBind.bind(dataSource.address()) + + let stabilityFee = taxCollectorContract.cParams(event.params._cType) + + collateral.stabilityFee = decimal.fromRay(stabilityFee.stabilityFee) + collateral.save() + + let system = getSystemState(event) + let params = taxCollectorContract._params() + system.globalStabilityFee = decimal.fromRay(params.getGlobalStabilityFee()) + system.save() + log.info('Onboard new collateral Tax Collector {}', [collateral.id]) +} + +export function handleModifyParameters( + event: ModifyParameters, ): void { - let what = event.params.parameter.toString() + let what = event.params._param.toString() if (what == 'stabilityFee') { - let collateral = getOrCreateCollateral(event.params.collateralType, event) - collateral.stabilityFee = decimal.fromRay(event.params.data) + let collateral = getOrCreateCollateral(event.params._cType, event) + let data = decimal.fromRay(bytes.toUnsignedInt(event.params._data)) + + collateral.stabilityFee = data collateral.stabilityFeeLastUpdatedAt = event.block.timestamp // Calculate the annualized let system = getSystemState(event) - let totalPerSecondRate = decimal.toRay(system.globalStabilityFee).plus(event.params.data) + let totalPerSecondRate = decimal.toRay(system.globalStabilityFee).plus(decimal.toRay(data)) collateral.totalAnnualizedStabilityFee = decimal.fromNumber( parseFloat(decimal.fromRay(totalPerSecondRate).toString()) ** 31536000, ) collateral.save() - } -} - -export function handleModifyParametersUint(event: ModifyParametersUint): void { - let what = event.params.parameter.toString() + } else if (what == 'globalStabilityFee') { + let data = decimal.fromRay(bytes.toUnsignedInt(event.params._data)) - if (what == 'globalStabilityFee') { let system = getSystemState(event) - system.globalStabilityFee = decimal.fromRay(event.params.data) + system.globalStabilityFee = data system.save() // TODO: Address this. @@ -50,9 +70,9 @@ export function handleModifyParametersUint(event: ModifyParametersUint): void { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } diff --git a/src/mappings/modules/proxy/proxy-factory.ts b/src/mappings/modules/proxy/proxy-factory.ts index 5843bad..a726a33 100644 --- a/src/mappings/modules/proxy/proxy-factory.ts +++ b/src/mappings/modules/proxy/proxy-factory.ts @@ -1,5 +1,5 @@ import { UserProxy, User, SafeHandlerOwner } from '../../../../generated/schema' -import { Created } from '../../../../generated/ProxyFactory/DSProxyFactory' +import { Created } from '../../../../generated/ProxyFactory/HaiProxyFactory' import { getOrCreateUser, getSystemState } from '../../../entities' import * as integer from '../../../utils/integer' @@ -8,31 +8,30 @@ import { addressMap } from '../../../utils/addresses' import { allowanceId } from '../../../entities/erc20' export function handleCreated(event: Created): void { - let user = getOrCreateUser(event.params.owner) + let user = getOrCreateUser(event.params._owner) // Register new user proxy - let proxy = new UserProxy(event.params.proxy.toHexString()) - proxy.address = event.params.proxy - proxy.cache = event.params.cache + let proxy = new UserProxy(event.params._proxy.toHexString()) + proxy.address = event.params._proxy proxy.owner = user.id // We add a reference to the proxy allowances, note that these might not yet exist. proxy.coinAllowance = allowanceId( - event.params.owner, + event.params._owner, addressMap.get('GEB_COIN'), - event.params.proxy, + event.params._proxy, ) proxy.protAllowance = allowanceId( - event.params.owner, + event.params._owner, addressMap.get('GEB_PROT'), - event.params.proxy, + event.params._proxy, ) proxy.uniCoinLpAllowance = allowanceId( - event.params.owner, + event.params._owner, addressMap.get('GEB_COIN_UNISWAP_POOL'), - event.params.proxy, + event.params._proxy, ) proxy.save() @@ -43,7 +42,7 @@ export function handleCreated(event: Created): void { system.save() } -export function findProxy(address: Bytes): UserProxy { +export function findProxy(address: Bytes): UserProxy | null { let proxy = UserProxy.load(address.toHexString()) if (proxy) { @@ -52,7 +51,11 @@ export function findProxy(address: Bytes): UserProxy { let handler = SafeHandlerOwner.load(address.toHexString()) if (handler) { proxy = UserProxy.load(handler.owner) - return proxy as UserProxy + if (proxy) { + return proxy as UserProxy + } else { + return null + } } else { return null } diff --git a/src/mappings/modules/proxy/safe-manager.ts b/src/mappings/modules/proxy/safe-manager.ts index 83ea11d..0939f67 100644 --- a/src/mappings/modules/proxy/safe-manager.ts +++ b/src/mappings/modules/proxy/safe-manager.ts @@ -22,8 +22,11 @@ import { findUltimateOwner } from '../../../entities/user' export function handleOpenSAFE(event: OpenSAFE): void { let manager = GebSafeManager.bind(dataSource.address()) - let collateralType = manager.collateralTypes(event.params.safe) - let safeAddress = manager.safes(event.params.safe) + let safeData = manager.safeData(event.params._safe) + + let owner = safeData.owner + let safeAddress = safeData.safeHandler + let collateralType = safeData.collateralType let collateral = CollateralType.load(collateralType.toString()) @@ -31,21 +34,23 @@ export function handleOpenSAFE(event: OpenSAFE): void { // Register new vault let safe = createManagedSafe( safeAddress, - event.params.own, + event.params._own, collateralType, - event.params.safe, + event.params._safe, event, ) - log.info('New Manged SAFE, id: #{}, owner {}, address: {}', [ - safe.safeId.toString(), - safe.owner, - safeAddress.toHexString(), - ]) - safe.save() + if (safe != null) { + log.info('New Manged SAFE, owner {}, address: {}', [ + // safe.safeId == null ? '' : safe.safeId.toString(), + safe.owner, + safeAddress.toHexString(), + ]) + safe.save() + } } else { log.warning('Wrong collateral type: {}, safe_id: {}, tx_hash: {}', [ collateralType.toString(), - event.params.safe.toString(), + event.params._safe.toString(), event.transaction.hash.toHexString(), ]) } @@ -53,37 +58,48 @@ export function handleOpenSAFE(event: OpenSAFE): void { export function handleTransferSAFEOwnership(event: TransferSAFEOwnership): void { let manager = GebSafeManager.bind(dataSource.address()) - let collateralType = manager.collateralTypes(event.params.safe) + let safeData = manager.safeData(event.params._safe) + + let owner = safeData.owner + let safeHandler = safeData.safeHandler + let collateralType = safeData.collateralType + let collateral = CollateralType.load(collateralType.toString()) - let safeHandler = manager.safes(event.params.safe) - let safe = Safe.load(safeHandler.toHexString() + '-' + collateral.id) - safe.owner = findUltimateOwner(event.params.dst).toHexString() - updateLastModifySafe(safe as Safe, event) + if (collateral != null) { + let safe = Safe.load(safeHandler.toHexString() + '-' + collateral.id) + if (safe != null) { + safe.owner = findUltimateOwner(event.params._dst).toHexString() + updateLastModifySafe(safe as Safe, event) - // Assign a proxy if it exists - safe.proxy = UserProxy.load(event.params.dst.toHexString()).id + // Assign a proxy if it exists + let proxy = UserProxy.load(event.params._dst.toHexString()) + if (proxy != null) { + safe.proxy = proxy.id + } - safe.save() + safe.save() - // Transfers balances ownership - let coinBalance = InternalCoinBalance.load(safeHandler.toHexString()) - if (coinBalance) { - coinBalance.owner = safe.owner - coinBalance.save() - } + // Transfers balances ownership + let coinBalance = InternalCoinBalance.load(safeHandler.toHexString()) + if (coinBalance) { + coinBalance.owner = safe.owner + coinBalance.save() + } - let debtBalance = InternalDebtBalance.load(safeHandler.toHexString()) - if (debtBalance) { - debtBalance.owner = safe.owner - debtBalance.save() - } + let debtBalance = InternalDebtBalance.load(safeHandler.toHexString()) + if (debtBalance) { + debtBalance.owner = safe.owner + debtBalance.save() + } - let collateralBalance = InternalCollateralBalance.load( - safeHandler.toHexString() + '-' + collateralType.toString(), - ) - if (collateralBalance) { - collateralBalance.owner = safe.owner - collateralBalance.save() + let collateralBalance = InternalCollateralBalance.load( + safeHandler.toHexString() + '-' + collateralType.toString(), + ) + if (collateralBalance) { + collateralBalance.owner = safe.owner + collateralBalance.save() + } + } } } diff --git a/src/mappings/modules/rewards/reward-distributor.ts b/src/mappings/modules/rewards/reward-distributor.ts new file mode 100644 index 0000000..1826fe2 --- /dev/null +++ b/src/mappings/modules/rewards/reward-distributor.ts @@ -0,0 +1,116 @@ +import { BigInt, Bytes } from "@graphprotocol/graph-ts"; +import { + RewardDistributorMerkleRootUpdated, + RewardDistributorRewardClaimed, +} from "../../../../generated/RewardDistributor/RewardDistributor"; +import { + RewardDistributor, + MerkleRoot, + Claim, + RewardUser, + TokenClaim, +} from "../../../../generated/schema"; +import { log } from "@graphprotocol/graph-ts"; + +function getOrCreateRewardDistributor(address: Bytes): RewardDistributor { + let distributor = RewardDistributor.load(address.toHexString()); + if (!distributor) { + distributor = new RewardDistributor(address.toHexString()); + distributor.rewardSetter = Bytes.fromHexString( + "0x0000000000000000000000000000000000000000" + ); + distributor.save(); + } + return distributor; +} + + +function getOrCreateUser(address: Bytes): RewardUser { + let user = RewardUser.load(address.toHexString()); + if (!user) { + user = new RewardUser(address.toHexString()); + user.save(); + } + return user; +} + +function getOrCreateTokenClaim(user: Bytes, token: Bytes): TokenClaim { + const id = user.toHexString() + "-" + token.toHexString(); + let tokenClaim = TokenClaim.load(id); + if (!tokenClaim) { + tokenClaim = new TokenClaim(id); + tokenClaim.user = user.toHexString(); + tokenClaim.token = token; + tokenClaim.totalAmount = BigInt.fromI32(0); + tokenClaim.claimCount = BigInt.fromI32(0); + tokenClaim.save(); + } + return tokenClaim; +} + +export function handleMerkleRootsUpdated(event: RewardDistributorMerkleRootUpdated): void { + const distributor = getOrCreateRewardDistributor(event.address); + + // Update merkle roots for each token + const token = event.params._rewardToken; + const root = event.params._merkleRoot; + + // Try to load existing merkle root + let merkleRoot = MerkleRoot.load(token.toHexString()); + + // If it doesn't exist, create a new one + if (!merkleRoot) { + merkleRoot = new MerkleRoot(token.toHexString()); + merkleRoot.distributor = distributor.id; + merkleRoot.token = token; + } + + // Update the root and timestamps + merkleRoot.root = root; + merkleRoot.updatedAt = event.block.timestamp; + merkleRoot.updatedAtBlock = event.block.number; + merkleRoot.updatedAtTransaction = event.transaction.hash; + merkleRoot.save(); + +} + +/* +export function handleRewardSetterUpdated(event: RewardSetterUpdated): void { + log.debug("Reward setter updated to {}", [event.params.newSetter.toHexString()]); + + const distributor = getOrCreateRewardDistributor(event.address); + distributor.rewardSetter = event.params.newSetter; + distributor.save(); +}*/ + +export function handleRewardsClaimed(event: RewardDistributorRewardClaimed): void { + const distributor = getOrCreateRewardDistributor(event.address); + const user = getOrCreateUser(event.params._account); + const tokenClaim = getOrCreateTokenClaim( + event.params._account, + event.params._rewardToken + ); + + // Create new claim + const claimId = + event.params._account.toHexString() + + "-" + + event.params._rewardToken.toHexString() + + "-" + + event.block.timestamp.toString(); + + const claim = new Claim(claimId); + claim.distributor = distributor.id; + claim.user = user.id; + claim.token = event.params._rewardToken; + claim.amount = event.params._wad; + claim.claimedAt = event.block.timestamp; + claim.claimedAtBlock = event.block.number; + claim.claimedAtTransaction = event.transaction.hash; + claim.save(); + + // Update token claim totals + tokenClaim.totalAmount = tokenClaim.totalAmount.plus(event.params._wad); + tokenClaim.claimCount = tokenClaim.claimCount.plus(BigInt.fromI32(1)); + tokenClaim.save(); +} diff --git a/src/mappings/modules/staking/staking-manager-hai-bold-curve-lp.ts b/src/mappings/modules/staking/staking-manager-hai-bold-curve-lp.ts new file mode 100644 index 0000000..ed135ba --- /dev/null +++ b/src/mappings/modules/staking/staking-manager-hai-bold-curve-lp.ts @@ -0,0 +1,195 @@ +import { BigInt, Address } from '@graphprotocol/graph-ts' +import { + StakingManagerStaked, + StakingManagerWithdrawalInitiated, + StakingManagerWithdrawalCancelled, + StakingManagerWithdrawn, + StakingManagerRewardPaid +} from '../../../../generated/StakingManagerHaiBoldCurveLp/StakingManager' +import { + HaiBoldCurveLPStakingUser, + HaiBoldCurveLPStakingPosition, + HaiBoldCurveLPPendingWithdrawal, + HaiBoldCurveLPRewardClaim, + HaiBoldCurveLPStakingStatistic +} from '../../../../generated/schema' + +// Previously defined handlers +export function handleStakingManagerStaked(event: StakingManagerStaked): void { + let user = getOrCreateUser(event.params._account) + let position = new HaiBoldCurveLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.totalStaked = user.totalStaked.plus(event.params._wad) + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "STAKE" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + updateStakingStatistics(event.params._wad, true) + } + + export function handleStakingManagerWithdrawalInitiated(event: StakingManagerWithdrawalInitiated): void { + let user = getOrCreateUser(event.params._account) + let position = new HaiBoldCurveLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + // Check if there's an existing pending withdrawal + let existingPendingWithdrawalId = user.pendingWithdrawal + let pendingWithdrawal: HaiBoldCurveLPPendingWithdrawal + + if (existingPendingWithdrawalId) { + // Load existing pending withdrawal + pendingWithdrawal = HaiBoldCurveLPPendingWithdrawal.load(existingPendingWithdrawalId) as HaiBoldCurveLPPendingWithdrawal + // Update amount and timestamp + pendingWithdrawal.amount = pendingWithdrawal.amount.plus(event.params._wad) + pendingWithdrawal.timestamp = event.block.timestamp + } else { + // Create new pending withdrawal + pendingWithdrawal = new HaiBoldCurveLPPendingWithdrawal(event.params._account.toHexString()) + pendingWithdrawal.user = user.id + pendingWithdrawal.amount = event.params._wad + pendingWithdrawal.timestamp = event.block.timestamp + pendingWithdrawal.status = "PENDING" + user.pendingWithdrawal = pendingWithdrawal.id + } + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "INITIATE_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.stakedBalance = user.stakedBalance.minus(event.params._wad) + + user.save() + pendingWithdrawal.save() + position.save() + + updateStakingStatistics(event.params._wad, false) + + } + + // New handlers for the remaining events + export function handleStakingManagerWithdrawalCancelled(event: StakingManagerWithdrawalCancelled): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = HaiBoldCurveLPPendingWithdrawal.load(event.params._account.toHexString()) + let position = new HaiBoldCurveLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "CANCELLED" + pendingWithdrawal.save() + } + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "CANCEL_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + + updateStakingStatistics(event.params._wad, true) + + } + + export function handleStakingManagerWithdrawn(event: StakingManagerWithdrawn): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = HaiBoldCurveLPPendingWithdrawal.load(event.params._account.toHexString()) + let position = new HaiBoldCurveLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "COMPLETED" + pendingWithdrawal.save() + } + + user.totalWithdrawn = user.totalWithdrawn.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "WITHDRAW" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + //updateStakingStatistics(event.params._wad, false) + } + + export function handleStakingManagerRewardPaid(event: StakingManagerRewardPaid): void { + let user = getOrCreateUser(event.params._account) + let rewardClaim = new HaiBoldCurveLPRewardClaim( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + rewardClaim.user = user.id + rewardClaim.rewardToken = event.params._rewardToken + rewardClaim.amount = event.params._wad + rewardClaim.destination = event.params._destination + rewardClaim.timestamp = event.block.timestamp + rewardClaim.transactionHash = event.transaction.hash.toHexString() + + let stats = getOrCreateStakingStatistics() + stats.totalRewardsPaid = stats.totalRewardsPaid.plus(event.params._wad) + + rewardClaim.save() + stats.save() + } + + // Helper functions + function getOrCreateUser(address: Address): HaiBoldCurveLPStakingUser { + let user = HaiBoldCurveLPStakingUser.load(address.toHexString()) + + if (!user) { + user = new HaiBoldCurveLPStakingUser(address.toHexString()) + user.stakedBalance = BigInt.fromI32(0) + user.totalStaked = BigInt.fromI32(0) + user.totalWithdrawn = BigInt.fromI32(0) + } + + return user + } + + function getOrCreateStakingStatistics(): HaiBoldCurveLPStakingStatistic { + let stats = HaiBoldCurveLPStakingStatistic.load("singleton") + + if (!stats) { + stats = new HaiBoldCurveLPStakingStatistic("singleton") + stats.totalStaked = BigInt.fromI32(0) + stats.totalStakers = BigInt.fromI32(0) + stats.totalRewardsPaid = BigInt.fromI32(0) + } + + return stats + } + + function updateStakingStatistics(amount: BigInt, isStaking: boolean): void { + let stats = getOrCreateStakingStatistics() + + if (isStaking) { + stats.totalStaked = stats.totalStaked.plus(amount) + stats.totalStakers = stats.totalStakers.plus(BigInt.fromI32(1)) + } else { + stats.totalStaked = stats.totalStaked.minus(amount) + stats.totalStakers = stats.totalStakers.minus(BigInt.fromI32(1)) + } + + stats.save() + } + diff --git a/src/mappings/modules/staking/staking-manager-hai-velo-velo-lp.ts b/src/mappings/modules/staking/staking-manager-hai-velo-velo-lp.ts new file mode 100644 index 0000000..c493c75 --- /dev/null +++ b/src/mappings/modules/staking/staking-manager-hai-velo-velo-lp.ts @@ -0,0 +1,195 @@ +import { BigInt, Address } from '@graphprotocol/graph-ts' +import { + StakingManagerStaked, + StakingManagerWithdrawalInitiated, + StakingManagerWithdrawalCancelled, + StakingManagerWithdrawn, + StakingManagerRewardPaid +} from '../../../../generated/StakingManagerHaiVeloVeloLp/StakingManager' +import { + HaiVeloVeloLPStakingUser, + HaiVeloVeloLPStakingPosition, + HaiVeloVeloLPPendingWithdrawal, + HaiVeloVeloLPRewardClaim, + HaiVeloVeloLPStakingStatistic +} from '../../../../generated/schema' + +// Previously defined handlers +export function handleStakingManagerStaked(event: StakingManagerStaked): void { + let user = getOrCreateUser(event.params._account) + let position = new HaiVeloVeloLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.totalStaked = user.totalStaked.plus(event.params._wad) + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "STAKE" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + updateStakingStatistics(event.params._wad, true) + } + + export function handleStakingManagerWithdrawalInitiated(event: StakingManagerWithdrawalInitiated): void { + let user = getOrCreateUser(event.params._account) + let position = new HaiVeloVeloLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + // Check if there's an existing pending withdrawal + let existingPendingWithdrawalId = user.pendingWithdrawal + let pendingWithdrawal: HaiVeloVeloLPPendingWithdrawal + + if (existingPendingWithdrawalId) { + // Load existing pending withdrawal + pendingWithdrawal = HaiVeloVeloLPPendingWithdrawal.load(existingPendingWithdrawalId) as HaiVeloVeloLPPendingWithdrawal + // Update amount and timestamp + pendingWithdrawal.amount = pendingWithdrawal.amount.plus(event.params._wad) + pendingWithdrawal.timestamp = event.block.timestamp + } else { + // Create new pending withdrawal + pendingWithdrawal = new HaiVeloVeloLPPendingWithdrawal(event.params._account.toHexString()) + pendingWithdrawal.user = user.id + pendingWithdrawal.amount = event.params._wad + pendingWithdrawal.timestamp = event.block.timestamp + pendingWithdrawal.status = "PENDING" + user.pendingWithdrawal = pendingWithdrawal.id + } + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "INITIATE_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.stakedBalance = user.stakedBalance.minus(event.params._wad) + + user.save() + pendingWithdrawal.save() + position.save() + + updateStakingStatistics(event.params._wad, false) + + } + + // New handlers for the remaining events + export function handleStakingManagerWithdrawalCancelled(event: StakingManagerWithdrawalCancelled): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = HaiVeloVeloLPPendingWithdrawal.load(event.params._account.toHexString()) + let position = new HaiVeloVeloLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "CANCELLED" + pendingWithdrawal.save() + } + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "CANCEL_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + + updateStakingStatistics(event.params._wad, true) + + } + + export function handleStakingManagerWithdrawn(event: StakingManagerWithdrawn): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = HaiVeloVeloLPPendingWithdrawal.load(event.params._account.toHexString()) + let position = new HaiVeloVeloLPStakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "COMPLETED" + pendingWithdrawal.save() + } + + user.totalWithdrawn = user.totalWithdrawn.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "WITHDRAW" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + //updateStakingStatistics(event.params._wad, false) + } + + export function handleStakingManagerRewardPaid(event: StakingManagerRewardPaid): void { + let user = getOrCreateUser(event.params._account) + let rewardClaim = new HaiVeloVeloLPRewardClaim( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + rewardClaim.user = user.id + rewardClaim.rewardToken = event.params._rewardToken + rewardClaim.amount = event.params._wad + rewardClaim.destination = event.params._destination + rewardClaim.timestamp = event.block.timestamp + rewardClaim.transactionHash = event.transaction.hash.toHexString() + + let stats = getOrCreateStakingStatistics() + stats.totalRewardsPaid = stats.totalRewardsPaid.plus(event.params._wad) + + rewardClaim.save() + stats.save() + } + + // Helper functions + function getOrCreateUser(address: Address): HaiVeloVeloLPStakingUser { + let user = HaiVeloVeloLPStakingUser.load(address.toHexString()) + + if (!user) { + user = new HaiVeloVeloLPStakingUser(address.toHexString()) + user.stakedBalance = BigInt.fromI32(0) + user.totalStaked = BigInt.fromI32(0) + user.totalWithdrawn = BigInt.fromI32(0) + } + + return user + } + + function getOrCreateStakingStatistics(): HaiVeloVeloLPStakingStatistic { + let stats = HaiVeloVeloLPStakingStatistic.load("singleton") + + if (!stats) { + stats = new HaiVeloVeloLPStakingStatistic("singleton") + stats.totalStaked = BigInt.fromI32(0) + stats.totalStakers = BigInt.fromI32(0) + stats.totalRewardsPaid = BigInt.fromI32(0) + } + + return stats + } + + function updateStakingStatistics(amount: BigInt, isStaking: boolean): void { + let stats = getOrCreateStakingStatistics() + + if (isStaking) { + stats.totalStaked = stats.totalStaked.plus(amount) + stats.totalStakers = stats.totalStakers.plus(BigInt.fromI32(1)) + } else { + stats.totalStaked = stats.totalStaked.minus(amount) + stats.totalStakers = stats.totalStakers.minus(BigInt.fromI32(1)) + } + + stats.save() + } + diff --git a/src/mappings/modules/staking/staking-manager.ts b/src/mappings/modules/staking/staking-manager.ts new file mode 100644 index 0000000..e7be3e8 --- /dev/null +++ b/src/mappings/modules/staking/staking-manager.ts @@ -0,0 +1,194 @@ +import { BigInt, Address } from '@graphprotocol/graph-ts' +import { + StakingManagerStaked, + StakingManagerWithdrawalInitiated, + StakingManagerWithdrawalCancelled, + StakingManagerWithdrawn, + StakingManagerRewardPaid +} from '../../../../generated/StakingManager/StakingManager' +import { + StakingUser, + StakingPosition, + PendingWithdrawal, + RewardClaim, + StakingStatistic +} from '../../../../generated/schema' + +// Previously defined handlers +export function handleStakingManagerStaked(event: StakingManagerStaked): void { + let user = getOrCreateUser(event.params._account) + let position = new StakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.totalStaked = user.totalStaked.plus(event.params._wad) + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "STAKE" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + updateStakingStatistics(event.params._wad, true) + } + + export function handleStakingManagerWithdrawalInitiated(event: StakingManagerWithdrawalInitiated): void { + let user = getOrCreateUser(event.params._account) + let position = new StakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + // Check if there's an existing pending withdrawal + let existingPendingWithdrawalId = user.pendingWithdrawal + let pendingWithdrawal: PendingWithdrawal + + if (existingPendingWithdrawalId) { + // Load existing pending withdrawal + pendingWithdrawal = PendingWithdrawal.load(existingPendingWithdrawalId) as PendingWithdrawal + // Update amount and timestamp + pendingWithdrawal.amount = pendingWithdrawal.amount.plus(event.params._wad) + pendingWithdrawal.timestamp = event.block.timestamp + } else { + // Create new pending withdrawal + pendingWithdrawal = new PendingWithdrawal(event.params._account.toHexString()) + pendingWithdrawal.user = user.id + pendingWithdrawal.amount = event.params._wad + pendingWithdrawal.timestamp = event.block.timestamp + pendingWithdrawal.status = "PENDING" + user.pendingWithdrawal = pendingWithdrawal.id + } + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "INITIATE_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.stakedBalance = user.stakedBalance.minus(event.params._wad) + + user.save() + pendingWithdrawal.save() + position.save() + + updateStakingStatistics(event.params._wad, false) + + } + + // New handlers for the remaining events + export function handleStakingManagerWithdrawalCancelled(event: StakingManagerWithdrawalCancelled): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = PendingWithdrawal.load(event.params._account.toHexString()) + let position = new StakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "CANCELLED" + pendingWithdrawal.save() + } + + user.stakedBalance = user.stakedBalance.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "CANCEL_WITHDRAWAL" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + + updateStakingStatistics(event.params._wad, true) + + } + + export function handleStakingManagerWithdrawn(event: StakingManagerWithdrawn): void { + let user = getOrCreateUser(event.params._account) + let pendingWithdrawal = PendingWithdrawal.load(event.params._account.toHexString()) + let position = new StakingPosition( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + if (pendingWithdrawal) { + pendingWithdrawal.status = "COMPLETED" + pendingWithdrawal.save() + } + + user.totalWithdrawn = user.totalWithdrawn.plus(event.params._wad) + user.pendingWithdrawal = null + + position.user = user.id + position.amount = event.params._wad + position.timestamp = event.block.timestamp + position.type = "WITHDRAW" + position.transactionHash = event.transaction.hash.toHexString() + + user.save() + position.save() + //updateStakingStatistics(event.params._wad, false) + } + + export function handleStakingManagerRewardPaid(event: StakingManagerRewardPaid): void { + let user = getOrCreateUser(event.params._account) + let rewardClaim = new RewardClaim( + event.params._account.toHexString() + event.block.timestamp.toString() + ) + + rewardClaim.user = user.id + rewardClaim.rewardToken = event.params._rewardToken + rewardClaim.amount = event.params._wad + rewardClaim.destination = event.params._destination + rewardClaim.timestamp = event.block.timestamp + rewardClaim.transactionHash = event.transaction.hash.toHexString() + + let stats = getOrCreateStakingStatistics() + stats.totalRewardsPaid = stats.totalRewardsPaid.plus(event.params._wad) + + rewardClaim.save() + stats.save() + } + + // Helper functions + function getOrCreateUser(address: Address): StakingUser { + let user = StakingUser.load(address.toHexString()) + + if (!user) { + user = new StakingUser(address.toHexString()) + user.stakedBalance = BigInt.fromI32(0) + user.totalStaked = BigInt.fromI32(0) + user.totalWithdrawn = BigInt.fromI32(0) + } + + return user + } + + function getOrCreateStakingStatistics(): StakingStatistic { + let stats = StakingStatistic.load("singleton") + + if (!stats) { + stats = new StakingStatistic("singleton") + stats.totalStaked = BigInt.fromI32(0) + stats.totalStakers = BigInt.fromI32(0) + stats.totalRewardsPaid = BigInt.fromI32(0) + } + + return stats + } + + function updateStakingStatistics(amount: BigInt, isStaking: boolean): void { + let stats = getOrCreateStakingStatistics() + + if (isStaking) { + stats.totalStaked = stats.totalStaked.plus(amount) + stats.totalStakers = stats.totalStakers.plus(BigInt.fromI32(1)) + } else { + stats.totalStaked = stats.totalStaked.minus(amount) + stats.totalStakers = stats.totalStakers.minus(BigInt.fromI32(1)) + } + + stats.save() + } \ No newline at end of file diff --git a/src/mappings/modules/token/coin-join.ts b/src/mappings/modules/token/coin-join.ts index ea123dc..d076fef 100644 --- a/src/mappings/modules/token/coin-join.ts +++ b/src/mappings/modules/token/coin-join.ts @@ -8,10 +8,10 @@ import { addAuthorization, removeAuthorization } from '../governance/authorizati export function handleJoin(event: Join): void { let join = new CoinJoinTransaction(eventUid(event)) - join.amount = decimal.fromWad(event.params.wad) - join.safeHandler = event.params.account - join.owner = getOrCreateUser(findUltimateOwner(event.params.account)).id - join.source = event.params.sender + join.amount = decimal.fromWad(event.params._wad) + join.safeHandler = event.params._account + join.owner = getOrCreateUser(findUltimateOwner(event.params._account)).id + join.source = event.params._sender join.createdAt = event.block.timestamp join.createdAtBlock = event.block.number join.createdAtTransaction = event.transaction.hash @@ -22,10 +22,10 @@ export function handleJoin(event: Join): void { export function handleExit(event: Exit): void { let exit = new CoinExitTransaction(eventUid(event)) - exit.amount = decimal.fromWad(event.params.wad) - exit.safeHandler = event.params.sender - exit.owner = getOrCreateUser(findUltimateOwner(event.params.sender)).id - exit.recipient = event.params.account + exit.amount = decimal.fromWad(event.params._wad) + exit.safeHandler = event.params._sender + exit.owner = getOrCreateUser(findUltimateOwner(event.params._sender)).id + exit.recipient = event.params._account exit.createdAt = event.block.timestamp exit.createdAtBlock = event.block.number exit.createdAtTransaction = event.transaction.hash @@ -34,9 +34,9 @@ export function handleExit(event: Exit): void { } export function handleAddAuthorization(event: AddAuthorization): void { - addAuthorization(event.params.account, event) + addAuthorization(event.params._account, event) } export function handleRemoveAuthorization(event: RemoveAuthorization): void { - removeAuthorization(event.params.account, event) + removeAuthorization(event.params._account, event) } \ No newline at end of file diff --git a/src/mappings/modules/token/wrapped-token.ts b/src/mappings/modules/token/wrapped-token.ts new file mode 100644 index 0000000..8b17b42 --- /dev/null +++ b/src/mappings/modules/token/wrapped-token.ts @@ -0,0 +1,187 @@ +import { BigDecimal, BigInt, Address, Bytes } from '@graphprotocol/graph-ts' +import { + WrappedToken as WrappedTokenContract, + WrappedTokenDeposit as WrappedTokenDepositEvent, + Transfer as TransferEvent +} from '../../../../generated/WrappedToken/WrappedToken' +import { + WrappedToken, + WrappedTokenDeposit, + WrappedTokenUserBalance, + User +} from '../../../../generated/schema' +import { toDecimal } from '../../../utils/decimals' + +// Helper function to load or create user +function getOrCreateUser(address: Address): User { + let user = User.load(address.toHexString()) + if (user == null) { + user = new User(address.toHexString()) + user.address = address + user.save() + } + return user +} + +// Helper function to load or create WrappedToken +function getOrCreateWrappedToken( + address: Address, + event: WrappedTokenDepositEvent +): WrappedToken { + let token = WrappedToken.load(address.toHexString()) + if (token == null) { + let contract = WrappedTokenContract.bind(address) + + token = new WrappedToken(address.toHexString()) + token.name = contract.name() + token.symbol = contract.symbol() + token.baseToken = contract.BASE_TOKEN() + token.baseTokenManager = contract.baseTokenManager() + token.totalDeposits = BigDecimal.fromString('0') + token.depositorCount = BigInt.fromI32(0) + token.createdAt = event.block.timestamp + token.createdAtBlock = event.block.number + token.createdAtTransaction = event.transaction.hash + token.save() + } + return token +} + +// Helper function to load or create user balance +function getOrCreateUserBalance( + userAddress: Address, + tokenAddress: Address, + event: WrappedTokenDepositEvent +): WrappedTokenUserBalance { + let id = userAddress.toHexString() + '-' + tokenAddress.toHexString() + let userBalance = WrappedTokenUserBalance.load(id) + + if (userBalance == null) { + let user = getOrCreateUser(userAddress) + let token = getOrCreateWrappedToken(tokenAddress, event) + let contract = WrappedTokenContract.bind(tokenAddress) + + userBalance = new WrappedTokenUserBalance(id) + userBalance.user = user.id + userBalance.wrappedToken = token.id + userBalance.balance = toDecimal(contract.balanceOf(userAddress)) + userBalance.totalDeposited = BigDecimal.fromString('0') + userBalance.depositCount = BigInt.fromI32(0) + userBalance.createdAt = event.block.timestamp + userBalance.createdAtBlock = event.block.number + userBalance.createdAtTransaction = event.transaction.hash + userBalance.save() + } + + return userBalance +} + +// Handle deposit events +export function handleWrappedTokenDeposit(event: WrappedTokenDepositEvent): void { + let tokenAddress = event.address + let userAddress = event.params.account + let amount = toDecimal(event.params.amount) + + // Get or create the token entity + let token = getOrCreateWrappedToken(tokenAddress, event) + + // Get or create the user entity + let user = getOrCreateUser(userAddress) + + // Get or create the user balance entity + let userBalance = getOrCreateUserBalance(userAddress, tokenAddress, event) + + // Update token entity + token.totalDeposits = token.totalDeposits.plus(amount) + if (userBalance.depositCount.equals(BigInt.fromI32(0))) { + token.depositorCount = token.depositorCount.plus(BigInt.fromI32(1)) + } + token.modifiedAt = event.block.timestamp + token.modifiedAtBlock = event.block.number + token.modifiedAtTransaction = event.transaction.hash + token.save() + + // Update user balance entity + userBalance.balance = toDecimal( + WrappedTokenContract.bind(tokenAddress).balanceOf(userAddress) + ) + userBalance.totalDeposited = userBalance.totalDeposited.plus(amount) + userBalance.depositCount = userBalance.depositCount.plus(BigInt.fromI32(1)) + userBalance.modifiedAt = event.block.timestamp + userBalance.modifiedAtBlock = event.block.number + userBalance.modifiedAtTransaction = event.transaction.hash + userBalance.save() + + // Create deposit entity + let deposit = new WrappedTokenDeposit( + event.transaction.hash.toHexString() + '-' + event.logIndex.toString() + ) + deposit.user = user.id + deposit.amount = amount + deposit.wrappedToken = token.id + deposit.createdAt = event.block.timestamp + deposit.createdAtBlock = event.block.number + deposit.createdAtTransaction = event.transaction.hash + deposit.save() +} + +// Handle transfer events to update balances +export function handleTransfer(event: TransferEvent): void { + let tokenAddress = event.address + let fromAddress = event.params.from + let toAddress = event.params.to + + // Skip if mint or burn (from or to is zero address) + if ( + fromAddress.toHexString() == '0x0000000000000000000000000000000000000000' || + toAddress.toHexString() == '0x0000000000000000000000000000000000000000' + ) { + return + } + + let token = WrappedToken.load(tokenAddress.toHexString()) + if (token == null) { + return + } + + let contract = WrappedTokenContract.bind(tokenAddress) + + // Update sender balance + let fromBalanceId = fromAddress.toHexString() + '-' + tokenAddress.toHexString() + let fromBalance = WrappedTokenUserBalance.load(fromBalanceId) + if (fromBalance != null) { + fromBalance.balance = toDecimal(contract.balanceOf(fromAddress)) + fromBalance.modifiedAt = event.block.timestamp + fromBalance.modifiedAtBlock = event.block.number + fromBalance.modifiedAtTransaction = event.transaction.hash + fromBalance.save() + } + + // Update receiver balance + let toBalanceId = toAddress.toHexString() + '-' + tokenAddress.toHexString() + let toBalance = WrappedTokenUserBalance.load(toBalanceId) + if (toBalance == null) { + // Create new balance if doesn't exist + let user = getOrCreateUser(toAddress) + + toBalance = new WrappedTokenUserBalance(toBalanceId) + toBalance.user = user.id + toBalance.wrappedToken = token.id + toBalance.balance = toDecimal(contract.balanceOf(toAddress)) + toBalance.totalDeposited = BigDecimal.fromString('0') + toBalance.depositCount = BigInt.fromI32(0) + toBalance.createdAt = event.block.timestamp + toBalance.createdAtBlock = event.block.number + toBalance.createdAtTransaction = event.transaction.hash + toBalance.save() + + token.depositorCount = token.depositorCount.plus(BigInt.fromI32(1)) + token.save() + } else { + toBalance.balance = toDecimal(contract.balanceOf(toAddress)) + toBalance.modifiedAt = event.block.timestamp + toBalance.modifiedAtBlock = event.block.number + toBalance.modifiedAtTransaction = event.transaction.hash + toBalance.save() + } +} \ No newline at end of file diff --git a/src/mappings/modules/uniswap/uniswapv3.ts b/src/mappings/modules/uniswap/uniswapv3.ts new file mode 100644 index 0000000..d361b39 --- /dev/null +++ b/src/mappings/modules/uniswap/uniswapv3.ts @@ -0,0 +1,64 @@ +import { Address, ethereum, log } from '@graphprotocol/graph-ts' +import { + Initialize, + Swap, + UniswapV3Pool as UniswapPairContract, +} from '../../../../generated/UniCoinPool/UniswapV3Pool' +import { BigInt } from '@graphprotocol/graph-ts' +import { getOrCreateUniPool, getUniPool } from '../../../entities/uniswap' +import { addressMap } from '../../../utils/addresses' +import * as decimal from '../../../utils/decimal' +import * as integer from '../../../utils/integer' +import { eventUid } from '../../../utils/ethereum' + +export const UNISWAP_COIN_POOL_LABEL = 'UNISWAP_POOL_COIN' +const UNISWAP_COIN_POOL_TOKEN_LABEL = 'UNISWAP_POOL_TOKEN_COIN' + +// Create a swap object +export function handleSwap(event: Swap): void { + let pair = getOrCreateUniPool(event.address, event, UNISWAP_COIN_POOL_LABEL) + + pair.sqrtPriceX96 = event.params.sqrtPriceX96 + + pair.modifiedAt = event.block.timestamp + pair.modifiedAtBlock = event.block.number + pair.modifiedAtTransaction = event.transaction.hash + + pair.save() + +} + +export function handleInitialize(event: Initialize): void { + let pair = getOrCreateUniPool(event.address, event, UNISWAP_COIN_POOL_LABEL) + + pair.sqrtPriceX96 = event.params.sqrtPriceX96 + + pair.modifiedAt = event.block.timestamp + pair.modifiedAtBlock = event.block.number + pair.modifiedAtTransaction = event.transaction.hash + + pair.save() + +} + +export function getUniEthPrice(event: ethereum.Event): decimal.BigDecimal { + let uniPair = getUniPool( + addressMap.get('GEB_COIN_UNISWAP_POOL') + ) + + if (uniPair == null) { + return decimal.ZERO + } + + let exp = integer.fromNumber(2) + + let expPow = new decimal.BigDecimal(exp.pow(96)) + + let sqrtPrice = new decimal.BigDecimal(uniPair.sqrtPriceX96) + + let token0Price = (sqrtPrice.div(expPow)).times(sqrtPrice.div(expPow)) + + // let token1Price = (decimal.ONE.div(token0Price.toBigDecimal())) + + return token0Price +} diff --git a/src/utils/addresses.template.ts b/src/utils/addresses.template.ts index 6841ba6..b81f48b 100644 --- a/src/utils/addresses.template.ts +++ b/src/utils/addresses.template.ts @@ -8,9 +8,11 @@ export var addressLabels: string[] = [] export var addressValues: Address[] = [] function addEntry(label: string, address: string): void { - addressMap.set(label, Address.fromHexString(address) as Address) - addressLabels.push(label) - addressValues.push(Address.fromHexString(address) as Address) + if (address != '') { + addressMap.set(label, Address.fromString(address)) + addressLabels.push(label) + addressValues.push(Address.fromString(address)) + } } addEntry('ETH_FROM', '{{ETH_FROM}}') diff --git a/src/utils/bytes.ts b/src/utils/bytes.ts index 0fbaa19..ecb2170 100644 --- a/src/utils/bytes.ts +++ b/src/utils/bytes.ts @@ -3,7 +3,7 @@ import { Address, BigInt, Bytes } from '@graphprotocol/graph-ts' const ADDRESS_LENGTH = 20 export function toAddress(address: Bytes): Address { - return Address.fromHexString(address.toHex()).subarray(-ADDRESS_LENGTH) as Address + return Address.fromString(address.toHex().substr(-40)) as Address } export function toSignedInt( @@ -15,7 +15,13 @@ export function toSignedInt( } export function toUnsignedInt(value: Bytes, bigEndian: boolean = true): BigInt { - return BigInt.fromUnsignedBytes(bigEndian ? (value.reverse() as Bytes) : value) + if (bigEndian) { + let bytesVal = value.reverse() + let bytesRet = changetype(bytesVal) + return BigInt.fromUnsignedBytes(bytesRet) + } else { + return BigInt.fromUnsignedBytes(value) + } } export let ETH_A = Bytes.fromHexString( diff --git a/src/utils/decimals.ts b/src/utils/decimals.ts new file mode 100644 index 0000000..f6219cf --- /dev/null +++ b/src/utils/decimals.ts @@ -0,0 +1,29 @@ +import { BigDecimal, BigInt } from '@graphprotocol/graph-ts' + +export let ZERO_BD = BigDecimal.fromString('0') +export let ONE_BD = BigDecimal.fromString('1') +export let ZERO_BI = BigInt.fromI32(0) +export let ONE_BI = BigInt.fromI32(1) +export let BI_18 = BigInt.fromI32(18) + +export function exponentToBigDecimal(decimals: BigInt): BigDecimal { + let bd = BigDecimal.fromString('1') + for (let i = ZERO_BI; i.lt(decimals as BigInt); i = i.plus(ONE_BI)) { + bd = bd.times(BigDecimal.fromString('10')) + } + return bd +} + +export function toDecimal(value: BigInt, decimals: BigInt = BI_18): BigDecimal { + if (value.equals(ZERO_BI)) { + return ZERO_BD + } + return value.toBigDecimal().div(exponentToBigDecimal(decimals)) +} + +export function fromDecimal(amount: BigDecimal, decimals: BigInt = BI_18): BigInt { + if (amount.equals(ZERO_BD)) { + return ZERO_BI + } + return BigInt.fromString(amount.times(exponentToBigDecimal(decimals)).toString().split('.')[0]) +} \ No newline at end of file diff --git a/src/utils/integer.ts b/src/utils/integer.ts index 65e54f6..aa67efb 100644 --- a/src/utils/integer.ts +++ b/src/utils/integer.ts @@ -1,5 +1,7 @@ import { BigInt, Bytes } from '@graphprotocol/graph-ts' +export { BigInt } + export let ONE = BigInt.fromI32(1) export let ZERO = BigInt.fromI32(0) export let MAX_UINT_256 = BigInt.fromUnsignedBytes( @@ -14,5 +16,5 @@ export function fromNumber(value: i32): BigInt { } export function fromString(value: string): BigInt { - return fromNumber(parseI32(value)) + return BigInt.fromString(value) } diff --git a/subgraph.template.yaml b/subgraph.template.yaml index 72fbae4..c1c59e8 100644 --- a/subgraph.template.yaml +++ b/subgraph.template.yaml @@ -8,12 +8,12 @@ dataSources: kind: ethereum/contract network: {{NETWORK}} source: - address: '{{GEB_SAFE_ENGINE}}' + address: "{{GEB_SAFE_ENGINE}}" abi: SAFEEngine startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/safe-engine.ts entities: @@ -26,50 +26,50 @@ dataSources: - name: SAFEEngine file: ./abis/SAFEEngine.json # These 2 contract are needed by the periodic handler - - name: UniswapV2Pair - file: ./abis/UniswapV2Pair.json + - name: UniswapV3Pool + file: ./abis/UniswapV3Pool.json - name: EACAggregatorProxy file: ./abis/EACAggregatorProxy.json + - name: OracleRelayer + file: ./abis/OracleRelayer.json eventHandlers: - event: InitializeCollateralType(bytes32) handler: handleInitializeCollateralType - - event: ModifyParameters(bytes32,bytes32,uint256) - handler: handleModifyParametersCollateralTypeUint - - event: ModifyParameters(bytes32,uint256) - handler: handleModifyParametersUint - - event: ModifyCollateralBalance(indexed bytes32,indexed address,int256) - handler: handleModifyCollateralBalance + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters + # - event: ModifyCollateralBalance(bytes32,address,int256) + # handler: handleModifyCollateralBalance - event: TransferCollateral(indexed bytes32,indexed address,indexed address,uint256) handler: handleTransferCollateral - event: TransferInternalCoins(indexed address,indexed address,uint256) handler: handleTransferInternalCoins - - event: ModifySAFECollateralization(indexed bytes32,indexed address,address,address,int256,int256,uint256,uint256,uint256) + - event: ModifySAFECollateralization(indexed bytes32,indexed address,address,address,int256,int256) handler: handleModifySAFECollateralization - - event: TransferSAFECollateralAndDebt(indexed bytes32,indexed address,indexed address,int256,int256,uint256,uint256,uint256,uint256) + - event: TransferSAFECollateralAndDebt(indexed bytes32,indexed address,indexed address,int256,int256) handler: handleTransferSAFECollateralAndDebt - - event: ConfiscateSAFECollateralAndDebt(indexed bytes32,indexed address,address,address,int256,int256,uint256) + - event: ConfiscateSAFECollateralAndDebt(indexed bytes32,indexed address,address,address,int256,int256) handler: handleConfiscateSAFECollateralAndDebt - - event: SettleDebt(indexed address,uint256,uint256,uint256,uint256,uint256) + - event: SettleDebt(indexed address,uint256) handler: handleSettleDebt - - event: CreateUnbackedDebt(indexed address,indexed address,uint256,uint256,uint256,uint256,uint256) + - event: CreateUnbackedDebt(indexed address,indexed address,uint256) handler: handleCreateUnbackedDebt - - event: UpdateAccumulatedRate(indexed bytes32,address,int256,uint256,uint256) + - event: UpdateAccumulatedRate(indexed bytes32,address,int256) handler: handleUpdateAccumulatedRate - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - + - name: GebSafeManager kind: ethereum/contract network: {{NETWORK}} source: - address: '{{SAFE_MANAGER}}' + address: "{{SAFE_MANAGER}}" abi: GebSafeManager startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/proxy/safe-manager.ts entities: @@ -82,11 +82,11 @@ dataSources: eventHandlers: - event: OpenSAFE(indexed address,indexed address,indexed uint256) handler: handleOpenSAFE - - event: TransferSAFEOwnership(address,uint256,address) + - event: TransferSAFEOwnership(indexed address,indexed uint256,address) handler: handleTransferSAFEOwnership - - event: AllowSAFE(address,uint256,address,uint256) + - event: AllowSAFE(indexed address,indexed uint256,address,bool) handler: handleAllowSAFE - - event: AllowHandler(address,address,uint256) + - event: AllowHandler(indexed address,address,bool) handler: handleAllowHandler # Other events in SAFEManager are handled by SAFEEngine @@ -94,12 +94,12 @@ dataSources: kind: ethereum/contract network: {{NETWORK}} source: - address: '{{GEB_ORACLE_RELAYER}}' + address: "{{GEB_ORACLE_RELAYER}}" abi: OracleRelayer startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/oracle-relayer.ts entities: @@ -117,27 +117,25 @@ dataSources: handler: handleUpdateCollateralPrice - event: UpdateRedemptionPrice(uint256) handler: handleUpdateRedemptionPrice - - event: ModifyParameters(bytes32,bytes32,address) - handler: handleModifyParametersCollateralTypeAddress - - event: ModifyParameters(bytes32,bytes32,uint256) - handler: handleModifyParametersCollateralTypeUint - - event: ModifyParameters(bytes32,uint256) - handler: handleModifyParametersUint + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - + - event: InitializeCollateralType(bytes32) + handler: handleInitializeCollateralType + - name: TaxCollector kind: ethereum/contract network: {{NETWORK}} source: - address: '{{GEB_TAX_COLLECTOR}}' + address: "{{GEB_TAX_COLLECTOR}}" abi: TaxCollector startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/tax-collector.ts entities: @@ -149,15 +147,15 @@ dataSources: - name: RateSetter file: ./abis/RateSetter.json eventHandlers: - - event: ModifyParameters(bytes32,bytes32,uint256) # Type 0 - handler: handleModifyParametersCollateralTypeUint - - event: ModifyParameters(bytes32,uint256) # Type 1 - handler: handleModifyParametersUint + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - + - event: InitializeCollateralType(bytes32) + handler: handleInitializeCollateralType + # Remaining events # - event: AddSecondaryReceiver(bytes32,uint256,uint256,uint256,uint256) # handle: handleAddSecondaryReceiver @@ -165,8 +163,6 @@ dataSources: # handle: handleCollectTax # - event: DistributeTax(bytes32,address,int256) # handle: handleDistributeTax - # - event: InitializeCollateralType(bytes32) - # handle: handleInitializeCollateralType # - event: ModifyParameters(bytes32,address) # handle: handleModifyParameters # - event: ModifyParameters(bytes32,uint256,uint256) @@ -175,17 +171,17 @@ dataSources: # handle: handleModifyParameters # - event: ModifySecondaryReceiver(bytes32,uint256,uint256,uint256,uint256) # handle: handleModifySecondaryReceiver - + - name: LiquidationEngine kind: ethereum/contract network: {{NETWORK}} source: - address: '{{GEB_LIQUIDATION_ENGINE}}' + address: "{{GEB_LIQUIDATION_ENGINE}}" abi: LiquidationEngine startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/liquidation-engine.ts entities: @@ -201,10 +197,8 @@ dataSources: eventHandlers: - event: Liquidate(indexed bytes32,indexed address,uint256,uint256,uint256,address,uint256) handler: handleLiquidate - - event: ModifyParameters(bytes32,bytes32,address) - handler: handleModifyParametersCollateralTypeAddress - - event: ModifyParameters(bytes32,bytes32,uint256) - handler: handleModifyParametersCollateralTypeUint + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) @@ -215,6 +209,8 @@ dataSources: handler: handleDisconnectSAFESaviour - event: ProtectSAFE(indexed bytes32,indexed address,address) handler: handleProtectSAFE + - event: InitializeCollateralType(bytes32) + handler: handleInitializeCollateralType # Remaining events: # - event: DisableContract() @@ -223,23 +219,23 @@ dataSources: # handler: handleSaveSAFE # - event: FailedSAFESave(bytes) # handler: handleFailedSAFESave - + - name: AccountingEngine kind: ethereum/contract network: {{NETWORK}} source: - address: '{{GEB_ACCOUNTING_ENGINE}}' + address: "{{GEB_ACCOUNTING_ENGINE}}" abi: AccountingEngine startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/accounting-engine.ts entities: - SystemState - EnglishAuctionConfiguration - - AccountingEngine + - AccountingEngine - EnglishAuction abis: - name: AccountingEngine @@ -248,12 +244,10 @@ dataSources: file: ./abis/DebtAuctionHouse.json - name: SurplusAuctionHouse file: ./abis/BurningSurplusAuctionHouse.json - + eventHandlers: - - event: ModifyParameters(indexed bytes32,address) - handler: handleModifyParametersAddress - - event: ModifyParameters(indexed bytes32,uint256) - handler: handleModifyParametersUint + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters - event: AuctionDebt(indexed uint256,uint256,uint256) handler: handleAuctionDebt - event: AuctionSurplus(indexed uint256,uint256,uint256) @@ -281,23 +275,23 @@ dataSources: kind: ethereum/contract network: {{NETWORK}} source: - abi: DSProxyFactory - address: '{{PROXY_FACTORY}}' - startBlock: {{PROXY_REGISTRY_STARTING_BLOCK}} + abi: HaiProxyFactory + address: "{{PROXY_FACTORY}}" + startBlock: {{STARTING_BLOCK_NUMBER}} # Use this instead of the above for dev (faster sync but not all proxies available) # startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/proxy/proxy-factory.ts entities: - UserProxy abis: - - name: DSProxyFactory - file: ./abis/DSProxyFactory.json + - name: HaiProxyFactory + file: ./abis/HaiProxyFactory.json eventHandlers: - - event: Created(indexed address,indexed address,address,address) + - event: Created(indexed address,indexed address,address) handler: handleCreated - name: CoinJoin @@ -305,11 +299,11 @@ dataSources: network: {{NETWORK}} source: abi: CoinJoin - address: '{{GEB_COIN_JOIN}}' + address: "{{GEB_COIN_JOIN}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/token/coin-join.ts entities: @@ -329,47 +323,47 @@ dataSources: # - event: DisableContract() # handler: handleDisableContract - - - name: EthAJoin - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: BasicCollateralJoin - address: '{{GEB_JOIN_ETH_A}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/token/collateral-join.ts - entities: - - CollateralJoin - abis: - - name: BasicCollateralJoin - file: ./abis/BasicCollateralJoin.json - eventHandlers: - - event: Exit(address,address,uint256) - handler: handleExit - - event: Join(address,address,uint256) - handler: handleJoin - - event: AddAuthorization(address) - handler: handleAddAuthorization - - event: RemoveAuthorization(address) - handler: handleRemoveAuthorization - # - event: DisableContract() - # handler: handleDisableContract + # - name: EthAJoin + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: BasicCollateralJoin + # address: '{{GEB_JOIN_ETH_A}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/token/collateral-join.ts + # entities: + # - CollateralJoin + # abis: + # - name: BasicCollateralJoin + # file: ./abis/BasicCollateralJoin.json + # eventHandlers: + # - event: Exit(address,address,uint256) + # handler: handleExit + # - event: Join(address,address,uint256) + # handler: handleJoin + # - event: AddAuthorization(address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(address) + # handler: handleRemoveAuthorization + + # - event: DisableContract() + # handler: handleDisableContract - name: Coin kind: ethereum/contract network: {{NETWORK}} source: abi: Coin - address: '{{GEB_COIN}}' + address: "{{GEB_COIN}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/token/coin.ts entities: @@ -383,138 +377,138 @@ dataSources: file: ./abis/ERC20.json eventHandlers: - event: Transfer(indexed address,indexed address,uint256) - handler: handleTransfer + handler: handleTransfer - event: Approval(indexed address,indexed address,uint256) - handler: handleApproval + handler: handleApproval - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - - - name: ProtestPause - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: DSProtestPause - address: '{{GEB_PAUSE}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/governance/ds-protest-pause.ts - entities: - - DsPauseScheduledTransaction - abis: - - name: DSProtestPause - file: ./abis/DSProtestPause.json - eventHandlers: - - event: ScheduleTransaction(address,address,bytes32,bytes,uint256) - handler: handleScheduleTransaction - - event: AttachTransactionDescription(address,address,bytes32,bytes,uint256,string) - handler: handleAttachTransactionDescription - - event: ExecuteTransaction(address,address,bytes32,bytes,uint256) - handler: handleExecuteTransaction - - event: AbandonTransaction(address,address,bytes32,bytes,uint256) - handler: handleAbandonTransaction - # - event: ChangeDelayMultiplier(uint256) - # handler: handleChangeDelayMultiplier - # - event: LogNote(indexed bytes4,indexed address,indexed bytes32,indexed bytes32,uint256,bytes) - # handler: handleLogNote - # - event: LogSetAuthority(indexed address) - # handler: handleLogSetAuthority - # - event: LogSetOwner(indexed address) - # handler: handleLogSetOwner - # - event: ProtestAgainstTransaction(address,address,bytes32,bytes,uint256) - # handler: handleProtestAgainstTransaction - # - event: SetDelay(uint256) - # handler: handleSetDelay - # - event: SetProtester(address) - # handler: handleSetProtester - - - name: EthOsm - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: Osm - address: '{{FEED_SECURITY_MODULE_ETH}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/oracles/fsm.ts - entities: - - FSMUpdate - abis: - - name: Osm - file: ./abis/OSM.json - eventHandlers: - - event: UpdateResult(uint256,uint256) - handler: handleUpdateResult - - event: AddAuthorization(address) - handler: handleAddAuthorization - - event: RemoveAuthorization(address) - handler: handleRemoveAuthorization + # - name: ProtestPause + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: DSProtestPause + # address: '{{GEB_PAUSE}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/governance/ds-protest-pause.ts + # entities: + # - DsPauseScheduledTransaction - # - event: ChangeDelay(uint16) - # handler: handleChangeDelay - # - event: ChangePriceSource(address) - # handler: handleChangePriceSource - # - event: RestartValue() - # handler: handleRestartValue - # - event: Start() - # handler: handleStart - # - event: Stop() - # handler: handleStop - - - name: CoinTwap - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: CoinTwap - address: '{{MEDIANIZER_RAI}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/oracles/coinTwap.ts - entities: - - MedianizerUpdate - abis: - - name: CoinTwap - file: ./abis/ChainlinkTWAP.json - - name: UniswapV2Pair - file: ./abis/UniswapV2Pair.json - - name: EACAggregatorProxy - file: ./abis/EACAggregatorProxy.json - eventHandlers: - - event: UpdateResult(uint256) - handler: handleUpdateResult - - event: AddAuthorization(address) - handler: handleAddAuthorization - - event: RemoveAuthorization(address) - handler: handleRemoveAuthorization + # abis: + # - name: DSProtestPause + # file: ./abis/DSProtestPause.json + # eventHandlers: + # - event: ScheduleTransaction(address,address,bytes32,bytes,uint256) + # handler: handleScheduleTransaction + # - event: AttachTransactionDescription(address,address,bytes32,bytes,uint256,string) + # handler: handleAttachTransactionDescription + # - event: ExecuteTransaction(address,address,bytes32,bytes,uint256) + # handler: handleExecuteTransaction + # - event: AbandonTransaction(address,address,bytes32,bytes,uint256) + # handler: handleAbandonTransaction + # - event: ChangeDelayMultiplier(uint256) + # handler: handleChangeDelayMultiplier + # - event: LogNote(indexed bytes4,indexed address,indexed bytes32,indexed bytes32,uint256,bytes) + # handler: handleLogNote + # - event: LogSetAuthority(indexed address) + # handler: handleLogSetAuthority + # - event: LogSetOwner(indexed address) + # handler: handleLogSetOwner + # - event: ProtestAgainstTransaction(address,address,bytes32,bytes,uint256) + # handler: handleProtestAgainstTransaction + # - event: SetDelay(uint256) + # handler: handleSetDelay + # - event: SetProtester(address) + # handler: handleSetProtester - # - event: FailRewardCaller(bytes,address,uint256) - # handler: handleFailRewardCaller - # - event: ModifyParameters(bytes32,uint256) - # handler: handleModifyParameters - # - event: RewardCaller(address,uint256) - # handler: handleRewardCaller + # - name: EthOsm + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: Osm + # address: '{{FEED_SECURITY_MODULE_ETH}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/oracles/fsm.ts + # entities: + # - FSMUpdate + # abis: + # - name: Osm + # file: ./abis/OSM.json + # eventHandlers: + # - event: UpdateResult(uint256,uint256) + # handler: handleUpdateResult + # - event: AddAuthorization(address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(address) + # handler: handleRemoveAuthorization + + # - event: ChangeDelay(uint16) + # handler: handleChangeDelay + # - event: ChangePriceSource(address) + # handler: handleChangePriceSource + # - event: RestartValue() + # handler: handleRestartValue + # - event: Start() + # handler: handleStart + # - event: Stop() + # handler: handleStop + + # - name: CoinTwap + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: CoinTwap + # address: '{{MEDIANIZER_RAI}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/oracles/coinTwap.ts + # entities: + # - MedianizerUpdate + # abis: + # - name: CoinTwap + # file: ./abis/ChainlinkTWAP.json + # - name: UniswapV2Pair + # file: ./abis/UniswapV2Pair.json + # - name: EACAggregatorProxy + # file: ./abis/EACAggregatorProxy.json + # eventHandlers: + # - event: UpdateResult(uint256) + # handler: handleUpdateResult + # - event: AddAuthorization(address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(address) + # handler: handleRemoveAuthorization + + # - event: FailRewardCaller(bytes,address,uint256) + # handler: handleFailRewardCaller + # - event: ModifyParameters(bytes32,uint256) + # handler: handleModifyParameters + # - event: RewardCaller(address,uint256) + # handler: handleRewardCaller - name: GlobalSettlement kind: ethereum/contract network: {{NETWORK}} source: abi: GlobalSettlement - address: '{{GEB_GLOBAL_SETTLEMENT}}' + address: "{{GEB_GLOBAL_SETTLEMENT}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/global-settlement.ts entities: @@ -533,11 +527,11 @@ dataSources: network: {{NETWORK}} source: abi: StabilityFeeTreasury - address: '{{GEB_STABILITY_FEE_TREASURY}}' + address: "{{GEB_STABILITY_FEE_TREASURY}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/core/stability-fee-treasury.ts entities: @@ -551,105 +545,132 @@ dataSources: - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - - name: ProtocolTokenAuthority - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: ProtocolTokenAuthority - address: '{{PROTOCOL_TOKEN_AUTHORITY}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/governance/protocol-token-authority.ts - entities: - - GebAuthorization - abis: - - name: ProtocolTokenAuthority - file: ./abis/ProtocolTokenAuthority.json - eventHandlers: - - event: AddAuthorization(indexed address) - handler: handleAddAuthorization - - event: RemoveAuthorization(indexed address) - handler: handleRemoveAuthorization - # - event: SetOwner(indexed address) - # handler: handleSetOwner - # - event: SetRoot(indexed address) - # handler: handleSetRoot + # - name: ProtocolTokenAuthority + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: ProtocolTokenAuthority + # address: '{{PROTOCOL_TOKEN_AUTHORITY}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/governance/protocol-token-authority.ts + # entities: + # - GebAuthorization + # abis: + # - name: ProtocolTokenAuthority + # file: ./abis/ProtocolTokenAuthority.json + # eventHandlers: + # - event: AddAuthorization(indexed address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(indexed address) + # handler: handleRemoveAuthorization + # - event: SetOwner(indexed address) + # handler: handleSetOwner + # - event: SetRoot(indexed address) + # handler: handleSetRoot + + # - name: ProtToken + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: DSToken + # address: '{{GEB_PROT}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/token/prot-token.ts + # entities: + # - ERC20Balance + # abis: + # - name: DSToken + # file: ./abis/DSToken.json + # - name: ERC20 + # file: ./abis/ERC20.json + # eventHandlers: + # - event: Transfer(indexed address,indexed address,uint256) + # handler: handleTransfer + # - event: Approval(indexed address,indexed address,uint256) + # handler: handleApproval + # - event: Mint(indexed address,uint256) + # handler: handleMint + # - event: Burn(indexed address,uint256) + # handler: handleBurn - - name: ProtToken + - name: UniCoinPool kind: ethereum/contract network: {{NETWORK}} source: - abi: DSToken - address: '{{GEB_PROT}}' + abi: UniswapV3Pool + address: "{{GEB_COIN_UNISWAP_POOL}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript - file: ./src/mappings/modules/token/prot-token.ts + file: ./src/mappings/modules/uniswap/uniswapv3.ts entities: - - ERC20Balance + - UniswapV3Pool abis: - - name: DSToken - file: ./abis/DSToken.json - - name: ERC20 - file: ./abis/ERC20.json + - name: UniswapV3Pool + file: ./abis/UniswapV3Pool.json eventHandlers: - - event: Transfer(indexed address,indexed address,uint256) - handler: handleTransfer - - event: Approval(indexed address,indexed address,uint256) - handler: handleApproval - - event: Mint(indexed address,uint256) - handler: handleMint - - event: Burn(indexed address,uint256) - handler: handleBurn - - - name: UniCoinPool - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: UniswapV2Pair - address: '{{GEB_COIN_UNISWAP_POOL}}' - startBlock: {{STARTING_BLOCK_NUMBER}} - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/uniswap/uniswap.ts - entities: - - UniswapV2Pair - abis: - - name: UniswapV2Pair - file: ./abis/UniswapV2Pair.json - - name: ERC20 - file: ./abis/ERC20.json - eventHandlers: - - event: Sync(uint112,uint112) - handler: handleSync - - event: Swap(indexed address,uint256,uint256,uint256,uint256,indexed address) + - event: Swap(indexed address,indexed address,int256,int256,uint160,uint128,int24) handler: handleSwap - - event: Transfer(indexed address,indexed address,uint256) - handler: handleTransfer - - event: Approval(indexed address,indexed address,uint256) - handler: handleApproval - # - event: Mint(indexed address,uint256,uint256) + - event: Initialize(uint160,int24) + handler: handleInitialize + # - event: Mint(address,indexed address,indexed int24,indexed int24,uint128,uint256,uint256) # handler: handleMint - # - event: Burn(indexed address,uint256,uint256,indexed address) + # - event: Burn(indexed address,indexed int24,indexed int24,uint128,uint256,uint256) # handler: handleBurn + # - name: UniCoinPool + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: UniswapV2Pair + # address: '{{GEB_COIN_UNISWAP_POOL}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/uniswap/uniswap.ts + # entities: + # - UniswapV2Pair + # abis: + # - name: UniswapV2Pair + # file: ./abis/UniswapV2Pair.json + # - name: ERC20 + # file: ./abis/ERC20.json + # eventHandlers: + # - event: Sync(uint112,uint112) + # handler: handleSync + # - event: Swap(indexed address,uint256,uint256,uint256,uint256,indexed address) + # handler: handleSwap + # - event: Transfer(indexed address,indexed address,uint256) + # handler: handleTransfer + # - event: Approval(indexed address,indexed address,uint256) + # handler: handleApproval + # - event: Mint(indexed address,uint256,uint256) + # handler: handleMint + # - event: Burn(indexed address,uint256,uint256,indexed address) + # handler: handleBurn + - name: SurplusAuctionHouse kind: ethereum/contract network: {{NETWORK}} source: abi: SurplusAuctionHouse - address: '{{GEB_SURPLUS_AUCTION_HOUSE}}' + address: "{{GEB_SURPLUS_AUCTION_HOUSE}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/auctions/surplus-auction-houses.ts entities: @@ -659,13 +680,13 @@ dataSources: - name: SurplusAuctionHouse file: ./abis/BurningSurplusAuctionHouse.json eventHandlers: - - event: ModifyParameters(bytes32,uint256) + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) handler: handleModifyParameters - - event: IncreaseBidSize(uint256,address,uint256,uint256,uint256) + - event: IncreaseBidSize(indexed uint256,address,uint256,uint256,uint256,uint256) handler: handleIncreaseBidSize - - event: RestartAuction(uint256,uint256) + - event: RestartAuction(indexed uint256,uint256,uint256) handler: handleRestartAuction - - event: SettleAuction(indexed uint256) + - event: SettleAuction(indexed uint256,uint256,address,uint256) handler: handleSettleAuction - event: AddAuthorization(address) handler: handleAddAuthorization @@ -685,11 +706,11 @@ dataSources: network: {{NETWORK}} source: abi: DebtAuctionHouse - address: '{{GEB_DEBT_AUCTION_HOUSE}}' + address: "{{GEB_DEBT_AUCTION_HOUSE}}" startBlock: {{STARTING_BLOCK_NUMBER}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/auctions/debt-auction-house.ts entities: @@ -701,17 +722,17 @@ dataSources: - name: DebtAuctionHouse file: ./abis/DebtAuctionHouse.json eventHandlers: - - event: ModifyParameters(bytes32,uint256) - handler: handleModifyParametersUint + - event: ModifyParameters(indexed bytes32,indexed bytes32,bytes) + handler: handleModifyParameters - event: AddAuthorization(address) handler: handleAddAuthorization - event: RemoveAuthorization(address) handler: handleRemoveAuthorization - - event: DecreaseSoldAmount(indexed uint256,address,uint256,uint256,uint256) + - event: DecreaseSoldAmount(indexed uint256,address,uint256,uint256,uint256,uint256) handler: handleDecreaseSoldAmount - - event: RestartAuction(indexed uint256,uint256) + - event: RestartAuction(indexed uint256,uint256,uint256) handler: handleRestartAuction - - event: SettleAuction(indexed uint256,uint256) + - event: SettleAuction(indexed uint256,uint256,address,uint256) handler: handleSettleAuction # Remaining events: @@ -721,75 +742,224 @@ dataSources: # handler: handleDisableContract # - event: StartAuction(uint256,uint256,uint256,uint256,indexed address,uint256,uint256) # handler: handleStartAuction - # - event: TerminateAuctionPrematurely(uint256,address,address,uint256,uint256) + # - event: TerminateAuctionPrematurely(uint256,address,address,uint256,uint256) # handler: handleTerminateAuctionPrematurely - - - name: StakedTokenAuctionHouse - kind: ethereum/contract + + - kind: ethereum + name: RewardDistributor network: {{NETWORK}} source: - abi: StakedTokenAuctionHouse - address: '{{GEB_STAKING_AUCTION_HOUSE}}' - startBlock: {{STARTING_BLOCK_NUMBER}} + address: "{{REWARD_DISTRIBUTOR}}" + abi: RewardDistributor + startBlock: {{REWARD_DISTRIBUTOR_START_BLOCK}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript - file: ./src/mappings/modules/auctions/staked-tokens-auction-houses.ts + file: ./src/mappings/modules/rewards/reward-distributor.ts entities: - - EnglishAuction - - EnglishAuctionBid + - MerkleRootsUpdated + - OwnershipTransferred + - RewardSetterUpdated + - RewardsClaimed abis: - - name: StakedTokenAuctionHouse - file: ./abis/StakedTokenAuctionHouse.json + - name: RewardDistributor + file: ./abis/RewardDistributor.json eventHandlers: - - event: ModifyParameters(bytes32,uint256) - handler: handleModifyParameters - - event: StartAuction(indexed uint256,uint256,uint256,uint256,indexed address,indexed uint256,uint256) - handler: handleStartAuction - - event: IncreaseBidSize(uint256,address,uint256,uint256,uint256) - handler: handleIncreaseBidSize - - event: RestartAuction(indexed uint256,uint256,uint256) - handler: handleRestartAuction - - event: SettleAuction(indexed uint256,uint256) - handler: handleSettleAuction - - event: AddAuthorization(address) - handler: handleAddAuthorization - - event: RemoveAuthorization(address) - handler: handleRemoveAuthorization + - event: RewardDistributorMerkleRootUpdated(indexed address,bytes32,uint256) + handler: handleMerkleRootsUpdated + - event: RewardDistributorRewardClaimed(indexed address,indexed address,uint256) + handler: handleRewardsClaimed + - kind: ethereum/contract + name: StakingManager + network: {{NETWORK}} + source: + address: "{{STAKING_MANAGER}}" + abi: StakingManager + startBlock: {{STAKING_MANAGER_START_BLOCK}} + mapping: + kind: ethereum/events + apiVersion: 0.0.5 + language: wasm/assemblyscript + file: ./src/mappings/modules/staking/staking-manager.ts + entities: + - StakingUser + - StakingPosition + - PendingWithdrawal + - RewardClaim + - StakingStatistic + abis: + - name: StakingManager + file: ./abis/StakingManager.json + eventHandlers: + - event: StakingManagerStaked(indexed address,uint256) + handler: handleStakingManagerStaked + - event: StakingManagerWithdrawalInitiated(indexed address,uint256) + handler: handleStakingManagerWithdrawalInitiated + - event: StakingManagerWithdrawalCancelled(indexed address,uint256) + handler: handleStakingManagerWithdrawalCancelled + - event: StakingManagerWithdrawn(indexed address,uint256) + handler: handleStakingManagerWithdrawn + - event: StakingManagerRewardPaid(indexed address,indexed address,uint256,indexed address) + handler: handleStakingManagerRewardPaid - - name: StakingRewardsFactory - kind: ethereum/contract + - kind: ethereum/contract + name: StakingManagerHaiBoldCurveLp network: {{NETWORK}} source: - abi: StakingRewardsFactory - address: '{{GEB_INCENTIVES_MINER}}' - startBlock: {{STARTING_BLOCK_NUMBER}} + address: "{{STAKING_MANAGER_HAI_BOLD_CURVE_LP}}" + abi: StakingManager + startBlock: {{STAKING_MANAGER_HAI_BOLD_CURVE_LP_START_BLOCK}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript - file: ./src/mappings/modules/incentive/incentive-factory.ts + file: ./src/mappings/modules/staking/staking-manager-hai-bold-curve-lp.ts entities: - - IncentiveBalance - - IncentiveCampaign + - HaiBoldCurveLPStakingUser + - HaiBoldCurveLPStakingPosition + - HaiBoldCurveLPPendingWithdrawal + - HaiBoldCurveLPRewardClaim + - HaiBoldCurveLPStakingStatistic abis: - - name: StakingRewardsFactory - file: ./abis/StakingRewardsFactory.json + - name: StakingManager + file: ./abis/StakingManager.json eventHandlers: - - event: Deploy(indexed address,indexed uint256,uint256,uint256) - handler: handleDeploy - - event: AddAuthorization(address) - handler: handleAddAuthorization - - event: RemoveAuthorization(address) - handler: handleRemoveAuthorization - # - event: ModifyParameters(indexed uint256,bytes32,uint256) - # handler: handleModifyParameters - # - event: NotifyRewardAmount(indexed uint256,uint256) - # handler: handleNotifyRewardAmount + - event: StakingManagerStaked(indexed address,uint256) + handler: handleStakingManagerStaked + - event: StakingManagerWithdrawalInitiated(indexed address,uint256) + handler: handleStakingManagerWithdrawalInitiated + - event: StakingManagerWithdrawalCancelled(indexed address,uint256) + handler: handleStakingManagerWithdrawalCancelled + - event: StakingManagerWithdrawn(indexed address,uint256) + handler: handleStakingManagerWithdrawn + - event: StakingManagerRewardPaid(indexed address,indexed address,uint256,indexed address) + handler: handleStakingManagerRewardPaid + + - kind: ethereum/contract + name: StakingManagerHaiVeloVeloLp + network: {{NETWORK}} + source: + address: "{{STAKING_MANAGER_HAI_VELO_VELO_LP}}" + abi: StakingManager + startBlock: {{STAKING_MANAGER_HAI_VELO_VELO_LP_START_BLOCK}} + mapping: + kind: ethereum/events + apiVersion: 0.0.5 + language: wasm/assemblyscript + file: ./src/mappings/modules/staking/staking-manager-hai-velo-velo-lp.ts + entities: + - HaiVeloVeloLPStakingUser + - HaiVeloVeloLPStakingPosition + - HaiVeloVeloLPPendingWithdrawal + - HaiVeloVeloLPRewardClaim + - HaiVeloVeloLPStakingStatistic + abis: + - name: StakingManager + file: ./abis/StakingManager.json + eventHandlers: + - event: StakingManagerStaked(indexed address,uint256) + handler: handleStakingManagerStaked + - event: StakingManagerWithdrawalInitiated(indexed address,uint256) + handler: handleStakingManagerWithdrawalInitiated + - event: StakingManagerWithdrawalCancelled(indexed address,uint256) + handler: handleStakingManagerWithdrawalCancelled + - event: StakingManagerWithdrawn(indexed address,uint256) + handler: handleStakingManagerWithdrawn + - event: StakingManagerRewardPaid(indexed address,indexed address,uint256,indexed address) + handler: handleStakingManagerRewardPaid + + - kind: ethereum + name: WrappedToken + network: {{NETWORK}} + source: + address: "{{HAIVELO}}" + abi: WrappedToken + startBlock: {{HAIVELO_START_BLOCK}} + mapping: + kind: ethereum/events + apiVersion: 0.0.5 + language: wasm/assemblyscript + file: ./src/mappings/modules/token/wrapped-token.ts + entities: + - WrappedToken + - WrappedTokenDeposit + - WrappedTokenUserBalance + - User + abis: + - name: WrappedToken + file: ./abis/WrappedToken.json + eventHandlers: + - event: WrappedTokenDeposit(indexed address,uint256) + handler: handleWrappedTokenDeposit + - event: Transfer(indexed address,indexed address,uint256) + handler: handleTransfer + + # - name: StakedTokenAuctionHouse + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: StakedTokenAuctionHouse + # address: '{{GEB_STAKING_AUCTION_HOUSE}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/auctions/staked-tokens-auction-houses.ts + # entities: + # - EnglishAuction + # - EnglishAuctionBid + # abis: + # - name: StakedTokenAuctionHouse + # file: ./abis/StakedTokenAuctionHouse.json + # eventHandlers: + # - event: ModifyParameters(bytes32,uint256) + # handler: handleModifyParameters + # - event: StartAuction(indexed uint256,uint256,uint256,uint256,indexed address,indexed uint256,uint256) + # handler: handleStartAuction + # - event: IncreaseBidSize(uint256,address,uint256,uint256,uint256) + # handler: handleIncreaseBidSize + # - event: RestartAuction(indexed uint256,uint256,uint256) + # handler: handleRestartAuction + # - event: SettleAuction(indexed uint256,uint256) + # handler: handleSettleAuction + # - event: AddAuthorization(address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(address) + # handler: handleRemoveAuthorization + + # - name: StakingRewardsFactory + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: StakingRewardsFactory + # address: '{{GEB_INCENTIVES_MINER}}' + # startBlock: {{STARTING_BLOCK_NUMBER}} + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/incentive/incentive-factory.ts + # entities: + # - IncentiveBalance + # - IncentiveCampaign + # abis: + # - name: StakingRewardsFactory + # file: ./abis/StakingRewardsFactory.json + # eventHandlers: + # - event: Deploy(indexed address,indexed uint256,uint256,uint256) + # handler: handleDeploy + # - event: AddAuthorization(address) + # handler: handleAddAuthorization + # - event: RemoveAuthorization(address) + # handler: handleRemoveAuthorization + # - event: ModifyParameters(indexed uint256,bytes32,uint256) + # handler: handleModifyParameters + # - event: NotifyRewardAmount(indexed uint256,uint256) + # handler: handleNotifyRewardAmount templates: - - name: FixedDiscountCollateralAuctionHouse kind: ethereum/contract network: {{NETWORK}} @@ -797,7 +967,7 @@ templates: abi: FixedDiscountCollateralAuctionHouse mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyscript file: ./src/mappings/modules/auctions/discount-collateral-auction-house.ts entities: @@ -824,28 +994,28 @@ templates: # - event: TerminateAuctionPrematurely(uint256,address,uint256) # handler: handleTerminateAuctionPrematurely - - name: StakingRewards - kind: ethereum/contract - network: {{NETWORK}} - source: - abi: StakingRewards - mapping: - kind: ethereum/events - apiVersion: 0.0.4 - language: wasm/assemblyscript - file: ./src/mappings/modules/incentive/incentive.ts - entities: - - IncentiveBalance - - IncentiveCampaign - abis: - - name: StakingRewards - file: ./abis/StakingRewards.json - eventHandlers: - - event: RewardAdded(uint256) - handler: handleRewardAdded - - event: RewardPaid(indexed address,uint256) - handler: handleRewardPaid - - event: Staked(indexed address,uint256) - handler: handleStaked - - event: Withdrawn(indexed address,uint256) - handler: handleWithdrawn \ No newline at end of file + # - name: StakingRewards + # kind: ethereum/contract + # network: {{NETWORK}} + # source: + # abi: StakingRewards + # mapping: + # kind: ethereum/events + # apiVersion: 0.0.5 + # language: wasm/assemblyscript + # file: ./src/mappings/modules/incentive/incentive.ts + # entities: + # - IncentiveBalance + # - IncentiveCampaign + # abis: + # - name: StakingRewards + # file: ./abis/StakingRewards.json + # eventHandlers: + # - event: RewardAdded(uint256) + # handler: handleRewardAdded + # - event: RewardPaid(indexed address,uint256) + # handler: handleRewardPaid + # - event: Staked(indexed address,uint256) + # handler: handleStaked + # - event: Withdrawn(indexed address,uint256) + # handler: handleWithdrawn diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..cd5547b --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4339 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@5.x", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": + version "0.0.0-internal-testing.5" + resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz#060f98440f6e410812766c5b040952d2d02e2b73" + integrity sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA== + dependencies: + "@rescript/std" "9.0.0" + graphql "^16.6.0" + graphql-import-node "^0.0.5" + js-yaml "^4.1.0" + +"@graphprotocol/graph-cli@^0.61.0": + version "0.61.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.61.0.tgz#62b28e599c4a082f561d37594e34de66c4946e70" + integrity sha512-gc3+DioZ/K40sQCt6DsNvbqfPTc9ZysuSz3I9MJ++bD6SftaSSweWwfpPysDMzDuxvUAhLAsJ6QjBACPngT2Kw== + dependencies: + "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" + "@oclif/core" "2.8.6" + "@oclif/plugin-autocomplete" "^2.3.6" + "@oclif/plugin-not-found" "^2.4.0" + "@whatwg-node/fetch" "^0.8.4" + assemblyscript "0.19.23" + binary-install-raw "0.0.13" + chalk "3.0.0" + chokidar "3.5.3" + debug "4.3.4" + docker-compose "0.23.19" + dockerode "2.5.8" + fs-extra "9.1.0" + glob "9.3.5" + gluegun "5.1.2" + graphql "15.5.0" + immutable "4.2.1" + ipfs-http-client "55.0.0" + jayson "4.0.0" + js-yaml "3.14.1" + prettier "1.19.1" + request "2.88.2" + semver "7.4.0" + sync-request "6.1.0" + tmp-promise "3.0.3" + web3-eth-abi "1.7.0" + which "2.0.2" + yaml "1.10.2" + +"@graphprotocol/graph-ts@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.31.0.tgz#730668c0369828b31bef81e8d9bc66b9b48e3480" + integrity sha512-xreRVM6ho2BtolyOh2flDkNoGZximybnzUnF53zJVp0+Ed0KnAlO1/KOCUYw06euVI9tk0c9nA2Z/D5SIQV2Rg== + dependencies: + assemblyscript "0.19.10" + +"@ipld/dag-cbor@^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz#aa31b28afb11a807c3d627828a344e5521ac4a1e" + integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== + dependencies: + cborg "^1.6.0" + multiformats "^9.5.4" + +"@ipld/dag-json@^8.0.1": + version "8.0.11" + resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.11.tgz#8d30cc2dfacb0aef04d327465d3df91e79e8b6ce" + integrity sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA== + dependencies: + cborg "^1.5.4" + multiformats "^9.5.4" + +"@ipld/dag-pb@^2.1.3": + version "2.1.18" + resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.18.tgz#12d63e21580e87c75fd1a2c62e375a78e355c16f" + integrity sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg== + dependencies: + multiformats "^9.5.4" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@oclif/core@2.8.6": + version "2.8.6" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.6.tgz#7eb6984108f471ad0d719d3c07cde14c47ab17c5" + integrity sha512-1QlPaHMhOORySCXkQyzjsIsy2GYTilOw3LkjeHkCgsPJQjAT4IclVytJusWktPbYNys9O+O4V23J44yomQvnBQ== + dependencies: + "@types/cli-progress" "^3.11.0" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.8" + fs-extra "^9.1.0" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + semver "^7.3.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + ts-node "^10.9.1" + tslib "^2.5.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/core@^2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.15.0.tgz#f27797b30a77d13279fba88c1698fc34a0bd0d2a" + integrity sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA== + dependencies: + "@types/cli-progress" "^3.11.0" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.8" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + ts-node "^10.9.1" + tslib "^2.5.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/plugin-autocomplete@^2.3.6": + version "2.3.10" + resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-2.3.10.tgz#787f6208cdfe10ffc68ad89e9e7f1a7ad0e8987f" + integrity sha512-Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4.1.0" + debug "^4.3.4" + +"@oclif/plugin-not-found@^2.4.0": + version "2.4.3" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz#3d24095adb0f3876cb4bcfdfdcb775086cf6d4b5" + integrity sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4" + fast-levenshtein "^3.0.0" + +"@peculiar/asn1-schema@^2.3.8": + version "2.3.8" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz#04b38832a814e25731232dd5be883460a156da3b" + integrity sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.5.tgz#424bed6b0d133b772f5cbffd143d0468a90f40a0" + integrity sha512-oDk93QCDGdxFRM8382Zdminzs44dg3M2+E5Np+JWkpqLDyJC9DviMh8F8mEJkYuUcUOGA5jHO5AJJ10MFWdbZw== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.5" + tslib "^2.6.2" + webcrypto-core "^1.7.8" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@reflexer-finance/geb-contract-api@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@reflexer-finance/geb-contract-api/-/geb-contract-api-0.0.20.tgz#2115e1759bf6cb53e11eba3e314633d65373d10f" + integrity sha512-nUYJF+63eKd1lUF7K6bBI7f5bejFqWjz8t6V0p7DBwuOCr995c8ssaBNJp0tFl1Oc9sZPOd7djMup3VFMXkW/Q== + dependencies: + "@ethersproject/bignumber" "5.x" + "@reflexer-finance/geb-contract-base" "^0.0.12" + +"@reflexer-finance/geb-contract-base@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@reflexer-finance/geb-contract-base/-/geb-contract-base-0.0.12.tgz#5d6a7a0fac24ffa9da35183aeca6833270f9247d" + integrity sha512-6PUWeIPBFwv904I1AZna+gCHgAGEdH+qrfZs7EHirjICv9z1IWcrNvFaOpwPpIUfMKKELsk+GB9r4WAab/CKSg== + dependencies: + "@ethersproject/bignumber" "5.x" + +"@reflexer-finance/geb-ethers-provider@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@reflexer-finance/geb-ethers-provider/-/geb-ethers-provider-0.0.14.tgz#a4e92eed4b181c7f7c82137c4c530db8f7591615" + integrity sha512-eG8F0jp+xaPs4tVTvYZiHBWGWqVCsS9AcfaaAj7zP4q+WriHTgbqDGSwD6Skl/XSPWYnXsHkRkpOM+bichLSdg== + dependencies: + "@reflexer-finance/geb-contract-base" "^0.0.12" + +"@rescript/std@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" + integrity sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/bn.js@^5.1.0": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + +"@types/cli-progress@^3.11.0": + version "3.11.5" + resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" + integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== + dependencies: + "@types/node" "*" + +"@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.33": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@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 sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== + dependencies: + "@types/node" "*" + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/minimatch@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/mocha@^8.0.3": + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== + +"@types/node@*", "@types/node@>=13.7.0": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== + dependencies: + undici-types "~5.26.4" + +"@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.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@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.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/pbkdf2@^3.0.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== + dependencies: + "@types/node" "*" + +"@types/qs@^6.2.31": + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== + +"@types/secp256k1@^4.0.1": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== + dependencies: + "@types/node" "*" + +"@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" "*" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@whatwg-node/events@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" + integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== + +"@whatwg-node/fetch@^0.8.4": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" + integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.3.6" + busboy "^1.6.0" + urlpattern-polyfill "^8.0.0" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/node-fetch@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" + integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== + dependencies: + "@whatwg-node/events" "^0.0.3" + busboy "^1.6.0" + fast-querystring "^1.1.1" + fast-url-parser "^1.1.3" + tslib "^2.3.1" + +JSONStream@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + integrity sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.4.1: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + +any-signal@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" + integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.3" + +any-signal@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" + integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== + +anymatch@~3.1.1, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apisauce@^2.1.5: + version "2.1.6" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.6.tgz#94887f335bf3d735305fc895c8a191c9c2608a7f" + integrity sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg== + dependencies: + axios "^0.21.4" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +assemblyscript@0.19.10: + version "0.19.10" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.10.tgz#7ede6d99c797a219beb4fa4614c3eab9e6343c8e" + integrity sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg== + dependencies: + binaryen "101.0.0-nightly.20210723" + long "^4.0.0" + +assemblyscript@0.19.23: + version "0.19.23" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" + integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== + dependencies: + 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" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.3: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +axios@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz#057ba30f04884694993a8cd07fa394cff11c50bd" + integrity sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA== + dependencies: + follow-redirects "^1.10.0" + +axios@^0.21.1, axios@^0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binary-install-raw@0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/binary-install-raw/-/binary-install-raw-0.0.13.tgz#43a13c6980eb9844e2932eb7a91a56254f55b7dd" + integrity sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A== + dependencies: + axios "^0.21.1" + rimraf "^3.0.2" + tar "^6.1.0" + +binaryen@101.0.0-nightly.20210723: + version "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@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== + +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +blob-to-it@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb" + integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== + dependencies: + browser-readablestream-to-it "^1.0.3" + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" + integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^6.0.1, buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +call-bind@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.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 sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +cborg@^1.5.4, cborg@^1.6.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== + +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@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +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@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +clean-stack@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" + integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== + dependencies: + escape-string-regexp "4.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-progress@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.12.0.tgz#807ee14b66bcc086258e444ad0f19e7d42577942" + integrity sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== + dependencies: + string-width "^4.2.3" + +cli-spinners@^2.2.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-table3@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "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.4.0, 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== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.3: + 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== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +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== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@7.0.3, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +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" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-over-http-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" + integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== + dependencies: + debug "^4.3.1" + native-fetch "^3.0.0" + receptacle "^1.3.2" + +docker-compose@0.23.19: + version "0.23.19" + resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.19.tgz#9947726e2fe67bdfa9e8efe1ff15aa0de2e10eb8" + integrity sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g== + dependencies: + yaml "^1.10.2" + +docker-modem@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.9.tgz#a1f13e50e6afb6cf3431b2d5e7aac589db6aaba8" + integrity sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw== + dependencies: + JSONStream "1.3.2" + debug "^3.2.6" + readable-stream "~1.0.26-4" + split-ca "^1.0.0" + +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== + dependencies: + concat-stream "~1.6.2" + docker-modem "^1.0.8" + tar-fs "~1.16.3" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ejs@3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + +ejs@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-fetch@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f" + integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA== + dependencies: + encoding "^0.1.13" + +elliptic@6.5.4, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-util@^7.1.0: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethers@^5.0.17: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== + dependencies: + fastest-levenshtein "^1.0.7" + +fast-querystring@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" + integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastest-levenshtein@^1.0.7: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.10.0, follow-redirects@^1.14.0: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +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@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fs-constants@^1.0.0: + version "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.1.0, fs-extra@^9.1.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@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-4.3.1.tgz#cdfd4b64e6bfdec7c7dc55c76b39efaa7853bb20" + integrity sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ== + dependencies: + minimatch "^3.0.2" + rimraf "^2.6.3" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.1, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +geb.js@0.0.18: + version "0.0.18" + resolved "https://registry.yarnpkg.com/geb.js/-/geb.js-0.0.18.tgz#fc4b67880a6b5c40d4e3409d5714a3c49720cb76" + integrity sha512-Rh41jNd/NYdeWtX55+0ckHjMnPTuQAzJ8hjOG7Yp8OvNc46p+yTiIhsgCzh8JevRAF6aQsVV5eduMt6ystSL0w== + dependencies: + "@ethersproject/bignumber" "5.x" + "@reflexer-finance/geb-contract-api" "^0.0.20" + "@reflexer-finance/geb-contract-base" "^0.0.12" + "@reflexer-finance/geb-ethers-provider" "^0.0.14" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" + integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +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@9.3.5: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gluegun@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-5.1.2.tgz#ffa0beda0fb6bbc089a867157b08602beae2c8cf" + integrity sha512-Cwx/8S8Z4YQg07a6AFsaGnnnmd8mN17414NcPS3OoDtZRwxgsvwRNJNg69niD6fDa8oNwslCG0xH7rEpRNNE/g== + dependencies: + apisauce "^2.1.5" + app-module-path "^2.2.0" + cli-table3 "0.6.0" + colors "1.4.0" + cosmiconfig "7.0.1" + cross-spawn "7.0.3" + ejs "3.1.6" + enquirer "2.3.6" + execa "5.1.1" + fs-jetpack "4.3.1" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.lowercase "^4.3.0" + lodash.lowerfirst "^4.3.1" + lodash.pad "^4.5.1" + lodash.padend "^4.6.1" + lodash.padstart "^4.6.1" + lodash.repeat "^4.1.0" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.trim "^4.5.1" + lodash.trimend "^4.5.1" + lodash.trimstart "^4.5.1" + lodash.uppercase "^4.3.0" + lodash.upperfirst "^4.3.1" + ora "4.0.2" + pluralize "^8.0.0" + semver "7.3.5" + which "2.0.2" + yargs-parser "^21.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphql-import-node@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.5.tgz#caf76a6cece10858b14f27cce935655398fc1bf0" + integrity sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q== + +graphql@15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" + integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== + +graphql@^16.6.0: + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +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-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" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +hyperlinker@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" + integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +immutable@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" + integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +interface-datastore@^6.0.2: + version "6.1.1" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" + integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== + dependencies: + interface-store "^2.0.2" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + +interface-store@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" + integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipfs-core-types@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz#cb201ff7a9470651ba14c4e7fae56661a55bf37e" + integrity sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg== + dependencies: + interface-datastore "^6.0.2" + multiaddr "^10.0.0" + multiformats "^9.4.13" + +ipfs-core-utils@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz#8f0ec9aaa7c24f6f307e6e76e7bdc1cefd829894" + integrity sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw== + dependencies: + any-signal "^2.1.2" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-unixfs "^6.0.3" + ipfs-utils "^9.0.2" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.2" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + multiformats "^9.4.13" + nanoid "^3.1.23" + parse-duration "^1.0.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + +ipfs-http-client@55.0.0: + version "55.0.0" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz#8b713c5fa318e873b7d7ad099a4eb14320a5b0ce" + integrity sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ== + dependencies: + "@ipld/dag-cbor" "^7.0.0" + "@ipld/dag-json" "^8.0.1" + "@ipld/dag-pb" "^2.1.3" + abort-controller "^3.0.0" + any-signal "^2.1.2" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-utils "^9.0.2" + it-first "^1.0.6" + it-last "^1.0.4" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiformats "^9.4.13" + native-abort-controller "^1.0.3" + parse-duration "^1.0.0" + stream-to-it "^0.2.2" + uint8arrays "^3.0.0" + +ipfs-unixfs@^6.0.3: + version "6.0.9" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz#f6613b8e081d83faa43ed96e016a694c615a9374" + integrity sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ== + dependencies: + err-code "^3.0.1" + protobufjs "^6.10.2" + +ipfs-utils@^9.0.2: + version "9.0.14" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704" + integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg== + dependencies: + any-signal "^3.0.0" + browser-readablestream-to-it "^1.0.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^3.0.1" + is-electron "^2.2.0" + iso-url "^1.1.5" + it-all "^1.0.4" + it-glob "^1.0.1" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + nanoid "^3.1.20" + native-fetch "^3.0.0" + node-fetch "^2.6.8" + react-native-fetch-api "^3.0.0" + stream-to-it "^0.2.2" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-electron@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" + integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iso-url@^1.1.5: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + +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" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +it-all@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" + integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== + +it-first@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" + integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== + +it-glob@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" + integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== + dependencies: + "@types/minimatch" "^3.0.4" + minimatch "^3.0.4" + +it-last@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" + integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== + +it-map@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" + integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== + +it-peekable@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" + integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== + +it-to-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" + integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== + dependencies: + buffer "^6.0.3" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +jake@^10.6.1, jake@^10.8.5: + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jayson@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.0.0.tgz#145a0ced46f900934c9b307e1332bcb0c7dbdb17" + integrity sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + uuid "^8.3.2" + ws "^7.4.5" + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.14.1, js-yaml@^3.14.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.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keccak@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.lowercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" + integrity sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA== + +lodash.lowerfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d" + integrity sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w== + +lodash.pad@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" + integrity sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg== + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw== + +lodash.repeat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" + integrity sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.trim@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" + integrity sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg== + +lodash.trimend@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimend/-/lodash.trimend-4.5.1.tgz#12804437286b98cad8996b79414e11300114082f" + integrity sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA== + +lodash.trimstart@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz#8ff4dec532d82486af59573c39445914e944a7f1" + integrity sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ== + +lodash.uppercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" + integrity sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +long@^4.0.0: + version "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.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@^8.1.3: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiaddr-to-uri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz#65efe4b1f9de5f6b681aa42ff36a7c8db7625e58" + integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA== + dependencies: + multiaddr "^10.0.0" + +multiaddr@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" + integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== + dependencies: + dns-over-http-resolver "^1.2.3" + err-code "^3.0.1" + is-ip "^3.1.0" + multiformats "^9.4.5" + uint8arrays "^3.0.0" + varint "^6.0.0" + +multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.4: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +mustache@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" + integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +natural-orderby@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" + integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-fetch@^2.6.8: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-treeify@^1.1.33: + version "1.1.33" + resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" + integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.2.tgz#0e1e68fd45b135d28648b27cf08081fa6e8a297d" + integrity sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig== + dependencies: + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +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 sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== + +parse-duration@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" + integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +password-prompt@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" + integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== + dependencies: + ansi-escapes "^4.3.2" + cross-spawn "^7.0.3" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.6.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.17: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +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== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +protobufjs@^6.10.2: + version "6.11.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pvtsutils@^1.3.2, pvtsutils@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== + dependencies: + tslib "^2.6.1" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +qs@^6.4.0: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-native-fetch-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" + integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA== + dependencies: + p-defer "^3.0.0" + +readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.26-4: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +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" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== + dependencies: + esprima "~4.0.0" + +request@2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retimer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" + integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@3.0.1, scrypt-js@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver@7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" + integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.7: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +source-map-support@^0.5.17, 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@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +split-ca@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stream-to-it@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" + integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== + dependencies: + get-iterator "^1.0.2" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@8.1.1, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +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" + +tar-fs@~1.16.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +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" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +timeout-abort-controller@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz#d6a59209132e520413092dd4b4d71eaaf5887feb" + integrity sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.4" + retimer "^3.0.0" + +tmp-promise@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-node@^10.9.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-node@^9.0.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^2.0.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript@^4.0.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urlpattern-polyfill@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +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== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.2.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +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-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" + +webcrypto-core@^1.7.8: + version "1.7.8" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.8.tgz#056918036e846c72cfebbb04052e283f57f1114a" + integrity sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@2.0.2, which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@^7.4.5: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "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.10.0, yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.0.0: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==