diff --git a/.gitignore b/.gitignore index 78d357c298..3ed656cbdf 100644 --- a/.gitignore +++ b/.gitignore @@ -95,6 +95,7 @@ contracts/erc1155/generated-artifacts/ contracts/extensions/generated-artifacts/ contracts/exchange-forwarder/generated-artifacts/ contracts/dev-utils/generated-artifacts/ +/packages/abi-gen/test/generated-test/generated-artifacts packages/sol-tracing-utils/test/fixtures/artifacts/ packages/metacoin/artifacts/ diff --git a/.prettierignore b/.prettierignore index 2c92af5de2..27f17a48d8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -24,6 +24,8 @@ lib /contracts/exchange-forwarder/generated-artifacts /contracts/dev-utils/generated-wrappers /contracts/dev-utils/generated-artifacts +/packages/abi-gen/test/generated-test/generated-artifacts +/packages/abi-gen/test/generated-test/generated-wrappers /packages/abi-gen-wrappers/src/generated-wrappers /packages/contract-artifacts/artifacts /python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts diff --git a/contracts/test-utils/package.json b/contracts/test-utils/package.json index 75332c2616..74e868137e 100644 --- a/contracts/test-utils/package.json +++ b/contracts/test-utils/package.json @@ -41,7 +41,6 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen": "^2.0.10", "@0x/dev-utils": "^2.2.3", "@0x/order-utils": "^8.1.1", "@0x/sol-compiler": "^3.1.8", diff --git a/packages/abi-gen/compiler.json b/packages/abi-gen/compiler.json new file mode 100644 index 0000000000..a9f5ffe850 --- /dev/null +++ b/packages/abi-gen/compiler.json @@ -0,0 +1,26 @@ +{ + "artifactsDir": "./test/generated-test/generated-artifacts", + "contractsDir": "./test/generated-test/contracts", + "useDockerisedSolc": false, + "isOfflineMode": false, + "compilerSettings": { + "evmVersion": "constantinople", + "optimizer": { + "enabled": true, + "runs": 1000000, + "details": { "yul": true, "deduplicate": true, "cse": true, "constantOptimizer": true } + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + } + }, + "contracts": ["AbiGenDummy.sol", "LibDummy.sol", "TestLibDummy.sol"] +} diff --git a/packages/abi-gen/diff.sh b/packages/abi-gen/diff.sh new file mode 100755 index 0000000000..5f6c89709c --- /dev/null +++ b/packages/abi-gen/diff.sh @@ -0,0 +1,5 @@ +diff $1 $2 +if [ $? -ne 0 ]; then + echo "ERROR: Run 'yarn generate_contract_wrappers' to update ./test/generated_test/generated-wrappers" + exit 1 +fi diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index b352861c22..4b3f7030ec 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -8,16 +8,37 @@ "main": "lib/src/index.js", "types": "lib/src/index.d.ts", "scripts": { - "lint": "tslint --format stylish --project .", - "fix": "tslint --fix --format stylish --project .", - "clean": "shx rm -rf lib", - "build": "tsc -b", + "lint": "tslint --format stylish --project . && yarn lint-contracts", + "lint-contracts": "solhint -c ../../contracts/.solhint.json contracts/**/**/**/**/*.sol", + "fix": "tslint --fix --format stylish --project . && yarn lint-contracts", + "clean": "shx rm -rf lib test/generated-test/lib", + "build": "tsc -b && yarn build:test", + "prebuild:test": "run-s compile:sol generate_contract_wrappers", + "build:test": "tsc --project test/generated-test/tsconfig.json", "build:ci": "yarn build", - "test": "yarn run_mocha", - "run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --bail --exit", + "test": "run-s run_mocha tmp_generate_contract_wrappers diff_contract_wrappers tmp_remove_contract_wrappers", + "run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js test/generated-test/lib/**/*_test.js --timeout 100000 --bail --exit", "test:circleci": "yarn test:coverage", "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", - "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info" + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "rebuild_and_test": "run-s build test", + "test:profiler": "SOLIDITY_PROFILER=true run-s build run_mocha profiler:report:html", + "test:trace": "SOLIDITY_REVERT_TRACE=true run-s build run_mocha", + "clean:sol": "rm -rf test/generated-test/generated-artifacts", + "compile:sol": "sol-compiler", + "watch:sol": "sol-compiler -w", + "generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output ./test/generated-test/generated-wrappers --backend ethers", + "tmp_generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output ./tmp/generated-wrappers --backend ethers", + "tmp_remove_contract_wrappers": "rm -rf ./tmp/generated-wrappers", + "diff_contract_wrappers": "./diff.sh ./tmp/generated-wrappers ./test/generated-test/generated-wrappers", + "coverage:report:text": "istanbul report text", + "coverage:report:html": "istanbul report html && open coverage/index.html", + "profiler:report:html": "istanbul report html && open coverage/index.html", + "contracts:gen": "contracts-gen" + }, + "config": { + "abis": "./test/generated-test/generated-artifacts/@(AbiGenDummy|LibDummy|TestLibDummy).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "bin": { "abi-gen": "bin/abi-gen.js" @@ -32,6 +53,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md", "dependencies": { + "@0x/types": "^2.2.2", "@0x/typescript-typings": "^4.2.2", "@0x/utils": "^4.3.3", "chalk": "^2.3.0", @@ -46,7 +68,14 @@ "yargs": "^10.0.3" }, "devDependencies": { + "@0x/base-contract": "^5.1.0", + "@0x/contracts-gen": "^1.0.9", + "@0x/dev-utils": "^2.2.3", + "@0x/sol-compiler": "^3.1.8", + "@0x/subproviders": "^4.1.0", "@0x/tslint-config": "^3.0.1", + "@0x/utils": "^4.3.3", + "@0x/web3-wrapper": "^6.0.6", "@types/glob": "5.0.35", "@types/handlebars": "^4.0.36", "@types/mkdirp": "^0.5.2", @@ -55,11 +84,14 @@ "@types/tmp": "^0.0.33", "@types/yargs": "^11.0.0", "chai": "^4.0.1", + "chai-as-promised": "^7.1.0", + "chai-bignumber": "^3.0.0", "dirty-chai": "^2.0.1", "make-promises-safe": "^1.1.0", "mocha": "^4.1.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", + "solhint": "^1.4.1", "tslint": "5.11.0", "typescript": "3.0.1" }, diff --git a/packages/abi-gen/test/generated-test/contracts/AbiGenDummy.sol b/packages/abi-gen/test/generated-test/contracts/AbiGenDummy.sol new file mode 100644 index 0000000000..05c1660ef1 --- /dev/null +++ b/packages/abi-gen/test/generated-test/contracts/AbiGenDummy.sol @@ -0,0 +1,91 @@ +/* + + Copyright 2018 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.5.5; + + +contract AbiGenDummy +{ + + uint256 constant internal SOME_CONSTANT = 1234; + string constant internal REVERT_REASON = "REVERT_WITH_CONSTANT"; + string constant internal REQUIRE_REASON = "REQUIRE_WITH_CONSTANT"; + + function simplePureFunction () + public + pure + returns (uint256 result) + { + return 1; + } + + function simplePureFunctionWithInput (uint256 x) + public + pure + returns (uint256 sum) + { + return 1 + x; + } + + function pureFunctionWithConstant () + public + pure + returns (uint256 someConstant) + { + return SOME_CONSTANT; + } + + function simpleRevert () + public + pure + { + revert("SIMPLE_REVERT"); + } + + function revertWithConstant () + public + pure + { + revert(REVERT_REASON); + } + + function simpleRequire () + public + pure + { + require(0 > 1, "SIMPLE_REQUIRE"); + } + + function requireWithConstant () + public + pure + { + require(0 > 1, REQUIRE_REASON); + } + + function ecrecoverFn(bytes32 hash, uint8 v, bytes32 r, bytes32 s) + public + pure + returns (address signerAddress) + { + bytes memory prefix = "\x19Ethereum Signed Message:\n32"; + bytes32 prefixedHash = keccak256(abi.encodePacked(prefix, hash)); + return ecrecover(prefixedHash, v, r, s); + } + +} diff --git a/packages/abi-gen/test/generated-test/contracts/LibDummy.sol b/packages/abi-gen/test/generated-test/contracts/LibDummy.sol new file mode 100644 index 0000000000..14ca9adf28 --- /dev/null +++ b/packages/abi-gen/test/generated-test/contracts/LibDummy.sol @@ -0,0 +1,42 @@ +/* + + Copyright 2018 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.5.5; + + +library LibDummy { + + using LibDummy for uint256; + uint256 constant internal SOME_CONSTANT = 1234; + + function addOne (uint256 x) + internal + pure + returns (uint256 sum) + { + return x + 1; + } + + function addConstant (uint256 x) + internal + pure + returns (uint256 someConstant) + { + return x + SOME_CONSTANT; + } +} diff --git a/packages/abi-gen/test/generated-test/contracts/TestLibDummy.sol b/packages/abi-gen/test/generated-test/contracts/TestLibDummy.sol new file mode 100644 index 0000000000..209d886509 --- /dev/null +++ b/packages/abi-gen/test/generated-test/contracts/TestLibDummy.sol @@ -0,0 +1,43 @@ +/* + + Copyright 2018 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.5.5; + +import "./LibDummy.sol"; + + +contract TestLibDummy { + + using LibDummy for uint256; + + function publicAddOne (uint256 x) + public + pure + returns (uint256 result) + { + return x.addOne(); + } + + function publicAddConstant (uint256 x) + public + pure + returns (uint256 result) + { + return x.addConstant(); + } +} diff --git a/packages/abi-gen/test/generated-test/generated-wrappers/abi_gen_dummy.ts b/packages/abi-gen/test/generated-test/generated-wrappers/abi_gen_dummy.ts new file mode 100644 index 0000000000..57a449e373 --- /dev/null +++ b/packages/abi-gen/test/generated-test/generated-wrappers/abi_gen_dummy.ts @@ -0,0 +1,340 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma +// tslint:disable:whitespace no-unbound-method no-trailing-whitespace +// tslint:disable:no-unused-variable +import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { schemas } from '@0x/json-schemas'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TransactionReceiptWithDecodedLogs, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import { assert } from '@0x/assert'; +import * as ethers from 'ethers'; +// tslint:enable:no-unused-variable + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class AbiGenDummyContract extends BaseContract { + public simpleRequire = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('simpleRequire()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('simpleRequire()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public ecrecoverFn = { + async callAsync( + hash: string, + v: number | BigNumber, + r: string, + s: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + assert.isString('hash', hash); + assert.isNumberOrBigNumber('v', v); + assert.isString('r', r); + assert.isString('s', s); + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('ecrecoverFn(bytes32,uint8,bytes32,bytes32)', [ + hash, + v, + r, + s, + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('ecrecoverFn(bytes32,uint8,bytes32,bytes32)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public revertWithConstant = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('revertWithConstant()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('revertWithConstant()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public simpleRevert = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('simpleRevert()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('simpleRevert()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public requireWithConstant = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('requireWithConstant()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('requireWithConstant()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public simplePureFunctionWithInput = { + async callAsync(x: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.isBigNumber('x', x); + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('simplePureFunctionWithInput(uint256)', [x]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('simplePureFunctionWithInput(uint256)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public simplePureFunction = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('simplePureFunction()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('simplePureFunction()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public pureFunctionWithConstant = { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as AbiGenDummyContract; + const encodedData = self._strictEncodeArguments('pureFunctionWithConstant()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('pureFunctionWithConstant()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (artifact.compilerOutput === undefined) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return AbiGenDummyContract.deployAsync(bytecode, abi, provider, txDefaults); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.isHexString('bytecode', bytecode); + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`AbiGenDummy successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new AbiGenDummyContract( + abi, + txReceipt.contractAddress as string, + provider, + txDefaults, + ); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('AbiGenDummy', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align +// tslint:enable:trailing-comma whitespace no-trailing-whitespace diff --git a/packages/abi-gen/test/generated-test/generated-wrappers/lib_dummy.ts b/packages/abi-gen/test/generated-test/generated-wrappers/lib_dummy.ts new file mode 100644 index 0000000000..4411c07ce9 --- /dev/null +++ b/packages/abi-gen/test/generated-test/generated-wrappers/lib_dummy.ts @@ -0,0 +1,86 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma +// tslint:disable:whitespace no-unbound-method no-trailing-whitespace +// tslint:disable:no-unused-variable +import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { schemas } from '@0x/json-schemas'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TransactionReceiptWithDecodedLogs, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import { assert } from '@0x/assert'; +import * as ethers from 'ethers'; +// tslint:enable:no-unused-variable + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class LibDummyContract extends BaseContract { + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (artifact.compilerOutput === undefined) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return LibDummyContract.deployAsync(bytecode, abi, provider, txDefaults); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.isHexString('bytecode', bytecode); + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`LibDummy successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new LibDummyContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('LibDummy', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align +// tslint:enable:trailing-comma whitespace no-trailing-whitespace diff --git a/packages/abi-gen/test/generated-test/generated-wrappers/test_lib_dummy.ts b/packages/abi-gen/test/generated-test/generated-wrappers/test_lib_dummy.ts new file mode 100644 index 0000000000..bf36180bd4 --- /dev/null +++ b/packages/abi-gen/test/generated-test/generated-wrappers/test_lib_dummy.ts @@ -0,0 +1,151 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma +// tslint:disable:whitespace no-unbound-method no-trailing-whitespace +// tslint:disable:no-unused-variable +import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { schemas } from '@0x/json-schemas'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TransactionReceiptWithDecodedLogs, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import { assert } from '@0x/assert'; +import * as ethers from 'ethers'; +// tslint:enable:no-unused-variable + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class TestLibDummyContract extends BaseContract { + public publicAddConstant = { + async callAsync(x: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.isBigNumber('x', x); + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as TestLibDummyContract; + const encodedData = self._strictEncodeArguments('publicAddConstant(uint256)', [x]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('publicAddConstant(uint256)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public publicAddOne = { + async callAsync(x: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + assert.isBigNumber('x', x); + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + const self = (this as any) as TestLibDummyContract; + const encodedData = self._strictEncodeArguments('publicAddOne(uint256)', [x]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('publicAddOne(uint256)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (artifact.compilerOutput === undefined) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return TestLibDummyContract.deployAsync(bytecode, abi, provider, txDefaults); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + assert.isHexString('bytecode', bytecode); + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`TestLibDummy successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new TestLibDummyContract( + abi, + txReceipt.contractAddress as string, + provider, + txDefaults, + ); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('TestLibDummy', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align +// tslint:enable:trailing-comma whitespace no-trailing-whitespace diff --git a/packages/abi-gen/test/generated-test/src/artifacts.ts b/packages/abi-gen/test/generated-test/src/artifacts.ts new file mode 100644 index 0000000000..f283c70f73 --- /dev/null +++ b/packages/abi-gen/test/generated-test/src/artifacts.ts @@ -0,0 +1,15 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as AbiGenDummy from '../generated-artifacts/AbiGenDummy.json'; +import * as LibDummy from '../generated-artifacts/LibDummy.json'; +import * as TestLibDummy from '../generated-artifacts/TestLibDummy.json'; +export const artifacts = { + AbiGenDummy: AbiGenDummy as ContractArtifact, + LibDummy: LibDummy as ContractArtifact, + TestLibDummy: TestLibDummy as ContractArtifact, +}; diff --git a/packages/abi-gen/test/generated-test/src/index.ts b/packages/abi-gen/test/generated-test/src/index.ts new file mode 100644 index 0000000000..d55f08ea2d --- /dev/null +++ b/packages/abi-gen/test/generated-test/src/index.ts @@ -0,0 +1,2 @@ +export * from './artifacts'; +export * from './wrappers'; diff --git a/packages/abi-gen/test/generated-test/src/wrappers.ts b/packages/abi-gen/test/generated-test/src/wrappers.ts new file mode 100644 index 0000000000..a41aa3d702 --- /dev/null +++ b/packages/abi-gen/test/generated-test/src/wrappers.ts @@ -0,0 +1,8 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/abi_gen_dummy'; +export * from '../generated-wrappers/lib_dummy'; +export * from '../generated-wrappers/test_lib_dummy'; diff --git a/packages/abi-gen/test/generated-test/test/abi_gen_dummy_test.ts b/packages/abi-gen/test/generated-test/test/abi_gen_dummy_test.ts new file mode 100644 index 0000000000..ea4c614750 --- /dev/null +++ b/packages/abi-gen/test/generated-test/test/abi_gen_dummy_test.ts @@ -0,0 +1,136 @@ +import { BlockchainLifecycle, devConstants, web3Factory } from '@0x/dev-utils'; +import { Web3ProviderEngine } from '@0x/subproviders'; +import { BigNumber, providerUtils } from '@0x/utils'; +import { Web3Wrapper } from '@0x/web3-wrapper'; + +import * as chai from 'chai'; +import * as chaiAsPromised from 'chai-as-promised'; +import * as ChaiBigNumber from 'chai-bignumber'; +import * as dirtyChai from 'dirty-chai'; + +import { AbiGenDummyContract, artifacts, TestLibDummyContract } from '../src'; + +const txDefaults = { + from: devConstants.TESTRPC_FIRST_ADDRESS, + gas: devConstants.GAS_LIMIT, +}; + +const provider: Web3ProviderEngine = web3Factory.getRpcProvider({ shouldUseInProcessGanache: true }); +const web3Wrapper = new Web3Wrapper(provider); + +chai.config.includeStack = true; +chai.use(ChaiBigNumber()); +chai.use(dirtyChai); +chai.use(chaiAsPromised); +const expect = chai.expect; +const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); + +describe('AbiGenDummy Contract', () => { + let abiGenDummy: AbiGenDummyContract; + before(async () => { + providerUtils.startProviderEngine(provider); + abiGenDummy = await AbiGenDummyContract.deployFrom0xArtifactAsync(artifacts.AbiGenDummy, provider, txDefaults); + await blockchainLifecycle.startAsync(); + }); + after(async () => { + await blockchainLifecycle.revertAsync(); + }); + describe('simplePureFunction', () => { + it('should call simplePureFunction', async () => { + const result = await abiGenDummy.simplePureFunction.callAsync(); + expect(result).to.deep.equal(new BigNumber(1)); + }); + }); + describe('simplePureFunctionWithInput', () => { + it('should call simplePureFunctionWithInput', async () => { + const result = await abiGenDummy.simplePureFunctionWithInput.callAsync(new BigNumber(5)); + expect(result).to.deep.equal(new BigNumber(6)); + }); + }); + describe('pureFunctionWithConstant', () => { + it('should call pureFunctionWithConstant', async () => { + const result = await abiGenDummy.pureFunctionWithConstant.callAsync(); + expect(result).to.deep.equal(new BigNumber(1234)); + }); + }); + describe('simpleRevert', () => { + it('should call simpleRevert', async () => { + return expectContractCallFailedAsync(abiGenDummy.simpleRevert.callAsync(), 'SIMPLE_REVERT'); + }); + }); + describe('revertWithConstant', () => { + it('should call revertWithConstant', async () => { + return expectContractCallFailedAsync(abiGenDummy.revertWithConstant.callAsync(), 'REVERT_WITH_CONSTANT'); + }); + }); + describe('simpleRequire', () => { + it('should call simpleRequire', async () => { + return expectContractCallFailedAsync(abiGenDummy.simpleRequire.callAsync(), 'SIMPLE_REQUIRE'); + }); + }); + describe('requireWithConstant', () => { + it('should call requireWithConstant', async () => { + return expectContractCallFailedAsync(abiGenDummy.requireWithConstant.callAsync(), 'REQUIRE_WITH_CONSTANT'); + }); + }); + + describe('ecrecoverFn', () => { + it('should implement ecrecover', async () => { + const signerAddress = devConstants.TESTRPC_FIRST_ADDRESS; + const message = '0x6927e990021d23b1eb7b8789f6a6feaf98fe104bb0cf8259421b79f9a34222b0'; + const signature = await web3Wrapper.signMessageAsync(signerAddress, message); + + // tslint:disable:custom-no-magic-numbers + const r = `0x${signature.slice(2, 66)}`; + const s = `0x${signature.slice(66, 130)}`; + const v = signature.slice(130, 132); + const v_decimal = parseInt(v, 16) + 27; // v: (0 or 1) => (27 or 28) + // tslint:enable:custom-no-magic-numbers + + const result = await abiGenDummy.ecrecoverFn.callAsync(message, v_decimal, r, s); + expect(result).to.equal(signerAddress); + }); + }); +}); + +describe('Lib dummy contract', () => { + let libDummy: TestLibDummyContract; + before(async () => { + await blockchainLifecycle.startAsync(); + }); + after(async () => { + await blockchainLifecycle.revertAsync(); + }); + before(async () => { + libDummy = await TestLibDummyContract.deployFrom0xArtifactAsync(artifacts.TestLibDummy, provider, txDefaults); + }); + beforeEach(async () => { + await blockchainLifecycle.startAsync(); + }); + afterEach(async () => { + await blockchainLifecycle.revertAsync(); + }); + + it('should call a library function', async () => { + const result = await libDummy.publicAddOne.callAsync(new BigNumber(1)); + expect(result).to.deep.equal(new BigNumber(2)); + }); + + it('should call a library function referencing a constant', async () => { + const result = await libDummy.publicAddConstant.callAsync(new BigNumber(1)); + expect(result).to.deep.equal(new BigNumber(1235)); + }); +}); + +// HACK(xianny): copied from @0x/contracts-test-utils to avoid circular dependency +/** + * Resolves if the the contract call fails with the given revert reason. + * @param p a Promise resulting from a contract call + * @param reason a specific revert reason + * @returns a new Promise which will reject if the conditions are not met and + * otherwise resolve with no value. + */ +function expectContractCallFailedAsync(p: Promise, reason: string): Chai.PromisedAssertion { + const rejectionMessageRegex = new RegExp(`^VM Exception while processing transaction: revert ${reason}$`); + return expect(p).to.be.rejectedWith(rejectionMessageRegex); +} diff --git a/packages/abi-gen/test/generated-test/tsconfig.json b/packages/abi-gen/test/generated-test/tsconfig.json new file mode 100644 index 0000000000..c4cf1171c7 --- /dev/null +++ b/packages/abi-gen/test/generated-test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "resolveJsonModule": true, + "outDir": "lib", + "rootDir": "." + }, + "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], + "files": [ + "./generated-artifacts/AbiGenDummy.json", + "./generated-artifacts/LibDummy.json", + "./generated-artifacts/TestLibDummy.json" + ] +} diff --git a/packages/abi-gen/tsconfig.json b/packages/abi-gen/tsconfig.json index 2ee711adcc..c8f4fab52a 100644 --- a/packages/abi-gen/tsconfig.json +++ b/packages/abi-gen/tsconfig.json @@ -4,5 +4,6 @@ "outDir": "lib", "rootDir": "." }, - "include": ["./src/**/*", "./test/**/*"] + "exclude": ["./test/generated-test/**/*"], + "include": ["./src/**/*", "./test/*"] } diff --git a/packages/abi-gen/tslint.json b/packages/abi-gen/tslint.json index dd9053357e..4c6315d332 100644 --- a/packages/abi-gen/tslint.json +++ b/packages/abi-gen/tslint.json @@ -1,3 +1,6 @@ { - "extends": ["@0x/tslint-config"] + "extends": ["@0x/tslint-config"], + "linterOptions": { + "exclude": ["./test/generated-test/generated-artifacts/**/*", "**/lib/**/*"] + } } diff --git a/yarn.lock b/yarn.lock index 1e60b42322..b7e6c87198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -738,14 +738,6 @@ dependencies: npm-registry-client "7.0.9" -"@0xproject/types@^1.0.1-rc.3": - version "1.1.4" - resolved "https://registry.npmjs.org/@0xproject/types/-/types-1.1.4.tgz#3ffd65e670d6a21dab19ee0ffd5fad0056291b8e" - dependencies: - "@types/node" "*" - bignumber.js "~4.1.0" - ethereum-types "^1.0.11" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": version "7.0.0" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -791,6 +783,12 @@ dependencies: regenerator-runtime "^0.12.0" +"@babel/runtime@^7.3.1": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" + dependencies: + regenerator-runtime "^0.13.2" + "@babel/types@^7.0.0": version "7.1.3" resolved "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" @@ -1427,13 +1425,6 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@radarrelay/types@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@radarrelay/types/-/types-1.2.1.tgz#d16edb43d0735a31c887b9e79ff6e53924ac8cc5" - dependencies: - "@0xproject/types" "^1.0.1-rc.3" - bignumber.js "^5.0.0" - "@reach/component-component@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@reach/component-component/-/component-component-0.1.1.tgz#62ea2ec290da32f5e3a9872fb51f9a3ae4370cc4" @@ -1490,12 +1481,6 @@ version "0.4.1" resolved "https://registry.yarnpkg.com/@types/accounting/-/accounting-0.4.1.tgz#865d9f5694fd7c438fba34eb4bc82eec6f34cdd5" -"@types/axios@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46" - dependencies: - axios "*" - "@types/bintrees@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@types/bintrees/-/bintrees-1.0.2.tgz#0dfdce4eeebdf90427bd35b0e79dc248b3d157a6" @@ -1516,6 +1501,12 @@ dependencies: "@types/node" "*" +"@types/bn.js@^4.11.4": + version "4.11.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.5.tgz#40e36197433f78f807524ec623afcf0169ac81dc" + dependencies: + "@types/node" "*" + "@types/body-parser@*", "@types/body-parser@^1.16.1": version "1.16.8" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.16.8.tgz#687ec34140624a3bec2b1a8ea9268478ae8f3be3" @@ -1550,12 +1541,6 @@ version "2.0.0" resolved "https://registry.npmjs.org/@types/detect-node/-/detect-node-2.0.0.tgz#696e024ddd105c72bbc6a2e3f97902a2886f2c3f" -"@types/dockerode@^2.5.9": - version "2.5.10" - resolved "https://registry.yarnpkg.com/@types/dockerode/-/dockerode-2.5.10.tgz#837379703c8140fdb704460b6cfee4621a5412a3" - dependencies: - "@types/node" "*" - "@types/enzyme-adapter-react-16@^1.0.3": version "1.0.3" resolved "https://registry.npmjs.org/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.3.tgz#0cf7025b036694ca8d596fe38f24162e7117acf1" @@ -1746,6 +1731,10 @@ version "10.9.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" +"@types/node@^10.12.18": + version "10.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.10.tgz#e491484c6060af8d461e12ec81c0da8a3282b8de" + "@types/numeral@^0.0.22": version "0.0.22" resolved "https://registry.yarnpkg.com/@types/numeral/-/numeral-0.0.22.tgz#86bef1f0a2d743afdc2ef3168d45f2905e1a0b93" @@ -1756,10 +1745,6 @@ dependencies: "@types/node" "*" -"@types/p-limit@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/p-limit/-/p-limit-2.0.0.tgz#c076b7daa9163108a35899ea6a9d927526943ea2" - "@types/pluralize@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" @@ -1778,10 +1763,6 @@ version "5.1.0" resolved "https://registry.yarnpkg.com/@types/query-string/-/query-string-5.1.0.tgz#7f40cdea49ddafa0ea4f3db35fb6c24d3bfd4dcc" -"@types/ramda@^0.26.8": - version "0.26.8" - resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.26.8.tgz#e002612cca52e52f9176d577f4d6229c8c72a10a" - "@types/rc-slider@^8.6.0": version "8.6.0" resolved "https://registry.yarnpkg.com/@types/rc-slider/-/rc-slider-8.6.0.tgz#7f061a920b067825c8455cf481c57b0927889c72" @@ -2182,13 +2163,6 @@ version "4.2.1" resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" -JSONStream@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - JSONStream@^1.0.4: version "1.3.3" resolved "http://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz#27b4b8fbbfeab4e71bcf551e7f27be8d952239bf" @@ -2664,10 +2638,6 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -async-parallel@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/async-parallel/-/async-parallel-1.2.3.tgz#0b90550aeffb7a365d8cee881eb0618f656a3450" - async@0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/async/-/async-0.2.9.tgz#df63060fbf3d33286a76aaf6d55a2986d9ff8619" @@ -2784,7 +2754,7 @@ aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -axios@*, axios@^0.18.0: +axios@^0.18.0: version "0.18.0" resolved "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" dependencies: @@ -3603,10 +3573,6 @@ bignumber.js@7.2.1: version "7.2.1" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" -bignumber.js@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-5.0.0.tgz#fbce63f09776b3000a83185badcde525daf34833" - "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" @@ -3779,10 +3745,6 @@ boom@5.x.x: dependencies: hoek "4.x.x" -bottleneck@^2.13.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.15.0.tgz#538ec3a32f0e94a06e934bcb2080eb2c4c901c5a" - bowser@^1.7.3: version "1.9.3" resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.3.tgz#6643ae4d783f31683f6d23156976b74183862162" @@ -3876,7 +3838,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: +browserify-cipher@^1.0.0, browserify-cipher@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" dependencies: @@ -4002,10 +3964,6 @@ buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -4364,6 +4322,10 @@ chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" +"charenc@>= 0.0.1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + check-error@^1.0.1, check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -4836,7 +4798,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@~1.6.2: +concat-stream@^1.4.6, concat-stream@^1.5.1, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -5248,6 +5210,10 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.4, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +"crypt@>= 0.0.1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -5531,12 +5497,6 @@ debug@3.1.0, debug@=3.1.0, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - dependencies: - ms "^2.1.1" - debug@^4.0.1, debug@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -5924,23 +5884,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -docker-modem@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.8.tgz#465d3b42764e5c49289454ebc06950c169b7d1fa" - dependencies: - JSONStream "1.3.2" - debug "^3.2.6" - readable-stream "~1.0.26-4" - split-ca "^1.0.0" - -dockerode@^2.5.7: - version "2.5.8" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" - dependencies: - concat-stream "~1.6.2" - docker-modem "^1.0.8" - tar-fs "~1.16.3" - doctrine@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" @@ -6534,6 +6477,13 @@ eth-block-tracker@^3.0.0: pify "^2.3.0" tape "^4.6.3" +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + eth-json-rpc-infura@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.1.0.tgz#01b955a04d1a827b14c6cdc8a78b3a025d06a183" @@ -6582,6 +6532,14 @@ eth-lib@0.2.7: elliptic "^6.4.0" xhr-request-promise "^0.1.2" +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + eth-lightwallet@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/eth-lightwallet/-/eth-lightwallet-3.0.1.tgz#297022932aa568f4e4eb0873bff257f5e5b78709" @@ -6645,13 +6603,6 @@ ethereum-common@^0.0.18: version "0.0.18" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" -ethereum-types@^1.0.11: - version "1.1.6" - resolved "https://registry.npmjs.org/ethereum-types/-/ethereum-types-1.1.6.tgz#14437dbf401de361e70dac6358e5f2915ad3c35d" - dependencies: - "@types/node" "*" - bignumber.js "~4.1.0" - ethereumjs-abi@0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" @@ -6727,7 +6678,7 @@ ethereumjs-common@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.1.0.tgz#5ec9086c314d619d8f05e79a0525829fcb0e93cb" -ethereumjs-tx@1.3.7: +ethereumjs-tx@1.3.7, ethereumjs-tx@^1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" dependencies: @@ -6832,6 +6783,21 @@ ethereumjs-wallet@0.6.2: utf8 "^3.0.0" uuid "^3.3.2" +ethers@^4.0.27: + version "4.0.31" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.31.tgz#50b066d8c74140944edfd2ad0a805162c30e3a20" + dependencies: + "@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.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + ethers@~4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.4.tgz#d3f85e8b27f4b59537e06526439b0fb15b44dc65" @@ -6863,7 +6829,7 @@ ethjs-abi@^0.2.1: js-sha3 "0.5.5" number-to-bn "1.7.0" -ethjs-unit@0.1.6: +ethjs-unit@0.1.6, ethjs-unit@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" dependencies: @@ -6918,10 +6884,14 @@ eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" -eventemitter3@^3.0.0: +eventemitter3@3.1.0, eventemitter3@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + events@1.1.1, events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -8242,10 +8212,20 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@4.1.15, graceful-fs@^3.0.0, graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~1.2.0: +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -8822,6 +8802,12 @@ icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + dependencies: + punycode "2.1.0" + ieee754@1.1.8: version "1.1.8" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -9977,7 +9963,7 @@ js-sha3@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" -js-sha3@0.5.7: +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" @@ -11704,6 +11690,10 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +natives@^1.1.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -12597,10 +12587,6 @@ package-json@^4.0.0, package-json@^4.0.1: registry-url "^3.0.3" semver "^5.1.0" -packet-reader@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" - pacote@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.1.0.tgz#59810859bbd72984dcb267269259375d32f391e5" @@ -12857,6 +12843,16 @@ pause-stream@0.0.11: dependencies: through "~2.3" +pbkdf2@^3.0.17: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.14" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" @@ -12883,41 +12879,6 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pg-connection-string@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" - -pg-pool@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.6.tgz#7b561a482feb0a0e599b58b5137fd2db3ad8111c" - -pg-types@~1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.1.tgz#d64087e3903b58ffaad279e7595c52208a14c3d2" - dependencies: - postgres-array "~1.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.0" - postgres-interval "^1.1.0" - -pg@^7.5.0: - version "7.7.1" - resolved "https://registry.yarnpkg.com/pg/-/pg-7.7.1.tgz#546b192ff484322b69689391f885de3ba91a30d4" - dependencies: - buffer-writer "2.0.0" - packet-reader "0.3.1" - pg-connection-string "0.1.3" - pg-pool "^2.0.4" - pg-types "~1.12.1" - pgpass "1.x" - semver "4.3.2" - -pgpass@1.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" - dependencies: - split "^1.0.0" - pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -13240,24 +13201,6 @@ postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.3.0" -postgres-array@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - -postgres-date@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz#e2d89702efdb258ff9d9cee0fe91bd06975257a8" - -postgres-interval@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz#bf71ff902635f21cb241a013fc421d81d1db15a9" - dependencies: - xtend "^4.0.0" - postinstall-build@^5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/postinstall-build/-/postinstall-build-5.0.3.tgz#238692f712a481d8f5bc8960e94786036241efc7" @@ -13643,14 +13586,14 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" +punycode@2.1.0, punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -punycode@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -13705,6 +13648,10 @@ querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +querystringify@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" @@ -13733,7 +13680,7 @@ ramda@0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" -ramda@^0.26, ramda@^0.26.1: +ramda@^0.26: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" @@ -13757,6 +13704,12 @@ randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: dependencies: safe-buffer "^5.1.0" +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + dependencies: + safe-buffer "^5.1.0" + randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" @@ -14288,7 +14241,7 @@ read@1, read@1.0.x, read@~1.0.1, read@~1.0.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.15, readable-stream@~1.0.26, readable-stream@~1.0.26-4, readable-stream@~1.0.31: +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.15, readable-stream@~1.0.26, readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -14780,7 +14733,7 @@ require-package-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: +requires-port@1.0.x, requires-port@1.x.x, requires-port@^1.0.0, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -15017,6 +14970,12 @@ rxjs@^6.1.0: dependencies: tslib "^1.9.0" +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -15105,6 +15064,14 @@ scrypt.js@0.2.0, scrypt.js@^0.2.0: scrypt "^6.0.2" scryptsy "^1.2.1" +scrypt.js@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.3.0.tgz#6c62d61728ad533c8c376a2e5e3e86d41a95c4c0" + dependencies: + scryptsy "^1.2.1" + optionalDependencies: + scrypt "^6.0.2" + scrypt@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/scrypt/-/scrypt-6.0.3.tgz#04e014a5682b53fa50c2d5cce167d719c06d870d" @@ -15191,10 +15158,6 @@ semver-sort@0.0.4: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -semver@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" - semver@^4.1.0: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" @@ -15320,6 +15283,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +sha1@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" + dependencies: + charenc ">= 0.0.1" + crypt ">= 0.0.1" + sha3@^1.1.0: version "1.2.2" resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.2.tgz#a66c5098de4c25bc88336ec8b4817d005bca7ba9" @@ -15763,10 +15733,6 @@ speedometer@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" -split-ca@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -16318,7 +16284,7 @@ tape@~2.3.2: resumer "~0.0.0" through "~2.3.4" -tar-fs@^1.13.0, tar-fs@~1.16.3: +tar-fs@^1.13.0: version "1.16.3" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" dependencies: @@ -17245,6 +17211,13 @@ url-parse@1.0.x: querystringify "0.0.x" requires-port "1.0.x" +url-parse@1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" + dependencies: + querystringify "^2.0.0" + requires-port "^1.0.0" + url-parse@^1.1.8: version "1.3.0" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.3.0.tgz#04a06c420d22beb9804f7ada2d57ad13160a4258" @@ -17359,14 +17332,14 @@ uuid@3.2.1, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" +uuid@3.3.2, uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" @@ -17599,6 +17572,16 @@ web3-core-helpers@1.0.0-beta.35: web3-eth-iban "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-core-helpers@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.55.tgz#832b8499889f9f514b1d174f00172fd3683d63de" + dependencies: + "@babel/runtime" "^7.3.1" + lodash "^4.17.11" + web3-core "1.0.0-beta.55" + web3-eth-iban "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-core-method@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.35.tgz#fc10e2d546cf4886038e6130bd5726b0952a4e5f" @@ -17609,6 +17592,19 @@ web3-core-method@1.0.0-beta.35: web3-core-subscriptions "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-core-method@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.55.tgz#0af994295ac2dd64ccd53305b7df8da76e11da49" + dependencies: + "@babel/runtime" "^7.3.1" + eventemitter3 "3.1.0" + lodash "^4.17.11" + rxjs "^6.4.0" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-subscriptions "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-core-promievent@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.35.tgz#4f1b24737520fa423fee3afee110fbe82bcb8691" @@ -17634,6 +17630,14 @@ web3-core-subscriptions@1.0.0-beta.35: underscore "1.8.3" web3-core-helpers "1.0.0-beta.35" +web3-core-subscriptions@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.55.tgz#105902c13db53466fc17d07a981ad3d41c700f76" + dependencies: + "@babel/runtime" "^7.3.1" + eventemitter3 "^3.1.0" + lodash "^4.17.11" + web3-core@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.35.tgz#0c44d3c50d23219b0b1531d145607a9bc7cd4b4f" @@ -17643,6 +17647,18 @@ web3-core@1.0.0-beta.35: web3-core-requestmanager "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-core@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.55.tgz#26b9abbf1bc1837c9cc90f06ecbc4ed714f89b53" + dependencies: + "@babel/runtime" "^7.3.1" + "@types/bn.js" "^4.11.4" + "@types/node" "^10.12.18" + lodash "^4.17.11" + web3-core-method "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-eth-abi@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.35.tgz#2eb9c1c7c7233db04010defcb192293e0db250e6" @@ -17652,6 +17668,15 @@ web3-eth-abi@1.0.0-beta.35: web3-core-helpers "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-eth-abi@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.55.tgz#69250420039346105a3d0f899c0a8a53be926f97" + dependencies: + "@babel/runtime" "^7.3.1" + ethers "^4.0.27" + lodash "^4.17.11" + web3-utils "1.0.0-beta.55" + web3-eth-abi@^1.0.0-beta.24: version "1.0.0-beta.34" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.34.tgz#034533e3aa2f7e59ff31793eaea685c0ed5af67a" @@ -17676,6 +17701,24 @@ web3-eth-accounts@1.0.0-beta.35: web3-core-method "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-eth-accounts@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.55.tgz#ba734ffdc1e3cc8ac0ea01de5241323a0c2f69f3" + dependencies: + "@babel/runtime" "^7.3.1" + browserify-cipher "^1.0.1" + eth-lib "0.2.8" + lodash "^4.17.11" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + scrypt.js "0.3.0" + uuid "3.3.2" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-eth-contract@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.35.tgz#5276242d8a3358d9f1ce92b71575c74f9015935c" @@ -17689,6 +17732,39 @@ web3-eth-contract@1.0.0-beta.35: web3-eth-abi "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-eth-contract@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.55.tgz#cd9e6727ff73d648ebe7cae17516e8aec5873c65" + dependencies: + "@babel/runtime" "^7.3.1" + "@types/bn.js" "^4.11.4" + lodash "^4.17.11" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-core-subscriptions "1.0.0-beta.55" + web3-eth-abi "1.0.0-beta.55" + web3-eth-accounts "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + +web3-eth-ens@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.55.tgz#4341434a3406728212d411ae7f22d4cf5b8642fe" + dependencies: + "@babel/runtime" "^7.3.1" + eth-ens-namehash "2.0.8" + lodash "^4.17.11" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-eth-abi "1.0.0-beta.55" + web3-eth-accounts "1.0.0-beta.55" + web3-eth-contract "1.0.0-beta.55" + web3-net "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-eth-iban@1.0.0-beta.34: version "1.0.0-beta.34" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz#9af458605867ccf74ea979aaf326b38ba6a5ba0c" @@ -17703,6 +17779,14 @@ web3-eth-iban@1.0.0-beta.35: bn.js "4.11.6" web3-utils "1.0.0-beta.35" +web3-eth-iban@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.55.tgz#15146a69de21addc99e7dbfb2920555b1e729637" + dependencies: + "@babel/runtime" "^7.3.1" + bn.js "4.11.8" + web3-utils "1.0.0-beta.55" + web3-eth-personal@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.35.tgz#ecac95b7a53d04a567447062d5cae5f49879e89f" @@ -17713,6 +17797,19 @@ web3-eth-personal@1.0.0-beta.35: web3-net "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-eth-personal@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.55.tgz#76e9d2da1501ee3c686751e7c7df63cc11793a1d" + dependencies: + "@babel/runtime" "^7.3.1" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-eth-accounts "1.0.0-beta.55" + web3-net "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-eth@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.35.tgz#c52c804afb95e6624b6f5e72a9af90fbf5005b68" @@ -17730,6 +17827,27 @@ web3-eth@1.0.0-beta.35: web3-net "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-eth@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.55.tgz#bb52150df0a77bd13511449a53793d4eb23ade6e" + dependencies: + "@babel/runtime" "^7.3.1" + ethereumjs-tx "^1.3.7" + rxjs "^6.4.0" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-core-subscriptions "1.0.0-beta.55" + web3-eth-abi "1.0.0-beta.55" + web3-eth-accounts "1.0.0-beta.55" + web3-eth-contract "1.0.0-beta.55" + web3-eth-ens "1.0.0-beta.55" + web3-eth-iban "1.0.0-beta.55" + web3-eth-personal "1.0.0-beta.55" + web3-net "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-net@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.35.tgz#5c6688e0dea71fcd910ee9dc5437b94b7f6b3354" @@ -17738,6 +17856,18 @@ web3-net@1.0.0-beta.35: web3-core-method "1.0.0-beta.35" web3-utils "1.0.0-beta.35" +web3-net@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.55.tgz#daf24323df16a890a0bac6c6eda48b6e8c7e96ef" + dependencies: + "@babel/runtime" "^7.3.1" + lodash "^4.17.11" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-provider-engine@14.0.6: version "14.0.6" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz#cbdd66fe20c0136a3a495cbe40d18b6c4160d5f0" @@ -17836,6 +17966,22 @@ web3-providers-ws@1.0.0-beta.35: web3-core-helpers "1.0.0-beta.35" websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" +web3-providers@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-providers/-/web3-providers-1.0.0-beta.55.tgz#639503517741b69baaa82f1f940630df6a25992b" + dependencies: + "@babel/runtime" "^7.3.1" + "@types/node" "^10.12.18" + eventemitter3 "3.1.0" + lodash "^4.17.11" + url-parse "1.4.4" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + websocket "^1.0.28" + xhr2-cookies "1.1.0" + web3-shh@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.35.tgz#7e4a585f8beee0c1927390937c6537748a5d1a58" @@ -17845,6 +17991,19 @@ web3-shh@1.0.0-beta.35: web3-core-subscriptions "1.0.0-beta.35" web3-net "1.0.0-beta.35" +web3-shh@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.55.tgz#56f152ebcefb791dab86d2e6f1c296f8c1553644" + dependencies: + "@babel/runtime" "^7.3.1" + web3-core "1.0.0-beta.55" + web3-core-helpers "1.0.0-beta.55" + web3-core-method "1.0.0-beta.55" + web3-core-subscriptions "1.0.0-beta.55" + web3-net "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + web3-typescript-typings@^0.10.2: version "0.10.2" resolved "https://registry.yarnpkg.com/web3-typescript-typings/-/web3-typescript-typings-0.10.2.tgz#a9903815d2a8a0dbd73fd5db374070de0bd30497" @@ -17875,6 +18034,21 @@ web3-utils@1.0.0-beta.35: underscore "1.8.3" utf8 "2.1.1" +web3-utils@1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.55.tgz#beb40926b7c04208b752d36a9bc959d27a04b308" + dependencies: + "@babel/runtime" "^7.3.1" + "@types/bn.js" "^4.11.4" + "@types/node" "^10.12.18" + bn.js "4.11.8" + eth-lib "0.2.8" + ethjs-unit "^0.1.6" + lodash "^4.17.11" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "2.1.1" + web3@0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.2.tgz#c54dac5fc0e377399c04c1a6ecbb12e4513278d6" @@ -17907,6 +18081,20 @@ web3@^0.18.0: xhr2 "*" xmlhttprequest "*" +web3@^1.0.0-beta.55: + version "1.0.0-beta.55" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.55.tgz#8845075129299da172c2eb41a748c8a87c2a2b5a" + dependencies: + "@babel/runtime" "^7.3.1" + "@types/node" "^10.12.18" + web3-core "1.0.0-beta.55" + web3-eth "1.0.0-beta.55" + web3-eth-personal "1.0.0-beta.55" + web3-net "1.0.0-beta.55" + web3-providers "1.0.0-beta.55" + web3-shh "1.0.0-beta.55" + web3-utils "1.0.0-beta.55" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -18068,7 +18256,7 @@ websocket@1.0.26: typedarray-to-buffer "^3.1.2" yaeti "^0.0.6" -websocket@^1.0.25, websocket@^1.0.26: +websocket@^1.0.25, websocket@^1.0.26, websocket@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.28.tgz#9e5f6fdc8a3fe01d4422647ef93abdd8d45a78d3" dependencies: