diff --git a/test/mainnet/abis/matic/RootChain.json b/test/mainnet/abis/matic/RootChain.json new file mode 100644 index 00000000..f132cff4 --- /dev/null +++ b/test/mainnet/abis/matic/RootChain.json @@ -0,0 +1,383 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "headerBlockId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "end", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "root", + "type": "bytes32" + } + ], + "name": "NewHeaderBlock", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "headerBlockId", + "type": "uint256" + } + ], + "name": "ResetHeaderBlock", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "CHAINID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VOTE_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "_nextHeaderBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "currentHeaderBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLastChildBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "headerBlocks", + "outputs": [ + { + "internalType": "bytes32", + "name": "root", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "end", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "heimdallId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "networkId", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "string", + "name": "_heimdallId", + "type": "string" + } + ], + "name": "setHeimdallId", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "setNextHeaderBlock", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "slash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256[3][]", + "name": "sigs", + "type": "uint256[3][]" + } + ], + "name": "submitCheckpoint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sigs", + "type": "bytes" + } + ], + "name": "submitHeaderBlock", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "numDeposits", + "type": "uint256" + } + ], + "name": "updateDepositId", + "outputs": [ + { + "internalType": "uint256", + "name": "depositId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] \ No newline at end of file diff --git a/test/mainnet/matic.test.ts b/test/mainnet/matic.test.ts new file mode 100644 index 00000000..2fee5e72 --- /dev/null +++ b/test/mainnet/matic.test.ts @@ -0,0 +1,596 @@ +import hre, { ethers } from 'hardhat' +import { + TenderToken, IMatic, TenderFarm, EIP173Proxy, Matic, ERC20, TenderSwap, Audius, LiquidityPoolToken +} from '../../typechain' +import { getCurrentBlockTimestamp } from '../util/evm' + +import rootChainAbi from './abis/matic/RootChain.json' + +import chai from 'chai' +import { + solidity +} from 'ethereum-waffle' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' +import { Deployment } from 'hardhat-deploy/dist/types' +import { BigNumber } from '@ethersproject/bignumber' +import { Contract, ContractTransaction } from '@ethersproject/contracts' + +import { Signer } from '@ethersproject/abstract-signer' +import { percOf2, sharesToTokens } from '../util/helpers' +import { buildsubmitCheckpointPaylod, getBlockHeader } from '../util/matic_mainnet_helpers' +const MerkleTree = require('../util/merkle-tree') +const ethUtils = require('ethereumjs-util') + +chai.use(solidity) +const { + expect +} = chai + +describe('Matic Mainnet Fork Test', () => { + let MaticStaking: IMatic + let MaticToken: ERC20 + let Tenderizer: Matic + let TenderToken: TenderToken + let TenderSwap: TenderSwap + let LpToken: LiquidityPoolToken + let TenderFarm: TenderFarm + + let Matic: {[name: string]: Deployment} + + let signers: SignerWithAddress[] + let deployer: string + + let withdrawAmount: BigNumber + + let tx: ContractTransaction + const lockID = 0 + const protocolFeesPercent = ethers.utils.parseEther('0.025') + const liquidityFeesPercent = ethers.utils.parseEther('0.025') + + const acceptableDelta = 2 + + const EXCHAGE_RATE_PERCEISON = BigNumber.from(10).pow(29) + + before('get signers', async () => { + const namedAccs = await hre.getNamedAccounts() + signers = await ethers.getSigners() + + deployer = namedAccs.deployer + }) + + const STEAK_AMOUNT = '10000000' + const NODE = '0xaC1D6c20cE7F1fBF1915eFc0898D188b9C6A5CeD' // Validator share address + const stakeManagerAddr = '0x5e3ef299fddf15eaa0432e6e66473ace8c13d908' + const rootChainAddr = '0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287' + const childChainURL = 'https://matic-mainnet.chainstacklabs.com' + + const maticHolder = '0x2f7e209e0F5F645c7612D7610193Fe268F118b28' + let maticHolderSinger: Signer + + const nodeSignerAddr = '0x7b5000af8ab69fd59eb0d4f5762bff57c9c04385' + // TODO: Move to another file + const otherSignersAddr = [ + '0xb79fad4ca981472442f53d16365fdf0305ffd8e9', + '0xf0245f6251bef9447a08766b9da2b07b28ad80b0', + '0x7c7379531b2aee82e4ca06d4175d13b9cbeafd49', + '0x1ca971963bdb4ba2bf337c90660674acff5beb3f', + '0x4f856f79f54592a48c8a1a1fafa1b0a3ac053f99', + '0xbdbd4347b082d9d6bdf2da4555a37ce52a2e2120', + '0xc6869257205e20c2a43cb31345db534aecb49f6e', + '0xe77bbfd8ed65720f187efdd109e38d75eaca7385', + '0x742d13f0b2a19c823bdd362b16305e4704b97a38', + '0xbc6044f4a1688d8b8596a9f7d4659e09985eebe6', + '0x959c65b72147faf3450d8b50a0de57e72ffc5e0d', + '0x5b106f49f30620a07b4fbdcebb1e08b70499c851', + '0xe4cd4c302befddf3d544301369ae3ed1481652fd', + '0x5fe93ddf4490a02257bef079f2498650c97c44de', + '0x8e9700392f9246a6c5b32ee3ecef586f156ed683', + '0xb2dd091ea6e591d62f565d7a18ce2a7640add227', + '0x10ad27a96cdbffc90ab3b83bf695911426a69f5e', + '0x448aa1665fe1fae6d1a00a9209ea62d7dcd81a4b', + '0xc35649ae99be820c7b200a0add09b96d7032d232', + '0x25c32fd6ed7b84435a222084ef3fdbb36252b8de', + '0x5973918275c01f50555d44e92c9d9b353cadad54', + '0x4923de87853e95751a87eafe957a88a564387dac', + '0xb702f1c9154ac9c08da247a8e30ee6f2f3373f41', + '0xeb4f2a75cac4bbcb4d71c252e4cc80eb80bb3a34', + '0x00856730088a5c3191bd26eb482e45229555ce57', + '0xe63727cb2b3a8d6e3a2d1df4990f441938b67a34', + '0x73d378cfeaa5cbe8daed64128ebdc91322aa586b', + '0x28c0d4328520ed7e8657de141eee74a954b07c1f', + '0x7e8024132d07e3e69c9bc2012dffe300b9c5807d', + '0x9c56f33b968f83922bccf6d7689b9c883af9de49', + '0x127685d6dd6683085da4b6a041efcef1681e5c9c', + '0xb8bb158b93c94ed35c1970d610d1e2b34e26652c', + '0x7fcd58c2d53d980b247f1612fdba93e9a76193e6', + '0x02f70172f7f490653665c9bfac0666147c8af1f5', + '0xa3bf7e661822fcc4f2129e93096cbb70dce6d3c9', + '0x6237b2af1238d12248630ce21aa84f0952122232', + '0xf84c74dea96df0ec22e11e7c33996c73fcc2d822', + '0x951c881cab59ed669915a2b04ea5721600794ec3', + '0x30dd252c7c150f26a3a06e4eada9e706db3fa58c', + '0x055bd801ca712b4ddf67db8bc23fb6c8510d52b9', + '0xcdfc898128dbc380a60895c6e8c0975dc07d07e0', + '0x1d25c827abd466387bda00b429fe728627d6eee6', + '0x85517022e380408b698ea0ea379d2b69f907c199', + '0x98c27cc3f0301b6272049dc3f972e2f542780629', + '0x414b4b5a2a0e303b89360eda83598ab7702eae04', + '0x72f93a2740e00112d5f2cef404c0aa16fae21fa4', + '0xe87d858ca83ffc1e8372b57b2d4f8aaaf8156f19', + '0x6a654ca3bfb5cfb23bf30bafbf96b3b6ec26bb0e', + '0x160cdef60e786295728a6ea334c091238e474e01', + '0x42eefcda06ead475cde3731b8eb138e88cd0bac3', + '0x54fab55f18248690264769ef9c0b3c30b8344b8e', + '0x43c7c14d94197a30a44dab27bfb3eee9e05496d4', + '0xe05ae0e76f582817c9e31d9c1a5c02287a31d689', + '0xe05ae0e76f582817c9e31d9c1a5c02287a31d689', + '0x2c74ca71679cf1299936d6104d825c965448907b', + '0x0306b7d3095ab008927166cd648a8ca7dbe53f05', + '0x13dc53fa54e7d662ff305b6c3ef95090c31dc576', + '0x1a578699956c2174b4762de95316b3ad09ba34e9', + '0x48aff66a7a9ce3b8fc4f62c80604bc310edf94cd', + '0xd93622443da1f3e81cde6e2c0e482b4d8084251a', + '0x6b2ed7e4b12a544ca7d215fed85dc16240d64aea', + '0x8cb120478e9503760656c1fcac9c1539158bdb55', + '0xc74d21957b34e4b9bae50e436a2581bd81ed581d', + '0x90b11143a0cb64e067402307bc7f2276dcec8250', + '0xe296cf6511ab951e026c620fb0e266db4d6de4a0', + '0xde8da1ee512529b6c61fe7c769affc160308dea2', + '0x55cc129dad4df3771a37770c6c0a469ff51918c8', + '0x0208652a93baf5f1962849efcf5795eac7439a5e', + '0xb0695fe376b48a3f39040ebbb2192e919c6b8aba', + '0x406c3fef5969b36231bd573adfc34e16f54d23e0', + '0xef46d5fe753c988606e6f703260d816af53b03eb', + '0x62fb676db64f87fd1602048106476c6036d44c92', + '0x4df34fac8313dcd3442064b90e22129ad82b5103', + '0x13a9d78f4712a65678d7735682819b4f4f74253c', + '0x26c80cc193b27d73d2c40943acec77f4da2c5bd8', + '0x62bc6a92f4a4d0f5b4e16967b88db2d9e196c9f9', + '0x28247de2d9829f3080899749b92e34959c06b59c', + '0xa5a2c0eef6ee3e4b0bf79e0c9378d101d3cbec13', + '0x8bbf92f4da9be0478464a077f582abd7b6df193c', + '0x91935751ba30494c4fd276adcf134ecd66f8eca6', + '0xd56fbe3294ea4d73cca99ff8751ce7bd9b688cd5', + '0xd48611f40a37623bbcf9f047b8538177d879bad0', + '0x959a4d857b7071c38878beb9dc77051b5fed1dfd', + '0x3a9df5dfcb4cc102ce20d40434a2b1baca9eafd3', + '0xddc6f0e66a442632f6c4fbf9eacf363170ee2916', + '0x168b2779146ba862b04ca146385645eddb9d592e', + '0x2a998cc0bb43dc510e523fe33c8f1c04bf607a1e', + '0x30523527aced0ed2f5ce1721086d1d282d3af38f', + '0xb5cb4fdb37e9fe8d7b8f473268128dfb4f862f4f', + '0x374c87b673409e13053dbd35ebe868be42beabc5', + '0xea7755c8fca76e6c1ecba0c678c5694ad8a85292', + '0x3aeb7722c208c8f35fef5ec4f2ebf887beb59360', + '0x18f371aeee4e2636df789931c9cd43e5d7b72d66', + '0x00b69ba135b496b7f17fdfcd50d48b86bb397be6', + '0x77ee14d1a9ba7130b686b736a316b5bf1d3ccb36' + ] + + const testTimeout = 120000 + + before('deploy Livepeer Tenderizer', async function () { + this.timeout(testTimeout) + // Fork from mainnet + await hre.network.provider.request({ + method: 'hardhat_reset', + params: [{ + forking: { + blockNumber: 13222135, + jsonRpcUrl: process.env.ALCHEMY_URL || 'https://eth-mainnet.alchemyapi.io/v2/s93KFT7TnttkCPdNS2Fg_HAoCpP6dEda' + } + }] + }) + + process.env.NAME = 'Matic' + process.env.SYMBOL = 'MATIC' + process.env.CONTRACT = stakeManagerAddr + process.env.TOKEN = '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0' + process.env.VALIDATOR = NODE + process.env.BFACTORY = '0x9424B1412450D0f8Fc2255FAf6046b98213B76Bd' + process.env.B_SAFEMATH = '0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc' + process.env.B_RIGHTS_MANAGER = '0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc' + process.env.B_SMART_POOL_MANAGER = '0xA3F9145CB0B50D907930840BB2dcfF4146df8Ab4' + process.env.STEAK_AMOUNT = STEAK_AMOUNT + + await hre.network.provider.request({ + method: 'hardhat_impersonateAccount', + params: [maticHolder] + }) + maticHolderSinger = await ethers.provider.getSigner(maticHolder) + + // Transfer some ETH to matic Holder + const ETHHolder = '0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8' + await hre.network.provider.request({ + method: 'hardhat_impersonateAccount', + params: [ETHHolder] + }) + await hre.web3.eth.sendTransaction({ from: ETHHolder, to: maticHolder, value: ethers.utils.parseEther('10').toString() }) + + // Transfer some MATIC + MaticToken = (await ethers.getContractAt('ERC20', process.env.TOKEN)) as ERC20 + await MaticToken.connect(maticHolderSinger).transfer(deployer, ethers.utils.parseEther(process.env.STEAK_AMOUNT).mul(2)) + + MaticStaking = (await ethers.getContractAt('IMatic', process.env.VALIDATOR)) as IMatic + + Matic = await hre.deployments.fixture(['Matic'], { + keepExistingDeployments: false + }) + + Tenderizer = (await ethers.getContractAt('Audius', Matic.Matic.address)) as Matic + TenderToken = (await ethers.getContractAt('TenderToken', await Tenderizer.tenderToken())) as TenderToken + TenderSwap = (await ethers.getContractAt('TenderSwap', await Tenderizer.tenderSwap())) as TenderSwap + TenderFarm = (await ethers.getContractAt('TenderFarm', await Tenderizer.tenderFarm())) as TenderFarm + LpToken = (await ethers.getContractAt('LiquidityPoolToken', await TenderSwap.lpToken())) as LiquidityPoolToken + await Tenderizer.setProtocolFee(protocolFeesPercent) + await Tenderizer.setLiquidityFee(liquidityFeesPercent) + + + // Deposit initial stake + await MaticToken.approve(Tenderizer.address, initialStake) + await Tenderizer.deposit(initialStake, { gasLimit: 500000 }) + // Add initial liquidity + await MaticToken.approve(TenderSwap.address, initialStake) + await TenderToken.approve(TenderSwap.address, initialStake) + const lpTokensOut = await TenderSwap.calculateTokenAmount([initialStake, initialStake], true) + await TenderSwap.addLiquidity([initialStake, initialStake], lpTokensOut, (await getCurrentBlockTimestamp()) + 1000) + await LpToken.approve(TenderFarm.address, lpTokensOut) + await TenderFarm.farm(lpTokensOut) + }) + + const initialStake = ethers.utils.parseEther(STEAK_AMOUNT).div('2') + + const deposit = ethers.utils.parseEther('100') + + describe('deposit', () => { + it('reverts because transfer amount exceeds allowance', async () => { + await expect(Tenderizer.deposit(deposit)).to.be.reverted + }) + + describe('deposits funds succesfully', async () => { + before(async () => { + await MaticToken.approve(Tenderizer.address, deposit) + tx = await Tenderizer.deposit(deposit) + }) + + it('increases TenderToken supply', async () => { + expect(await TenderToken.totalSupply()).to.eq(deposit.add(initialStake)) + }) + + it('increases Tenderizer principle', async () => { + expect(await Tenderizer.currentPrincipal()).to.eq(deposit.add(initialStake)) + }) + + it('increases TenderToken balance of depositor', async () => { + expect(await TenderToken.balanceOf(deployer)).to.eq(deposit) + }) + + it('emits Deposit event from tenderizer', async () => { + expect(tx).to.emit(Tenderizer, 'Deposit').withArgs(deployer, deposit) + }) + }) + }) + + describe('stake', () => { + let stakeBefore: BigNumber + before(async () => { + // Exchange rate would be 1 at this point, so can simply comapre the shares + stakeBefore = await MaticStaking.balanceOf(Tenderizer.address) + tx = await Tenderizer.claimRewards() + }) + + it('bond succeeds', async () => { + expect(await MaticStaking.balanceOf(Tenderizer.address)).to.eq(initialStake.add(deposit)) + }) + + it('emits Stake event from tenderizer', async () => { + expect(tx).to.emit(Tenderizer, 'Stake').withArgs(NODE, initialStake.add(deposit)) + }) + }) + + describe('rebase', () => { + describe('stake increased', () => { + let increase: BigNumber + let newStakeMinusFees: BigNumber + let newStake: BigNumber + const swappedLPTRewards = ethers.BigNumber.from('0') // TODO: Add test with ETH->LPT Swap + const totalShares: BigNumber = ethers.utils.parseEther('1') + const percDiv = ethers.utils.parseEther('1') + + before(async function () { + this.timeout(testTimeout * 2) + const sharesBefore = await MaticStaking.balanceOf(Tenderizer.address) + let exRate = await MaticStaking.exchangeRate() + const stakeBefore = sharesBefore.mul(exRate).div(EXCHAGE_RATE_PERCEISON) + + const rootChain = new ethers.Contract(rootChainAddr, rootChainAbi, ethers.provider) + // Impersonate ownner + const signers = [] + await hre.network.provider.request({ + method: 'hardhat_impersonateAccount', + params: [nodeSignerAddr] + }) + const nodeOwner = await ethers.provider.getSigner(nodeSignerAddr) + signers.push(nodeOwner) + + // Impersonate other signers + for (let i = 0; i < otherSignersAddr.length; i++) { + await hre.network.provider.request({ + method: 'hardhat_impersonateAccount', + params: [otherSignersAddr[i]] + }) + signers.push(await ethers.provider.getSigner(otherSignersAddr[i])) + } + + // Get block data from root chain + const childWeb3 = new ethers.providers.JsonRpcProvider(childChainURL) + const lastChildBlock = (await rootChain.getLastChildBlock()).toNumber() + // Get only 10 blocks from child chian + const start = lastChildBlock + 1 + const end = lastChildBlock + 11 + const headers = [] + for (let i = start; i <= end; i++) { + const block = await childWeb3.getBlock(i) + block.number = i + headers.push(getBlockHeader(block)) + } + + const tree = new MerkleTree(headers) + const root = ethUtils.bufferToHex(tree.getRoot()) + // Build data + const { data, sigs } = await buildsubmitCheckpointPaylod( + nodeSignerAddr, + start, + end, + root, + signers, + { + getSigs: true, + allValidators: true, + rewardsRootHash: ethers.constants.HashZero, // Changed from '' + totalStake: 1, + sigPrefix: '' + } + ) + // Submit block data + await rootChain.connect(nodeOwner).submitCheckpoint(data, sigs) + + const sharesAfter = await MaticStaking.balanceOf(Tenderizer.address) + exRate = await MaticStaking.exchangeRate() + const stakeAfter = sharesAfter.mul(exRate).div(EXCHAGE_RATE_PERCEISON) + increase = stakeAfter.sub(stakeBefore) + console.log(increase) + const liquidityFees = percOf2(increase.add(swappedLPTRewards), liquidityFeesPercent) + const protocolFees = percOf2(increase.add(swappedLPTRewards), protocolFeesPercent) + newStake = deposit.add(initialStake).add(increase) + newStakeMinusFees = newStake.add(swappedLPTRewards).sub(liquidityFees.add(protocolFees)) + tx = await Tenderizer.claimRewards() + }) + + it('updates currentPrincipal', async () => { + expect(await Tenderizer.currentPrincipal()).to.eq(newStakeMinusFees) + }) + + // it('increases tendertoken balances when rewards are added', async () => { + // // account 0 + // const shares = await TenderToken.sharesOf(deployer) + // totalShares = await TenderToken.getTotalShares() + // expect(await TenderToken.balanceOf(deployer)).to.eq(sharesToTokens(shares, totalShares, await TenderToken.totalSupply())) + // }) + + // it('increases the tenderToken balance of the AMM', async () => { + // const shares = await TenderToken.sharesOf(BPool.address) + // expect(await TenderToken.balanceOf(BPool.address)).to.eq(sharesToTokens(shares, totalShares, await TenderToken.totalSupply())) + // }) + + // it('changes the weights of the AMM', async () => { + // const tBal = await TenderToken.balanceOf(BPool.address) + // const bal = await MaticToken.balanceOf(BPool.address) + + // const acceptableDelta = ethers.BigNumber.from('100') + + // const expected = tBal.mul(percDiv).div(tBal.add(bal)) + // const actual = await BPool.getNormalizedWeight(TenderToken.address) + // expect(actual.sub(expected).abs()).to.be.lte(acceptableDelta) + // }) + + // it('should emit RewardsClaimed event from Tenderizer', async () => { + // expect(tx).to.emit(Tenderizer, 'RewardsClaimed') + // .withArgs(increase.add(swappedLPTRewards), newStakeMinusFees, deposit.add(initialStake)) + // }) + }) + }) + + // describe('collect fees', () => { + // let fees: BigNumber + // let ownerBalBefore: BigNumber + + // before(async () => { + // fees = await Tenderizer.pendingFees() + // ownerBalBefore = await TenderToken.balanceOf(deployer) + // tx = await Controller.collectFees() + // }) + + // it('should reset pendingFees', async () => { + // expect(await Tenderizer.pendingFees()).to.eq(ethers.constants.Zero) + // }) + + // it('should increase tenderToken balance of owner', async () => { + // expect(await TenderToken.balanceOf(deployer)).to.eq(ownerBalBefore.add(fees)) + // }) + + // it('should emit ProtocolFeeCollected event from Tenderizer', async () => { + // expect(tx).to.emit(Tenderizer, 'ProtocolFeeCollected').withArgs(fees) + // }) + // }) + + // describe('collect liquidity fees', () => { + // let fees: BigNumber + // let farmBalanceBefore: BigNumber + // let mockTenderFarm : SignerWithAddress + + // before(async () => { + // mockTenderFarm = signers[3] + // fees = await Tenderizer.pendingLiquidityFees() + // farmBalanceBefore = await TenderToken.balanceOf(mockTenderFarm.address) + // tx = await Controller.collectLiquidityFees() + // }) + + // it('should reset pendingFees', async () => { + // expect(await Tenderizer.pendingLiquidityFees()).to.eq(ethers.constants.Zero) + // }) + + // it('should increase tenderToken balance of tenderFarm', async () => { + // expect(await TenderToken.balanceOf(mockTenderFarm.address)).to.eq(farmBalanceBefore.add(fees)) + // }) + + // it('should emit ProtocolFeeCollected event from Tenderizer', async () => { + // expect(tx).to.emit(Tenderizer, 'LiquidityFeeCollected').withArgs(fees) + // }) + // }) + + // describe('swap against ESP', () => { + // it('swaps tenderToken for Token', async () => { + // const amount = deposit.div(2) + // const lptBalBefore = await MaticToken.balanceOf(deployer) + + // const tenderBal = await BPool.getBalance(TenderToken.address) + // const lptBal = await BPool.getBalance(MaticToken.address) + // const tenderWeight = await BPool.getDenormalizedWeight(TenderToken.address) + // const lptWeight = await BPool.getDenormalizedWeight(MaticToken.address) + // const swapFee = await BPool.getSwapFee() + // const expOut = await BPool.calcOutGivenIn( + // tenderBal, + // tenderWeight, + // lptBal, + // lptWeight, + // amount, + // swapFee + // ) + + // await TenderToken.approve(BPool.address, amount) + // await BPool.swapExactAmountIn( + // TenderToken.address, + // amount, + // MaticToken.address, + // ethers.constants.One, // TODO: set proper value + // ethers.utils.parseEther('10') // TODO: set proper value + // ) + + // const lptBalAfter = await MaticToken.balanceOf(deployer) + // expect(lptBalAfter.sub(lptBalBefore)).to.eq(expOut) + // }) + // }) + + // describe('unlock', async () => { + // let delBefore: BigNumber + // before(async () => { + // withdrawAmount = await TenderToken.balanceOf(deployer) + // delBefore = await LivepeerStaking.pendingStake(Tenderizer.address, MAX_ROUND) + // tx = await Controller.connect(signers[0]).unlock(withdrawAmount) + // }) + + // it('unbond() succeeds', async () => { + // expect(delBefore.sub(await LivepeerStaking.pendingStake(Tenderizer.address, MAX_ROUND))).to.eq(withdrawAmount) + // }) + + // it('reduces TenderToken Balance', async () => { + // // lte to account for any roundoff error in tokenToShare calcualtion during burn + // expect(await TenderToken.balanceOf(deployer)).to.lte(acceptableDelta) + // }) + + // it('should create unstakeLock on Tenderizer', async () => { + // const lock = await Tenderizer.unstakeLocks(lockID) + // expect(lock.account).to.eq(deployer) + // expect(lock.amount).to.eq(withdrawAmount) + // }) + + // it('should create unstakeLock on Livepeer', async () => { + // const lock = await bondingManager.getDelegatorUnbondingLock(Tenderizer.address, lockID) + // expect(lock.amount).to.eq(withdrawAmount) + // }) + + // it('should emit Unstake event from Tenderizer', async () => { + // expect(tx).to.emit(Tenderizer, 'Unstake').withArgs(deployer, NODE, withdrawAmount, lockID) + // }) + // }) + + // describe('withdraw', async () => { + // let lptBalBefore : BigNumber + + // it('reverts if wihtdraw() reverts - unbond period not complete', async () => { + // await expect(Controller.withdraw(lockID)).to.be.reverted + // }) + + // // TODO: Change to before, but can't increase max timeout on before() + // it('wihtdraw() succeeeds - unstake lock is deleted', async () => { + // // Mine blocks for 7 rounds (withdraw period) + // const roundLength = await roundsManager.roundLength() + // for (let i = 0; i < 7; i++) { + // for (let j = 0; j < roundLength; j++) { + // await hre.ethers.provider.send('evm_mine', []) + // } + // await roundsManager.connect(maticHolderSinger).initializeRound() + // } + // lptBalBefore = await MaticToken.balanceOf(deployer) + // tx = await Controller.withdraw(lockID) + // }).timeout(testTimeout) // Set high timeout for test, to mine 7 rounds + + // it('should delete unstakeLock on Livepeer', async () => { + // const lock = await bondingManager.getDelegatorUnbondingLock(Tenderizer.address, lockID) + // expect(lock.amount).to.eq(0) + // }) + + // it('increases LPT balance', async () => { + // expect(await MaticToken.balanceOf(deployer)).to.eq(lptBalBefore.add(withdrawAmount)) + // }) + + // it('should delete unstakeLock', async () => { + // const lock = await Tenderizer.unstakeLocks(lockID) + // expect(lock.account).to.eq(ethers.constants.AddressZero) + // expect(lock.amount).to.eq(0) + // }) + + // it('should emit Withdraw event from Tenderizer', async () => { + // expect(tx).to.emit(Tenderizer, 'Withdraw').withArgs(deployer, withdrawAmount, lockID) + // }) + // }) + + // describe('upgrade', () => { + // let proxy: EIP173Proxy + // let newTenderizer:any + // let beforeBalance: BigNumber + // before(async () => { + // proxy = (await ethers.getContractAt('EIP173Proxy', Livepeer.Livepeer_Proxy.address)) as EIP173Proxy + // beforeBalance = await Tenderizer.currentPrincipal() + // const newFac = await ethers.getContractFactory('Livepeer', signers[0]) + // newTenderizer = await newFac.deploy() + // }) + + // it('upgrade tenderizer', async () => { + // await hre.network.provider.request({ + // method: 'hardhat_impersonateAccount', + // params: [Controller.address] + // } + // ) + + // const signer = await ethers.provider.getSigner(Controller.address) + + // expect(await proxy.connect(signer).upgradeTo(newTenderizer.address, { gasLimit: 400000, gasPrice: 0 })).to.emit( + // proxy, + // 'ProxyImplementationUpdated' + // ).withArgs(Livepeer.Livepeer_Implementation.address, newTenderizer.address) + + // await hre.network.provider.request({ + // method: 'hardhat_stopImpersonatingAccount', + // params: [Controller.address] + // } + // ) + // }) + +// it('current principal still matches', async () => { +// const newPrincipal = await Tenderizer.currentPrincipal() +// expect(newPrincipal).to.equal(beforeBalance) +// }) +// }) +}) diff --git a/test/util/helpers.ts b/test/util/helpers.ts index 87e40d00..26888f4d 100644 --- a/test/util/helpers.ts +++ b/test/util/helpers.ts @@ -1,5 +1,9 @@ import { ethers, BigNumber } from 'ethers' +import { ConsoleLogger } from 'ts-generator/dist/logger' import { PERC_DIVISOR } from './constants' +const ethUtils = require('ethereumjs-util') +const Buffer = require('safe-buffer').Buffer +const BN = ethUtils.BN export function sharesToTokens (shares: BigNumber, totalShares: BigNumber, totalTokens: BigNumber): BigNumber { if (totalShares.eq(0)) { @@ -38,4 +42,4 @@ export async function asyncForEach ( export function getSighash (iface: ethers.utils.Interface, name: string) { return ethers.utils.Interface.getSighash(iface.getFunction(name)) -} +} \ No newline at end of file diff --git a/test/util/matic_mainnet_helpers.ts b/test/util/matic_mainnet_helpers.ts new file mode 100644 index 00000000..11f06b52 --- /dev/null +++ b/test/util/matic_mainnet_helpers.ts @@ -0,0 +1,63 @@ +import { ethers } from 'ethers' +const ethUtils = require('ethereumjs-util') +const Buffer = require('safe-buffer').Buffer +const BN = ethUtils.BN + +export async function getSigs (wallets: any, votedata: any) { + // avoid any potential side effects + const copyWallets = [...wallets] + + copyWallets.sort((w1, w2) => { + return w1._address.localeCompare(w2._address) + }) + + const h = Buffer.from(votedata) + + const signed = [] + for (let i = 0; i < copyWallets.length; i++) { + signed.push(await copyWallets[i].provider.getSigner().signMessage(h)) + } + return signed +} + +export async function encodeSigsForCheckpoint (sigs = []) { + const encodedSigs = [] + for (let i = 0; i < sigs.length; i++) { + const buffer = Buffer.from((sigs[i] as string).slice(2), 'hex') + encodedSigs.push([ + ethers.BigNumber.from(buffer.slice(0, 32)), + ethers.BigNumber.from(buffer.slice(32, 64)), + ethers.BigNumber.from(buffer.slice(64, 96)) + ]) + } + return encodedSigs +} + +export async function buildsubmitCheckpointPaylod ( + proposer: string, + start: number, + end: number, + root: any, + wallets: any[], + options = { rewardsRootHash: '', allValidators: false, getSigs: false, totalStake: 1, sigPrefix: '' } // false vars are to show expected vars +) { + const validators = wallets + const abiCoder = new ethers.utils.AbiCoder() + + const data = abiCoder.encode( + ['address', 'uint256', 'uint256', 'bytes32', 'bytes32', 'uint256'], + [proposer, start, end, root, options.rewardsRootHash, 137] + ) + const sigData = Buffer.concat([Buffer.from(options.sigPrefix || '0x01'), Buffer.from(data)]) + + const sigs = await encodeSigsForCheckpoint((await getSigs(validators, ethUtils.keccak256(sigData))) as any) + return { data, sigs } +} + +export function getBlockHeader (block: any) { + const n = new BN(block.number).toArrayLike(Buffer, 'be', 32) + const ts = new BN(block.timestamp).toArrayLike(Buffer, 'be', 32) + const txRoot = ethUtils.toBuffer(block.transactionsRoot) + const receiptsRoot = ethUtils.toBuffer(block.receiptsRoot) + return ethUtils.keccak256(Buffer.concat([n, ts, txRoot, receiptsRoot])) +} \ No newline at end of file diff --git a/test/util/merkle-tree.js b/test/util/merkle-tree.js new file mode 100644 index 00000000..180e7086 --- /dev/null +++ b/test/util/merkle-tree.js @@ -0,0 +1,105 @@ +const utils = require('ethereumjs-util') +const Buffer = require('safe-buffer').Buffer + +const sha3 = utils.keccak256 + +module.exports = class MerkleTree { + constructor (leaves = []) { + if (leaves.length < 1) { + throw new Error('Atleast 1 leaf needed') + } + + const depth = Math.ceil(Math.log(leaves.length) / Math.log(2)) + if (depth > 20) { + throw new Error('Depth must be 20 or less') + } + + const l = leaves.concat( + Array.from(Array(Math.pow(2, depth) - leaves.length), () => + utils.zeros(32) + ) + ) + + this.leaves = l + this.layers = [l] + this.createHashes(this.leaves) + } + + createHashes (nodes) { + if (nodes.length === 1) { + return false + } + + const treeLevel = [] + for (let i = 0; i < nodes.length; i += 2) { + const left = nodes[i] + const right = nodes[i + 1] + const data = Buffer.concat([left, right]) + treeLevel.push(sha3(data)) + } + + // is odd number of nodes + if (nodes.length % 2 === 1) { + treeLevel.push(nodes[nodes.length - 1]) + } + + this.layers.push(treeLevel) + this.createHashes(treeLevel) + } + + getLeaves () { + return this.leaves + } + + getLayers () { + return this.layers + } + + getRoot () { + return this.layers[this.layers.length - 1][0] + } + + getProof (leaf) { + let index = -1 + for (let i = 0; i < this.leaves.length; i++) { + if (Buffer.compare(leaf, this.leaves[i]) === 0) { + index = i + } + } + + const proof = [] + if (index <= this.getLeaves().length) { + let siblingIndex + for (let i = 0; i < this.layers.length - 1; i++) { + if (index % 2 === 0) { + siblingIndex = index + 1 + } else { + siblingIndex = index - 1 + } + index = parseInt(index / 2) + proof.push(this.layers[i][siblingIndex]) + } + } + return proof + } + + verify (value, index, root, proof) { + if (!Array.isArray(proof) || !value || !root) { + return false + } + + let hash = value + for (let i = 0; i < proof.length; i++) { + const node = proof[i] + if (index % 2 === 0) { + hash = sha3(Buffer.concat([hash, node])) + } else { + hash = sha3(Buffer.concat([node, hash])) + } + + index = parseInt(index / 2) + } + + return Buffer.compare(hash, root) === 0 + } +} diff --git a/yarn.lock b/yarn.lock index d440e1e9..f78f9671 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,10 +16,90 @@ dependencies: "@babel/highlight" "^7.14.5" -"@babel/helper-validator-identifier@^7.14.5": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/generator@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== + dependencies: + "@babel/types" "^7.15.4" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-compilation-targets@^7.13.0": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" + integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-function-name@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" + integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== + dependencies: + "@babel/helper-get-function-arity" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-get-function-arity@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" + integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-hoist-variables@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" + integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" + integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-split-export-declaration@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" + integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -30,6 +110,62 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.15.4": + version "7.15.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549" + integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q== + +"@babel/plugin-transform-runtime@^7.5.5": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" + +"@babel/runtime@^7.5.5": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" + integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/traverse@^7.13.0": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.15.4": + version "7.15.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" + integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + "@ensdomains/ens@^0.4.4": version "0.4.5" resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" @@ -79,12 +215,12 @@ bn.js "^5.2.0" "@ethereum-waffle/chai@^3.4.0": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.1.tgz#500b59db766a490cb19a7f74ac75a1c3cf86049b" - integrity sha512-8mjgjWCe8XSCWuyJgVtJY8sm00VTczGBTDxBejgEBWN/J9x7QD8jdmWW8bfxdnqZbxiDCTvRFL58Wmd254BEqQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.0.tgz#2477877410a96bf370edd64df905b04fb9aba9d5" + integrity sha512-GVaFKuFbFUclMkhHtQTDnWBnBQMJc/pAbfbFj/nnIK237WPLsO3KDDslA7m+MNEyTAOFrcc0CyfruAGGXAQw3g== dependencies: "@ethereum-waffle/provider" "^3.4.0" - ethers "^5.4.7" + ethers "^5.0.0" "@ethereum-waffle/compiler@^3.4.0": version "3.4.0" @@ -131,38 +267,38 @@ patch-package "^6.2.2" postinstall-postinstall "^2.1.0" -"@ethereumjs/block@^3.4.0", "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.5.1.tgz#59737d393503249aa750c37dfc83896234f4e175" - integrity sha512-MoY9bHKABOBK6BW0v1N1Oc0Cve4x/giX67M3TtrVBUsKQTj2eznLGKpydoitxWSZ+WgKKSVhfRMzbCGRwk7T5w== +"@ethereumjs/block@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.4.0.tgz#4747b0c06220ee10cbdfe1cbde8cbb0677b1b074" + integrity sha512-umKAoTX32yXzErpIksPHodFc/5y8bmZMnOl6hWy5Vd8xId4+HKFUOyEiN16Y97zMwFRysRpcrR6wBejfqc6Bmg== dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.1" - ethereumjs-util "^7.1.1" - merkle-patricia-tree "^4.2.1" + "@ethereumjs/common" "^2.4.0" + "@ethereumjs/tx" "^3.3.0" + ethereumjs-util "^7.1.0" + merkle-patricia-tree "^4.2.0" -"@ethereumjs/blockchain@^5.4.0", "@ethereumjs/blockchain@^5.4.1": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.4.2.tgz#5074e0a0157818762a5f5175ea0bd93c5455fe32" - integrity sha512-AOAAwz/lw2lciG9gf5wHi7M/qknraXXnLR66lYgbQ04qfyFC3ZE5x/5rLVm1Vu+kfJLlKrYZTmA0IbOkc7kvgw== +"@ethereumjs/blockchain@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.4.0.tgz#28d712627d3442b2bb1f50dd5acba7cde1021993" + integrity sha512-wAuKLaew6PL52kH8YPXO7PbjjKV12jivRSyHQehkESw4slSLLfYA6Jv7n5YxyT2ajD7KNMPVh7oyF/MU6HcOvg== dependencies: - "@ethereumjs/block" "^3.5.1" - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/ethash" "^1.1.0" + "@ethereumjs/block" "^3.4.0" + "@ethereumjs/common" "^2.4.0" + "@ethereumjs/ethash" "^1.0.0" debug "^2.2.0" - ethereumjs-util "^7.1.1" + ethereumjs-util "^7.1.0" level-mem "^5.0.1" lru-cache "^5.1.1" rlp "^2.2.4" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.4.0.tgz#2d67f6e6ba22246c5c89104e6b9a119fb3039766" + integrity sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w== dependencies: crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" + ethereumjs-util "^7.1.0" "@ethereumjs/ethash@^1.1.0": version "1.1.0" @@ -175,30 +311,30 @@ ethereumjs-util "^7.1.1" miller-rabin "^4.0.0" -"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.1.tgz#83b6b1f9fe8182d6f2a1d7bff8213631629ab8a4" - integrity sha512-DXcBdW4upjU11FGlGBAMJw4jXAveL1Siu/8t9jfJ90dehOmpCyGTGWXr6tFzN8663Et8UFLcw3IdV7JJt88iZw== +"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378" + integrity sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA== dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.1" + "@ethereumjs/common" "^2.4.0" + ethereumjs-util "^7.1.0" "@ethereumjs/vm@^5.5.2": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.5.3.tgz#dc8b30dd35efb589db093592600207660fa8dada" - integrity sha512-0k5OreWnlgXYs54wohgO11jtGI05GDasj2EYxzuaStxTi15CS3vow5wGYELC1pG9xngE1F/mFmKi/f14XRuDow== + version "5.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.5.2.tgz#918a2c1000aaa9fdbe6007a4fdc2c62833122adf" + integrity sha512-AydZ4wfvZAsBuFzs3xVSA2iU0hxhL8anXco3UW3oh9maVC34kTEytOfjHf06LTEfN0MF9LDQ4ciLa7If6ZN/sg== dependencies: - "@ethereumjs/block" "^3.5.0" - "@ethereumjs/blockchain" "^5.4.1" - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.1" + "@ethereumjs/block" "^3.4.0" + "@ethereumjs/blockchain" "^5.4.0" + "@ethereumjs/common" "^2.4.0" + "@ethereumjs/tx" "^3.3.0" async-eventemitter "^0.2.4" core-js-pure "^3.0.1" debug "^2.2.0" - ethereumjs-util "^7.1.1" + ethereumjs-util "^7.1.0" functional-red-black-tree "^1.0.1" mcl-wasm "^0.7.1" - merkle-patricia-tree "^4.2.1" + merkle-patricia-tree "^4.2.0" rustbn.js "~0.2.0" util.promisify "^1.0.1" @@ -297,10 +433,10 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/bignumber@5.4.2", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.2.tgz#44232e015ae4ce82ac034de549eb3583c71283d8" - integrity sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA== +"@ethersproject/bignumber@5.4.1", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" + integrity sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg== dependencies: "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" @@ -658,30 +794,9 @@ integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== "@openzeppelin/contracts@^4.0.0": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.3.2.tgz#ff80affd6d352dbe1bbc5b4e1833c41afd6283b6" - integrity sha512-AybF1cesONZStg5kWf6ao9OlqTZuPqddvprc0ky7lrUVOjXeKpmQ2Y9FK+6ygxasb+4aic4O5pneFBfwVsRRRg== - -"@openzeppelin/hardhat-upgrades@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.10.0.tgz#e7751e3b9a005ccc9cef4e0de190628b181b59b6" - integrity sha512-iGe058iV7Ba/g11RxlbqBG47nbqbZn1FRdg1FCQq7xPmvjRhXmFsoI/5gGw5el0aZlLDRtpFOBZbzMZvI/S7iw== - dependencies: - "@openzeppelin/upgrades-core" "^1.9.0" - -"@openzeppelin/upgrades-core@^1.9.0": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.9.2.tgz#9d7497f58b1f2bb704c162c716302bfff7923749" - integrity sha512-LU2NMvnz+6jXheh3Rnfql4UgtS7ViHWwcivS3JRI9DMCazmlyibwMYz5QMakrNNGAF7bY0t0Sw1UCfe5qTYxjA== - dependencies: - bn.js "^5.1.2" - cbor "^8.0.0" - chalk "^4.1.0" - compare-versions "^3.6.0" - debug "^4.1.1" - ethereumjs-util "^7.0.3" - proper-lockfile "^4.1.1" - solidity-ast "^0.4.15" + version "4.3.1" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.3.1.tgz#c01f791ce6c9d3989ac1a643267501dbe336b9e3" + integrity sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw== "@resolver-engine/core@^0.3.3": version "0.3.3" @@ -836,23 +951,37 @@ resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.14.tgz#59683b5407bede7bddf16d80dc5592f9c5e5fa05" integrity sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA== -"@truffle/interface-adapter@^0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.7.tgz#9a3d27f7592c238d3da571b9bd61c7d9e1fe540e" - integrity sha512-3dGCppl4SDVUKmd3Jlm82EqMl0p9k7l0SbcRbeMeDkLNxuUG5r6WUHcgTUG9veq971JkVtZEz8+C+mfz1JwmBw== +"@truffle/hdwallet-provider@^1.0.43": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@truffle/hdwallet-provider/-/hdwallet-provider-1.5.0.tgz#f27158753bfb184389358ca43ea72aeee02a31ac" + integrity sha512-nWgOBRT3ZCX7VAFVrDrWLvX405J502WlP5azmnWbM5r3fqDKUJlBdtHZTCGeiDKAT6twtpTUj6tO8mKmrjF8PA== + dependencies: + "@trufflesuite/web3-provider-engine" "15.0.13-1" + eth-sig-util "^3.0.1" + ethereum-cryptography "^0.1.3" + ethereum-protocol "^1.0.1" + ethereumjs-common "^1.5.0" + ethereumjs-tx "^2.1.2" + ethereumjs-util "^6.1.0" + ethereumjs-wallet "^1.0.1" + +"@truffle/interface-adapter@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.5.tgz#b82911476406b99e4fa9927f77363dc42dfc585c" + integrity sha512-vEutNkWDJWRMVFsyrMD1yZAHY7ZcQhzep7UHiqf6VE4K2Jgl07gK6CG3xco6C2YYBy+7R5Wt0vCTmbVFlPRi7A== dependencies: bn.js "^5.1.3" ethers "^4.0.32" - web3 "1.5.3" + web3 "1.5.2" "@truffle/provider@^0.2.24": - version "0.2.41" - resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.41.tgz#02dafe9044f1096b9cac69852ae93c0d2b99e879" - integrity sha512-weYUodsx8SGgCtaWRgJOe86eAXV2EEH/Cthndu7bfkZ7vPu94AZVn9hxlG3iZVUMLLscq7aNUsa3CZVqy/voiQ== + version "0.2.39" + resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.39.tgz#5a544e734fa5c41c28cacae88e139ed13d5c9ead" + integrity sha512-svL1u/BtPyteZbYnngxVBvYHkesTRLFYXdklDJT2S+X4jy8dmHRZIUdM6SL4SOrDPICiEnnp1fczsVWEqrEdig== dependencies: "@truffle/error" "^0.0.14" - "@truffle/interface-adapter" "^0.5.7" - web3 "1.5.3" + "@truffle/interface-adapter" "^0.5.5" + web3 "1.5.2" "@typechain/ethers-v5@^2.0.0": version "2.0.0" @@ -903,9 +1032,9 @@ "@types/node" "*" "@types/chai@*": - version "4.2.22" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.22.tgz#47020d7e4cf19194d43b5202f35f75bd2ad35ce7" - integrity sha512-tFfcE+DSTzWAgifkjik9AySNqIyNoYwmR+uecPwwD/XRNfvOjmC/FjCxpiUGDkDVDphPfCUecSQVFw+lN3M3kQ== + version "4.2.21" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.21.tgz#9f35a5643129df132cf3b5c1ec64046ea1af0650" + integrity sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg== "@types/concat-stream@^1.6.0": version "1.6.1" @@ -984,9 +1113,9 @@ form-data "^3.0.0" "@types/node@*": - version "16.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243" - integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w== + version "16.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" + integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== "@types/node@^10.0.3": version "10.17.60" @@ -994,14 +1123,14 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": - version "12.20.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.27.tgz#4141fcad57c332a120591de883e26fe4bb14aaea" - integrity sha512-qZdePUDSLAZRXXV234bLBEUM0nAQjoxbcSwp1rqSMUe1rZ47mwU6OjciR/JvF1Oo8mc0ys6GE0ks0HGgqAZoGg== + version "12.20.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" + integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== "@types/node@^14.14.37": - version "14.17.19" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.19.tgz#7341e9ac1b5d748d7a3ddc04336ed536a6f91c31" - integrity sha512-jjYI6NkyfXykucU6ELEoT64QyKOdvaA6enOqKtP4xUsGY0X0ZUZz29fUmrTRo+7v7c6TgDu82q3GHHaCEkqZwA== + version "14.17.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.15.tgz#d5ebfb62a69074ebb85cbe0529ad917bb8f2bae8" + integrity sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA== "@types/node@^8.0.0": version "8.10.66" @@ -1016,9 +1145,9 @@ "@types/node" "*" "@types/prettier@^2.1.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" - integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== "@types/qs@^6.2.31", "@types/qs@^6.9.4": version "6.9.7" @@ -1048,9 +1177,9 @@ "@types/sinon" "*" "@types/sinon@*": - version "10.0.4" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.4.tgz#9332527665692b9f6826afe017f342a3ac6120f4" - integrity sha512-fOYjrxQv8zJsqOY6V6ecP4eZhQBxtY80X0er1VVnUIAIZo74jHm8e1vguG5Yt4Iv8W2Wr7TgibB8MfRe32k9pA== + version "10.0.2" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.2.tgz#f360d2f189c0fd433d14aeb97b9d705d7e4cc0e4" + integrity sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw== dependencies: "@sinonjs/fake-timers" "^7.1.0" @@ -1068,12 +1197,12 @@ "@types/underscore" "*" "@typescript-eslint/eslint-plugin@^4.28.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz#46d2370ae9311092f2a6f7246d28357daf2d4e89" - integrity sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA== + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz#e938603a136f01dcabeece069da5fb2e331d4498" + integrity sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA== dependencies: - "@typescript-eslint/experimental-utils" "4.32.0" - "@typescript-eslint/scope-manager" "4.32.0" + "@typescript-eslint/experimental-utils" "4.31.1" + "@typescript-eslint/scope-manager" "4.31.1" debug "^4.3.1" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -1081,60 +1210,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.32.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz#53a8267d16ca5a79134739129871966c56a59dc4" - integrity sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A== +"@typescript-eslint/experimental-utils@4.31.1": + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz#0c900f832f270b88e13e51753647b02d08371ce5" + integrity sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.32.0" - "@typescript-eslint/types" "4.32.0" - "@typescript-eslint/typescript-estree" "4.32.0" + "@typescript-eslint/scope-manager" "4.31.1" + "@typescript-eslint/types" "4.31.1" + "@typescript-eslint/typescript-estree" "4.31.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" "@typescript-eslint/parser@^4.28.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.32.0.tgz#751ecca0e2fecd3d44484a9b3049ffc1871616e5" - integrity sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w== + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.1.tgz#8f9a2672033e6f6d33b1c0260eebdc0ddf539064" + integrity sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ== dependencies: - "@typescript-eslint/scope-manager" "4.32.0" - "@typescript-eslint/types" "4.32.0" - "@typescript-eslint/typescript-estree" "4.32.0" + "@typescript-eslint/scope-manager" "4.31.1" + "@typescript-eslint/types" "4.31.1" + "@typescript-eslint/typescript-estree" "4.31.1" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.32.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz#e03c8668f8b954072b3f944d5b799c0c9225a7d5" - integrity sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w== +"@typescript-eslint/scope-manager@4.31.1": + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz#0c21e8501f608d6a25c842fcf59541ef4f1ab561" + integrity sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ== dependencies: - "@typescript-eslint/types" "4.32.0" - "@typescript-eslint/visitor-keys" "4.32.0" + "@typescript-eslint/types" "4.31.1" + "@typescript-eslint/visitor-keys" "4.31.1" -"@typescript-eslint/types@4.32.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.32.0.tgz#52c633c18da47aee09449144bf59565ab36df00d" - integrity sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w== +"@typescript-eslint/types@4.31.1": + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.1.tgz#5f255b695627a13401d2fdba5f7138bc79450d66" + integrity sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ== -"@typescript-eslint/typescript-estree@4.32.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz#db00ccc41ccedc8d7367ea3f50c6994b8efa9f3b" - integrity sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw== +"@typescript-eslint/typescript-estree@4.31.1": + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz#4a04d5232cf1031232b7124a9c0310b577a62d17" + integrity sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg== dependencies: - "@typescript-eslint/types" "4.32.0" - "@typescript-eslint/visitor-keys" "4.32.0" + "@typescript-eslint/types" "4.31.1" + "@typescript-eslint/visitor-keys" "4.31.1" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.32.0": - version "4.32.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz#455ba8b51242f2722a497ffae29313f33b14cb7f" - integrity sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw== +"@typescript-eslint/visitor-keys@4.31.1": + version "4.31.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz#f2e7a14c7f20c4ae07d7fc3c5878c4441a1da9cc" + integrity sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ== dependencies: - "@typescript-eslint/types" "4.32.0" + "@typescript-eslint/types" "4.31.1" eslint-visitor-keys "^2.0.0" "@uniswap/lib@^4.0.1-alpha": @@ -1761,6 +1890,30 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -2338,6 +2491,17 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" +browserslist@^4.16.6, browserslist@^4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c" + integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g== + dependencies: + caniuse-lite "^1.0.30001254" + colorette "^1.3.0" + electron-to-chromium "^1.3.830" + escalade "^3.1.1" + node-releases "^1.1.75" + bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -2489,10 +2653,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000844: - version "1.0.30001261" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01" - integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA== +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001254: + version "1.0.30001257" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz#150aaf649a48bee531104cfeda57f92ce587f6e5" + integrity sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" @@ -2583,7 +2747,7 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" -chokidar@^3.4.0, chokidar@^3.4.3: +chokidar@^3.4.0: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -2731,6 +2895,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -2845,10 +3014,18 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js-compat@^3.14.0: + version "3.17.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.17.3.tgz#b39c8e4dec71ecdc735c653ce5233466e561324e" + integrity sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA== + dependencies: + browserslist "^4.17.0" + semver "7.0.0" + core-js-pure@^3.0.1: - version "3.18.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.1.tgz#097d34d24484be45cea700a448d1e74622646c80" - integrity sha512-kmW/k8MaSuqpvA1xm2l3TVlBuvW+XBkcaOroFUpO3D4lsTGQWBTb/tBDCf/PNkkPLrwgrkQRIYNPB0CeqGJWGQ== + version "3.17.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.17.3.tgz#98ea3587188ab7ef4695db6518eeb71aec42604a" + integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -3261,10 +3438,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.47: - version "1.3.852" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.852.tgz#04091fd848b38e7248e4eb70c05e1f9befd2671b" - integrity sha512-vNbdzbbx3d7TStoC0oIVYz6X/tIezHXnreI+4a8I7EqAQ9hpHulz3ar8xChUNcG77A+TtPSKz9B9Xwpt9e1B5w== +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.830: + version "1.3.838" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.838.tgz#d178b34a268c750c0444ba69e4c94d4c4fb3aa0d" + integrity sha512-65O6UJiyohFAdX/nc6KJ0xG/4zOn7XCO03kQNNbCeMRGxlWTLzc6Uyi0tFNQuuGWqySZJi8CD2KXPXySVYmzMA== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: version "6.5.4" @@ -3366,9 +3543,9 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.18.5: - version "1.18.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.7.tgz#122daaa523d0a10b0f1be8ed4ce1ee68330c5bb2" - integrity sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw== + version "1.18.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456" + integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -4087,19 +4264,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.1.tgz#236ef435f46820f0c420a708c0559b5897952069" - integrity sha512-1CGBmCp3m8IMGHhAJF/icH8qjCJrfQtaZ9KW+cAVV8kyN5Lc1IRq3KjV77ILOutrCwiyf5y2gMyCrAUMoCf2Ag== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-util@^7.0.3: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.7, ethereumjs-util@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz#e2b43a30bfcdbcb432a4eb42bd5f2393209b3fd5" integrity sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw== @@ -4179,10 +4344,10 @@ ethers@^4.0.32, ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.1, ethers@^5.0.2, ethers@^5.1.0, ethers@^5.4.5, ethers@^5.4.7: - version "5.4.7" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.7.tgz#0fd491a5da7c9793de2d6058d76b41b1e7efba8f" - integrity sha512-iZc5p2nqfWK1sj8RabwsPM28cr37Bpq7ehTQ5rWExBr2Y09Sn1lDKZOED26n+TsZMye7Y6mIgQ/1cwpSD8XZew== +ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.1.0, ethers@^5.4.5: + version "5.4.6" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" + integrity sha512-F7LXARyB/Px3AQC6/QKedWZ8eqCkgOLORqL4B/F0Mag/K+qJSFGqsR36EaOZ6fKg3ZonI+pdbhb4A8Knt/43jQ== dependencies: "@ethersproject/abi" "5.4.1" "@ethersproject/abstract-provider" "5.4.1" @@ -4190,7 +4355,7 @@ ethers@^5.0.1, ethers@^5.0.2, ethers@^5.1.0, ethers@^5.4.5, ethers@^5.4.7: "@ethersproject/address" "5.4.0" "@ethersproject/base64" "5.4.0" "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.2" + "@ethersproject/bignumber" "5.4.1" "@ethersproject/bytes" "5.4.0" "@ethersproject/constants" "5.4.0" "@ethersproject/contracts" "5.4.1" @@ -4322,9 +4487,9 @@ express@^4.14.0: vary "~1.1.2" ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.5.0.tgz#e93b97ae0cb23f8370380f6107d2d2b7887687ad" + integrity sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q== dependencies: type "^2.5.0" @@ -4581,9 +4746,9 @@ fmix@^0.1.0: imul "^1.0.0" follow-redirects@^1.12.1, follow-redirects@^1.14.0: - version "1.14.4" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" - integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== + version "1.14.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e" + integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw== for-each@^0.3.3, for-each@~0.3.3: version "0.3.3" @@ -4898,19 +5063,7 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.1.7: +glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@~7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -5026,7 +5179,7 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -5429,9 +5582,9 @@ immediate@~3.2.3: integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= immutable@^4.0.0-rc.12: - version "4.0.0-rc.15" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.15.tgz#c30056f05eaaf5650fd15230586688fdd15c54bc" - integrity sha512-v8+A3sNyaieoP9dHegl3tEYnIZa7vqNiSv0U6D7YddiZi34VjKy4GsIxrRHj2d8+CS3MeiVja5QyNe4JO/aEXA== + version "4.0.0-rc.14" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.14.tgz#29ba96631ec10867d1348515ac4e6bdba462f071" + integrity sha512-pfkvmRKJSoW7JFx0QeYlAmT+kNYvn5j0u7bnpNq4N2RCvHSTlLT208G8jgaquNe+Q8kCPHKOSpxJkyvLDpYq0w== import-fresh@^2.0.0: version "2.0.0" @@ -5616,9 +5769,9 @@ is-ci@^2.0.0: ci-info "^2.0.0" is-core-module@^2.2.0, is-core-module@^2.6.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" - integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== dependencies: has "^1.0.3" @@ -6648,7 +6801,7 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: rlp "^2.0.0" semaphore ">=1.0.1" -merkle-patricia-tree@^4.2.0, merkle-patricia-tree@^4.2.1: +merkle-patricia-tree@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.1.tgz#fc43e7b162e597a0720ccdd702bf1d49765691d2" integrity sha512-25reMgrT8PhJy0Ba0U7fMZD2oobS1FPWB9vQa0uBpJYIQYYuFXEHoqEkTqA/UzX+s9br3pmUVVY/TOsFt/x0oQ== @@ -7003,11 +7156,9 @@ node-fetch@2.6.1: integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== - dependencies: - whatwg-url "^5.0.0" + version "2.6.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0" + integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA== node-fetch@~1.7.1: version "1.7.3" @@ -7022,10 +7173,10 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== -nofilter@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.0.3.tgz#3ff3b142efdccb403434ccae4a0c2c835cb9b522" - integrity sha512-TN/MCrQmXQk5DyUJ8TGUq1Il8rv4fTsjddLmMopV006QP8DMkglmGgYfQKD5620vXLRXfr8iGI6ZZ4/ZWld2cQ== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== nopt@3.x: version "3.0.6" @@ -7621,9 +7772,9 @@ prettier@^1.14.3: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.1.2, prettier@^2.3.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.0.tgz#85bdfe0f70c3e777cf13a4ffff39713ca6f64cba" + integrity sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ== printj@~1.1.0: version "1.1.2" @@ -9670,10 +9821,10 @@ web3-bzz@1.2.11: swarm-js "^0.1.40" underscore "1.9.1" -web3-bzz@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.5.3.tgz#e36456905ce051138f9c3ce3623cbc73da088c2b" - integrity sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg== +web3-bzz@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.5.2.tgz#a04feaa19462cff6d5a8c87dad1aca4619d9dfc8" + integrity sha512-W/sPCdA+XQ9duUYKHAwf/g69cbbV8gTCRsa1MpZwU7spXECiyJ2EvD/QzAZ+UpJk3GELXFF/fUByeZ3VRQKF2g== dependencies: "@types/node" "^12.12.6" got "9.6.0" @@ -9688,13 +9839,13 @@ web3-core-helpers@1.2.11: web3-eth-iban "1.2.11" web3-utils "1.2.11" -web3-core-helpers@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz#099030235c477aadf39a94199ef40092151d563c" - integrity sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw== +web3-core-helpers@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.5.2.tgz#b6bd5071ca099ba3f92dfafb552eed2b70af2795" + integrity sha512-U7LJoeUdQ3aY9t5gU7t/1XpcApsWm+4AcW5qKl/44ZxD44w0Dmsq1c5zJm3GuLr/a9MwQfXK4lpmvxVQWHHQRg== dependencies: - web3-eth-iban "1.5.3" - web3-utils "1.5.3" + web3-eth-iban "1.5.2" + web3-utils "1.5.2" web3-core-method@1.2.11: version "1.2.11" @@ -9708,17 +9859,17 @@ web3-core-method@1.2.11: web3-core-subscriptions "1.2.11" web3-utils "1.2.11" -web3-core-method@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.5.3.tgz#6cff97ed19fe4ea2e9183d6f703823a079f5132c" - integrity sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg== +web3-core-method@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.5.2.tgz#d1d602657be1000a29d11e3ca3bf7bc778dea9a5" + integrity sha512-/mC5t9UjjJoQmJJqO5nWK41YHo+tMzFaT7Tp7jDCQsBkinE68KsUJkt0jzygpheW84Zra0DVp6q19gf96+cugg== dependencies: "@ethereumjs/common" "^2.4.0" "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.5.3" - web3-core-promievent "1.5.3" - web3-core-subscriptions "1.5.3" - web3-utils "1.5.3" + web3-core-helpers "1.5.2" + web3-core-promievent "1.5.2" + web3-core-subscriptions "1.5.2" + web3-utils "1.5.2" web3-core-promievent@1.2.11: version "1.2.11" @@ -9727,10 +9878,10 @@ web3-core-promievent@1.2.11: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz#3f11833c3dc6495577c274350b61144e0a4dba01" - integrity sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg== +web3-core-promievent@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.5.2.tgz#2dc9fe0e5bbeb7c360fc1aac5f12b32d9949a59b" + integrity sha512-5DacbJXe98ozSor7JlkTNCy6G8945VunRRkPxMk98rUrg60ECVEM/vuefk1atACzjQsKx6tmLZuHxbJQ64TQeQ== dependencies: eventemitter3 "4.0.4" @@ -9745,16 +9896,16 @@ web3-core-requestmanager@1.2.11: web3-providers-ipc "1.2.11" web3-providers-ws "1.2.11" -web3-core-requestmanager@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz#b339525815fd40e3a2a81813c864ddc413f7b6f7" - integrity sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg== +web3-core-requestmanager@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.5.2.tgz#43ccc00779394c941b28e6e07e217350fd1ded71" + integrity sha512-oRVW9OrAsXN2JIZt68OEg1Mb1A9a/L3JAGMv15zLEFEnJEGw0KQsGK1ET2kvZBzvpFd5G0EVkYCnx7WDe4HSNw== dependencies: util "^0.12.0" - web3-core-helpers "1.5.3" - web3-providers-http "1.5.3" - web3-providers-ipc "1.5.3" - web3-providers-ws "1.5.3" + web3-core-helpers "1.5.2" + web3-providers-http "1.5.2" + web3-providers-ipc "1.5.2" + web3-providers-ws "1.5.2" web3-core-subscriptions@1.2.11: version "1.2.11" @@ -9765,13 +9916,13 @@ web3-core-subscriptions@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -web3-core-subscriptions@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz#d7d69c4caad65074212028656e9dc56ca5c2159d" - integrity sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA== +web3-core-subscriptions@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.5.2.tgz#8eaebde44f81fc13c45b555c4422fe79393da9cf" + integrity sha512-hapI4rKFk22yurtIv0BYvkraHsM7epA4iI8Np+HuH6P9DD0zj/llaps6TXLM9HyacLBRwmOLZmr+pHBsPopUnQ== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.5.3" + web3-core-helpers "1.5.2" web3-core@1.2.11: version "1.2.11" @@ -9786,18 +9937,18 @@ web3-core@1.2.11: web3-core-requestmanager "1.2.11" web3-utils "1.2.11" -web3-core@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.3.tgz#59f8728b27c8305b349051326aa262b9b7e907bf" - integrity sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ== +web3-core@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.2.tgz#ca2b9b1ed3cf84d48b31c9bb91f7628f97cfdcd5" + integrity sha512-sebMpQbg3kbh3vHUbHrlKGKOxDWqjgt8KatmTBsTAWj/HwWYVDzeX+2Q84+swNYsm2DrTBVFlqTErFUwPBvyaA== dependencies: "@types/bn.js" "^4.11.5" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-requestmanager "1.5.3" - web3-utils "1.5.3" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-requestmanager "1.5.2" + web3-utils "1.5.2" web3-eth-abi@1.2.11: version "1.2.11" @@ -9808,13 +9959,13 @@ web3-eth-abi@1.2.11: underscore "1.9.1" web3-utils "1.2.11" -web3-eth-abi@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz#5aea9394d797f99ca0d9bd40c3417eb07241c96c" - integrity sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg== +web3-eth-abi@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz#b627eada967f39ae4657ddd61b693cb00d55cb29" + integrity sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA== dependencies: "@ethersproject/abi" "5.0.7" - web3-utils "1.5.3" + web3-utils "1.5.2" web3-eth-accounts@1.2.11: version "1.2.11" @@ -9833,10 +9984,10 @@ web3-eth-accounts@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" -web3-eth-accounts@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz#076c816ff4d68c9dffebdc7fd2bfaddcfc163d77" - integrity sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw== +web3-eth-accounts@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.5.2.tgz#cf506c21037fa497fe42f1f055980ce4acf83731" + integrity sha512-F8mtzxgEhxfLc66vPi0Gqd6mpscvvk7Ua575bsJ1p9J2X/VtuKgDgpWcU4e4LKeROQ+ouCpAG9//0j9jQuij3A== dependencies: "@ethereumjs/common" "^2.3.0" "@ethereumjs/tx" "^3.2.1" @@ -9845,10 +9996,10 @@ web3-eth-accounts@1.5.3: ethereumjs-util "^7.0.10" scrypt-js "^3.0.1" uuid "3.3.2" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-utils "1.5.3" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-utils "1.5.2" web3-eth-contract@1.2.11: version "1.2.11" @@ -9865,19 +10016,19 @@ web3-eth-contract@1.2.11: web3-eth-abi "1.2.11" web3-utils "1.2.11" -web3-eth-contract@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz#12b03a4a16ce583a945f874bea2ff2fb4c5b81ad" - integrity sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg== +web3-eth-contract@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.5.2.tgz#ffbd799fd01e36596aaadefba323e24a98a23c2f" + integrity sha512-4B8X/IPFxZCTmtENpdWXtyw5fskf2muyc3Jm5brBQRb4H3lVh1/ZyQy7vOIkdphyaXu4m8hBLHzeyKkd37mOUg== dependencies: "@types/bn.js" "^4.11.5" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-promievent "1.5.3" - web3-core-subscriptions "1.5.3" - web3-eth-abi "1.5.3" - web3-utils "1.5.3" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-promievent "1.5.2" + web3-core-subscriptions "1.5.2" + web3-eth-abi "1.5.2" + web3-utils "1.5.2" web3-eth-ens@1.2.11: version "1.2.11" @@ -9894,19 +10045,19 @@ web3-eth-ens@1.2.11: web3-eth-contract "1.2.11" web3-utils "1.2.11" -web3-eth-ens@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz#ef6eee1ddf32b1ff9536fc7c599a74f2656bafe1" - integrity sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw== +web3-eth-ens@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.5.2.tgz#ecb3708f0e8e2e847e9d89e8428da12c30bba6a4" + integrity sha512-/UrLL42ZOCYge+BpFBdzG8ICugaRS4f6X7PxJKO+zAt+TwNgBpjuWfW/ZYNcuqJun/ZyfcTuj03TXqA1RlNhZQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-promievent "1.5.3" - web3-eth-abi "1.5.3" - web3-eth-contract "1.5.3" - web3-utils "1.5.3" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-promievent "1.5.2" + web3-eth-abi "1.5.2" + web3-eth-contract "1.5.2" + web3-utils "1.5.2" web3-eth-iban@1.2.11: version "1.2.11" @@ -9916,13 +10067,13 @@ web3-eth-iban@1.2.11: bn.js "^4.11.9" web3-utils "1.2.11" -web3-eth-iban@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz#91b1475893a877b10eac1de5cce6eb379fb81b5d" - integrity sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw== +web3-eth-iban@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.5.2.tgz#f390ad244ef8a6c94de7c58736b0b80a484abc8e" + integrity sha512-C04YDXuSG/aDwOHSX+HySBGb0KraiAVt+/l1Mw7y/fCUrKC/K0yYzMYqY/uYOcvLtepBPsC4ZfUYWUBZ2PO8Vg== dependencies: bn.js "^4.11.9" - web3-utils "1.5.3" + web3-utils "1.5.2" web3-eth-personal@1.2.11: version "1.2.11" @@ -9936,17 +10087,17 @@ web3-eth-personal@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" -web3-eth-personal@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz#4ebe09e9a77dd49d23d93b36b36cfbf4a6dae713" - integrity sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew== +web3-eth-personal@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.5.2.tgz#043335a19ab59e119ba61e3bd6c3b8cde8120490" + integrity sha512-nH5N2GiVC0C5XeMEKU16PeFP3Hb3hkPvlR6Tf9WQ+pE+jw1c8eaXBO1CJQLr15ikhUF3s94ICyHcfjzkDsmRbA== dependencies: "@types/node" "^12.12.6" - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-net "1.5.3" - web3-utils "1.5.3" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-net "1.5.2" + web3-utils "1.5.2" web3-eth@1.2.11: version "1.2.11" @@ -9967,23 +10118,23 @@ web3-eth@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" -web3-eth@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.3.tgz#d7d1ac7198f816ab8a2088c01e0bf1eda45862fe" - integrity sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q== - dependencies: - web3-core "1.5.3" - web3-core-helpers "1.5.3" - web3-core-method "1.5.3" - web3-core-subscriptions "1.5.3" - web3-eth-abi "1.5.3" - web3-eth-accounts "1.5.3" - web3-eth-contract "1.5.3" - web3-eth-ens "1.5.3" - web3-eth-iban "1.5.3" - web3-eth-personal "1.5.3" - web3-net "1.5.3" - web3-utils "1.5.3" +web3-eth@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.2.tgz#0f6470df60a2a7d04df4423ca7721db8ed5ad72b" + integrity sha512-DwWQ6TCOUqvYyo7T20S7HpQDPveNHNqOn2Q2F3E8ZFyEjmqT4XsGiwvm08kB/VgQ4e/ANyq/i8PPFSYMT8JKHg== + dependencies: + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-subscriptions "1.5.2" + web3-eth-abi "1.5.2" + web3-eth-accounts "1.5.2" + web3-eth-contract "1.5.2" + web3-eth-ens "1.5.2" + web3-eth-iban "1.5.2" + web3-eth-personal "1.5.2" + web3-net "1.5.2" + web3-utils "1.5.2" web3-net@1.2.11: version "1.2.11" @@ -9994,14 +10145,14 @@ web3-net@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" -web3-net@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.3.tgz#545fee49b8e213b0c55cbe74ffd0295766057463" - integrity sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ== +web3-net@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.2.tgz#58915d7e2dad025d2a08f02c865f3abe61c48eff" + integrity sha512-VEc9c+jfoERhbJIxnx0VPlQDot8Lm4JW/tOWFU+ekHgIiu2zFKj5YxhURIth7RAbsaRsqCb79aE+M0eI8maxVQ== dependencies: - web3-core "1.5.3" - web3-core-method "1.5.3" - web3-utils "1.5.3" + web3-core "1.5.2" + web3-core-method "1.5.2" + web3-utils "1.5.2" web3-provider-engine@14.2.1: version "14.2.1" @@ -10037,12 +10188,12 @@ web3-providers-http@1.2.11: web3-core-helpers "1.2.11" xhr2-cookies "1.1.0" -web3-providers-http@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.5.3.tgz#74f170fc3d79eb7941d9fbc34e2a067d61ced0b2" - integrity sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw== +web3-providers-http@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.5.2.tgz#94f95fe5572ca54aa2c2ffd42c63956436c9eb0a" + integrity sha512-dUNFJc9IMYDLZnkoQX3H4ZjvHjGO6VRVCqrBrdh84wPX/0da9dOA7DwIWnG0Gv3n9ybWwu5JHQxK4MNQ444lyA== dependencies: - web3-core-helpers "1.5.3" + web3-core-helpers "1.5.2" xhr2-cookies "1.1.0" web3-providers-ipc@1.2.11: @@ -10054,13 +10205,13 @@ web3-providers-ipc@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -web3-providers-ipc@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz#4bd7f5e445c2f3c2595fce0929c72bb879320a3f" - integrity sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg== +web3-providers-ipc@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.5.2.tgz#68a516883c998eeddf60df4cead77baca4fb4aaa" + integrity sha512-SJC4Sivt4g9LHKlRy7cs1jkJgp7bjrQeUndE6BKs0zNALKguxu6QYnzbmuHCTFW85GfMDjhvi24jyyZHMnBNXQ== dependencies: oboe "2.1.5" - web3-core-helpers "1.5.3" + web3-core-helpers "1.5.2" web3-providers-ws@1.2.11: version "1.2.11" @@ -10072,13 +10223,13 @@ web3-providers-ws@1.2.11: web3-core-helpers "1.2.11" websocket "^1.0.31" -web3-providers-ws@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz#eec6cfb32bb928a4106de506f13a49070a21eabf" - integrity sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg== +web3-providers-ws@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.5.2.tgz#d336a93ed608b40cdcadfadd1f1bc8d32ea046e0" + integrity sha512-xy9RGlyO8MbJDuKv2vAMDkg+en+OvXG0CGTCM2BTl6l1vIdHpCa+6A/9KV2rK8aU9OBZ7/Pf+Y19517kHVl9RA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.5.3" + web3-core-helpers "1.5.2" websocket "^1.0.32" web3-shh@1.2.11: @@ -10091,15 +10242,15 @@ web3-shh@1.2.11: web3-core-subscriptions "1.2.11" web3-net "1.2.11" -web3-shh@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.3.tgz#3c04aa4cda9ba0b746d7225262401160f8e38b13" - integrity sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q== +web3-shh@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.2.tgz#a72a3d903c0708a004db94a72d934a302d880aea" + integrity sha512-wOxOcYt4Sa0AHAI8gG7RulCwVuVjSRS/M/AbFsea3XfJdN6sU13/syY7OdZNjNYuKjYTzxKYrd3dU/K2iqffVw== dependencies: - web3-core "1.5.3" - web3-core-method "1.5.3" - web3-core-subscriptions "1.5.3" - web3-net "1.5.3" + web3-core "1.5.2" + web3-core-method "1.5.2" + web3-core-subscriptions "1.5.2" + web3-net "1.5.2" web3-utils@1.2.11: version "1.2.11" @@ -10115,10 +10266,10 @@ web3-utils@1.2.11: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.5.3, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.3.tgz#e914c9320cd663b2a09a5cb920ede574043eb437" - integrity sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q== +web3-utils@1.5.2, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.2.tgz#150982dcb1918ffc54eba87528e28f009ebc03aa" + integrity sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q== dependencies: bn.js "^4.11.9" eth-lib "0.2.8" @@ -10141,23 +10292,18 @@ web3@1.2.11: web3-shh "1.2.11" web3-utils "1.2.11" -web3@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.3.tgz#11882679453c645bf33620fbc255a243343075aa" - integrity sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w== - dependencies: - web3-bzz "1.5.3" - web3-core "1.5.3" - web3-eth "1.5.3" - web3-eth-personal "1.5.3" - web3-net "1.5.3" - web3-shh "1.5.3" - web3-utils "1.5.3" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= +web3@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.2.tgz#736ca2f39048c63964203dd811f519400973e78d" + integrity sha512-aapKLdO8t7Cos6tZLeeQUtCJvTiPMlLcHsHHDLSBZ/VaJEucSTxzun32M8sp3BmF4waDEmhY+iyUM1BKvtAcVQ== + dependencies: + web3-bzz "1.5.2" + web3-core "1.5.2" + web3-eth "1.5.2" + web3-eth-personal "1.5.2" + web3-net "1.5.2" + web3-shh "1.5.2" + web3-utils "1.5.2" websocket@1.0.32: version "1.0.32"