From 8dcf0057c23a5993a776fc4ce6152715a2ea16d5 Mon Sep 17 00:00:00 2001 From: dark64 Date: Sat, 28 Dec 2019 18:01:35 +0100 Subject: [PATCH 001/111] Add ace/mode/rust in editor.js --- src/app/editor/editor.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/editor/editor.js b/src/app/editor/editor.js index ad76356ff5..976d242d43 100644 --- a/src/app/editor/editor.js +++ b/src/app/editor/editor.js @@ -19,6 +19,7 @@ require('ace-mode-zokrates') require('brace/mode/javascript') require('brace/mode/python') require('brace/mode/json') +require('brace/mode/rust') require('brace/theme/chaos') require('brace/theme/chrome') @@ -85,7 +86,8 @@ class Editor extends Plugin { zok: 'ace/mode/zokrates', txt: 'ace/mode/text', json: 'ace/mode/json', - abi: 'ace/mode/json' + abi: 'ace/mode/json', + rs: 'ace/mode/rust' } // Editor Setup From 62a43de74fdfbfa196dbfba41fcc17c355c7f69e Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 6 Jan 2020 17:53:29 +0100 Subject: [PATCH 002/111] load workspace from localstorage or queryparams --- src/app.js | 2 +- src/remixAppManager.js | 46 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/app.js b/src/app.js index 6df7b03935..0e868a8919 100644 --- a/src/app.js +++ b/src/app.js @@ -208,7 +208,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org // APP_MANAGER const appManager = new RemixAppManager({}) - const workspace = JSON.parse(localStorage.getItem('workspace')) + const workspace = appManager.pluginLoader.get() // SERVICES // ----------------- import content servive ---------------------------- diff --git a/src/remixAppManager.js b/src/remixAppManager.js index 5c99f01980..4fbb3f63d2 100644 --- a/src/remixAppManager.js +++ b/src/remixAppManager.js @@ -2,6 +2,7 @@ import { PluginEngine, IframePlugin } from '@remixproject/engine' import { EventEmitter } from 'events' import { PermissionHandler } from './app/ui/persmission-handler' +import QueryParams from './lib/query-params' const requiredModules = [ // services + layout views + system views 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', 'fileManager', 'contentImport', @@ -19,15 +20,13 @@ export class RemixAppManager extends PluginEngine { constructor (plugins) { super(plugins, settings) this.event = new EventEmitter() - this.donotAutoReload = ['remixd'] // that would be a bad practice to force loading some plugins at page load. this.registered = {} this.pluginsDirectory = 'https://raw.githubusercontent.com/ethereum/remix-plugins-directory/master/build/profile.json' + this.pluginLoader = new PluginLoader() } onActivated (plugin) { - if (!this.donotAutoReload.includes(plugin.name)) { - localStorage.setItem('workspace', JSON.stringify(this.actives)) - } + this.pluginLoader.set(plugin, this.actives) this.event.emit('activate', plugin.name) } @@ -46,7 +45,7 @@ export class RemixAppManager extends PluginEngine { } onDeactivated (plugin) { - localStorage.setItem('workspace', JSON.stringify(this.actives)) + this.pluginLoader.set(plugin, this.actives) this.event.emit('deactivate', plugin.name) } @@ -232,3 +231,40 @@ export class RemixAppManager extends PluginEngine { ] } } + +class PluginLoader { + constructor () { + const queryParams = new QueryParams() + this.donotAutoReload = ['remixd'] // that would be a bad practice to force loading some plugins at page load. + this.loaders = {} + this.loaders['localStorage'] = { + set: (plugin, actives) => { + if (!this.donotAutoReload.includes(plugin.name)) { + localStorage.setItem('workspace', JSON.stringify(actives)) + } + }, + get: () => { + return JSON.parse(localStorage.getItem('workspace')) + } + } + + this.loaders['queryParams'] = { + set: () => {}, + get: () => { + let plugins = queryParams.get()['plugins'] + if (!plugins) return [] + return plugins.split(',') + } + } + + this.current = queryParams.get()['plugins'] ? 'queryParams' : 'localStorage' + } + + set (plugin, actives) { + this.loaders[this.current].set(plugin, actives) + } + + get () { + return this.loaders[this.current].get() + } +} From 0a876d55e5ee3221f550cf1203a9c0ffe07fe3a2 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 6 Jan 2020 18:00:49 +0100 Subject: [PATCH 003/111] add browser tests --- src/app.js | 1 - test-browser/helpers/init.js | 16 +++++++++------- test-browser/tests/workspace.js | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 test-browser/tests/workspace.js diff --git a/src/app.js b/src/app.js index 0e868a8919..bd928fdbad 100644 --- a/src/app.js +++ b/src/app.js @@ -1,4 +1,3 @@ -/* global localStorage */ 'use strict' var isElectron = require('is-electron') diff --git a/test-browser/helpers/init.js b/test-browser/helpers/init.js index 1ce93a57d8..6e4fa7df6b 100644 --- a/test-browser/helpers/init.js +++ b/test-browser/helpers/init.js @@ -1,14 +1,16 @@ -module.exports = function (browser, callback) { +module.exports = function (browser, callback, url, preloadPlugins = true) { browser - .url('http://127.0.0.1:8080') + .url(url || 'http://127.0.0.1:8080') .injectScript('test-browser/helpers/applytestmode.js', function () { browser.resizeWindow(2560, 1440, () => { - initModules(browser, () => { - browser.clickLaunchIcon('solidity').click('#autoCompile') - .perform(function () { - callback() + if (preloadPlugins) { + initModules(browser, () => { + browser.clickLaunchIcon('solidity').click('#autoCompile') + .perform(function () { + callback() + }) }) - }) + } else callback() }) }) } diff --git a/test-browser/tests/workspace.js b/test-browser/tests/workspace.js new file mode 100644 index 0000000000..e019f4392b --- /dev/null +++ b/test-browser/tests/workspace.js @@ -0,0 +1,17 @@ +'use strict' +var init = require('../helpers/init') +var sauce = require('./sauce') + +module.exports = { + before: function (browser, done) { + init(browser, done, 'http://127.0.0.1:8080?plugins=solidity,udapp', false) + }, + 'CheckSolidityActivatedAndUDapp': function (browser) { + browser + .waitForElementVisible('#icon-panel', 10000) + .clickLaunchIcon('solidity') + .clickLaunchIcon('udapp') + .end() + }, + tearDown: sauce +} From a9bd0339e2af022ccdecd8d5112a47a9a3d86ed4 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 7 Jan 2020 10:02:28 +0100 Subject: [PATCH 004/111] comment --- src/remixAppManager.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/remixAppManager.js b/src/remixAppManager.js index 4fbb3f63d2..727d900ffd 100644 --- a/src/remixAppManager.js +++ b/src/remixAppManager.js @@ -232,6 +232,10 @@ export class RemixAppManager extends PluginEngine { } } +/** @class Reference loaders. + * A loader is a get,set based object which load a workspace from a defined sources. + * (localStorage, queryParams) + **/ class PluginLoader { constructor () { const queryParams = new QueryParams() From 1a12675b3994e4ae44d70ac128a5a0a3c8749e35 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 7 Jan 2020 10:02:44 +0100 Subject: [PATCH 005/111] use getter --- src/remixAppManager.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/remixAppManager.js b/src/remixAppManager.js index 727d900ffd..1aef51bdf5 100644 --- a/src/remixAppManager.js +++ b/src/remixAppManager.js @@ -237,6 +237,9 @@ export class RemixAppManager extends PluginEngine { * (localStorage, queryParams) **/ class PluginLoader { + get currentLoader () { + return this.loaders[this.current] + } constructor () { const queryParams = new QueryParams() this.donotAutoReload = ['remixd'] // that would be a bad practice to force loading some plugins at page load. @@ -265,10 +268,10 @@ class PluginLoader { } set (plugin, actives) { - this.loaders[this.current].set(plugin, actives) + this.currentLoader().set(plugin, actives) } get () { - return this.loaders[this.current].get() + return this.currentLoader().get() } } From a2420476c38c0d61b4367c256603b639658409e4 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 7 Jan 2020 10:03:08 +0100 Subject: [PATCH 006/111] standard --- src/remixAppManager.js | 11 +++++------ test-browser/tests/workspace.js | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/remixAppManager.js b/src/remixAppManager.js index 1aef51bdf5..0d91fa36b2 100644 --- a/src/remixAppManager.js +++ b/src/remixAppManager.js @@ -240,6 +240,7 @@ class PluginLoader { get currentLoader () { return this.loaders[this.current] } + constructor () { const queryParams = new QueryParams() this.donotAutoReload = ['remixd'] // that would be a bad practice to force loading some plugins at page load. @@ -250,15 +251,13 @@ class PluginLoader { localStorage.setItem('workspace', JSON.stringify(actives)) } }, - get: () => { - return JSON.parse(localStorage.getItem('workspace')) - } + get: () => { return JSON.parse(localStorage.getItem('workspace')) } } this.loaders['queryParams'] = { set: () => {}, get: () => { - let plugins = queryParams.get()['plugins'] + const { plugins } = queryParams.get() if (!plugins) return [] return plugins.split(',') } @@ -268,10 +267,10 @@ class PluginLoader { } set (plugin, actives) { - this.currentLoader().set(plugin, actives) + this.currentLoader.set(plugin, actives) } get () { - return this.currentLoader().get() + return this.currentLoader.get() } } diff --git a/test-browser/tests/workspace.js b/test-browser/tests/workspace.js index e019f4392b..bf5069c5b5 100644 --- a/test-browser/tests/workspace.js +++ b/test-browser/tests/workspace.js @@ -1,6 +1,6 @@ 'use strict' -var init = require('../helpers/init') -var sauce = require('./sauce') +const init = require('../helpers/init') +const sauce = require('./sauce') module.exports = { before: function (browser, done) { From a7bf8b163ed89990ea815c7b2a4bcc6de8caef4c Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Thu, 26 Dec 2019 16:06:16 +0530 Subject: [PATCH 007/111] example contracts updated linting fix tests fix minor fix ballot tests fixed solc default version set to 0.6.0 modifier suggested changes --- ci/makeMockCompiler.js | 2 +- package.json | 2 +- src/app.js | 7 +- src/app/editor/example-contracts.js | 267 +++++++++++++++---- src/app/tabs/compileTab/compilerContainer.js | 2 +- test-browser/tests/ballot.js | 183 ++++++++++++- test-browser/tests/solidityUnittests.js | 4 +- 7 files changed, 402 insertions(+), 65 deletions(-) diff --git a/ci/makeMockCompiler.js b/ci/makeMockCompiler.js index 137c20a331..fbcf5f433c 100644 --- a/ci/makeMockCompiler.js +++ b/ci/makeMockCompiler.js @@ -3,7 +3,7 @@ var fs = require('fs') var compiler = require('solc') var compilerInput = require('remix-solidity').CompilerInput -var defaultVersion = 'v0.5.14+commit.1f1aaa4' +var defaultVersion = 'v0.6.0+commit.26b70077' compiler.loadRemoteVersion(defaultVersion, (error, solcSnapshot) => { if (error) console.log(error) diff --git a/package.json b/package.json index b1cc9d5e56..4c6cbc0c20 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "build_debugger": "browserify src/app/debugger/remix-debugger/index.js -o src/app/debugger/remix-debugger/build/app.js", "browsertest": "sleep 5 && npm run nightwatch_local", "csslint": "csslint --ignore=order-alphabetical --errors='errors,duplicate-properties,empty-rules' --exclude-list='assets/css/font-awesome.min.css' assets/css/", - "downloadsolc_root": "wget --no-check-certificate https://solc-bin.ethereum.org/bin/soljson-v0.5.14+commit.1f1aaa4.js -O soljson.js", + "downloadsolc_root": "wget --no-check-certificate https://solc-bin.ethereum.org/bin/soljson-v0.6.0+commit.26b70077.js -O soljson.js", "lint": "standard | notify-error", "make-mock-compiler": "node ci/makeMockCompiler.js", "minify": "uglifyjs --in-source-map inline --source-map-inline -c warnings=false", diff --git a/src/app.js b/src/app.js index bd928fdbad..d37a36fa2d 100644 --- a/src/app.js +++ b/src/app.js @@ -347,12 +347,13 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const queryParams = new QueryParams() const loadedFromGist = gistHandler.loadFromGist(queryParams.get(), fileManager) if (!loadedFromGist) { - // insert ballot contract if there are no files to show + // insert example contracts if there are no files to show self._components.filesProviders['browser'].resolveDirectory('/', (error, filesList) => { if (error) console.error(error) if (Object.keys(filesList).length === 0) { - fileManager.setFile(examples.ballot.name, examples.ballot.content) - fileManager.setFile(examples.ballot_test.name, examples.ballot_test.content) + for (let file in examples) { + fileManager.setFile(examples[file].name, examples[file].content) + } } }) } diff --git a/src/app/editor/example-contracts.js b/src/app/editor/example-contracts.js index 880b29b741..a43984fb58 100644 --- a/src/app/editor/example-contracts.js +++ b/src/app/editor/example-contracts.js @@ -1,96 +1,263 @@ 'use strict' -var ballot = `pragma solidity >=0.4.22 <0.6.0; -contract Ballot { +const storage = `pragma solidity >=0.4.22 <0.7.0; + +/** + * @title Storage + * @dev Store & retreive value in a variable + */ + +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + + function retreive() public view returns (uint256){ + return number; + } +}` + +const owner = `pragma solidity >=0.4.22 <0.7.0; + +/** + * @title Owner + * @dev Set & change owner + */ + +contract Owner { + + address private owner; + + // event for EVM logging + event OwnerSet(address indexed oldOwner, address indexed newOwner); + + // modifier to check if caller is owner + modifier isOwner() { + // If the first argument of 'require' evaluates to 'false', execution terminates and all + // changes to the state and to Ether balances are reverted. + // This used to consume all gas in old EVM versions, but not anymore. + // It is often a good idea to use 'require' to check if functions are called correctly. + // As a second argument, you can also provide an explanation about what went wrong. + require(msg.sender == owner, "Caller is not owner"); + _; + } + + /** + * @dev Set contract deployer as owner + */ + + constructor() public { + owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor + emit OwnerSet(address(0), owner); + } + + /** + * @dev Change owner + * @param newOwner address of new owner + */ + + function changeOwner(address newOwner) public isOwner { + emit OwnerSet(owner, newOwner); + owner = newOwner; + } + + /** + * @dev Return owner address + * @return address of owner + */ + + function getOwner() external view returns (address) { + return owner; + } +}` + +const ballot = `pragma solidity >=0.4.22 <0.7.0; + +/** + * @title Ballot + * @dev Implements voting process along with vote delegation + */ +contract Ballot { + struct Voter { - uint weight; - bool voted; - uint8 vote; - address delegate; + uint weight; // weight is accumulated by delegation + bool voted; // if true, that person already voted + address delegate; // person delegated to + uint vote; // index of the voted proposal } + struct Proposal { - uint voteCount; + // If you can limit the length to a certain number of bytes, + // always use one of bytes1 to bytes32 because they are much cheaper + bytes32 name; // short name (up to 32 bytes) + uint voteCount; // number of accumulated votes } - address chairperson; - mapping(address => Voter) voters; - Proposal[] proposals; + address public chairperson; + + mapping(address => Voter) public voters; + + Proposal[] public proposals; - /// Create a new ballot with $(_numProposals) different proposals. - constructor(uint8 _numProposals) public { + /** + * @dev Create a new ballot to choose one of 'proposalNames'. + * @param proposalNames names of proposals + */ + + constructor(bytes32[] memory proposalNames) public { chairperson = msg.sender; voters[chairperson].weight = 1; - proposals.length = _numProposals; - } - /// Give $(toVoter) the right to vote on this ballot. - /// May only be called by $(chairperson). - function giveRightToVote(address toVoter) public { - if (msg.sender != chairperson || voters[toVoter].voted) return; - voters[toVoter].weight = 1; + for (uint i = 0; i < proposalNames.length; i++) { + // 'Proposal({...})' creates a temporary + // Proposal object and 'proposals.push(...)' + // appends it to the end of 'proposals'. + proposals.push(Proposal({ + name: proposalNames[i], + voteCount: 0 + })); + } + } + + /** + * @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'. + * @param voter address of voter + */ + + function giveRightToVote(address voter) public { + require( + msg.sender == chairperson, + "Only chairperson can give right to vote." + ); + require( + !voters[voter].voted, + "The voter already voted." + ); + require(voters[voter].weight == 0); + voters[voter].weight = 1; } - /// Delegate your vote to the voter $(to). + /** + * @dev Delegate your vote to the voter 'to'. + * @param to address to which vote is delegated + */ + function delegate(address to) public { - Voter storage sender = voters[msg.sender]; // assigns reference - if (sender.voted) return; - while (voters[to].delegate != address(0) && voters[to].delegate != msg.sender) + Voter storage sender = voters[msg.sender]; + require(!sender.voted, "You already voted."); + require(to != msg.sender, "Self-delegation is disallowed."); + + while (voters[to].delegate != address(0)) { to = voters[to].delegate; - if (to == msg.sender) return; + + // We found a loop in the delegation, not allowed. + require(to != msg.sender, "Found loop in delegation."); + } sender.voted = true; sender.delegate = to; - Voter storage delegateTo = voters[to]; - if (delegateTo.voted) - proposals[delegateTo.vote].voteCount += sender.weight; - else - delegateTo.weight += sender.weight; + Voter storage delegate_ = voters[to]; + if (delegate_.voted) { + // If the delegate already voted, + // directly add to the number of votes + proposals[delegate_.vote].voteCount += sender.weight; + } else { + // If the delegate did not vote yet, + // add to her weight. + delegate_.weight += sender.weight; + } } - /// Give a single vote to proposal $(toProposal). - function vote(uint8 toProposal) public { + /** + * @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'. + * @param proposal index of proposal in the proposals array + */ + + function vote(uint proposal) public { Voter storage sender = voters[msg.sender]; - if (sender.voted || toProposal >= proposals.length) return; + require(sender.weight != 0, "Has no right to vote"); + require(!sender.voted, "Already voted."); sender.voted = true; - sender.vote = toProposal; - proposals[toProposal].voteCount += sender.weight; + sender.vote = proposal; + + // If 'proposal' is out of the range of the array, + // this will throw automatically and revert all + // changes. + proposals[proposal].voteCount += sender.weight; } - function winningProposal() public view returns (uint8 _winningProposal) { - uint256 winningVoteCount = 0; - for (uint8 prop = 0; prop < proposals.length; prop++) - if (proposals[prop].voteCount > winningVoteCount) { - winningVoteCount = proposals[prop].voteCount; - _winningProposal = prop; + /** + * @dev Computes the winning proposal taking all previous votes into account. + * @return winningProposal_ index of winning proposal in the proposals array + */ + + function winningProposal() public view + returns (uint winningProposal_) + { + uint winningVoteCount = 0; + for (uint p = 0; p < proposals.length; p++) { + if (proposals[p].voteCount > winningVoteCount) { + winningVoteCount = proposals[p].voteCount; + winningProposal_ = p; } + } + } + + /** + * @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then + * @return winnerName_ the name of the winner + */ + + function winnerName() public view + returns (bytes32 winnerName_) + { + winnerName_ = proposals[winningProposal()].name; } } ` -var ballotTest = ` -pragma solidity >=0.4.22 <0.6.0; +var ballotTest = `pragma solidity >=0.4.22 <0.7.0; import "remix_tests.sol"; // this import is automatically injected by Remix. -import "./ballot.sol"; +import "./3_Ballot.sol"; -contract test3 { +contract BallotTest { + + bytes32[] proposalNames; Ballot ballotToTest; function beforeAll () public { - ballotToTest = new Ballot(2); + proposalNames.push(bytes32("candidate1")); + ballotToTest = new Ballot(proposalNames); } function checkWinningProposal () public { - ballotToTest.vote(1); - Assert.equal(ballotToTest.winningProposal(), uint(1), "1 should be the winning proposal"); + ballotToTest.vote(0); + Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal"); + Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name"); } function checkWinninProposalWithReturnValue () public view returns (bool) { - return ballotToTest.winningProposal() == 1; + return ballotToTest.winningProposal() == 0; } } ` module.exports = { - ballot: { name: 'ballot.sol', content: ballot }, - ballot_test: { name: 'ballot_test.sol', content: ballotTest } + storage: { name: '1_Storage.sol', content: storage }, + owner: { name: '2_Owner.sol', content: owner }, + ballot: { name: '3_Ballot.sol', content: ballot }, + ballot_test: { name: '4_Ballot_test.sol', content: ballotTest } } diff --git a/src/app/tabs/compileTab/compilerContainer.js b/src/app/tabs/compileTab/compilerContainer.js index 6ef23e50c7..9790b66784 100644 --- a/src/app/tabs/compileTab/compilerContainer.js +++ b/src/app/tabs/compileTab/compilerContainer.js @@ -24,7 +24,7 @@ class CompilerContainer { timeout: 300, allversions: null, selectedVersion: null, - defaultVersion: 'soljson-v0.5.14+commit.1f1aaa4.js', // this default version is defined: in makeMockCompiler (for browser test) and in package.json (downloadsolc_root) for the builtin compiler + defaultVersion: 'soljson-v0.6.0+commit.26b70077.js', // this default version is defined: in makeMockCompiler (for browser test) and in package.json (downloadsolc_root) for the builtin compiler baseurl: 'https://solc-bin.ethereum.org/bin' } } diff --git a/test-browser/tests/ballot.js b/test-browser/tests/ballot.js index ff7cb79845..ea85a16d26 100644 --- a/test-browser/tests/ballot.js +++ b/test-browser/tests/ballot.js @@ -20,7 +20,7 @@ module.exports = { .clickLaunchIcon('solidity') .testContracts('Untitled.sol', sources[0]['browser/Untitled.sol'], ['Ballot']) .clickLaunchIcon('udapp') - .setValue('input[placeholder="uint8 _numProposals"]', '1') + .setValue('input[placeholder="bytes32[] proposalNames"]', '["0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"]') .click('#runTabView button[class^="instanceButton"]') .waitForElementPresent('.instance:nth-of-type(2)') .click('.instance:nth-of-type(2) > div > button') @@ -36,7 +36,7 @@ module.exports = { .clickLaunchIcon('debugger') .click('#jumppreviousbreakpoint') .pause(2000) - .goToVMTraceStep(58) + .goToVMTraceStep(79) .pause(1000) .checkVariableDebug('soliditystate', stateCheck) .checkVariableDebug('soliditylocals', localsCheck) @@ -85,13 +85,13 @@ var stateCheck = { 'value': false, 'type': 'bool' }, - 'vote': { - 'value': '0', - 'type': 'uint8' - }, 'delegate': { 'value': '0x0000000000000000000000000000000000000000', 'type': 'address' + }, + 'vote': { + 'value': '0', + 'type': 'uint256' } }, 'type': 'struct Ballot.Voter' @@ -104,6 +104,10 @@ var stateCheck = { 'value': [ { 'value': { + 'name': { + 'value': '0x48656C6C6F20576F726C64210000000000000000000000000000000000000000', + 'type': 'bytes32' + }, 'voteCount': { 'value': '0', 'type': 'uint256' @@ -118,4 +122,169 @@ var stateCheck = { } } -var ballotABI = '[{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"winningProposal","outputs":[{"name":"_winningProposal","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"toVoter","type":"address"}],"name":"giveRightToVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toProposal","type":"uint8"}],"name":"vote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_numProposals","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]' +var ballotABI = `[ +{ + "inputs": [ + { + "internalType": "bytes32[]", + "name": "proposalNames", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" +}, +{ + "constant": true, + "inputs": [], + "name": "chairperson", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" +}, +{ + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, +{ + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "giveRightToVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, +{ + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "voteCount", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" +}, +{ + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposal", + "type": "uint256" + } + ], + "name": "vote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, +{ + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "voters", + "outputs": [ + { + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "voted", + "type": "bool" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "vote", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" +}, +{ + "constant": true, + "inputs": [], + "name": "winnerName", + "outputs": [ + { + "internalType": "bytes32", + "name": "winnerName_", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" +}, +{ + "constant": true, + "inputs": [], + "name": "winningProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "winningProposal_", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" +} +]` diff --git a/test-browser/tests/solidityUnittests.js b/test-browser/tests/solidityUnittests.js index 9de320c2ae..8de6f15f2c 100644 --- a/test-browser/tests/solidityUnittests.js +++ b/test-browser/tests/solidityUnittests.js @@ -23,12 +23,12 @@ function runTests (browser) { .click('#icon-panel div[plugin="pluginManager"]') .scrollAndClick('#pluginManager article[id="remixPluginManagerListItem_solidityUnitTesting"] button') .clickLaunchIcon('fileExplorers') - .switchFile('browser/ballot.sol') + .switchFile('browser/3_Ballot.sol') .clickLaunchIcon('solidityUnitTesting') .scrollAndClick('#runTestsTabRunAction') .waitForElementPresent('#solidityUnittestsOutput div[class^="testPass"]') .pause(10000) - .assert.containsText('#solidityUnittestsOutput', 'browser/ballot_test.sol (test3)') + .assert.containsText('#solidityUnittestsOutput', 'browser/4_Ballot_test.sol (BallotTest)') .assert.containsText('#solidityUnittestsOutput', '✓ (Check winning proposal)') .assert.containsText('#solidityUnittestsOutput', '✓ (Check winnin proposal with return value)') .end() From ae9bbe17ef75a9dbcd287296210471a7f9d4dfdb Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 3 Jan 2020 18:30:36 +0530 Subject: [PATCH 008/111] default solidity version set to 0.6.1 --- ci/makeMockCompiler.js | 2 +- package.json | 2 +- src/app/tabs/compileTab/compilerContainer.js | 2 +- src/app/tabs/testTab/testTab.js | 2 +- test-browser/tests/signingMessage.js | 2 +- test-browser/tests/staticAnalysis.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/makeMockCompiler.js b/ci/makeMockCompiler.js index fbcf5f433c..c1c0bbf51c 100644 --- a/ci/makeMockCompiler.js +++ b/ci/makeMockCompiler.js @@ -3,7 +3,7 @@ var fs = require('fs') var compiler = require('solc') var compilerInput = require('remix-solidity').CompilerInput -var defaultVersion = 'v0.6.0+commit.26b70077' +var defaultVersion = 'v0.6.1+commit.e6f7d5a4' compiler.loadRemoteVersion(defaultVersion, (error, solcSnapshot) => { if (error) console.log(error) diff --git a/package.json b/package.json index 4c6cbc0c20..ec518ecf41 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "build_debugger": "browserify src/app/debugger/remix-debugger/index.js -o src/app/debugger/remix-debugger/build/app.js", "browsertest": "sleep 5 && npm run nightwatch_local", "csslint": "csslint --ignore=order-alphabetical --errors='errors,duplicate-properties,empty-rules' --exclude-list='assets/css/font-awesome.min.css' assets/css/", - "downloadsolc_root": "wget --no-check-certificate https://solc-bin.ethereum.org/bin/soljson-v0.6.0+commit.26b70077.js -O soljson.js", + "downloadsolc_root": "wget --no-check-certificate https://solc-bin.ethereum.org/bin/soljson-v0.6.1+commit.e6f7d5a4.js -O soljson.js", "lint": "standard | notify-error", "make-mock-compiler": "node ci/makeMockCompiler.js", "minify": "uglifyjs --in-source-map inline --source-map-inline -c warnings=false", diff --git a/src/app/tabs/compileTab/compilerContainer.js b/src/app/tabs/compileTab/compilerContainer.js index 9790b66784..28c1aff092 100644 --- a/src/app/tabs/compileTab/compilerContainer.js +++ b/src/app/tabs/compileTab/compilerContainer.js @@ -24,7 +24,7 @@ class CompilerContainer { timeout: 300, allversions: null, selectedVersion: null, - defaultVersion: 'soljson-v0.6.0+commit.26b70077.js', // this default version is defined: in makeMockCompiler (for browser test) and in package.json (downloadsolc_root) for the builtin compiler + defaultVersion: 'soljson-v0.6.1+commit.e6f7d5a4.js', // this default version is defined: in makeMockCompiler (for browser test) and in package.json (downloadsolc_root) for the builtin compiler baseurl: 'https://solc-bin.ethereum.org/bin' } } diff --git a/src/app/tabs/testTab/testTab.js b/src/app/tabs/testTab/testTab.js index f630632634..715a239c4a 100644 --- a/src/app/tabs/testTab/testTab.js +++ b/src/app/tabs/testTab/testTab.js @@ -37,7 +37,7 @@ class TestTabLogic { } generateTestContractSample () { - return `pragma solidity >=0.4.0 <0.6.0; + return `pragma solidity >=0.4.0 <0.7.0; import "remix_tests.sol"; // this import is automatically injected by Remix. // file name has to end with '_test.sol' diff --git a/test-browser/tests/signingMessage.js b/test-browser/tests/signingMessage.js index d4cea4c6ab..b0e182e425 100644 --- a/test-browser/tests/signingMessage.js +++ b/test-browser/tests/signingMessage.js @@ -49,7 +49,7 @@ module.exports = { var sources = [ { 'browser/signMassage.sol': {content: ` - pragma solidity >=0.4.22 <0.6.0; + pragma solidity >=0.4.22 <0.7.0; contract SignMassageTest { function testRecovery(bytes32 h, uint8 v, bytes32 r, bytes32 s) public pure returns (address) { return ecrecover(h, v, r, s); diff --git a/test-browser/tests/staticAnalysis.js b/test-browser/tests/staticAnalysis.js index df03b739d5..1020e2c454 100644 --- a/test-browser/tests/staticAnalysis.js +++ b/test-browser/tests/staticAnalysis.js @@ -5,7 +5,7 @@ var sauce = require('./sauce') var sources = [ { 'browser/Untitled.sol': {content: ` -pragma solidity >=0.4.22 <0.6.0; +pragma solidity >=0.4.22 <0.7.0; contract test1 { address test = tx.origin; } contract test2 {} contract TooMuchGas { From 27c73363fcc587d77af4738d4f848a713a653089 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 3 Jan 2020 18:38:15 +0530 Subject: [PATCH 009/111] version fix --- test-browser/tests/staticAnalysis.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-browser/tests/staticAnalysis.js b/test-browser/tests/staticAnalysis.js index 1020e2c454..df03b739d5 100644 --- a/test-browser/tests/staticAnalysis.js +++ b/test-browser/tests/staticAnalysis.js @@ -5,7 +5,7 @@ var sauce = require('./sauce') var sources = [ { 'browser/Untitled.sol': {content: ` -pragma solidity >=0.4.22 <0.7.0; +pragma solidity >=0.4.22 <0.6.0; contract test1 { address test = tx.origin; } contract test2 {} contract TooMuchGas { From 515aed33a3fc6176261715245a658e94b39efc9d Mon Sep 17 00:00:00 2001 From: LianaHus Date: Tue, 7 Jan 2020 10:36:02 +0100 Subject: [PATCH 010/111] Removed empty lines after comments --- src/app/editor/example-contracts.js | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/app/editor/example-contracts.js b/src/app/editor/example-contracts.js index a43984fb58..945abe0349 100644 --- a/src/app/editor/example-contracts.js +++ b/src/app/editor/example-contracts.js @@ -6,7 +6,6 @@ const storage = `pragma solidity >=0.4.22 <0.7.0; * @title Storage * @dev Store & retreive value in a variable */ - contract Storage { uint256 number; @@ -15,7 +14,6 @@ contract Storage { * @dev Store value in variable * @param num value to store */ - function store(uint256 num) public { number = num; } @@ -24,7 +22,6 @@ contract Storage { * @dev Return value * @return value of 'number' */ - function retreive() public view returns (uint256){ return number; } @@ -36,7 +33,6 @@ const owner = `pragma solidity >=0.4.22 <0.7.0; * @title Owner * @dev Set & change owner */ - contract Owner { address private owner; @@ -58,7 +54,6 @@ contract Owner { /** * @dev Set contract deployer as owner */ - constructor() public { owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor emit OwnerSet(address(0), owner); @@ -68,7 +63,6 @@ contract Owner { * @dev Change owner * @param newOwner address of new owner */ - function changeOwner(address newOwner) public isOwner { emit OwnerSet(owner, newOwner); owner = newOwner; @@ -78,7 +72,6 @@ contract Owner { * @dev Return owner address * @return address of owner */ - function getOwner() external view returns (address) { return owner; } @@ -90,7 +83,6 @@ const ballot = `pragma solidity >=0.4.22 <0.7.0; * @title Ballot * @dev Implements voting process along with vote delegation */ - contract Ballot { struct Voter { @@ -117,7 +109,6 @@ contract Ballot { * @dev Create a new ballot to choose one of 'proposalNames'. * @param proposalNames names of proposals */ - constructor(bytes32[] memory proposalNames) public { chairperson = msg.sender; voters[chairperson].weight = 1; @@ -137,7 +128,6 @@ contract Ballot { * @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'. * @param voter address of voter */ - function giveRightToVote(address voter) public { require( msg.sender == chairperson, @@ -155,7 +145,6 @@ contract Ballot { * @dev Delegate your vote to the voter 'to'. * @param to address to which vote is delegated */ - function delegate(address to) public { Voter storage sender = voters[msg.sender]; require(!sender.voted, "You already voted."); @@ -185,7 +174,6 @@ contract Ballot { * @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'. * @param proposal index of proposal in the proposals array */ - function vote(uint proposal) public { Voter storage sender = voters[msg.sender]; require(sender.weight != 0, "Has no right to vote"); @@ -203,7 +191,6 @@ contract Ballot { * @dev Computes the winning proposal taking all previous votes into account. * @return winningProposal_ index of winning proposal in the proposals array */ - function winningProposal() public view returns (uint winningProposal_) { @@ -220,7 +207,6 @@ contract Ballot { * @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then * @return winnerName_ the name of the winner */ - function winnerName() public view returns (bytes32 winnerName_) { From 53145dde544282e497efd07f3e754ff838ad39fa Mon Sep 17 00:00:00 2001 From: LianaHus Date: Tue, 7 Jan 2020 16:04:11 +0100 Subject: [PATCH 011/111] moved Workshops to featured plugins section in home page --- src/app/ui/landing-page/landing-page.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/ui/landing-page/landing-page.js b/src/app/ui/landing-page/landing-page.js index a87235cd2e..a1612e12ac 100644 --- a/src/app/ui/landing-page/landing-page.js +++ b/src/app/ui/landing-page/landing-page.js @@ -196,7 +196,6 @@ export class LandingPage extends ViewPlugin {
-
@@ -231,6 +230,7 @@ export class LandingPage extends ViewPlugin {

Featured Plugins

{ startPipeline() }}>Pipeline

