add mainnet test

This commit is contained in:
Drygin 2022-01-27 18:46:30 +03:00
parent 70259244aa
commit 85e6a88443
11 changed files with 615 additions and 29 deletions

View File

@ -1,8 +1,7 @@
{
"snapshotBlockNumber": 13685625,
"novaProxy": "0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696",
"newNovaImpl": "TODO",
"ethAmbBridge": "0x75df5af045d91108662d8080fd1fefad6aa0bb59",
"ethAmbBridge": "0x4C36d2919e407f0Cc2Ee3c993ccF8ac26d9CE64e",
"gasLimit": 200000,
"singletonFactory": "0xce0042B868300000d44A59004Da54A005ffdcf9f",
"singletonFactoryVerboseWrapper": "0xCEe71753C9820f063b38FDbE4cFDAf1d3D928A80",

View File

@ -0,0 +1,39 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
import { IAMB } from "omnibridge/contracts/interfaces/IAMB.sol";
abstract contract MockAMB is IAMB {
address public xDomainMessageSender;
bytes32 public xDomainMessageChainId;
struct Call {
address who;
bytes callData;
}
constructor(address _xDomainMessageSender, uint256 _xDomainMessageChainId) {
xDomainMessageSender = _xDomainMessageSender;
xDomainMessageChainId = bytes32(uint256(_xDomainMessageChainId));
}
function setMessageSender(address _sender) external {
xDomainMessageSender = _sender;
}
function messageSender() external view override returns (address) {
return xDomainMessageSender;
}
function messageSourceChainId() external view override returns (bytes32) {
return xDomainMessageChainId;
}
function execute(Call[] calldata _calls) external returns (bool success, bytes memory result) {
for (uint256 i = 0; i < _calls.length; i++) {
(success, result) = _calls[i].who.call(_calls[i].callData);
require(success, string(result));
}
}
}

View File

@ -0,0 +1,28 @@
// SPDX-License-Identifier: MIT
/**
*Submitted for verification at Etherscan.io on 2020-03-30
*/
pragma solidity ^0.6.2;
/**
* @title Singleton Factory (EIP-2470)
* @notice Exposes CREATE2 (EIP-1014) to deploy bytecode on deterministic addresses based on initialization code and salt.
* @author Ricardo Guilherme Schmidt (Status Research & Development GmbH)
*/
contract SingletonFactory {
/**
* @notice Deploys `_initCode` using `_salt` for defining the deterministic address.
* @param _initCode Initialization code.
* @param _salt Arbitrary value to modify resulting address.
* @return createdContract Created contract address.
*/
function deploy(bytes memory _initCode, bytes32 _salt) public returns (address payable createdContract) {
assembly {
createdContract := create2(0, add(_initCode, 0x20), mload(_initCode), _salt)
}
}
}
// IV is a value changed to generate the vanity address.
// IV: 6583047

View File

@ -0,0 +1,17 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;
import { GovernanceGasUpgrade } from "tornado-governance/contracts/v2-vault-and-gas/gas/GovernanceGasUpgrade.sol";
contract TestGovernanceUpgrade is GovernanceGasUpgrade {
constructor(
address gasCompLogic,
address userVaultAddress
) public GovernanceGasUpgrade(gasCompLogic, userVaultAddress) {}
function test() public pure returns (int256) {
return 231;
}
}

View File

@ -8,36 +8,67 @@ require('dotenv').config()
*/
module.exports = {
solidity: {
version: '0.6.12',
settings: {
optimizer: {
enabled: true,
runs: 200,
compilers: [
{
version: '0.6.12',
settings: {
optimizer: {
enabled: true,
runs: 200,
},
},
},
},
{
version: '0.7.5',
settings: {
optimizer: {
enabled: true,
runs: 200,
},
},
},
{
version: '0.7.6',
settings: {
optimizer: {
enabled: true,
runs: 200,
},
},
},
],
},
networks: {
rinkeby: {
url: `https://rinkeby.infura.io/v3/${process.env.INFURA_API_KEY}`,
accounts: [`0x${process.env.PRIVATE_KEY}`],
hardhat: {
forking: {
url: `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`,
blockNumber: 13685625,
},
chainId: 1,
initialBaseFeePerGas: 5,
loggingEnabled: false,
allowUnlimitedContractSize: false,
blockGasLimit: 50000000,
},
ropsten: {
url: `https://ropsten.infura.io/v3/${process.env.INFURA_API_KEY}`,
accounts: [`0x${process.env.PRIVATE_KEY}`],
localhost: {
forking: {
url: `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`,
blockNumber: 13685625,
},
accounts: process.env.PRIVATE_KEY
? [process.env.PRIVATE_KEY]
: {
mnemonic: 'test test test test test test test test test test test junk',
},
},
mainnet: {
url: `https://mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
accounts: [`0x${process.env.PRIVATE_KEY}`],
},
bsc_testnet: {
url: `https://speedy-nodes-nyc.moralis.io/${process.env.MORALIS_API_KEY}/bsc/testnet`,
accounts: [`0x${process.env.PRIVATE_KEY}`],
gasPrice: 10 * 1000000000,
},
bsc_mainnet: {
url: `https://speedy-nodes-nyc.moralis.io/${process.env.MORALIS_API_KEY}/bsc/mainnet`,
accounts: [`0x${process.env.PRIVATE_KEY}`],
gasPrice: 5 * 1000000000,
url: `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`,
accounts: process.env.PRIVATE_KEY
? [process.env.PRIVATE_KEY]
: {
mnemonic: 'test test test test test test test test test test test junk',
},
timeout: 2147483647,
},
}
}

View File

@ -21,7 +21,8 @@
"dependencies": {
"ethereum-waffle": "^3.4.0",
"ethers": "^5.5.1",
"tornado-governance": "2.0.0"
"tornado-governance": "2.0.0",
"omnibridge": "https://github.com/omni/omnibridge"
},
"devDependencies": {
"@ethersproject/testcases": "^5.4.0",

View File

@ -10,7 +10,7 @@ async function generate(config) {
.encodeDeploy([
config.novaProxy,
config.newNovaImpl,
config.bridge,
config.ethAmbBridge,
config.gasLimit,
])
.slice(2)

118
test/functions.test.js Normal file
View File

@ -0,0 +1,118 @@
const { ethers } = require('hardhat')
const { expect } = require('chai')
const fs = require('fs')
const config = require('./test.config.json')
const { getSignerFromAddress, takeSnapshot, revertSnapshot } = require('./utils')
const { generate } = require('../src/0_generateAddresses')
const ambPath = 'omnibridge/contracts/interfaces/IAMB.sol:IAMB'
const ProposalState = {
Pending: 0,
Active: 1,
Defeated: 2,
Timelocked: 3,
AwaitingExecution: 4,
Executed: 5,
Expired: 6,
}
describe('General functionality tests', () => {
let snapshotId
let torn = config.tokenAddresses.torn
let gov
let tornWhale
let proposal
//// HELPER FN
let getToken = async (tokenAddress) => {
return await ethers.getContractAt('@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20', tokenAddress)
}
let minewait = async (time) => {
await ethers.provider.send('evm_increaseTime', [time])
await ethers.provider.send('evm_mine', [])
}
before(async function () {
tornWhale = await getSignerFromAddress(config.whales.torn)
// deploy proposal
const singletonFactory = await ethers.getContractAt(
'SingletonFactory',
config.singletonFactoryVerboseWrapper,
)
const contracts = await generate(config)
await singletonFactory.deploy(contracts.proposalContract.bytecode, config.salt, { gasLimit: 50000000 })
proposal = await ethers.getContractAt('NovaUpgradeProposal', contracts.proposalContract.address)
snapshotId = await takeSnapshot()
})
describe('Proposal execution', () => {
it('the proposal should be executed correctly', async () => {
let response, id, state
gov = (
await ethers.getContractAt(
'tornado-governance/contracts/v2-vault-and-gas/gas/GovernanceGasUpgrade.sol:GovernanceGasUpgrade',
config.governance,
)
).connect(tornWhale)
await (
await (await getToken(torn)).connect(tornWhale)
).approve(gov.address, ethers.utils.parseEther('1000000'))
await gov.lockWithApproval(ethers.utils.parseEther('26000'))
response = await gov.propose(proposal.address, 'Nova Upgrade Proposal')
id = await gov.latestProposalIds(tornWhale.address)
state = await gov.state(id)
let { events } = await response.wait()
let args = events.find(({ event }) => event == 'ProposalCreated').args
expect(args.id).to.be.equal(id)
expect(args.proposer).to.be.equal(tornWhale.address)
expect(args.target).to.be.equal(proposal.address)
expect(args.description).to.be.equal('Nova Upgrade Proposal')
expect(state).to.be.equal(ProposalState.Pending)
await minewait((await gov.VOTING_DELAY()).add(1).toNumber())
await expect(gov.castVote(id, true)).to.not.be.reverted
state = await gov.state(id)
expect(state).to.be.equal(ProposalState.Active)
await minewait(
(
await gov.VOTING_PERIOD()
)
.add(await gov.EXECUTION_DELAY())
.add(96400)
.toNumber(),
)
state = await gov.state(id)
expect(state).to.be.equal(ProposalState.AwaitingExecution)
await gov.execute(id)
const amb = await ethers.getContractAt(ambPath, config.ethAmbBridge)
const filter = amb.filters.UserRequestForAffirmation()
const fromBlock = await ethers.provider.getBlock()
events = await amb.queryFilter(filter, fromBlock.number)
bridgedData = events[0].args.encodedData.toString()
expect(bridgedData.slice(106,146)).to.be.equal(config.novaProxy.slice(2))
expect(bridgedData.slice(196)).to.be.equal(config.newNovaImpl.slice(2))
state = await gov.state(id)
expect(state).to.be.equal(ProposalState.Executed)
})
})
afterEach(async () => {
await revertSnapshot(snapshotId)
snapshotId = await takeSnapshot()
})
})

18
test/test.config.json Normal file
View File

@ -0,0 +1,18 @@
{
"snapshotBlockNumber": 13685625,
"governance": "0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce",
"novaProxy": "0xd692fd2d0b2fbd2e52cfa5b5b9424bc981c30696",
"newNovaImpl": "0x000000000000000000000000000000000000dead",
"ethAmbBridge": "0x4C36d2919e407f0Cc2Ee3c993ccF8ac26d9CE64e",
"xdaiAmbBridge": "0x75df5af045d91108662d8080fd1fefad6aa0bb59",
"gasLimit": 200000,
"singletonFactory": "0xce0042B868300000d44A59004Da54A005ffdcf9f",
"singletonFactoryVerboseWrapper": "0xCEe71753C9820f063b38FDbE4cFDAf1d3D928A80",
"salt": "0x746f726e61646f00000000000000000000000000000000000000000000000000",
"tokenAddresses": {
"torn": "0x77777FeDdddFfC19Ff86DB637967013e6C6A116C"
},
"whales": {
"torn": "0xF977814e90dA44bFA03b6295A0616a897441aceC"
}
}

37
test/utils.js Normal file
View File

@ -0,0 +1,37 @@
/* global ethers, network */
async function setTime(timestamp) {
await ethers.provider.send('evm_setNextBlockTimestamp', [timestamp])
}
async function takeSnapshot() {
return await ethers.provider.send('evm_snapshot', [])
}
async function revertSnapshot(id) {
await ethers.provider.send('evm_revert', [id])
}
async function advanceTime(sec) {
const now = (await ethers.provider.getBlock('latest')).timestamp
await setTime(now + sec)
}
async function getSignerFromAddress(address) {
await network.provider.request({
method: 'hardhat_impersonateAccount',
params: [address],
})
let signer = await ethers.provider.getSigner(address)
signer.address = signer._address
return signer
}
module.exports = {
setTime,
advanceTime,
takeSnapshot,
revertSnapshot,
getSignerFromAddress,
}

300
yarn.lock
View File

@ -1609,7 +1609,7 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
axios@^0.21.1:
axios@^0.21.0, axios@^0.21.1:
version "0.21.4"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
@ -2596,6 +2596,14 @@ chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chalk@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@ -3364,6 +3372,21 @@ env-paths@^2.2.0:
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
envalid@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/envalid/-/envalid-6.0.2.tgz#7139770e089acc945c0e47b5075d72915d8683e8"
integrity sha512-ChJb9a5rjwZ/NkcXfBrzEl5cFZaGLg38N7MlWJkv5qsmSypX2WJe28LkoAWcklC60nKZXYKRlBbsjuJSjYw0Xg==
dependencies:
chalk "^3.0.0"
dotenv "^8.2.0"
meant "^1.0.1"
validator "^13.0.0"
err-code@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
errno@~0.1.1:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@ -6239,6 +6262,11 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
meant@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c"
integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@ -6857,6 +6885,18 @@ oboe@2.1.5:
dependencies:
http-https "^1.0.0"
"omnibridge@https://github.com/omni/omnibridge":
version "1.1.0"
resolved "https://github.com/omni/omnibridge#c814f686487c50462b132b9691fd77cc2de237d3"
dependencies:
axios "^0.21.0"
bignumber.js "^9.0.1"
dotenv "^8.2.0"
envalid "^6.0.2"
promise-retry "^2.0.1"
querystring "^0.2.0"
web3 "1.3.1"
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@ -7274,6 +7314,14 @@ progress@^2.0.0:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise-retry@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
dependencies:
err-code "^2.0.2"
retry "^0.12.0"
promise-to-callback@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7"
@ -7428,6 +7476,11 @@ querystring@0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
querystring@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd"
integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@ -9086,6 +9139,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
validator@^13.0.0:
version "13.7.0"
resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857"
integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==
varint@^5.0.0:
version "5.0.2"
resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4"
@ -9115,6 +9173,16 @@ web3-bzz@1.2.11:
swarm-js "^0.1.40"
underscore "1.9.1"
web3-bzz@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.1.tgz#c7e13e5fbbbe4634b0d883e5440069fc58e58044"
integrity sha512-MN726zFpFpwhs3NMC35diJGkwTVUj+8LM/VWqooGX/MOjgYzNrJ7Wr8EzxoaTCy87edYNBprtxBkd0HzzLmung==
dependencies:
"@types/node" "^12.12.6"
got "9.6.0"
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"
@ -9142,6 +9210,15 @@ web3-core-helpers@1.2.11:
web3-eth-iban "1.2.11"
web3-utils "1.2.11"
web3-core-helpers@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.1.tgz#ffd6f47c1b54a8523f00760a8d713f44d0f97e97"
integrity sha512-tMVU0ScyQUJd/HFWfZrvGf+QmPCodPyKQw1gQ+n9We/H3vPPbUxDjNeYnd4BbYy5O9ox+0XG6i3+JlwiSkgDkA==
dependencies:
underscore "1.9.1"
web3-eth-iban "1.3.1"
web3-utils "1.3.1"
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"
@ -9170,6 +9247,18 @@ web3-core-method@1.2.11:
web3-core-subscriptions "1.2.11"
web3-utils "1.2.11"
web3-core-method@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.1.tgz#c1d8bf1e2104a8d625c99caf94218ad2dc948c92"
integrity sha512-dA38tNVZWTxBFMlLFunLD5Az1AWRi5HqM+AtQrTIhxWCzg7rJSHuaYOZ6A5MHKGPWpdykLhzlna0SsNv5AVs8w==
dependencies:
"@ethersproject/transactions" "^5.0.0-beta.135"
underscore "1.9.1"
web3-core-helpers "1.3.1"
web3-core-promievent "1.3.1"
web3-core-subscriptions "1.3.1"
web3-utils "1.3.1"
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"
@ -9200,6 +9289,13 @@ web3-core-promievent@1.2.11:
dependencies:
eventemitter3 "4.0.4"
web3-core-promievent@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.1.tgz#b4da4b34cd9681e22fcda25994d7629280a1e046"
integrity sha512-jGu7TkwUqIHlvWd72AlIRpsJqdHBQnHMeMktrows2148gg5PBPgpJ10cPFmCCzKT6lDOVh9B7pZMf9eckMDmiA==
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"
@ -9225,6 +9321,18 @@ web3-core-requestmanager@1.2.11:
web3-providers-ipc "1.2.11"
web3-providers-ws "1.2.11"
web3-core-requestmanager@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.1.tgz#6dd2b5161ba778dfffe68994a4accff2decc54fe"
integrity sha512-9WTaN2SoyJX1amRyTzX2FtbVXsyWBI2Wef2Q3gPiWaEo/VRVm3e4Bq8MwxNTUMIJMO8RLGHjtdgsoDKPwfL73Q==
dependencies:
underscore "1.9.1"
util "^0.12.0"
web3-core-helpers "1.3.1"
web3-providers-http "1.3.1"
web3-providers-ipc "1.3.1"
web3-providers-ws "1.3.1"
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"
@ -9256,6 +9364,15 @@ web3-core-subscriptions@1.2.11:
underscore "1.9.1"
web3-core-helpers "1.2.11"
web3-core-subscriptions@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.1.tgz#be1103259f91b7fc7f4c6a867aa34dea70a636f7"
integrity sha512-eX3N5diKmrxshc6ZBZ8EJxxAhCxdYPbYXuF2EfgdIyHmxwmYqIVvKepzO8388Bx8JD3D0Id/pKE0dC/FnDIHTQ==
dependencies:
eventemitter3 "4.0.4"
underscore "1.9.1"
web3-core-helpers "1.3.1"
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"
@ -9285,6 +9402,19 @@ web3-core@1.2.11:
web3-core-requestmanager "1.2.11"
web3-utils "1.2.11"
web3-core@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.1.tgz#fb0fc5d952a7f3d580a7e6155d2f28be064e64cb"
integrity sha512-QlBwSyjl2pqYUBE7lH9PfLxa8j6AzzAtvLUqkgoaaFJYLP/+XavW1n6dhVCTq+U3L3eNc+bMp9GLjGDJNXMnGg==
dependencies:
"@types/bn.js" "^4.11.5"
"@types/node" "^12.12.6"
bignumber.js "^9.0.0"
web3-core-helpers "1.3.1"
web3-core-method "1.3.1"
web3-core-requestmanager "1.3.1"
web3-utils "1.3.1"
web3-core@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.3.tgz#59f8728b27c8305b349051326aa262b9b7e907bf"
@ -9320,6 +9450,15 @@ web3-eth-abi@1.2.11:
underscore "1.9.1"
web3-utils "1.2.11"
web3-eth-abi@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.1.tgz#d60fe5f15c7a3a426c553fdaa4199d07f1ad899c"
integrity sha512-ds4aTeKDUEqTXgncAtxvcfMpPiei9ey7+s2ZZ+OazK2CK5jWhFiJuuj9Q68kOT+hID7E1oSDVsNmJWFD/7lbMw==
dependencies:
"@ethersproject/abi" "5.0.7"
underscore "1.9.1"
web3-utils "1.3.1"
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"
@ -9353,6 +9492,23 @@ web3-eth-accounts@1.2.11:
web3-core-method "1.2.11"
web3-utils "1.2.11"
web3-eth-accounts@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.1.tgz#63b247461f1ae0ae46f9a5d5aa896ea80237143e"
integrity sha512-wsV3/0Pbn5+pI8PiCD1CYw7I1dkQujcP//aJ+ZH8PoaHQoG6HnJ7nTp7foqa0r/X5lizImz/g5S8D76t3Z9tHA==
dependencies:
crypto-browserify "3.12.0"
eth-lib "0.2.8"
ethereumjs-common "^1.3.2"
ethereumjs-tx "^2.1.1"
scrypt-js "^3.0.1"
underscore "1.9.1"
uuid "3.3.2"
web3-core "1.3.1"
web3-core-helpers "1.3.1"
web3-core-method "1.3.1"
web3-utils "1.3.1"
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"
@ -9402,6 +9558,21 @@ web3-eth-contract@1.2.11:
web3-eth-abi "1.2.11"
web3-utils "1.2.11"
web3-eth-contract@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.1.tgz#05cb77bd2a671c5480897d20de487f3bae82e113"
integrity sha512-cHu9X1iGrK+Zbrj4wYKwHI1BtVGn/9O0JRsZqd9qcFGLwwAmaCJYy0sDn7PKCKDSL3qB+MDILoyI7FaDTWWTHg==
dependencies:
"@types/bn.js" "^4.11.5"
underscore "1.9.1"
web3-core "1.3.1"
web3-core-helpers "1.3.1"
web3-core-method "1.3.1"
web3-core-promievent "1.3.1"
web3-core-subscriptions "1.3.1"
web3-eth-abi "1.3.1"
web3-utils "1.3.1"
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"
@ -9445,6 +9616,21 @@ web3-eth-ens@1.2.11:
web3-eth-contract "1.2.11"
web3-utils "1.2.11"
web3-eth-ens@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.1.tgz#ccfd621ddc1fecb44096bc8e60689499a9eb4421"
integrity sha512-MUQvYgUYQ5gAwbZyHwI7y+NTT6j98qG3MVhGCUf58inF5Gxmn9OlLJRw8Tofgf0K87Tk9Kqw1/2QxUE4PEZMMA==
dependencies:
content-hash "^2.5.2"
eth-ens-namehash "2.0.8"
underscore "1.9.1"
web3-core "1.3.1"
web3-core-helpers "1.3.1"
web3-core-promievent "1.3.1"
web3-eth-abi "1.3.1"
web3-eth-contract "1.3.1"
web3-utils "1.3.1"
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"
@ -9481,6 +9667,14 @@ web3-eth-iban@1.2.11:
bn.js "^4.11.9"
web3-utils "1.2.11"
web3-eth-iban@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.1.tgz#4351e1a658efa5f3218357f0a38d6d8cad82481e"
integrity sha512-RCQLfR9Z+DNfpw7oUauYHg1HcVoEljzhwxKn3vi15gK0ssWnTwRGqUiIyVTeSb836G6oakOd5zh7XYqy7pn+nw==
dependencies:
bn.js "^4.11.9"
web3-utils "1.3.1"
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"
@ -9509,6 +9703,18 @@ web3-eth-personal@1.2.11:
web3-net "1.2.11"
web3-utils "1.2.11"
web3-eth-personal@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.1.tgz#cfe8af01588870d195dabf0a8d9e34956fb8856d"
integrity sha512-/vZEQpXJfBfYoy9KT911ItfoscEfF0Q2j8tsXzC2xmmasSZ6YvAUuPhflVmAo0IHQSX9rmxq0q1p3sbnE3x2pQ==
dependencies:
"@types/node" "^12.12.6"
web3-core "1.3.1"
web3-core-helpers "1.3.1"
web3-core-method "1.3.1"
web3-net "1.3.1"
web3-utils "1.3.1"
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"
@ -9552,6 +9758,25 @@ web3-eth@1.2.11:
web3-net "1.2.11"
web3-utils "1.2.11"
web3-eth@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.1.tgz#60ac4b58e5fd17b8dbbb8378abd63b02e8326727"
integrity sha512-e4iL8ovj0zNxzbv4LTHEv9VS03FxKlAZD+95MolwAqtVoUnKC2H9X6dli0w6eyXP0aKw+mwY0g0CWQHzqZvtXw==
dependencies:
underscore "1.9.1"
web3-core "1.3.1"
web3-core-helpers "1.3.1"
web3-core-method "1.3.1"
web3-core-subscriptions "1.3.1"
web3-eth-abi "1.3.1"
web3-eth-accounts "1.3.1"
web3-eth-contract "1.3.1"
web3-eth-ens "1.3.1"
web3-eth-iban "1.3.1"
web3-eth-personal "1.3.1"
web3-net "1.3.1"
web3-utils "1.3.1"
web3-eth@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.3.tgz#d7d1ac7198f816ab8a2088c01e0bf1eda45862fe"
@ -9597,6 +9822,15 @@ web3-net@1.2.11:
web3-core-method "1.2.11"
web3-utils "1.2.11"
web3-net@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.1.tgz#79374b1df37429b0839b83b0abc4440ac6181568"
integrity sha512-vuMMWMk+NWHlrNfszGp3qRjH/64eFLiNIwUi0kO8JXQ896SP3Ma0su5sBfSPxNCig047E9GQimrL9wvYAJSO5A==
dependencies:
web3-core "1.3.1"
web3-core-method "1.3.1"
web3-utils "1.3.1"
web3-net@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.3.tgz#545fee49b8e213b0c55cbe74ffd0295766057463"
@ -9649,6 +9883,14 @@ web3-providers-http@1.2.11:
web3-core-helpers "1.2.11"
xhr2-cookies "1.1.0"
web3-providers-http@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.1.tgz#becbea61706b2fa52e15aca6fe519ee108a8fab9"
integrity sha512-DOujG6Ts7/hAMj0PW5p9/1vwxAIr+1CJ6ZWHshtfOq1v1KnMphVTGOrjcTTUvPT33/DA/so2pgGoPMrgaEIIvQ==
dependencies:
web3-core-helpers "1.3.1"
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"
@ -9674,6 +9916,15 @@ web3-providers-ipc@1.2.11:
underscore "1.9.1"
web3-core-helpers "1.2.11"
web3-providers-ipc@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.1.tgz#3cb2572fc5286ab2f3117e0a2dce917816c3dedb"
integrity sha512-BNPscLbvwo+u/tYJrLvPnl/g/SQVSnqP/TjEsB033n4IXqTC4iZ9Of8EDmI0U6ds/9nwNqOBx3KsxbinL46UZA==
dependencies:
oboe "2.1.5"
underscore "1.9.1"
web3-core-helpers "1.3.1"
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"
@ -9700,6 +9951,16 @@ web3-providers-ws@1.2.11:
web3-core-helpers "1.2.11"
websocket "^1.0.31"
web3-providers-ws@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.1.tgz#a70140811d138a1a5cf3f0c39d11887c8e341c83"
integrity sha512-DAbVbiizv0Hr/bLKjyyKMHc/66ccVkudan3eRsf+R/PXWCqfXb7q6Lwodj4llvC047pEuLKR521ZKr5wbfk1KQ==
dependencies:
eventemitter3 "4.0.4"
underscore "1.9.1"
web3-core-helpers "1.3.1"
websocket "^1.0.32"
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"
@ -9728,6 +9989,16 @@ web3-shh@1.2.11:
web3-core-subscriptions "1.2.11"
web3-net "1.2.11"
web3-shh@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.1.tgz#42294d684358c22aa48616cb9a3eb2e9c1e6362f"
integrity sha512-57FTQvOW1Zm3wqfZpIEqL4apEQIR5JAxjqA4RM4eL0jbdr+Zj5Y4J93xisaEVl6/jMtZNlsqYKTVswx8mHu1xw==
dependencies:
web3-core "1.3.1"
web3-core-method "1.3.1"
web3-core-subscriptions "1.3.1"
web3-net "1.3.1"
web3-shh@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.3.tgz#3c04aa4cda9ba0b746d7225262401160f8e38b13"
@ -9762,6 +10033,20 @@ web3-utils@1.2.11:
underscore "1.9.1"
utf8 "3.0.0"
web3-utils@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.1.tgz#9aa880dd8c9463fe5c099107889f86a085370c2e"
integrity sha512-9gPwFm8SXtIJuzdrZ37PRlalu40fufXxo+H2PiCwaO6RpKGAvlUlWU0qQbyToFNXg7W2H8djEgoAVac8NLMCKQ==
dependencies:
bn.js "^4.11.9"
eth-lib "0.2.8"
ethereum-bloom-filters "^1.0.6"
ethjs-unit "0.1.6"
number-to-bn "1.7.0"
randombytes "^2.1.0"
underscore "1.9.1"
utf8 "3.0.0"
web3-utils@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.3.tgz#e914c9320cd663b2a09a5cb920ede574043eb437"
@ -9801,6 +10086,19 @@ web3@1.2.11:
web3-shh "1.2.11"
web3-utils "1.2.11"
web3@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.1.tgz#f780138c92ae3c42ea45e1a3c6ae8844e0aa5054"
integrity sha512-lDJwOLSRWHYwhPy4h5TNgBRJ/lED7lWXyVOXHCHcEC8ai3coBNdgEXWBu/GGYbZMsS89EoUOJ14j3Ufi4dUkog==
dependencies:
web3-bzz "1.3.1"
web3-core "1.3.1"
web3-eth "1.3.1"
web3-eth-personal "1.3.1"
web3-net "1.3.1"
web3-shh "1.3.1"
web3-utils "1.3.1"
web3@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.3.tgz#11882679453c645bf33620fbc255a243343075aa"