diff --git a/.gitignore b/.gitignore index 654bb063..1fe4a343 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,9 @@ coverage deploy/*.config deploy/*.env* !deploy/.env.example +!deploy/.env.kovan-sokol +!deploy/.env.mainnet-xdai upgrade/*.env* !upgrade/.env.example coverage.json - +.env \ No newline at end of file diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index 60e364f9..00000000 --- a/deploy.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -if [ -f /.dockerenv ]; then - # the script is run within the container - cd deploy - - if [ "$1" == "token" ]; then - echo "Deployment of token for testing environment started" - node testenv-deploy.js token - elif [ "$1" == "interestReceiver" ]; then - echo "Deployment of interest receiver for testing environment started" - node testenv-deploy.js interestReceiver - else - echo "Bridge contract deployment started" - yarn run deploy - if [ -f bridgeDeploymentResults.json ]; then - cat bridgeDeploymentResults.json - echo - fi - fi - exit 0 -fi - -which docker-compose > /dev/null -if [ "$?" == "1" ]; then - echo "docker-compose is needed to use this type of deployment" - exit 1 -fi - -if [ ! -f ./deploy/.env ]; then - echo "The .env file not found in the 'deploy' directory" - exit 3 -fi - -docker-compose images bridge-contracts >/dev/null 2>/dev/null -if [ "$?" == "1" ]; then - echo "Docker image 'bridge-contracts' not found" - exit 2 -fi - -docker-compose run bridge-contracts deploy.sh "$@" diff --git a/deploy/.env.kovan-sokol b/deploy/.env.kovan-sokol new file mode 100644 index 00000000..7e3515e7 --- /dev/null +++ b/deploy/.env.kovan-sokol @@ -0,0 +1,119 @@ +# WARNING: Do not commit secrets in this file + + +# The type of bridge. Defines set of contracts to be deployed. + +BRIDGE_MODE=MULTI_AMB_ERC_TO_ERC + +# The address of the account responsible for contracts +# deployments and initial configuration. The account's balance must contain +# funds from both networks. This must be an account on the trezor +# trezorctl ethereum get-address -n "m/44'/60'/0'/0/1" +HOME_DEPLOYMENT_ACCOUNT_ADDRESS=0xcceFb7EF9956B08B69c951Ed4f4A176972F700F1 +# trezorctl ethereum get-address -n "m/44'/1'/0'/0/1" +FOREIGN_DEPLOYMENT_ACCOUNT_ADDRESS=0xE3423F92acB011F24D64154daA65247039DbffA3 + +FOREIGN_EXPLORER_URL=https://kovan.etherscan.io/api + + +# Extra gas added to the estimated gas of a particular deployment/configuration transaction +# E.g. if estimated gas returns 100000 and the parameter is 0.2, +# the transaction gas limit will be (100000 + 100000 * 0.2) = 120000 +DEPLOYMENT_GAS_LIMIT_EXTRA=0.2 +# The "gasPrice" parameter set in every deployment/configuration transaction on +# Home network (in Wei). +HOME_DEPLOYMENT_GAS_PRICE=1200000000 +HOME_GAS_PRICE=1200000000 +# The "gasPrice" parameter set in every deployment/configuration transaction on +# Foreign network (in Wei). +FOREIGN_DEPLOYMENT_GAS_PRICE=1200000000 +# The timeout limit to wait for receipt of the deployment/configuration +# transaction. +GET_RECEIPT_INTERVAL_IN_MILLISECONDS=3000 + +# The RPC channel to a Home node able to handle deployment/configuration +# transactions. +HOME_RPC_URL=https://sokol.poa.network/ +HOME_CHAIN_ID=77 +HOME_KEY_DERIVATION_PATH="m/44'/60'/0'/0" +HOME_EXPLORER_URL=https://blockscout.com/poa/sokol/api + +# Address on Home network with permissions to change parameters of the bridge contract. +# For extra security we recommended using a multi-sig wallet contract address here. +HOME_BRIDGE_OWNER=0xcceFb7EF9956B08B69c951Ed4f4A176972F700F1 +# Address on Home network with permissions to upgrade the bridge contract +HOME_UPGRADEABLE_ADMIN=0xcceFb7EF9956B08B69c951Ed4f4A176972F700F1 +# The default daily transaction limit in Wei. As soon as this limit is exceeded, any +# transaction which requests to relay assets will fail. +HOME_DAILY_LIMIT=30000000000000000000000000 +# The default maximum limit for one transaction in Wei. If a single transaction tries to +# relay funds exceeding this limit it will fail. HOME_MAX_AMOUNT_PER_TX must be +# less than HOME_DAILY_LIMIT. +HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000 +# The default minimum limit for one transaction in Wei. If a transaction tries to relay +# funds below this limit it will fail. This is required to prevent dryout +# validator accounts. +HOME_MIN_AMOUNT_PER_TX=500000000000000000 + +# The RPC channel to a Foreign node able to handle deployment/configuration +# transactions. +FOREIGN_RPC_URL=https://kovan.infura.io/ +FOREIGN_CHAIN_ID=42 +FOREIGN_KEY_DERIVATION_PATH="m/44'/1'/0'/0" +# Address on Foreign network with permissions to change parameters of the bridge contract. +# For extra security we recommended using a multi-sig wallet contract address here. +FOREIGN_BRIDGE_OWNER=0xE3423F92acB011F24D64154daA65247039DbffA3 +# Address on Foreign network with permissions to upgrade the bridge contract and the +# bridge validator contract. +FOREIGN_UPGRADEABLE_ADMIN=0xE3423F92acB011F24D64154daA65247039DbffA3 +# The default daily limit in Wei. As soon as this limit is exceeded, any transaction +# requesting to relay assets will fail. +FOREIGN_DAILY_LIMIT=15000000000000000000000000 +# The default maximum limit per one transaction in Wei. If a transaction tries to relay +# funds exceeding this limit it will fail. FOREIGN_MAX_AMOUNT_PER_TX must be less +# than FOREIGN_DAILY_LIMIT. +FOREIGN_MAX_AMOUNT_PER_TX=750000000000000000000000 +# The default minimum limit for one transaction in Wei. If a transaction tries to relay +# funds below this limit it will fail. +FOREIGN_MIN_AMOUNT_PER_TX=500000000000000000 + +# The address of the existing AMB bridge in the Home network that will be used to pass messages +# to the Foreign network. +HOME_AMB_BRIDGE=0xFe446bEF1DbF7AFE24E81e05BC8B271C1BA9a560 +# The address of the existing AMB bridge in the Foreign network that will be used to pass messages +# to the Home network. +FOREIGN_AMB_BRIDGE=0xfe446bef1dbf7afe24e81e05bc8b271c1ba9a560 +# The gas limit that will be used in the execution of the message passed to the mediator contract +# in the Foreign network. +HOME_MEDIATOR_REQUEST_GAS_LIMIT=2000000 +# The gas limit that will be used in the execution of the message passed to the mediator contract +# in the Home network. +FOREIGN_MEDIATOR_REQUEST_GAS_LIMIT=2000000 + +# Variable to define whether to collect fee on bridge transfers +# On this bridge mode only BOTH_DIRECTIONS is supported, leave false to disable fees collection +HOME_REWARDABLE=false +# On this this bridge mode, fees collection on home side is not supported, should be false. +FOREIGN_REWARDABLE=false + +# Fee to be taken for every transaction directed from the Home network to the Foreign network +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +# e.g. 0.1% fee +HOME_TRANSACTIONS_FEE=0.001 +# Fee to be taken for every transaction directed from the Foreign network to the Home network +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +# e.g. 0.1% fee +FOREIGN_TRANSACTIONS_FEE=0.001 + +# List of accounts where rewards should be transferred in Home network separated by space without quotes +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +#E.g. HOME_MEDIATOR_REWARD_ACCOUNTS=0x 0x 0x +HOME_MEDIATOR_REWARD_ACCOUNTS=0xcceFb7EF9956B08B69c951Ed4f4A176972F700F1 + +# address of an already deployed PermittableToken contract that will be used as an implementation for all new created tokens +# leave empty, if you want to deploy a new PermittableToken for further usage +HOME_ERC677_TOKEN_IMAGE=0x769Aed9d3F34f320010fa31cd04Fe3bAD8700033 + +BRIDGE_UTILS_ON_HOME_ADDRESS=0x3BBAD838bd46692583CF811884d3CDcD7cb65045 +FOREIGN_ALLOW_TOKEN_LIST=0xd6E34821F508e4247Db359CFceE0cb5e8050972a,0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa + diff --git a/deploy/.env.mainnet-xdai b/deploy/.env.mainnet-xdai new file mode 100644 index 00000000..bdfadefc --- /dev/null +++ b/deploy/.env.mainnet-xdai @@ -0,0 +1,114 @@ +# WARNING: Do not commit secrets in this file + +# The type of bridge. Defines set of contracts to be deployed. + +BRIDGE_MODE=MULTI_AMB_ERC_TO_ERC + +# The address of the account responsible for contracts +# deployments and initial configuration. The account's balance must contain +# funds from both networks. This must be an account on the trezor +HOME_DEPLOYMENT_ACCOUNT_ADDRESS=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d +FOREIGN_DEPLOYMENT_ACCOUNT_ADDRESS=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d + +FOREIGN_EXPLORER_URL=https://api.etherscan.io/api + +# Extra gas added to the estimated gas of a particular deployment/configuration transaction +# E.g. if estimated gas returns 100000 and the parameter is 0.2, +# the transaction gas limit will be (100000 + 100000 * 0.2) = 120000 +DEPLOYMENT_GAS_LIMIT_EXTRA=0.2 +# The "gasPrice" parameter set in every deployment/configuration transaction on +# Home network (in Wei). +HOME_DEPLOYMENT_GAS_PRICE=1000000000 +HOME_GAS_PRICE=1000000000 +# The "gasPrice" parameter set in every deployment/configuration transaction on +# Foreign network (in Wei). +FOREIGN_DEPLOYMENT_GAS_PRICE=181000000000 +# The timeout limit to wait for receipt of the deployment/configuration +# transaction. +GET_RECEIPT_INTERVAL_IN_MILLISECONDS=3000 + +# The RPC channel to a Home node able to handle deployment/configuration +# transactions. +HOME_RPC_URL=https://rpc.xdaichain.com/ +HOME_CHAIN_ID=100 +HOME_KEY_DERIVATION_PATH="m/44'/60'/0'/0" +HOME_EXPLORER_URL=https://blockscout.com/poa/xdai/api + +# Address on Home network with permissions to change parameters of the bridge contract. +# For extra security we recommended using a multi-sig wallet contract address here. +HOME_BRIDGE_OWNER=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d +# Address on Home network with permissions to upgrade the bridge contract +HOME_UPGRADEABLE_ADMIN=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d +# The default daily transaction limit in Wei. As soon as this limit is exceeded, any +# transaction which requests to relay assets will fail. +HOME_DAILY_LIMIT=30000000000000000000000000 +# The default maximum limit for one transaction in Wei. If a single transaction tries to +# relay funds exceeding this limit it will fail. HOME_MAX_AMOUNT_PER_TX must be +# less than HOME_DAILY_LIMIT. +HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000 +# The default minimum limit for one transaction in Wei. If a transaction tries to relay +# funds below this limit it will fail. This is required to prevent dryout +# validator accounts. +HOME_MIN_AMOUNT_PER_TX=500000000000000000 + +# The RPC channel to a Foreign node able to handle deployment/configuration +# transactions. +FOREIGN_RPC_URL=https://mainnet.infura.io +FOREIGN_CHAIN_ID=1 +FOREIGN_KEY_DERIVATION_PATH="m/44'/60'/0'/0" +# Address on Foreign network with permissions to change parameters of the bridge contract. +# For extra security we recommended using a multi-sig wallet contract address here. +FOREIGN_BRIDGE_OWNER=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d +# Address on Foreign network with permissions to upgrade the bridge contract and the +# bridge validator contract. +FOREIGN_UPGRADEABLE_ADMIN=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d +# The default daily limit in Wei. As soon as this limit is exceeded, any transaction +# requesting to relay assets will fail. +FOREIGN_DAILY_LIMIT=15000000000000000000000000 +# The default maximum limit per one transaction in Wei. If a transaction tries to relay +# funds exceeding this limit it will fail. FOREIGN_MAX_AMOUNT_PER_TX must be less +# than FOREIGN_DAILY_LIMIT. +FOREIGN_MAX_AMOUNT_PER_TX=750000000000000000000000 +# The default minimum limit for one transaction in Wei. If a transaction tries to relay +# funds below this limit it will fail. +FOREIGN_MIN_AMOUNT_PER_TX=500000000000000000 + +# The address of the existing AMB bridge in the Home network that will be used to pass messages +# to the Foreign network. +HOME_AMB_BRIDGE=0x75Df5AF045d91108662D8080fD1FEFAd6aA0bb59 +# The address of the existing AMB bridge in the Foreign network that will be used to pass messages +# to the Home network. +FOREIGN_AMB_BRIDGE=0x4C36d2919e407f0Cc2Ee3c993ccF8ac26d9CE64e +# The gas limit that will be used in the execution of the message passed to the mediator contract +# in the Foreign network. +HOME_MEDIATOR_REQUEST_GAS_LIMIT=2000000 +# The gas limit that will be used in the execution of the message passed to the mediator contract +# in the Home network. +FOREIGN_MEDIATOR_REQUEST_GAS_LIMIT=2000000 + +# Variable to define whether to collect fee on bridge transfers +# On this bridge mode only BOTH_DIRECTIONS is supported, leave false to disable fees collection +HOME_REWARDABLE=false +# On this this bridge mode, fees collection on home side is not supported, should be false. +FOREIGN_REWARDABLE=false + +# Fee to be taken for every transaction directed from the Home network to the Foreign network +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +# e.g. 0.1% fee +HOME_TRANSACTIONS_FEE=0.001 +# Fee to be taken for every transaction directed from the Foreign network to the Home network +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +# e.g. 0.1% fee +FOREIGN_TRANSACTIONS_FEE=0.001 + +# List of accounts where rewards should be transferred in Home network separated by space without quotes +# Makes sense only when HOME_REWARDABLE=BOTH_DIRECTIONS +#E.g. HOME_MEDIATOR_REWARD_ACCOUNTS=0x 0x 0x +HOME_MEDIATOR_REWARD_ACCOUNTS=0xA06C2B0b8a2EECA46eac0ca6Cc958Dc94101dC5d + +# address of an already deployed PermittableToken contract that will be used as an implementation for all new created tokens +# leave empty, if you want to deploy a new PermittableToken for further usage +HOME_ERC677_TOKEN_IMAGE= + +BRIDGE_UTILS_ON_HOME_ADDRESS=0xa79206F956461e053DbCF33ADDFa77553Df58D7F +FOREIGN_ALLOW_TOKEN_LIST=0x954b890704693af242613edEf1B603825afcD708,0x6B175474E89094C44Da98b954EedeAC495271d0F diff --git a/deploy/bridgeDeploymentResults.json.kovan-sokol b/deploy/bridgeDeploymentResults.json.kovan-sokol new file mode 100644 index 00000000..4c9521a2 --- /dev/null +++ b/deploy/bridgeDeploymentResults.json.kovan-sokol @@ -0,0 +1,12 @@ +{ + "homeBridge": { + "homeBridgeMediator": { + "address": "0xf9906aD189CC61d0158Cbc770cFB726a084bc6e0" + } + }, + "foreignBridge": { + "foreignBridgeMediator": { + "address": "0x97bB40dB0fb70eeb4e2121B6d708BD91ec4D1a43" + } + } +} \ No newline at end of file diff --git a/deploy/src/deploymentUtils.js b/deploy/src/deploymentUtils.js index fede0256..1ca909cb 100644 --- a/deploy/src/deploymentUtils.js +++ b/deploy/src/deploymentUtils.js @@ -52,14 +52,6 @@ async function deployContract(contractJson, args, { network, nonce }) { nonce }) - if (apiUrl) { - let constructorArguments - if (args.length) { - constructorArguments = result.substring(contractJson.bytecode.length) - } - await verifier({ artifact: contractJson, constructorArguments, address: tx.contractAddress, apiUrl, apiKey }) - } - return instance } @@ -117,7 +109,7 @@ async function sendRawTx({ data, nonce, to, from, url, gasPrice, value }) { const provider = getWeb3Provider(url) - console.log('Signing transaction…') + console.log('Signing transaction…', { rawTx }) const signedTransaction = await provider.eth.signTransaction(rawTx) const txHash = await sendNodeRequest(url, 'eth_sendRawTransaction', signedTransaction.raw) diff --git a/deploy/upgradePermittableTokenImage.js b/deploy/upgradePermittableTokenImage.js index 0fe40c41..d5c3ca47 100644 --- a/deploy/upgradePermittableTokenImage.js +++ b/deploy/upgradePermittableTokenImage.js @@ -8,24 +8,21 @@ const { homeContracts: { ERC677BridgeTokenPermittable, HomeMultiAMBErc20ToErc677 } } = require('./src/loadContracts') -const { HOME_DEPLOYMENT_ACCOUNT_ADDRESS, HOME_MEDIATOR_ADDRESS, HOME_TOKENS_TO_UPGRADE } = env +const { HOME_DEPLOYMENT_ACCOUNT_ADDRESS } = env + +const { + homeBridge: { + homeBridgeMediator: { address: homeProxyAddress } + } +} = require('./bridgeDeploymentResults.json') async function upgradePermittableTokenImage() { console.log('\n[Home] Deploying new ERC677 token image from ', HOME_DEPLOYMENT_ACCOUNT_ADDRESS) - - const homeMediator = new web3Home.eth.Contract(HomeMultiAMBErc20ToErc677.abi, HOME_MEDIATOR_ADDRESS) - - assert.strictEqual( - await homeMediator.methods.owner().call(), - HOME_DEPLOYMENT_ACCOUNT_ADDRESS, - 'This operation must be peformed by the owner of the home mediator' - ) - + console.log(` Home mediator: ${homeProxyAddress}`) let nonce = await web3Home.eth.getTransactionCount(HOME_DEPLOYMENT_ACCOUNT_ADDRESS) + console.log(` Nonce: ${nonce}`) - const chainId = await web3Home.eth.getChainId() - assert.strictEqual(chainId > 0, true, 'Invalid chain ID') - const erc677token = await deployContract(ERC677BridgeTokenPermittable, ['', '', 0, chainId], { + const erc677token = await deployContract(ERC677BridgeTokenPermittable, ['', '', 0], { from: HOME_DEPLOYMENT_ACCOUNT_ADDRESS, nonce }) @@ -37,29 +34,13 @@ async function upgradePermittableTokenImage() { nonce++ console.log('[Home] Setting the token image to the implementation') + const homeMediator = new web3Home.eth.Contract(HomeMultiAMBErc20ToErc677.abi, homeProxyAddress) await homeMediator.methods.setTokenImage(homeTokenImage).send({ from: HOME_DEPLOYMENT_ACCOUNT_ADDRESS, nonce }) - nonce++ - - const homeTokenList = HOME_TOKENS_TO_UPGRADE.split(',').map(a => a.trim()) - // eslint-disable-next-line no-restricted-syntax - for (const homeTokenAddress of homeTokenList) { - console.log('[Home] upgrading metadata of token ', homeTokenAddress) - const token = new web3Home.eth.Contract(ERC677BridgeTokenPermittable.abi, homeTokenAddress) - const migrateData = await token.methods - .migrateTokenMetadata() - .send({ from: HOME_DEPLOYMENT_ACCOUNT_ADDRESS, nonce }) - - console.log('New symbol', await token.methods.symbol().call()) - console.log('New name', await token.methods.name().call()) - - nonce++ - } - console.log('success') } diff --git a/hardhat.config.js b/hardhat.config.js index 3c282c5b..3618bc99 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -2,6 +2,8 @@ require('@nomiclabs/hardhat-truffle5') require('hardhat-contract-sizer') require('hardhat-gas-reporter') require('solidity-coverage') +require('@nomiclabs/hardhat-etherscan') +require('hardhat-tracer') /** * @type import('hardhat/config').HardhatUserConfig @@ -19,9 +21,21 @@ module.exports = { networks: { localhost: { url: 'http://localhost:8545' + }, + kovan: { + url: process.env.KOVAN_RPC_URL || 'https://kovan.infura.io' + }, + sokol: { + url: process.env.SOKOL_RPC_URL || 'https://sokol.poa.network/' } }, gasReporter: { enabled: !!process.env.GASREPORT + }, + etherscan: { + apiKey: { + kovan: process.env.FOREIGN_EXPLORER_API_KEY, + sokol: 'This just has to be any non-empty string' + } } } diff --git a/package.json b/package.json index 1e026354..c73b1671 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,20 @@ "coverage": "./node_modules/.bin/hardhat coverage", "contract-size": "{ ./node_modules/.bin/hardhat size-contracts | tee /dev/fd/3 | grep -q 'exceed the size limit for mainnet deployment' && exit 1; } 3>&1 || echo 'All contracts within size limit'", "deploy:smoketest": "yarn run compile && env HARDHAT_NETWORK=localhost node ./deploy/setupMocks.js && env DOTENV_CONFIG_PATH=./.env.test DOTENV_CONFIG_DEBUG=true yarn run deploy", - "deploy": "node -r dotenv/config deploy/deploy.js" + "deploy": "node -r dotenv/config deploy/deploy.js", + "deploy:kovan-sokol": "env DOTENV_CONFIG_PATH=deploy/.env.kovan-sokol yarn run deploy", + "start-forked-node": "./node_modules/.bin/hardhat node --fork $FORK_RPC_URL --fork-block-number $FORK_BLOCK_NUMBER", + "start-forked-node:sokol": "env FORK_BLOCK_NUMBER=$SOKOL_FORK_BLOCK_NUMBER FORK_RPC_URL=https://sokol.poa.network HARDHAT_FORKING=sokol yarn start-forked-node" }, "author": "POA network", "license": "GPL-3.0-only", "dependencies": { + "@nomiclabs/hardhat-etherscan": "^3.1.0", "@nomiclabs/hardhat-truffle5": "^2.0.5", "@truffle/hdwallet-provider": "^2.0.4", "hardhat-contract-sizer": "^2.5.0", "hardhat-gas-reporter": "^1.0.8", + "hardhat-tracer": "^1.1.0-rc.6", "openzeppelin-solidity": "1.12.0", "solidity-coverage": "^0.7.20", "trezor-cli-wallet-provider": "^1.0.7", diff --git a/upgrade/.env.kovan-sokol b/upgrade/.env.kovan-sokol new file mode 100644 index 00000000..817a32a3 --- /dev/null +++ b/upgrade/.env.kovan-sokol @@ -0,0 +1,21 @@ +# WARNING: Do not commit secrets in this file + +FOREIGN_RPC_URL=https://kovan.infura.io +FOREIGN_DEPLOYMENT_ACCOUNT_ADDRESS=0xE3423F92acB011F24D64154daA65247039DbffA3 +FOREIGN_BRIDGE_PROXY_STORAGE_ADDRESS=0x366b4cc64D30849568af65522De3a68ea6CC78cE +FOREIGN_GAS_PRICE=1200000000 +NEW_FOREIGN_BRIDGE_MEDIATOR_IMPLEMENTATION=0x5860a10E9Fee2de1a754e3362bE226a84cc49317 +FOREIGN_CURRENT_VERSION=2 +FOREIGN_NEW_VERSION=3 +FOREIGN_CHAIN_ID=42 +FOREIGN_KEY_DERIVATION_PATH="m/44'/1'/0'/0" + +HOME_RPC_URL=https://sokol.poa.network +HOME_DEPLOYMENT_ACCOUNT_ADDRESS=0xcceFb7EF9956B08B69c951Ed4f4A176972F700F1 +HOME_BRIDGE_PROXY_STORAGE_ADDRESS=0x16a80598DD2f143CFBf091638CE3fB02c9135528 +HOME_GAS_PRICE=1200000000 +NEW_HOME_BRIDGE_MEDIATOR_IMPLEMENTATION=0x6224923c8B34C5CE226a31Bbc3661B1BF2fE0227 +HOME_CURRENT_VERSION=2 +HOME_NEW_VERSION=3 +HOME_CHAIN_ID=77 +HOME_KEY_DERIVATION_PATH="m/44'/60'/0'/0" diff --git a/upgrade/src/upgradeBridgeOnForeign.js b/upgrade/src/upgradeBridgeOnForeign.js index 437c53ca..82e01575 100644 --- a/upgrade/src/upgradeBridgeOnForeign.js +++ b/upgrade/src/upgradeBridgeOnForeign.js @@ -1,7 +1,8 @@ require('dotenv').config() const Web3 = require('web3') const TrezorWalletProvider = require('trezor-cli-wallet-provider') -const proxyAbi = require('../../build/contracts/EternalStorageProxy').abi +const proxyAbi = require('../../artifacts/contracts/upgradeability/EternalStorageProxy.sol/EternalStorageProxy.json') + .abi const { FOREIGN_RPC_URL, @@ -17,7 +18,8 @@ const { const foreignProvider = new TrezorWalletProvider(FOREIGN_RPC_URL, { chainId: FOREIGN_CHAIN_ID, - derivationPathPrefix: FOREIGN_KEY_DERIVATION_PATH + derivationPathPrefix: FOREIGN_KEY_DERIVATION_PATH, + numberOfAccounts: 5 }) const web3 = new Web3(foreignProvider) @@ -36,7 +38,7 @@ const upgradeBridgeOnForeign = async () => { ) } - console.log(`Attempting upgrade to ${FOREIGN_NEW_VERSION}`) + console.log(`Attempting upgrade to ${FOREIGN_NEW_VERSION} (${NEW_FOREIGN_BRIDGE_MEDIATOR_IMPLEMENTATION})`) console.log('Sending upgrade transaction from', FOREIGN_DEPLOYMENT_ACCOUNT_ADDRESS) const upgradeCall = proxy.methods.upgradeTo(FOREIGN_NEW_VERSION, NEW_FOREIGN_BRIDGE_MEDIATOR_IMPLEMENTATION) diff --git a/upgrade/src/upgradeBridgeOnHome.js b/upgrade/src/upgradeBridgeOnHome.js index 671066de..3fe43cdb 100644 --- a/upgrade/src/upgradeBridgeOnHome.js +++ b/upgrade/src/upgradeBridgeOnHome.js @@ -1,7 +1,8 @@ require('dotenv').config() const Web3 = require('web3') const TrezorWalletProvider = require('trezor-cli-wallet-provider') -const proxyAbi = require('../../build/contracts/EternalStorageProxy').abi +const proxyAbi = require('../../artifacts/contracts/upgradeability/EternalStorageProxy.sol/EternalStorageProxy.json') + .abi const { HOME_RPC_URL, @@ -17,7 +18,8 @@ const { const homeProvider = new TrezorWalletProvider(HOME_RPC_URL, { chainId: HOME_CHAIN_ID, - derivationPathPrefix: HOME_KEY_DERIVATION_PATH + derivationPathPrefix: HOME_KEY_DERIVATION_PATH, + numberOfAccounts: 5 }) const web3 = new Web3(homeProvider) @@ -36,7 +38,7 @@ const upgradeBridgeOnHome = async () => { ) } - console.log(`Attempting upgrade to ${HOME_NEW_VERSION}`) + console.log(`Attempting upgrade to ${HOME_NEW_VERSION} (${NEW_HOME_BRIDGE_MEDIATOR_IMPLEMENTATION})`) console.log('Sending upgrade transaction from', HOME_DEPLOYMENT_ACCOUNT_ADDRESS) const upgradeCall = proxy.methods.upgradeTo(HOME_NEW_VERSION, NEW_HOME_BRIDGE_MEDIATOR_IMPLEMENTATION) diff --git a/yarn.lock b/yarn.lock index f2b33522..79e46a02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -271,6 +271,21 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" +"@ethersproject/abi@5.6.4", "@ethersproject/abi@^5.6.3": + version "5.6.4" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.4.tgz#f6e01b6ed391a505932698ecc0d9e7a99ee60362" + integrity sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" @@ -286,6 +301,19 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/abstract-provider@5.6.1", "@ethersproject/abstract-provider@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz#02ddce150785caf0c77fe036a0ebfcee61878c59" + integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.3" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" + "@ethersproject/abstract-provider@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" @@ -299,6 +327,17 @@ "@ethersproject/transactions" "^5.6.0" "@ethersproject/web" "^5.6.0" +"@ethersproject/abstract-signer@5.6.2", "@ethersproject/abstract-signer@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz#491f07fc2cbd5da258f46ec539664713950b0b33" + integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/abstract-signer@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" @@ -310,6 +349,17 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" +"@ethersproject/address@5.6.1", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.1.tgz#ab57818d9aefee919c5721d28cd31fd95eff413d" + integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" @@ -321,6 +371,13 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.0" +"@ethersproject/base64@5.6.1", "@ethersproject/base64@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.1.tgz#2c40d8a0310c9d1606c2c37ae3092634b41d87cb" + integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/base64@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" @@ -328,6 +385,23 @@ dependencies: "@ethersproject/bytes" "^5.6.0" +"@ethersproject/basex@5.6.1", "@ethersproject/basex@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.1.tgz#badbb2f1d4a6f52ce41c9064f01eab19cc4c5305" + integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/bignumber@5.6.2", "@ethersproject/bignumber@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.2.tgz#72a0717d6163fab44c47bcc82e0c550ac0315d66" + integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + bn.js "^5.2.1" + "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" @@ -337,6 +411,13 @@ "@ethersproject/logger" "^5.6.0" bn.js "^4.11.9" +"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" + integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== + dependencies: + "@ethersproject/logger" "^5.6.0" + "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.0.tgz#81652f2a0e04533575befadce555213c11d8aa20" @@ -344,6 +425,13 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/constants@5.6.1", "@ethersproject/constants@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.1.tgz#e2e974cac160dd101cf79fdf879d7d18e8cb1370" + integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" @@ -351,6 +439,36 @@ dependencies: "@ethersproject/bignumber" "^5.6.0" +"@ethersproject/contracts@5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.2.tgz#20b52e69ebc1b74274ff8e3d4e508de971c287bc" + integrity sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g== + dependencies: + "@ethersproject/abi" "^5.6.3" + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.2" + +"@ethersproject/hash@5.6.1", "@ethersproject/hash@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.1.tgz#224572ea4de257f05b4abf8ae58b03a67e99b0f4" + integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" @@ -365,6 +483,51 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/hdnode@5.6.2", "@ethersproject/hdnode@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.2.tgz#26f3c83a3e8f1b7985c15d1db50dc2903418b2d2" + integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/json-wallets@5.6.1", "@ethersproject/json-wallets@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz#3f06ba555c9c0d7da46756a12ac53483fe18dd91" + integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.6.1", "@ethersproject/keccak256@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.1.tgz#b867167c9b50ba1b1a92bccdd4f2d6bd168a91cc" + integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + js-sha3 "0.8.0" + "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" @@ -373,11 +536,18 @@ "@ethersproject/bytes" "^5.6.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": +"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== +"@ethersproject/networks@5.6.4", "@ethersproject/networks@^5.6.3": + version "5.6.4" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.4.tgz#51296d8fec59e9627554f5a8a9c7791248c8dc07" + integrity sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ== + dependencies: + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.0.tgz#486d03fff29b4b6b5414d47a232ded09fe10de5e" @@ -385,13 +555,63 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": +"@ethersproject/pbkdf2@5.6.1", "@ethersproject/pbkdf2@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz#f462fe320b22c0d6b1d72a9920a3963b09eb82d1" + integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" + +"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/providers@5.6.8": + version "5.6.8" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" + integrity sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/base64" "^5.6.1" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.3" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.6.1", "@ethersproject/random@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.1.tgz#66915943981bcd3e11bbd43733f5c3ba5a790255" + integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/rlp@5.6.1", "@ethersproject/rlp@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.1.tgz#df8311e6f9f24dcb03d59a2bac457a28a4fe2bd8" + integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" @@ -400,6 +620,27 @@ "@ethersproject/bytes" "^5.6.0" "@ethersproject/logger" "^5.6.0" +"@ethersproject/sha2@5.6.1", "@ethersproject/sha2@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.1.tgz#211f14d3f5da5301c8972a8827770b6fd3e51656" + integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.6.2", "@ethersproject/signing-key@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.2.tgz#8a51b111e4d62e5a62aee1da1e088d12de0614a3" + integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/signing-key@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" @@ -412,6 +653,27 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/solidity@5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.1.tgz#5845e71182c66d32e6ec5eefd041fca091a473e2" + integrity sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/strings@5.6.1", "@ethersproject/strings@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.1.tgz#dbc1b7f901db822b5cafd4ebf01ca93c373f8952" + integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" @@ -421,6 +683,21 @@ "@ethersproject/constants" "^5.6.0" "@ethersproject/logger" "^5.6.0" +"@ethersproject/transactions@5.6.2", "@ethersproject/transactions@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.2.tgz#793a774c01ced9fe7073985bb95a4b4e57a6370b" + integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" @@ -436,6 +713,47 @@ "@ethersproject/rlp" "^5.6.0" "@ethersproject/signing-key" "^5.6.0" +"@ethersproject/units@5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.1.tgz#ecc590d16d37c8f9ef4e89e2005bda7ddc6a4e6f" + integrity sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/wallet@5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.2.tgz#cd61429d1e934681e413f4bc847a5f2f87e3a03c" + integrity sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/json-wallets" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/web@5.6.1", "@ethersproject/web@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.1.tgz#6e2bd3ebadd033e6fe57d072db2b69ad2c9bdf5d" + integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== + dependencies: + "@ethersproject/base64" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/web@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" @@ -447,6 +765,17 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/wordlists@5.6.1", "@ethersproject/wordlists@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.1.tgz#1e78e2740a8a21e9e99947e47979d72e130aeda1" + integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -498,6 +827,22 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nomiclabs/hardhat-etherscan@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.0.tgz#7137554862b3b1c914f1b1bf110f0529fd2dec53" + integrity sha512-JroYgfN1AlYFkQTQ3nRwFi4o8NtZF7K/qFR2dxDUgHbCtIagkUseca9L4E/D2ScUm4XT40+8PbCdqZi+XmHyQA== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@ethersproject/address" "^5.0.2" + cbor "^5.0.2" + chalk "^2.4.2" + debug "^4.1.1" + fs-extra "^7.0.1" + lodash "^4.17.11" + semver "^6.3.0" + table "^6.8.0" + undici "^5.4.0" + "@nomiclabs/hardhat-truffle5@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.5.tgz#28a4c33a0ebbca3e48f50e12824a3a94ed557916" @@ -1078,6 +1423,16 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.6.1, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -1259,6 +1614,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +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-eventemitter@^0.2.2, async-eventemitter@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" @@ -1377,12 +1737,17 @@ bcrypt-pbkdf@^1.0.0: 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== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bignumber.js@*, bignumber.js@^9.0.0: +bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== @@ -1441,6 +1806,11 @@ bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +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== + body-parser@1.19.2, body-parser@^1.16.0: version "1.19.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" @@ -1732,6 +2102,14 @@ catering@^2.0.0, catering@^2.1.0: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== +cbor@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + chai-as-promised@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" @@ -3407,6 +3785,42 @@ ethers@^4.0.0-beta.1, ethers@^4.0.32, ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" +ethers@^5.6.1: + version "5.6.9" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.9.tgz#4e12f8dfcb67b88ae7a78a9519b384c23c576a4d" + integrity sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA== + dependencies: + "@ethersproject/abi" "5.6.4" + "@ethersproject/abstract-provider" "5.6.1" + "@ethersproject/abstract-signer" "5.6.2" + "@ethersproject/address" "5.6.1" + "@ethersproject/base64" "5.6.1" + "@ethersproject/basex" "5.6.1" + "@ethersproject/bignumber" "5.6.2" + "@ethersproject/bytes" "5.6.1" + "@ethersproject/constants" "5.6.1" + "@ethersproject/contracts" "5.6.2" + "@ethersproject/hash" "5.6.1" + "@ethersproject/hdnode" "5.6.2" + "@ethersproject/json-wallets" "5.6.1" + "@ethersproject/keccak256" "5.6.1" + "@ethersproject/logger" "5.6.0" + "@ethersproject/networks" "5.6.4" + "@ethersproject/pbkdf2" "5.6.1" + "@ethersproject/properties" "5.6.0" + "@ethersproject/providers" "5.6.8" + "@ethersproject/random" "5.6.1" + "@ethersproject/rlp" "5.6.1" + "@ethersproject/sha2" "5.6.1" + "@ethersproject/signing-key" "5.6.2" + "@ethersproject/solidity" "5.6.1" + "@ethersproject/strings" "5.6.1" + "@ethersproject/transactions" "5.6.2" + "@ethersproject/units" "5.6.1" + "@ethersproject/wallet" "5.6.2" + "@ethersproject/web" "5.6.1" + "@ethersproject/wordlists" "5.6.1" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -4098,6 +4512,13 @@ hardhat-gas-reporter@^1.0.8: eth-gas-reporter "^0.2.24" sha1 "^1.1.1" +hardhat-tracer@^1.1.0-rc.6: + version "1.1.0-rc.6" + resolved "https://registry.yarnpkg.com/hardhat-tracer/-/hardhat-tracer-1.1.0-rc.6.tgz#963f9058a2e1ca7f1dac19d8b00ab2c2e556a1f4" + integrity sha512-u1d8YpyYBCj/7xVMPDxsx+H1gBaothk/XNLeTYuEmxC6WmVMEwVjpdnmTYZiRQ2ntUfwSIjwKhDkLOqewBqaQA== + dependencies: + ethers "^5.6.1" + hardhat@^2.9.1: version "2.9.1" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.9.1.tgz#f69f82bb4d98e28744584779483caa7c5cfbde8b" @@ -4870,6 +5291,11 @@ json-schema-traverse@^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-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" @@ -5219,6 +5645,11 @@ lodash.sum@^4.0.2: resolved "https://registry.yarnpkg.com/lodash.sum/-/lodash.sum-4.0.2.tgz#ad90e397965d803d4f1ff7aa5b2d0197f3b4637b" integrity sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -5761,6 +6192,11 @@ nodemon@^2.0.15: undefsafe "^2.0.5" update-notifier "^5.1.0" +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -6579,7 +7015,7 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.0: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -6752,7 +7188,7 @@ scrypt-js@2.0.4: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -6996,6 +7432,15 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +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" + solc@0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" @@ -7158,7 +7603,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, 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== @@ -7338,6 +7783,17 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +table@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + tar@^4.0.2: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" @@ -7617,6 +8073,11 @@ undici@^4.14.1: resolved "https://registry.yarnpkg.com/undici/-/undici-4.16.0.tgz#469bb87b3b918818d3d7843d91a1d08da357d5ff" integrity sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw== +undici@^5.4.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.8.0.tgz#dec9a8ccd90e5a1d81d43c0eab6503146d649a4f" + integrity sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q== + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -8316,7 +8777,6 @@ web3-provider-engine@16.0.3: web3-provider-engine@habdelra/web3-provider-engine: version "16.0.1" - uid d9e5d9545c1af75124ca027bce5aaa84a3c4fda4 resolved "https://codeload.github.com/habdelra/web3-provider-engine/tar.gz/d9e5d9545c1af75124ca027bce5aaa84a3c4fda4" dependencies: async "^2.5.0" @@ -8683,6 +9143,11 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" +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@^3.0.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"