{ startDebugger() }}>Debugger

+

startWorkshop()}>Workshops

@@ -250,7 +250,7 @@ function renderCall (self, data) { return tx } -function renderUnknownTransaction (self, data, executionContext) { +function renderUnknownTransaction (self, data, blockchain) { var from = data.tx.from var to = data.tx.to var obj = {from, to} @@ -259,7 +259,7 @@ function renderUnknownTransaction (self, data, executionContext) {
txDetails(e, tx, data, obj)}> ${checkTxStatus(data.receipt || data.tx, txType)} - ${context(self, {from, to, data}, executionContext)} + ${context(self, {from, to, data}, blockchain)}
debug(e, data, self)}>Debug
@@ -290,7 +290,7 @@ function checkTxStatus (tx, type) { } } -function context (self, opts, executionContext) { +function context (self, opts, blockchain) { var data = opts.data || '' var from = opts.from ? helper.shortenHexData(opts.from) : '' var to = opts.to @@ -302,7 +302,7 @@ function context (self, opts, executionContext) { var block = data.tx.blockNumber || '' var i = data.tx.transactionIndex var value = val ? typeConversion.toInt(val) : 0 - if (executionContext.getProvider() === 'vm') { + if (blockchain.getProvider() === 'vm') { return yo`
@@ -315,7 +315,7 @@ function context (self, opts, executionContext) {
hash: ${hash}
` - } else if (executionContext.getProvider() !== 'vm' && data.resolvedData) { + } else if (blockchain.getProvider() !== 'vm' && data.resolvedData) { return yo`
From a12d40fee19c0681fa0f24e0498f8039092c29ef Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 15:49:46 -0500 Subject: [PATCH 040/111] remove executionContext from mainview --- src/app.js | 2 +- src/app/panels/main-view.js | 4 +--- src/app/panels/terminal.js | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/app.js b/src/app.js index 3751bfd670..2ca7ff40d1 100644 --- a/src/app.js +++ b/src/app.js @@ -255,7 +255,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org // LAYOUT & SYSTEM VIEWS const appPanel = new MainPanel() - const mainview = new MainView(editor, appPanel, fileManager, appManager, txlistener, eventsDecoder, executionContext, blockchain) + const mainview = new MainView(editor, appPanel, fileManager, appManager, txlistener, eventsDecoder, blockchain) registry.put({ api: mainview, name: 'mainview' }) appManager.register([ diff --git a/src/app/panels/main-view.js b/src/app/panels/main-view.js index 5bbb312f5c..c1f981ab94 100644 --- a/src/app/panels/main-view.js +++ b/src/app/panels/main-view.js @@ -20,7 +20,7 @@ var css = csjs` ` export class MainView { - constructor (editor, mainPanel, fileManager, appManager, txListener, eventsDecoder, executionContext, blockchain) { + constructor (editor, mainPanel, fileManager, appManager, txListener, eventsDecoder, blockchain) { var self = this self.event = new EventManager() self._view = {} @@ -31,7 +31,6 @@ export class MainView { self.mainPanel = mainPanel self.txListener = txListener self.eventsDecoder = eventsDecoder - self.executionContext = executionContext self.blockchain = blockchain this.appManager = appManager this.init() @@ -102,7 +101,6 @@ export class MainView { appManager: this.appManager, eventsDecoder: this.eventsDecoder, txListener: this.txListener, - executionContext: this.executionContext, blockchain: this.blockchain }, { diff --git a/src/app/panels/terminal.js b/src/app/panels/terminal.js index 80d41c2826..45b03be05f 100644 --- a/src/app/panels/terminal.js +++ b/src/app/panels/terminal.js @@ -41,7 +41,6 @@ class Terminal extends Plugin { super(profile) var self = this self.event = new EventManager() - self.executionContext = opts.executionContext self.blockchain = opts.blockchain self._api = api self._opts = opts From 30fe405b0c8b90342559d913d3e9d361d0277690 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 15:53:07 -0500 Subject: [PATCH 041/111] use blockchain object instead of executionContext in transactionReceiptResolver --- src/app.js | 2 +- src/app/udapp/make-udapp.js | 4 ++-- src/lib/transactionReceiptResolver.js | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app.js b/src/app.js index 2ca7ff40d1..66a968cfe9 100644 --- a/src/app.js +++ b/src/app.js @@ -235,7 +235,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const compilersArtefacts = new CompilersArtefacts() // store all the compilation results (key represent a compiler name) registry.put({api: compilersArtefacts, name: 'compilersartefacts'}) - const {eventsDecoder, txlistener} = makeUdapp(udapp, executionContext, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) + const {eventsDecoder, txlistener} = makeUdapp(blockchain, udapp, executionContext, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) // ----------------- network service (resolve network id / name) ---------------------------- const networkModule = new NetworkModule(executionContext) // ----------------- convert offset to line/column service ---------------------------- diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 04f32fef74..45d0713ec1 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -5,7 +5,7 @@ var Txlistener = remixLib.execution.txListener var EventsDecoder = remixLib.execution.EventsDecoder var TransactionReceiptResolver = require('../../lib/transactionReceiptResolver') -export function makeUdapp (udapp, executionContext, compilersArtefacts, logHtmlCallback) { +export function makeUdapp (blockchain, udapp, executionContext, compilersArtefacts, logHtmlCallback) { // ----------------- UniversalDApp ----------------- // TODO: to remove when possible udapp.event.register('transactionBroadcasted', (txhash, networkName) => { @@ -14,7 +14,7 @@ export function makeUdapp (udapp, executionContext, compilersArtefacts, logHtmlC }) // ----------------- Tx listener ----------------- - const transactionReceiptResolver = new TransactionReceiptResolver(executionContext) + const transactionReceiptResolver = new TransactionReceiptResolver(blockchain) const txlistener = new Txlistener({ api: { diff --git a/src/lib/transactionReceiptResolver.js b/src/lib/transactionReceiptResolver.js index 78608eff31..06d1e08cdd 100644 --- a/src/lib/transactionReceiptResolver.js +++ b/src/lib/transactionReceiptResolver.js @@ -1,16 +1,16 @@ 'use strict' module.exports = class TransactionReceiptResolver { - constructor (executionContext) { + constructor (blockchain) { this._transactionReceipts = {} - this.executionContext = executionContext + this.blockchain = blockchain } resolve (tx, cb) { if (this._transactionReceipts[tx.hash]) { return cb(null, this._transactionReceipts[tx.hash]) } - this.executionContext.web3().eth.getTransactionReceipt(tx.hash, (error, receipt) => { + this.blockchain.web3().eth.getTransactionReceipt(tx.hash, (error, receipt) => { if (!error) { this._transactionReceipts[tx.hash] = receipt cb(null, receipt) From 222e698e926dac9e3cafd61d8bc832ea6e6bc9e5 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 15:59:27 -0500 Subject: [PATCH 042/111] abstract txlistener --- src/app/tabs/runTab/model/blockchain.js | 7 +++++++ src/app/udapp/make-udapp.js | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/tabs/runTab/model/blockchain.js b/src/app/tabs/runTab/model/blockchain.js index a3dd051285..ce0c5d8186 100644 --- a/src/app/tabs/runTab/model/blockchain.js +++ b/src/app/tabs/runTab/model/blockchain.js @@ -2,6 +2,7 @@ const remixLib = require('remix-lib') const txFormat = remixLib.execution.txFormat const txExecution = remixLib.execution.txExecution const typeConversion = remixLib.execution.typeConversion +const Txlistener = remixLib.execution.txListener const EventManager = remixLib.EventManager const ethJSUtil = require('ethereumjs-util') const Personal = require('web3-eth-personal') @@ -247,6 +248,12 @@ class Blockchain { web3 () { return this.executionContext.web3() } + + getTxListener(opts) { + const txlistener = new Txlistener(opts, this.executionContext) + return txlistener + } + } module.exports = Blockchain diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 45d0713ec1..5b1ce24167 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -1,7 +1,6 @@ var registry = require('../../global/registry') var remixLib = require('remix-lib') var yo = require('yo-yo') -var Txlistener = remixLib.execution.txListener var EventsDecoder = remixLib.execution.EventsDecoder var TransactionReceiptResolver = require('../../lib/transactionReceiptResolver') @@ -16,7 +15,7 @@ export function makeUdapp (blockchain, udapp, executionContext, compilersArtefac // ----------------- Tx listener ----------------- const transactionReceiptResolver = new TransactionReceiptResolver(blockchain) - const txlistener = new Txlistener({ + const txlistener = blockchain.getTxListener({ api: { contracts: function () { if (compilersArtefacts['__last']) return compilersArtefacts['__last'].getContracts() @@ -28,7 +27,9 @@ export function makeUdapp (blockchain, udapp, executionContext, compilersArtefac }, event: { udapp: udapp.event - }}, executionContext) + } + }) + registry.put({api: txlistener, name: 'txlistener'}) udapp.startListening(txlistener) From 4efd18048ac077242fc8a75fae41976875be6054 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 15:59:58 -0500 Subject: [PATCH 043/111] fix linting issues --- src/app/tabs/runTab/model/blockchain.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/tabs/runTab/model/blockchain.js b/src/app/tabs/runTab/model/blockchain.js index ce0c5d8186..4e2e87ccc4 100644 --- a/src/app/tabs/runTab/model/blockchain.js +++ b/src/app/tabs/runTab/model/blockchain.js @@ -249,7 +249,7 @@ class Blockchain { return this.executionContext.web3() } - getTxListener(opts) { + getTxListener (opts) { const txlistener = new Txlistener(opts, this.executionContext) return txlistener } From 68d540c2f000670fc9bf1fecd65591b957e6d222 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 16:08:15 -0500 Subject: [PATCH 044/111] move txDetailsLink into remix-ide --- src/app/udapp/make-udapp.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 5b1ce24167..17fda93b9c 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -4,11 +4,25 @@ var yo = require('yo-yo') var EventsDecoder = remixLib.execution.EventsDecoder var TransactionReceiptResolver = require('../../lib/transactionReceiptResolver') +const transactionDetailsLinks = { + 'Main': 'https://www.etherscan.io/tx/', + 'Rinkeby': 'https://rinkeby.etherscan.io/tx/', + 'Ropsten': 'https://ropsten.etherscan.io/tx/', + 'Kovan': 'https://kovan.etherscan.io/tx/', + 'Goerli': 'https://goerli.etherscan.io/tx/' +} + +function txDetailsLink (network, hash) { + if (transactionDetailsLinks[network]) { + return transactionDetailsLinks[network] + hash + } +} + export function makeUdapp (blockchain, udapp, executionContext, compilersArtefacts, logHtmlCallback) { // ----------------- UniversalDApp ----------------- // TODO: to remove when possible udapp.event.register('transactionBroadcasted', (txhash, networkName) => { - var txLink = executionContext.txDetailsLink(networkName, txhash) + var txLink = txDetailsLink(networkName, txhash) if (txLink && logHtmlCallback) logHtmlCallback(yo`${txLink}`) }) From 4de0d42e0c7cdac60172d3592cda30848bd346dc Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 16:14:28 -0500 Subject: [PATCH 045/111] remove executioncontext param from makeUdapp --- src/app.js | 2 +- src/app/udapp/make-udapp.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app.js b/src/app.js index 66a968cfe9..67a9c90c39 100644 --- a/src/app.js +++ b/src/app.js @@ -235,7 +235,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const compilersArtefacts = new CompilersArtefacts() // store all the compilation results (key represent a compiler name) registry.put({api: compilersArtefacts, name: 'compilersartefacts'}) - const {eventsDecoder, txlistener} = makeUdapp(blockchain, udapp, executionContext, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) + const {eventsDecoder, txlistener} = makeUdapp(blockchain, udapp, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) // ----------------- network service (resolve network id / name) ---------------------------- const networkModule = new NetworkModule(executionContext) // ----------------- convert offset to line/column service ---------------------------- diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 17fda93b9c..150b912780 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -18,7 +18,7 @@ function txDetailsLink (network, hash) { } } -export function makeUdapp (blockchain, udapp, executionContext, compilersArtefacts, logHtmlCallback) { +export function makeUdapp (blockchain, udapp, compilersArtefacts, logHtmlCallback) { // ----------------- UniversalDApp ----------------- // TODO: to remove when possible udapp.event.register('transactionBroadcasted', (txhash, networkName) => { From 6737ba7099f87b5cdeeeccf8d9e894c528b6f07b Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 16:21:20 -0500 Subject: [PATCH 046/111] remove udapp param from make-udapp --- src/app/tabs/runTab/model/blockchain.js | 11 +++++++++++ src/app/udapp/make-udapp.js | 11 ++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/app/tabs/runTab/model/blockchain.js b/src/app/tabs/runTab/model/blockchain.js index 4e2e87ccc4..60fcae6a48 100644 --- a/src/app/tabs/runTab/model/blockchain.js +++ b/src/app/tabs/runTab/model/blockchain.js @@ -39,6 +39,10 @@ class Blockchain { this.udapp.event.register('transactionExecuted', (error, from, to, data, call, txResult, timestamp) => { this.event.trigger('transactionExecuted', [error, from, to, data, call, txResult, timestamp]) }) + + this.udapp.event.register('transactionBroadcasted', (txhash, networkName) => { + this.event.trigger('transactionBroadcasted', [txhash, networkName]) + }) } async deployContract (selectedContract, args, contractMetadata, compilerContracts, callbacks, confirmationCb) { @@ -250,10 +254,17 @@ class Blockchain { } getTxListener (opts) { + opts.event = { + udapp: this.udapp.event + } const txlistener = new Txlistener(opts, this.executionContext) return txlistener } + startListening (txlistener) { + this.udapp.startListening(txlistener) + } + } module.exports = Blockchain diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 150b912780..e9a8262718 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -18,10 +18,10 @@ function txDetailsLink (network, hash) { } } -export function makeUdapp (blockchain, udapp, compilersArtefacts, logHtmlCallback) { +export function makeUdapp (blockchain, compilersArtefacts, logHtmlCallback) { // ----------------- UniversalDApp ----------------- // TODO: to remove when possible - udapp.event.register('transactionBroadcasted', (txhash, networkName) => { + blockchain.event.register('transactionBroadcasted', (txhash, networkName) => { var txLink = txDetailsLink(networkName, txhash) if (txLink && logHtmlCallback) logHtmlCallback(yo`${txLink}`) }) @@ -38,14 +38,11 @@ export function makeUdapp (blockchain, udapp, compilersArtefacts, logHtmlCallbac resolveReceipt: function (tx, cb) { transactionReceiptResolver.resolve(tx, cb) } - }, - event: { - udapp: udapp.event } }) registry.put({api: txlistener, name: 'txlistener'}) - udapp.startListening(txlistener) + blockchain.startListening(txlistener) const eventsDecoder = new EventsDecoder({ api: { @@ -56,5 +53,5 @@ export function makeUdapp (blockchain, udapp, compilersArtefacts, logHtmlCallbac }) txlistener.startListening() - return {udapp, txlistener, eventsDecoder} + return {txlistener, eventsDecoder} } From 5dc2ff26b0a6c39006b5e1d5d144b5dc1f24daf5 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 27 Dec 2019 16:43:42 -0500 Subject: [PATCH 047/111] remove unnecesary udapp params --- src/app.js | 2 +- src/app/udapp/run-tab.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app.js b/src/app.js index 67a9c90c39..ad89486e31 100644 --- a/src/app.js +++ b/src/app.js @@ -235,7 +235,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const compilersArtefacts = new CompilersArtefacts() // store all the compilation results (key represent a compiler name) registry.put({api: compilersArtefacts, name: 'compilersartefacts'}) - const {eventsDecoder, txlistener} = makeUdapp(blockchain, udapp, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) + const {eventsDecoder, txlistener} = makeUdapp(blockchain, compilersArtefacts, (domEl) => mainview.getTerminal().logHtml(domEl)) // ----------------- network service (resolve network id / name) ---------------------------- const networkModule = new NetworkModule(executionContext) // ----------------- convert offset to line/column service ---------------------------- diff --git a/src/app/udapp/run-tab.js b/src/app/udapp/run-tab.js index 4a32f2d034..f07d0d8c83 100644 --- a/src/app/udapp/run-tab.js +++ b/src/app/udapp/run-tab.js @@ -121,7 +121,7 @@ export class RunTab extends LibraryPlugin { this.instanceContainer.appendChild(this.noInstancesText) } - renderSettings (udapp) { + renderSettings () { this.settingsUI = new SettingsUI(this.blockchain, this.networkModule) this.settingsUI.event.register('clearInstance', () => { @@ -129,7 +129,7 @@ export class RunTab extends LibraryPlugin { }) } - renderDropdown (udappUI, fileManager, compilersArtefacts, config, editor, udapp, filePanel, logCallback) { + renderDropdown (udappUI, fileManager, compilersArtefacts, config, editor, logCallback) { const dropdownLogic = new DropdownLogic(compilersArtefacts, config, editor, this) this.contractDropdownUI = new ContractDropdownUI(this.blockchain, dropdownLogic, logCallback, this) @@ -147,7 +147,7 @@ export class RunTab extends LibraryPlugin { }) } - renderRecorder (udapp, udappUI, fileManager, config, logCallback) { + renderRecorder (udappUI, fileManager, config, logCallback) { this.recorderCount = yo`0` const recorder = new Recorder(this.blockchain, fileManager, config) @@ -206,9 +206,9 @@ export class RunTab extends LibraryPlugin { this.executionContext.listenOnLastBlock() this.udapp.resetEnvironment() this.renderInstanceContainer() - this.renderSettings(this.udapp) - this.renderDropdown(this.udappUI, this.fileManager, this.compilersArtefacts, this.config, this.editor, this.udapp, this.filePanel, this.logCallback) - this.renderRecorder(this.udapp, this.udappUI, this.fileManager, this.config, this.logCallback) + this.renderSettings() + this.renderDropdown(this.udappUI, this.fileManager, this.compilersArtefacts, this.config, this.editor, this.logCallback) + this.renderRecorder(this.udappUI, this.fileManager, this.config, this.logCallback) this.renderRecorderCard() return this.renderContainer() } From ab6d31b80db6c56cec22e57aaa98bd4bdef8e9b2 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 20 Jan 2020 15:26:34 +0530 Subject: [PATCH 048/111] set and get compiler state properly --- src/app/tabs/compile-tab.js | 2 +- src/app/tabs/compileTab/compileTab.js | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index f2727abc9c..fb5f1c0a0c 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -187,7 +187,7 @@ class CompileTab extends ViewPlugin { } getCompilationResult () { - return this.compileTabLogic.compiler.lastCompilationResult + return this.compileTabLogic.compiler.state.lastCompilationResult } // This function is used by remix-plugin diff --git a/src/app/tabs/compileTab/compileTab.js b/src/app/tabs/compileTab/compileTab.js index fd54496f6f..e0f2aa30b9 100644 --- a/src/app/tabs/compileTab/compileTab.js +++ b/src/app/tabs/compileTab/compileTab.js @@ -14,6 +14,7 @@ class CompileTab { this.queryParams = queryParams this.compilerImport = new CompilerImport() this.compiler = new Compiler((url, cb) => this.importFileCb(url, cb)) + console.log('This is compiler object bro-1-->', this.compiler) this.fileManager = fileManager this.editor = editor this.config = config @@ -24,26 +25,28 @@ class CompileTab { this.optimize = this.queryParams.get().optimize this.optimize = this.optimize === 'true' this.queryParams.update({ optimize: this.optimize }) - this.compiler.optimize = this.optimize + this.compiler.set('optimize', this.optimize) this.evmVersion = this.queryParams.get().evmVersion if (this.evmVersion === 'undefined' || this.evmVersion === 'null' || !this.evmVersion) { this.evmVersion = null } this.queryParams.update({ evmVersion: this.evmVersion }) - this.compiler.evmVersion = this.evmVersion + this.compiler.set('evmVersion', this.evmVersion) } setOptimize (newOptimizeValue) { this.optimize = newOptimizeValue this.queryParams.update({ optimize: this.optimize }) - this.compiler.optimize = this.optimize + this.compiler.set('optimize', this.optimize) + console.log('This is compiler object bro--2->', this.compiler) } setEvmVersion (newEvmVersion) { this.evmVersion = newEvmVersion this.queryParams.update({ evmVersion: this.evmVersion }) - this.compiler.evmVersion = this.evmVersion + this.compiler.set('evmVersion', this.evmVersion) + console.log('This is compiler object bro--3->', this.compiler) } /** @@ -51,7 +54,7 @@ class CompileTab { * @params lang {'Solidity' | 'Yul'} ... */ setLanguage (lang) { - this.compiler.language = lang + this.compiler.set('language', lang) } /** From 60fd24ec8aafe2195ad4181a9adf2e888085a71d Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Mon, 20 Jan 2020 15:52:50 +0530 Subject: [PATCH 049/111] removed consoles --- src/app/tabs/compileTab/compileTab.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/app/tabs/compileTab/compileTab.js b/src/app/tabs/compileTab/compileTab.js index e0f2aa30b9..bace3ade28 100644 --- a/src/app/tabs/compileTab/compileTab.js +++ b/src/app/tabs/compileTab/compileTab.js @@ -14,7 +14,6 @@ class CompileTab { this.queryParams = queryParams this.compilerImport = new CompilerImport() this.compiler = new Compiler((url, cb) => this.importFileCb(url, cb)) - console.log('This is compiler object bro-1-->', this.compiler) this.fileManager = fileManager this.editor = editor this.config = config @@ -39,14 +38,12 @@ class CompileTab { this.optimize = newOptimizeValue this.queryParams.update({ optimize: this.optimize }) this.compiler.set('optimize', this.optimize) - console.log('This is compiler object bro--2->', this.compiler) } setEvmVersion (newEvmVersion) { this.evmVersion = newEvmVersion this.queryParams.update({ evmVersion: this.evmVersion }) this.compiler.set('evmVersion', this.evmVersion) - console.log('This is compiler object bro--3->', this.compiler) } /** From e77bc023692d8168ac1ca3c95f4914c724f9436e Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 22 Jan 2020 17:30:25 +0100 Subject: [PATCH 050/111] added missing `reject` --- src/app/files/compiler-metadata.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/files/compiler-metadata.js b/src/app/files/compiler-metadata.js index 1485455049..0e20516a38 100644 --- a/src/app/files/compiler-metadata.js +++ b/src/app/files/compiler-metadata.js @@ -99,6 +99,7 @@ class CompilerMetadata extends Plugin { if (provider && path) { self.executionContext.detectNetwork((err, { id, name } = {}) => { if (err) { + reject(error) console.log(err) } else { var fileName = self._JSONFileName(path, contractName) From 4a1f0cc40f73a2687d6fd1b3c106387e3f835bed Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 22 Jan 2020 17:36:59 +0100 Subject: [PATCH 051/111] fix typo --- src/app/files/compiler-metadata.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/files/compiler-metadata.js b/src/app/files/compiler-metadata.js index 0e20516a38..9f874dba5b 100644 --- a/src/app/files/compiler-metadata.js +++ b/src/app/files/compiler-metadata.js @@ -99,7 +99,7 @@ class CompilerMetadata extends Plugin { if (provider && path) { self.executionContext.detectNetwork((err, { id, name } = {}) => { if (err) { - reject(error) + reject(err) console.log(err) } else { var fileName = self._JSONFileName(path, contractName) From b0e778f050c845c7e5daaedc4b97f840b00a42cd Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 23 Jan 2020 10:44:47 +0100 Subject: [PATCH 052/111] call `reject` after `console` --- src/app/files/compiler-metadata.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/files/compiler-metadata.js b/src/app/files/compiler-metadata.js index 9f874dba5b..4513479a89 100644 --- a/src/app/files/compiler-metadata.js +++ b/src/app/files/compiler-metadata.js @@ -99,8 +99,8 @@ class CompilerMetadata extends Plugin { if (provider && path) { self.executionContext.detectNetwork((err, { id, name } = {}) => { if (err) { - reject(err) console.log(err) + reject(err) } else { var fileName = self._JSONFileName(path, contractName) provider.get(fileName, (error, content) => { From 91c78bf91579d2b53f493bc2593f4f34ba8a4626 Mon Sep 17 00:00:00 2001 From: yann300 Date: Sat, 18 Jan 2020 16:42:52 +0100 Subject: [PATCH 053/111] fix ipfs upload --- src/app/tabs/compile-tab.js | 4 +-- src/lib/publishOnIpfs.js | 18 ++++++++++--- src/lib/publishOnSwarm.js | 18 ++++++++++--- test-browser/tests/publishContract.js | 37 +++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 test-browser/tests/publishContract.js diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index f2727abc9c..83f3fc43a6 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -239,11 +239,11 @@ class CompileTab extends ViewPlugin { ${selectEl}
- - diff --git a/src/lib/publishOnIpfs.js b/src/lib/publishOnIpfs.js index 555d3592aa..52a55a02e7 100644 --- a/src/lib/publishOnIpfs.js +++ b/src/lib/publishOnIpfs.js @@ -27,11 +27,21 @@ module.exports = (contract, fileManager, cb, ipfsVerifiedPublishCallBack) => { async.eachSeries(Object.keys(metadata.sources), function (fileName, cb) { // find hash - var hash + let hash = null try { - hash = metadata.sources[fileName].urls[1].match('dweb:/ipfs/(.+)')[1] + // we try extract the hash defined in the metadata.json + // in order to check if the hash that we get after publishing is the same as the one located in metadata.json + // if it's not the same, we throw "hash mismatch between solidity bytecode and uploaded content" + // if we don't find the hash in the metadata.json, the check is not done. + // + // TODO: refactor this with publishOnSwarm + if (metadata.sources[fileName].urls) { + metadata.sources[fileName].urls.forEach(url => { + if (url.includes('ipfs')) hash = url.match('dweb:/ipfs/(.+)')[1] + }) + } } catch (e) { - return cb('Metadata inconsistency') + return cb('Error while extracting the hash from metadata.json') } fileManager.fileProviderOf(fileName).get(fileName, (error, content) => { @@ -94,7 +104,7 @@ module.exports = (contract, fileManager, cb, ipfsVerifiedPublishCallBack) => { async function ipfsVerifiedPublish (content, expectedHash, cb) { try { const results = await severalGatewaysPush(content) - if (results !== expectedHash) { + if (expectedHash && results !== expectedHash) { cb(null, { message: 'hash mismatch between solidity bytecode and uploaded content.', url: 'dweb:/ipfs/' + results, hash: results }) } else { cb(null, { message: 'ok', url: 'dweb:/ipfs/' + results, hash: results }) diff --git a/src/lib/publishOnSwarm.js b/src/lib/publishOnSwarm.js index 2ac9ef3c08..10fd618cf6 100644 --- a/src/lib/publishOnSwarm.js +++ b/src/lib/publishOnSwarm.js @@ -20,11 +20,21 @@ module.exports = (contract, fileManager, cb, swarmVerifiedPublishCallBack) => { async.eachSeries(Object.keys(metadata.sources), function (fileName, cb) { // find hash - var hash + let hash = null try { - hash = metadata.sources[fileName].urls[0].match('(bzzr|bzz-raw)://(.+)')[1] + // we try extract the hash defined in the metadata.json + // in order to check if the hash that we get after publishing is the same as the one located in metadata.json + // if it's not the same, we throw "hash mismatch between solidity bytecode and uploaded content" + // if we don't find the hash in the metadata.json, the check is not done. + // + // TODO: refactor this with publishOnIpfs + if (metadata.sources[fileName].urls) { + metadata.sources[fileName].urls.forEach(url => { + if (url.includes('bzz')) hash = url.match('(bzzr|bzz-raw)://(.+)')[1] + }) + } } catch (e) { - return cb('Metadata inconsistency') + return cb('Error while extracting the hash from metadata.json') } fileManager.fileProviderOf(fileName).get(fileName, (error, content) => { @@ -90,7 +100,7 @@ function swarmVerifiedPublish (content, expectedHash, cb) { swarmgw.put(content, function (err, ret) { if (err) { cb(err) - } else if (ret !== expectedHash) { + } else if (expectedHash && ret !== expectedHash) { cb(null, { message: 'hash mismatch between solidity bytecode and uploaded content.', url: 'bzz-raw://' + ret, hash: ret }) } else { cb(null, { message: 'ok', url: 'bzz-raw://' + ret, hash: ret }) diff --git a/test-browser/tests/publishContract.js b/test-browser/tests/publishContract.js new file mode 100644 index 0000000000..9636d990a9 --- /dev/null +++ b/test-browser/tests/publishContract.js @@ -0,0 +1,37 @@ +'use strict' +var init = require('../helpers/init') +var sauce = require('./sauce') + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + '@sources': function () { + return [] + }, + 'Publish on IPFS': function (browser) { + browser + .waitForElementVisible('#icon-panel', 10000) + .clickLaunchIcon('fileExplorers') + .switchFile('browser/3_Ballot.sol') + .verifyContracts(['Ballot']) + .click('#publishOnIpfs') + .getModalBody((value, done) => { + if (value.indexOf('Metadata published successfully.') === -1) browser.assert.fail('ipfs deploy failed', '', '') + if (value.indexOf('dweb:/ipfs') === -1) browser.assert.fail('ipfs deploy failed', '', '') + done() + }) + .modalFooterOKClick() + }, + 'Publish on Swarm': function (browser) { + browser + .click('#publishOnSwarm') + .getModalBody((value, done) => { + if (value.indexOf('Metadata published successfully.') === -1) browser.assert.fail('swarm deploy failed', '', '') + if (value.indexOf('bzz') === -1) browser.assert.fail('swarm deploy failed', '', '') + done() + }) + .end() + }, + tearDown: sauce +} From 1ce1a1f0cfab130ae5a5f703ae159239d193e34f Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 15 Jan 2020 16:09:41 +0100 Subject: [PATCH 054/111] fix importing from node_modules && add more e2e tests --- .../contracts/math/SafeMath.sol | 156 +++++++++++++++++ .../contracts/sample.sol | 1 + package.json | 3 +- src/app/files/fileManager.js | 4 + src/app/tabs/compileTab/compileTab.js | 54 ++++-- test-browser/commands/clickLaunchIcon.js | 2 +- .../commands/setSolidityCompilerVersion.js | 15 ++ test-browser/commands/verifyContracts.js | 11 +- test-browser/helpers/init.js | 3 + test-browser/tests/gist.js | 3 - test-browser/tests/remixd.js | 32 +++- test-browser/tests/solidityImport.js | 160 ++++-------------- 12 files changed, 292 insertions(+), 152 deletions(-) create mode 100644 contracts/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol create mode 100644 contracts/node_modules/openzeppelin-solidity/contracts/sample.sol create mode 100644 test-browser/commands/setSolidityCompilerVersion.js diff --git a/contracts/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol b/contracts/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol new file mode 100644 index 0000000000..e7091fb226 --- /dev/null +++ b/contracts/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol @@ -0,0 +1,156 @@ +pragma solidity ^0.5.0; + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * - Subtraction cannot overflow. + * + * _Available since v2.4.0._ + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b <= a, errorMessage); + uint256 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + * + * _Available since v2.4.0._ + */ + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + // Solidity only automatically asserts when dividing by 0 + require(b > 0, errorMessage); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + * + * _Available since v2.4.0._ + */ + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b != 0, errorMessage); + return a % b; + } +} diff --git a/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol b/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol new file mode 100644 index 0000000000..73ecf078be --- /dev/null +++ b/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol @@ -0,0 +1 @@ +import "https://github.com/OpenZeppelin/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; contract test11 {} diff --git a/package.json b/package.json index bea10a6ee8..e199fd1409 100644 --- a/package.json +++ b/package.json @@ -168,9 +168,10 @@ "nightwatch_local_staticAnalysis": "nightwatch ./test-browser/tests/staticAnalysis.js --config nightwatch.js --env chrome ", "nightwatch_local_signingMessage": "nightwatch ./test-browser/tests/signingMessage.js --config nightwatch.js --env chrome ", "nightwatch_local_solidityUnittests": "nightwatch ./test-browser/tests/solidityUnittests.js --config nightwatch.js --env chrome ", - "nightwatch_local_remixd": "nightwatch ./test-browser/tests/remix.js --config nightwatch.js --env chrome ", + "nightwatch_local_remixd": "nightwatch ./test-browser/tests/remixd.js --config nightwatch.js --env chrome ", "nightwatch_local_console": "nightwatch ./test-browser/tests/console.js --config nightwatch.js --env chrome ", "nightwatch_local_gist": "nightwatch ./test-browser/tests/gist.js --config nightwatch.js --env chrome ", + "nightwatch_local_workspace": "nightwatch ./test-browser/tests/workspace.js --config nightwatch.js --env chrome ", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc_root build", "remixd": "remixd -s ./contracts --remix-ide http://127.0.0.1:8080", diff --git a/src/app/files/fileManager.js b/src/app/files/fileManager.js index eb1b538807..4ec3095bf2 100644 --- a/src/app/files/fileManager.js +++ b/src/app/files/fileManager.js @@ -314,6 +314,10 @@ class FileManager extends Plugin { }) } + getProvider (name) { + return this._deps.filesProviders[name] + } + fileProviderOf (file) { if (file.indexOf('localhost') === 0) { return this._deps.filesProviders['localhost'] diff --git a/src/app/tabs/compileTab/compileTab.js b/src/app/tabs/compileTab/compileTab.js index fd54496f6f..acba8e78db 100644 --- a/src/app/tabs/compileTab/compileTab.js +++ b/src/app/tabs/compileTab/compileTab.js @@ -99,6 +99,15 @@ class CompileTab { }) } + /** + * import the content of @arg url. + * first look in the browser localstorage (browser explorer) or locahost explorer. if the url start with `browser/*` or `localhost/*` + * then check if the @arg url is located in the localhost, in the node_modules or installed_contracts folder + * then check if the @arg url match any external url + * + * @param {String} url - URL of the content. can be basically anything like file located in the browser explorer, in the localhost explorer, raw HTTP, github address etc... + * @param {Function} cb - callback + */ importFileCb (url, filecb) { if (url.indexOf('remix_tests.sol') !== -1) return filecb(null, remixTests.assertLibCode) @@ -107,26 +116,39 @@ class CompileTab { if (provider.type === 'localhost' && !provider.isConnected()) { return filecb(`file provider ${provider.type} not available while trying to resolve ${url}`) } - return provider.exists(url, (error, exist) => { + provider.exists(url, (error, exist) => { if (error) return filecb(error) - if (exist) { - return provider.get(url, filecb) + if (!exist && provider.type === 'localhost') return filecb(`not found ${url}`) + + /* + if the path is absolute and the file does not exist, we can stop here + Doesn't make sense to try to resolve "localhost/node_modules/localhost/node_modules/" and we'll end in an infinite loop. + */ + if (!exist && url.startsWith('browser/')) return filecb(`not found ${url}`) + if (!exist && url.startsWith('localhost/')) return filecb(`not found ${url}`) + + if (exist) return provider.get(url, filecb) + + // try to resolve localhost modules (aka truffle imports) - e.g from the node_modules folder + const localhostProvider = this.fileManager.getProvider('localhost') + if (localhostProvider.isConnected()) { + var splitted = /([^/]+)\/(.*)$/g.exec(url) + return async.tryEach([ + (cb) => { this.importFileCb('localhost/installed_contracts/' + url, cb) }, + (cb) => { if (!splitted) { cb('URL not parseable: ' + url) } else { this.importFileCb('localhost/installed_contracts/' + splitted[1] + '/contracts/' + splitted[2], cb) } }, + (cb) => { this.importFileCb('localhost/node_modules/' + url, cb) }, + (cb) => { if (!splitted) { cb('URL not parseable: ' + url) } else { this.importFileCb('localhost/node_modules/' + splitted[1] + '/contracts/' + splitted[2], cb) } }], + (error, result) => { + if (error) return this.importExternal(url, filecb) + filecb(null, result) + } + ) + } else { + // try to resolve external content + this.importExternal(url, filecb) } - this.importExternal(url, filecb) }) } - if (this.compilerImport.isRelativeImport(url)) { - // try to resolve localhost modules (aka truffle imports) - var splitted = /([^/]+)\/(.*)$/g.exec(url) - return async.tryEach([ - (cb) => { this.importFileCb('localhost/installed_contracts/' + url, cb) }, - (cb) => { if (!splitted) { cb('URL not parseable: ' + url) } else { this.importFileCb('localhost/installed_contracts/' + splitted[1] + '/contracts/' + splitted[2], cb) } }, - (cb) => { this.importFileCb('localhost/node_modules/' + url, cb) }, - (cb) => { if (!splitted) { cb('URL not parseable: ' + url) } else { this.importFileCb('localhost/node_modules/' + splitted[1] + '/contracts/' + splitted[2], cb) } }], - (error, result) => { filecb(error, result) } - ) - } - this.importExternal(url, filecb) } } diff --git a/test-browser/commands/clickLaunchIcon.js b/test-browser/commands/clickLaunchIcon.js index 871ac7edb0..6774813b20 100644 --- a/test-browser/commands/clickLaunchIcon.js +++ b/test-browser/commands/clickLaunchIcon.js @@ -2,7 +2,7 @@ const EventEmitter = require('events') class ClickLaunchIcon extends EventEmitter { command (icon) { - this.api.click('#icon-panel div[plugin="' + icon + '"]').perform(() => { + this.api.waitForElementVisible('#icon-panel div[plugin="' + icon + '"]').click('#icon-panel div[plugin="' + icon + '"]').perform(() => { this.emit('complete') }) return this diff --git a/test-browser/commands/setSolidityCompilerVersion.js b/test-browser/commands/setSolidityCompilerVersion.js new file mode 100644 index 0000000000..afca5d562f --- /dev/null +++ b/test-browser/commands/setSolidityCompilerVersion.js @@ -0,0 +1,15 @@ +const EventEmitter = require('events') + +class SetSolidityCompilerVersion extends EventEmitter { + command (version) { + this.api + .click(`#compileTabView #versionSelector [value="${version}"]`) + .pause(5000) + .perform(() => { + this.emit('complete') + }) + return this + } +} + +module.exports = SetSolidityCompilerVersion diff --git a/test-browser/commands/verifyContracts.js b/test-browser/commands/verifyContracts.js index 42bf669e4c..6e0802017a 100644 --- a/test-browser/commands/verifyContracts.js +++ b/test-browser/commands/verifyContracts.js @@ -1,9 +1,9 @@ const EventEmitter = require('events') class VerifyContracts extends EventEmitter { - command (compiledContractNames) { + command (compiledContractNames, opts = { wait: 1000 }) { this.api.perform((done) => { - verifyContracts(this.api, compiledContractNames, () => { + verifyContracts(this.api, compiledContractNames, opts, () => { done() this.emit('complete') }) @@ -12,9 +12,10 @@ class VerifyContracts extends EventEmitter { } } -function getCompiledContracts (browser, callback) { +function getCompiledContracts (browser, opts, callback) { browser .clickLaunchIcon('solidity') + .pause(opts.wait) .waitForElementPresent('#compileTabView select#compiledContracts option') .execute(function () { var contracts = document.querySelectorAll('#compileTabView select#compiledContracts option') @@ -32,8 +33,8 @@ function getCompiledContracts (browser, callback) { }) } -function verifyContracts (browser, compiledContractNames, callback) { - getCompiledContracts(browser, (result) => { +function verifyContracts (browser, compiledContractNames, opts, callback) { + getCompiledContracts(browser, opts, (result) => { if (result.value) { for (var contract in compiledContractNames) { console.log(' - ' + compiledContractNames[contract], result.value) diff --git a/test-browser/helpers/init.js b/test-browser/helpers/init.js index 6e4fa7df6b..6f0a2186f9 100644 --- a/test-browser/helpers/init.js +++ b/test-browser/helpers/init.js @@ -24,5 +24,8 @@ function initModules (browser, callback) { .scrollAndClick('#pluginManager article[id="remixPluginManagerListItem_solidityStaticAnalysis"] button') .scrollAndClick('#pluginManager article[id="remixPluginManagerListItem_debugger"] button') .scrollAndClick('#icon-panel div[plugin="fileExplorers"]') + .clickLaunchIcon('settings') + .setValue('#gistaccesstoken', process.env.gist_token) + .click('#savegisttoken') .perform(() => { callback() }) } diff --git a/test-browser/tests/gist.js b/test-browser/tests/gist.js index 11d5a52814..0e75718373 100644 --- a/test-browser/tests/gist.js +++ b/test-browser/tests/gist.js @@ -17,9 +17,6 @@ module.exports = { console.log('token', process.env.gist_token) browser .waitForElementVisible('#icon-panel', 10000) - .clickLaunchIcon('settings') - .setValue('#gistaccesstoken', process.env.gist_token) - .click('#savegisttoken') .clickLaunchIcon('fileExplorers') .click('#publishToGist') .modalFooterOKClick() diff --git a/test-browser/tests/remixd.js b/test-browser/tests/remixd.js index 7b93666164..e4878526eb 100644 --- a/test-browser/tests/remixd.js +++ b/test-browser/tests/remixd.js @@ -28,6 +28,12 @@ var sources = [ { 'localhost/src/gmbh/company.sol': {content: assetsTestContract}, 'localhost/src/gmbh/contract.sol': {content: gmbhTestContract} + }, + { + 'browser/test_import_node_modules.sol': {content: 'import "openzeppelin-solidity/contracts/math/SafeMath.sol";'} + }, + { + 'browser/test_import_node_modules_with_github_import.sol': {content: 'import "openzeppelin-solidity/contracts/sample.sol";'} } ] @@ -41,6 +47,29 @@ module.exports = { 'Remixd': function (browser) { runTests(browser) }, + 'Import from node_modules ': function (browser) { + /* + when a relative import is used (i.e import "openzeppelin-solidity/contracts/math/SafeMath.sol") + remix (as well as truffle) try to resolve it against the node_modules and installed_contracts folder. + */ + browser + .waitForElementVisible('#icon-panel', 2000) + .clickLaunchIcon('fileExplorers') + .addFile('test_import_node_modules.sol', sources[3]['browser/test_import_node_modules.sol']) + .clickLaunchIcon('solidity') + .testContracts('test_import_node_modules.sol', sources[3]['browser/test_import_node_modules.sol'], ['SafeMath']) + }, + 'Import from node_modules and reference a github import': function (browser) { + browser + .waitForElementVisible('#icon-panel', 2000) + .clickLaunchIcon('fileExplorers') + .addFile('test_import_node_modules_with_github_import.sol', sources[4]['browser/test_import_node_modules_with_github_import.sol']) + .clickLaunchIcon('solidity') + .testContracts('test_import_node_modules_with_github_import.sol', sources[4]['browser/test_import_node_modules_with_github_import.sol'], ['ERC20', 'test11']) + .clickLaunchIcon('pluginManager') + .scrollAndClick('#pluginManager article[id="remixPluginManagerListItem_remixd"] button') + .end() + }, tearDown: sauce } @@ -98,9 +127,6 @@ function runTests (browser, testData) { .waitForElementNotPresent('[data-path="localhost/folder1/contract_' + browserName + '.sol"]') // check if renamed (old) file is not present .waitForElementNotPresent('[data-path="localhost/folder1/contract_' + browserName + '_toremove.sol"]') // check if removed (old) file is not present .click('[data-path="localhost/folder1/renamed_contract_' + browserName + '.sol"]') - .clickLaunchIcon('pluginManager') - .scrollAndClick('#pluginManager article[id="remixPluginManagerListItem_remixd"] button') - .end() } function testImportFromRemixd (browser, callback) { diff --git a/test-browser/tests/solidityImport.js b/test-browser/tests/solidityImport.js index 57d222c2cc..1ebb429396 100644 --- a/test-browser/tests/solidityImport.js +++ b/test-browser/tests/solidityImport.js @@ -22,129 +22,40 @@ module.exports = { 'Test Failed Import': function (browser) { browser.addFile('Untitled3.sol', sources[2]['browser/Untitled3.sol']) .clickLaunchIcon('solidity') - .assert.containsText('#compileTabView .error pre', 'Unable to import "browser/Untitled11.sol": File not found') - .end() + .assert.containsText('#compileTabView .error pre', 'not found browser/Untitled11.sol') }, - tearDown: sauce -} - -var abstractENS = ` -contract AbstractENS { - function owner(bytes32 node) public view returns(address); - function resolver(bytes32 node) public view returns(address); - function ttl(bytes32 node) public view returns(uint64); - function setOwner(bytes32 node, address owner) public; - function setSubnodeOwner(bytes32 node, bytes32 label, address owner) public; - function setResolver(bytes32 node, address resolver) public; - function setTTL(bytes32 node, uint64 ttl) public; - - // Logged when the owner of a node assigns a new owner to a subnode. - event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); - - // Logged when the owner of a node transfers ownership to a new account. - event Transfer(bytes32 indexed node, address owner); - - // Logged when the resolver for a node changes. - event NewResolver(bytes32 indexed node, address resolver); - - // Logged when the TTL of a node changes - event NewTTL(bytes32 indexed node, uint64 ttl); -}` - -var ENS = `pragma solidity ^0.4.0; - -import './AbstractENS.sol'; - -/** - * The ENS registry contract. - */ -contract ENS is AbstractENS { - struct Record { - address owner; - address resolver; - uint64 ttl; - } - - mapping(bytes32=>Record) records; - - // Permits modifications only by the owner of the specified node. - modifier only_owner(bytes32 node) { - if (records[node].owner != msg.sender) revert(); - _; - } - - /** - * Constructs a new ENS registrar. - */ - constructor() public { - records[0].owner = msg.sender; - } - - /** - * Returns the address that owns the specified node. - */ - function owner(bytes32 node) public view returns (address) { - return records[node].owner; - } - /** - * Returns the address of the resolver for the specified node. - */ - function resolver(bytes32 node) public view returns (address) { - return records[node].resolver; - } - - /** - * Returns the TTL of a node, and any records associated with it. - */ - function ttl(bytes32 node) public view returns (uint64) { - return records[node].ttl; - } - - /** - * Transfers ownership of a node to a new address. May only be called by the current - * owner of the node. - * @param node The node to transfer ownership of. - * @param owner The address of the new owner. - */ - function setOwner(bytes32 node, address owner) public only_owner(node) { - emit Transfer(node, owner); - records[node].owner = owner; - } + 'Test Github Import - from master branch': function (browser) { + browser + .setSolidityCompilerVersion('soljson-v0.5.0+commit.1d4f565a.js') + .addFile('Untitled4.sol', sources[3]['browser/Untitled4.sol']) + .clickLaunchIcon('fileExplorers') + .verifyContracts(['test7', 'ERC20', 'SafeMath'], {wait: 10000}) + }, - /** - * Transfers ownership of a subnode sha3(node, label) to a new address. May only be - * called by the owner of the parent node. - * @param node The parent node. - * @param label The hash of the label specifying the subnode. - * @param owner The address of the new owner. - */ - function setSubnodeOwner(bytes32 node, bytes32 label, address owner) public only_owner(node) { - bytes32 subnode = keccak256(abi.encodePacked(node, label)); - emit NewOwner(node, label, owner); - records[subnode].owner = owner; - } + 'Test Github Import - from other branch': function (browser) { + browser + .addFile('Untitled5.sol', sources[4]['browser/Untitled5.sol']) + .clickLaunchIcon('fileExplorers') + .verifyContracts(['test8', 'ERC20', 'SafeMath'], {wait: 10000}) + }, - /** - * Sets the resolver address for the specified node. - * @param node The node to update. - * @param resolver The address of the resolver. - */ - function setResolver(bytes32 node, address resolver) public only_owner(node) { - emit NewResolver(node, resolver); - records[node].resolver = resolver; - } + 'Test Github Import - no branch specified': function (browser) { + browser + .addFile('Untitled6.sol', sources[5]['browser/Untitled6.sol']) + .clickLaunchIcon('fileExplorers') + .verifyContracts(['test10', 'ERC20', 'SafeMath'], {wait: 10000}) + }, - /** - * Sets the TTL for the specified node. - * @param node The node to update. - * @param ttl The TTL in seconds. - */ - function setTTL(bytes32 node, uint64 ttl) public only_owner(node) { - emit NewTTL(node, ttl); - records[node].ttl = ttl; - } -}` + 'Test Github Import - raw URL': function (browser) { + browser + .addFile('Untitled7.sol', sources[6]['browser/Untitled7.sol']) + .clickLaunchIcon('fileExplorers') + .verifyContracts(['test11', 'ERC20', 'SafeMath'], {wait: 10000}) + .end() + }, + tearDown: sauce +} var sources = [ { @@ -158,12 +69,15 @@ var sources = [ 'browser/Untitled3.sol': {content: 'import "./Untitled11.sol"; contract test6 {}'} }, { - 'browser/Untitled4.sol': {content: 'import "github.com/ethereum/ens/contracts/ENS.sol"; contract test7 {}'}, - 'github.com/ethereum/ens/contracts/ENS.sol': {content: ENS} + 'browser/Untitled4.sol': {content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test7 {}'} + }, + { + 'browser/Untitled5.sol': {content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.3.0/contracts/token/ERC20/ERC20.sol"; contract test8 {}'} + }, + { + 'browser/Untitled6.sol': {content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; contract test10 {}'} }, { - 'browser/Untitled4.sol': {content: 'import "github.com/ethereum/ens/contracts/ENS.sol"; contract test7 {}'}, - 'github.com/ethereum/ens/contracts/ENS.sol': {content: ENS}, - 'github.com/ethereum/ens/contracts/AbstractENS.sol': {content: abstractENS} + 'browser/Untitled7.sol': {content: 'import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-contracts/master/contracts/token/ERC20/ERC20.sol"; contract test11 {}'} } ] From 33ed083c1e2680f9e69eefadbbf572315ab2e686 Mon Sep 17 00:00:00 2001 From: Liana Husikyan Date: Tue, 28 Jan 2020 10:54:15 +0100 Subject: [PATCH 055/111] Update settings.js --- src/app/tabs/runTab/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/tabs/runTab/settings.js b/src/app/tabs/runTab/settings.js index 09375020a3..153243c607 100644 --- a/src/app/tabs/runTab/settings.js +++ b/src/app/tabs/runTab/settings.js @@ -18,7 +18,7 @@ class SettingsUI { this.blockchain.event.register('transactionExecuted', (error, from, to, data, lookupOnly, txResult) => { if (error) return - if (!lookupOnly) this.el.querySelector('#value').value = '0' + if (!lookupOnly) this.el.querySelector('#deployAndRunTransferValue').value = '0' this.updateAccountBalances() }) this._components = { From ef3195c2f23ea3dc63d53332d363a7f0bce6446c Mon Sep 17 00:00:00 2001 From: Liana Husikyan Date: Tue, 28 Jan 2020 10:55:27 +0100 Subject: [PATCH 056/111] Update settings.js --- src/app/tabs/runTab/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/tabs/runTab/settings.js b/src/app/tabs/runTab/settings.js index 153243c607..09375020a3 100644 --- a/src/app/tabs/runTab/settings.js +++ b/src/app/tabs/runTab/settings.js @@ -18,7 +18,7 @@ class SettingsUI { this.blockchain.event.register('transactionExecuted', (error, from, to, data, lookupOnly, txResult) => { if (error) return - if (!lookupOnly) this.el.querySelector('#deployAndRunTransferValue').value = '0' + if (!lookupOnly) this.el.querySelector('#value').value = '0' this.updateAccountBalances() }) this._components = { From 7db7b758bc08efaea42d8752e4d1cab2d8590c3e Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Fri, 24 Jan 2020 16:09:50 +0530 Subject: [PATCH 057/111] pass compiler configuration to remix-tests --- src/app/tabs/compile-tab.js | 9 +++++++++ src/app/tabs/test-tab.js | 25 +++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index e7568074ed..6fb90eb2c3 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -200,6 +200,15 @@ class CompileTab extends ViewPlugin { return this.compilerContainer.data.selectedVersion } + // This function is used for passing the compiler configuration to 'remix-tests' + getCurrentCompilerConfig () { + return { + currentVersion: this.compilerContainer.data.selectedVersion, + evmVersion: this.compileTabLogic.evmVersion, + optimize: this.compileTabLogic.optimize + } + } + /********* * SUB-COMPONENTS */ diff --git a/src/app/tabs/test-tab.js b/src/app/tabs/test-tab.js index 7dcaae816f..bbf3f0796b 100644 --- a/src/app/tabs/test-tab.js +++ b/src/app/tabs/test-tab.js @@ -153,8 +153,15 @@ module.exports = class TestTab extends ViewPlugin { return new Promise((resolve, reject) => { let runningTest = {} runningTest[path] = { content } - let currentCompilerUrl = this.baseurl + '/' + this.compileTab.getCurrentVersion() - remixTests.runTestSources(runningTest, currentCompilerUrl, canUseWorker(this.compileTab.getCurrentVersion()), () => {}, () => {}, (error, result) => { + const {currentVersion, evmVersion, optimize} = this.compileTab.getCurrentCompilerConfig() + const currentCompilerUrl = this.baseurl + '/' + currentVersion + const compilerConfig = { + currentCompilerUrl, + evmVersion, + optimize, + usingWorker: canUseWorker(currentVersion) + } + remixTests.runTestSources(runningTest, compilerConfig, () => {}, () => {}, (error, result) => { if (error) return reject(error) resolve(result) }, (url, cb) => { @@ -166,13 +173,19 @@ module.exports = class TestTab extends ViewPlugin { runTest (testFilePath, callback) { this.loading.hidden = false this.fileManager.getFile(testFilePath).then((content) => { - var runningTest = {} + let runningTest = {} runningTest[testFilePath] = { content } - let currentCompilerUrl = this.baseurl + '/' + this.compileTab.getCurrentVersion() + const {currentVersion, evmVersion, optimize} = this.compileTab.getCurrentCompilerConfig() + const currentCompilerUrl = this.baseurl + '/' + currentVersion + const compilerConfig = { + currentCompilerUrl, + evmVersion, + optimize, + usingWorker: canUseWorker(currentVersion) + } remixTests.runTestSources( runningTest, - currentCompilerUrl, - canUseWorker(this.compileTab.getCurrentVersion()), + compilerConfig, (result) => this.testCallback(result), (_err, result, cb) => this.resultsCallback(_err, result, cb), (error, result) => { From b4c85433b38107b47965f6542ab5b4a1aa0be8ef Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Tue, 28 Jan 2020 12:54:57 +0530 Subject: [PATCH 058/111] libs version updated --- package-lock.json | 586 +++++++++++++++++++++++++++++++-------- package.json | 10 +- src/app/tabs/test-tab.js | 2 +- 3 files changed, 478 insertions(+), 120 deletions(-) diff --git a/package-lock.json b/package-lock.json index 392ab043e9..25d285064b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5608,18 +5608,24 @@ } }, "ethereumjs-block": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.1.tgz", - "integrity": "sha512-ze8I1844m5oKZL7hiHuezRcPzqdi4Iv0ssqQyuRaJ9Je0/YCYfXobJHvNLnex2ETgs5JypicdtLYrCNWdgcLvg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "dev": true, "requires": { "async": "^2.0.1", - "ethereumjs-common": "^1.1.0", + "ethereumjs-common": "^1.5.0", "ethereumjs-tx": "^2.1.1", "ethereumjs-util": "^5.0.0", "merkle-patricia-tree": "^2.1.2" }, "dependencies": { + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", + "dev": true + }, "ethereumjs-util": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", @@ -5650,15 +5656,15 @@ } }, "ethereumjs-blockchain": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.2.tgz", - "integrity": "sha512-K7N7EJpDQJXX634uEuXRk3pIH058SPeu+g0xQslViQyaTpJNTHsN5Wu/MdA5BzrUriBRlfmX9lCEaU4ZuaftJA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz", + "integrity": "sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA==", "dev": true, "requires": { "async": "^2.6.1", "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.1", - "ethereumjs-common": "^1.1.0", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", "ethereumjs-util": "~6.1.0", "flow-stoplight": "^1.0.0", "level-mem": "^3.0.1", @@ -5667,6 +5673,42 @@ "semaphore": "^1.1.0" }, "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", + "dev": true + }, "ethereumjs-util": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", @@ -5743,20 +5785,20 @@ } }, "ethereumjs-vm": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.1.tgz", - "integrity": "sha512-Bh2avDY9Hyon9TvJ/fmkdyd5JDnmTudLJ5oKhmTfXn0Jjq7UzP4YRNp7e5PWoWXSmdXAGXU9W0DXK5TV9Qy/NQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.3.tgz", + "integrity": "sha512-RTrD0y7My4O6Qr1P2ZIsMfD6RzL6kU/RhBZ0a5XrPzAeR61crBS7or66ohDrvxDI/rDBxMi+6SnsELih6fzalw==", "dev": true, "requires": { "async": "^2.1.2", "async-eventemitter": "^0.2.2", "core-js-pure": "^3.0.1", "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.1", - "ethereumjs-blockchain": "^4.0.2", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "~6.1.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", "fake-merkle-patricia-tree": "^1.0.1", "functional-red-black-tree": "^1.0.1", "merkle-patricia-tree": "^2.3.2", @@ -5765,19 +5807,50 @@ "util.promisify": "^1.0.0" }, "dependencies": { - "ethereumjs-util": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", - "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "dev": true, "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", + "dev": true + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, "keccak": { @@ -12304,123 +12377,408 @@ } }, "remix-analyzer": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.20.tgz", - "integrity": "sha512-XdEjPBJATsU1BYYkGknf9XdqCjyRHOK6C6PF9mgPxvw7lohMPNPnGEnI3Td2NeU7EEBPmQmSa+tyL81O1bK/OA==", + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.21.tgz", + "integrity": "sha512-OeLn3YXW12sIRVszlH7NIyBy6F8zEnfAS4HDub7e3B+AgcSXApjrWroV9MUSGEyYOuKG7ie37NZ/0pIiRf1dUQ==", "dev": true, "requires": { - "remix-lib": "0.4.19" + "remix-lib": "0.4.20" }, "dependencies": { - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-blockchain": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz", + "integrity": "sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "~6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", "dev": true }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true + "ethereumjs-vm": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.3.tgz", + "integrity": "sha512-RTrD0y7My4O6Qr1P2ZIsMfD6RzL6kU/RhBZ0a5XrPzAeR61crBS7or66ohDrvxDI/rDBxMi+6SnsELih6fzalw==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" } }, "remix-lib": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.19.tgz", - "integrity": "sha512-TJ2PATzCsXIRR+khB6nBIjhPAY1c9lxhKyp+csbrkoYTUw+LcifAvvQA3W0FPRgoWZI3JFE2Vbt0WMvVOMLjhA==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", + "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", "dev": true, "requires": { "async": "^2.1.2", - "ethereumjs-block": "^2.2.1", - "ethereumjs-tx": "^2.1.1", + "ethereumjs-block": "^2.2.2", + "ethereumjs-tx": "^2.1.2", "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.1", + "ethereumjs-vm": "4.1.3", "ethers": "^4.0.40", "events": "^3.0.0", "solc": "^0.6.0", "web3": "^1.2.4" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true - }, - "solc": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.1.tgz", - "integrity": "sha512-iKqNYps2p++x8L9sBg7JeAJb7EmW8VJ/2asAzwlLYcUhj86AzuWLe94UTSQHv1SSCCj/x6lya8twvXkZtlTbIQ==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - } } } }, "remix-debug": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.23.tgz", - "integrity": "sha512-1ESnaUqbAtDba0E1AxQbki9CJTXO7WM4TVdMAC0GxYXKO4ayFiIOrYCi5fBZ0WDDJdqMaajZhhxLzriZCDtQsQ==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.24.tgz", + "integrity": "sha512-NptCXexNCOLzrxMH0s7vVw+37dtOm12FXgXTtFf+iH9VIYUyvV3JIc0UlVhdCyM5tGVkmdpZkMmfRb9HtSzADg==", "dev": true, "requires": { "commander": "^2.19.0", "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.1", - "remix-lib": "0.4.19", + "ethereumjs-vm": "4.1.3", + "remix-lib": "0.4.20", "web3": "^1.2.4" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-blockchain": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz", + "integrity": "sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "~6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", + "dev": true + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-vm": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.3.tgz", + "integrity": "sha512-RTrD0y7My4O6Qr1P2ZIsMfD6RzL6kU/RhBZ0a5XrPzAeR61crBS7or66ohDrvxDI/rDBxMi+6SnsELih6fzalw==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + } + }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "dev": true, + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "remix-lib": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", + "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", + "dev": true, + "requires": { + "async": "^2.1.2", + "ethereumjs-block": "^2.2.2", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "ethereumjs-vm": "4.1.3", + "ethers": "^4.0.40", + "events": "^3.0.0", + "solc": "^0.6.0", + "web3": "^1.2.4" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "remix-lib": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.19.tgz", - "integrity": "sha512-TJ2PATzCsXIRR+khB6nBIjhPAY1c9lxhKyp+csbrkoYTUw+LcifAvvQA3W0FPRgoWZI3JFE2Vbt0WMvVOMLjhA==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", + "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", "dev": true, "requires": { "async": "^2.1.2", - "ethereumjs-block": "^2.2.1", - "ethereumjs-tx": "^2.1.1", + "ethereumjs-block": "^2.2.2", + "ethereumjs-tx": "^2.1.2", "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.1", + "ethereumjs-vm": "4.1.3", "ethers": "^4.0.40", "events": "^3.0.0", "solc": "^0.6.0", "web3": "^1.2.4" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", + "dev": true + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "dev": true, + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + } } }, "remix-simulator": { - "version": "0.1.9-alpha.12", - "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.12.tgz", - "integrity": "sha512-td+IS4VnhGe7hWIK9TLGSxlBi/PFD7mE2gpQsXht3xJRnFMqv9S8xocwzko3Qf9glprVQ/r824yNOtKcLHHxZg==", + "version": "0.1.9-alpha.13", + "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.13.tgz", + "integrity": "sha512-JynQA+Lh/I1mcONEfpsqvZGyxYiHITrOdcSR7nJS6lWfgt1f1q/WZfOmzm2FyEwRWkjKadbzazAHLJGjI+AtfA==", "dev": true, "requires": { "ansi-gray": "^0.1.1", @@ -12429,12 +12787,12 @@ "color-support": "^1.1.3", "commander": "^2.19.0", "cors": "^2.8.5", - "ethereumjs-block": "^2.2.1", - "ethereumjs-util": "^6.1.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-util": "^6.2.0", "express": "^4.16.3", "express-ws": "^4.0.0", "merge": "^1.2.0", - "remix-lib": "0.4.19", + "remix-lib": "0.4.20", "standard": "^10.0.3", "time-stamp": "^2.0.0", "web3": "^1.2.4" @@ -12453,9 +12811,9 @@ "dev": true }, "async": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", - "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz", + "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==", "dev": true }, "chalk": { @@ -12782,13 +13140,13 @@ } }, "remix-solidity": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.22.tgz", - "integrity": "sha512-FwZgkin+DK1kTNogTxTg0rLFoju1NLqS3L2UCLP95k98k/9nH2yp8zVzeuFsPHs8CkLKy+z+e2LRRD4QmNIh8g==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.23.tgz", + "integrity": "sha512-Sp+hUfh2C5d8hwby0iiU6epvDx4+WcitmUE8nmrFGAHd550EGDkJY8eYxlvAKk59VLj8z1/4aPAH6gBzdZyb7A==", "dev": true, "requires": { "eslint-scope": "^5.0.0", - "remix-lib": "0.4.19", + "remix-lib": "0.4.20", "solc": "^0.6.0", "webworkify": "^1.2.1" }, @@ -13107,18 +13465,18 @@ } }, "remix-tests": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.25.tgz", - "integrity": "sha512-E6OHRhzKDBdKNrupScFnAaDVdhuv25LzHDtskG/tIrSsh6x+Uv/Mu94+Qn3B/HzI5t6YupRftYVsrH3Q9FF+IA==", + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.26.tgz", + "integrity": "sha512-PWSPKoFtYY66DGFVFwtQguRBGTlAALmjfUU8HLntB3xqf6fz/IPOsS44V26GOGNiOGkkRnh0A3yBXhRrHjq9BA==", "dev": true, "requires": { "async": "^2.6.0", "change-case": "^3.0.1", "colors": "^1.1.2", "commander": "^2.13.0", - "remix-lib": "0.4.19", - "remix-simulator": "0.1.9-alpha.12", - "remix-solidity": "0.3.22", + "remix-lib": "0.4.20", + "remix-simulator": "0.1.9-alpha.13", + "remix-solidity": "0.3.23", "signale": "^1.4.0", "web3": "^1.2.4", "winston": "^3.0.0" @@ -17026,9 +17384,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "dev": true, "requires": { "inherits": "^2.0.3", diff --git a/package.json b/package.json index bea10a6ee8..aaff5c33f2 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ "npm-merge-driver": "^2.3.5", "npm-run-all": "^4.0.2", "onchange": "^3.2.1", - "remix-analyzer": "0.3.20", - "remix-debug": "0.3.23", - "remix-lib": "0.4.19", - "remix-solidity": "0.3.22", + "remix-analyzer": "0.3.21", + "remix-debug": "0.3.24", + "remix-lib": "0.4.20", + "remix-solidity": "0.3.23", "remix-tabs": "1.0.48", - "remix-tests": "0.1.25", + "remix-tests": "0.1.26", "remixd": "0.1.8-alpha.10", "request": "^2.83.0", "rimraf": "^2.6.1", diff --git a/src/app/tabs/test-tab.js b/src/app/tabs/test-tab.js index bbf3f0796b..9f71cb05aa 100644 --- a/src/app/tabs/test-tab.js +++ b/src/app/tabs/test-tab.js @@ -173,7 +173,7 @@ module.exports = class TestTab extends ViewPlugin { runTest (testFilePath, callback) { this.loading.hidden = false this.fileManager.getFile(testFilePath).then((content) => { - let runningTest = {} + const runningTest = {} runningTest[testFilePath] = { content } const {currentVersion, evmVersion, optimize} = this.compileTab.getCurrentCompilerConfig() const currentCompilerUrl = this.baseurl + '/' + currentVersion From bcd06187639723d852511ea56bd35baab74afb19 Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Tue, 28 Jan 2020 17:06:00 +0530 Subject: [PATCH 059/111] libs version incremented --- package-lock.json | 334 +++++----------------------------------------- package.json | 10 +- 2 files changed, 36 insertions(+), 308 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25d285064b..203535657b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12377,79 +12377,14 @@ } }, "remix-analyzer": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.21.tgz", - "integrity": "sha512-OeLn3YXW12sIRVszlH7NIyBy6F8zEnfAS4HDub7e3B+AgcSXApjrWroV9MUSGEyYOuKG7ie37NZ/0pIiRf1dUQ==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.22.tgz", + "integrity": "sha512-9MfwC7eyE9umeDiIZCx7B6mK/JBrx4Df/+3OCpj5t4YL6D7kbKkzY+3hRp19Jru/Fy3wNmZUVKsHk3Fgmp/xTQ==", "dev": true, "requires": { - "remix-lib": "0.4.20" + "remix-lib": "0.4.21" }, "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "^0.1.3", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, - "ethereumjs-blockchain": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz", - "integrity": "sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "~6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", - "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, "ethereumjs-common": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", @@ -12466,54 +12401,10 @@ "ethereumjs-util": "^6.0.0" } }, - "ethereumjs-vm": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.3.tgz", - "integrity": "sha512-RTrD0y7My4O6Qr1P2ZIsMfD6RzL6kU/RhBZ0a5XrPzAeR61crBS7or66ohDrvxDI/rDBxMi+6SnsELih6fzalw==", - "dev": true, - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - } - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "remix-lib": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", - "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", + "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", "dev": true, "requires": { "async": "^2.1.2", @@ -12526,93 +12417,22 @@ "solc": "^0.6.0", "web3": "^1.2.4" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, "remix-debug": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.24.tgz", - "integrity": "sha512-NptCXexNCOLzrxMH0s7vVw+37dtOm12FXgXTtFf+iH9VIYUyvV3JIc0UlVhdCyM5tGVkmdpZkMmfRb9HtSzADg==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.25.tgz", + "integrity": "sha512-oZ6VH24FU31O96NTXm748NMLM2AJfRvEWZm6WSqfFWvTSjTpfJxgFhEppTtgS8z0XxMyhO6pICHsZacAFBnpPg==", "dev": true, "requires": { "commander": "^2.19.0", "ethereumjs-util": "^6.2.0", "ethereumjs-vm": "4.1.3", - "remix-lib": "0.4.20", + "remix-lib": "0.4.21", "web3": "^1.2.4" }, "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "^0.1.3", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, - "ethereumjs-blockchain": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz", - "integrity": "sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "~6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", - "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, "ethereumjs-common": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", @@ -12629,54 +12449,10 @@ "ethereumjs-util": "^6.0.0" } }, - "ethereumjs-vm": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.3.tgz", - "integrity": "sha512-RTrD0y7My4O6Qr1P2ZIsMfD6RzL6kU/RhBZ0a5XrPzAeR61crBS7or66ohDrvxDI/rDBxMi+6SnsELih6fzalw==", - "dev": true, - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - } - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "remix-lib": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", - "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", + "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", "dev": true, "requires": { "async": "^2.1.2", @@ -12689,19 +12465,13 @@ "solc": "^0.6.0", "web3": "^1.2.4" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, "remix-lib": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.20.tgz", - "integrity": "sha512-pq2le7zc6n7wQN69sozH5kXuuMcHRdWO9WWbIN1XJoNbPQ5xPAmd7qd+t4Jajr9IwuX9pfgcsJJ4rwvD88WhnQ==", + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", + "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", "dev": true, "requires": { "async": "^2.1.2", @@ -12715,36 +12485,6 @@ "web3": "^1.2.4" }, "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "^0.1.3", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, "ethereumjs-common": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", @@ -12760,25 +12500,13 @@ "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" } - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } } } }, "remix-simulator": { - "version": "0.1.9-alpha.13", - "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.13.tgz", - "integrity": "sha512-JynQA+Lh/I1mcONEfpsqvZGyxYiHITrOdcSR7nJS6lWfgt1f1q/WZfOmzm2FyEwRWkjKadbzazAHLJGjI+AtfA==", + "version": "0.1.9-alpha.14", + "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.14.tgz", + "integrity": "sha512-AXJpED8A2+GL9fJJxsxnwOa4ktjonfItgWkXKSQy6RKl42Iql6mBlVYh9GR9E0I5SRnXJgOpXZvoMozvkuCwWQ==", "dev": true, "requires": { "ansi-gray": "^0.1.1", @@ -12792,7 +12520,7 @@ "express": "^4.16.3", "express-ws": "^4.0.0", "merge": "^1.2.0", - "remix-lib": "0.4.20", + "remix-lib": "0.4.21", "standard": "^10.0.3", "time-stamp": "^2.0.0", "web3": "^1.2.4" @@ -13140,13 +12868,13 @@ } }, "remix-solidity": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.23.tgz", - "integrity": "sha512-Sp+hUfh2C5d8hwby0iiU6epvDx4+WcitmUE8nmrFGAHd550EGDkJY8eYxlvAKk59VLj8z1/4aPAH6gBzdZyb7A==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.24.tgz", + "integrity": "sha512-/0N/Ddfwgm4j42SBY76OJUEyFD04q28qlc8aPnJVADd+SpiQVai7WRVK72S+jWFBuL1aGcSa4eL32nsdoXIdZg==", "dev": true, "requires": { "eslint-scope": "^5.0.0", - "remix-lib": "0.4.20", + "remix-lib": "0.4.21", "solc": "^0.6.0", "webworkify": "^1.2.1" }, @@ -13465,18 +13193,18 @@ } }, "remix-tests": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.26.tgz", - "integrity": "sha512-PWSPKoFtYY66DGFVFwtQguRBGTlAALmjfUU8HLntB3xqf6fz/IPOsS44V26GOGNiOGkkRnh0A3yBXhRrHjq9BA==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.27.tgz", + "integrity": "sha512-N4MyRCBwHZ3cfYVpsNYfOUhs0FWSB7Uy5z0y+l21khj0N/5KNuAgurblOidzJY5AQpP/AcPz2RDPBS3XNHVoFg==", "dev": true, "requires": { "async": "^2.6.0", "change-case": "^3.0.1", "colors": "^1.1.2", "commander": "^2.13.0", - "remix-lib": "0.4.20", - "remix-simulator": "0.1.9-alpha.13", - "remix-solidity": "0.3.23", + "remix-lib": "0.4.21", + "remix-simulator": "0.1.9-alpha.14", + "remix-solidity": "0.3.24", "signale": "^1.4.0", "web3": "^1.2.4", "winston": "^3.0.0" diff --git a/package.json b/package.json index aaff5c33f2..bafadf0c48 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ "npm-merge-driver": "^2.3.5", "npm-run-all": "^4.0.2", "onchange": "^3.2.1", - "remix-analyzer": "0.3.21", - "remix-debug": "0.3.24", - "remix-lib": "0.4.20", - "remix-solidity": "0.3.23", + "remix-analyzer": "0.3.22", + "remix-debug": "0.3.25", + "remix-lib": "0.4.21", + "remix-solidity": "0.3.24", "remix-tabs": "1.0.48", - "remix-tests": "0.1.26", + "remix-tests": "0.1.27", "remixd": "0.1.8-alpha.10", "request": "^2.83.0", "rimraf": "^2.6.1", From 6e27df8eb0697009b003fdc99bdfb9bc584fd57f Mon Sep 17 00:00:00 2001 From: Aniket-Engg Date: Wed, 29 Jan 2020 10:52:15 +0530 Subject: [PATCH 060/111] libs version updated after value type fix --- package-lock.json | 62 +++++++++++++++++++++++------------------------ package.json | 10 ++++---- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 203535657b..03d5ccef1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12377,12 +12377,12 @@ } }, "remix-analyzer": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.22.tgz", - "integrity": "sha512-9MfwC7eyE9umeDiIZCx7B6mK/JBrx4Df/+3OCpj5t4YL6D7kbKkzY+3hRp19Jru/Fy3wNmZUVKsHk3Fgmp/xTQ==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.3.23.tgz", + "integrity": "sha512-zVIBJfVUtyG7M/CmKVCeTxiNxYQNtbTuO1BPhDLno5GSL72/N2pFUAd2F3uuhmb9m2GUiIqXCCoHiDmLKcofxg==", "dev": true, "requires": { - "remix-lib": "0.4.21" + "remix-lib": "0.4.22" }, "dependencies": { "ethereumjs-common": { @@ -12402,9 +12402,9 @@ } }, "remix-lib": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", - "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", + "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", "dev": true, "requires": { "async": "^2.1.2", @@ -12421,15 +12421,15 @@ } }, "remix-debug": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.25.tgz", - "integrity": "sha512-oZ6VH24FU31O96NTXm748NMLM2AJfRvEWZm6WSqfFWvTSjTpfJxgFhEppTtgS8z0XxMyhO6pICHsZacAFBnpPg==", + "version": "0.3.26", + "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.3.26.tgz", + "integrity": "sha512-R69fqM5kn9WbiFmARLU/NwjAtmvsvZVd6kU29D4rsnD/TOtuOa3qkOAPBs9fu67yrKRmvCSeJi7BRwbZ+masKg==", "dev": true, "requires": { "commander": "^2.19.0", "ethereumjs-util": "^6.2.0", "ethereumjs-vm": "4.1.3", - "remix-lib": "0.4.21", + "remix-lib": "0.4.22", "web3": "^1.2.4" }, "dependencies": { @@ -12450,9 +12450,9 @@ } }, "remix-lib": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", - "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", + "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", "dev": true, "requires": { "async": "^2.1.2", @@ -12469,9 +12469,9 @@ } }, "remix-lib": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.21.tgz", - "integrity": "sha512-rwAC59GugdIk0EjR6bKxeTaaeNh2uSvps0Avpisz+x9/owPABKlnD+DI2z060FO5EDf5ZdcRXS0f3E+pFNrx3Q==", + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", + "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", "dev": true, "requires": { "async": "^2.1.2", @@ -12504,9 +12504,9 @@ } }, "remix-simulator": { - "version": "0.1.9-alpha.14", - "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.14.tgz", - "integrity": "sha512-AXJpED8A2+GL9fJJxsxnwOa4ktjonfItgWkXKSQy6RKl42Iql6mBlVYh9GR9E0I5SRnXJgOpXZvoMozvkuCwWQ==", + "version": "0.1.9-alpha.15", + "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-alpha.15.tgz", + "integrity": "sha512-1DJGnenjUVnfjlY9eQGCDmMUneUfwn4MhzXXvNOMjzo0SEWUj5fICKfUT7Q+nG9AOtHUm1indgLPUxaLvzP6vg==", "dev": true, "requires": { "ansi-gray": "^0.1.1", @@ -12520,7 +12520,7 @@ "express": "^4.16.3", "express-ws": "^4.0.0", "merge": "^1.2.0", - "remix-lib": "0.4.21", + "remix-lib": "0.4.22", "standard": "^10.0.3", "time-stamp": "^2.0.0", "web3": "^1.2.4" @@ -12868,13 +12868,13 @@ } }, "remix-solidity": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.24.tgz", - "integrity": "sha512-/0N/Ddfwgm4j42SBY76OJUEyFD04q28qlc8aPnJVADd+SpiQVai7WRVK72S+jWFBuL1aGcSa4eL32nsdoXIdZg==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.25.tgz", + "integrity": "sha512-MTLSsQD/0USk/GGo4KaLhC4Gq1JZRNy9zrmtrxEmfj6OxSaLx40mbk8cqcqtpPF2ZKyCUYR0wdmA8s4K+Q0fNg==", "dev": true, "requires": { "eslint-scope": "^5.0.0", - "remix-lib": "0.4.21", + "remix-lib": "0.4.22", "solc": "^0.6.0", "webworkify": "^1.2.1" }, @@ -13193,18 +13193,18 @@ } }, "remix-tests": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.27.tgz", - "integrity": "sha512-N4MyRCBwHZ3cfYVpsNYfOUhs0FWSB7Uy5z0y+l21khj0N/5KNuAgurblOidzJY5AQpP/AcPz2RDPBS3XNHVoFg==", + "version": "0.1.28", + "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.28.tgz", + "integrity": "sha512-0Q2z5HpIw7hMgTqW0mNyqNjMr59PVTQke1Whq1tghte39KULjlnIy/r8AJePRotXjZGtr/mjFsGQmUIQ8zxAgg==", "dev": true, "requires": { "async": "^2.6.0", "change-case": "^3.0.1", "colors": "^1.1.2", "commander": "^2.13.0", - "remix-lib": "0.4.21", - "remix-simulator": "0.1.9-alpha.14", - "remix-solidity": "0.3.24", + "remix-lib": "0.4.22", + "remix-simulator": "0.1.9-alpha.15", + "remix-solidity": "0.3.25", "signale": "^1.4.0", "web3": "^1.2.4", "winston": "^3.0.0" diff --git a/package.json b/package.json index bafadf0c48..d46ce25548 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ "npm-merge-driver": "^2.3.5", "npm-run-all": "^4.0.2", "onchange": "^3.2.1", - "remix-analyzer": "0.3.22", - "remix-debug": "0.3.25", - "remix-lib": "0.4.21", - "remix-solidity": "0.3.24", + "remix-analyzer": "0.3.23", + "remix-debug": "0.3.26", + "remix-lib": "0.4.22", + "remix-solidity": "0.3.25", "remix-tabs": "1.0.48", - "remix-tests": "0.1.27", + "remix-tests": "0.1.28", "remixd": "0.1.8-alpha.10", "request": "^2.83.0", "rimraf": "^2.6.1", From dae6468dd0b52c4393b2355648f174c3fa87f844 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 15 Jan 2020 11:16:44 +0100 Subject: [PATCH 061/111] add browser test for testing external web3 --- ci/browser_tests.sh | 1 + package-lock.json | 673 ++++++++++++++++++ package.json | 4 +- src/app/panels/terminal.js | 2 +- test-browser/commands/clickInstance.js | 3 +- .../commands/journalLastChildIncludes.js | 19 + test-browser/tests/ballot.js | 17 + 7 files changed, 716 insertions(+), 3 deletions(-) create mode 100644 test-browser/commands/journalLastChildIncludes.js diff --git a/ci/browser_tests.sh b/ci/browser_tests.sh index 28e338cbe8..a30a4afa61 100755 --- a/ci/browser_tests.sh +++ b/ci/browser_tests.sh @@ -15,6 +15,7 @@ BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" TEST_EXITCODE=0 +npm run ganache-cli & npm run serve & setupRemixd diff --git a/package-lock.json b/package-lock.json index 03d5ccef1b..871ed96020 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7257,6 +7257,679 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "ganache-cli": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.8.1.tgz", + "integrity": "sha512-nzmIwn2Mg0zb8yUM0vfGI1uMnjHf/j4ZzCE+90sXAAbOKbaq1zxRCRo5zyMXMHrB/c6JtD2mMbO4cEz74gospA==", + "dev": true, + "requires": { + "ethereumjs-util": "6.1.0", + "source-map-support": "0.5.12", + "yargs": "13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "bindings": { + "version": "1.5.0", + "bundled": true, + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip66": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bn.js": { + "version": "4.11.8", + "bundled": true, + "dev": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "buffer-from": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "bundled": true, + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "bundled": true, + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "bundled": true, + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "drbg.js": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "elliptic": { + "version": "6.5.0", + "bundled": true, + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true, + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "ethereumjs-util": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + }, + "ethjs-util": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "hash-base": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-hex-prefixed": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "keccak": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "lcid": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mem": { + "version": "4.3.0", + "bundled": true, + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "nan": { + "version": "2.14.0", + "bundled": true, + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-locale": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.3", + "bundled": true, + "dev": true, + "requires": { + "bn.js": "^4.11.1", + "safe-buffer": "^5.1.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + }, + "secp256k1": { + "version": "3.7.1", + "bundled": true, + "dev": true, + "requires": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + } + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "source-map-support": { + "version": "0.5.12", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-hex-prefix": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "13.2.4", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", diff --git a/package.json b/package.json index d46ce25548..04f741b8e1 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "exorcist": "^0.4.0", "fast-async": "^7.0.6", "fast-levenshtein": "^2.0.6", + "ganache-cli": "^6.8.1", "gists": "^1.0.1", "ipfs-mini": "^1.1.5", "is-electron": "^2.2.0", @@ -182,6 +183,7 @@ "test": "csslint && standard && node test/index.js", "test-browser": "npm-run-all -lpr selenium downloadsolc_root make-mock-compiler serve browsertest", "watch": "watchify src/index.js -dv -p browserify-reload -o build/app.js --exclude solc", - "reinstall": "rm ./node-modules/ -rf; rm package-lock.json; rm ./build/ -rf; npm install; npm run build" + "reinstall": "rm ./node-modules/ -rf; rm package-lock.json; rm ./build/ -rf; npm install; npm run build", + "ganache-cli": "npx ganache-cli" } } diff --git a/src/app/panels/terminal.js b/src/app/panels/terminal.js index 45b03be05f..eabdbee0bd 100644 --- a/src/app/panels/terminal.js +++ b/src/app/panels/terminal.js @@ -148,7 +148,7 @@ class Terminal extends Plugin { ${self._view.dragbar}
${self._view.icon} -
+
diff --git a/test-browser/commands/clickInstance.js b/test-browser/commands/clickInstance.js index 2f81ab47a1..70d4becae5 100644 --- a/test-browser/commands/clickInstance.js +++ b/test-browser/commands/clickInstance.js @@ -3,7 +3,8 @@ const EventEmitter = require('events') class ClickInstance extends EventEmitter { command (index) { index = index + 2 - this.api.click('.instance:nth-of-type(' + index + ') > div > button').perform(() => { this.emit('complete') }) + let selector = '.instance:nth-of-type(' + index + ') > div > button' + this.api.waitForElementPresent(selector).click(selector).perform(() => { this.emit('complete') }) return this } } diff --git a/test-browser/commands/journalLastChildIncludes.js b/test-browser/commands/journalLastChildIncludes.js new file mode 100644 index 0000000000..765a2847d6 --- /dev/null +++ b/test-browser/commands/journalLastChildIncludes.js @@ -0,0 +1,19 @@ +const EventEmitter = require('events') + +/* + Check if the last log in the console contains a specific text +*/ +class JournalLastChildIncludes extends EventEmitter { + command (val) { + this.api + .waitForElementVisible('#journal > div:last-child', 10000) + .getText('#journal > div:last-child', (result) => { + console.log('JournalLastChildIncludes', result.value) + if (result.value.indexOf(val) === -1) return this.api.assert.fail(`wait for ${val} in ${result.value}`) + this.emit('complete') + }) + return this + } +} + +module.exports = JournalLastChildIncludes diff --git a/test-browser/tests/ballot.js b/test-browser/tests/ballot.js index ea85a16d26..061f52bc42 100644 --- a/test-browser/tests/ballot.js +++ b/test-browser/tests/ballot.js @@ -55,8 +55,25 @@ module.exports = { .testFunction('delegate - transact (not payable)', '0xca58080c8099429caeeffe43b8104df919c2c543dceb9edf9242fa55f045c803', `[vm]\nfrom:0xca3...a733c\nto:Ballot.delegate(address) 0x692...77b3a\nvalue:0 wei\ndata:0x5c1...4d2db\nlogs:0\nhash:0xca5...5c803`, {types: 'address to', values: '"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"'}, null, null) + }, + + 'Deploy and use Ballot using external web3': function (browser) { + browser + .click('#selectExEnvOptions #web3-mode') + .modalFooterOKClick() + .clickLaunchIcon('solidity') + .testContracts('Untitled.sol', sources[0]['browser/Untitled.sol'], ['Ballot']) + .clickLaunchIcon('udapp') + .setValue('input[placeholder="bytes32[] proposalNames"]', '["0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"]') + .click('#runTabView button[class^="instanceButton"]') + .clickInstance(0) + .click('#clearConsole') + .clickFunction('delegate - transact (not payable)', {types: 'address to', values: '0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c'}) + .journalLastChildIncludes('Ballot.delegate(address)') + .journalLastChildIncludes('data:0x5c1...a733c') .end() }, + tearDown: sauce } From 256cf8e6c5d8c1cf5d0e29374f42955c5e3fcdbd Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jan 2020 12:50:30 +0100 Subject: [PATCH 062/111] add info about cli to run on which tests suite --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ea00e9fa95..f28b71745c 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,9 @@ To run the Selenium tests via Nightwatch: - npm run nightwatch_local_console - npm run nightwatch_local_remixd # remixd needs to be run - + + **the `ballot` tests suite requires to run `ganache-cli` locally.** + **the `remixd` tests suite requires to run `remixd` locally.** ## Usage as a Chrome Extension From 5c6ded2877a04d25793d27bf6cc019c2b8f2486f Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 29 Jan 2020 13:05:46 +0100 Subject: [PATCH 063/111] package-lock --- package-lock.json | 3420 ++++++++++++++++++++++----------------------- 1 file changed, 1703 insertions(+), 1717 deletions(-) diff --git a/package-lock.json b/package-lock.json index 871ed96020..514f1b91bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,29 +5,49 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.1.tgz", + "integrity": "sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw==", + "dev": true, + "requires": { + "browserslist": "^4.8.2", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helpers": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -53,234 +73,255 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", + "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz", + "integrity": "sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/compat-data": "^7.8.1", + "browserslist": "^4.8.2", + "invariant": "^2.2.4", + "levenary": "^1.1.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", + "@babel/helper-regex": "^7.8.3", "regexpu-core": "^4.6.0" } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", "lodash": "^4.17.13" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", "dev": true, "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-module-transforms": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", - "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", "lodash": "^4.17.13" } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", + "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -297,178 +338,216 @@ } }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", + "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-plugin-utils": "^7.8.3", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" }, "dependencies": { @@ -481,69 +560,69 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz", + "integrity": "sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-instanceof": { @@ -564,203 +643,204 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", - "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", - "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-assign": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.7.4.tgz", - "integrity": "sha512-0TpeUlnhQDwKxPLTIckdaWt46L2s61c/5w5snw1OUod5ehOJywZD98Ha3dFHVjeqkfOFtOTH7cqxddjxUuvcmg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz", + "integrity": "sha512-i3LuN8tPDqUCRFu3dkzF2r1Nx0jp4scxtm7JxtIqI9he9Vk20YD+/zshdzR9JLsoBMlJlNR82a62vQExNEVx/Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz", + "integrity": "sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", - "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz", + "integrity": "sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/polyfill": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.7.0.tgz", - "integrity": "sha512-/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.3.tgz", + "integrity": "sha512-0QEgn2zkCzqGIkSWWAEmvxD7e00Nm9asTtQvi7HdlYvMhjy/J38V/1Y9ode0zEJeIuxAI0uftiAzqc7nVeWUGg==", "dev": true, "requires": { "core-js": "^2.6.5", @@ -768,61 +848,67 @@ } }, "@babel/preset-env": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", - "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.4.7", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz", + "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.0", + "@babel/helper-compilation-targets": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.3", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.3", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.3", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.2", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.0", "semver": "^5.5.0" }, "dependencies": { @@ -1530,15 +1616,15 @@ } }, "@babel/preset-stage-0": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-stage-0/-/preset-stage-0-7.0.0.tgz", - "integrity": "sha512-FBMd0IiARPtH5aaOFUVki6evHiJQiY0pFy7fizyRF7dtwc+el3nwpzvhb9qBNzceG1OIJModG1xpE0DDFjPXwA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz", + "integrity": "sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==", "dev": true }, "@babel/register": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.7.4.tgz", - "integrity": "sha512-/fmONZqL6ZMl9KJUYajetCrID6m0xmL4odX7v+Xvoxcv0DdbP/oO0TWIeLUCHqczQ6L6njDMqmqHFy2cp3FFsA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -1573,28 +1659,28 @@ } }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", + "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -1618,9 +1704,9 @@ } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1657,33 +1743,33 @@ "dev": true }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.25", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.25.tgz", - "integrity": "sha512-3RuZPDuuPELd7RXtUqTCfed14fcny9UiPOkdr2i+cYxBoTOfQgxcDoq77fHiiHcgWuo1LoBUpvGxFF1H/y7s3Q==", + "version": "0.2.26", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.26.tgz", + "integrity": "sha512-CcM/fIFwZlRdiWG/25xE/wHbtyUuCtqoCTrr6BsWw7hH072fR++n4L56KPydAr3ANgMJMjT8v83ZFIsDc7kE+A==", "dev": true }, "@fortawesome/fontawesome-free": { - "version": "5.11.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz", - "integrity": "sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.0.tgz", + "integrity": "sha512-vKDJUuE2GAdBERaQWmmtsciAMzjwNrROXA5KTGSZvayAsmuTGjam5z6QNqNPCwDfVljLWuov1nEC3mEQf/n6fQ==", "dev": true }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.25", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.25.tgz", - "integrity": "sha512-MotKnn53JKqbkLQiwcZSBJVYtTgIKFbh7B8+kd05TSnfKYPFmjKKI59o2fpz5t0Hzl35vVGU6+N4twoOpZUrqA==", + "version": "1.2.26", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.26.tgz", + "integrity": "sha512-3Dfd/v2IztP1TxKOxZiB5+4kaOZK9mNy0KU1vVK7nFlPWz3gzxrCWB+AloQhQUoJ8HhGqbzjliK89Vl7PExGbw==", "dev": true, "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.25" + "@fortawesome/fontawesome-common-types": "^0.2.26" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.11.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.11.2.tgz", - "integrity": "sha512-zBue4i0PAZJUXOmLBBvM7L0O7wmsDC8dFv9IhpW5QL4kT9xhhVUsYg/LX1+5KaukWq4/cbDcKT+RT1aRe543sg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.12.0.tgz", + "integrity": "sha512-CnpsWs6GhTs9ekNB3d8rcO5HYqRkXbYKf2YNiAlTWbj5eVlPqsd/XH1F9If8jkcR1aegryAbln/qYeKVZzpM0g==", "dev": true, "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.25" + "@fortawesome/fontawesome-common-types": "^0.2.26" } }, "@improved/node": { @@ -1745,18 +1831,18 @@ } }, "@types/bn.js": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", - "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dev": true, "requires": { "@types/node": "*" } }, "@types/node": { - "version": "12.12.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.15.tgz", - "integrity": "sha512-Pv+vWicyFd07Hw/SmNnTUguqrHgDfMtjabvD9sQyxeqbpCEg8CmViLBaVPHtNsoBgZECrRf5/pgV6FJIBrGSjw==", + "version": "13.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.1.tgz", + "integrity": "sha512-Jj2W7VWQ2uM83f8Ls5ON9adxN98MvyJsMSASYFuSvrov8RMRY64Ayay7KV35ph1TSGIJ2gG9ZVDdEq3c3zaydA==", "dev": true }, "@web3-js/scrypt-shim": { @@ -1808,9 +1894,9 @@ } }, "@webcomponents/webcomponentsjs": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.0.tgz", - "integrity": "sha512-kEClEz2nu9/i6SvyBJTV4pCc6CyCzMhK7zEeJ6QhiJoulBp4YZ06Zfj2E2HUXfWfHJIjtKriJYMtfhettKEjEg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.1.tgz", + "integrity": "sha512-7jxBb+KoWncKb/JGFyTY40PjV4yRx2zd35ZLuvRP+6WndJDL7X32ZIZ7bN3sSQIl+NzJkCo7chfXJyzn+6WZaQ==", "dev": true }, "@zeit/schemas": { @@ -2108,13 +2194,14 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "array-union": { @@ -2260,9 +2347,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "babel-code-frame": { "version": "6.26.0", @@ -2487,8 +2574,9 @@ } }, "bignumber.js": { - "version": "2.0.7", - "resolved": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", "dev": true }, "binary-extensions": { @@ -2500,7 +2588,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, "requires": { "file-uri-to-path": "1.0.0" } @@ -3056,14 +3143,14 @@ } }, "browserslist": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", - "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.5.tgz", + "integrity": "sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001015", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.42" + "caniuse-lite": "^1.0.30001022", + "electron-to-chromium": "^1.3.338", + "node-releases": "^1.1.46" } }, "buffer": { @@ -3229,9 +3316,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001015", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", - "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", + "version": "1.0.30001023", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz", + "integrity": "sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA==", "dev": true }, "capture-stack-trace": { @@ -4063,19 +4150,27 @@ "dev": true }, "core-js-compat": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.8.tgz", - "integrity": "sha512-l3WTmnXHV2Sfu5VuD7EHE2w7y+K68+kULKt5RJg8ZJk3YhHF1qLD4O8v8AmNq+8vbOwnPFFDvds25/AoEvMqlQ==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", "dev": true, "requires": { - "browserslist": "^4.8.2", - "semver": "^6.3.0" + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } } }, "core-js-pure": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.4.8.tgz", - "integrity": "sha512-K9iPNbLDZ0Epojwd8J3lhodmrLHYvxb07H3DaFme1ne4TIlFq/ufiyPC40rc3OX6NCaVa0zaSu+VV6BVDR2wiA==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz", + "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==", "dev": true }, "core-util-is": { @@ -4452,9 +4547,9 @@ } }, "defer-to-connect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz", - "integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "deferred-leveldown": { @@ -4691,6 +4786,15 @@ "is-obj": "^1.0.0" } }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -4783,9 +4887,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "version": "1.3.341", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.341.tgz", + "integrity": "sha512-iezlV55/tan1rvdvt7yg7VHRSkt+sKfzQ16wTDqTbQqtl4+pSUkKPXpQHDvEt0c7gKcUHHwUbffOgXz6bn096g==", "dev": true }, "elliptic": { @@ -4893,21 +4997,22 @@ } }, "es-abstract": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", - "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" }, "dependencies": { "object-keys": { @@ -5016,24 +5121,18 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", + "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5235,13 +5334,13 @@ "integrity": "sha1-wkDibtkZoRpCqk3oBZRys4Jo1iA=" }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -5262,9 +5361,9 @@ } }, "eslint-module-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz", - "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", + "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", "dev": true, "requires": { "debug": "^2.6.9", @@ -5447,9 +5546,9 @@ "integrity": "sha1-NYlpn/nJF/LCX3apFmh/ZBw2n/M=" }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -5620,12 +5719,6 @@ "merkle-patricia-tree": "^2.1.2" }, "dependencies": { - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, "ethereumjs-util": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", @@ -5673,42 +5766,6 @@ "semaphore": "^1.1.0" }, "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "^0.1.3", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, "ethereumjs-util": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", @@ -5754,18 +5811,18 @@ } }, "ethereumjs-common": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.4.0.tgz", - "integrity": "sha512-ser2SAplX/YI5W2AnzU8wmSjKRy4KQd4uxInJ36BzjS3m18E/B9QedPUIresZN1CSEQb/RgNQ2gN7C/XbpTafA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", "dev": true }, "ethereumjs-tx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.1.tgz", - "integrity": "sha512-QtVriNqowCFA19X9BCRPMgdVNJ0/gMBS91TQb1DfrhsbR748g4STwxZptFAwfqehMyrF8rDwB23w87PQwru0wA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "dev": true, "requires": { - "ethereumjs-common": "^1.3.1", + "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" } }, @@ -5805,72 +5862,12 @@ "rustbn.js": "~0.2.0", "safe-buffer": "^5.1.1", "util.promisify": "^1.0.0" - }, - "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "^0.1.3", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - } } }, "ethers": { - "version": "4.0.40", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.40.tgz", - "integrity": "sha512-MC9BtV7Hpq4dgFONEfanx9aU9GhhoWU270F+/wegHZXA7FR+2KXFdt36YIQYLmVY5ykUWswDxd+f9EVkIa7JOA==", + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.43.tgz", + "integrity": "sha512-VjQRVgPrlU12jSMvypdE1yEqYQccdVbH8bbiz67dLF7raHlRV4+zW70GlxHcZYqgsnz0XYWrn6C06gqTQRb5tw==", "dev": true, "requires": { "aes-js": "3.0.0", @@ -5949,9 +5946,9 @@ "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -6373,9 +6370,9 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -6442,8 +6439,7 @@ "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "filename-regex": { "version": "2.0.1", @@ -6583,9 +6579,9 @@ "dev": true }, "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", + "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", "requires": { "debug": "^3.0.0" } @@ -6718,13 +6714,14 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -6766,7 +6763,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "optional": true }, @@ -6791,7 +6788,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "optional": true, "requires": { @@ -6814,11 +6811,11 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -6842,7 +6839,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "optional": true, "requires": { @@ -6868,7 +6865,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "optional": true, "requires": { @@ -6885,7 +6882,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "optional": true }, @@ -6921,7 +6918,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "optional": true, "requires": { @@ -6930,11 +6927,11 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -6946,22 +6943,22 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "optional": true, "requires": { @@ -6974,7 +6971,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -6987,12 +6984,20 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "optional": true, "requires": { @@ -7054,7 +7059,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "optional": true }, @@ -7091,7 +7096,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "optional": true, "requires": { @@ -7114,7 +7119,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "optional": true }, @@ -7160,17 +7165,17 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -7192,7 +7197,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "optional": true } @@ -7258,9 +7263,9 @@ "dev": true }, "ganache-cli": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.8.1.tgz", - "integrity": "sha512-nzmIwn2Mg0zb8yUM0vfGI1uMnjHf/j4ZzCE+90sXAAbOKbaq1zxRCRo5zyMXMHrB/c6JtD2mMbO4cEz74gospA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.8.2.tgz", + "integrity": "sha512-FgsJx/hHh7A1/fmSQpNT5jxZ3dYEal4zQMqYyA8Bm7S6MgrVO48hIjnROn2JteubHY8Rob8LzxMkhEvoQce7WA==", "dev": true, "requires": { "ethereumjs-util": "6.1.0", @@ -7981,6 +7986,12 @@ "is-property": "^1.0.0" } }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -8386,9 +8397,9 @@ "dev": true }, "handlebars": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", - "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.2.tgz", + "integrity": "sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==", "requires": { "neo-async": "^2.6.0", "optimist": "^0.6.1", @@ -8402,9 +8413,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "uglify-js": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz", - "integrity": "sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==", + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.6.tgz", + "integrity": "sha512-yYqjArOYSxvqeeiYH2VGjZOqq6SVmhxzaPjJC1W2F9e+bqvFL9QXQ2osQuKUFjM2hGjKG2YclQnRKWQSt/nOTQ==", "optional": true, "requires": { "commander": "~2.20.3", @@ -8428,16 +8439,21 @@ }, "dependencies": { "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8965,9 +8981,9 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { @@ -8997,9 +9013,9 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-descriptor": { @@ -9181,12 +9197,12 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-resolvable": { @@ -9204,6 +9220,12 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", @@ -9329,12 +9351,6 @@ "nopt": "~3.0.1" } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", @@ -9500,9 +9516,9 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "klaw": { "version": "1.3.1", @@ -9841,6 +9857,21 @@ } } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -10487,16 +10518,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", - "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.25", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", - "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.42.0" + "mime-db": "1.43.0" } }, "mimic-fn": { @@ -10715,9 +10746,9 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==" }, "module-deps": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz", - "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", "dev": true, "requires": { "JSONStream": "^1.0.3", @@ -10725,7 +10756,7 @@ "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^5.0.2", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", "parents": "^1.0.0", @@ -11016,9 +11047,9 @@ } }, "node-releases": { - "version": "1.1.42", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", - "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", + "version": "1.1.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.47.tgz", + "integrity": "sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA==", "dev": true, "requires": { "semver": "^6.3.0" @@ -11636,9 +11667,9 @@ "dev": true }, "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", "dev": true }, "object-keys": { @@ -11675,13 +11706,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.omit": { @@ -11703,10 +11734,9 @@ } }, "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", + "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", "requires": { "http-https": "^1.0.0" } @@ -11992,10 +12022,9 @@ } }, "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, "p-defer": { "version": "1.0.0", @@ -12117,9 +12146,9 @@ } }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "param-case": { @@ -12404,9 +12433,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12599,9 +12628,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", - "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" }, "public-encrypt": { "version": "4.0.3", @@ -12858,9 +12887,9 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12981,12 +13010,13 @@ } }, "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "dev": true, "requires": { - "define-properties": "^1.1.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "regexpp": { @@ -13033,9 +13063,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -13056,41 +13086,6 @@ "dev": true, "requires": { "remix-lib": "0.4.22" - }, - "dependencies": { - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "remix-lib": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", - "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", - "dev": true, - "requires": { - "async": "^2.1.2", - "ethereumjs-block": "^2.2.2", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.3", - "ethers": "^4.0.40", - "events": "^3.0.0", - "solc": "^0.6.0", - "web3": "^1.2.4" - } - } } }, "remix-debug": { @@ -13104,41 +13099,6 @@ "ethereumjs-vm": "4.1.3", "remix-lib": "0.4.22", "web3": "^1.2.4" - }, - "dependencies": { - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "remix-lib": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", - "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", - "dev": true, - "requires": { - "async": "^2.1.2", - "ethereumjs-block": "^2.2.2", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.3", - "ethers": "^4.0.40", - "events": "^3.0.0", - "solc": "^0.6.0", - "web3": "^1.2.4" - } - } } }, "remix-lib": { @@ -13156,24 +13116,6 @@ "events": "^3.0.0", "solc": "^0.6.0", "web3": "^1.2.4" - }, - "dependencies": { - "ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - } } }, "remix-simulator": { @@ -13550,18 +13492,6 @@ "remix-lib": "0.4.22", "solc": "^0.6.0", "webworkify": "^1.2.1" - }, - "dependencies": { - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } } }, "remix-store": { @@ -13582,7 +13512,7 @@ "@fortawesome/fontawesome-svg-core": "^1.2.14", "@fortawesome/free-solid-svg-icons": "^5.7.1", "@webcomponents/webcomponentsjs": "^2.2.4", - "events": "^3.0.0", + "events": "^3.1.0", "font-awesome": "^4.7.0", "lit-element": "^2.0.0-rc.5", "remix-store": "0.0.1-alpha.0", @@ -13718,6 +13648,16 @@ "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", "dev": true }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, "espree": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", @@ -13730,9 +13670,9 @@ } }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "get-stdin": { @@ -13909,112 +13849,6 @@ "websocket": "^1.0.24" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "eventemitter3": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", - "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "oboe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", - "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "requires": { - "http-https": "^1.0.0" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "swarm-js": { - "version": "0.1.37", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", - "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^2.1.2", - "fs-promise": "^2.0.0", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar.gz": "^1.0.5", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "fs-extra": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", - "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0" - } - } - } - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" - }, - "utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" - }, "web3": { "version": "1.0.0-beta.27", "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.27.tgz", @@ -14028,339 +13862,68 @@ "web3-shh": "1.0.0-beta.27", "web3-utils": "1.0.0-beta.27" } - }, - "web3-bzz": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.27.tgz", - "integrity": "sha1-Tmggpc/nOqsG2CV59FBFD76YIqM=", - "requires": { - "got": "7.1.0", - "swarm-js": "0.1.37", - "underscore": "1.8.3" - } - }, - "web3-core": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.27.tgz", - "integrity": "sha1-TQCb9x5Yt5F2E0EpF+/5ERO0N8M=", - "requires": { - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-requestmanager": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-helpers": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.27.tgz", - "integrity": "sha1-6wlPrTfJ3B1wZt11Zimi1u+6B6I=", - "requires": { - "underscore": "1.8.3", - "web3-eth-iban": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-method": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.27.tgz", - "integrity": "sha1-3hTlQL1qdTfXBGcLSeY/BSYgG6o=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-promievent": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-promievent": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.27.tgz", - "integrity": "sha1-0lx9e75NU9+/3KBJ+e1LCmlUvrw=", - "requires": { - "bluebird": "3.3.1", - "eventemitter3": "1.1.1" - }, - "dependencies": { - "bluebird": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", - "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" - } - } - }, - "web3-core-requestmanager": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.27.tgz", - "integrity": "sha1-Vk7uJEoxCq5abGgyzeLA49wwHpg=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-providers-http": "1.0.0-beta.27", - "web3-providers-ipc": "1.0.0-beta.27", - "web3-providers-ws": "1.0.0-beta.27" - } - }, - "web3-core-subscriptions": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.27.tgz", - "integrity": "sha1-VvKRy1Sn7PgNRzTXL1Sky8uJdzc=", - "requires": { - "eventemitter3": "1.1.1", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27" - } - }, - "web3-eth": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.27.tgz", - "integrity": "sha1-hV3Q4BqU1Xhx/9j0n22eyqMXIas=", - "requires": { - "underscore": "1.8.3", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-eth-abi": "1.0.0-beta.27", - "web3-eth-accounts": "1.0.0-beta.27", - "web3-eth-contract": "1.0.0-beta.27", - "web3-eth-iban": "1.0.0-beta.27", - "web3-eth-personal": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-eth-abi": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.27.tgz", - "integrity": "sha1-RS6dk3YVYL4yNE7juJddD7JLvb4=", - "requires": { - "bn.js": "4.11.6", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "web3-eth-accounts": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.27.tgz", - "integrity": "sha1-mUDCjl48kg1nz2iH6pxS8c3Re3k=", - "requires": { - "bluebird": "3.3.1", - "crypto-browserify": "^3.12.0", - "eth-lib": "0.2.5", - "scrypt.js": "0.2.0", - "underscore": "1.8.3", - "uuid": "2.0.1", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - }, - "dependencies": { - "bluebird": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", - "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" - }, - "eth-lib": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", - "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.27.tgz", - "integrity": "sha1-AS96XVnaZ+KWxzWo8pcK7N0gfn0=", - "requires": { - "underscore": "1.8.3", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-promievent": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-eth-abi": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-eth-iban": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.27.tgz", - "integrity": "sha1-RDPCj0F8Oa+WMzoGpK+h/NSqaEI=", - "requires": { - "bn.js": "^4.11.6", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-eth-personal": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.27.tgz", - "integrity": "sha1-ukiaNIdkpKswOItcwcblm9bq7Ks=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-net": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.27.tgz", - "integrity": "sha1-eulTbsOf7Rou6zjALm48jt/oq30=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-providers-http": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.27.tgz", - "integrity": "sha1-LwrhYJvF5KNb4lgYzX/HfeBitqY=", - "requires": { - "web3-core-helpers": "1.0.0-beta.27", - "xhr2": "0.1.4" - } - }, - "web3-providers-ipc": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.27.tgz", - "integrity": "sha1-oFwkIe/+TEfxX0efeSUTWtCUJ2I=", - "requires": { - "oboe": "2.1.3", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27" - } - }, - "web3-providers-ws": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.27.tgz", - "integrity": "sha1-bUZ4Geoi3foba6FJjTHZVU4rBt0=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" - }, - "dependencies": { - "websocket": { - "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", - "requires": { - "debug": "^2.2.0", - "nan": "^2.3.3", - "typedarray-to-buffer": "^3.1.2", - "yaeti": "^0.0.6" - } - } - } - }, - "web3-shh": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.27.tgz", - "integrity": "sha1-b3bW6yoma769zwqjDFo62J82e38=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27" - } - }, - "web3-utils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.27.tgz", - "integrity": "sha1-0JfVwzaha59sqbYK9o3RXAZDIUs=", - "requires": { - "bn.js": "4.11.6", - "eth-lib": "^0.1.27", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.8.3", - "utf8": "2.1.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -14395,9 +13958,9 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", "requires": { "path-parse": "^1.0.6" } @@ -14570,9 +14133,9 @@ } }, "secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", + "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", "dev": true, "requires": { "bindings": "^1.5.0", @@ -14580,7 +14143,7 @@ "bn.js": "^4.11.8", "create-hash": "^1.2.0", "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", + "elliptic": "^6.5.2", "nan": "^2.14.0", "safe-buffer": "^5.1.2" } @@ -14635,9 +14198,9 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -14680,9 +14243,9 @@ "dev": true }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15240,9 +14803,9 @@ } }, "solc": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.1.tgz", - "integrity": "sha512-iKqNYps2p++x8L9sBg7JeAJb7EmW8VJ/2asAzwlLYcUhj86AzuWLe94UTSQHv1SSCCj/x6lya8twvXkZtlTbIQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.2.tgz", + "integrity": "sha512-PIFb/i7HSQXXfsXHlGDR+B2BCaQ+Bx7gpZ7bz+zLz2rPePyxkIJgLmb4rgRKYxEnIp5dKilcjKRPbrz8GNlIHQ==", "dev": true, "requires": { "command-exists": "^1.2.8", @@ -15311,11 +14874,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -15346,9 +14909,9 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", - "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "spdx-correct": { @@ -15569,9 +15132,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15621,31 +15184,30 @@ } }, "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", + "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", + "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" } }, "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -15653,9 +15215,9 @@ } }, "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -15779,41 +15341,38 @@ } }, "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, + "version": "0.1.37", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", + "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", "requires": { "bluebird": "^3.5.0", "buffer": "^5.0.5", "decompress": "^4.0.0", "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", + "fs-extra": "^2.1.2", + "fs-promise": "^2.0.0", "got": "^7.1.0", "mime-types": "^2.1.16", "mkdirp-promise": "^5.0.1", "mock-fs": "^4.1.0", "setimmediate": "^1.0.5", - "tar": "^4.0.2", + "tar.gz": "^1.0.5", "xhr-request-promise": "^0.1.2" }, "dependencies": { "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "requires": { "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^2.1.0" } }, "got": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -15832,19 +15391,12 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true } } }, @@ -15983,9 +15535,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -16125,42 +15677,32 @@ } }, "tape": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", - "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.0.tgz", + "integrity": "sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw==", "dev": true, "requires": { - "deep-equal": "~1.0.1", + "deep-equal": "~1.1.1", "defined": "~1.0.0", + "dotignore": "~0.1.2", "for-each": "~0.3.3", "function-bind": "~1.1.1", - "glob": "~7.1.4", + "glob": "~7.1.6", "has": "~1.0.3", "inherits": "~2.0.4", + "is-regex": "~1.0.5", "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.11.1", + "object-inspect": "~1.7.0", + "resolve": "~1.14.2", "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", + "string.prototype.trim": "~1.2.1", "through": "~2.3.8" }, "dependencies": { - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", + "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -16169,26 +15711,13 @@ } }, "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" } }, "tar-stream": { @@ -16221,16 +15750,6 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } } } }, @@ -16253,9 +15772,9 @@ }, "dependencies": { "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -16474,9 +15993,9 @@ } }, "tree-kill": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", - "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim-newlines": { @@ -16650,10 +16169,9 @@ } }, "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -16872,10 +16390,9 @@ } }, "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" }, "util": { "version": "0.10.4", @@ -16900,13 +16417,15 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" } }, "utils-merge": { @@ -17010,46 +16529,95 @@ "web3-net": "1.2.4", "web3-shh": "1.2.4", "web3-utils": "1.2.4" - } - }, - "web3-bzz": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.4.tgz", - "integrity": "sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A==", - "dev": true, - "requires": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" }, "dependencies": { "@types/node": { - "version": "10.17.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.11.tgz", - "integrity": "sha512-dNd2pp8qTzzNLAs3O8nH3iU9DG9866KHq9L3ISPB7DOGERZN81nW/5/g/KzMJpCU8jrbCiMRBzV9/sCEdRosig==", + "version": "12.12.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz", + "integrity": "sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==", "dev": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", "dev": true, "requires": { - "pump": "^3.0.0" + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.14.tgz", + "integrity": "sha512-G0UmX5uKEmW+ZAhmZ6PLTQ5eu/VPaT+d/tdLd5IFsKRPcbe6lPxocBtcYBFSaLaCW8O60AX90e91Nsp8lVHCNw==", + "dev": true + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true + } } }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", "get-stream": "^4.1.0", "lowercase-keys": "^1.0.1", "mimic-response": "^1.0.1", @@ -17058,235 +16626,641 @@ "url-parse-lax": "^3.0.0" } }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "dev": true, + "requires": { + "http-https": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", + "dev": true + }, + "swarm-js": { + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", + "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "decompress": "^4.0.0", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", + "dev": true + }, + "web3-bzz": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.4.tgz", + "integrity": "sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A==", + "dev": true, + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.14.tgz", + "integrity": "sha512-G0UmX5uKEmW+ZAhmZ6PLTQ5eu/VPaT+d/tdLd5IFsKRPcbe6lPxocBtcYBFSaLaCW8O60AX90e91Nsp8lVHCNw==", + "dev": true + } + } + }, + "web3-core": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.4.tgz", + "integrity": "sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A==", + "dev": true, + "requires": { + "@types/bignumber.js": "^5.0.0", + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "web3-core-helpers": "1.2.4", + "web3-core-method": "1.2.4", + "web3-core-requestmanager": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-core-helpers": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz", + "integrity": "sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-core-method": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.4.tgz", + "integrity": "sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.4", + "web3-core-promievent": "1.2.4", + "web3-core-subscriptions": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-core-promievent": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz", + "integrity": "sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz", + "integrity": "sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.4", + "web3-providers-http": "1.2.4", + "web3-providers-ipc": "1.2.4", + "web3-providers-ws": "1.2.4" + } + }, + "web3-core-subscriptions": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz", + "integrity": "sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw==", + "dev": true, + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.4" + } + }, + "web3-eth": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.4.tgz", + "integrity": "sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.4", + "web3-core-helpers": "1.2.4", + "web3-core-method": "1.2.4", + "web3-core-subscriptions": "1.2.4", + "web3-eth-abi": "1.2.4", + "web3-eth-accounts": "1.2.4", + "web3-eth-contract": "1.2.4", + "web3-eth-ens": "1.2.4", + "web3-eth-iban": "1.2.4", + "web3-eth-personal": "1.2.4", + "web3-net": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-eth-abi": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz", + "integrity": "sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg==", + "dev": true, + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.4" + } + }, + "web3-eth-accounts": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz", + "integrity": "sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw==", + "dev": true, + "requires": { + "@web3-js/scrypt-shim": "^0.1.0", + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.4", + "web3-core-helpers": "1.2.4", + "web3-core-method": "1.2.4", + "web3-utils": "1.2.4" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz", + "integrity": "sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.4", + "web3-core-helpers": "1.2.4", + "web3-core-method": "1.2.4", + "web3-core-promievent": "1.2.4", + "web3-core-subscriptions": "1.2.4", + "web3-eth-abi": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-eth-iban": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz", + "integrity": "sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.4" + } + }, + "web3-eth-personal": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz", + "integrity": "sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw==", + "dev": true, + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.4", + "web3-core-helpers": "1.2.4", + "web3-core-method": "1.2.4", + "web3-net": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-net": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.4.tgz", + "integrity": "sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A==", + "dev": true, + "requires": { + "web3-core": "1.2.4", + "web3-core-method": "1.2.4", + "web3-utils": "1.2.4" + } + }, + "web3-providers-http": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.4.tgz", + "integrity": "sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.4", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz", + "integrity": "sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og==", + "dev": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.4" + } + }, + "web3-providers-ws": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz", + "integrity": "sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ==", + "dev": true, + "requires": { + "@web3-js/websocket": "^1.0.29", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.4" + } + }, + "web3-shh": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.4.tgz", + "integrity": "sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ==", + "dev": true, + "requires": { + "web3-core": "1.2.4", + "web3-core-method": "1.2.4", + "web3-core-subscriptions": "1.2.4", + "web3-net": "1.2.4" + } + }, + "web3-utils": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.4.tgz", + "integrity": "sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "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" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, + } + } + }, + "web3-bzz": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.27.tgz", + "integrity": "sha1-Tmggpc/nOqsG2CV59FBFD76YIqM=", + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.37", + "underscore": "1.8.3" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", "requires": { - "prepend-http": "^2.0.0" + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" } } } }, "web3-core": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.4.tgz", - "integrity": "sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.27.tgz", + "integrity": "sha1-TQCb9x5Yt5F2E0EpF+/5ERO0N8M=", "requires": { - "@types/bignumber.js": "^5.0.0", - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.4", - "web3-core-method": "1.2.4", - "web3-core-requestmanager": "1.2.4", - "web3-utils": "1.2.4" + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-requestmanager": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-core-helpers": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz", - "integrity": "sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.27.tgz", + "integrity": "sha1-6wlPrTfJ3B1wZt11Zimi1u+6B6I=", "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.4", - "web3-utils": "1.2.4" + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-core-method": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.4.tgz", - "integrity": "sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.27.tgz", + "integrity": "sha1-3hTlQL1qdTfXBGcLSeY/BSYgG6o=", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.4", - "web3-core-promievent": "1.2.4", - "web3-core-subscriptions": "1.2.4", - "web3-utils": "1.2.4" + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-core-promievent": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz", - "integrity": "sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.27.tgz", + "integrity": "sha1-0lx9e75NU9+/3KBJ+e1LCmlUvrw=", "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" + "bluebird": "3.3.1", + "eventemitter3": "1.1.1" }, "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + }, "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" } } }, "web3-core-requestmanager": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz", - "integrity": "sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.27.tgz", + "integrity": "sha1-Vk7uJEoxCq5abGgyzeLA49wwHpg=", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.4", - "web3-providers-http": "1.2.4", - "web3-providers-ipc": "1.2.4", - "web3-providers-ws": "1.2.4" + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-providers-http": "1.0.0-beta.27", + "web3-providers-ipc": "1.0.0-beta.27", + "web3-providers-ws": "1.0.0-beta.27" } }, "web3-core-subscriptions": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz", - "integrity": "sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.27.tgz", + "integrity": "sha1-VvKRy1Sn7PgNRzTXL1Sky8uJdzc=", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.4" + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27" }, "dependencies": { "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" } } }, "web3-eth": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.4.tgz", - "integrity": "sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.4", - "web3-core-helpers": "1.2.4", - "web3-core-method": "1.2.4", - "web3-core-subscriptions": "1.2.4", - "web3-eth-abi": "1.2.4", - "web3-eth-accounts": "1.2.4", - "web3-eth-contract": "1.2.4", - "web3-eth-ens": "1.2.4", - "web3-eth-iban": "1.2.4", - "web3-eth-personal": "1.2.4", - "web3-net": "1.2.4", - "web3-utils": "1.2.4" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.27.tgz", + "integrity": "sha1-hV3Q4BqU1Xhx/9j0n22eyqMXIas=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-eth-accounts": "1.0.0-beta.27", + "web3-eth-contract": "1.0.0-beta.27", + "web3-eth-iban": "1.0.0-beta.27", + "web3-eth-personal": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-abi": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz", - "integrity": "sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.27.tgz", + "integrity": "sha1-RS6dk3YVYL4yNE7juJddD7JLvb4=", "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.4" + "bn.js": "4.11.6", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" }, "dependencies": { - "@types/node": { - "version": "10.17.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.11.tgz", - "integrity": "sha512-dNd2pp8qTzzNLAs3O8nH3iU9DG9866KHq9L3ISPB7DOGERZN81nW/5/g/KzMJpCU8jrbCiMRBzV9/sCEdRosig==", - "dev": true - }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, "web3-eth-accounts": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz", - "integrity": "sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw==", - "dev": true, - "requires": { - "@web3-js/scrypt-shim": "^0.1.0", - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.4", - "web3-core-helpers": "1.2.4", - "web3-core-method": "1.2.4", - "web3-utils": "1.2.4" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.27.tgz", + "integrity": "sha1-mUDCjl48kg1nz2iH6pxS8c3Re3k=", + "requires": { + "bluebird": "3.3.1", + "crypto-browserify": "^3.12.0", + "eth-lib": "0.2.5", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" }, "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", + "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -17294,28 +17268,25 @@ } }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" } } }, "web3-eth-contract": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz", - "integrity": "sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.27.tgz", + "integrity": "sha1-AS96XVnaZ+KWxzWo8pcK7N0gfn0=", "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.4", - "web3-core-helpers": "1.2.4", - "web3-core-method": "1.2.4", - "web3-core-promievent": "1.2.4", - "web3-core-subscriptions": "1.2.4", - "web3-eth-abi": "1.2.4", - "web3-utils": "1.2.4" + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-ens": { @@ -17334,6 +17305,12 @@ "web3-utils": "1.2.4" }, "dependencies": { + "@types/node": { + "version": "12.12.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz", + "integrity": "sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==", + "dev": true + }, "eth-lib": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", @@ -17364,9 +17341,9 @@ }, "dependencies": { "@types/node": { - "version": "10.17.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.11.tgz", - "integrity": "sha512-dNd2pp8qTzzNLAs3O8nH3iU9DG9866KHq9L3ISPB7DOGERZN81nW/5/g/KzMJpCU8jrbCiMRBzV9/sCEdRosig==", + "version": "10.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.14.tgz", + "integrity": "sha512-G0UmX5uKEmW+ZAhmZ6PLTQ5eu/VPaT+d/tdLd5IFsKRPcbe6lPxocBtcYBFSaLaCW8O60AX90e91Nsp8lVHCNw==", "dev": true }, "elliptic": { @@ -17600,110 +17577,119 @@ } }, "web3-eth-iban": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz", - "integrity": "sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.27.tgz", + "integrity": "sha1-RDPCj0F8Oa+WMzoGpK+h/NSqaEI=", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.4" + "bn.js": "^4.11.6", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-personal": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz", - "integrity": "sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.27.tgz", + "integrity": "sha1-ukiaNIdkpKswOItcwcblm9bq7Ks=", "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.4", - "web3-core-helpers": "1.2.4", - "web3-core-method": "1.2.4", - "web3-net": "1.2.4", - "web3-utils": "1.2.4" + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-net": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.4.tgz", - "integrity": "sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.27.tgz", + "integrity": "sha1-eulTbsOf7Rou6zjALm48jt/oq30=", "requires": { - "web3-core": "1.2.4", - "web3-core-method": "1.2.4", - "web3-utils": "1.2.4" + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-providers-http": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.4.tgz", - "integrity": "sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.27.tgz", + "integrity": "sha1-LwrhYJvF5KNb4lgYzX/HfeBitqY=", "requires": { - "web3-core-helpers": "1.2.4", - "xhr2-cookies": "1.1.0" + "web3-core-helpers": "1.0.0-beta.27", + "xhr2": "0.1.4" } }, "web3-providers-ipc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz", - "integrity": "sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.27.tgz", + "integrity": "sha1-oFwkIe/+TEfxX0efeSUTWtCUJ2I=", "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.4" + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27" } }, "web3-providers-ws": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz", - "integrity": "sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.27.tgz", + "integrity": "sha1-bUZ4Geoi3foba6FJjTHZVU4rBt0=", "requires": { - "@web3-js/websocket": "^1.0.29", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.4" + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", + "requires": { + "debug": "^2.2.0", + "nan": "^2.3.3", + "typedarray-to-buffer": "^3.1.2", + "yaeti": "^0.0.6" + } + } } }, "web3-shh": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.4.tgz", - "integrity": "sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.27.tgz", + "integrity": "sha1-b3bW6yoma769zwqjDFo62J82e38=", "requires": { - "web3-core": "1.2.4", - "web3-core-method": "1.2.4", - "web3-core-subscriptions": "1.2.4", - "web3-net": "1.2.4" + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27" } }, "web3-utils": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.4.tgz", - "integrity": "sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ==", - "dev": true, + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.27.tgz", + "integrity": "sha1-0JfVwzaha59sqbYK9o3RXAZDIUs=", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", + "bn.js": "4.11.6", + "eth-lib": "^0.1.27", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" }, "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, From 9df45242ba5cef3dba84fa66c7275e83e5a46b5a Mon Sep 17 00:00:00 2001 From: LianaHus Date: Tue, 14 Jan 2020 14:31:04 +0100 Subject: [PATCH 064/111] checking for receive among with fallback created separate section: added error report line, disableing should be added --- package-lock.json | 1096 +++++++++++++++---------- src/app/tabs/runTab/model/recorder.js | 2 + src/app/ui/multiParamManager.js | 7 +- src/app/ui/universal-dapp-ui.js | 332 +++++--- 4 files changed, 869 insertions(+), 568 deletions(-) diff --git a/package-lock.json b/package-lock.json index 514f1b91bd..9637366950 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1853,14 +1853,6 @@ "requires": { "scryptsy": "^2.1.0", "semver": "^6.3.0" - }, - "dependencies": { - "scryptsy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==", - "dev": true - } } }, "@web3-js/websocket": { @@ -2014,8 +2006,7 @@ "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" }, "agent-base": { "version": "2.1.1", @@ -3433,8 +3424,7 @@ "chownr": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" }, "ci-info": { "version": "1.6.0", @@ -6673,7 +6663,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, "requires": { "minipass": "^2.6.0" } @@ -7247,6 +7236,23 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true + }, + "yargs": { + "version": "13.2.4", + "bundled": true, + "requires": { + "require-directory": "^2.1.1", + "set-blocking": "^2.0.0", + "which-module": "^2.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "bundled": true, + "requires": { + "decamelize": "^1.2.0" + } } } }, @@ -7773,8 +7779,7 @@ }, "safe-buffer": { "version": "5.2.0", - "bundled": true, - "dev": true + "bundled": true }, "secp256k1": { "version": "3.7.1", @@ -7792,7 +7797,7 @@ } }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true }, @@ -7865,12 +7870,17 @@ "bundled": true, "dev": true }, - "strip-hex-prefix": { - "version": "1.0.0", + "tar": { + "version": "4.4.13", "bundled": true, - "dev": true, "requires": { - "is-hex-prefixed": "1.0.0" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "which": { @@ -7903,12 +7913,19 @@ }, "y18n": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + }, "yargs": { "version": "13.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -7926,7 +7943,8 @@ }, "yargs-parser": { "version": "13.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -9354,8 +9372,7 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" }, "js-tokens": { "version": "3.0.2", @@ -10584,7 +10601,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -10593,8 +10609,7 @@ "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, @@ -10608,7 +10623,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, "requires": { "minipass": "^2.9.0" } @@ -11181,17 +11195,20 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -11201,12 +11218,14 @@ }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "^5.0.1", @@ -11220,7 +11239,8 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "^2.0.0" @@ -11228,22 +11248,26 @@ }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -11251,17 +11275,20 @@ }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "^1.0.0" @@ -11269,7 +11296,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", @@ -11278,7 +11306,8 @@ }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -11287,7 +11316,8 @@ }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -11295,17 +11325,20 @@ }, "mimic-fn": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", "dev": true }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -11313,7 +11346,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" @@ -11321,12 +11355,14 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "^0.7.0", @@ -11336,17 +11372,20 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" @@ -11354,37 +11393,44 @@ }, "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -11392,17 +11438,20 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -11412,7 +11461,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -11420,12 +11470,14 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -11433,12 +11485,14 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", @@ -11447,17 +11501,20 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "10.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", "dev": true, "requires": { "cliui": "^3.2.0", @@ -11476,12 +11533,14 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { "string-width": "^1.0.1", @@ -11491,7 +11550,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -11503,7 +11563,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -11512,12 +11573,14 @@ "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -11529,7 +11592,8 @@ }, "yargs-parser": { "version": "8.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", "dev": true, "requires": { "camelcase": "^4.1.0" @@ -11537,7 +11601,8 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -11713,6 +11778,68 @@ "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + } } }, "object.omit": { @@ -13086,6 +13213,77 @@ "dev": true, "requires": { "remix-lib": "0.4.22" + }, + "dependencies": { + "ethereumjs-vm": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.1.tgz", + "integrity": "sha512-Bh2avDY9Hyon9TvJ/fmkdyd5JDnmTudLJ5oKhmTfXn0Jjq7UzP4YRNp7e5PWoWXSmdXAGXU9W0DXK5TV9Qy/NQ==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.1", + "ethereumjs-blockchain": "^4.0.2", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "~6.1.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "dev": true, + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "remix-lib": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.19.tgz", + "integrity": "sha512-TJ2PATzCsXIRR+khB6nBIjhPAY1c9lxhKyp+csbrkoYTUw+LcifAvvQA3W0FPRgoWZI3JFE2Vbt0WMvVOMLjhA==", + "dev": true, + "requires": { + "async": "^2.1.2", + "ethereumjs-block": "^2.2.1", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^6.2.0", + "ethereumjs-vm": "4.1.1", + "ethers": "^4.0.40", + "events": "^3.0.0", + "solc": "^0.6.0", + "web3": "^1.2.4" + } + } } }, "remix-debug": { @@ -13849,6 +14047,50 @@ "websocket": "^1.0.24" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "eventemitter3": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + }, "web3": { "version": "1.0.0-beta.27", "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.27.tgz", @@ -13862,44 +14104,315 @@ "web3-shh": "1.0.0-beta.27", "web3-utils": "1.0.0-beta.27" } - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", + }, + "web3-bzz": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.27.tgz", + "integrity": "sha1-Tmggpc/nOqsG2CV59FBFD76YIqM=", + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.37", + "underscore": "1.8.3" + } + }, + "web3-core": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.27.tgz", + "integrity": "sha1-TQCb9x5Yt5F2E0EpF+/5ERO0N8M=", + "requires": { + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-requestmanager": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.27.tgz", + "integrity": "sha1-6wlPrTfJ3B1wZt11Zimi1u+6B6I=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.27.tgz", + "integrity": "sha1-3hTlQL1qdTfXBGcLSeY/BSYgG6o=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-core-promievent": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.27.tgz", + "integrity": "sha1-0lx9e75NU9+/3KBJ+e1LCmlUvrw=", + "requires": { + "bluebird": "3.3.1", + "eventemitter3": "1.1.1" + }, + "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + } + } + }, + "web3-core-requestmanager": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.27.tgz", + "integrity": "sha1-Vk7uJEoxCq5abGgyzeLA49wwHpg=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-providers-http": "1.0.0-beta.27", + "web3-providers-ipc": "1.0.0-beta.27", + "web3-providers-ws": "1.0.0-beta.27" + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.27.tgz", + "integrity": "sha1-VvKRy1Sn7PgNRzTXL1Sky8uJdzc=", + "requires": { + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27" + } + }, + "web3-eth": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.27.tgz", + "integrity": "sha1-hV3Q4BqU1Xhx/9j0n22eyqMXIas=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-eth-accounts": "1.0.0-beta.27", + "web3-eth-contract": "1.0.0-beta.27", + "web3-eth-iban": "1.0.0-beta.27", + "web3-eth-personal": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.27.tgz", + "integrity": "sha1-RS6dk3YVYL4yNE7juJddD7JLvb4=", + "requires": { + "bn.js": "4.11.6", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.27.tgz", + "integrity": "sha1-mUDCjl48kg1nz2iH6pxS8c3Re3k=", + "requires": { + "bluebird": "3.3.1", + "crypto-browserify": "^3.12.0", + "eth-lib": "0.2.5", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + }, + "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + }, + "eth-lib": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", + "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.27.tgz", + "integrity": "sha1-AS96XVnaZ+KWxzWo8pcK7N0gfn0=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.27.tgz", + "integrity": "sha1-RDPCj0F8Oa+WMzoGpK+h/NSqaEI=", + "requires": { + "bn.js": "^4.11.6", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.27.tgz", + "integrity": "sha1-ukiaNIdkpKswOItcwcblm9bq7Ks=", + "requires": { + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-net": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.27.tgz", + "integrity": "sha1-eulTbsOf7Rou6zjALm48jt/oq30=", + "requires": { + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-providers-http": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.27.tgz", + "integrity": "sha1-LwrhYJvF5KNb4lgYzX/HfeBitqY=", + "requires": { + "web3-core-helpers": "1.0.0-beta.27", + "xhr2": "0.1.4" + } + }, + "web3-providers-ipc": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.27.tgz", + "integrity": "sha1-oFwkIe/+TEfxX0efeSUTWtCUJ2I=", + "requires": { + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27" + } + }, + "web3-providers-ws": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.27.tgz", + "integrity": "sha1-bUZ4Geoi3foba6FJjTHZVU4rBt0=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" + }, + "dependencies": { + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "requires": { + "debug": "^2.2.0", + "nan": "^2.3.3", + "typedarray-to-buffer": "^3.1.2", + "yaeti": "^0.0.6" + } + } + } + }, + "web3-shh": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.27.tgz", + "integrity": "sha1-b3bW6yoma769zwqjDFo62J82e38=", + "requires": { + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27" + } + }, + "web3-utils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.27.tgz", + "integrity": "sha1-0JfVwzaha59sqbYK9o3RXAZDIUs=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "^0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", "har-validator": "~5.1.0", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", @@ -14122,15 +14635,23 @@ "requires": { "scrypt": "^6.0.2", "scryptsy": "^1.2.1" + }, + "dependencies": { + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "requires": { + "pbkdf2": "^3.0.3" + } + } } }, "scryptsy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", - "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", - "requires": { - "pbkdf2": "^3.0.3" - } + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", + "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==", + "dev": true }, "secp256k1": { "version": "3.8.0", @@ -17082,213 +17603,6 @@ } } }, - "web3-bzz": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.27.tgz", - "integrity": "sha1-Tmggpc/nOqsG2CV59FBFD76YIqM=", - "requires": { - "got": "7.1.0", - "swarm-js": "0.1.37", - "underscore": "1.8.3" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } - } - }, - "web3-core": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.27.tgz", - "integrity": "sha1-TQCb9x5Yt5F2E0EpF+/5ERO0N8M=", - "requires": { - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-requestmanager": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-helpers": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.27.tgz", - "integrity": "sha1-6wlPrTfJ3B1wZt11Zimi1u+6B6I=", - "requires": { - "underscore": "1.8.3", - "web3-eth-iban": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-method": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.27.tgz", - "integrity": "sha1-3hTlQL1qdTfXBGcLSeY/BSYgG6o=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-promievent": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-core-promievent": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.27.tgz", - "integrity": "sha1-0lx9e75NU9+/3KBJ+e1LCmlUvrw=", - "requires": { - "bluebird": "3.3.1", - "eventemitter3": "1.1.1" - }, - "dependencies": { - "bluebird": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", - "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" - }, - "eventemitter3": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", - "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" - } - } - }, - "web3-core-requestmanager": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.27.tgz", - "integrity": "sha1-Vk7uJEoxCq5abGgyzeLA49wwHpg=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-providers-http": "1.0.0-beta.27", - "web3-providers-ipc": "1.0.0-beta.27", - "web3-providers-ws": "1.0.0-beta.27" - } - }, - "web3-core-subscriptions": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.27.tgz", - "integrity": "sha1-VvKRy1Sn7PgNRzTXL1Sky8uJdzc=", - "requires": { - "eventemitter3": "1.1.1", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27" - }, - "dependencies": { - "eventemitter3": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", - "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" - } - } - }, - "web3-eth": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.27.tgz", - "integrity": "sha1-hV3Q4BqU1Xhx/9j0n22eyqMXIas=", - "requires": { - "underscore": "1.8.3", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-eth-abi": "1.0.0-beta.27", - "web3-eth-accounts": "1.0.0-beta.27", - "web3-eth-contract": "1.0.0-beta.27", - "web3-eth-iban": "1.0.0-beta.27", - "web3-eth-personal": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-eth-abi": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.27.tgz", - "integrity": "sha1-RS6dk3YVYL4yNE7juJddD7JLvb4=", - "requires": { - "bn.js": "4.11.6", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "web3-eth-accounts": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.27.tgz", - "integrity": "sha1-mUDCjl48kg1nz2iH6pxS8c3Re3k=", - "requires": { - "bluebird": "3.3.1", - "crypto-browserify": "^3.12.0", - "eth-lib": "0.2.5", - "scrypt.js": "0.2.0", - "underscore": "1.8.3", - "uuid": "2.0.1", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - }, - "dependencies": { - "bluebird": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", - "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" - }, - "eth-lib": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", - "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" - } - } - }, - "web3-eth-contract": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.27.tgz", - "integrity": "sha1-AS96XVnaZ+KWxzWo8pcK7N0gfn0=", - "requires": { - "underscore": "1.8.3", - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-promievent": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-eth-abi": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, "web3-eth-ens": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz", @@ -17576,123 +17890,6 @@ } } }, - "web3-eth-iban": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.27.tgz", - "integrity": "sha1-RDPCj0F8Oa+WMzoGpK+h/NSqaEI=", - "requires": { - "bn.js": "^4.11.6", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-eth-personal": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.27.tgz", - "integrity": "sha1-ukiaNIdkpKswOItcwcblm9bq7Ks=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-helpers": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-net": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.27.tgz", - "integrity": "sha1-eulTbsOf7Rou6zjALm48jt/oq30=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-utils": "1.0.0-beta.27" - } - }, - "web3-providers-http": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.27.tgz", - "integrity": "sha1-LwrhYJvF5KNb4lgYzX/HfeBitqY=", - "requires": { - "web3-core-helpers": "1.0.0-beta.27", - "xhr2": "0.1.4" - } - }, - "web3-providers-ipc": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.27.tgz", - "integrity": "sha1-oFwkIe/+TEfxX0efeSUTWtCUJ2I=", - "requires": { - "oboe": "2.1.3", - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27" - } - }, - "web3-providers-ws": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.27.tgz", - "integrity": "sha1-bUZ4Geoi3foba6FJjTHZVU4rBt0=", - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.27", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "websocket": { - "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", - "requires": { - "debug": "^2.2.0", - "nan": "^2.3.3", - "typedarray-to-buffer": "^3.1.2", - "yaeti": "^0.0.6" - } - } - } - }, - "web3-shh": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.27.tgz", - "integrity": "sha1-b3bW6yoma769zwqjDFo62J82e38=", - "requires": { - "web3-core": "1.0.0-beta.27", - "web3-core-method": "1.0.0-beta.27", - "web3-core-subscriptions": "1.0.0-beta.27", - "web3-net": "1.0.0-beta.27" - } - }, - "web3-utils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.27.tgz", - "integrity": "sha1-0JfVwzaha59sqbYK9o3RXAZDIUs=", - "requires": { - "bn.js": "4.11.6", - "eth-lib": "^0.1.27", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.8.3", - "utf8": "2.1.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, "websocket": { "version": "1.0.31", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", @@ -17937,8 +18134,7 @@ "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" }, "xregexp": { "version": "2.0.0", diff --git a/src/app/tabs/runTab/model/recorder.js b/src/app/tabs/runTab/model/recorder.js index e56cdb5374..1925de0358 100644 --- a/src/app/tabs/runTab/model/recorder.js +++ b/src/app/tabs/runTab/model/recorder.js @@ -212,6 +212,8 @@ class Recorder { fnABI = txHelper.getConstructorInterface(abi) } else if (tx.record.type === 'fallback') { fnABI = txHelper.getFallbackInterface(abi) + } else if (tx.record.type === 'receive') { + fnABI = txHelper.getReceiveInterface(abi) } else { fnABI = txHelper.getFunction(abi, record.name + record.inputs) } diff --git a/src/app/ui/multiParamManager.js b/src/app/ui/multiParamManager.js index ab56d80b83..8c1d9bb780 100644 --- a/src/app/ui/multiParamManager.js +++ b/src/app/ui/multiParamManager.js @@ -113,7 +113,7 @@ class MultiParamManager { } else if (this.funABI.name) { title = this.funABI.name } else { - title = '(fallback)' + title = this.funABI.type === 'receive' ? '(receive)' : '(fallback)' } this.basicInputField = yo`` @@ -121,7 +121,7 @@ class MultiParamManager { this.basicInputField.setAttribute('title', this.inputs) this.basicInputField.setAttribute('style', 'flex: 4') - var onClick = (domEl) => { + var onClick = () => { this.clickCallBack(this.funABI.inputs, this.basicInputField.value) } let funcButton = yo`` @@ -204,8 +204,9 @@ class MultiParamManager { if (this.funABI.inputs && this.funABI.inputs.length > 0) { contractProperty.classList.add(css.hasArgs) - } else if (this.funABI.type === 'fallback') { + } else if (this.funABI.type === 'fallback' || this.funABI.type === 'receive') { contractProperty.classList.add(css.hasArgs) + this.basicInputField.setAttribute('title', `'(${this.funABI.type}')`) // probably should pass name instead this.contractActionsContainerSingle.querySelector('i').style.visibility = 'hidden' } else { this.contractActionsContainerSingle.querySelector('i').style.visibility = 'hidden' diff --git a/src/app/ui/universal-dapp-ui.js b/src/app/ui/universal-dapp-ui.js index a02e616280..b797f96b1b 100644 --- a/src/app/ui/universal-dapp-ui.js +++ b/src/app/ui/universal-dapp-ui.js @@ -112,17 +112,6 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address instance.appendChild(title) instance.appendChild(contractActionsWrapper) - // Add the fallback function - var fallback = self.udapp.getFallbackInterface(contractABI) - if (fallback) { - contractActionsWrapper.appendChild(this.getCallButton({ - funABI: fallback, - address: address, - contractAbi: contractABI, - contractName: contractName - })) - } - $.each(contractABI, (i, funABI) => { if (funABI.type !== 'function') { return @@ -136,6 +125,108 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address })) }) + this.calldataInput = yo` + + ` + this.amountInput = yo` + + ` + this.llIError = yo` + + ` + // constract LLInteractions elements + const lowLevelInteracions = yo` +
+
+ + +
+
+
+ + ${this.amountInput} + +
+
+ + ${this.calldataInput} + +
+
+
+ ${this.llIError} +
+
+ ` + + function setLLIError (text) { + self.llIError.innerText = text + } + + function sendCalldata () { + setLLIError('') + const fallback = self.udapp.getFallbackInterface(contractABI) + const args = { + funABI: fallback, + address: address, + contractAbi: contractABI, + contractName: contractName + } + if (!self.calldataInput.value) { + // show error: + setLLIError('Calldata field is empty') + } else { + if (fallback) { + // fallback is defined. call the fallback function + self.clickButton(args) + } else { + // show error + setLLIError("'fallback' function is not defined") + } + } + } + + function sendEther () { + setLLIError('') + const fallback = self.udapp.getFallbackInterface(contractABI) + const receive = self.udapp.getReceiveInterface(contractABI) + const argsR = { + funABI: receive, + address: address, + contractAbi: contractABI, + contractName: contractName + } + const argsF = { + funABI: receive, + address: address, + contractAbi: contractABI, + contractName: contractName + } + if (!self.amountInput.value) { + // show error: + setLLIError('Ether amount field is empty') + } else { + if (receive) { + self.clickButton(argsR) + // receive is defined. call the fallback function + } else if (fallback && fallback.stateMutability === 'payable') { + // receive is not defined but there is payable fallback function, call it + self.clickButton(argsF) + } else { + // show error + setLLIError("In order to receive Ether transfer the contract should have either 'receive' or payable 'fallback' function") + } + } + } + + contractActionsWrapper.appendChild(lowLevelInteracions) return instance } @@ -145,121 +236,141 @@ UniversalDAppUI.prototype.getCallButton = function (args) { let self = this // args.funABI, args.address [fun only] // args.contractName [constr only] - const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || args.funABI.constant + const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || !!args.funABI.constant var outputOverride = yo`
` // show return value - function clickButton (valArr, inputsValues) { - let logMsg - if (!lookupOnly) { - logMsg = `call to ${args.contractName}.${(args.funABI.name) ? args.funABI.name : '(fallback)'}` - } else { - logMsg = `transact to ${args.contractName}.${(args.funABI.name) ? args.funABI.name : '(fallback)'}` - } + const multiParamManager = new MultiParamManager(lookupOnly, args.funABI, (valArray, inputsValue) => { + this.clickButton(args, valArray, inputsValue) + }, self.udapp.getInputs(args.funABI)) - var value = inputsValues + const contractActionsContainer = yo`
${multiParamManager.render()}
` + contractActionsContainer.appendChild(outputOverride) - const confirmationCb = (network, tx, gasEstimation, continueTxExecution, cancelCb) => { - if (network.name !== 'Main') { - return continueTxExecution(null) - } - var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') - var content = confirmDialog(tx, amount, gasEstimation, self.udapp, - (gasPrice, cb) => { - let txFeeText, priceStatus - // TODO: this try catch feels like an anti pattern, can/should be - // removed, but for now keeping the original logic + return contractActionsContainer +} + +UniversalDAppUI.prototype.clickButton = function (args, valArr, inputsValue) { + let self = this + // check if it's a special function and add a name in case it is + const fuctionName = args.contractName + + (args.funABI.name ? args.funABI.name : args.funABI.type === 'receive' ? '(receive)' : '(fallback)') + + const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || !!args.funABI.constant + const logMsg = lookupOnly ? `transact to ${fuctionName}` : `call to ${fuctionName}` + + var value = inputsValue + + const confirmationCb = (network, tx, gasEstimation, continueTxExecution, cancelCb) => { + if (network.name !== 'Main') { + return continueTxExecution(null) + } + var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') + var content = confirmDialog(tx, amount, gasEstimation, self.udapp, + (gasPrice, cb) => { + let txFeeText, priceStatus + // TODO: this try catch feels like an anti pattern, can/should be + // removed, but for now keeping the original logic + try { + var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) + txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' + priceStatus = true + } catch (e) { + txFeeText = ' Please fix this issue before sending any transaction. ' + e.message + priceStatus = false + } + cb(txFeeText, priceStatus) + }, + (cb) => { + self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { + const warnMessage = ' Please fix this issue before sending any transaction. ' + if (error) { + return cb('Unable to retrieve the current network gas price.' + warnMessage + error) + } try { - var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) - txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' - priceStatus = true + var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') + cb(null, gasPriceValue) } catch (e) { - txFeeText = ' Please fix this issue before sending any transaction. ' + e.message - priceStatus = false + cb(warnMessage + e.message, null, false) + } + }) + } + ) + modalDialog( + 'Confirm transaction', + content, + { label: 'Confirm', + fn: () => { + self.udapp.config.setUnpersistedProperty( + 'doNotShowTransactionConfirmationAgain', + content.querySelector('input#confirmsetting').checked + ) + // TODO: check if this is check is still valid given the refactor + if (!content.gasPriceStatus) { + cancelCb('Given gas price is not correct') + } else { + var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') + continueTxExecution(gasPrice) + } + }}, { + label: 'Cancel', + fn: () => { + return cancelCb('Transaction canceled by user.') } - cb(txFeeText, priceStatus) - }, - (cb) => { - self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { - const warnMessage = ' Please fix this issue before sending any transaction. ' - if (error) { - return cb('Unable to retrieve the current network gas price.' + warnMessage + error) - } - try { - var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') - cb(null, gasPriceValue) - } catch (e) { - cb(warnMessage + e.message, null, false) - } - }) } ) + } + + const continueCb = (error, continueTxExecution, cancelCb) => { + if (error) { + const msg = typeof error !== 'string' ? error.message : error modalDialog( - 'Confirm transaction', - content, - { label: 'Confirm', - fn: () => { - self.udapp.config.setUnpersistedProperty( - 'doNotShowTransactionConfirmationAgain', - content.querySelector('input#confirmsetting').checked - ) - // TODO: check if this is check is still valid given the refactor - if (!content.gasPriceStatus) { - cancelCb('Given gas price is not correct') - } else { - var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') - continueTxExecution(gasPrice) - } - }}, { - label: 'Cancel', - fn: () => { - return cancelCb('Transaction canceled by user.') - } - } - ) + 'Gas estimation failed', + yo` +
Gas estimation errored with the following message (see below). + The transaction execution will likely fail. Do you want to force sending?
${msg}
+ `, + { + label: 'Send Transaction', + fn: () => continueTxExecution() + }, + { + label: 'Cancel Transaction', + fn: () => cancelCb() + } + ) + } else { + continueTxExecution() } + } - const continueCb = (error, continueTxExecution, cancelCb) => { - if (error) { - const msg = typeof error !== 'string' ? error.message : error - modalDialog( - 'Gas estimation failed', - yo` -
Gas estimation errored with the following message (see below). - The transaction execution will likely fail. Do you want to force sending?
${msg}
- `, - { - label: 'Send Transaction', - fn: () => continueTxExecution() - }, - { - label: 'Cancel Transaction', - fn: () => cancelCb() - } - ) - } else { - continueTxExecution() - } - } + const outputCb = (decoded) => { + outputOverride.innerHTML = '' + outputOverride.appendChild(decoded) + } - const outputCb = (decoded) => { - outputOverride.innerHTML = '' - outputOverride.appendChild(decoded) - } + const promptCb = (okCb, cancelCb) => { + modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) + } - const promptCb = (okCb, cancelCb) => { - modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) - } + const isSpecialFunction = args.funABI.type === 'fallback' || args.funABI.type === 'receive' - // contractsDetails is used to resolve libraries - txFormat.buildData(args.contractName, args.contractAbi, {}, false, args.funABI, args.funABI.type !== 'fallback' ? value : '', (error, data) => { + // contractsDetails is used to resolve libraries + txFormat.buildData( + args.contractName, + args.contractAbi, + {}, + false, + args.funABI, + !isSpecialFunction ? value : '', // input parameters for the function to call + (error, data) => { if (!error) { if (!lookupOnly) { self.logCallback(`${logMsg} pending ... `) } else { self.logCallback(`${logMsg}`) } - if (args.funABI.type === 'fallback') data.dataHex = value + if (isSpecialFunction) data.dataHex = value self.udapp.callFunction(args.address, data, args.funABI, confirmationCb, continueCb, promptCb, (error, txResult) => { if (!error) { var isVM = self.executionContext.isVM() @@ -286,17 +397,8 @@ UniversalDAppUI.prototype.getCallButton = function (args) { }, (data, runTxCallback) => { // called for libraries deployment self.udapp.runTx(data, confirmationCb, runTxCallback) - }) - } - - const multiParamManager = new MultiParamManager(lookupOnly, args.funABI, (valArray, inputsValues, domEl) => { - clickButton(valArray, inputsValues, domEl) - }, self.udapp.getInputs(args.funABI)) - - const contractActionsContainer = yo`
${multiParamManager.render()}
` - contractActionsContainer.appendChild(outputOverride) - - return contractActionsContainer + } + ) } module.exports = UniversalDAppUI From 55c5b6bfd187a689860cac4b53e8656a7007b2ea Mon Sep 17 00:00:00 2001 From: LianaHus Date: Wed, 22 Jan 2020 10:25:41 +0100 Subject: [PATCH 065/111] check for numeric type of amount using sendRawTransaction refactoring add check for hexadecimal:wq added ids --- src/app/ui/universal-dapp-ui.js | 388 ++++++++++------------ test-browser/commands/journalLastChild.js | 8 +- 2 files changed, 184 insertions(+), 212 deletions(-) diff --git a/src/app/ui/universal-dapp-ui.js b/src/app/ui/universal-dapp-ui.js index b797f96b1b..423f5271a7 100644 --- a/src/app/ui/universal-dapp-ui.js +++ b/src/app/ui/universal-dapp-ui.js @@ -120,19 +120,16 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address contractActionsWrapper.appendChild(this.getCallButton({ funABI: funABI, address: address, - contractAbi: contractABI, + contractABI: contractABI, contractName: contractName })) }) - this.calldataInput = yo` - + const calldataInput = yo` + ` - this.amountInput = yo` - - ` - this.llIError = yo` - + const llIError = yo` + ` // constract LLInteractions elements const lowLevelInteracions = yo` @@ -149,100 +146,171 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address class="fas fa-info text-info my-3 mx-1">
-
- - ${this.amountInput} - -
- ${this.calldataInput} - + ${calldataInput} +
- ${this.llIError} + ${llIError}
` - function setLLIError (text) { - self.llIError.innerText = text - } + function sendData () { + let error = false + function setLLIError (text) { + llIError.innerText = text + if (text !== '') error = true + } - function sendCalldata () { setLLIError('') const fallback = self.udapp.getFallbackInterface(contractABI) + const receive = self.udapp.getReceiveInterface(contractABI) const args = { funABI: fallback, address: address, - contractAbi: contractABI, - contractName: contractName + contractName: contractName, + contractABI: contractABI } - if (!self.calldataInput.value) { - // show error: - setLLIError('Calldata field is empty') - } else { - if (fallback) { - // fallback is defined. call the fallback function - self.clickButton(args) - } else { - // show error + let calldata = calldataInput.value + const amount = document.querySelector('#value').value + if (amount !== '0') { + // check for numeric and receive/fallback + if (!isNumeric(amount)) { + setLLIError('Value to send should be a number') + } else if (!receive && !(fallback && fallback.stateMutability === 'payable')) { + setLLIError("In order to receive Ether transfer the contract should have either 'receive' or payable 'fallback' function") + } + } + if (calldata) { + if (calldata.length > 3 && calldata.substr(0, 2) === '0x') { + if (!isHexadecimal(calldata.substr(2, calldata.length))) { + setLLIError('the calldata should be a valid hexadecimal value.') + } + } + if (!fallback) { setLLIError("'fallback' function is not defined") } } + if ((calldata || amount !== '0') && !error) self.runTransaction(false, args, null, calldata, null) } - function sendEther () { - setLLIError('') - const fallback = self.udapp.getFallbackInterface(contractABI) - const receive = self.udapp.getReceiveInterface(contractABI) - const argsR = { - funABI: receive, - address: address, - contractAbi: contractABI, - contractName: contractName - } - const argsF = { - funABI: receive, - address: address, - contractAbi: contractABI, - contractName: contractName + function isHexadecimal (value) { + return /^[0-9a-fA-F]+$/.test(value) + } + + function isNumeric (value) { + return /^\+?(0|[1-9]\d*)$/.test(value) + } + + contractActionsWrapper.appendChild(lowLevelInteracions) + return instance +} + +UniversalDAppUI.prototype.confirmationCb = function (network, tx, gasEstimation, continueTxExecution, cancelCb) { + let self = this + if (network.name !== 'Main') { + return continueTxExecution(null) + } + var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') + var content = confirmDialog(tx, amount, gasEstimation, self.udapp, + (gasPrice, cb) => { + let txFeeText, priceStatus + // TODO: this try catch feels like an anti pattern, can/should be + // removed, but for now keeping the original logic + try { + var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) + txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' + priceStatus = true + } catch (e) { + txFeeText = ' Please fix this issue before sending any transaction. ' + e.message + priceStatus = false + } + cb(txFeeText, priceStatus) + }, + (cb) => { + self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { + const warnMessage = ' Please fix this issue before sending any transaction. ' + if (error) { + return cb('Unable to retrieve the current network gas price.' + warnMessage + error) + } + try { + var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') + cb(null, gasPriceValue) + } catch (e) { + cb(warnMessage + e.message, null, false) + } + }) } - if (!self.amountInput.value) { - // show error: - setLLIError('Ether amount field is empty') - } else { - if (receive) { - self.clickButton(argsR) - // receive is defined. call the fallback function - } else if (fallback && fallback.stateMutability === 'payable') { - // receive is not defined but there is payable fallback function, call it - self.clickButton(argsF) - } else { - // show error - setLLIError("In order to receive Ether transfer the contract should have either 'receive' or payable 'fallback' function") + ) + modalDialog( + 'Confirm transaction', + content, + { label: 'Confirm', + fn: () => { + self.udapp.config.setUnpersistedProperty( + 'doNotShowTransactionConfirmationAgain', + content.querySelector('input#confirmsetting').checked + ) + // TODO: check if this is check is still valid given the refactor + if (!content.gasPriceStatus) { + cancelCb('Given gas price is not correct') + } else { + var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') + continueTxExecution(gasPrice) + } + } + }, + { + label: 'Cancel', + fn: () => { + return cancelCb('Transaction canceled by user.') } } + ) +} + +const continueCb = (error, continueTxExecution, cancelCb) => { + if (error) { + const msg = typeof error !== 'string' ? error.message : error + modalDialog( + 'Gas estimation failed', + yo` +
Gas estimation errored with the following message (see below). + The transaction execution will likely fail. Do you want to force sending?
${msg}
+ `, + { + label: 'Send Transaction', + fn: () => continueTxExecution() + }, + { + label: 'Cancel Transaction', + fn: () => cancelCb() + } + ) + } else { + continueTxExecution() } +} - contractActionsWrapper.appendChild(lowLevelInteracions) - return instance +const promptCb = (okCb, cancelCb) => { + modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) } // TODO this is used by renderInstance when a new instance is displayed. // this returns a DOM element. UniversalDAppUI.prototype.getCallButton = function (args) { let self = this - // args.funABI, args.address [fun only] - // args.contractName [constr only] - const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || !!args.funABI.constant - var outputOverride = yo`
` // show return value - - const multiParamManager = new MultiParamManager(lookupOnly, args.funABI, (valArray, inputsValue) => { - this.clickButton(args, valArray, inputsValue) - }, self.udapp.getInputs(args.funABI)) + const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || args.funABI.constant + const multiParamManager = new MultiParamManager( + lookupOnly, + args.funABI, + (valArray, inputsValues) => self.runTransaction(lookupOnly, args, valArray, inputsValues, outputOverride), + self.udapp.getInputs(args.funABI) + ) const contractActionsContainer = yo`
${multiParamManager.render()}
` contractActionsContainer.appendChild(outputOverride) @@ -250,155 +318,59 @@ UniversalDAppUI.prototype.getCallButton = function (args) { return contractActionsContainer } -UniversalDAppUI.prototype.clickButton = function (args, valArr, inputsValue) { +UniversalDAppUI.prototype.runTransaction = function (lookupOnly, args, valArr, inputsValues, outputOverride) { let self = this - // check if it's a special function and add a name in case it is - const fuctionName = args.contractName + - (args.funABI.name ? args.funABI.name : args.funABI.type === 'receive' ? '(receive)' : '(fallback)') - - const lookupOnly = args.funABI.stateMutability === 'view' || args.funABI.stateMutability === 'pure' || !!args.funABI.constant - const logMsg = lookupOnly ? `transact to ${fuctionName}` : `call to ${fuctionName}` - - var value = inputsValue - - const confirmationCb = (network, tx, gasEstimation, continueTxExecution, cancelCb) => { - if (network.name !== 'Main') { - return continueTxExecution(null) - } - var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') - var content = confirmDialog(tx, amount, gasEstimation, self.udapp, - (gasPrice, cb) => { - let txFeeText, priceStatus - // TODO: this try catch feels like an anti pattern, can/should be - // removed, but for now keeping the original logic - try { - var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) - txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' - priceStatus = true - } catch (e) { - txFeeText = ' Please fix this issue before sending any transaction. ' + e.message - priceStatus = false - } - cb(txFeeText, priceStatus) - }, - (cb) => { - self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { - const warnMessage = ' Please fix this issue before sending any transaction. ' - if (error) { - return cb('Unable to retrieve the current network gas price.' + warnMessage + error) - } - try { - var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') - cb(null, gasPriceValue) - } catch (e) { - cb(warnMessage + e.message, null, false) - } - }) - } - ) - modalDialog( - 'Confirm transaction', - content, - { label: 'Confirm', - fn: () => { - self.udapp.config.setUnpersistedProperty( - 'doNotShowTransactionConfirmationAgain', - content.querySelector('input#confirmsetting').checked - ) - // TODO: check if this is check is still valid given the refactor - if (!content.gasPriceStatus) { - cancelCb('Given gas price is not correct') - } else { - var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') - continueTxExecution(gasPrice) - } - }}, { - label: 'Cancel', - fn: () => { - return cancelCb('Transaction canceled by user.') - } - } - ) + let logMsg + if (!lookupOnly) { + logMsg = `call to ${args.contractName}.${(args.funABI.name) ? args.funABI.name : '(fallback)'}` + } else { + logMsg = `transact to ${args.contractName}.${(args.funABI.name) ? args.funABI.name : '(fallback)'}` } - const continueCb = (error, continueTxExecution, cancelCb) => { - if (error) { - const msg = typeof error !== 'string' ? error.message : error - modalDialog( - 'Gas estimation failed', - yo` -
Gas estimation errored with the following message (see below). - The transaction execution will likely fail. Do you want to force sending?
${msg}
- `, - { - label: 'Send Transaction', - fn: () => continueTxExecution() - }, - { - label: 'Cancel Transaction', - fn: () => cancelCb() - } - ) - } else { - continueTxExecution() - } - } + var value = inputsValues const outputCb = (decoded) => { - outputOverride.innerHTML = '' - outputOverride.appendChild(decoded) - } - - const promptCb = (okCb, cancelCb) => { - modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) + if (outputOverride) { + outputOverride.innerHTML = '' + outputOverride.appendChild(decoded) + } } - - const isSpecialFunction = args.funABI.type === 'fallback' || args.funABI.type === 'receive' - // contractsDetails is used to resolve libraries - txFormat.buildData( - args.contractName, - args.contractAbi, - {}, - false, - args.funABI, - !isSpecialFunction ? value : '', // input parameters for the function to call - (error, data) => { - if (!error) { - if (!lookupOnly) { - self.logCallback(`${logMsg} pending ... `) - } else { - self.logCallback(`${logMsg}`) - } - if (isSpecialFunction) data.dataHex = value - self.udapp.callFunction(args.address, data, args.funABI, confirmationCb, continueCb, promptCb, (error, txResult) => { - if (!error) { - var isVM = self.executionContext.isVM() - if (isVM) { - var vmError = txExecution.checkVMError(txResult) - if (vmError.error) { - self.logCallback(`${logMsg} errored: ${vmError.message} `) - return - } - } - if (lookupOnly) { - const decoded = decodeResponseToTreeView(self.executionContext.isVM() ? txResult.result.execResult.returnValue : ethJSUtil.toBuffer(txResult.result), args.funABI) - outputCb(decoded) - } - } else { - self.logCallback(`${logMsg} errored: ${error} `) - } - }) + txFormat.buildData(args.contractName, args.contractABI, {}, false, args.funABI, args.funABI.type !== 'fallback' ? value : '', (error, data) => { + if (!error) { + if (!lookupOnly) { + self.logCallback(`${logMsg} pending ... `) } else { - self.logCallback(`${logMsg} errored: ${error} `) + self.logCallback(`${logMsg}`) } - }, (msg) => { - self.logCallback(msg) - }, (data, runTxCallback) => { - // called for libraries deployment - self.udapp.runTx(data, confirmationCb, runTxCallback) + if (args.funABI.type === 'fallback') data.dataHex = value + self.udapp.callFunction(args.address, data, args.funABI, this.confirmationCb, continueCb, promptCb, (error, txResult) => { + if (!error) { + var isVM = self.executionContext.isVM() + if (isVM) { + var vmError = txExecution.checkVMError(txResult) + if (vmError.error) { + self.logCallback(`${logMsg} errored: ${vmError.message} `) + return + } + } + if (lookupOnly) { + const decoded = decodeResponseToTreeView(self.executionContext.isVM() ? txResult.result.execResult.returnValue : ethJSUtil.toBuffer(txResult.result), args.funABI) + outputCb(decoded) + } + } else { + self.logCallback(`${logMsg} errored: ${error} `) + } + }) + } else { + self.logCallback(`${logMsg} errored: ${error} `) } - ) + }, (msg) => { + self.logCallback(msg) + }, (data, runTxCallback) => { + // called for libraries deployment + self.udapp.runTx(data, this.confirmationCb, runTxCallback) + }) } module.exports = UniversalDAppUI diff --git a/test-browser/commands/journalLastChild.js b/test-browser/commands/journalLastChild.js index 81de8e4cde..3c5593eff3 100644 --- a/test-browser/commands/journalLastChild.js +++ b/test-browser/commands/journalLastChild.js @@ -3,10 +3,10 @@ const EventEmitter = require('events') class JournalLastChild extends EventEmitter { command (val) { this.api - .waitForElementVisible('#journal div:last-child span.text-info', 10000) - .assert.containsText('#journal div:last-child span.text-info', val).perform(() => { - this.emit('complete') - }) + .waitForElementVisible('#journal div:last-child span.text-info', 10000) + .assert.containsText('#journal div:last-child span.text-info', val).perform(() => { + this.emit('complete') + }) return this } } From 08a807d6c52f8105658ab979defa8e3afc162db6 Mon Sep 17 00:00:00 2001 From: LianaHus Date: Fri, 24 Jan 2020 10:43:23 +0100 Subject: [PATCH 066/111] added a test --- test-browser/commands/sendLowLevelTx.js | 18 ++++++++ test-browser/tests/specialFunctions.js | 58 +++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 test-browser/commands/sendLowLevelTx.js create mode 100644 test-browser/tests/specialFunctions.js diff --git a/test-browser/commands/sendLowLevelTx.js b/test-browser/commands/sendLowLevelTx.js new file mode 100644 index 0000000000..0b95caf045 --- /dev/null +++ b/test-browser/commands/sendLowLevelTx.js @@ -0,0 +1,18 @@ +const EventEmitter = require('events') +class sendLowLevelTx extends EventEmitter { + command (address, value, callData, callback) { + this.api.perform((client, done) => { + this.api.execute(function (value) { + document.getElementById('deployAndRunLLTxSendTransaction').click + done() + if (callback) { + callback.call(this.api) + } + this.emit('complete') + }) + }) + return this + } +} + +module.exports = sendLowLevelTx diff --git a/test-browser/tests/specialFunctions.js b/test-browser/tests/specialFunctions.js new file mode 100644 index 0000000000..4e011388a5 --- /dev/null +++ b/test-browser/tests/specialFunctions.js @@ -0,0 +1,58 @@ +'use strict' +var init = require('../helpers/init') +var sauce = require('./sauce') + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + '@sources': function () { + return sources + }, + 'Use special functions receive/fullback': function (browser) { + browser.waitForElementVisible('#icon-panel', 10000) + .testContracts('receiveAndfFallback.sol', sources[0]['browser/Untitled.sol'], ['CheckSpecials']) + .clickLaunchIcon('udapp' + .selectContract('CheckSpecials') + .createContract('') + .clickInstance(0) + .perform((done) => { + browser.getAddressAtPosition(0, (address) => { + browser.sendLowLevelTx(address, '0', '0xaa') + .journalLastChild('dd') + .waitForElementVisible('label[id="deployAndRunLLTxError"]') + .assert.containsText('label[id="deployAndRunLLTxError"]', '') + .perform(done) + }) + }) + ) + }, + tearDown: sauce +} + +var sources = [ + { + 'browser/receiveAndfFallback.sol': { + content: ` + contract CheckSpecials { + receive() payable external{} + fallback() external {} + } + ` + }, + 'browser/receiveOnly.sol': { + content: ` + contract CheckSpecials { + receive() payable external{} + } + ` + }, + 'browser/fallbackOnly.sol': { + content: ` + contract CheckSpecials { + fallback() payable external{} + } + ` + } + } +] From d2d2d9e385b5f520c9684be5cfdcf55a3dd5db7f Mon Sep 17 00:00:00 2001 From: LianaHus Date: Fri, 24 Jan 2020 10:54:52 +0100 Subject: [PATCH 067/111] move isHexadecimal to helpers.js --- src/app/ui/universal-dapp-ui.js | 12 ++---------- src/lib/helper.js | 6 ++++++ test-browser/tests/specialFunctions.js | 27 +++++++++++++------------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/app/ui/universal-dapp-ui.js b/src/app/ui/universal-dapp-ui.js index 423f5271a7..a9bab5991c 100644 --- a/src/app/ui/universal-dapp-ui.js +++ b/src/app/ui/universal-dapp-ui.js @@ -178,7 +178,7 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address const amount = document.querySelector('#value').value if (amount !== '0') { // check for numeric and receive/fallback - if (!isNumeric(amount)) { + if (!helper.isNumeric(amount)) { setLLIError('Value to send should be a number') } else if (!receive && !(fallback && fallback.stateMutability === 'payable')) { setLLIError("In order to receive Ether transfer the contract should have either 'receive' or payable 'fallback' function") @@ -186,7 +186,7 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address } if (calldata) { if (calldata.length > 3 && calldata.substr(0, 2) === '0x') { - if (!isHexadecimal(calldata.substr(2, calldata.length))) { + if (!helper.isHexadecimal(calldata.substr(2, calldata.length))) { setLLIError('the calldata should be a valid hexadecimal value.') } } @@ -197,14 +197,6 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address if ((calldata || amount !== '0') && !error) self.runTransaction(false, args, null, calldata, null) } - function isHexadecimal (value) { - return /^[0-9a-fA-F]+$/.test(value) - } - - function isNumeric (value) { - return /^\+?(0|[1-9]\d*)$/.test(value) - } - contractActionsWrapper.appendChild(lowLevelInteracions) return instance } diff --git a/src/lib/helper.js b/src/lib/helper.js index 8628418f5e..93f688e4f9 100644 --- a/src/lib/helper.js +++ b/src/lib/helper.js @@ -44,6 +44,12 @@ module.exports = { checkSpecialChars (name) { return name.match(/[:*?"<>\\'|]/) != null }, + isHexadecimal (value) { + return /^[0-9a-fA-F]+$/.test(value) + }, + isNumeric (value) { + return /^\+?(0|[1-9]\d*)$/.test(value) + }, find: find } diff --git a/test-browser/tests/specialFunctions.js b/test-browser/tests/specialFunctions.js index 4e011388a5..2efbcc9521 100644 --- a/test-browser/tests/specialFunctions.js +++ b/test-browser/tests/specialFunctions.js @@ -11,21 +11,20 @@ module.exports = { }, 'Use special functions receive/fullback': function (browser) { browser.waitForElementVisible('#icon-panel', 10000) - .testContracts('receiveAndfFallback.sol', sources[0]['browser/Untitled.sol'], ['CheckSpecials']) - .clickLaunchIcon('udapp' - .selectContract('CheckSpecials') - .createContract('') - .clickInstance(0) - .perform((done) => { - browser.getAddressAtPosition(0, (address) => { - browser.sendLowLevelTx(address, '0', '0xaa') - .journalLastChild('dd') - .waitForElementVisible('label[id="deployAndRunLLTxError"]') - .assert.containsText('label[id="deployAndRunLLTxError"]', '') - .perform(done) - }) + .testContracts('browser/receiveAndfFallback.sol', sources[0]['receiveAndfFallback.sol'], ['CheckSpecials']) + .clickLaunchIcon('udapp') + .selectContract('CheckSpecials') + .createContract('') + .clickInstance(0) + .perform((done) => { + browser.getAddressAtPosition(0, (address) => { + browser.sendLowLevelTx(address, '0', '0xaa') + .journalLastChild('dd') + .waitForElementVisible('label[id="deployAndRunLLTxError"]') + .assert.containsText('label[id="deployAndRunLLTxError"]', '') + .perform(done) }) - ) + }) }, tearDown: sauce } From a08db5f122a857e737838307f303bdd7a2139b8c Mon Sep 17 00:00:00 2001 From: LianaHus Date: Mon, 27 Jan 2020 16:15:24 +0100 Subject: [PATCH 068/111] improved the test --- package-lock.json | 73 +++---------------- package.json | 1 + src/app/tabs/runTab/settings.js | 2 +- src/app/ui/universal-dapp-ui.js | 97 +------------------------ test-browser/commands/sendLowLevelTx.js | 12 ++- test-browser/tests/specialFunctions.js | 8 +- 6 files changed, 27 insertions(+), 166 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9637366950..ad86992f85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2006,7 +2006,8 @@ "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", + "dev": true }, "agent-base": { "version": "2.1.1", @@ -9372,7 +9373,8 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true }, "js-tokens": { "version": "3.0.2", @@ -13215,69 +13217,17 @@ "remix-lib": "0.4.22" }, "dependencies": { - "ethereumjs-vm": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.1.tgz", - "integrity": "sha512-Bh2avDY9Hyon9TvJ/fmkdyd5JDnmTudLJ5oKhmTfXn0Jjq7UzP4YRNp7e5PWoWXSmdXAGXU9W0DXK5TV9Qy/NQ==", - "dev": true, - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.1", - "ethereumjs-blockchain": "^4.0.2", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "~6.1.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", - "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - } - } - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, "remix-lib": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.19.tgz", - "integrity": "sha512-TJ2PATzCsXIRR+khB6nBIjhPAY1c9lxhKyp+csbrkoYTUw+LcifAvvQA3W0FPRgoWZI3JFE2Vbt0WMvVOMLjhA==", + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.22.tgz", + "integrity": "sha512-nyRfFENxq+RtgX7lul1TV50eBCflNhAb1Dxaekd+xKQN9eM6IBOayMjAxZG01EDXZ57lsHqsr0p3kS4/ueqerA==", "dev": true, "requires": { "async": "^2.1.2", - "ethereumjs-block": "^2.2.1", - "ethereumjs-tx": "^2.1.1", + "ethereumjs-block": "^2.2.2", + "ethereumjs-tx": "^2.1.2", "ethereumjs-util": "^6.2.0", - "ethereumjs-vm": "4.1.1", + "ethereumjs-vm": "4.1.3", "ethers": "^4.0.40", "events": "^3.0.0", "solc": "^0.6.0", @@ -18134,7 +18084,8 @@ "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true }, "xregexp": { "version": "2.0.0", diff --git a/package.json b/package.json index 04f741b8e1..d4833aaa8b 100644 --- a/package.json +++ b/package.json @@ -168,6 +168,7 @@ "nightwatch_local_transactionExecution": "nightwatch ./test-browser/tests/transactionExecution.js --config nightwatch.js --env chrome ", "nightwatch_local_staticAnalysis": "nightwatch ./test-browser/tests/staticAnalysis.js --config nightwatch.js --env chrome ", "nightwatch_local_signingMessage": "nightwatch ./test-browser/tests/signingMessage.js --config nightwatch.js --env chrome ", + "nightwatch_local_specialFunctions": "nightwatch ./test-browser/tests/specialFunctions.js --config nightwatch.js --env chrome ", "nightwatch_local_solidityUnittests": "nightwatch ./test-browser/tests/solidityUnittests.js --config nightwatch.js --env chrome ", "nightwatch_local_remixd": "nightwatch ./test-browser/tests/remix.js --config nightwatch.js --env chrome ", "nightwatch_local_console": "nightwatch ./test-browser/tests/console.js --config nightwatch.js --env chrome ", diff --git a/src/app/tabs/runTab/settings.js b/src/app/tabs/runTab/settings.js index 09375020a3..ff3dc221d0 100644 --- a/src/app/tabs/runTab/settings.js +++ b/src/app/tabs/runTab/settings.js @@ -115,7 +115,7 @@ class SettingsUI {
Value
- + + ` const llIError = yo` @@ -201,95 +195,6 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address return instance } -UniversalDAppUI.prototype.confirmationCb = function (network, tx, gasEstimation, continueTxExecution, cancelCb) { - let self = this - if (network.name !== 'Main') { - return continueTxExecution(null) - } - var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') - var content = confirmDialog(tx, amount, gasEstimation, self.udapp, - (gasPrice, cb) => { - let txFeeText, priceStatus - // TODO: this try catch feels like an anti pattern, can/should be - // removed, but for now keeping the original logic - try { - var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) - txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' - priceStatus = true - } catch (e) { - txFeeText = ' Please fix this issue before sending any transaction. ' + e.message - priceStatus = false - } - cb(txFeeText, priceStatus) - }, - (cb) => { - self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { - const warnMessage = ' Please fix this issue before sending any transaction. ' - if (error) { - return cb('Unable to retrieve the current network gas price.' + warnMessage + error) - } - try { - var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') - cb(null, gasPriceValue) - } catch (e) { - cb(warnMessage + e.message, null, false) - } - }) - } - ) - modalDialog( - 'Confirm transaction', - content, - { label: 'Confirm', - fn: () => { - self.udapp.config.setUnpersistedProperty( - 'doNotShowTransactionConfirmationAgain', - content.querySelector('input#confirmsetting').checked - ) - // TODO: check if this is check is still valid given the refactor - if (!content.gasPriceStatus) { - cancelCb('Given gas price is not correct') - } else { - var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') - continueTxExecution(gasPrice) - } - } - }, - { - label: 'Cancel', - fn: () => { - return cancelCb('Transaction canceled by user.') - } - } - ) -} - -const continueCb = (error, continueTxExecution, cancelCb) => { - if (error) { - const msg = typeof error !== 'string' ? error.message : error - modalDialog( - 'Gas estimation failed', - yo` -
Gas estimation errored with the following message (see below). - The transaction execution will likely fail. Do you want to force sending?
${msg}
- `, - { - label: 'Send Transaction', - fn: () => continueTxExecution() - }, - { - label: 'Cancel Transaction', - fn: () => cancelCb() - } - ) - } else { - continueTxExecution() - } -} - -const promptCb = (okCb, cancelCb) => { - modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) -} // TODO this is used by renderInstance when a new instance is displayed. // this returns a DOM element. diff --git a/test-browser/commands/sendLowLevelTx.js b/test-browser/commands/sendLowLevelTx.js index 0b95caf045..49aaf4e1ed 100644 --- a/test-browser/commands/sendLowLevelTx.js +++ b/test-browser/commands/sendLowLevelTx.js @@ -1,10 +1,14 @@ const EventEmitter = require('events') class sendLowLevelTx extends EventEmitter { - command (address, value, callData, callback) { + command (browser, address, value, callData, callback) { this.api.perform((client, done) => { - this.api.execute(function (value) { - document.getElementById('deployAndRunLLTxSendTransaction').click - done() + browser.execute(function (value) { + browser.waitForElementVisible('deployAndRunLLTxSendTransaction', 1000) + .getElementById('deployAndRunLLTxCalldata').value = callData + .waitForElementVisible('deployAndRunTransferValue') + .getElementById('deployAndRunTransferValue').value = value + .click('deployAndRunLLTxSendTransaction', callback) + .done() if (callback) { callback.call(this.api) } diff --git a/test-browser/tests/specialFunctions.js b/test-browser/tests/specialFunctions.js index 2efbcc9521..a038e53384 100644 --- a/test-browser/tests/specialFunctions.js +++ b/test-browser/tests/specialFunctions.js @@ -11,12 +11,12 @@ module.exports = { }, 'Use special functions receive/fullback': function (browser) { browser.waitForElementVisible('#icon-panel', 10000) - .testContracts('browser/receiveAndfFallback.sol', sources[0]['receiveAndfFallback.sol'], ['CheckSpecials']) + .testContracts('receiveAndFallback.sol', sources[0]['browser/receiveAndFallback.sol'], ['CheckSpecials']) .clickLaunchIcon('udapp') .selectContract('CheckSpecials') .createContract('') .clickInstance(0) - .perform((done) => { + .perform((done) => { /* browser.getAddressAtPosition(0, (address) => { browser.sendLowLevelTx(address, '0', '0xaa') .journalLastChild('dd') @@ -24,14 +24,14 @@ module.exports = { .assert.containsText('label[id="deployAndRunLLTxError"]', '') .perform(done) }) - }) + */ }) }, tearDown: sauce } var sources = [ { - 'browser/receiveAndfFallback.sol': { + 'browser/receiveAndFallback.sol': { content: ` contract CheckSpecials { receive() payable external{} From 4a46ed9fa2ef3cac6de36dae79a684c68d30005a Mon Sep 17 00:00:00 2001 From: LianaHus Date: Tue, 28 Jan 2020 10:05:12 +0100 Subject: [PATCH 069/111] dded callbakcs file --- src/app/ui/sendTxCallbacks.js | 102 ++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/app/ui/sendTxCallbacks.js diff --git a/src/app/ui/sendTxCallbacks.js b/src/app/ui/sendTxCallbacks.js new file mode 100644 index 0000000000..47fe861ec5 --- /dev/null +++ b/src/app/ui/sendTxCallbacks.js @@ -0,0 +1,102 @@ +const yo = require('yo-yo') +const confirmDialog = require('./confirmDialog') +const modalCustom = require('./modal-dialog-custom') +const modalDialog = require('./modaldialog') +const typeConversion = remixLib.execution.typeConversion +const Web3 = require('web3') + +UniversalDAppUI.prototype.confirmationCb = function (executionContext, udapp, network, tx, gasEstimation, continueTxExecution, cancelCb) { + let self = this + if (network.name !== 'Main') { + return continueTxExecution(null) + } + var amount = Web3.utils.fromWei(typeConversion.toInt(tx.value), 'ether') + var content = confirmDialog(tx, amount, gasEstimation, self.udapp, + (gasPrice, cb) => { + let txFeeText, priceStatus + // TODO: this try catch feels like an anti pattern, can/should be + // removed, but for now keeping the original logic + try { + var fee = Web3.utils.toBN(tx.gas).mul(Web3.utils.toBN(Web3.utils.toWei(gasPrice.toString(10), 'gwei'))) + txFeeText = ' ' + Web3.utils.fromWei(fee.toString(10), 'ether') + ' Ether' + priceStatus = true + } catch (e) { + txFeeText = ' Please fix this issue before sending any transaction. ' + e.message + priceStatus = false + } + cb(txFeeText, priceStatus) + }, + (cb) => { + self.executionContext.web3().eth.getGasPrice((error, gasPrice) => { + const warnMessage = ' Please fix this issue before sending any transaction. ' + if (error) { + return cb('Unable to retrieve the current network gas price.' + warnMessage + error) + } + try { + var gasPriceValue = Web3.utils.fromWei(gasPrice.toString(10), 'gwei') + cb(null, gasPriceValue) + } catch (e) { + cb(warnMessage + e.message, null, false) + } + }) + } + ) + modalDialog( + 'Confirm transaction', + content, + { label: 'Confirm', + fn: () => { + self.udapp.config.setUnpersistedProperty( + 'doNotShowTransactionConfirmationAgain', + content.querySelector('input#confirmsetting').checked + ) + // TODO: check if this is check is still valid given the refactor + if (!content.gasPriceStatus) { + cancelCb('Given gas price is not correct') + } else { + var gasPrice = Web3.utils.toWei(content.querySelector('#gasprice').value, 'gwei') + continueTxExecution(gasPrice) + } + } + }, + { + label: 'Cancel', + fn: () => { + return cancelCb('Transaction canceled by user.') + } + } + ) +} + +module.exports = confirmationCb + +const continueCb = (error, continueTxExecution, cancelCb) => { + if (error) { + const msg = typeof error !== 'string' ? error.message : error + modalDialog( + 'Gas estimation failed', + yo` +
Gas estimation errored with the following message (see below). + The transaction execution will likely fail. Do you want to force sending?
${msg}
+ `, + { + label: 'Send Transaction', + fn: () => continueTxExecution() + }, + { + label: 'Cancel Transaction', + fn: () => cancelCb() + } + ) + } else { + continueTxExecution() + } +} + +module.exports = continueCb + +const promptCb = (okCb, cancelCb) => { + modalCustom.promptPassphrase('Passphrase requested', 'Personal mode is enabled. Please provide passphrase of account', '', okCb, cancelCb) +} + +module.exports = promptCb \ No newline at end of file From 101e0d215751bb02aaf056e4f76a0036526a82ef Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 28 Jan 2020 10:11:52 +0100 Subject: [PATCH 070/111] fix tests --- src/app/tabs/runTab/settings.js | 2 +- src/app/ui/sendTxCallbacks.js | 75 +++++----- src/app/ui/universal-dapp-ui.js | 7 +- test-browser/commands/clickInstance.js | 2 +- test-browser/commands/journalLastChild.js | 4 +- test-browser/commands/sendLowLevelTx.js | 27 ++-- test-browser/tests/specialFunctions.js | 175 ++++++++++++++++++++-- 7 files changed, 223 insertions(+), 69 deletions(-) diff --git a/src/app/tabs/runTab/settings.js b/src/app/tabs/runTab/settings.js index ff3dc221d0..09375020a3 100644 --- a/src/app/tabs/runTab/settings.js +++ b/src/app/tabs/runTab/settings.js @@ -115,7 +115,7 @@ class SettingsUI {
Value
- +