diff --git a/contracts/coordinator/contracts/src/Coordinator.sol b/contracts/coordinator/contracts/src/Coordinator.sol index 6a0bdf5a01..3036fbf02e 100644 --- a/contracts/coordinator/contracts/src/Coordinator.sol +++ b/contracts/coordinator/contracts/src/Coordinator.sol @@ -19,7 +19,9 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; +import "@0x/contracts-exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol"; import "./libs/LibConstants.sol"; +import "./libs/LibEIP712CoordinatorDomain.sol"; import "./MixinSignatureValidator.sol"; import "./MixinCoordinatorApprovalVerifier.sol"; import "./MixinCoordinatorCore.sol"; @@ -37,6 +39,7 @@ contract Coordinator is constructor (address exchange, uint256 chainId) public LibConstants(exchange) - LibEIP712Domain(chainId) + LibEIP712CoordinatorDomain(chainId, address(0)) + LibEIP712ExchangeDomain(chainId, exchange) {} } diff --git a/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol b/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol index bb3be65a73..a407d20653 100644 --- a/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol +++ b/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol @@ -21,10 +21,10 @@ pragma experimental "ABIEncoderV2"; import "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol"; import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibZeroExTransaction.sol"; import "@0x/contracts-utils/contracts/src/LibBytes.sol"; import "@0x/contracts-utils/contracts/src/LibAddressArray.sol"; import "./libs/LibCoordinatorApproval.sol"; -import "./libs/LibZeroExTransaction.sol"; import "./mixins/MSignatureValidator.sol"; import "./mixins/MCoordinatorApprovalVerifier.sol"; diff --git a/contracts/coordinator/contracts/src/MixinCoordinatorCore.sol b/contracts/coordinator/contracts/src/MixinCoordinatorCore.sol index 4000562416..64cc0d6956 100644 --- a/contracts/coordinator/contracts/src/MixinCoordinatorCore.sol +++ b/contracts/coordinator/contracts/src/MixinCoordinatorCore.sol @@ -19,7 +19,7 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; -import "./libs/LibZeroExTransaction.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibZeroExTransaction.sol"; import "./libs/LibConstants.sol"; import "./mixins/MCoordinatorApprovalVerifier.sol"; import "./interfaces/ICoordinatorCore.sol"; diff --git a/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol b/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol index c0f8ccf4e0..aeafdcd571 100644 --- a/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol +++ b/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol @@ -20,7 +20,7 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; -import "../libs/LibZeroExTransaction.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibZeroExTransaction.sol"; contract ICoordinatorApprovalVerifier { diff --git a/contracts/coordinator/contracts/src/interfaces/ICoordinatorCore.sol b/contracts/coordinator/contracts/src/interfaces/ICoordinatorCore.sol index e1139dab10..96d9558f4e 100644 --- a/contracts/coordinator/contracts/src/interfaces/ICoordinatorCore.sol +++ b/contracts/coordinator/contracts/src/interfaces/ICoordinatorCore.sol @@ -19,7 +19,7 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; -import "../libs/LibZeroExTransaction.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibZeroExTransaction.sol"; contract ICoordinatorCore { diff --git a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol index 15bd656176..c13b765753 100644 --- a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol +++ b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol @@ -19,11 +19,11 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; -import "./LibEIP712Domain.sol"; +import "./LibEIP712CoordinatorDomain.sol"; contract LibCoordinatorApproval is - LibEIP712Domain + LibEIP712CoordinatorDomain { // Hash for the EIP712 Coordinator approval message // keccak256(abi.encodePacked( diff --git a/contracts/coordinator/contracts/src/libs/LibEIP712Domain.sol b/contracts/coordinator/contracts/src/libs/LibEIP712CoordinatorDomain.sol similarity index 69% rename from contracts/coordinator/contracts/src/libs/LibEIP712Domain.sol rename to contracts/coordinator/contracts/src/libs/LibEIP712CoordinatorDomain.sol index c648901caa..8ba7219063 100644 --- a/contracts/coordinator/contracts/src/libs/LibEIP712Domain.sol +++ b/contracts/coordinator/contracts/src/libs/LibEIP712CoordinatorDomain.sol @@ -18,16 +18,14 @@ pragma solidity ^0.5.5; -import "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol"; -import "@0x/contracts-exchange-libs/contracts/src/LibEIP712ExchangeDomainConstants.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol"; import "./LibConstants.sol"; // solhint-disable var-name-mixedcase -contract LibEIP712Domain is +contract LibEIP712CoordinatorDomain is LibConstants, - LibEIP712, - LibEIP712ExchangeDomainConstants + LibEIP712ExchangeDomain { // EIP712 Domain Name value for the Coordinator @@ -43,20 +41,15 @@ contract LibEIP712Domain is bytes32 public EIP712_EXCHANGE_DOMAIN_HASH; /// @param chainId Chain ID of the network this contract is deployed on. - constructor (uint256 chainId) + /// @param verifyingContractAddress Address of the verifying contract (null if the address of this contract) + constructor (uint256 chainId, address verifyingContractAddress) public { EIP712_COORDINATOR_DOMAIN_HASH = hashEIP712Domain( EIP712_COORDINATOR_DOMAIN_NAME, EIP712_COORDINATOR_DOMAIN_VERSION, chainId, - address(this) - ); - EIP712_EXCHANGE_DOMAIN_HASH = hashEIP712Domain( - EIP712_EXCHANGE_DOMAIN_NAME, - EIP712_EXCHANGE_DOMAIN_VERSION, - chainId, - address(EXCHANGE) + verifyingContractAddress == address(0) ? address(this) : verifyingContractAddress ); } @@ -71,16 +64,4 @@ contract LibEIP712Domain is { return hashEIP712Message(EIP712_COORDINATOR_DOMAIN_HASH, hashStruct); } - - /// @dev Calculates EIP712 encoding for a hash struct in the EIP712 domain - /// of the Exchange contract. - /// @param hashStruct The EIP712 hash struct. - /// @return EIP712 hash applied to the Exchange EIP712 Domain. - function hashEIP712ExchangeMessage(bytes32 hashStruct) - internal - view - returns (bytes32 result) - { - return hashEIP712Message(EIP712_EXCHANGE_DOMAIN_HASH, hashStruct); - } } diff --git a/contracts/exchange-libs/compiler.json b/contracts/exchange-libs/compiler.json index f886f2db13..42aa61187e 100644 --- a/contracts/exchange-libs/compiler.json +++ b/contracts/exchange-libs/compiler.json @@ -27,10 +27,11 @@ "src/LibAbiEncoder.sol", "src/LibAssetProxyErrors.sol", "src/LibConstants.sol", - "src/LibEIP712.sol", + "src/LibEIP712ExchangeDomain.sol", "src/LibFillResults.sol", "src/LibMath.sol", "src/LibOrder.sol", + "src/LibZeroExTransaction.sol", "test/TestLibs.sol" ] } diff --git a/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol b/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol index a3c57ad7e1..e24aee5131 100644 --- a/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol +++ b/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol @@ -18,27 +18,32 @@ pragma solidity ^0.5.5; -import "./LibEIP712.sol"; -import "./LibEIP712ExchangeDomainConstants.sol"; +import "@0x/contracts-utils/contracts/src/LibEIP712.sol"; contract LibEIP712ExchangeDomain is - LibEIP712, - LibEIP712ExchangeDomainConstants + LibEIP712 { + // EIP712 Exchange Domain Name value + string constant internal EIP712_EXCHANGE_DOMAIN_NAME = "0x Protocol"; + + // EIP712 Exchange Domain Version value + string constant internal EIP712_EXCHANGE_DOMAIN_VERSION = "3.0.0"; + // Hash of the EIP712 Domain Separator data // solhint-disable-next-line var-name-mixedcase bytes32 internal EIP712_EXCHANGE_DOMAIN_HASH; /// @param chainId Chain ID of the network this contract is deployed on. - constructor (uint256 chainId) + /// @param verifyingContractAddress Address of the verifying contract (null if the address of this contract) + constructor (uint256 chainId, address verifyingContractAddress) public { EIP712_EXCHANGE_DOMAIN_HASH = hashEIP712Domain( EIP712_EXCHANGE_DOMAIN_NAME, EIP712_EXCHANGE_DOMAIN_VERSION, chainId, - address(this) + verifyingContractAddress == address(0) ? address(this) : verifyingContractAddress ); } diff --git a/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomainConstants.sol b/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomainConstants.sol deleted file mode 100644 index 6ff616c7d9..0000000000 --- a/contracts/exchange-libs/contracts/src/LibEIP712ExchangeDomainConstants.sol +++ /dev/null @@ -1,29 +0,0 @@ -/* - - 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 LibEIP712ExchangeDomainConstants { - - // EIP712 Exchange Domain Name value - string constant internal EIP712_EXCHANGE_DOMAIN_NAME = "0x Protocol"; - - // EIP712 Exchange Domain Version value - string constant internal EIP712_EXCHANGE_DOMAIN_VERSION = "3.0.0"; -} diff --git a/contracts/exchange-libs/contracts/src/LibOrder.sol b/contracts/exchange-libs/contracts/src/LibOrder.sol index a0ca1abd18..ae9835f152 100644 --- a/contracts/exchange-libs/contracts/src/LibOrder.sol +++ b/contracts/exchange-libs/contracts/src/LibOrder.sol @@ -17,6 +17,7 @@ */ pragma solidity ^0.5.5; +pragma experimental "ABIEncoderV2"; import "./LibEIP712ExchangeDomain.sol"; @@ -81,7 +82,7 @@ contract LibOrder is /// @param order The order structure. /// @return Keccak-256 EIP712 hash of the order. function getOrderHash(Order memory order) - internal + public view returns (bytes32 orderHash) { diff --git a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol b/contracts/exchange-libs/contracts/src/LibZeroExTransaction.sol similarity index 98% rename from contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol rename to contracts/exchange-libs/contracts/src/LibZeroExTransaction.sol index a5e16f9694..2ef9b616ed 100644 --- a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol +++ b/contracts/exchange-libs/contracts/src/LibZeroExTransaction.sol @@ -19,11 +19,11 @@ pragma solidity ^0.5.5; pragma experimental "ABIEncoderV2"; -import "./LibEIP712Domain.sol"; +import "./LibEIP712ExchangeDomain.sol"; contract LibZeroExTransaction is - LibEIP712Domain + LibEIP712ExchangeDomain { // Hash for the EIP712 0x transaction schema // keccak256(abi.encodePacked( diff --git a/contracts/exchange-libs/contracts/test/TestLibs.sol b/contracts/exchange-libs/contracts/test/TestLibs.sol index 2da439bad8..6373f97cfa 100644 --- a/contracts/exchange-libs/contracts/test/TestLibs.sol +++ b/contracts/exchange-libs/contracts/test/TestLibs.sol @@ -36,7 +36,7 @@ contract TestLibs is { constructor (uint256 chainId) public - LibEIP712ExchangeDomain(chainId) + LibEIP712ExchangeDomain(chainId, address(0)) {} function publicAbiEncodeFillOrder( diff --git a/contracts/exchange-libs/package.json b/contracts/exchange-libs/package.json index f71a95bfc2..9240967b77 100644 --- a/contracts/exchange-libs/package.json +++ b/contracts/exchange-libs/package.json @@ -34,7 +34,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "./generated-artifacts/@(LibAbiEncoder|LibAssetProxyErrors|LibConstants|LibEIP712|LibEIP712ExchangeDomainConstants|LibEIP712ExchangeDomain|LibFillResults|LibMath|LibOrder|TestLibs).json", + "abis": "./generated-artifacts/@(LibAbiEncoder|LibAssetProxyErrors|LibConstants|LibEIP712ExchangeDomain|LibFillResults|LibMath|LibOrder|LibZeroExTransaction|TestLibs).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/exchange-libs/src/artifacts.ts b/contracts/exchange-libs/src/artifacts.ts index 861d6f3d2d..e7f637a23c 100644 --- a/contracts/exchange-libs/src/artifacts.ts +++ b/contracts/exchange-libs/src/artifacts.ts @@ -8,18 +8,20 @@ import { ContractArtifact } from 'ethereum-types'; import * as LibAbiEncoder from '../generated-artifacts/LibAbiEncoder.json'; import * as LibAssetProxyErrors from '../generated-artifacts/LibAssetProxyErrors.json'; import * as LibConstants from '../generated-artifacts/LibConstants.json'; -import * as LibEIP712 from '../generated-artifacts/LibEIP712.json'; +import * as LibEIP712ExchangeDomain from '../generated-artifacts/LibEIP712ExchangeDomain.json'; import * as LibFillResults from '../generated-artifacts/LibFillResults.json'; import * as LibMath from '../generated-artifacts/LibMath.json'; import * as LibOrder from '../generated-artifacts/LibOrder.json'; +import * as LibZeroExTransaction from '../generated-artifacts/LibZeroExTransaction.json'; import * as TestLibs from '../generated-artifacts/TestLibs.json'; export const artifacts = { LibAbiEncoder: LibAbiEncoder as ContractArtifact, LibAssetProxyErrors: LibAssetProxyErrors as ContractArtifact, LibConstants: LibConstants as ContractArtifact, - LibEIP712: LibEIP712 as ContractArtifact, LibFillResults: LibFillResults as ContractArtifact, LibMath: LibMath as ContractArtifact, LibOrder: LibOrder as ContractArtifact, + LibZeroExTransaction: LibZeroExTransaction as ContractArtifact, + LibEIP712ExchangeDomain: LibEIP712ExchangeDomain as ContractArtifact, TestLibs: TestLibs as ContractArtifact, }; diff --git a/contracts/exchange-libs/src/wrappers.ts b/contracts/exchange-libs/src/wrappers.ts index 05244d87b7..0ef21a2a25 100644 --- a/contracts/exchange-libs/src/wrappers.ts +++ b/contracts/exchange-libs/src/wrappers.ts @@ -6,8 +6,9 @@ export * from '../generated-wrappers/lib_abi_encoder'; export * from '../generated-wrappers/lib_asset_proxy_errors'; export * from '../generated-wrappers/lib_constants'; -export * from '../generated-wrappers/lib_e_i_p712'; +export * from '../generated-wrappers/lib_e_i_p712_exchange_domain'; export * from '../generated-wrappers/lib_fill_results'; export * from '../generated-wrappers/lib_math'; export * from '../generated-wrappers/lib_order'; +export * from '../generated-wrappers/lib_zero_ex_transaction'; export * from '../generated-wrappers/test_libs'; diff --git a/contracts/exchange-libs/tsconfig.json b/contracts/exchange-libs/tsconfig.json index 1b5d541758..90a5ac5619 100644 --- a/contracts/exchange-libs/tsconfig.json +++ b/contracts/exchange-libs/tsconfig.json @@ -6,10 +6,11 @@ "generated-artifacts/LibAbiEncoder.json", "generated-artifacts/LibAssetProxyErrors.json", "generated-artifacts/LibConstants.json", - "generated-artifacts/LibEIP712.json", + "generated-artifacts/LibEIP712ExchangeDomain.json", "generated-artifacts/LibFillResults.json", "generated-artifacts/LibMath.json", "generated-artifacts/LibOrder.json", + "generated-artifacts/LibZeroExTransaction.json", "generated-artifacts/TestLibs.json" ], "exclude": ["./deploy/solc/solc_bin"] diff --git a/contracts/exchange/contracts/src/Exchange.sol b/contracts/exchange/contracts/src/Exchange.sol index ebf39c932f..34a2b30bf0 100644 --- a/contracts/exchange/contracts/src/Exchange.sol +++ b/contracts/exchange/contracts/src/Exchange.sol @@ -45,7 +45,7 @@ contract Exchange is constructor (bytes memory zrxAssetData, uint256 chainId) public LibConstants(zrxAssetData) // @TODO: Remove zrxAssetData when we deploy. - LibEIP712ExchangeDomain(chainId) + LibEIP712ExchangeDomain(chainId, address(0)) MixinExchangeCore() MixinMatchOrders() MixinSignatureValidator() diff --git a/contracts/exchange/contracts/test/TestSignatureValidator.sol b/contracts/exchange/contracts/test/TestSignatureValidator.sol index 4961e15296..6cf3adedbf 100644 --- a/contracts/exchange/contracts/test/TestSignatureValidator.sol +++ b/contracts/exchange/contracts/test/TestSignatureValidator.sol @@ -18,13 +18,13 @@ pragma solidity ^0.5.5; -import "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibEIP712ExchangeDomain.sol"; import "../src/MixinSignatureValidator.sol"; import "../src/MixinTransactions.sol"; contract TestSignatureValidator is - LibEIP712, + LibEIP712ExchangeDomain, MixinSignatureValidator, MixinTransactions { @@ -32,7 +32,7 @@ contract TestSignatureValidator is // solhint-disable no-empty-blocks constructor (uint256 chainId) public - LibEIP712ExchangeDomain(chainId) + LibEIP712ExchangeDomain(chainId, address(0)) {} function publicIsValidSignature( diff --git a/contracts/utils/compiler.json b/contracts/utils/compiler.json index d132a71268..8dfd051c16 100644 --- a/contracts/utils/compiler.json +++ b/contracts/utils/compiler.json @@ -26,6 +26,7 @@ "contracts": [ "src/Address.sol", "src/LibBytes.sol", + "src/LibEIP712.sol", "src/Ownable.sol", "src/ReentrancyGuard.sol", "src/SafeMath.sol", diff --git a/contracts/exchange-libs/contracts/src/LibEIP712.sol b/contracts/utils/contracts/src/LibEIP712.sol similarity index 99% rename from contracts/exchange-libs/contracts/src/LibEIP712.sol rename to contracts/utils/contracts/src/LibEIP712.sol index 792a509409..a435a97696 100644 --- a/contracts/exchange-libs/contracts/src/LibEIP712.sol +++ b/contracts/utils/contracts/src/LibEIP712.sol @@ -43,7 +43,7 @@ contract LibEIP712 { address verifyingContractAddress ) internal - view + pure returns (bytes32 result) { return keccak256(abi.encodePacked( diff --git a/contracts/utils/package.json b/contracts/utils/package.json index 76f52a8aae..56ff7cb8ea 100644 --- a/contracts/utils/package.json +++ b/contracts/utils/package.json @@ -34,7 +34,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "./generated-artifacts/@(Address|IOwnable|LibBytes|Ownable|ReentrancyGuard|SafeMath|TestConstants|TestLibAddressArray|TestLibBytes).json", + "abis": "./generated-artifacts/@(Address|IOwnable|LibBytes|LibEIP712|Ownable|ReentrancyGuard|SafeMath|TestConstants|TestLibAddressArray|TestLibBytes).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/utils/src/artifacts.ts b/contracts/utils/src/artifacts.ts index 04ebb5b525..e7650e53e4 100644 --- a/contracts/utils/src/artifacts.ts +++ b/contracts/utils/src/artifacts.ts @@ -8,6 +8,7 @@ import { ContractArtifact } from 'ethereum-types'; import * as Address from '../generated-artifacts/Address.json'; import * as IOwnable from '../generated-artifacts/IOwnable.json'; import * as LibBytes from '../generated-artifacts/LibBytes.json'; +import * as LibEIP712 from '../generated-artifacts/LibEIP712.json'; import * as Ownable from '../generated-artifacts/Ownable.json'; import * as ReentrancyGuard from '../generated-artifacts/ReentrancyGuard.json'; import * as SafeMath from '../generated-artifacts/SafeMath.json'; @@ -20,8 +21,9 @@ export const artifacts = { Ownable: Ownable as ContractArtifact, ReentrancyGuard: ReentrancyGuard as ContractArtifact, SafeMath: SafeMath as ContractArtifact, + LibEIP712: LibEIP712 as ContractArtifact, IOwnable: IOwnable as ContractArtifact, TestConstants: TestConstants as ContractArtifact, - TestLibBytes: TestLibBytes as ContractArtifact, TestLibAddressArray: TestLibAddressArray as ContractArtifact, + TestLibBytes: TestLibBytes as ContractArtifact, }; diff --git a/contracts/utils/src/wrappers.ts b/contracts/utils/src/wrappers.ts index 91a90bec6c..a5b4954ad3 100644 --- a/contracts/utils/src/wrappers.ts +++ b/contracts/utils/src/wrappers.ts @@ -6,6 +6,7 @@ export * from '../generated-wrappers/address'; export * from '../generated-wrappers/i_ownable'; export * from '../generated-wrappers/lib_bytes'; +export * from '../generated-wrappers/lib_e_i_p712'; export * from '../generated-wrappers/ownable'; export * from '../generated-wrappers/reentrancy_guard'; export * from '../generated-wrappers/safe_math'; diff --git a/contracts/utils/tsconfig.json b/contracts/utils/tsconfig.json index dce54b101e..d4f0363c91 100644 --- a/contracts/utils/tsconfig.json +++ b/contracts/utils/tsconfig.json @@ -6,6 +6,7 @@ "generated-artifacts/Address.json", "generated-artifacts/IOwnable.json", "generated-artifacts/LibBytes.json", + "generated-artifacts/LibEIP712.json", "generated-artifacts/Ownable.json", "generated-artifacts/ReentrancyGuard.json", "generated-artifacts/SafeMath.json", diff --git a/yarn.lock b/yarn.lock index 48bb2f1ca8..69342ef56c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14531,6 +14531,16 @@ react-dom@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" +react-dom@^16.4.2: + version "16.8.6" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.6" + react-dom@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" @@ -14588,6 +14598,8 @@ react-highlight@0xproject/react-highlight#react-peer-deps: dependencies: highlight.js "^9.11.0" highlightjs-solidity "^1.0.5" + react "^16.4.2" + react-dom "^16.4.2" react-hot-loader@^4.3.3: version "4.3.4" @@ -14832,6 +14844,16 @@ react@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" +react@^16.4.2: + version "16.8.6" + resolved "https://registry.npmjs.org/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" + integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.6" + react@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" @@ -15729,6 +15751,14 @@ schedule@^0.5.0: dependencies: object-assign "^4.1.1" +scheduler@^0.13.6: + version "0.13.6" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" + integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + schema-utils@^0.4.4: version "0.4.7" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"